@hyperlane-xyz/core 1.3.5 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/contracts/hooks/OptimismMessageHook.sol +96 -0
  2. package/contracts/interfaces/IInterchainSecurityModule.sol +3 -2
  3. package/contracts/interfaces/hooks/IMessageHook.sol +9 -0
  4. package/contracts/isms/native/AbstractNativeISM.sol +51 -0
  5. package/contracts/isms/native/OptimismISM.sol +80 -0
  6. package/dist/@eth-optimism/contracts/index.d.ts +3 -0
  7. package/dist/@eth-optimism/contracts/index.d.ts.map +1 -0
  8. package/dist/@eth-optimism/contracts/index.js +4 -0
  9. package/dist/@eth-optimism/contracts/index.js.map +1 -0
  10. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts +102 -0
  11. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts.map +1 -0
  12. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js +4 -0
  13. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js.map +1 -0
  14. package/dist/@eth-optimism/contracts/libraries/bridge/index.d.ts +2 -0
  15. package/dist/@eth-optimism/contracts/libraries/bridge/index.d.ts.map +1 -0
  16. package/dist/@eth-optimism/contracts/libraries/bridge/index.js +3 -0
  17. package/dist/@eth-optimism/contracts/libraries/bridge/index.js.map +1 -0
  18. package/dist/@eth-optimism/contracts/libraries/index.d.ts +3 -0
  19. package/dist/@eth-optimism/contracts/libraries/index.d.ts.map +1 -0
  20. package/dist/@eth-optimism/contracts/libraries/index.js +4 -0
  21. package/dist/@eth-optimism/contracts/libraries/index.js.map +1 -0
  22. package/dist/@eth-optimism/index.d.ts +3 -0
  23. package/dist/@eth-optimism/index.d.ts.map +1 -0
  24. package/dist/@eth-optimism/index.js +4 -0
  25. package/dist/@eth-optimism/index.js.map +1 -0
  26. package/dist/@openzeppelin/contracts/index.d.ts +2 -0
  27. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
  28. package/dist/@openzeppelin/contracts/vendor/index.d.ts +3 -0
  29. package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +1 -0
  30. package/dist/@openzeppelin/contracts/vendor/index.js +4 -0
  31. package/dist/@openzeppelin/contracts/vendor/index.js.map +1 -0
  32. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts +102 -0
  33. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts.map +1 -0
  34. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js +4 -0
  35. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js.map +1 -0
  36. package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts +2 -0
  37. package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +1 -0
  38. package/dist/@openzeppelin/contracts/vendor/optimism/index.js +3 -0
  39. package/dist/@openzeppelin/contracts/vendor/optimism/index.js.map +1 -0
  40. package/dist/contracts/hooks/OptimismMessageHook.d.ts +75 -0
  41. package/dist/contracts/hooks/OptimismMessageHook.d.ts.map +1 -0
  42. package/dist/contracts/hooks/OptimismMessageHook.js +4 -0
  43. package/dist/contracts/hooks/OptimismMessageHook.js.map +1 -0
  44. package/dist/contracts/hooks/index.d.ts +2 -0
  45. package/dist/contracts/hooks/index.d.ts.map +1 -0
  46. package/dist/contracts/hooks/index.js +3 -0
  47. package/dist/contracts/hooks/index.js.map +1 -0
  48. package/dist/contracts/index.d.ts +2 -0
  49. package/dist/contracts/index.d.ts.map +1 -1
  50. package/dist/contracts/interfaces/hooks/IMessageHook.d.ts +51 -0
  51. package/dist/contracts/interfaces/hooks/IMessageHook.d.ts.map +1 -0
  52. package/dist/contracts/interfaces/hooks/IMessageHook.js +4 -0
  53. package/dist/contracts/interfaces/hooks/IMessageHook.js.map +1 -0
  54. package/dist/contracts/interfaces/hooks/index.d.ts +2 -0
  55. package/dist/contracts/interfaces/hooks/index.d.ts.map +1 -0
  56. package/dist/contracts/interfaces/hooks/index.js +3 -0
  57. package/dist/contracts/interfaces/hooks/index.js.map +1 -0
  58. package/dist/contracts/interfaces/index.d.ts +2 -0
  59. package/dist/contracts/interfaces/index.d.ts.map +1 -1
  60. package/dist/contracts/isms/index.d.ts +2 -0
  61. package/dist/contracts/isms/index.d.ts.map +1 -1
  62. package/dist/contracts/isms/native/AbstractNativeISM.d.ts +83 -0
  63. package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -0
  64. package/dist/contracts/isms/native/AbstractNativeISM.js +4 -0
  65. package/dist/contracts/isms/native/AbstractNativeISM.js.map +1 -0
  66. package/dist/contracts/isms/native/OptimismISM.d.ts +123 -0
  67. package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -0
  68. package/dist/contracts/isms/native/OptimismISM.js +4 -0
  69. package/dist/contracts/isms/native/OptimismISM.js.map +1 -0
  70. package/dist/contracts/isms/native/index.d.ts +3 -0
  71. package/dist/contracts/isms/native/index.d.ts.map +1 -0
  72. package/dist/contracts/isms/native/index.js +3 -0
  73. package/dist/contracts/isms/native/index.js.map +1 -0
  74. package/dist/factories/@eth-optimism/contracts/index.d.ts +2 -0
  75. package/dist/factories/@eth-optimism/contracts/index.d.ts.map +1 -0
  76. package/dist/factories/@eth-optimism/contracts/index.js +31 -0
  77. package/dist/factories/@eth-optimism/contracts/index.js.map +1 -0
  78. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts +43 -0
  79. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts.map +1 -0
  80. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js +117 -0
  81. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js.map +1 -0
  82. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.d.ts +2 -0
  83. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.d.ts.map +1 -0
  84. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.js +9 -0
  85. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.js.map +1 -0
  86. package/dist/factories/@eth-optimism/contracts/libraries/index.d.ts +2 -0
  87. package/dist/factories/@eth-optimism/contracts/libraries/index.d.ts.map +1 -0
  88. package/dist/factories/@eth-optimism/contracts/libraries/index.js +31 -0
  89. package/dist/factories/@eth-optimism/contracts/libraries/index.js.map +1 -0
  90. package/dist/factories/@eth-optimism/index.d.ts +2 -0
  91. package/dist/factories/@eth-optimism/index.d.ts.map +1 -0
  92. package/dist/factories/@eth-optimism/index.js +31 -0
  93. package/dist/factories/@eth-optimism/index.js.map +1 -0
  94. package/dist/factories/@openzeppelin/contracts/index.d.ts +1 -0
  95. package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
  96. package/dist/factories/@openzeppelin/contracts/index.js +2 -1
  97. package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
  98. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +2 -0
  99. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +1 -0
  100. package/dist/factories/@openzeppelin/contracts/vendor/index.js +31 -0
  101. package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +1 -0
  102. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts +43 -0
  103. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts.map +1 -0
  104. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js +117 -0
  105. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js.map +1 -0
  106. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts +2 -0
  107. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +1 -0
  108. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js +9 -0
  109. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js.map +1 -0
  110. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  111. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  112. package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts +1 -1
  113. package/dist/factories/contracts/ValidatorAnnounce__factory.js +1 -1
  114. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +45 -0
  115. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -0
  116. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +125 -0
  117. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -0
  118. package/dist/factories/contracts/hooks/index.d.ts +2 -0
  119. package/dist/factories/contracts/hooks/index.d.ts.map +1 -0
  120. package/dist/factories/contracts/hooks/index.js +9 -0
  121. package/dist/factories/contracts/hooks/index.js.map +1 -0
  122. package/dist/factories/contracts/index.d.ts +1 -0
  123. package/dist/factories/contracts/index.d.ts.map +1 -1
  124. package/dist/factories/contracts/index.js +2 -1
  125. package/dist/factories/contracts/index.js.map +1 -1
  126. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts +23 -0
  127. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts.map +1 -0
  128. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js +42 -0
  129. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js.map +1 -0
  130. package/dist/factories/contracts/interfaces/hooks/index.d.ts +2 -0
  131. package/dist/factories/contracts/interfaces/hooks/index.d.ts.map +1 -0
  132. package/dist/factories/contracts/interfaces/hooks/index.js +9 -0
  133. package/dist/factories/contracts/interfaces/hooks/index.js.map +1 -0
  134. package/dist/factories/contracts/interfaces/index.d.ts +1 -0
  135. package/dist/factories/contracts/interfaces/index.d.ts.map +1 -1
  136. package/dist/factories/contracts/interfaces/index.js +2 -1
  137. package/dist/factories/contracts/interfaces/index.js.map +1 -1
  138. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  139. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  140. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  141. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  142. package/dist/factories/contracts/isms/index.d.ts +1 -0
  143. package/dist/factories/contracts/isms/index.d.ts.map +1 -1
  144. package/dist/factories/contracts/isms/index.js +2 -1
  145. package/dist/factories/contracts/isms/index.js.map +1 -1
  146. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
  147. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
  148. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  149. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  150. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  151. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  152. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  153. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  154. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  155. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  156. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts +36 -0
  157. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +1 -0
  158. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +111 -0
  159. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -0
  160. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +66 -0
  161. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -0
  162. package/dist/factories/contracts/isms/native/OptimismISM__factory.js +194 -0
  163. package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -0
  164. package/dist/factories/contracts/isms/native/index.d.ts +3 -0
  165. package/dist/factories/contracts/isms/native/index.d.ts.map +1 -0
  166. package/dist/factories/contracts/isms/native/index.js +11 -0
  167. package/dist/factories/contracts/isms/native/index.js.map +1 -0
  168. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts +1 -1
  169. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js +1 -1
  170. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  171. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  172. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  173. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  174. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  175. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  176. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  177. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  178. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  179. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  180. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  181. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  182. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  183. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  184. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  185. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  186. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  187. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  188. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  189. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  190. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  191. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  192. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  193. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
  194. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
  195. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
  196. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  197. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  198. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
  199. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +1 -1
  200. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  201. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  202. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  203. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  204. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  205. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  206. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  207. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  208. package/dist/factories/index.d.ts +1 -0
  209. package/dist/factories/index.d.ts.map +1 -1
  210. package/dist/factories/index.js +2 -1
  211. package/dist/factories/index.js.map +1 -1
  212. package/dist/index.d.ts +12 -0
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js +13 -2
  215. package/dist/index.js.map +1 -1
  216. package/package.json +5 -5
