@@ -9,6 +9,7 @@ import "starkware/solidity/libraries/Transfers.sol";
9
9
import "starkware/solidity/tokens/ERC20/IERC20.sol " ;
10
10
import "starkware/solidity/tokens/ERC20/IERC20Metadata.sol " ;
11
11
import "starkware/starknet/solidity/IStarknetMessaging.sol " ;
12
+ import "src/solidity/ERC2771Recipient.sol " ;
12
13
import "src/solidity/Fees.sol " ;
13
14
import "src/solidity/IStarkgateBridge.sol " ;
14
15
import "src/solidity/IStarkgateManager.sol " ;
@@ -25,7 +26,8 @@ contract StarknetTokenBridge is
25
26
IStarkgateService ,
26
27
Identity ,
27
28
StarknetTokenStorage ,
28
- ProxySupport
29
+ ProxySupport ,
30
+ ERC2771Recipient
29
31
{
30
32
using Addresses for address ;
31
33
using Felt252 for string ;
@@ -125,7 +127,7 @@ contract StarknetTokenBridge is
125
127
}
126
128
127
129
modifier onlyManager () {
128
- require (manager () == msg . sender , "ONLY_MANAGER " );
130
+ require (manager () == _msgSender () , "ONLY_MANAGER " );
129
131
_;
130
132
}
131
133
@@ -152,7 +154,7 @@ contract StarknetTokenBridge is
152
154
Fees.checkDepositFee (msg .value );
153
155
uint256 currentBalance = IERC20 (token).balanceOf (address (this ));
154
156
require (currentBalance + amount <= getMaxTotalBalance (token), "MAX_BALANCE_EXCEEDED " );
155
- Transfers.transferIn (token, msg . sender , amount);
157
+ Transfers.transferIn (token, _msgSender () , amount);
156
158
return msg .value ;
157
159
}
158
160
@@ -320,10 +322,10 @@ contract StarknetTokenBridge is
320
322
uint256 fee
321
323
) internal {
322
324
if (selector == HANDLE_TOKEN_DEPOSIT_SELECTOR) {
323
- emit Deposit (msg . sender , token, amount, l2Recipient, nonce, fee);
325
+ emit Deposit (_msgSender () , token, amount, l2Recipient, nonce, fee);
324
326
} else {
325
327
require (selector == HANDLE_DEPOSIT_WITH_MESSAGE_SELECTOR, "UNKNOWN_SELECTOR " );
326
- emit DepositWithMessage (msg . sender , token, amount, l2Recipient, message, nonce, fee);
328
+ emit DepositWithMessage (_msgSender () , token, amount, l2Recipient, message, nonce, fee);
327
329
}
328
330
}
329
331
@@ -339,15 +341,15 @@ contract StarknetTokenBridge is
339
341
*/
340
342
function enableWithdrawalLimit (address token ) external onlySecurityAgent {
341
343
tokenSettings ()[token].withdrawalLimitApplied = true ;
342
- emit WithdrawalLimitEnabled (msg . sender , token);
344
+ emit WithdrawalLimitEnabled (_msgSender () , token);
343
345
}
344
346
345
347
/**
346
348
Unset withdrawal limit for a token.
347
349
*/
348
350
function disableWithdrawalLimit (address token ) external onlySecurityAdmin {
349
351
tokenSettings ()[token].withdrawalLimitApplied = false ;
350
- emit WithdrawalLimitDisabled (msg . sender , token);
352
+ emit WithdrawalLimitDisabled (_msgSender () , token);
351
353
}
352
354
353
355
/**
@@ -397,7 +399,7 @@ contract StarknetTokenBridge is
397
399
: N_DEPOSIT_PAYLOAD_ARGS;
398
400
uint256 [] memory payload = new uint256 [](MESSAGE_OFFSET + message.length );
399
401
payload[0 ] = uint256 (uint160 (token));
400
- payload[1 ] = uint256 (uint160 (msg . sender ));
402
+ payload[1 ] = uint256 (uint160 (_msgSender () ));
401
403
payload[2 ] = l2Recipient;
402
404
payload[3 ] = amount & (UINT256_PART_SIZE - 1 );
403
405
payload[4 ] = amount >> UINT256_PART_SIZE_BITS;
@@ -499,7 +501,7 @@ contract StarknetTokenBridge is
499
501
}
500
502
501
503
function withdraw (address token , uint256 amount ) external {
502
- withdraw (token, amount, msg . sender );
504
+ withdraw (token, amount, _msgSender () );
503
505
}
504
506
505
507
/*
@@ -525,7 +527,7 @@ contract StarknetTokenBridge is
525
527
nonce
526
528
);
527
529
528
- emit DepositCancelRequest (msg . sender , token, amount, l2Recipient, nonce);
530
+ emit DepositCancelRequest (_msgSender () , token, amount, l2Recipient, nonce);
529
531
}
530
532
531
533
/*
@@ -552,7 +554,7 @@ contract StarknetTokenBridge is
552
554
);
553
555
554
556
emit DepositWithMessageCancelRequest (
555
- msg . sender ,
557
+ _msgSender () ,
556
558
token,
557
559
amount,
558
560
l2Recipient,
@@ -581,8 +583,8 @@ contract StarknetTokenBridge is
581
583
nonce
582
584
);
583
585
584
- transferOutFunds (token, amount, msg . sender );
585
- emit DepositWithMessageReclaimed (msg . sender , token, amount, l2Recipient, message, nonce);
586
+ transferOutFunds (token, amount, _msgSender () );
587
+ emit DepositWithMessageReclaimed (_msgSender () , token, amount, l2Recipient, message, nonce);
586
588
}
587
589
588
590
function depositReclaim (
@@ -598,7 +600,7 @@ contract StarknetTokenBridge is
598
600
nonce
599
601
);
600
602
601
- transferOutFunds (token, amount, msg . sender );
602
- emit DepositReclaimed (msg . sender , token, amount, l2Recipient, nonce);
603
+ transferOutFunds (token, amount, _msgSender () );
604
+ emit DepositReclaimed (_msgSender () , token, amount, l2Recipient, nonce);
603
605
}
604
606
}
0 commit comments