안녕하세요
caver-java-ext-kas 를 사용하면서 몇가지 문의사항이 생겨 글 남기게 되었습니다.
- CaverExtKAS.class
처음 initKASAPI() method를 호출할 때, 각 apiUrl을 set해주는 내용이 있는데요.
initKIP17API() method로 set할 때, 코드 288-308 lines을 보면,
public void initKIP17API(int chainId, String accessKeyId, String secretAccessKey) {
initTokenHistoryAPI(chainId, accessKeyId, secretAccessKey, URL_KIP17_API);
}
위 와 같이, initKIP17API()를 호출할 때, 내부적으로 initTokenHistoryAPI()를 호출하면서 URL_KIP17_API를 set하고 있는데, 이것은 의도된 부분인가요?
- TokenHistoryQueryOptions.KIND.getAllKind() method
TransactionList for Account(EOA)를 구현하기 위해서, TokenHistoryAPI의 getTransfersByEoa()(혹은 getTransfersByEoaWithHttpInfo() 등) method를 사용하려합니다.
getTransfersByEoa()의 3번째 param인 kind를 넣을 때,
TokenHistoryQueryOptions.KIND.getAllKind() method를 직접 호출하여 받아쓰고 싶은데요.
getTransfersByEoa(xChainId, address, TokenHistoryQueryOptions.KIND.getAllKind(), ...null);
TokenHistoryQueryOptions.KIND.getAllKind()에서 String을 출력하는 로직이 각 value를 single quote로 감싸도록 구현되어 있습니다.
(출력 : “‘klay’, ‘mt’, ‘nft’, ‘ft’”)
getTransfersByEoa 등의 method 호출에 필요한 requestParams를 넣어서 내부적으로 get method request를 만드는 과정에서 아래와 같이 url을 encoding하는데,
이 method를 그대로 사용하게 되면 api(th-api.klaytnapi.com/v2/transfer)에서는 encode된 single quote와 comma뒤의 space때문에 get method의 query param 형식 오류가 발생합니다.
아래는 postman으로 호출 시 반환되는 오류 코드
{
“code”: 1040010,
“message”: “[InvalidQueryParameterValue]invalid query value”,
“requestId”: “d334d1ca-987a-4ca8-909e-feb53b1f4df6”
}
이 부분은 single quote(및 space)가 없는 getAllKind()를 직접 구현해서 써야하는 부분일지요.
**
github 이슈로 남길려다 contributor가 많이 계시지 않아 일단 포럼에 먼저 문의드리게 되었습니다.
사용하고 있는 버전은 Release v1.1.0 입니다.
감사합니다.