# Caver-js timeout 설정 문의드립니다

**URL:** <https://devforum.kaia.io/t/caver-js-timeout/6440>\
**Category:** Caver\
**Created:** [2월 14, 2023, 12:42오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440 "2023-02-14T00:42:26Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![11125](https://avatars.discourse-cdn.com/v4/letter/1/c2a13f/32.png) [@11125](https://devforum.kaia.io/u/11125)\
**Post date:** [2월 14, 2023, 12:42오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/1 "2023-02-14T00:42:26Z")

</div>

안녕하세요. caver-js 관련 문의드립니다.

컨트랙트로부터 정보를 가져오려고 할때 가끔  
`Returned error: execution aborted (timeout = 5s)`  
이라는 에러가 발생하더라고요. 그래서 timeout 을 늘리고자

```auto
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();
})();

```

대략 이런식으로 테스트해봤는데

```auto
/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 코드에도

```go
if evm.Cancelled() {
		return nil, 0, 0, 0, fmt.Errorf("execution aborted (timeout = %v)", timeout)
	}

```

이렇게 있는걸 봐서는 설정한 time이 찍혀서 의문이네요… 혹시 제가 빼먹은 옵션이나 실수가 있을까요? 감사합니다

---

<div class="post-metadata">

**Author:** ![11125](https://avatars.discourse-cdn.com/v4/letter/1/c2a13f/32.png) [@11125](https://devforum.kaia.io/u/11125)\
**Post date:** [2월 14, 2023, 1:07오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/2 "2023-02-14T01:07:50Z")

</div>

추가로

```auto
const result = await contract.methods.totalSupply().call({timeout: 7000}).then((data) => {

```

이런식으로 call() 안에 옵션넣어서 시도도 해보고,  
HttpProvider랑 call() 안에 둘다 옵션 넣어서 시도해봤는데 같은 에러 발생합니다 ㅠㅠ 혹시 노드 설정을 바꿔줘야하는 부분일까요…ㅠㅠ

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [2월 15, 2023, 1:03오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/3 "2023-02-15T01:03:51Z")

</div>

안녕하세요 timeout은 노드에 설정이 되어있는 부분이라 client에서 변경하지 못합니다.

현재 퍼블릭 EN에 테스트하시는것같은데 개별적으로도 노드를 운영중이신가요?

---

<div class="post-metadata">

**Author:** ![11125](https://avatars.discourse-cdn.com/v4/letter/1/c2a13f/32.png) [@11125](https://devforum.kaia.io/u/11125)\
**Post date:** [2월 15, 2023, 1:44오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/4 "2023-02-15T01:44:04Z")

</div>

답변 감사합니다. 개별 노드를 띄워놓긴했는데 용량이 너무 방대해서 중지시켜둔 상태입니다. 퍼블릭노드를 사용하는 동안에는 별다른 수가 없겠네요,

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [2월 15, 2023, 2:03오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/5 "2023-02-15T02:03:56Z")

</div>

컨트랙트 balanceOf는 직접 작성하신건가요?

---

<div class="post-metadata">

**Author:** ![11125](https://avatars.discourse-cdn.com/v4/letter/1/c2a13f/32.png) [@11125](https://devforum.kaia.io/u/11125)\
**Post date:** [2월 15, 2023, 2:07오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/6 "2023-02-15T02:07:37Z")

</div>

직접 작성한 건 아닙니다. 표준 KIP17 contract 로 만들어졌거나 대부분의 nft는 balanceOf 했을때 별 이상이 없는데 저 token (0xf3b576451b0601813edee3ba399d921c3937efae) 만 신기하게 balanceOf 조회했을때 TImeout이 나서 궁금해서 연구하고 있었습니다.

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [2월 15, 2023, 2:14오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/7 "2023-02-15T02:14:50Z")

</div>

dm으로 ABI주시면 한번 테스트해볼게요

---

<div class="post-metadata">

**Author:** ![11125](https://avatars.discourse-cdn.com/v4/letter/1/c2a13f/32.png) [@11125](https://devforum.kaia.io/u/11125)\
**Post date:** [2월 16, 2023, 7:33오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/8 "2023-02-16T07:33:34Z")

</div>

감사합니다! 혹시 노드에서 설정하는 부분 어디 있는지 알수있을까요?

> **[환경설정](https://ko.docs.klaytn.foundation/content/operation-guide/configuration#properties)**

여기 읽어봤는데 말씀하신 부분이 안보이네요.

abi는 제가 배포한 컨트랙트도 아니고 등록된 컨트랙트도 아니라 드릴 수가 없네요ㅠ 제 생각에는 balanceOf 구현이 다른 일반적인 Token과 다르게 내부에서 루프를 타서 그런것이 아닐까 생각이 듭니다.

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [2월 16, 2023, 11:24오전 UTC](https://devforum.kaia.io/t/caver-js-timeout/6440/9 "2023-02-16T11:24:04Z")

</div>

kend.conf 파일에 ADDITIONAL=“–rpc.evmtimeout 10s” 이런식으로 넣어주시면 됩니다.
