@@ -18,12 +18,13 @@ import { ICCTPLike } from "./interfaces/CCTPInterfaces.sol";
1818import { IRateLimits } from "./interfaces/IRateLimits.sol " ;
1919import { IPendleMarket } from "./interfaces/PendleInterfaces.sol " ;
2020
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 " ;
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 " ;
2728
2829import { ISwapRouter, INonfungiblePositionManager } from "./interfaces/UniswapV3Interfaces.sol " ;
2930import { ICentrifugeV3VaultLike, IAsyncRedeemManagerLike, ISpokeLike } from "./interfaces/CentrifugeInterfaces.sol " ;
@@ -615,34 +616,15 @@ contract ForeignController is AccessControl {
615616 external payable
616617 {
617618 _checkRole (RELAYER);
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- );
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+ }));
646628 }
647629
648630 /**********************************************************************************************/
0 commit comments