pub trait ClarityBackingStore {
    fn put_all(&mut self, items: Vec<(String, String)>);
fn get(&mut self, key: &str) -> Option<String>;
fn set_block_hash(&mut self, bhh: StacksBlockId) -> Result<StacksBlockId>;
fn get_block_at_height(&mut self, height: u32) -> Option<StacksBlockId>;
fn get_current_block_height(&mut self) -> u32;
fn get_open_chain_tip_height(&mut self) -> u32;
fn get_open_chain_tip(&mut self) -> StacksBlockId;
fn insert_metadata(
        &mut self,
        contract: &QualifiedContractIdentifier,
        key: &str,
        value: &str
    );
fn get_metadata(
        &mut self,
        contract: &QualifiedContractIdentifier,
        key: &str
    ) -> Result<Option<String>>; fn has_entry(&mut self, key: &str) -> bool { ... }
fn make_contract_commitment(
        &mut self,
        contract_hash: Sha512Trunc256Sum
    ) -> String { ... } }

Required methods

put K-V data into the committed datastore

fetch K-V out of the committed datastore

change the current MARF context to service reads from a different chain_tip used to implement time-shifted evaluation. returns the previous block header hash on success

this function returns the current block height, as viewed by this marfed-kv structure, i.e., it changes on time-shifted evaluation. the open_chain_tip functions always return data about the chain tip that is currently open for writing.

This function is used to obtain a committed contract hash, and the block header hash of the block in which the contract was initialized. This data is used to store contract metadata in the side store.

Provided methods

fn has_entry(&mut self, key: &str) -> bool

The contract commitment is the hash of the contract, plus the block height in which the contract was initialized.

Implementors