From 223a0f36edabc675f8c74c47b20e366178df7ca3 Mon Sep 17 00:00:00 2001 From: Jeroen <1748621+hieronx@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:27:25 +0200 Subject: [PATCH] Fix transfer handlers (#382) Co-authored-by: John Doe --- src/PoolManager.sol | 4 ++-- test/integration/Admin.t.sol | 4 ++-- test/mocks/MockCentrifugeChain.sol | 6 ++---- test/unit/PoolManager.t.sol | 8 ++++---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/PoolManager.sol b/src/PoolManager.sol index 747c0df0..f3234175 100644 --- a/src/PoolManager.sol +++ b/src/PoolManager.sol @@ -156,10 +156,10 @@ contract PoolManager is Auth, IPoolManager { } else if (call == MessagesLib.Call.UpdateTrancheHook) { updateTrancheHook(message.toUint64(1), message.toBytes16(9), message.toAddress(25)); } else if (call == MessagesLib.Call.TransferAssets) { - handleTransfer(message.toUint128(1), message.toAddress(49), message.toUint128(81)); + handleTransfer(message.toUint128(1), message.toAddress(17), message.toUint128(49)); } else if (call == MessagesLib.Call.TransferTrancheTokens) { handleTransferTrancheTokens( - message.toUint64(1), message.toBytes16(9), message.toAddress(66), message.toUint128(98) + message.toUint64(1), message.toBytes16(9), message.toAddress(34), message.toUint128(66) ); } else if (call == MessagesLib.Call.UpdateRestriction) { updateRestriction(message.toUint64(1), message.toBytes16(9), message.slice(25, message.length - 25)); diff --git a/test/integration/Admin.t.sol b/test/integration/Admin.t.sol index 21baa5b3..bf8f09c4 100644 --- a/test/integration/Admin.t.sol +++ b/test/integration/Admin.t.sol @@ -97,7 +97,7 @@ contract AdminTest is BaseTest { guardian.pause(); vm.expectRevert("Gateway/paused"); - centrifugeChain.incomingTransfer(assetId, sender, bytes32(bytes20(recipient)), amount); + centrifugeChain.incomingTransfer(assetId, bytes32(bytes20(recipient)), amount); } function testUnpausingResumesFunctionality( @@ -129,7 +129,7 @@ contract AdminTest is BaseTest { poolManager.transferAssets(address(erc20), bytes32(bytes20(recipient)), amount); assertEq(erc20.balanceOf(address(poolManager.escrow())), amount); - centrifugeChain.incomingTransfer(assetId, sender, bytes32(bytes20(recipient)), amount); + centrifugeChain.incomingTransfer(assetId, bytes32(bytes20(recipient)), amount); assertEq(erc20.balanceOf(address(poolManager.escrow())), 0); assertEq(erc20.balanceOf(recipient), amount); } diff --git a/test/mocks/MockCentrifugeChain.sol b/test/mocks/MockCentrifugeChain.sol index a4e53e0a..bf6f23f2 100644 --- a/test/mocks/MockCentrifugeChain.sol +++ b/test/mocks/MockCentrifugeChain.sol @@ -130,9 +130,8 @@ contract MockCentrifugeChain is Test { } // Trigger an incoming (e.g. Centrifuge Chain -> EVM) transfer of stable coins - function incomingTransfer(uint128 assetId, bytes32 sender, bytes32 recipient, uint128 amount) public { - bytes memory _message = - abi.encodePacked(uint8(MessagesLib.Call.TransferAssets), assetId, sender, recipient, amount); + function incomingTransfer(uint128 assetId, bytes32 recipient, uint128 amount) public { + bytes memory _message = abi.encodePacked(uint8(MessagesLib.Call.TransferAssets), assetId, recipient, amount); _execute(_message); } @@ -148,7 +147,6 @@ contract MockCentrifugeChain is Test { uint8(MessagesLib.Call.TransferTrancheTokens), poolId, trancheId, - msg.sender.toBytes32(), bytes9(BytesLib.slice(abi.encodePacked(uint8(Domain.EVM), destinationChainId), 0, 9)), destinationAddress.toBytes32(), amount diff --git a/test/unit/PoolManager.t.sol b/test/unit/PoolManager.t.sol index d3f60973..bcd71b58 100644 --- a/test/unit/PoolManager.t.sol +++ b/test/unit/PoolManager.t.sol @@ -265,19 +265,19 @@ contract PoolManagerTest is BaseTest { bytes32 sender = makeAddr("sender").toBytes32(); vm.expectRevert(bytes("PoolManager/unknown-asset")); - centrifugeChain.incomingTransfer(assetId, sender, bytes32(bytes20(recipient)), amount); + centrifugeChain.incomingTransfer(assetId, bytes32(bytes20(recipient)), amount); centrifugeChain.addAsset(assetId, address(erc20)); vm.expectRevert(bytes("SafeTransferLib/safe-transfer-from-failed")); - centrifugeChain.incomingTransfer(assetId, sender, bytes32(bytes20(recipient)), amount); + centrifugeChain.incomingTransfer(assetId, bytes32(bytes20(recipient)), amount); vm.expectRevert(bytes("SafeTransferLib/safe-transfer-from-failed")); - centrifugeChain.incomingTransfer(assetId, sender, bytes32(bytes20(recipient)), amount); + centrifugeChain.incomingTransfer(assetId, bytes32(bytes20(recipient)), amount); erc20.mint(address(poolManager.escrow()), amount); // fund escrow // Now we test the incoming message - centrifugeChain.incomingTransfer(assetId, sender, bytes32(bytes20(recipient)), amount); + centrifugeChain.incomingTransfer(assetId, bytes32(bytes20(recipient)), amount); assertEq(erc20.balanceOf(address(poolManager.escrow())), 0); assertEq(erc20.balanceOf(recipient), amount); }