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

EIP-7702

Stable은 EIP-7702를 지원하며, 이를 통해 EOA가 자신의 계정 코드를 기존 스마트 컨트랙트로 설정할 수 있습니다. EOA는 원래의 주소와 프라이빗 키를 유지하면서 위임 대상의 로직을 실행합니다.

트랜잭션 형식

EIP-7702는 authorizationList 필드를 포함하는 트랜잭션 타입 0x04를 사용합니다. 각 authorization은 해당 트랜잭션에서 EOA가 실행할 코드를 가진 위임 컨트랙트를 지정합니다.

{
  type: 4,
  to: eoa.address,
  data: delegateCallData,
  authorizationList: [signedAuthorization],
  maxPriorityFeePerGas: 0n, // always 0 on Stable
  // ... standard EIP-1559 fields
}

authorization이 담는 정보:

  • chainId: 대상 체인과 일치해야 합니다.
  • address: 위임 컨트랙트 주소입니다.
  • nonce: authorization nonce(트랜잭션 nonce와 별개)입니다.

EIP-7702를 지원하는 지갑과 라이브러리는 authorization 형식을 자동으로 처리합니다.

도구

  • ethers.js: wallet.signAuthorization({ chainId, address, nonce })authorizationList에 포함할 서명된 authorization을 생성합니다.
  • viem: walletClient와 함께 signAuthorization을 사용한 다음, 그 결과를 sendTransaction에 전달합니다.
  • Hardhat / Foundry: 도구 체인 버전이 Pectra 하드포크를 지원하면 표준 EIP-7702 트랜잭션 형식이 동작합니다.

다음 권장 사항