Hugo garbage

Of course I prefixed with wss://, the problem might be coming from my system’s certificate store. I’m using the ssh bridge workaround in the meantime.

I’m implementing batch transaction in gcli in transfer_multiple function https://git.duniter.org/clients/rust/gcli-v2s/-/blob/417825fcfe98db6d511196180463f5d5b486be8f/src/commands/transfer.rs#L39

Despite I copy-pased the line .transfer_keep_alive(dest.into(), amount), Rust complains that he can not convert substrate core AccountId32 to runtime MultiAddress:

64 | .transfer_keep_alive(dest.into(), amount)
   |                           ^^^^ the trait `std::convert::From<&sp_core::crypto::AccountId32>` is not implemented for `subxt::ext::sp_runtime::MultiAddress<sp_core::crypto::AccountId32, ()>`

I’m surprised, because it seems doing exactly this in previous function.

@tuxmain, an idea?

I have the same error when connecting to a node with public API disabled. Maybe it’s just that?

The difference is that .iter takes a reference, so you have &AccountId32 instead of AccountId32. You can use .into_iter instead, because you own the vec and it won’t be re-used after. (you can check what types will work with .into() by looking at the Into and From implementations for the types involved)

1 Like

Oh yes, sorry, actually, I figured it out, but my problem is more with batch calls. I have to get used to subxt before and should not post too quickly my pure Rust issues (I’m missing practice). I’ll come back soon. [edit] I think I’m ok now, I just get Error: Rpc error: RPC call failed: ErrorObject { code: ServerError(1010), message: "Invalid Transaction", data: Some(RawValue("Transaction would exhaust the block limits")) } because I tried to do all at once.