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 / 103
重放保护
- ExecuteWithSig:账户级递增 nonce。
- ERC-8112:按 asset + to 作用域隔离。
- ERC-8114:按 asset + tokenId 作用域隔离。
- Dex/NFT Market:订单 hash 在成交或取消时标记 consumed。
- Will:willVersion + activePlanHash。Session Pay:累计 newTotalPaid + revoked 状态。