substrate-debug-kit icon indicating copy to clipboard operation
substrate-debug-kit copied to clipboard

Use internal client + expose macros

Open kianenigma opened this issue 5 years ago • 0 comments

The entire interface to sub-storage depends on client and at. alternatively, sub-storage could create its own internal client. The user would have to call into sub_storage::init_client(URI).await once and henceforth it would be used.

I am not yet sure if this is a correct api design as well, but it is indeed easier.

This would allow us to macro-ify the crate as well, such as:

let a: Type = sub_storage::value!("ModuleName", "StorageName").await;
let b: Type = sub_storage::map!("ModuleName", "StorageName", key).await;

// optionally
let b: Type = sub_storage::map_at!("ModuleName", "StorageName", key, hash).await;

Which is not really pretty now given that we have to pass in a client inwards as well.

kianenigma avatar Jul 08 '20 13:07 kianenigma