<!-- canonical: https://0xsimao.com/findings/singularity-eth-transfers-don-revert -->

# Some ETH transfers don't revert if they fail

Medium · Three Sigma · Private DeFi access · 26th February, 2024

Finding 3S-SG-M05 of the Singularity security review.

- Protocol: https://www.thesingularity.network/
- Report: /reports/singularity
- Source: https://cdn.sanity.io/files/qoqld077/production/45b8aac56a2b8e3b557df4329ac9bf8220b64012.pdf

---

### Description

ETH transfers should revert if they fail. Although this issue alone will not lead to exploits, it
increases the attack surface.

### Recommendation

Revert if the transfers fails in:
- [Curve remove liquidity](https://github.com/portalgateme/darkpool-v1-zk-contracts-fork/blob/master/contracts/defi/curve/CurveRemoveLiquidityAssetManager.sol#L453).
- [Curve multi exchange](https://github.com/portalgateme/darkpool-v1-zk-contracts-fork/blob/master/contracts/defi/curve/CurveMultiExchangeAssetManager.sol#L208-L216).
- [Curve single exchange](https://github.com/portalgateme/darkpool-v1-zk-contracts-fork/blob/fuzzing/contracts/defi/curve/CurveSingleExchangeAssetManager.sol#L180-L188).

### Status

Addressed in [#8b300f0](https://github.com/portalgateme/darkpool-v1-zk-contracts-fork/commit/8b300f07a28f2c073154c8de3e9e90ba64ef1934).

---

Related findings:

- [Claiming will fail for Ole and D1MemeToken if the overfunded ETH reverts](https://0xsimao.com/findings/districtone-meme-overfunded-eth-reverts): DistrictOne
- [ETH withdrawals from EigenLayer always fail due to `OperatorDelegator`'s nonReentrant `receive()`](https://0xsimao.com/findings/renzo-eth-withdrawals-delegator-reentrant): Renzo