@@ -0,0 +1,96 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
16
+ // ============ Internal Imports ============
17
+ import {IMessageHook} from "../interfaces/hooks/IMessageHook.sol";
18
+ import {OptimismISM} from "../isms/native/OptimismISM.sol";
19
+
20
+ // ============ External Imports ============
21
+ import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
22
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
23
+
24
+ /**
25
+ * @title OptimismMessageHook
26
+ * @notice Message hook to inform the Optimism ISM of messages published through
27
+ * the native Optimism bridge.
28
+ */
29
+ contract OptimismMessageHook is IMessageHook {
30
+ // ============ Constants ============
31
+
32
+ // Domain of chain on which the optimism ISM is deployed
33
+ uint32 public immutable destinationDomain;
34
+ // Messenger used to send messages from L1 -> L2
35
+ ICrossDomainMessenger public immutable l1Messenger;
36
+ // address for Optimism ISM to verify messages
37
+ address public immutable ism;
38
+ // Gas limit for sending messages to L2
39
+ // First 1.92e6 gas is provided by Optimism, see more here:
40
+ // https://community.optimism.io/docs/developers/bridge/messaging/#for-l1-%E2%87%92-l2-transactions
41
+ uint32 internal constant GAS_LIMIT = 1_920_000;
42
+
43
+ // ============ Constructor ============
44
+
45
+ constructor(
46
+ uint32 _destinationDomain,
47
+ address _messenger,
48
+ address _ism
49
+ ) {
50
+ require(
51
+ _destinationDomain != 0,
52
+ "OptimismHook: invalid destination domain"
53
+ );
54
+ require(_ism != address(0), "OptimismHook: invalid ISM");
55
+ destinationDomain = _destinationDomain;
56
+
57
+ require(
58
+ Address.isContract(_messenger),
59
+ "OptimismHook: invalid messenger"
60
+ );
61
+ l1Messenger = ICrossDomainMessenger(_messenger);
62
+ ism = _ism;
63
+ }
64
+
65
+ // ============ External Functions ============
66
+
67
+ /**
68
+ * @notice Hook to inform the optimism ISM of messages published through.
69
+ * @dev anyone can call this function, that's why we need to send msg.sender
70
+ * @param _destination The destination domain of the message.
71
+ * @param _messageId The message ID.
72
+ * @return gasOverhead The gas overhead for the function call on L2.
73
+ */
74
+ function postDispatch(uint32 _destination, bytes32 _messageId)
75
+ public
76
+ payable
77
+ override
78
+ returns (uint256)
79
+ {
80
+ require(msg.value == 0, "OptimismHook: no value allowed");
81
+ require(
82
+ _destination == destinationDomain,
83
+ "OptimismHook: invalid destination domain"
84
+ );
85
+
86
+ bytes memory _payload = abi.encodeCall(
87
+ OptimismISM.verifyMessageId,
88
+ (msg.sender, _messageId)
89
+ );
90
+
91
+ l1Messenger.sendMessage(ism, _payload, GAS_LIMIT);
92
+
93
+ // calling the verifyMessageId function is ~25k gas but we get 1.92m gas from Optimism
94
+ return 0;
95
+ }
96
+ }
@@ -3,12 +3,13 @@ pragma solidity >=0.6.11;
3
3
 
