追踪交易中的资产流向

结合 Balance Changes、Token Flow 和 Execution Trace,用精确金额还原资产路径与最终净变化。

案例目标

回答谁的资产最终增加或减少、资产经过哪些合约,以及每次关键转移由哪次调用触发。

示例交易与背景

本例分析一笔包含闪电贷、Token 往返、WETH 解包和 ETH 分配的 Ethereum 交易:

0xbdec39a74e620fc624f90483aff067b17044f81138e6c30038daf7f873159db4

在 Skylens 中打开交易

主要地址包括执行合约 0x64dc84...5999、池 0x58e278...e163、质押合约 0x444156...1423、交易发起人 0x269ff4...f46c 和费用接收方 0x952222...afe5。

预期回答的问题

  1. 池借出和收回了多少 XPEPE?
  2. WETH 在哪里被解包成 ETH?
  3. 解包后的 ETH 最终分配给了谁?

分析步骤

  1. 从 Balance Changes 记录各地址的最终净变化,不把中间往返重复计算。
  2. 在 Token Flow 中按 Token 和方向追踪路径;打开 Raws 核对未经聚合的原始数量。
  3. 在 Execution Trace 中搜索 WETH、池和执行合约地址,验证 flash、stake、withdrawAll、swap 与 withdraw 的先后顺序。
  4. 对关键边逐项核对调用参数、Token decimals 和 Trace 编号。
  5. 检查所有入口、出口是否能解释 Balance Changes 的净结果。

关键证据

Trace资产路径原始数量格式化数量
39池 → 执行合约,XPEPE4949828677916744850334411363149,498,286,779.167448503344113631 XPEPE
70执行合约 → 质押合约,XPEPE4949828677916744850334411363149,498,286,779.167448503344113631 XPEPE
100质押合约 → 执行合约,XPEPE4949828677916744850334411363149,498,286,779.167448503344113631 XPEPE
486执行合约 → 池,XPEPE199373286778715393708823565786199,373,286,778.715393708823565786 XPEPE
610–616池/WETH → 执行合约680568466516036487 wei0.680568466516036487 ETH
618执行合约 → 费用接收方1000000000000000 wei0.001 ETH
619执行合约 → 交易发起人679568466516036487 wei0.679568466516036487 ETH

最后两笔 ETH 转出之和正好等于解包金额:

0.001 + 0.679568466516036487 = 0.680568466516036487 ETH

这项守恒检查把 Token Flow 的视觉路径、Execution Trace 的执行顺序和最终余额结果连接在一起。

案例结论

执行合约先通过池获得 XPEPE,在质押合约中完成一次往返,随后向池返还更多 XPEPE。池向执行合约输出 0.680568466516036487 WETH,该资产被解包后分成 0.001 ETH 费用和 0.679568466516036487 ETH 发起人收入。两笔输出与解包金额完全相等。

注意事项

  • Event 由合约主动发出,异常 Token 的日志可能与真实余额不一致。
  • Token Flow 展示路径,不自动判断获利、损失或攻击行为。
  • 大额原始数值必须结合 Token decimals 格式化。
  • mint、burn、wrap、unwrap 和已回滚的内部转移需要单独归类。

相关文档

追踪交易中的资产流向 | Skylens Docs