L_TT
1
caver-java-ext-kas 를 사용중입니다.
소스를 요약하자면
Contract contract = caver.contract.create(json, factory_address);
contract.send(sendOptions, “name” , “addr”, “arg1”, “arg2” );
이렇게 되어있는데 저 json abi의 자료형이 address[] 로 되어있는데
자바에서 arg2부분에 자료형을 어떻게 넣어야할까요…?
js 의 [] 과 같은 자료형을 쓰고싶어
Collections.EMPTY_LIST를 써봤는데 인덱스 바운드 에러가 뜨더라구요
Kale
2
안녕하세요.
Arrays.asList();로 arg2부분을 넘겨보시기 바랍니다.
그리고 트랜잭션을 전송하고자하는 스마트 컨트랙트 함수원형을 알려주시면 좀 더 쉽게 답변 드릴 수 있을 것 같습니다.
감사합니다.
L_TT
3
Arrays.asList() 로 해결이 안되네요 ㅠ
함수 원형 입니다.
{
“constant”: true,
“inputs”: [
{
“name”: “token”,
“type”: “address”
},
{
“name”: “amount”,
“type”: “uint256”
},
{
“name”: “path”,
“type”: “address[]”
}
],
“name”: “exchangeKlayPos”,
“outputs”: [],
“payable”: true,
“stateMutability”: “payable”,
“type”: “function”
}
Kale
4
사용하시는 caver-java 버전을 알 수 있을까요?
그리고 코드를 어떻게 작성하셨는지도 정확히 전달부탁드립니다.
L_TT
5
1.4.0 버전입니다.
Contract contract = caver.contract.create(swapABI, factory_address);
// BigInteger value = new
// BigInteger(caver.utils.convertToPeb(buycount_klay, "KLAY"));
SendOptions sendOptions = new SendOptions();
sendOptions.setFrom(myKasAddr);
sendOptions.setValue(new BigInteger(caver.utils.convertToPeb(BigDecimal.valueOf(1), "KLAY"))); //peb
sendOptions.setGas(BigInteger.valueOf(2000000));
// contract.call("exchangeKlayPos", buyCoinAddr,
// BigInteger.valueOf(buycount_coin), new String[0]);
try {
contract.send(sendOptions, "exchangeKlayPos", buyCoinAddr, new BigInteger(caver.utils.convertToPeb(BigDecimal.valueOf(1), "KLAY")) , new int[10]);
} catch (KASAPIException e) {
System.out.print(e.getResponseBody().getMessage());
}
소스원본입니다.
Kale
6
최신버전 1.6.3 사용해서 테스트 부탁드리겠습니다.
감사합니다.
1개의 좋아요