EIP-7702
Stable은 EOA가 계정 코드를 기존 스마트 계약으로 설정할 수 있도록 하는 EIP-7702를 지원합니다. EOA는 위임자의 로직을 실행하는 동안 원래 주소와 개인 키를 유지합니다.
트랜잭션 형식
EIP-7702는 authorizationList 필드가 있는 트랜잭션 유형 0x04를 사용합니다. 각 권한 부여는 해당 트랜잭션에 대해 EOA가 코드를 실행하는 위임 계약을 지정합니다.
{
type: 4,
to: eoa.address,
data: delegateCallData,
authorizationList: [signedAuthorization],
maxPriorityFeePerGas: 0n, // always 0 on Stable
// ... standard EIP-1559 fields
}권한 부여는 다음을 포함합니다.
chainId: 대상 체인과 일치해야 합니다.address: 위임 계약 주소.nonce: 권한 부여 논스(트랜잭션 논스와는 별개).
EIP-7702를 지원하는 지갑 및 라이브러리는 권한 부여 형식을 자동으로 처리합니다.
툴링
- ethers.js:
wallet.signAuthorization({ chainId, address, nonce })는authorizationList에 포함될 서명된 권한 부여를 생성합니다. - viem:
signAuthorization을 walletClient와 함께 사용한 다음, 결과를sendTransaction에 전달합니다. - Hardhat / Foundry: 도구 체인 버전이 Pectra 하드포크를 지원하는 경우 표준 EIP-7702 트랜잭션 형식이 작동합니다.
다음 권장 사항
- EIP-7702 개념: 위임 모델과 사용 시기를 이해합니다.
- 계정 추상화 (EIP-7702): 일괄 결제, 지출 한도 및 세션 키를 단계별로 구현합니다.

