# 컨트랙트 함수 입력으로 Uint256\[\] 은 어떻게 전달해야 좋을지 문의드립니다

**URL:** <https://devforum.kaia.io/t/uint256/2358>\
**Category:** Caver\
**Tags:** caver-java\
**Created:** [11월 11, 2021, 5:42오전 UTC](https://devforum.kaia.io/t/uint256/2358 "2021-11-11T05:42:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![glycogen](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/glycogen/32/1126_2.png) [@glycogen](https://devforum.kaia.io/u/glycogen)\
**Post date:** [11월 11, 2021, 5:42오전 UTC](https://devforum.kaia.io/t/uint256/2358/1 "2021-11-11T05:42:18Z")

</div>

안녕하세요.

baobab에 배포한 컨트랙트 함수의 입력으로 Uint256[] 변수들을 입력하려고 합니다.

사용하고자 하는 컨트랙트 함수는 아래와 같은 입력을 받습니다.

```auto
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일 때, 아래와 같이 변수를 보낼려고 합니다.

```auto
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)); //이 부분을 어떻게 해야 하는지 모르겠습니다.
}

```

실행시 아래와 같은 오류가 발생합니다.

```auto
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

```

이 부분은 어떻게 해결하면 되는지 문의합니다.

---

<div class="post-metadata">

**Author:** ![Kale](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/kale/32/148_2.png) [@Kale](https://devforum.kaia.io/u/Kale)\
**Post date:** [11월 11, 2021, 7:35오전 UTC](https://devforum.kaia.io/t/uint256/2358/2 "2021-11-11T07:35:32Z")

</div>

안녕하세요.  
[문서](https://ko.docs.klaytn.com/bapp/sdk/caver-java/getting-started#smart-contract) 참고 부탁드리고 Array type은 contract.send()의 methodArgument부분에 List형태로 파라미터를 넘기시면됩니다.

그리고 별다른 이슈가 없다면 caver-java 최신버전을 사용해주시길 부탁드리겠습니다.

```auto
Contract contract = caver.contract.create(ABIJson, "0x{address in hex}");
SendOptions sendOptions = new SendOptions();
sendOptions.setFrom(executor.getAddress());
sendOptions.setGas(BigInteger.valueOf(4000000));

TransactionReceipt.TransactionReceiptData receipt = contract.send(sendOptions, "set", Arrays.asList(123,456));

```
