github-actions 3 gadi atpakaļ
vecāks
revīzija
10002dea6d

+ 4 - 0
CHANGELOG.md

@@ -1,5 +1,9 @@
 # Changelog
 
+## 4.7.2
+
+ * `LibArbitrumL2`, `CrossChainEnabledArbitrumL2`: Fixed detection of cross-chain calls for EOAs. Previously, calls from EOAs would be classified as cross-chain calls. ([#3578](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3578))
+
 ## 4.7.1 (2022-07-19)
 
  * `SignatureChecker`: Fix an issue that causes `isValidSignatureNow` to revert when the target contract returns ill-encoded data. ([#3552](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3552))

+ 2 - 5
contracts/crosschain/arbitrum/LibArbitrumL2.sol

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

+ 1 - 5
contracts/mocks/crosschain/bridges.sol

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