摘要
AI 生成摘要本提案旨在扩展 Uniswap 协议费用至 Arbitrum、Base 等八条新链,并通过新的 v3OpenFeeAdapter 在主网及这些 L2 上为所有 v3 资金池启用基于层级的协议费用。费用将路由至各链的 TokenJar,L2 上销毁的 UNI 会桥接回主网销毁。提案采用新的快速治理流程,将分两个并行链上投票执行。
注:摘要由 AI 自动生成,可能与正文存在差异,仅供参考。
本提案旨在扩展 Uniswap 协议费用至 Arbitrum、Base 等八条新链,并通过新的 v3OpenFeeAdapter 在主网及这些 L2 上为所有 v3 资金池启用基于层级的协议费用。费用将路由至各链的 TokenJar,L2 上销毁的 UNI 会桥接回主网销毁。提案采用新的快速治理流程,将分两个并行链上投票执行。
注:摘要由 AI 自动生成,可能与正文存在差异,仅供参考。
这是首个使用在 UNIfication 中 已批准 的新治理流程的提案。新流程仅适用于费用参数更新,此类提案可以绕过 RFC 阶段,直接进入为期五天的 Snapshot 投票,随后进行链上投票。这使得协议费用更新更快,同时保留了链上治理的安全性。
自 UNIfication 于 12 月下旬上线以来,我们一直在监控协议费用,其推出是渐进的,以确保协议健康。这始于以太坊主网上的 v2 和选定的 v3 资金池。此次推出进展顺利,自 12 月以来,以太坊主网上经市场调整的 TVL 有所上升。销毁系统按预期运行,无需许可地将 许多不同代币 的费用转换为 UNI 销毁。
现在,我们提议:
将协议费用扩展到 L2 并在主网销毁 UNI
本提案在八条链上引入 v2 和 v3 协议费用。每条链上的费用将被路由到该链各自的 TokenJar。
在 L2 上销毁的 UNI 不会留在 L2 上——它会被桥接回主网并发送到 0xdead。这使用了与销毁 Unichain 排序器费用相同的基础设施(OP Stack 链使用 OptimismBridgedResourceFirepit,Arbitrum 使用 ArbitrumBridgedResourceFirepit)。
在所有 v3 资金池启用费用
当前的 v3FeeAdapter 逐个资金池管理协议费用,治理维护着各个资金池及其费用级别的列表。目前,这些资金池占以太坊主网上 v3 交易量的绝大部分。
v3OpenFeeAdapter 用一个基于层级的系统取代了这一点。协议费用在共享相同 LP 费用层级的所有资金池中统一设置。例如,所有 1bps LP 费用资金池的协议费用可以设置为 25%。任何资金池都会自动获得其层级的默认协议费,无需治理行动。这意味着如果此提案通过,协议费用将在每个 v3 资金池上生效。治理保留覆盖单个资金池费用的能力。
提案前 - 在链上投票前完成:
/// 对于每个 L2:
/// 部署 TokenJar
TokenJar tokenJar = new TokenJar{salt: SALT_TOKEN_JAR}();
/// 部署特定于链的 Releaser
/// OP Stack (Optimism, Base, Zora, Worldchain 等):
OptimismBridgedResourceFirepit releaser = new OptimismBridgedResourceFirepit{salt: SALT_RELEASER}(RESOURCE, THRESHOLD, address(tokenJar));
/// Arbitrum:
ArbitrumBridgedResourceFirepit releaser = new ArbitrumBridgedResourceFirepit{salt: SALT_RELEASER}(RESOURCE, L1_RESOURCE, THRESHOLD, address(tokenJar));
/// 在 TokenJar 上设置 releaser(必须在所有权转移之前)
tokenJar.setReleaser(address(releaser));
/// 在 Releaser 上设置 thresholdSetter(必须在所有权转移之前)
releaser.setThresholdSetter(TIMELOCK_ALIAS);
/// 将 TokenJar 和 Releaser 的所有权转移给治理
tokenJar.transferOwnership(TIMELOCK_ALIAS);
releaser.transferOwnership(TIMELOCK_ALIAS);
/// 对于每个 L2 和主网:
/// 部署 V3OpenFeeAdapter
V3OpenFeeAdapter v3OpenFeeAdapter = new V3OpenFeeAdapter{salt: SALT_FEE_ADAPTER}(address(V3_FACTORY), address(tokenJar));
/// 设置 feeSetter(必须在所有权转移之前)
v3OpenFeeAdapter.setFeeSetter(TIMELOCK_ALIAS); // L2
v3OpenFeeAdapter.setFeeSetter(TIMELOCK); // 主网
/// 将所有权转移给治理
v3OpenFeeAdapter.transferOwnership(TIMELOCK_ALIAS); // L2
v3OpenFeeAdapter.transferOwnership(TIMELOCK); // 主网
/// 仅对于主网:
/// 部署 Firepit(仅主网 releaser,直接销毁)
Firepit releaser = new Firepit{salt: SALT_RELEASER}(RESOURCE, THRESHOLD, address(tokenJar));
/// 在 TokenJar 上设置 releaser(必须在所有权转移之前)
tokenJar.setReleaser(address(releaser));
/// 在 Releaser 上设置 thresholdSetter(必须在所有权转移之前)
releaser.setThresholdSetter(TIMELOCK);
/// 将 TokenJar 和 Releaser 的所有权转移给治理
tokenJar.transferOwnership(TIMELOCK);
releaser.transferOwnership(TIMELOCK);
在此提案中,如果通过:
/// 对于每个 L2:
/// 将 V3 Factory 的所有者设置为 V3OpenFeeAdapter
V3_FACTORY.setOwner(address(v3OpenFeeAdapter));
/// 将 V2 协议费用的接收者设置为 TokenJar
V2_FACTORY.setFeeTo(address(tokenJar));
/// 对于主网:
/// 通过 V3OpenFeeAdapter 转移 V3 Factory 所有权
v3OpenFeeAdapter.setFactoryOwner(address(v3OpenFeeAdapter));
请注意,由于 GovernorBravo 每个提案限制 10 个操作,将有两个独立的链上投票并行发布。一个提案将包括对主网费用控制器的更改,并在 Base、OP Mainnet 和 Arbitrum 上启用费用;另一个将在 Celo、Soneium、Worldchain、X Layer 和 Zora 上启用费用。