资助申请:程序化订单API

FromCoW DAO GrantsSourceSnapshotAuthor0x3ebC...5728已关闭查看原文参与讨论

摘要

AI 生成

本提案旨在为CoW协议开发一个程序化订单API,以支持可组合订单和闪电贷订单等高级交易策略。该API将提供统一的订单追踪和管理功能,支持前端集成、EOA用户访问及第三方开发者使用。通过构建可扩展的GraphQL索引器基础设施,实现对多种订单类型的全面监控,包括TWAP、止损、永续互换等,从而提升CoW协议的程序化交易体验和开发者生态。

注:摘要由 AI 自动生成,可能与正文存在差异,仅供参考。

提案内容

AI 翻译

资助申请:程序化订单 API

资助标题:

程序化订单 API


作者:

@bleu @yvesfracari @ribeirojose @mendesfabio


关于您:

bleu 作为 Web3 技术和用户体验合作伙伴,与公司和 DAO 合作。我们热衷于弥合在区块链和 Web3 领域所见的体验鸿沟。我们已经为 CoW 协议完成了 10 多项资助项目,包括 Hook 去中心化应用、框架无关 SDK、Python SDK 以及各种 Safe 应用。


相关链接:

我们为 CoW 协议完成的工作包括:

  • [CoW] 框架无关 SDK:重构了 CoW SDK,以支持多个 EVM 适配器(ethers v5/v6, viem, wagmi),实现了框架无关的集成。
  • [CoW] Hook 去中心化应用:开发了一套集成在 CoW Swap 前端的 Hook 去中心化应用,包括流动性池 Hook、领取空投和归属 Hook。
  • [CoW] Python SDK:创建了 CoW SDK 的 Python 版本,供开发者查询链上数据、管理订单以及与 CoW 协议的智能合约集成。
  • [CoW] AMM 部署器:用于从 Safe 钱包部署新的 CoW AMM 资金池的 Safe 应用。
  • [CoW] 止损:用于创建止损订单的 Safe 应用。在此资助期间,我们开发了一个 API 来跟踪可组合 CoW 订单的创建并解码止损订单:https://composable-cow-api.up.railway.app/

资助类别:

核心基础设施与开发者工具


资助描述:

CoW 协议支持多种类型的程序化订单,以实现高级交易策略:

  • 可组合 CoW 订单:条件订单,如 TWAP、止损、永续互换、指定时间后生效和高于阈值交易
  • 闪电贷订单:通过预部署的辅助合约集成的 AAVE

随着程序化订单通过 CoWShedForComposableCow 和其他机制对 EOA 可用,需要统一的索引基础设施来支持 CoW Swap 前端和生态系统应用。

目前,缺乏统一的基础设施来高效地跟踪和查询所有类型的程序化订单。这带来了一些问题:

  • 订单簿之前缺乏订单可见性:程序化订单只有在实际下达且可执行时,才会在 CoW 协议订单簿中可见。在此之前,没有集中化的方式来跟踪待处理订单、监控其状态或向用户展示。
  • 难以将 CoWShedForComposableCow 合约与 EOA 映射:每个用户通过自己的 CoWShed 代理合约与可组合 CoW 交互,这使得建立代理地址与实际 EOA 所有者之间的关系变得困难。
  • 闪电贷订单所有权跟踪:AAVE 集成依赖于一种模式,即 EOA 下达一个订单,其所有者是一个未部署的辅助合约,该合约随后在预部署中部署。这实现了强大的功能,但造成了糟糕的用户体验,因为更难跟踪订单的原始所有者和显示交易历史。

我们提议构建一个程序化订单 API,提供对所有程序化订单数据的可查询访问。该 API 将使用 Ponder 作为索引框架构建,并将:

  • 索引在支持的链上创建的所有可组合 CoW 订单,并进行实时监控
  • 解码所有可组合 CoW 订单类型:
    • TWAP(时间加权平均价格)订单
    • 止损订单
    • 永续互换订单
    • 指定时间后生效订单
    • 高于阈值交易订单
  • 通过将已部署的辅助合约与其合法的 EOA 所有者关联来跟踪闪电贷订单(AAVE 集成)
  • 通过与 CoW Shed 集成来解析所有权,将合约地址映射到 EOA 所有者
  • 通过 GraphQL 端点提供 API 访问,具备全面的查询能力

闪电贷订单索引方法:

对于闪电贷订单(AAVE 集成),我们需要在已部署的辅助合约和原始 EOA 所有者之间建立链接。目前,没有事件链接这两个地址,因此我们建议添加此事件以提高索引器效率。然而,我们针对已执行的订单提出了两种变通方法:

解决方案 1:工厂事件监控

  • 监控 AaveV3AdapterFactory.deployAndTransferFlashLoan 调用,其中接收者是辅助合约,所有者是创建订单的 EOA
  • 挑战:需要调用跟踪,但并非所有链都支持,并且依赖于昂贵的 RPC 调用

