mirror of
https://github.com/th30d4y/OpenLearnX.git
synced 2026-05-26 19:26:33 +00:00
Fix .gitignore: stop tracking ignored files
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
import "../../utils/Address.sol";
|
||||
import "../../vendor/polygon/IFxMessageProcessor.sol";
|
||||
|
||||
abstract contract BaseRelayMock {
|
||||
// needed to parse custom errors
|
||||
error NotCrossChainCall();
|
||||
error InvalidCrossChainSender(address sender, address expected);
|
||||
|
||||
address internal _currentSender;
|
||||
|
||||
function relayAs(address target, bytes calldata data, address sender) external virtual {
|
||||
address previousSender = _currentSender;
|
||||
|
||||
_currentSender = sender;
|
||||
|
||||
(bool success, bytes memory returndata) = target.call(data);
|
||||
Address.verifyCallResultFromTarget(target, success, returndata, "low-level call reverted");
|
||||
|
||||
_currentSender = previousSender;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* AMB
|
||||
*/
|
||||
contract BridgeAMBMock is BaseRelayMock {
|
||||
function messageSender() public view returns (address) {
|
||||
return _currentSender;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Arbitrum
|
||||
*/
|
||||
contract BridgeArbitrumL1Mock is BaseRelayMock {
|
||||
/// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
|
||||
address public immutable inbox = address(new BridgeArbitrumL1Inbox());
|
||||
/// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
|
||||
address public immutable outbox = address(new BridgeArbitrumL1Outbox());
|
||||
|
||||
function activeOutbox() public view returns (address) {
|
||||
return outbox;
|
||||
}
|
||||
|
||||
function currentSender() public view returns (address) {
|
||||
return _currentSender;
|
||||
}
|
||||
}
|
||||
|
||||
contract BridgeArbitrumL1Inbox {
|
||||
/// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
|
||||
address public immutable bridge = msg.sender;
|
||||
}
|
||||
|
||||
contract BridgeArbitrumL1Outbox {
|
||||
/// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
|
||||
address public immutable bridge = msg.sender;
|
||||
|
||||
function l2ToL1Sender() public view returns (address) {
|
||||
return BridgeArbitrumL1Mock(bridge).currentSender();
|
||||
}
|
||||
}
|
||||
|
||||
contract BridgeArbitrumL2Mock is BaseRelayMock {
|
||||
function wasMyCallersAddressAliased() public view returns (bool) {
|
||||
return _currentSender != address(0);
|
||||
}
|
||||
|
||||
function myCallersAddressWithoutAliasing() public view returns (address) {
|
||||
return _currentSender;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Optimism
|
||||
*/
|
||||
contract BridgeOptimismMock is BaseRelayMock {
|
||||
function xDomainMessageSender() public view returns (address) {
|
||||
return _currentSender;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Polygon
|
||||
*/
|
||||
contract BridgePolygonChildMock is BaseRelayMock {
|
||||
function relayAs(address target, bytes calldata data, address sender) external override {
|
||||
IFxMessageProcessor(target).processMessageFromRoot(0, sender, data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8.4;
|
||||
|
||||
import "../../access/Ownable.sol";
|
||||
import "../../crosschain/amb/CrossChainEnabledAMB.sol";
|
||||
import "../../crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol";
|
||||
import "../../crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol";
|
||||
import "../../crosschain/optimism/CrossChainEnabledOptimism.sol";
|
||||
import "../../crosschain/polygon/CrossChainEnabledPolygonChild.sol";
|
||||
|
||||
abstract contract Receiver is CrossChainEnabled {
|
||||
// we don't use Ownable because it messes up testing for the upgradeable contracts
|
||||
/// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
|
||||
address public immutable owner = msg.sender;
|
||||
|
||||
function crossChainRestricted() external onlyCrossChain {}
|
||||
|
||||
function crossChainOwnerRestricted() external onlyCrossChainSender(owner) {}
|
||||
}
|
||||
|
||||
/**
|
||||
* AMB
|
||||
*/
|
||||
contract CrossChainEnabledAMBMock is Receiver, CrossChainEnabledAMB {
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor(address bridge) CrossChainEnabledAMB(bridge) {}
|
||||
}
|
||||
|
||||
/**
|
||||
* Arbitrum
|
||||
*/
|
||||
contract CrossChainEnabledArbitrumL1Mock is Receiver, CrossChainEnabledArbitrumL1 {
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor(address bridge) CrossChainEnabledArbitrumL1(bridge) {}
|
||||
}
|
||||
|
||||
contract CrossChainEnabledArbitrumL2Mock is Receiver, CrossChainEnabledArbitrumL2 {}
|
||||
|
||||
/**
|
||||
* Optimism
|
||||
*/
|
||||
contract CrossChainEnabledOptimismMock is Receiver, CrossChainEnabledOptimism {
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor(address bridge) CrossChainEnabledOptimism(bridge) {}
|
||||
}
|
||||
|
||||
/**
|
||||
* Polygon
|
||||
*/
|
||||
contract CrossChainEnabledPolygonChildMock is Receiver, CrossChainEnabledPolygonChild {
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor(address bridge) CrossChainEnabledPolygonChild(bridge) {}
|
||||
}
|
||||
Reference in New Issue
Block a user