数组转换成字符串solidity中⼀个很常见的字符串数组stringarray问题
我遇到了⼀个很常见的字符串数组string array问题,不能很好地解决。
问题是这样我必须把任意长度的字符串传递给⼀个solidity智能合约。
我觉得这样就可以:
function setStrings(string [] row)
但实际上不太对。
这⾥有⼀个solidity的限制,原因是String字符串基本上是任意长度的byte array字节数组(即byte[]),因此String []是⼆维字节数组(即byte[] [])。根据solidity的说法,⼆维数组作为参数还不⽀持。
智能合约的函数可以接受⼆维数组吗?
这还没有实现外部调⽤和动态数组——只能使⽤⼀维的动态数组。
解决这个问题的⼀个办法是,如果你知道所有的字符串的最⼤长度(在⼤多数情况下都有可能),那么可以这样:
function setStrings(byte[MAX_LENGTH][] row) {...}
也可以尝试将数组元素转换为字节字符串,然后将该字节串反序列化为函数内的数组。这样做⽐较昂贵的,如果你没有选择的话。
原⽂:
另外推荐⼀些之前的教程:
,主要是针对python围绕web3.py进⾏区块链以太坊应⽤开发的讲解。
,主要是针对java和android程序员围绕web3j库进⾏区块链以太坊开发的讲解。
,主要是介绍使⽤php进⾏智能合约开发交互,进⾏账号创建、交易、转账、开发以及过滤器和事件等内容。
,主要是介绍使⽤node.js、mongodb、区块链、ipfs实现去中⼼化电商DApp实战,适合进阶。
,主要介绍智能合约与dapp应⽤开发,适合⼊门。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论