hooks_rs::api

Function state

Source
pub fn state<const STATE_VALUE_LEN: usize>(
    key: &[u8],
) -> Result<[u8; STATE_VALUE_LEN]>
Expand description

Retrieve the data pointed to by a Hook State key and write it to an output buffer The keys are always 32 bytes (unsigned 256 bit integer) and the values are variable length with a maximum size determined by validator voting, at time of writing 128 bytes.

ยงExample

#[inline(always)]
fn get_count(key: &[u8; ACC_ID_LEN]) -> u64 {
    match state::<STATE_VALUE_LEN>(key.as_ref()) {
        Ok(data) => u64::from_be_bytes(data),
        Err(_err) => {
            rollback(b"could not get count state", -1);
        }
    }
}

#[inline(always)]
fn set_count(count: u64, key: &[u8; ACC_ID_LEN]) {
    match state_set(count.to_be_bytes().as_ref(), key.as_ref()) {
        Ok(_) => {}
        Err(_) => {
            rollback(b"could not set state", -1);
        }
    };
}