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:
Hadrien Croubois
2022-07-25 22:42:37 +02:00
committed by GitHub
parent 7ddbfe181e
commit 81336aefb5
3 changed files with 7 additions and 10 deletions

View File

@ -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();
}
}

View File

@ -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;
}