微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用substrate_api_client时出错

如何解决使用substrate_api_client时出错

我正在尝试使用“ substrate_api_client”向我的dev节点发送tansaction并收到错误消息:-

thread 'main' panicked at 'calledResult::unwrap()on anErr value: OddLength'

不知道怎么了 以供参考:- 在节点上:

decl_storage! {
    trait Store for Module<T: Trait> as TemplateModule {
        /// The storage item for our proofs.
        /// It maps a proof to the user who made the claim and when they made it.
        Proofs: map hasher(blake2_128_concat) Vec<u8> => (T::AccountId,T::BlockNumber);
    }
}

fn create_claim(origin,proof: Vec<u8>) {
            let sender = ensure_signed(origin)?;
            ensure!(!Proofs::<T>::contains_key(&proof),Error::<T>::ProofAlreadyClaimed);
            let current_block = <frame_system::Module<T>>::block_number();
            Proofs::<T>::insert(&proof,(&sender,current_block));
            Self::deposit_event(RawEvent::ClaimCreated(sender,proof));
        }

和Light Client端代码:-

let url = "127.0.0.1:9944";
    let from = AccountKeyring::Alice.pair();
    let mut api = Api::new(format!("ws://{}",url)).set_signer(from);
    let x = api.clone();
    let demo_string : String = String::from("Hello");
    let demo = demo_string.as_bytes();
    let a = blake2_128(&demo);
    let xt: UncheckedExtrinsicV4<_> = compose_extrinsic!( api.clone(),"TemplateModule","create_claim",a);
    println!("[+] Composed Extrinsic:\n {:?}\n",xt);
    let tx_hash = api
        .send_extrinsic(xt.hex_encode(),XtStatus::Finalized)
        .unwrap();
    println!("[+] Transaction got finalized. Hash: {:?}",tx_hash);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。