Skip to content

Commit 71d5107

Browse files
authored
🐞Fix safeMoveETH (#1475)
* fix testSafeMoveETHViaMover * fix safeMoveETH
1 parent 33b4b98 commit 71d5107

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

src/utils/SafeTransferLib.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ library SafeTransferLib {
212212
}
213213
if extcodesize(mover) {
214214
let balanceBefore := balance(to) // Check via delta, in case `SELFDESTRUCT` is bricked.
215-
pop(call(gas(), mover, amount, codesize(), 0x00, codesize(), 0x00))
215+
mstore(0x00, to)
216+
pop(call(gas(), mover, amount, 0x00, 0x20, codesize(), 0x00))
216217
if iszero(lt(add(amount, balance(to)), balanceBefore)) { break }
217218
if lt(selfBalanceBefore, selfbalance()) { invalid() } // Just in case.
218219
}

test/SafeTransferLib.t.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,7 +1203,7 @@ contract SafeTransferLibTest is SoladyTest {
12031203
assertEq(to.balance, amount0 + amount1);
12041204
}
12051205

1206-
function safeMoveETHViaMover(bytes32) public {
1206+
function testSafeMoveETHViaMover(bytes32) public {
12071207
_deployETHMover();
12081208

12091209
address to = _randomHashedAddress();
@@ -1219,12 +1219,12 @@ contract SafeTransferLibTest is SoladyTest {
12191219
assertEq(address(this).balance, selfBalanceBefore - amount0);
12201220

12211221
if (SafeTransferLib.ETH_MOVER.code.length == 0) {
1222-
address vault = this.safeMoveETH(to, amount0);
1222+
address vault = this.safeMoveETH(to, amount1);
12231223
assertEq(vault.balance, amount1);
12241224
assertEq(to.balance, amount0);
1225-
assertEq(address(this).balance, selfBalanceBefore - amount0);
1225+
assertEq(address(this).balance, selfBalanceBefore - amount0 - amount1);
12261226
} else {
1227-
assertEq(this.safeMoveETH(to, amount0), address(0));
1227+
assertEq(this.safeMoveETH(to, amount1), address(0));
12281228
assertEq(to.balance, amount0 + amount1);
12291229
assertEq(address(this).balance, selfBalanceBefore - amount0 - amount1);
12301230
}

0 commit comments

Comments
 (0)