diff --git a/.changeset/native-eth-bundler-retention.md b/.changeset/native-eth-bundler-retention.md deleted file mode 100644 index 01cf31f6b..000000000 --- a/.changeset/native-eth-bundler-retention.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -"@morpho-org/evm-simulation": patch ---- - -fix(evm-simulation): detect native ETH retained by bundler3 on the Tenderly backend - -`assertNoBundlerRetention` only inspected parsed `Transfer` logs, so native ETH -retained by a bundler3 address slipped through the guard on the Tenderly primary -backend — native ETH emits no event log, and Tenderly derives it into -`assetChanges` rather than synthetic transfer logs (Cantina finding 1440). - -The retention check now also reads native ETH from `assetChanges` (the -cross-backend source of truth), while ERC20/WETH retention keeps coming from -transfer logs. Native transfer logs (the `eth_simulateV1` synthetic sentinel) -are only used as a fallback for bundler addresses absent from `assetChanges`, so -native moves are never double-counted on `eth_simulateV1`. diff --git a/packages/evm-simulation/CHANGELOG.md b/packages/evm-simulation/CHANGELOG.md index 9303404ea..28876202a 100644 --- a/packages/evm-simulation/CHANGELOG.md +++ b/packages/evm-simulation/CHANGELOG.md @@ -1,5 +1,22 @@ # @morpho-org/evm-simulation +## 4.1.2 + +### Patch Changes + +- [#865](https://github.com/morpho-org/sdks/pull/865) [`2aeb19d`](https://github.com/morpho-org/sdks/commit/2aeb19ddf2e727ed544e47416660b06b14b57e1c) Thanks [@Foulks-Plb](https://github.com/Foulks-Plb)! - fix(evm-simulation): detect native ETH retained by bundler3 on the Tenderly backend + + `assertNoBundlerRetention` only inspected parsed `Transfer` logs, so native ETH + retained by a bundler3 address slipped through the guard on the Tenderly primary + backend — native ETH emits no event log, and Tenderly derives it into + `assetChanges` rather than synthetic transfer logs (Cantina finding 1440). + + The retention check now also reads native ETH from `assetChanges` (the + cross-backend source of truth), while ERC20/WETH retention keeps coming from + transfer logs. Native transfer logs (the `eth_simulateV1` synthetic sentinel) + are only used as a fallback for bundler addresses absent from `assetChanges`, so + native moves are never double-counted on `eth_simulateV1`. + ## 4.1.1 ### Patch Changes diff --git a/packages/evm-simulation/package.json b/packages/evm-simulation/package.json index 4bc6f48e8..4608c4bcc 100644 --- a/packages/evm-simulation/package.json +++ b/packages/evm-simulation/package.json @@ -1,7 +1,7 @@ { "name": "@morpho-org/evm-simulation", "description": "EVM simulation engine for Morpho transactions.", - "version": "4.1.1", + "version": "4.1.2", "author": "Morpho Association ", "contributors": [ "Rubilmax "