Skip to content

Commit e83b0f5

Browse files
Revert "use centrifuge lib in foreign controller (#101)"
This reverts commit c7ee156.
1 parent c7ee156 commit e83b0f5

File tree

2 files changed

+35
-17
lines changed

2 files changed

+35
-17
lines changed

src/ForeignController.sol

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@ import { ICCTPLike } from "./interfaces/CCTPInterfaces.sol";
1818
import { IRateLimits } from "./interfaces/IRateLimits.sol";
1919
import { IPendleMarket } from "./interfaces/PendleInterfaces.sol";
2020

21-
import { CentrifugeLib } from "./libraries/CentrifugeLib.sol";
22-
import { CurveLib } from "./libraries/CurveLib.sol";
23-
import { MerklLib } from "./libraries/MerklLib.sol";
24-
import { PendleLib } from "./libraries/PendleLib.sol";
25-
import { CCTPLib } from "./libraries/CCTPLib.sol";
26-
import { ERC20Lib } from "./libraries/common/ERC20Lib.sol";
27-
import { UniswapV3Lib } from "./libraries/UniswapV3Lib.sol";
21+
import { CurveLib } from "./libraries/CurveLib.sol";
22+
import { MerklLib } from "./libraries/MerklLib.sol";
23+
import { PendleLib } from "./libraries/PendleLib.sol";
24+
import { CCTPLib } from "./libraries/CCTPLib.sol";
25+
import { ERC20Lib } from "./libraries/common/ERC20Lib.sol";
26+
import { UniswapV3Lib } from "./libraries/UniswapV3Lib.sol";
2827

2928
import { ISwapRouter, INonfungiblePositionManager } from "./interfaces/UniswapV3Interfaces.sol";
3029
import { ICentrifugeV3VaultLike, IAsyncRedeemManagerLike, ISpokeLike } from "./interfaces/CentrifugeInterfaces.sol";
@@ -616,15 +615,34 @@ contract ForeignController is AccessControl {
616615
external payable
617616
{
618617
_checkRole(RELAYER);
619-
CentrifugeLib.transferSharesCentrifuge(CentrifugeLib.CentrifugeTransferParams({
620-
proxy : proxy,
621-
rateLimits : rateLimits,
622-
token : token,
623-
amount : amount,
624-
recipient : centrifugeRecipients[destinationCentrifugeId],
625-
destinationCentrifugeId : destinationCentrifugeId,
626-
rateLimitId : LIMIT_CENTRIFUGE_TRANSFER
627-
}));
618+
_rateLimited(
619+
keccak256(abi.encode(LIMIT_CENTRIFUGE_TRANSFER, token, destinationCentrifugeId)),
620+
amount
621+
);
622+
623+
bytes32 recipient = centrifugeRecipients[destinationCentrifugeId];
624+
require(recipient != 0, "FC/id-not-configured");
625+
626+
ICentrifugeV3VaultLike centrifugeVault = ICentrifugeV3VaultLike(token);
627+
628+
address spoke = IAsyncRedeemManagerLike(centrifugeVault.manager()).spoke();
629+
630+
// Initiate cross-chain transfer via the specific spoke address
631+
proxy.doCallWithValue{value: msg.value}(
632+
spoke,
633+
abi.encodeCall(
634+
ISpokeLike(spoke).crosschainTransferShares,
635+
(
636+
destinationCentrifugeId,
637+
centrifugeVault.poolId(),
638+
centrifugeVault.scId(),
639+
recipient,
640+
amount,
641+
0
642+
)
643+
),
644+
msg.value
645+
);
628646
}
629647

630648
/**********************************************************************************************/

test/grove-avalanche-fork/Centrifuge.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1012,7 +1012,7 @@ contract ForeignControllerTransferSharesCentrifugeFailureTests is CentrifugeTest
10121012
deal(ALM_RELAYER, 1 ether); // Gas cost for Centrifuge
10131013

10141014
vm.startPrank(ALM_RELAYER);
1015-
vm.expectRevert("CentrifugeLib/id-not-configured");
1015+
vm.expectRevert("FC/id-not-configured");
10161016
foreignController.transferSharesCentrifuge{value: 0.5 ether}(
10171017
CENTRIFUGE_VAULT,
10181018
10_000_000e6,

0 commit comments

Comments
 (0)