跳到正文
← 使用教程

DeFi Saver 自动化没执行:核对订阅、触发、授权与回执

链小知 · 进阶 · 核验 · 依官方文档整理

使用已有配置和执行记录排查isEnabled、订阅hash、链分支、oracle与bot权限;不把启用或阈值穿越当清算保护成功。

开始前准备

  • 准备原链/实际执行器与SubStorage版本、钱包类型、subId、策略或bundle、订阅及更新事件、原触发参数、已有执行/失败回执。
  • 只分析已有资料与固定代码,不查询仓位/oracle/Graph/RPC、不运行bot,不订阅、取消、调整参数或模拟执行。

1. 先核具体协议市场和钱包资格

按当前Compatibility定位市场而不是只写Aave或Compound。Aave v3 Core与Prime/EtherFi的自动化行不同;链例外列OP Mainnet的Compound、Linea/Plasma的Aave、Base的Compound USDS等限制,不能拿主品牌支持覆盖这些例外。

Safe、DSProxy、EOA/operator路径另核。技术Smart wallets矩阵列Safe/DSProxy策略功能;EOA帮助只允许特定协议/动作通过Safe operator,Recipe Creator和TxSaver仍不属于其普遍功能。

检查结果:市场、链、策略与钱包类型均有具体依据,无全协议保护承诺。

2. 固定subId与主网/L2结构

subId为指定SubStorage中的订阅索引,不能当strategyId或跨链通用编号。主网固定StoredSubData为walletAddr、isEnabled、strategySubHash;StrategySub包含strategyOrBundleId、isBundle、triggerData、subData。

旧文档字段叫userProxy/id;固定代码叫walletAddr/strategyOrBundleId,需按原ABI解码而非猜字段等价。主网主要存hash,完整数据可在原Subscribe/UpdateData事件;固定L2还存完整StrategySub并提供getStrategySub,不能把主网getSub当完整参数。

检查结果:链、存储地址、索引及ABI版本对应;完整订阅材料来源明确。

3. 追踪更新、启用及订阅所属钱包

对原Subscribe/UpdateData/ActivateSub/DeactivateSub按区块和顺序整理;更新后旧StrategySub不能继续当当前hash输入。isEnabled=true只允许进入后续检查,不代表bot已经执行或保护生效。

固定SubStorage修改和开关权限属于记录的walletAddr,而不是任意连接EOA。修改交易失败不改变原状态;只有UI关闭也不能确认链上DeactivateSub成功,更不能保证把所有模块授权一并撤回。

检查结果:最新有效状态有成功事件或已有读取,订阅开关与授权撤销分开。

4. 核触发值与协议预言机时点

保留triggerData与原触发输入的具体单位、ABI、比较方向和时点。协议oracle价格/比率与第三方行情截图不同;帮助说明bot按分钟检查,并受协议oracle更新影响,但不保证一分钟内成交。

所有trigger须通过;固定RecipeExecutor在钱包上下文中检查而非仅StrategyExecutor入口。TriggerNotActiveError带失败索引,应对应原trigger顺序;没有相关原数据就不能凭阈值曾被穿越判触发器故障。

检查结果:触发证据来自对应协议和配置时点,失败索引未代替实际值。

5. 按认证、hash与授权分层排错

固定主网StrategyExecutor先核bot认证、再核完整StrategySub的hash及isEnabled;保留BotNotApproved、SubDatHashMismatch、SubNotEnabled原文和参数。它们与trigger false是不同阶段,缺ABI时不猜分类。

后续StrategyExecutorCommon按DSProxy或其他钱包走ProxyAuth/ModuleAuth再调用RecipeExecutor;连接会话正常不证明模块授权存在。L2执行接口不接受相同完整_sub参数,按实际版本分支看原记录,不重算或提交新参数。

检查结果:错误阶段、原版本和钱包授权路由对应,已启用没有替代权限证明。

6. 分开触发费、swap费、Gas与失败交易

当前Automations/Fees页列执行Gas从仓位收,触发交易0.05%,swap另按0.25/0.1/0.01%;只是启用并持续开启不收该类一次或连续服务费。该页0.05%的精确基数未明,记录原收费动作/参数,不任意按全仓或Gas算。

旧Features/Automation页将费用分两类、stablecoin组列0.1%,无swap时0.05%;保留原交易时期和新旧页差异,不能直接用当前分类重写旧回执。flash loan源及文档0.09%亦按原协议/市场另核;失败交易的Gas不等自动化服务完成。

检查结果:费用来自具体执行和动作,旧新费表、估算、实际收费及失败Gas分开。

7. 判断执行后状态与剩余风险

固定RecipeExecutor对非continuous策略会在动作执行前禁用订阅,但后续失败会整体回滚;changeable trigger可更新订阅数据。仅看到disabled不能直接认定成功执行,需结合原成功回执和后续订阅事件。

查已有协议事件及仓位债务/抵押/资产的实际变化,减仓或偿债与只是触发不同。网络拥堵、RPC/报价服务、oracle、升级和快速市场变化都可能阻碍及时执行;未有结果证据时写待核,不写已防清算或无风险。

检查结果:已区分配置、触发、执行、状态更新和经济结果;未保证及时保护。

怎样确认完成

  • 已定位可证的订阅、认证、触发或执行阶段,未知项单列。
  • 是否发生债务/资产变化有独立记录;未执行任何自动化动作。

常见错误与边界

  • isEnabled和阈值成立不是执行成功;disabled也可能是手动开关或一次性策略结果。
  • 文档bot检查周期不等确认时间或保护承诺,费用与协议支持均需具体版本。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据