Skip to main content

Permit2

Permit2 是一个代币授权合约,充当共享的授权管理器。用户无需为每个 DEX 合约单独授权,只需将代币一次性授权给 Permit2,然后为特定花费者(如 Universal Router)授予细粒度的权限。

为什么需要 Permit2?

传统的 ERC-20 授权存在几个问题:

工作原理

步骤 1:将代币授权给 Permit2

标准的 ERC-20 approve()。每个代币只需执行一次。

步骤 2:通过 Permit2 授予权限

调用 Permit2.approve() 让 Universal Router 通过 Permit2 使用你的代币:

步骤 3:交易执行

当 Universal Router 执行交易时,它通过 Permit2 从用户处拉取代币 — 无需用户进一步交互。

查询授权额度

查询现有权限:
在以下情况下交易将失败:
  • amount 小于交易输入金额
  • expiration 已过期

安全优势

  • 范围化权限:每个花费者拥有自己的授权额度和过期时间
  • 单点撤销:撤销对 Permit2 的 ERC-20 授权即可禁用所有下游花费者
  • Nonce 追踪:防止重放攻击
  • 过期机制:权限在设定时间后自动失效