Fix arbitrum L1 to L2 crosschain call detection (#3578)
* Fix arbitrum L1 to L2 crosschain call detection * fix BridgeArbitrumL2Mock * update changelog Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
This commit is contained in:
@ -21,7 +21,7 @@ library LibArbitrumL2 {
|
||||
address public constant ARBSYS = 0x0000000000000000000000000000000000000064;
|
||||
|
||||
function isCrossChain(address arbsys) internal view returns (bool) {
|
||||
return ArbitrumL2_Bridge(arbsys).isTopLevelCall();
|
||||
return ArbitrumL2_Bridge(arbsys).wasMyCallersAddressAliased();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -35,9 +35,6 @@ library LibArbitrumL2 {
|
||||
function crossChainSender(address arbsys) internal view returns (address) {
|
||||
if (!isCrossChain(arbsys)) revert NotCrossChainCall();
|
||||
|
||||
return
|
||||
ArbitrumL2_Bridge(arbsys).wasMyCallersAddressAliased()
|
||||
? ArbitrumL2_Bridge(arbsys).myCallersAddressWithoutAliasing()
|
||||
: msg.sender;
|
||||
return ArbitrumL2_Bridge(arbsys).myCallersAddressWithoutAliasing();
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,14 +70,10 @@ contract BridgeArbitrumL1Outbox {
|
||||
}
|
||||
|
||||
contract BridgeArbitrumL2Mock is BaseRelayMock {
|
||||
function isTopLevelCall() public view returns (bool) {
|
||||
function wasMyCallersAddressAliased() public view returns (bool) {
|
||||
return _currentSender != address(0);
|
||||
}
|
||||
|
||||
function wasMyCallersAddressAliased() public pure returns (bool) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function myCallersAddressWithoutAliasing() public view returns (address) {
|
||||
return _currentSender;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user