Skip to main content

개요

지갑 제공자는 귀속을 활성화하기 위해 dataSuffix 기능을 지원해야 합니다. 이는 기능을 수락하고 서명 전에 calldata에 서픽스를 추가하는 것을 포함합니다.
1

dataSuffix 기능 지원

지갑은 wallet_sendCallscapabilities 객체에서 dataSuffix 객체를 허용해야 합니다.
type DataSuffixCapability = {
  value: `0x${string}`;  // hex-encoded bytes provided by the app
  optional?: boolean;    // whether the capability is optional
}
2

Calldata에 서픽스 추가

트랜잭션 또는 User Operation을 구성할 때 dataSuffix를 추출하여 calldata에 추가합니다.
tx.data에 추가합니다.
// Minimal example for EOA
function applySuffixToEOA(tx, capabilities) {
  const suffix = capabilities.dataSuffix?.value
  if (!suffix) return tx

  return {
    ...tx,
    // Append suffix bytes (remove 0x prefix from suffix if tx.data has it)
    data: tx.data + suffix.slice(2)
  }
}
3

지갑 귀속 추가 (선택사항)

지갑은 앱의 서픽스 앞에 지갑 자체의 귀속 코드(자체 ERC-8021 서픽스)를 포함할 수도 있습니다.
  • 앱과의 상호작용 불필요: 지갑이 독립적으로 처리합니다.
  • 다중 코드 지원: ERC-8021은 기본적으로 여러 귀속 코드를 지원합니다.
예시:
finalSuffix = walletSuffix + appSuffix
이를 통해 앱과 지갑 모두 온체인 귀속을 받을 수 있습니다.