Attribute Macro substreams::handlers::store

source ·
#[store]
Expand description

Marks function to setup substreams store handler WASM boilerplate

§Usage

use substreams::prelude::{StoreGet, StoreNew};
use substreams::{log, store};
use substreams::store::{StoreGetProto, StoreAddInt64};

#[substreams::handlers::store]
fn build_nft_state(data: proto::Custom, s: StoreAddInt64, pairs: StoreGetProto<proto::Pairs>, tokens: StoreGetProto<proto::Tokens>) {
    unimplemented!("do something");
}

Equivalent code not using #[substreams::handlers::store]

use substreams::prelude::StoreNew;
use substreams::{log, store};
use substreams::store::StoreGetProto;

#[no_mangle]
pub extern "C" fn build_nft_state(data_ptr: *mut u8, data_len: usize, pairs_idx: u32, tokens_idx: u32) {
   substreams::register_panic_hook();
   let data: proto::Custom = substreams::proto::decode_ptr(data_ptr, data_len).unwrap();
   let pairs: StoreGetProto<proto::Pairs> = store::StoreGet::new(pairs_idx);
   let tokens: StoreGetProto<proto::Tokens> = store::StoreGet::new(tokens_idx);
   let s: store::StoreAddInt64 = store::StoreAddInt64::new();
   {
       unimplemented!("do something");
   }
}