如何在TypeScript提交Aptos交易时传递Option类型参数
在TypeScript中处理Aptos交易的Option类型参数
Aptos的std::option::Option类型在交易负载里的序列化规则很明确,分两种情况处理:
- 传
None时,直接用空数组[] - 传
Some(value)时,用包含对应值的数组,比如[目标值]
结合你要调用的myfun函数,给你两个具体的代码示例:
示例代码
场景1:参数c传None
// 假设num_a、num_b是你要传入的u64数值 const payload = { type: "entry_function_payload", function: "你的合约地址::合约模块名::myfun", // 替换成实际的函数路径 type_arguments: [], arguments: [num_a.toString(), num_b.toString(), []], // 最后一个[]对应None };
场景2:参数c传Some(address)
// 替换成你要传入的目标地址 const targetAddr = "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"; const payload = { type: "entry_function_payload", function: "你的合约地址::合约模块名::myfun", type_arguments: [], arguments: [num_a.toString(), num_b.toString(), [targetAddr]], // 数组包裹地址对应Some };
补充说明
- Aptos底层对Option用标签化数组序列化:标签0对应None(空数组),标签1对应Some(带值的数组),不过SDK会自动处理标签逻辑,你直接按上面的格式传就行。
- address类型参数必须是带
0x前缀的标准十六进制字符串。
内容的提问来源于stack exchange,提问作者0xbe1
相关产品推荐
相关产品推荐