4
4
  interface IInterchainSecurityModule {
5
5
  enum Types {
6
- UNUSED,
6
+ NULL, // used with relayer carrying no metadata
7
7
  ROUTING,
8
8
  AGGREGATION,
9
9
  LEGACY_MULTISIG,
10
10
  MERKLE_ROOT_MULTISIG,
11
- MESSAGE_ID_MULTISIG
11
+ MESSAGE_ID_MULTISIG,
12
+ OPTIMISM
12
13
  }
13
14
 
14
15
  /**
@@ -0,0 +1,9 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ interface IMessageHook {
5
+ function postDispatch(uint32 _destination, bytes32 _messageId)
6
+ external
7
+ payable
8
+ returns (uint256);
9
+ }
@@ -0,0 +1,51 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ Internal Imports ============
5
+
6
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
7
+ import {Message} from "../../libs/Message.sol";
8
+ import {TypeCasts} from "../../libs/TypeCasts.sol";
9
+
10
+ // ============ External Imports ============
11
+
12
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
13
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
14
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
15
+
16
+ /**
17
+ * @title ArbtractNativeISM
18
+ * @notice Uses the native bridges to verify interchain messages.
19
+ * @dev In the future, the hook might be moved inside the Mailbox which doesn't require storage mappings for senders.
20
+ * for more details see https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2381
21
+ */
22
+ abstract contract AbstractNativeISM is
23
+ IInterchainSecurityModule,
24
+ Initializable
25
+ {
26
+ // ============ Public Storage ============
27
+
28
+ // mapping to check if the specific messageID from a specific sender has been received
29
+ // @dev anyone can send an untrusted messageId, so need to check for that while verifying
30
+ mapping(bytes32 => mapping(address => bool)) public verifiedMessageIds;
31
+
32
+ // ============ Events ============
33
+
34
+ event ReceivedMessage(address indexed sender, bytes32 indexed messageId);
35
+
36
+ // ============ External Functions ============
37
+
38
+ /**
39
+ * @notice Verify a message was received by ISM.
40
+ * @param _message Message to verify.
41
+ */
42
+ function verify(
43
+ bytes calldata, /*_metadata*/
44
+ bytes calldata _message
45
+ ) external view returns (bool) {
46
+ bytes32 _messageId = Message.id(_message);
47
+ address _messageSender = Message.senderAddress(_message);
48
+
49
+ return verifiedMessageIds[_messageId][_messageSender];
50
+ }
51
+ }
@@ -0,0 +1,80 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ Internal Imports ============
5
+
6
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
7
+ import {OptimismMessageHook} from "../../hooks/OptimismMessageHook.sol";
8
+ import {Message} from "../../libs/Message.sol";
9
+ import {TypeCasts} from "../../libs/TypeCasts.sol";
10
+ import {AbstractNativeISM} from "./AbstractNativeISM.sol";
11
+
12
+ // ============ External Imports ============
13
+
14
+ import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
15
+ import {CrossChainEnabledOptimism} from "@openzeppelin/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol";
16
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
17
+
18
+ /**
19
+ * @title OptimismISM
20
+ * @notice Uses the native Optimism bridge to verify interchain messages.
21
+ */
22
+ contract OptimismISM is CrossChainEnabledOptimism, AbstractNativeISM {
23
+ // ============ Constants ============
24
+
25
+ // solhint-disable-next-line const-name-snakecase
26
+ uint8 public constant moduleType =
27
+ uint8(IInterchainSecurityModule.Types.NULL);
28
+
29
+ // ============ Public Storage ============
30
+
31
+ // Address for Hook on L1 responsible for sending message via the Optimism bridge
32
+ // @dev check https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2381 for updates to native
33
+ address public l1Hook;
34
+
35
+ // ============ Modifiers ============
36
+
37
+ /**
38
+ * @notice Check if sender is authorized to message `verifyMessageId`.
39
+ */
40
+ modifier isAuthorized() {
41
+ require(
42
+ _crossChainSender() == l1Hook,
43
+ "OptimismISM: sender is not the hook"
44
+ );
45
+ _;
46
+ }
47
+
48
+ // ============ Constructor ============
49
+
50
+ constructor(address _l2Messenger) CrossChainEnabledOptimism(_l2Messenger) {
51
+ require(
52
+ Address.isContract(_l2Messenger),
53
+ "OptimismISM: invalid L2Messenger"
54
+ );
55
+ }
56
+
57
+ // ============ Initializer ============
58
+
59
+ function setOptimismHook(address _l1Hook) external initializer {
60
+ require(_l1Hook != address(0), "OptimismISM: invalid l1Hook");
61
+ l1Hook = _l1Hook;
62
+ }
63
+
64
+ // ============ External Functions ============
65
+
66
+ /**
67
+ * @notice Receive a message from the L2 messenger.
68
+ * @dev Only callable by the L2 messenger.
69
+ * @param _sender Address of the sender.
70
+ * @param _messageId Hyperlane ID for the message.
71
+ */
72
+ function verifyMessageId(address _sender, bytes32 _messageId)
73
+ external
74
+ isAuthorized
75
+ {
76
+ verifiedMessageIds[_messageId][_sender] = true;
77
+
78
+ emit ReceivedMessage(_sender, _messageId);
79
+ }
80
+ }
@@ -0,0 +1,3 @@
1
+ import type * as libraries from "./libraries";
2
+ export type { libraries };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/@eth-optimism/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAE9C,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../types/@eth-optimism/contracts/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,102 @@
1
+ import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../../../common";
2
+ import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
3
+ import type { Listener, Provider } from "@ethersproject/providers";
4
+ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
5
+ export interface ICrossDomainMessengerInterface extends utils.Interface {
6
+ functions: {
7
+ "sendMessage(address,bytes,uint32)": FunctionFragment;
8
+ "xDomainMessageSender()": FunctionFragment;
9
+ };
10
+ getFunction(nameOrSignatureOrTopic: "sendMessage" | "xDomainMessageSender"): FunctionFragment;
11
+ encodeFunctionData(functionFragment: "sendMessage", values: [string, BytesLike, BigNumberish]): string;
12
+ encodeFunctionData(functionFragment: "xDomainMessageSender", values?: undefined): string;
13
+ decodeFunctionResult(functionFragment: "sendMessage", data: BytesLike): Result;
14
+ decodeFunctionResult(functionFragment: "xDomainMessageSender", data: BytesLike): Result;
15
+ events: {
16
+ "FailedRelayedMessage(bytes32)": EventFragment;
17
+ "RelayedMessage(bytes32)": EventFragment;
18
+ "SentMessage(address,address,bytes,uint256,uint256)": EventFragment;
19
+ };
20
+ getEvent(nameOrSignatureOrTopic: "FailedRelayedMessage"): EventFragment;
21
+ getEvent(nameOrSignatureOrTopic: "RelayedMessage"): EventFragment;
22
+ getEvent(nameOrSignatureOrTopic: "SentMessage"): EventFragment;
23
+ }
24
+ export interface FailedRelayedMessageEventObject {
25
+ msgHash: string;
26
+ }
27
+ export declare type FailedRelayedMessageEvent = TypedEvent<[
28
+ string
29
+ ], FailedRelayedMessageEventObject>;
30
+ export declare type FailedRelayedMessageEventFilter = TypedEventFilter<FailedRelayedMessageEvent>;
31
+ export interface RelayedMessageEventObject {
32
+ msgHash: string;
33
+ }
34
+ export declare type RelayedMessageEvent = TypedEvent<[
35
+ string
36
+ ], RelayedMessageEventObject>;
37
+ export declare type RelayedMessageEventFilter = TypedEventFilter<RelayedMessageEvent>;
38
+ export interface SentMessageEventObject {
39
+ target: string;
40
+ sender: string;
41
+ message: string;
42
+ messageNonce: BigNumber;
43
+ gasLimit: BigNumber;
44
+ }
45
+ export declare type SentMessageEvent = TypedEvent<[
46
+ string,
47
+ string,
48
+ string,
49
+ BigNumber,
50
+ BigNumber
51
+ ], SentMessageEventObject>;
52
+ export declare type SentMessageEventFilter = TypedEventFilter<SentMessageEvent>;
53
+ export interface ICrossDomainMessenger extends BaseContract {
54
+ connect(signerOrProvider: Signer | Provider | string): this;
55
+ attach(addressOrName: string): this;
56
+ deployed(): Promise<this>;
57
+ interface: ICrossDomainMessengerInterface;
58
+ queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
59
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
60
+ listeners(eventName?: string): Array<Listener>;
61
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
62
+ removeAllListeners(eventName?: string): this;
63
+ off: OnEvent<this>;
64
+ on: OnEvent<this>;
65
+ once: OnEvent<this>;
66
+ removeListener: OnEvent<this>;
67
+ functions: {
68
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
69
+ from?: string | Promise<string>;
70
+ }): Promise<ContractTransaction>;
71
+ xDomainMessageSender(overrides?: CallOverrides): Promise<[string]>;
72
+ };
73
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
74
+ from?: string | Promise<string>;
75
+ }): Promise<ContractTransaction>;
76
+ xDomainMessageSender(overrides?: CallOverrides): Promise<string>;
77
+ callStatic: {
78
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: CallOverrides): Promise<void>;
79
+ xDomainMessageSender(overrides?: CallOverrides): Promise<string>;
80
+ };
81
+ filters: {
82
+ "FailedRelayedMessage(bytes32)"(msgHash?: BytesLike | null): FailedRelayedMessageEventFilter;
83
+ FailedRelayedMessage(msgHash?: BytesLike | null): FailedRelayedMessageEventFilter;
84
+ "RelayedMessage(bytes32)"(msgHash?: BytesLike | null): RelayedMessageEventFilter;
85
+ RelayedMessage(msgHash?: BytesLike | null): RelayedMessageEventFilter;
86
+ "SentMessage(address,address,bytes,uint256,uint256)"(target?: string | null, sender?: null, message?: null, messageNonce?: null, gasLimit?: null): SentMessageEventFilter;
87
+ SentMessage(target?: string | null, sender?: null, message?: null, messageNonce?: null, gasLimit?: null): SentMessageEventFilter;
88
+ };
89
+ estimateGas: {
90
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
91
+ from?: string | Promise<string>;
92
+ }): Promise<BigNumber>;
93
+ xDomainMessageSender(overrides?: CallOverrides): Promise<BigNumber>;
94
+ };
95
+ populateTransaction: {
96
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
97
+ from?: string | Promise<string>;
98
+ }): Promise<PopulatedTransaction>;
99
+ xDomainMessageSender(overrides?: CallOverrides): Promise<PopulatedTransaction>;
100
+ };
101
+ }
102
+ //# sourceMappingURL=ICrossDomainMessenger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICrossDomainMessenger.d.ts","sourceRoot":"","sources":["../../../../../types/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=ICrossDomainMessenger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICrossDomainMessenger.js","sourceRoot":"","sources":["../../../../../types/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,2 @@
1
+ export type { ICrossDomainMessenger } from "./ICrossDomainMessenger";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/@eth-optimism/contracts/libraries/bridge/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@eth-optimism/contracts/libraries/bridge/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type * as bridge from "./bridge";
2
+ export type { bridge };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/@eth-optimism/contracts/libraries/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAExC,YAAY,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/@eth-optimism/contracts/libraries/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,3 @@
1
+ import type * as contracts from "./contracts";
2
+ export type { contracts };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/@eth-optimism/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAE9C,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/@eth-optimism/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -2,8 +2,10 @@ import type * as access from "./access";
2
2
  import type * as interfaces from "./interfaces";