解决方案 2:交易事件模式检测

  • 监听交易事件,并通过调用特定的 ABI 方法来验证所有者是否遵循辅助合约模式
  • 挑战:需要大量 RPC 调用,但在所有链上都有效

资助目标与影响:

此项资助将为 CoW 协议的程序化订单生态系统提供关键基础设施,通过实现以下功能:

  • 支持 CoW Swap 前端集成:使前端能够向用户展示所有程序化订单(可组合 CoW 订单和闪电贷订单),提供对其活跃、已完成和已取消订单的完整可见性。
  • EOA 支持:随着程序化订单通过 CoWShedForComposableCow 和辅助合约向普通钱包开放,用户将需要一个统一的方式来管理和监控他们的订单
  • 统一订单追踪:支持所有程序化订单类型:
    • 可组合 CoW 订单(TWAP、止损、永续互换、定时生效、阈值以上交易)
    • 闪电贷订单(AAVE 集成、通用包装器)
  • 第三方集成:开发者可以使用相同的 API 来调试和追踪他们自己的程序化订单
  • 可扩展的基础设施:可扩展的架构,随时准备支持新开发的程序化订单类型

GraphQL 模式草案:

索引器将通过 GraphQL API 公开以下模式:https://dbdiagram.io/d/[DRAFT]-CoW-Programmatic-Orders-Indexer-6978e864bd82f5fce2c96408

模式设计原理:

  • 交易:追踪订单创建和取消的所有交易详情
  • 用户:可以是 EOA 或代理合约(AAVE 闪电贷辅助合约或 CoW Sheds)。如果是代理,则引用其真实所有者。
  • ComposableCoW:可组合 CoW 订单的核心实体,包含所有权信息。
  • 订单类型实体:每种可组合 CoW 订单类型都有其特定参数的专用字段
  • 代币:标准化实体,以避免数据重复并支持聚合统计
  • 订单:链接到 CoW 协议订单簿上的订单,并关联创建该订单的实体。对于在创建可组合 CoW 时未定义 UID 的订单(如 PerpetualSwap),这会更复杂,但可以通过与 getTradableOrderWithSignature 进行比较来实现。这将需要历史地和实时地汇集订单簿数据,由于这是链下数据,需要对索引框架进行调整。此外,为了最小化实时索引的延迟,我们需要对订单匹配算法进行复杂的优化。

里程碑:

里程碑时长付款
可组合 CoW 订单追踪2 周6k xDAI
闪电贷订单追踪 & CoWShed 所有权映射1.5 周4.5k xDAI
订单簿集成3 周9k xDAI
审查与文档1.5 周4.5k xDAI

可组合 CoW 订单追踪与解码(2 周)

  • 使用 PostgreSQL 数据库设置 Ponder 索引器
  • 监听可组合 CoW 订单创建和取消事件
  • 历史数据回填和实时监控
  • 为所有五种订单类型实现解码器(TWAP、止损、永续互换、定时生效、阈值以上交易)
  • 将缺失的条件订单(除 TWAP 外的所有类型)集成到 cow-sdk

闪电贷和 CoWShed 订单追踪(AAVE)(1.5 周)

  • 闪电贷订单到 EOA 所有者的映射(AAVE 集成)
    • 实现工厂事件监控 AaveV3AdapterFactory.deployAndTransferFlashLoan
    • 实现交易事件作为后备方案
    • 支持合约事件增强(当可用时)
  • CoWShedForComposableCow 代理到 EOA 所有者的映射
  • 追踪 CoWShed 代理部署
  • 将代理合约链接到其控制的 EOA

订单簿集成(3 周)

  • 汇集历史和实时的订单簿数据。
  • 订单簿订单与生成器的匹配。
  • 将订单链接到其原始的程序化订单生成器
  • 追踪可组合 CoW 订单的执行状态

审查与文档(1.5 周)

  • CoW 团队审查和错误修复
  • 完整的 API 文档(GraphQL 模式、示例)
  • 前端和第三方开发者的集成指南
  • 关于如何运行和部署应用程序的 README 文档

资金请求:

我们建议在每个里程碑获得批准后支付相应款项。
此外,我们请求额外 40k COW 代币,分 12 个月线性释放,以覆盖同期的持续维护工作。


预算明细:

我们建议采用与我们之前赠款类似的支付结构:

  • 每个里程碑完成后支付 xDAI
  • COW 代币分 12 个月线性释放,用于持续维护和支持
  • RPC 成本应由 CoW 协议通过提供私有 RPC 连接链接来覆盖。理想情况下,应为每条链提供一个 RPC,但仅在一条链上开发也是可行的。

Gnosis Chain 地址(用于接收赠款):

0x554866e3654E8485928334e7F91B5AfC37D18e04


其他信息:

  • 由于快照 10k 字符的限制,其他信息已省略。但可以在此处链接的论坛帖子中查看。

条款与条件:

通过提交此赠款申请,我确认并同意受 CoW DAO 参与协议和 CoW 赠款条款与条件的约束。

暗流 © 2026
Undertide Information