안녕하세요.
baobab에 배포한 컨트랙트 함수의 입력으로 Uint256[] 변수들을 입력하려고 합니다.
사용하고자 하는 컨트랙트 함수는 아래와 같은 입력을 받습니다.
function vote_verify(uint256[] memory _proof, uint256[] memory _IO) public {
...
}
ABI: {“inputs”:[{“internalType”:“uint256[]”,“name”:"_proof",“type”:“uint256[]”},{“internalType”:“uint256[]”,“name”:"_IO",“type”:“uint256[]”}],“name”:“vote_verify”,“outputs”:[],“stateMutability”:“nonpayable”,“type”:“function”}
java에서 사용하는 caver 버전은 1.5.3일 때, 아래와 같이 변수를 보낼려고 합니다.
import org.web3j.abi.datatypes.generated.Uint256;
@Test
public void executeContract() throws Exception {
...
List<Uint256> proof_parm = new ArrayList<Uint256>();
List<Uint256> IO_parm = new ArrayList<Uint256>();
String[] proof = readProof(user_proof);
for (int j=0;j<8;j++){
proof_parm.add(new Uint256(new BigInteger(proof[j], 16)));
}
IO_parm.add(new Uint256(1));
for (int j=0;j<IO.length;j++){
IO_parm.add(new Uint256(new BigInteger(IO[j], 16)));
}
TransactionReceipt.TransactionReceiptData receipt = contract.getMethod("vote_verify")
.send(Arrays.asList(proof_parm,IO_parm)); //이 부분을 어떻게 해야 하는지 모르겠습니다.
}
실행시 아래와 같은 오류가 발생합니다.
java.lang.InstantiationException: Could not create type class org.web3j.abi.datatypes.generated.Uint256 from arg org.web3j.abi.datatypes.generated.Uint256@dc088c2e of type class org.web3j.abi.datatypes.generated.Uint256
이 부분은 어떻게 해결하면 되는지 문의합니다.