Store & Get
Storage can be manipulated directly through the use of store()
& get()
functions. They utilize generics to store and retrieve values.
Declaration
To use store()
& get()
we must import them however we are not required to declare a storage
block.
use std::storage::storage_api::{read, write};
Store
To store a generic value T
we must provide a key of type b256
.
In this example we store some number of type u64
.
#[storage(write)]
fn store(key: b256, value: u64) {
// write(key, SLOT, T) where T = generic type
write(key, 0, value);
}
Get
To retrieve a generic value T
at the position of key
we must specify the type that we are retrieving.
In this example we retrieve some u64
at the position of key
.
#[storage(read)]
fn get(key: b256) {
// read::<T>(key, SLOT) where T = generic type
let value = read::<u64>(key, 0);
}
The function get
returns an Option
; if the storage slots requested have not been set before, get
will return None
.