Signing Reference

签名参考

签名必须绑定当前钱包、当前链和准确的业务结构。

3 个章节signing-reference
01

通用规则

  • 发送 eth_signTypedData_v4 时显式包含 types.EIP712Domain。
  • 本地用 ethers TypedDataEncoder 计算 digest 时,types 参数不要包含 EIP712Domain。
  • verifyingContract 通常是执行应用的 wallet 地址,而不是共享 app logic 地址。
  • 对使用链上 nonce 的机制,签名前从 wallet 地址读取对应作用域的值,并核对 chainId 与 deadline;Dex / NFT Market 的 nonce 是订单 salt。
  • 签名验证依赖 Runtime 的 ERC-1271;当前 Account 通过恢复签名地址必须等于 wallet 地址完成校验。
02

当前 EIP-712 域名

1do ExecuteWithSig / 1
ERC8112 Token Transfer / 1
ERC8114 NFT Transfer / 1
Dex Order on 1Do / 1
NFT Market Order on 1Do / 1
Will Plan on 1Do / 1
Session Pay on 1Do / 1
03

重放保护

  • ExecuteWithSig:账户级递增 nonce。
  • ERC-8112:按 asset + to 作用域隔离。
  • ERC-8114:按 asset + tokenId 作用域隔离。
  • Dex/NFT Market:订单 hash 在成交或取消时标记 consumed。
  • Will:willVersion + activePlanHash。Session Pay:累计 newTotalPaid + revoked 状态。