Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust polkadot.js api中的编码结构_Rust_Substrate_Polkadot Js - Fatal编程技术网

Rust polkadot.js api中的编码结构

Rust polkadot.js api中的编码结构,rust,substrate,polkadot-js,Rust,Substrate,Polkadot Js,我有一个关于前端polkadot.js api的问题。假设我有一个结构 pub struct B { b: i32, } pub struct A { a: Vec<u8>, b: B, } pub结构B{ b:i32, } 发布结构A{ a:Vec, b:b, } 我想将结构A编码到字节数组中,然后将其传递到基板调度调用中,然后我将从字节数组中对其进行解码。实现这一点的api是什么 简言之: frontend in polkadot.js api: e

我有一个关于前端polkadot.js api的问题。假设我有一个结构

pub struct B {
    b: i32,
}
pub struct A {
    a: Vec<u8>,
    b: B,
}
pub结构B{
b:i32,
}
发布结构A{
a:Vec,
b:b,
}
我想将结构A编码到字节数组中,然后将其传递到基板调度调用中,然后我将从字节数组中对其进行解码。实现这一点的api是什么

简言之:

 frontend in polkadot.js api: encode structure to Vec<u8>
 backend in substrate module dispatch call: decode Vec<u8> back to struct.
polkadot.js api中的前端:将结构编码为Vec 基板模块调度调用中的后端:将Vec解码回结构。
我在polkadot.js文档中没有找到相应的API和示例。谢谢

据我所知,在后端(基于基板的节点),它们被视为
自定义类型
。当您连接到api(在前端)时,需要传递自定义类型定义,以便Polkadt js知道如何在将其发送到链时对其进行解码和编码。看,我知道如何使用自定义类型。我想自己编码/解码的原因是,将一个结构粘贴到外部调用的输入中会很棘手。所以我的计划是使用一个helper函数(在js中)将结构直接编码到Vec中,我想你需要序列化它,我问了同样的问题,想保存json字符串,然后用它来构建Vec,所有人(奇偶校验人)都反对。对于自定义内容,我使用JSON.stringify,然后从“@polkadt/util”导入{stringToU8a}中的
stringToU8a
帮助函数。如果我没有弄错的话,如果您使用同一个包中的
stringToHex
对其进行编码,您可能会在后端对其进行解码并获得Vec,因为这正是JS中的Uin8Array,这似乎很有希望。如果我的理解是正确的:struct->string(使用JSON.stringify),string->bytearray(使用stringToU8a)。要破译它,我应该使用哪一个锈迹库?嗯,不确定serde。据我所知,它与wasm不兼容。我想你可以等到奇偶校验公司的人接手,或者你可以在公共矩阵频道上询问。据我所知,在后端(基于基板的节点),它们被认为是
自定义类型
。当您连接到api(在前端)时,需要传递自定义类型定义,以便Polkadt js知道如何在将其发送到链时对其进行解码和编码。看,我知道如何使用自定义类型。我想自己编码/解码的原因是,将一个结构粘贴到外部调用的输入中会很棘手。所以我的计划是使用一个helper函数(在js中)将结构直接编码到Vec中,我想你需要序列化它,我问了同样的问题,想保存json字符串,然后用它来构建Vec,所有人(奇偶校验人)都反对。对于自定义内容,我使用JSON.stringify,然后从“@polkadt/util”导入{stringToU8a}中的
stringToU8a
帮助函数。如果我没有弄错的话,如果您使用同一个包中的
stringToHex
对其进行编码,您可能会在后端对其进行解码并获得Vec,因为这正是JS中的Uin8Array,这似乎很有希望。如果我的理解是正确的:struct->string(使用JSON.stringify),string->bytearray(使用stringToU8a)。要破译它,我应该使用哪一个锈迹库?嗯,不确定serde。据我所知,它与wasm不兼容。我想你可以等到帕丽奇公司的人接手,或者你可以在公共矩阵频道上询问。