Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

시스템 모듈

Stable의 핵심 프로토콜 동작은 x/bank, x/distribution, x/staking과 같은 SDK 모듈에 있습니다. 이 동작을 EVM에서 접근 가능하도록 Stable은 각 모듈을 고정 주소의 사전 컴파일된 컨트랙트로 노출합니다. Solidity로 작성된 컨트랙트는 사전 컴파일을 직접 호출하며, EVM은 이 호출을 네이티브 SDK 핸들러로 라우팅합니다. 사전 컴파일은 프로토콜 수준에서 구현되므로, 동등한 Solidity 재구현보다 훨씬 더 가스 효율적입니다.

세 가지 모듈

모듈사전 컴파일 주소목적
뱅크0x0000…1003 (STABLE)토큰 전송, 잔액 회계, 허용치 관리, 승인된 컨트랙트에 대한 mint/burn.
분배0x0000…0801스테이킹 보상 청구, 보상 쿼리, 인출 주소 관리.
스테이킹0x0000…0800위임, 위임 해제, 재위임, 검증인 쿼리.
시스템 트랜잭션0x0000…9999SDK 계층 작업(예: 언본딩 완료)에 대해 프로토콜에서 발행하는 EVM 이벤트.

위 각 페이지는 모듈이 무엇을 하는지, 언제 사용해야 하는지, 그리고 해당 ABI를 어디서 찾을 수 있는지 설명합니다.

Solidity가 아닌 사전 컴파일인 이유

두 가지 이유가 있습니다:

  • 가스 효율성. 사전 컴파일은 프로토콜의 네이티브 실행 경로에서 실행됩니다. 동등한 Solidity 컨트랙트는 훨씬 더 높은 가스 비용으로 동일한 로직을 재구현할 것입니다.
  • 단일 정보원. 스테이킹, 분배, 토큰 공급은 프로토콜 수준의 상태입니다. 사전 컴파일을 통해 이를 노출함으로써 SDK에서 벗어날 수 있는 중복된 Solidity 구현을 유지할 필요가 없습니다.

권한 부여

일부 사전 컴파일 메서드(mint, burn, 프로토콜 수준 스테이킹 작업)는 호출자 권한 부여를 요구합니다. x/precompile 모듈은 온체인 화이트리스트를 유지하며, 등록되지 않은 컨트랙트의 호출은 되돌려집니다. 이는 읽기/전송 메서드의 일반적인 EVM 사용을 차단하지 않으면서 특권 작업을 거버넌스 제어가 가능하게 합니다.

다음 권장 사항

  • 뱅크 모듈: 토큰 전송, 허용치, mint/burn 승인 모델을 이해합니다.
  • 스테이킹 모듈: 위임 및 검증인 관리가 EVM에 어떻게 도달하는지 확인합니다.
  • 시스템 트랜잭션: 언본딩 완료와 같은 프로토콜 수준 이벤트가 EVM 로그로 어떻게 나타나는지 알아봅니다.