static decoding of signed extensions

This commit is contained in:
Tadeo hepperle
2023-10-26 18:48:47 +02:00
parent 1dd8f53656
commit 245aca78ee
4 changed files with 149 additions and 41 deletions
@@ -6,6 +6,7 @@ use crate::{test_context, utils::node_runtime};
use codec::{Compact, Encode};
use futures::StreamExt;
use subxt::config::signed_extensions::{ChargeAssetTxPayment, CheckNonce};
use subxt::config::DefaultExtrinsicParamsBuilder;
use subxt_metadata::Metadata;
use subxt_signer::sr25519::dev;
@@ -286,17 +287,25 @@ async fn decode_signed_extensions_from_blocks() {
let transaction1 = submit_transfer_extrinsic_and_get_it_back!(1234);
let extensions1 = transaction1.signed_extensions().unwrap();
let nonce1 = extensions1.nonce().unwrap();
let nonce1_static = extensions1.find::<CheckNonce>().0;
let tip1 = extensions1.tip().unwrap();
let tip1_static: u128 = extensions1.find::<ChargeAssetTxPayment>().tip.0;
let transaction2 = submit_transfer_extrinsic_and_get_it_back!(5678);
let extensions2 = transaction2.signed_extensions().unwrap();
let nonce2 = extensions2.nonce().unwrap();
let nonce2_static: u64 = extensions2.find::<CheckNonce>().0;
let tip2 = extensions2.tip().unwrap();
let tip2_static: u128 = extensions2.find::<ChargeAssetTxPayment>().tip.0;
assert_eq!(nonce1, 0);
assert_eq!(nonce1, nonce1_static);
assert_eq!(tip1, 1234);
assert_eq!(tip1, tip1_static);
assert_eq!(nonce2, 1);
assert_eq!(nonce2, nonce2_static);
assert_eq!(tip2, 5678);
assert_eq!(tip2, tip2_static);
assert_eq!(extensions1.iter().count(), expected_signed_extensions.len());
for (e, expected_name) in extensions1.iter().zip(expected_signed_extensions.iter()) {