3
3
  import type * as proxy from "./proxy";
4
4
  import type * as token from "./token";
5
+ import type * as vendor from "./vendor";
5
6
  export type { access };
6
7
  export type { interfaces };
7
8
  export type { proxy };
8
9
  export type { token };
10
+ export type { vendor };
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/@openzeppelin/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC,YAAY,EAAE,MAAM,EAAE,CAAC;AAEvB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/@openzeppelin/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAExC,YAAY,EAAE,MAAM,EAAE,CAAC;AAEvB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type * as optimism from "./optimism";
2
+ export type { optimism };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/@openzeppelin/contracts/vendor/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/@openzeppelin/contracts/vendor/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,102 @@
1
+ import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../../../common";
2
+ import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
3
+ import type { Listener, Provider } from "@ethersproject/providers";
4
+ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
5
+ export interface ICrossDomainMessengerInterface extends utils.Interface {
6
+ functions: {
7
+ "sendMessage(address,bytes,uint32)": FunctionFragment;
8
+ "xDomainMessageSender()": FunctionFragment;
9
+ };
10
+ getFunction(nameOrSignatureOrTopic: "sendMessage" | "xDomainMessageSender"): FunctionFragment;
11
+ encodeFunctionData(functionFragment: "sendMessage", values: [string, BytesLike, BigNumberish]): string;
12
+ encodeFunctionData(functionFragment: "xDomainMessageSender", values?: undefined): string;
13
+ decodeFunctionResult(functionFragment: "sendMessage", data: BytesLike): Result;
14
+ decodeFunctionResult(functionFragment: "xDomainMessageSender", data: BytesLike): Result;
15
+ events: {
16
+ "FailedRelayedMessage(bytes32)": EventFragment;
17
+ "RelayedMessage(bytes32)": EventFragment;
18
+ "SentMessage(address,address,bytes,uint256,uint256)": EventFragment;
19
+ };
20
+ getEvent(nameOrSignatureOrTopic: "FailedRelayedMessage"): EventFragment;
21
+ getEvent(nameOrSignatureOrTopic: "RelayedMessage"): EventFragment;
22
+ getEvent(nameOrSignatureOrTopic: "SentMessage"): EventFragment;
23
+ }
24
+ export interface FailedRelayedMessageEventObject {
25
+ msgHash: string;
26
+ }
27
+ export declare type FailedRelayedMessageEvent = TypedEvent<[
28
+ string
29
+ ], FailedRelayedMessageEventObject>;
30
+ export declare type FailedRelayedMessageEventFilter = TypedEventFilter<FailedRelayedMessageEvent>;
31
+ export interface RelayedMessageEventObject {
32
+ msgHash: string;
33
+ }
34
+ export declare type RelayedMessageEvent = TypedEvent<[
35
+ string
36
+ ], RelayedMessageEventObject>;
37
+ export declare type RelayedMessageEventFilter = TypedEventFilter<RelayedMessageEvent>;
38
+ export interface SentMessageEventObject {
39
+ target: string;
40
+ sender: string;
41
+ message: string;
42
+ messageNonce: BigNumber;
43
+ gasLimit: BigNumber;
44
+ }
45
+ export declare type SentMessageEvent = TypedEvent<[
46
+ string,
47
+ string,
48
+ string,
49
+ BigNumber,
50
+ BigNumber
51
+ ], SentMessageEventObject>;
52
+ export declare type SentMessageEventFilter = TypedEventFilter<SentMessageEvent>;
53
+ export interface ICrossDomainMessenger extends BaseContract {
54
+ connect(signerOrProvider: Signer | Provider | string): this;
55
+ attach(addressOrName: string): this;
56
+ deployed(): Promise<this>;
57
+ interface: ICrossDomainMessengerInterface;
58
+ queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
59
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
60
+ listeners(eventName?: string): Array<Listener>;
61
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
62
+ removeAllListeners(eventName?: string): this;
63
+ off: OnEvent<this>;
64
+ on: OnEvent<this>;
65
+ once: OnEvent<this>;
66
+ removeListener: OnEvent<this>;
67
+ functions: {
68
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
69
+ from?: string | Promise<string>;
70
+ }): Promise<ContractTransaction>;
71
+ xDomainMessageSender(overrides?: CallOverrides): Promise<[string]>;
72
+ };
73
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
74
+ from?: string | Promise<string>;
75
+ }): Promise<ContractTransaction>;
76
+ xDomainMessageSender(overrides?: CallOverrides): Promise<string>;
77
+ callStatic: {
78
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: CallOverrides): Promise<void>;
79
+ xDomainMessageSender(overrides?: CallOverrides): Promise<string>;
80
+ };
81
+ filters: {
82
+ "FailedRelayedMessage(bytes32)"(msgHash?: BytesLike | null): FailedRelayedMessageEventFilter;
83
+ FailedRelayedMessage(msgHash?: BytesLike | null): FailedRelayedMessageEventFilter;
84
+ "RelayedMessage(bytes32)"(msgHash?: BytesLike | null): RelayedMessageEventFilter;
85
+ RelayedMessage(msgHash?: BytesLike | null): RelayedMessageEventFilter;
86
+ "SentMessage(address,address,bytes,uint256,uint256)"(target?: string | null, sender?: null, message?: null, messageNonce?: null, gasLimit?: null): SentMessageEventFilter;
87
+ SentMessage(target?: string | null, sender?: null, message?: null, messageNonce?: null, gasLimit?: null): SentMessageEventFilter;
88
+ };
89
+ estimateGas: {
90
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
91
+ from?: string | Promise<string>;
92
+ }): Promise<BigNumber>;
93
+ xDomainMessageSender(overrides?: CallOverrides): Promise<BigNumber>;
94
+ };
95
+ populateTransaction: {
96
+ sendMessage(_target: string, _message: BytesLike, _gasLimit: BigNumberish, overrides?: Overrides & {
97
+ from?: string | Promise<string>;
98
+ }): Promise<PopulatedTransaction>;
99
+ xDomainMessageSender(overrides?: CallOverrides): Promise<PopulatedTransaction>;
100
+ };
101
+ }
102
+ //# sourceMappingURL=ICrossDomainMessenger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICrossDomainMessenger.d.ts","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=ICrossDomainMessenger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICrossDomainMessenger.js","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,2 @@
1
+ export type { ICrossDomainMessenger } from "./ICrossDomainMessenger";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/vendor/optimism/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/vendor/optimism/index.ts"],"names":[],"mappings":""}