@@ -6,6 +6,7 @@ import {CCIPLocalSimulator, IRouterClient, LinkToken, BurnMintERC677Helper} from
66import {SepoliaSender} from "src/SepoliaSender.sol " ;
77import {AmoyReceiver} from "src/AmoyReceiver.sol " ;
88import {AmoyReceiverSignedMessage} from "src/library/AmoyReceiverSignedMessage.sol " ;
9+ import {AmoyTokenTransfer} from "src/AmoyTokenTransfer.sol " ;
910
1011contract MessageTransferTest is Test {
1112 CCIPLocalSimulator public ccipLocalSimulator;
@@ -14,6 +15,7 @@ contract MessageTransferTest is Test {
1415
1516 SepoliaSender public sepoliaSender;
1617 AmoyReceiver public amoyReceiver;
18+ AmoyTokenTransfer public amoyTokenTransfer;
1719
1820 address user;
1921 uint256 userPrivateKey;
@@ -22,6 +24,7 @@ contract MessageTransferTest is Test {
2224 IRouterClient destinationRouter;
2325
2426 function setUp () public {
27+ (user, userPrivateKey) = makeAddrAndKey ("user " );
2528 ccipLocalSimulator = new CCIPLocalSimulator ();
2629
2730 (
@@ -39,9 +42,14 @@ contract MessageTransferTest is Test {
3942 destinationRouter = _destinationRouter;
4043
4144 sepoliaSender = new SepoliaSender (address (sourceRouter), address (link));
42- amoyReceiver = new AmoyReceiver (address (destinationRouter));
43-
44- (user, userPrivateKey) = makeAddrAndKey ("user " );
45+ amoyTokenTransfer = new AmoyTokenTransfer (
46+ address (sourceRouter),
47+ address (link)
48+ );
49+ amoyReceiver = new AmoyReceiver (
50+ address (destinationRouter),
51+ address (amoyTokenTransfer)
52+ );
4553 }
4654
4755 function testMessageTransferPassTheValidation () public {
@@ -50,6 +58,8 @@ contract MessageTransferTest is Test {
5058 5 ether
5159 );
5260
61+ deal (address (CCIPBnM), user, AMOUNT_CCIPBNM);
62+
5363 AmoyReceiverSignedMessage.SignedMessage
5464 memory signedMessage = AmoyReceiverSignedMessage.SignedMessage ({
5565 chainSelector: destinationChainSelector,
@@ -73,6 +83,10 @@ contract MessageTransferTest is Test {
7383 s
7484 );
7585
86+ // approve the transfer first
87+ vm.prank (user);
88+ CCIPBnM.approve (address (amoyReceiver), AMOUNT_CCIPBNM);
89+
7690 vm.pauseGasMetering ();
7791 bytes32 messageId = sepoliaSender.sendMessage (
7892 destinationChainSelector,
0 commit comments