【发布时间】:2021-06-30 17:11:51
【问题描述】:
快速提问,有没有人知道如何将二维 (2D) 数组从 Nodejs 服务器应用程序上传或发送到智能合约 (Solidity) 中声明的函数?
我希望维护二维数组的索引,因为稍后将访问它以进行搜索。
提前谢谢你!
【问题讨论】:
标签: node.js multidimensional-array blockchain solidity smartcontracts
快速提问,有没有人知道如何将二维 (2D) 数组从 Nodejs 服务器应用程序上传或发送到智能合约 (Solidity) 中声明的函数?
我希望维护二维数组的索引,因为稍后将访问它以进行搜索。
提前谢谢你!
【问题讨论】:
标签: node.js multidimensional-array blockchain solidity smartcontracts
您可以在 Solidity 中使用多个 [] 符号定义多维数组。
文档:https://docs.soliditylang.org/en/v0.8.6/types.html#arrays
pragma solidity ^0.8;
contract MyContract {
function foo(uint256[][] memory _array) external pure returns (uint256[][] memory) {
return _array;
}
}
然后你可以使用任何库来传递JS多维数组与智能合约进行交互,例如web3js(NPM,docs)。
const array = [
[1, 2],
[3, 4]
];
const contract = new web3.eth.Contract(jsonInterface, address);
contract.methods.foo(array).call().then((response) => {
console.log(response);
});
【讨论】: