안녕하세요. caver-js 관련 문의드립니다.
컨트랙트로부터 정보를 가져오려고 할때 가끔
Returned error: execution aborted (timeout = 5s)
이라는 에러가 발생하더라고요. 그래서 timeout 을 늘리고자
let balanceOf = async ()=>{
const URL = "https://public-node-api.klaytnapi.com/v1/cypress"
const caver = new Caver(new Caver.providers.HttpProvider(URL, {timeout: 10000}));
const contract = new caver.klay.Contract(abi);
contract.options.address = "0xf3b576451b0601813edee3ba399d921c3937efae";
const result = await contract.methods.balanceOf("0xc134151d01f5b7845970a1fbc4fd39b9988ee96f").call().then((data) => {
return data;
}).catch((err)=>{
throw err
});
console.log(result)
}
(async()=> {
await balanceOf();
})();
대략 이런식으로 테스트해봤는데
/Users/harry/Codes/private-project/node_modules/caver-js/packages/caver-core-helpers/src/errors.js:85
return new Error(`Returned error: ${message}`)
^
Error: Returned error: execution aborted (timeout = 5s)
at Object.ErrorResponse (/Users/harry/Codes/private-project/node_modules/caver-js/packages/caver-core-helpers/src/errors.js:85:16)
at /Users/harry/Codes/private-project/node_modules/caver-js/packages/caver-core-requestmanager/src/index.js:155:44
at /Users/harry/Codes/private-project/node_modules/caver-js/packages/caver-core-requestmanager/caver-providers-http/src/index.js:153:17
at processTicksAndRejections (node:internal/process/task_queues:96:5)
여전히 동일한 에러가 발생하더라고요.
혹시 timeout을 별도로 늘리는 방법은 없을까요?
options 에 {timeout: 10000} (10초) 로 설정했는데 로그에는 왜 timeout = 5s 로 찍히는 걸까요?
klaytn 코드에도
if evm.Cancelled() {
return nil, 0, 0, 0, fmt.Errorf("execution aborted (timeout = %v)", timeout)
}
이렇게 있는걸 봐서는 설정한 time이 찍혀서 의문이네요… 혹시 제가 빼먹은 옵션이나 실수가 있을까요? 감사합니다