Skip to main content
StableNet은 완전한 EVM 호환성을 제공합니다. 단 하나의 제외(blob 옵코드)와 하나의 추가(Anzeon BLS 프리컴파일)가 있습니다.

지원 명령어 세트

StableNet은 Anzeon EVM 명령어 세트를 사용하며, 이는 부분적인 Cancun 지원이 포함된 London + Shanghai와 동일합니다:

툴 설정

모든 툴링에서 evmVersionshanghai로 설정하세요. cancun을 사용하면 컴파일 오류나 런타임 실패가 발생합니다. Hardhat (hardhat.config.js):
Foundry (foundry.toml): Foundry는 Solidity 0.8.20+에 대해 기본값으로 shanghai를 사용합니다. 프로필에 evm_version을 명시적으로 설정하지 않은 경우 변경이 필요 없습니다.

미지원: Blob 옵코드

다음 Cancun 옵코드는 지원되지 않습니다: 이 옵코드를 사용하는 컨트랙트는 런타임에서 revert됩니다. Solidity 컴파일러 설정에서 evmVersion: "cancun"을 사용하지 마세요.

추가: Anzeon 프리컴파일

StableNet은 커스텀 프리컴파일을 하나 추가합니다: 이 프리컴파일은 합의 레이어에서 내부적으로 사용됩니다. 애플리케이션 컨트랙트에서 직접 호출할 필요가 없습니다.

표준 프리컴파일

모든 표준 EVM 프리컴파일이 정규 주소에서 사용 가능합니다:

네이티브 시스템 컨트랙트

StableNet은 일반 CALL 흐름에 참여하는 Go 구현 시스템 컨트랙트도 포함합니다: 이것들은 내부 시스템 컨트랙트입니다. 애플리케이션 컨트랙트는 NativeCoinAdapter를 통해 간접적으로 상호작용합니다.

StableNet 특이 동작

다음 동작은 표준 이더리움 EVM 실행과 다릅니다: 블랙리스트 상태는 GovCouncil 컨트랙트(0x…1004)가 관리하며 각 계정의 Extra 필드에 저장됩니다. 이 검사는 RPC 레이어가 아닌 EVM 레이어에서 발생합니다 — 블랙리스트 주소로의 트랜잭션은 추정 시점에 eth_estimateGas를 통과하더라도 revert됩니다.

개발자 이점

  • 기존 모든 Solidity 라이브러리와 패턴이 수정 없이 동작
  • EIP-2930 접근 목록과 EIP-1559 수수료 지원
  • Multicall3, OpenZeppelin 컨트랙트, 표준 툴링이 즉시 사용 가능

관련 문서