mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-22 23:08:00 +00:00
Use scale-encode and scale-decode to encode and decode based on metadata (#842)
* WIP EncodeAsType and DecodeAsType * remove silly cli experiment code * Get things finally compiling with EncodeAsType and DecodeAsType * update codegen test and WrapperKeepOpaque proper impl (in case it shows up in codegen) * fix tests * accomodate scale-value changes * starting to migrate to EncodeAsType/DecodeAsType * static event decoding and tx encoding to use DecodeAsFields/EncodeAsFields * some tidy up and add decode(skip) attrs where needed * fix root event decoding * #[codec(skip)] will do, and combine map_key stuff into storage_address since it's all specific to that * fmt and clippy * update Cargo.lock * remove patched scale-encode * bump scale-encode to 0.1 and remove unused dep in testing crate * update deps and use released scale-decode * update scale-value to latest to remove git branch * Apply suggestions from code review Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> * remove sorting in derives/attr generation; spit them out in order given * re-add derive sorting; it's a hashmap * StaticTxPayload and DynamicTxPayload rolled into single Payload struct * StaticStorageAddress and DynamicStorageAddress into single Address struct * Fix storage address byte retrieval * StaticConstantAddress and DynamicConstantAddress => Address * Simplify storage codegen to fix test * Add comments * Alias to RuntimeEvent rather than making another, and prep for substituting call type * remove unnecessary clone * Fix docs and failing UI test * root_bytes -> to_root_bytes * document error case in StorageClient::address_bytes() --------- Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
This commit is contained in:
@@ -4,11 +4,19 @@ use codec::{Decode, Encode};
|
||||
|
||||
use subxt::utils::AccountId32;
|
||||
|
||||
#[derive(Encode, Decode, Debug)]
|
||||
#[derive(Encode, Decode, subxt::ext::scale_encode::EncodeAsType, subxt::ext::scale_decode::DecodeAsType, Debug)]
|
||||
#[encode_as_type(crate_path = "subxt::ext::scale_encode")]
|
||||
#[decode_as_type(crate_path = "subxt::ext::scale_decode")]
|
||||
pub struct CustomAddress(u16);
|
||||
#[derive(Encode, Decode, Debug)]
|
||||
|
||||
#[derive(Encode, Decode, subxt::ext::scale_encode::EncodeAsType, subxt::ext::scale_decode::DecodeAsType, Debug)]
|
||||
#[encode_as_type(crate_path = "subxt::ext::scale_encode")]
|
||||
#[decode_as_type(crate_path = "subxt::ext::scale_decode")]
|
||||
pub struct Generic<T>(T);
|
||||
#[derive(Encode, Decode, Debug)]
|
||||
|
||||
#[derive(Encode, Decode, subxt::ext::scale_encode::EncodeAsType, subxt::ext::scale_decode::DecodeAsType, Debug)]
|
||||
#[encode_as_type(crate_path = "subxt::ext::scale_encode")]
|
||||
#[decode_as_type(crate_path = "subxt::ext::scale_decode")]
|
||||
pub struct Second<T, U>(U, PhantomData<T>);
|
||||
|
||||
#[subxt::subxt(
|
||||
|
||||
Reference in New Issue
Block a user