生态路线
由意向驱动,无授权,信任中立的协议,为创造,激励执行,证明跨链交易提供便利. 这个执行支持多个跨链通讯协议,包括Hyperlane,LayerZero,Metalayer,和Polymer.
我们确定了三个主要用户简介:
- 用户:想要通过不同链条进行交易的个人
- 解决方案: 有意代表他人进行收费交易的个人
- 推动者: 有意在源链上证明目的地链上意图已实现的个人
目录
结构概览
如何运作
A 类 用户 想要通过创建意图启动跨链交易。 简而言之,意图代表 用户目的地链上的终点目标. 里面有他们想打的电话 那些电话的相应地址 资源a 解决方案 需要执行这些电话,奖励 用户 愿意支付 解决方案 代表它们执行这一呼吁以及其他元数据。 A 类 用户 可在我们的系统上直接公布,或以其他方式将有关信息传播给 解决方案A级 用户 还必须为这种意图提供资金 -- -- 代管与意图相应的奖励标志。 A 类 解决方案在看到这一意图后,根据它盈利的投入和产出确定,并确保 用户 已经为意图提供了资金,筹集了所需资源,并完成了目的地链上符合用户意图的意向交易,在目的地链上存储已实现的意图散列。 A 类 普罗弗 - 也许 解决方案 本身或它们订阅的服务 - 查看此实现交易,并证明目的地链上已完成交易的散列与源链上的意图相符。 在意图被标记为证明之后 解决方案 可以收回他们的奖励.
核心组成部分
门户合同 (单位:千美元)contracts/Portal.sol(中文(简体) )
管理整个意图生命周期的主要意图协议:
- 有意创建:用户定义带有特定参数的跨链操作
- 有意供资: 用户代管确定金库中的奖励符以激励解决者执行
- 有意实现: 溶解器执行请求的操作并提供证据
- 验证:通过多种验证类型验证目的地链实现验证
- 报酬结算: 向成功的解决者分配奖励
多个Prover 类型
与不同跨链通信协议相融合的专门证明:
- 超透视: 跨链信息发送使用超链路
- 图层ZeroProver: 与TyerseZero协议结合进行跨链核查
- 元解析器: 用于跨链证明的元解析器
- 保温器: 用于跨链证明的聚合物
- 本地文件: 处理同链意图
他们如何一起工作
sequenceDiagram
participant User
participant SourcePortal as Portal (Source Chain)
participant DestPortal as Portal (Destination Chain)
participant Solver
participant DestProver as Prover (Destination Chain)
participant Bridge as Cross-Chain Bridge
participant SourceProver as Prover (Source Chain)
User->>SourcePortal: Publish Intent
User->>SourcePortal: Fund Intent
Solver->>DestPortal: Fulfill Intent
Solver->>DestPortal: Prove Intent
DestPortal->>DestProver: Send Proof Message
DestProver->>Bridge: Send Proof Message
Bridge->>SourceProver: Deliver Proof Message
SourceProver->>SourceProver: Handle & Create Proof Record
Solver->>SourcePortal: Withdraw Rewards
SourcePortal->>SourceProver: Verify Proof
SourcePortal->>Solver: Release Rewards
- 有意生命周期:门户网站管理全部意向创建、供资和实现过程
- 跨部门消息: 多个验证器类型处理不同的桥接协议以提供验证
- 警卫: 每个桥的安全模块验证跨链条信息
- 默认系统: 确定性金库的建立,以奖励代管和结算
关键特性
- ERC-7683 兼容性:全面实施跨链订单标准
- 多钱支持: 与任何 EVM 链相通,并支持跨 VM 集成
- 多桥支持: Hyperlane, LayerZero, Metalayer, 和多聚体集成
- 解决方案奖励:基于奖励的系统鼓励解决者参与
- 决定地址:基于CREATE2-一致跨链地址的部署
- ERC20 一体化:基于土著许可证的无气审批和综合象征性支持
- 警卫: 通过门户和桥口专用安全模块进行多层验证
ERC-7683 一体化
生态路线工具 ERC-7683 (中文(简体) ),跨链订单协议的标准。 这使得能够与其他ERC-7683兼容系统无缝互操作性,并为跨链意向创建和实现提供了标准化接口.
ERC-7683 组件
EcoERC7683 奥里金塞特勒: 执行ERC-7683标准、在源链上创建意图和提供资金的我们的系统的切入点.
ECOERC7683 调试 定居者:一个抽象的合同,由我们的门户网站继承,处理ERC-7683兼容的意向在目的地链上实现.
ERC-7683 兼容性的好处
- 标准化接口: 与任何ERC-7683工具和基础设施相兼容
- 生态系统互通性: 与其他基于意图的协议无缝工作
- 开发者经验: 已经使用 ERC- 7683 的开发者的熟悉模式
- 未来证明: 建立在不断发展的跨链交易标准上
用户可以通过我们的本土界面和标准化的ERC-7683接口来创建并实现意向,提供最大的灵活性和相容性.
设置和安装
先决条件
安装所需的工具链组件 :
1. 安装节点.js
# Install nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# Install and use Node.js v18.20.3
nvm install v18.20.3
nvm use v18.20.3
2. 安装软件包管理器
# Install Yarn v1.22.19
npm install -g [email protected]
3. 安装开发工具
# Foundry (recommended)
curl -L https://foundry.paradigm.xyz | bash
foundryup
# Alternative: Hardhat is also supported
npm install -g hardhat
项目设置
1. 克隆和设置
git clone https://github.com/eco/eco-routes.git
cd eco-routes
2. 安装依赖
yarn install
3. 建设项目
yarn build
发展指挥部
大楼
# Build all contracts
yarn build
# Build with Foundry
forge build
# Build with Hardhat
npx hardhat compile
测试
# Run all tests
yarn test
# Run Foundry tests
forge test
# Run with coverage
yarn coverage
# Run specific test file
forge test --match-contract PortalTest
# Run with test output
forge test -vvv
代码质量
运行这些命令以确保您的代码符合标准 :
# Format code
yarn format
# Run linting
yarn lint
# Run all quality checks
yarn lint && yarn test
发展 工作流量
# Start local development environment
# (Configure your local chain setup as needed)
# Deploy contracts locally
forge script script/Deploy.s.sol --broadcast --rpc-url localhost
# Run tests against deployed contracts
forge test --rpc-url localhost
合同
门户合同
关键函数 :
publish- 在源链上创建并发布意图fund- 通过确定性的金库,以奖品资助意图fulfill- 执行意向行动并标出已完成prove- 从目的地链上提交实现证明refund- 如果在超时时间内未实现偿还意图withdraw- 成功验证后撤销奖励
关键部件 :
- 有意来源:在源链上管理意向创建、供资和奖励结算
- 收件箱:处理目的地链上的意向
- 默认:通过CREATE2提供具有决定性地址的奖牌
- 执行者: 安全批量执行意图电话,进行全面安全检查
有意生命周期细节 :
意图出版:意向可以在任何链条上发布,而不论输入和输出符所住的地方. 意图无需通过门户网站发布——用户如果选择,可以直接向解答者发布意图信息.
有意供资:通过CREATE2创建的确定性断层中存储着受资助意图的奖励符. 意向书可以在出版期间,事后通过许可2签名,或者通过直接向"地道"(Vault)转让道具来资助.
有意实现:Fufflement发生于目的地链路门户. 索尔弗斯批准门户网站 以拉出所需的符号 并呼叫完成。 实现可能触发与证明相关的后处理,例如将消息转发回源链.
意向奖励结算: 结算发生在源链上。 提取流量检查证明意图得到证实,并将奖励信物转让给解题人. 如果在最后期限之前未实现意图,用户可以触发退款. 边际案件,如资金过多,处理优雅.
采购合同
超Prover 合同
跨链消息传输使用超链路协议 :
关键函数 :
prove- 通过Hyperlane生成并发送证明信息handle- 处理收到的Hyperlane信件并创建证明记录
层层复制合同
与图层Zero协议结合 :
关键函数 :
prove- 通过LayerZero生成并发送证明信息lzReceive- 处理收到的图层Zero信件
保理商Prover合同
与多聚体协议相融合:
关键函数 :
prove- 从源头事件排出精液,供Polymer转发validate- 从Polymer的CrossL2ProverV2验证和处理证据
辅助合同
破损合同
决定性奖励代管制度:
- 接受原生和ERC20令牌存款
- 向已证实的解决者发放奖励
- 处理过期意图的退款
执行合同
安全呼叫执行系统 :
- 只有 Portal 才能执行调用
- 防止向欧洲审计机关发出危险电话
- 带有全面错误处理的批量执行
测试
测试结构
- 单位测试: 位于
test/按合同编排的目录 - 整合测试:跨多个合同的端到端工作流程测试
- 安全测试: 攻击向量和边缘大小写测试
测试类别
核心合同测试:
Portal.t.sol- 主要门户功能Vault.t.sol- 代管和结算报酬Executor.t.sol- 安全呼叫执行Inbox.t.sol- 有意完成工作流程IntentSource.t.sol- 有意创造和筹资
Prover测试 :
HyperProver.t.sol- 超连带综合测试LayerZeroProver.t.sol- 地层Zero集成测试MetaProver.t.sol- 元器件集成测试PolymerProver.t.sol- 多聚体集成测试
安全测试 :
TokenSecurity.t.sol- 处理安保的托肯- 各种攻击矢量模拟
测试模式
contract PortalTest is BaseTest {
function test_intentFulfillment() public {
// Setup intent and accounts
Intent memory intent = createTestIntent();
// Fund intent
portal.fund(intent, fundingAmount);
// Execute fulfillment
portal.fulfill(intent, solver);
// Verify success
assertTrue(portal.isFulfilled(intentHash));
}
}
运行特定测试
# Run portal-specific tests
forge test --match-contract Portal
# Run prover tests
forge test --match-contract HyperProver
# Run with specific pattern
forge test --match-test test_fulfill
部署
部署指挥部
地方发展:
# Deploy all contracts locally
forge script script/Deploy.s.sol --broadcast --rpc-url localhost
测试网部署:
# Deploy to specific testnet
forge script script/Deploy.s.sol --broadcast --rpc-url $TESTNET_RPC_URL --verify
主网部署:
# Deploy to mainnet
forge script script/Deploy.s.sol --broadcast --rpc-url $MAINNET_RPC_URL --verify
# Or use deployment script
./scripts/deployRoutes.sh
跨 VM 支持
跨核查团部署(如与索拉纳合并):
# Deploy with cross-VM prover support
CROSS_VM_PROVERS="0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ./scripts/deployRoutes.sh
# Multiple cross-VM chains
CROSS_VM_PROVERS="0x1234...solana,0x5678...cosmos" ./scripts/deployRoutes.sh
环境配置
创建 .env 文件基于 .env.example数字 :
# RPC endpoints
MAINNET_RPC_URL=
TESTNET_RPC_URL=
# Private keys
DEPLOYER_PRIVATE_KEY=
# Etherscan API keys for verification
ETHERSCAN_API_KEY=
捐款
代码标准
- 格式化: 使用
yarn format - 线性: 传出
yarn lint无警告 - 测试: 所有测试都必须通过
- 文档: 文档 公共 API 和复杂逻辑
- 警卫:遵循最佳做法并包括安全测试
拖动请求核对表
- 代码格式化( E)
yarn format(中文(简体) ) - 林廷通过(
yarn lint(中文(简体) ) - 所有考试通过(
yarn test(中文(简体) ) - 维持或改进覆盖率
- 为 API 更改更新文档
- 所审议的所涉安全问题
添加新测试
遵循现有模式 test/数字 :
- 创建带有描述性名称的测试文件
- 使用
BaseTest通用测试基础设施 - 测试成败案例
- 包括安全和边框测试
特性发展
- 合同: 在适当的目录中添加新合同
- 跨海峡一体化: 遵循既定的验证模式
- 测试: 增加综合单元和综合测试
- 文档: 更新 README 和内置文档
支助
关于问题:
- 检查现有的 GitHub 问题
- 为使用示例审查测试文件
- 检查合同文件的技术细节
该项目执行生产准备的跨链意向协议,包括全面的测试、多桥式支持和安全意识设计模式。 模块架构允许在维持安全和效率的同时,以新的桥梁协议方便地扩展.