# Klaytn v1.10.2 의 evm에서 block.chainid를 실행할 수 없나요?

**URL:** <https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710>\
**Category:** Kaia\
**Tags:** smart-contract\
**Created:** [5월 2, 2023, 7:14오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710 "2023-05-02T07:14:53Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![zayden\_lee](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/zayden_lee/32/3237_2.png) [@zayden\_lee](https://devforum.kaia.io/u/zayden_lee)\
**Post date:** [5월 2, 2023, 7:14오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/1 "2023-05-02T07:14:53Z")

</div>

최신버전의 노드로 환경을 구성하고, block.chainid 가 포함된 contract를 배포하려고 하면 0x02 에러가 발생합니다.  
현재 지원을 하지 않는것인가요?

---

<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:** [5월 2, 2023, 7:21오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/2 "2023-05-02T07:21:26Z")

</div>

안녕하세요, 좀 더 자세한 설명 부탁드리겠습니다.

---

<div class="post-metadata">

**Author:** ![zayden\_lee](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/zayden_lee/32/3237_2.png) [@zayden\_lee](https://devforum.kaia.io/u/zayden_lee)\
**Post date:** [5월 2, 2023, 7:51오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/3 "2023-05-02T07:51:33Z")

</div>

안녕하세요. 확인 감사합니다.

개발환경

- solidity version : v0.8.14
- node version : v1.10.2

제가 현재 발생하는 문제는 solidity code에서 block.chainid를 통해 chainid를 가져오는 내용을 추가하면 deploy 시 0x02 에러가 발생됩니다. (block.chainid 호출부분을 제거하면 정상적으로 배포 가능)

EIP-1344 변경내용이 klaytn v1.7.0 부터 포함되었다고 확인하였고, 관련 opcode도 사용 가능할 것으로 예상되는데 아닌가요??

---

<div class="post-metadata">

**Author:** ![yumiel](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yumiel/32/3168_2.png) [@yumiel](https://devforum.kaia.io/u/yumiel)\
**Post date:** [5월 2, 2023, 8:57오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/4 "2023-05-02T08:57:24Z")

</div>

안녕하세요, 네 해당 opcode가 제거된 적은 없습니다. 저도 테스트해보았는데, block.chainId 포함여부에 따라 결과가 다르게 나오진 않네요… 혹시 지금 테스트중인 개발환경이 어떻게 되어 있는지 정보를 더 주실수 있을까요?

예시.

- 노드정보 (url)
- 배포환경 (ex. javascript console, remix, curl, …)
- 에러 로그 (ex. `creation of ChainIDTest errored: Returned error: {"jsonrpc":"2.0","error":"Error: Error: The transaction type [0x2] is not supported","id":2892446107086314}`)
- block.chainId만 호출하는 컨트랙트 배포 결과

```auto
pragma solidity >=0.8.0 <0.9.0;

contract ChainIDTest {
    uint256 chainID;
    function blockCall() public {
        chainID = block.chainid;
    }
    function getChainID() public view returns (uint256) {
        return chainID;
    }
}

```

---

<div class="post-metadata">

**Author:** ![zayden\_lee](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/zayden_lee/32/3237_2.png) [@zayden\_lee](https://devforum.kaia.io/u/zayden_lee)\
**Post date:** [5월 3, 2023, 5:50오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/5 "2023-05-03T05:50:37Z")

</div>

안녕하세요. 친절한 답변 감사합니다.

공유해주신 예제코드로 테스트 결과 deploy시에는 에러가 발생하지 않지만, blockCall 호출 시 발생되고 있습니다. (block.chainid 호출 시점에서 발생되는 듯 합니다. 기존에는 생성자에서 호출되어있어서 deploy시 에러가 발생된듯 합니다.)

같은내용으로 바오밥 테스트넷에 테스트해보니 정상적으로 작동하는것을 보았을 때, 환경 차이로 생각되어 아래내용을 확인해보았습니다.

자체 구축한 체인

- attach 시 출력되는 instance 정보 : Klaytn/v1.10.2/linux-amd64/go1.15.7

바오밥 테스트넷 체인

- attach 시 출력되는 instance 정보 : Klaytn/v1.10.2/linux-amd64/go1.18

위와 같이 golang버전에 차이가 있는것 같은데, 해당부분이 문제가 되는걸까요?  
서비스체인 빌드는 go1.15.7 로 빌드된 바이너리같은데, 서비스체인은 지원이 안되는 걸까요?

---

<div class="post-metadata">

**Author:** ![zayden\_lee](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/zayden_lee/32/3237_2.png) [@zayden\_lee](https://devforum.kaia.io/u/zayden_lee)\
**Post date:** [5월 3, 2023, 6:08오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/6 "2023-05-03T06:08:08Z")

</div>

안녕하세요. 친절한 답변 감사합니다.

공유해주신 예제코드로 테스트 결과, deploy 시에는 에러가 발생하지 않지만, blockCall 호출 시 동일한 문제가 발생됩니다.  
기존에 테스트 했던 코드에서는 생성자에서 block.chainid 를 호출하고있어 deploy 시 문제가 발생된것으로 보았을 때 block.chainid 호출 시 에러가 발생하는 것 같습니다.

공유해주신 예제코드로 바오밥 테스트넷에서 테스트해보니 정상적으로 작동되어, 각 환경을 확인해보니 attach 시 출력되는 instance 정보가 아래처럼 다릅니다.

- 자체구축 서비스 체인 : Klaytn/v1.10.2/linux-amd64/go1.15.7
- 바오밥 테스트넷 체인 : Klaytn/v1.10.2/linux-amd64/go1.18 (attach url: [https://api.baobab.klaytn.net:8651](https://api.baobab.klaytn.net:8651))

golang 버전의 문제인지는 모르겠으나, 서비스체인, 바오밥체인 각 빌드가 golang 버전이 다른 이유가 있을까요?  
혹시 서비스체인에서는 지원이 안되는걸까요?

---

<div class="post-metadata">

**Author:** ![yumiel](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yumiel/32/3168_2.png) [@yumiel](https://devforum.kaia.io/u/yumiel)\
**Post date:** [5월 3, 2023, 6:31오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/7 "2023-05-03T06:31:58Z")

</div>

아 혹시 klay.getChainConfig() 결과에서 istanbulCompatible 블록번호를 한번 확인해보시겠어요? chainId opcode의 경우 v1.7.0 코드에 포함되어 있다고 할지라도 istanbulCompatible HF가 활성화 되어 있지 않으면 사용이 가능하지 않습니다.  
 → 즉, istanbulCompatibleBlock \< currentBlocknumber 여야 사용가능

> golang 버전의 문제인지는 모르겠으나, 서비스체인, 바오밥체인 각 빌드가 golang 버전이 다른 이유가 있을까요?  
> 혹시 서비스체인에서는 지원이 안되는걸까요?

엇 golang 버전의 경우 빌드한 컴퓨터의 golang 버전에 따라 달라지는 걸로 알고있고, evm 버전과는 상관없습니다. 서비스체인이라고 해서 지원이 안되는건 아닙니다.

---

<div class="post-metadata">

**Author:** ![zayden\_lee](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/zayden_lee/32/3237_2.png) [@zayden\_lee](https://devforum.kaia.io/u/zayden_lee)\
**Post date:** [5월 3, 2023, 6:37오전 UTC](https://devforum.kaia.io/t/klaytn-v1-10-2-evm-block-chainid/6710/8 "2023-05-03T06:37:49Z")

</div>

넵넵 빠른답변 감사합니다.  
golang 버전은 klaytn docs에 올라와있는 서비스체인 바이너리는 1.15.7로 빌드되어있고, 바오밥 테스트넷은 1.18이길래, 여쭤봤습니다.  
말씀해주신 istanbulCompatibleBlock 내용 확인해보도록 하겠습니다.

감사합니다.
