receivers.sol 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.4;
  3. import "../../access/Ownable.sol";
  4. import "../../crosschain/amb/CrossChainEnabledAMB.sol";
  5. import "../../crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol";
  6. import "../../crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol";
  7. import "../../crosschain/optimism/CrossChainEnabledOptimism.sol";
  8. import "../../crosschain/polygon/CrossChainEnabledPolygonChild.sol";
  9. abstract contract Receiver is CrossChainEnabled {
  10. // we don't use Ownable because it messes up testing for the upgradeable contracts
  11. /// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
  12. address public immutable owner = msg.sender;
  13. function crossChainRestricted() external onlyCrossChain {}
  14. function crossChainOwnerRestricted() external onlyCrossChainSender(owner) {}
  15. }
  16. /**
  17. * AMB
  18. */
  19. contract CrossChainEnabledAMBMock is Receiver, CrossChainEnabledAMB {
  20. /// @custom:oz-upgrades-unsafe-allow constructor
  21. constructor(address bridge) CrossChainEnabledAMB(bridge) {}
  22. }
  23. /**
  24. * Arbitrum
  25. */
  26. contract CrossChainEnabledArbitrumL1Mock is Receiver, CrossChainEnabledArbitrumL1 {
  27. /// @custom:oz-upgrades-unsafe-allow constructor
  28. constructor(address bridge) CrossChainEnabledArbitrumL1(bridge) {}
  29. }
  30. contract CrossChainEnabledArbitrumL2Mock is Receiver, CrossChainEnabledArbitrumL2 {}
  31. /**
  32. * Optimism
  33. */
  34. contract CrossChainEnabledOptimismMock is Receiver, CrossChainEnabledOptimism {
  35. /// @custom:oz-upgrades-unsafe-allow constructor
  36. constructor(address bridge) CrossChainEnabledOptimism(bridge) {}
  37. }
  38. /**
  39. * Polygon
  40. */
  41. contract CrossChainEnabledPolygonChildMock is Receiver, CrossChainEnabledPolygonChild {
  42. /// @custom:oz-upgrades-unsafe-allow constructor
  43. constructor(address bridge) CrossChainEnabledPolygonChild(bridge) {}
  44. }