通过mxpy部署智能合约时,如何对List类型参数进行编码?
在mxpy CLI中编码MultiversX智能合约的List类型参数
在mxpy CLI里部署合约时,List类型参数的编码逻辑很直接,核心是先声明列表长度,再依次列出所有元素,整个序列会被合约解析为单个List类型输入,和SDK中List.fromItems()的效果一致。
具体编码示例
数值类型列表(比如u64列表[100, 200, 300])
直接先写列表长度,再按顺序写每个元素:
mxpy contract deploy --bytecode="your-contract.wasm" --arguments 3 100 200 300 --recall-nonce --send
字符串类型列表(比如["alice", "bob", "charlie"])
同样先写长度,再依次传入每个字符串:
mxpy contract deploy --bytecode="your-contract.wasm" --arguments 3 "alice" "bob" "charlie" --recall-nonce --send
嵌套List类型(比如List<List<u32>>,值为[[1,2,3], [4,5]])
递归遵循相同规则:先写外层列表长度,再依次处理每个内层列表(先写内层长度,再写内层元素):
mxpy contract deploy --bytecode="your-contract.wasm" --arguments 2 3 1 2 3 2 4 5 --recall-nonce --send
核心规则总结
- 必须以列表的长度数值作为List参数的起始部分
- 后续按顺序列出列表中的每一个元素,元素遵循对应类型的mxpy编码规则(比如地址用bech32格式、数值直接写十进制等)
内容的提问来源于stack exchange,提问作者ROMANIA_engineer
相关产品推荐
相关产品推荐

