java通过web3j调用智能合约传递数组参数的坑
最近在写solidity智能合约,用java与solidity交互过程中,需要传递数组参数到智能合约,但是用web3j转换后的数组参数去调用智能合约接口一直返回错误信息,在万能的互联网上翻阅了大量资料后,终于解决,在此记录一下: 首先java项目需要引入web3j的依赖包: <dependency> <groupId>org.web3j</groupId> <artifactId>core</artifactId> <version>4.5.18</version> <exclusions> <exclusion> <artifactId>okhttp</artifactId> <groupId>com.squareup.okhttp</groupId> </exclusion> </exclusions> </dependency> 合约demo代码如下: function arrTest(bytes32[] memory arr) public view returns(string memory) { return bytes32ToString(arr[0]); } function bytes32ToString(bytes32 bname) view public returns(string memory){ // 此处要加上memory // 先将有效字符计算出来