# Ekubo EVM 报价能出却兑换失败：核对路由版本、正负金额、阈值和期限

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/ekubo-evm-yul-route-slippage-deadline-record-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按当前Yul Router v0.8.0官方说明核已有区块报价与原交易，区分exact-in/out、聚合滑点、quote回滚和真实结算。

## 使用工具
- [Ekubo](https://lianxiaozhi.com/tools/ekubo) · [官方入口](https://ekubo.org/)

## 前置条件
- 准备已有EVM兑换预览/脱敏报价和交易记录：chainId、报价block、输入/输出token及decimals、specifiedAmount、total_calculated、splits、目标Router/编码版本、threshold/deadline/recipient与原error。
- 本教程不适用于Starknet Cairo或其他Router编码。按官方当前Yulv0.8.0说明与原版本匹配；不请求Quoter API/RPC、不运行SDK、改阈值、签名或重发。

## 1. 先核链的 Live 状态和 Router 编码版本

在官方EVMV3合约表核chainId及状态。WorldChain480、MegaETH4326当前标AwaitingEIP7939，缺CLZ时swap/positionupdate会revert；相同Core地址或部署存在不代表当前可交易，不能用这两链的失败推滑点原因。

当前生产EVM交易文档指YulRouterv0.8.0；原calldata必须与同版本导出的YUL_ROUTER_ADDRESS匹配。可配置Router、旧MEVCaptureRouter与Yul不是相同调用编码；版本或目标不明时保留未知，不从地址表手工替换后重发。

核对结果：chain状态、目标和原编码版本匹配，部署与可用分开。
依据：[Ekubo：V3 两代 managers 与链可用状态](https://docs.ekubo.org/reference/contracts/evm-v3/)
依据：[Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)

## 2. 把 exact-in 和 exact-out 的方向写清

对原记录抄specifiedToken/calculatedToken和amount原字符串。exact-input的specifiedAmount为正，指定输入币；exact-output为负，specifiedToken是输出币、calculatedToken是输入币，不能只按界面左/右排列推方向。

calculatedAmount在exact-in是正的输出，在exact-out是负的输入。各币原数量需各自decimals，例USDC精度6的1000000才是1币；原token/精度未核不取默认18。负号是路由方向，不能写钱包负余额或退款。

核对结果：端点资产、正负方向和数量精度明确，exact-out输入/输出未反转。
依据：[Ekubo：当前 Trading 与区块固定路由](https://docs.ekubo.org/products/trading/)
依据：[Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)
依据：[Ekubo：价格与费用二进制单位](https://docs.ekubo.org/reference/price-representation/)

## 3. 核完整 splits 与报价区块

从已有报价按splits[].amount_specified、route[].swap.pool_key和hop类型列每条路径；多个split最终由一个Corelock聚合，不是每个中间跳都有用户转账。原报价block必须保存，同一路径在后续区块不保证相同价格或扩展行为。

Quoter字段snake_case、amount/sqrt比值字符串，与SDKcamelCase/bigint不同。只有原返回摘要或缺poolKey/config/端点时停止完整路由判断；不要把全部hop当直接Core.swap，forwarded和wrapper有不同职责，也不能复制报价字符串直接作新交易。

核对结果：全部路径、输入分配、扩展与区块有原依据，中间账不重复算收款。
依据：[Ekubo：当前 Trading 与区块固定路由](https://docs.ekubo.org/products/trading/)
依据：[Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)

## 4. 检查总 amount threshold 和 deadline

calculatedAmountThreshold在exact-in保护总最小输出，在exact-out保护总最大输入；结合对应正负和原单位核。它是所有split聚合后的一项检查，不是每跳相同门槛；false显式表示不设金额界限，不建议为排错取消保护。

v0.8.0 deadline为uint32 Unix秒，当deadline秒仍能执行，下一秒DeadlineExpired。省略deadline则永不过期；官方interface默认签署时按最新blocktimestamp加30分钟，不按设备时钟。截图时间/报价block与原交易deadline分开，旧编码未含此字段时不能推已有保护。

核对结果：总阈值/方向和Unix秒期限正确，未用毫秒或设备时钟误判。
依据：[Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)

## 5. 分清 quote、forwarded 与 direct 的结果

quote(bytes)会执行路径检查后回滚状态并返回结果，必须无ETH value，不需余额/approval；它可冒泡SlippageCheckFailed或其他扩展错误。因此quote返回数值/通过阈值不是资产转移成功，quote失败也不等用户已扣款。

direct rawcalldata才由调用者付款并付recipient，未指定recipient用caller；forwarded只把端点债务留原locker，忽略路由recipient，由caller统一结算。原交易不能用普通swap选择器解释；先按模式核回执，不为对比调用quote或发送路由。

核对结果：执行模式与对应结算/回滚范围清楚，quote和forwarded未当钱包到账。
依据：[Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)
依据：[Ekubo：当前 Trading 与区块固定路由](https://docs.ekubo.org/products/trading/)

## 6. 按原错误和收款记录结案

DeadlineExpired核时间，SlippageCheckFailed核聚合阈值；InvalidRoute或其他error应按原完整数据/版本核，不能统一称流动性不足。ERC20输入approval到对应Router与实际兑换分开；nativeETH标address0，原value/unusedETH返还还需回执，不能把退款说成盈利。

核已有成功交易的输出资产、recipient和真实接收量，再单列Gas与池/扩展费。YulRouter本身不收协议/集成费不意味着pool/MEV附加/Gas为零；目前只完成原记录诊断，缺原回执保持未知。

核对结果：错误及资金结算分别有证据，未把模拟/报价/approval当实际成功。
依据：[Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)
依据：[Ekubo：当前 Trading 与区块固定路由](https://docs.ekubo.org/products/trading/)
依据：[Ekubo：V3 两代 managers 与链可用状态](https://docs.ekubo.org/reference/contracts/evm-v3/)

## 常见错误
- exact-output金额为负，端点角色与exact-input相反；不能对全部金额取绝对值后忽略方向。
- v0.8.0 deadline和ABI/地址必须匹配原版本，普通swap选择器不能用于生产Yul原calldata。
- 部署存在、quote可读或路由模拟通过都不证明资产接收。

## 完成检查
- 形成chain状态/编码版本、原方向/数量、报价block/paths、阈值/期限、mode/error与接收记录对照。
- documentation；未调用Quoter/业务API/RPC、SDK、账户/签名或资金，部署和收款仍需独立证据。

## 相关知识
- [Gas 怎么计算？交易失败为什么仍可能扣费](https://lianxiaozhi.com/learn/gas-and-failed-transactions)
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)
- [合约代码已验证，为什么仍不能直接判断安全？](https://lianxiaozhi.com/learn/verified-contract-boundaries)
- [钱包签消息与签交易有什么区别？不付 Gas 的签名也要读内容](https://lianxiaozhi.com/learn/wallet-message-vs-transaction)
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)

## 官方依据
- [Ekubo：V3 两代 managers 与链可用状态](https://docs.ekubo.org/reference/contracts/evm-v3/)
- [Ekubo：Yul Router v0.8.0 阈值、deadline 与 quote](https://docs.ekubo.org/integration-guides/yul-router/)
- [Ekubo：当前 Trading 与区块固定路由](https://docs.ekubo.org/products/trading/)
- [Ekubo：价格与费用二进制单位](https://docs.ekubo.org/reference/price-representation/)
