@hyperlane-xyz/core 1.3.8-beta0 → 1.3.8

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 (127) hide show
  1. package/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol +30 -0
  2. package/contracts/hooks/ERC5164MessageHook.sol +95 -0
  3. package/contracts/hooks/OptimismMessageHook.sol +3 -1
  4. package/contracts/isms/native/AbstractNativeISM.sol +17 -6
  5. package/contracts/isms/native/ERC5164ISM.sol +75 -0
  6. package/contracts/isms/native/OptimismISM.sol +15 -4
  7. package/contracts/mock/MockERC5164.sol +26 -0
  8. package/dist/contracts/hooks/ERC5164/index.d.ts +3 -0
  9. package/dist/contracts/hooks/ERC5164/index.d.ts.map +1 -0
  10. package/dist/contracts/hooks/ERC5164/index.js +4 -0
  11. package/dist/contracts/hooks/ERC5164/index.js.map +1 -0
  12. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts +72 -0
  13. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts.map +1 -0
  14. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js +4 -0
  15. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js.map +1 -0
  16. package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
  17. package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
  18. package/dist/contracts/hooks/ERC5164/interfaces/index.js +3 -0
  19. package/dist/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
  20. package/dist/contracts/hooks/ERC5164MessageHook.d.ts +75 -0
  21. package/dist/contracts/hooks/ERC5164MessageHook.d.ts.map +1 -0
  22. package/dist/contracts/hooks/ERC5164MessageHook.js +4 -0
  23. package/dist/contracts/hooks/ERC5164MessageHook.js.map +1 -0
  24. package/dist/contracts/hooks/index.d.ts +3 -0
  25. package/dist/contracts/hooks/index.d.ts.map +1 -1
  26. package/dist/contracts/hooks/index.js +1 -0
  27. package/dist/contracts/hooks/index.js.map +1 -1
  28. package/dist/contracts/index.d.ts +0 -1
  29. package/dist/contracts/index.d.ts.map +1 -1
  30. package/dist/contracts/isms/native/AbstractNativeISM.d.ts +10 -10
  31. package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -1
  32. package/dist/contracts/isms/native/ERC5164ISM.d.ts +107 -0
  33. package/dist/contracts/isms/native/ERC5164ISM.d.ts.map +1 -0
  34. package/dist/contracts/isms/native/ERC5164ISM.js +4 -0
  35. package/dist/contracts/isms/native/ERC5164ISM.js.map +1 -0
  36. package/dist/contracts/isms/native/OptimismISM.d.ts +17 -17
  37. package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -1
  38. package/dist/contracts/isms/native/index.d.ts +1 -0
  39. package/dist/contracts/isms/native/index.d.ts.map +1 -1
  40. package/dist/contracts/libs/index.d.ts +0 -2
  41. package/dist/contracts/libs/index.d.ts.map +1 -1
  42. package/dist/contracts/libs/index.js +0 -1
  43. package/dist/contracts/libs/index.js.map +1 -1
  44. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts +72 -0
  45. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts.map +1 -0
  46. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js +4 -0
  47. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js.map +1 -0
  48. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts +44 -0
  49. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts.map +1 -0
  50. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js +4 -0
  51. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js.map +1 -0
  52. package/dist/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
  53. package/dist/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
  54. package/dist/contracts/mock/MockERC5164.sol/index.js +3 -0
  55. package/dist/contracts/mock/MockERC5164.sol/index.js.map +1 -0
  56. package/dist/contracts/mock/index.d.ts +2 -0
  57. package/dist/contracts/mock/index.d.ts.map +1 -1
  58. package/dist/contracts/mock/index.js +1 -0
  59. package/dist/contracts/mock/index.js.map +1 -1
  60. package/dist/factories/contracts/hooks/ERC5164/index.d.ts +2 -0
  61. package/dist/factories/contracts/hooks/ERC5164/index.d.ts.map +1 -0
  62. package/dist/factories/contracts/hooks/ERC5164/index.js +31 -0
  63. package/dist/factories/contracts/hooks/ERC5164/index.js.map +1 -0
  64. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts +36 -0
  65. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts.map +1 -0
  66. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js +84 -0
  67. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js.map +1 -0
  68. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
  69. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
  70. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js +9 -0
  71. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
  72. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts +45 -0
  73. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts.map +1 -0
  74. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js +125 -0
  75. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js.map +1 -0
  76. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
  77. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -1
  78. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
  79. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -1
  80. package/dist/factories/contracts/hooks/index.d.ts +2 -0
  81. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  82. package/dist/factories/contracts/hooks/index.js +27 -1
  83. package/dist/factories/contracts/hooks/index.js.map +1 -1
  84. package/dist/factories/contracts/index.d.ts +0 -1
  85. package/dist/factories/contracts/index.d.ts.map +1 -1
  86. package/dist/factories/contracts/index.js +1 -3
  87. package/dist/factories/contracts/index.js.map +1 -1
  88. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +1 -1
  89. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +4 -9
  90. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -1
  91. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts +59 -0
  92. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts.map +1 -0
  93. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js +171 -0
  94. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js.map +1 -0
  95. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +1 -1
  96. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -1
  97. package/dist/factories/contracts/isms/native/OptimismISM__factory.js +7 -12
  98. package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -1
  99. package/dist/factories/contracts/isms/native/index.d.ts +1 -0
  100. package/dist/factories/contracts/isms/native/index.d.ts.map +1 -1
  101. package/dist/factories/contracts/isms/native/index.js +3 -1
  102. package/dist/factories/contracts/isms/native/index.js.map +1 -1
  103. package/dist/factories/contracts/libs/index.d.ts +0 -1
  104. package/dist/factories/contracts/libs/index.d.ts.map +1 -1
  105. package/dist/factories/contracts/libs/index.js +1 -25
  106. package/dist/factories/contracts/libs/index.js.map +1 -1
  107. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +48 -0
  108. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -0
  109. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +107 -0
  110. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -0
  111. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +31 -0
  112. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts.map +1 -0
  113. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +60 -0
  114. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js.map +1 -0
  115. package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
  116. package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
  117. package/dist/factories/contracts/mock/MockERC5164.sol/index.js +11 -0
  118. package/dist/factories/contracts/mock/MockERC5164.sol/index.js.map +1 -0
  119. package/dist/factories/contracts/mock/index.d.ts +1 -0
  120. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  121. package/dist/factories/contracts/mock/index.js +25 -1
  122. package/dist/factories/contracts/mock/index.js.map +1 -1
  123. package/dist/index.d.ts +10 -4
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +13 -7
  126. package/dist/index.js.map +1 -1
  127. package/package.json +3 -4
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ /**
5
+ * @title ERC-5164: Cross-Chain Execution Standard
6
+ * @dev See https://eips.ethereum.org/EIPS/eip-5164
7
+ */
8
+ interface IMessageDispatcher {
9
+ /**
10
+ * @notice Emitted when a message has successfully been dispatched to the executor chain.
11
+ * @param messageId ID uniquely identifying the message
12
+ * @param from Address that dispatched the message
13
+ * @param toChainId ID of the chain receiving the message
14
+ * @param to Address that will receive the message
15
+ * @param data Data that was dispatched
16
+ */
17
+ event MessageDispatched(
18
+ bytes32 indexed messageId,
19
+ address indexed from,
20
+ uint256 indexed toChainId,
21
+ address to,
22
+ bytes data
23
+ );
24
+
25
+ function dispatchMessage(
26
+ uint256 toChainId,
27
+ address to,
28
+ bytes calldata data
29
+ ) external returns (bytes32);
30
+ }
@@ -0,0 +1,95 @@
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 {TypeCasts} from "../libs/TypeCasts.sol";
18
+ import {IMessageHook} from "../interfaces/hooks/IMessageHook.sol";
19
+ import {IMessageDispatcher} from "./ERC5164/interfaces/IMessageDispatcher.sol";
20
+ import {ERC5164ISM} from "../isms/native/ERC5164ISM.sol";
21
+
22
+ // ============ External Imports ============
23
+
24
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
25
+
26
+ /**
27
+ * @title 5164MessageHook
28
+ * @notice Message hook to inform the 5164 ISM of messages published through
29
+ * any of the 5164 adapters.
30
+ */
31
+ contract ERC5164MessageHook is IMessageHook {
32
+ using TypeCasts for address;
33
+ // ============ Constants ============
34
+
35
+ // Domain of chain on which the ERC5164ISM is deployed
36
+ uint32 public immutable destinationDomain;
37
+ // Dispatcher used to send messages
38
+ IMessageDispatcher public immutable dispatcher;
39
+ // address for ERC5164ISM to verify messages
40
+ address public immutable ism;
41
+
42
+ // ============ Constructor ============
43
+
44
+ constructor(
45
+ uint32 _destinationDomain,
46
+ address _dispatcher,
47
+ address _ism
48
+ ) {
49
+ require(
50
+ _destinationDomain != 0,
51
+ "ERC5164Hook: invalid destination domain"
52
+ );
53
+ require(_ism != address(0), "ERC5164Hook: invalid ISM");
54
+ destinationDomain = _destinationDomain;
55
+
56
+ require(
57
+ Address.isContract(_dispatcher),
58
+ "ERC5164Hook: invalid dispatcher"
59
+ );
60
+ dispatcher = IMessageDispatcher(_dispatcher);
61
+ ism = _ism;
62
+ }
63
+
64
+ // ============ External Functions ============
65
+
66
+ /**
67
+ * @notice Hook to inform the ERC5164ISM of messages published through.
68
+ * @dev anyone can call this function, that's why we need to send msg.sender
69
+ * @param _destinationDomain The destination domain of the message.
70
+ * @param _messageId The message ID.
71
+ * @return gasOverhead The gas overhead for the function call on destination.
72
+ */
73
+ function postDispatch(uint32 _destinationDomain, bytes32 _messageId)
74
+ public
75
+ payable
76
+ override
77
+ returns (uint256)
78
+ {
79
+ require(msg.value == 0, "ERC5164Hook: no value allowed");
80
+ require(
81
+ _destinationDomain == destinationDomain,
82
+ "ERC5164Hook: invalid destination domain"
83
+ );
84
+
85
+ bytes memory _payload = abi.encodeCall(
86
+ ERC5164ISM.verifyMessageId,
87
+ (msg.sender.addressToBytes32(), _messageId)
88
+ );
89
+
90
+ dispatcher.dispatchMessage(_destinationDomain, ism, _payload);
91
+
92
+ // EIP-5164 doesn't specify a gas overhead
93
+ return 0;
94
+ }
95
+ }
@@ -16,6 +16,7 @@ pragma solidity >=0.8.0;
16
16
  // ============ Internal Imports ============
17
17
  import {IMessageHook} from "../interfaces/hooks/IMessageHook.sol";
18
18
  import {OptimismISM} from "../isms/native/OptimismISM.sol";
19
+ import {TypeCasts} from "../libs/TypeCasts.sol";
19
20
 
20
21
  // ============ External Imports ============
21
22
  import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
@@ -27,6 +28,7 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
27
28
  * the native Optimism bridge.
28
29
  */
29
30
  contract OptimismMessageHook is IMessageHook {
31
+ using TypeCasts for address;
30
32
  // ============ Constants ============
31
33
 
32
34
  // Domain of chain on which the optimism ISM is deployed
@@ -85,7 +87,7 @@ contract OptimismMessageHook is IMessageHook {
85
87
 
86
88
  bytes memory _payload = abi.encodeCall(
87
89
  OptimismISM.verifyMessageId,
88
- (msg.sender, _messageId)
90
+ (msg.sender.addressToBytes32(), _messageId)
89
91
  );
90
92
 
91
93
  l1Messenger.sendMessage(ism, _payload, GAS_LIMIT);
@@ -1,6 +1,18 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
4
16
  // ============ Internal Imports ============
5
17
 
6
18
  import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
@@ -11,7 +23,6 @@ import {TypeCasts} from "../../libs/TypeCasts.sol";
11
23
 
12
24
  import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
13
25
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
14
- import {Address} from "@openzeppelin/contracts/utils/Address.sol";
15
26
 
16
27
  /**
17
28
  * @title ArbtractNativeISM
@@ -25,13 +36,13 @@ abstract contract AbstractNativeISM is
25
36
  {
26
37
  // ============ Public Storage ============
27
38
 
28
- // mapping to check if the specific messageID from a specific sender has been received
39
+ // mapping to check if the specific messageID is from a specific sender
29
40
  // @dev anyone can send an untrusted messageId, so need to check for that while verifying
30
- mapping(bytes32 => mapping(address => bool)) public verifiedMessageIds;
41
+ mapping(bytes32 => bytes32) public verifiedMessageIds;
31
42
 
32
43
  // ============ Events ============
33
44
 
34
- event ReceivedMessage(address indexed sender, bytes32 indexed messageId);
45
+ event ReceivedMessage(bytes32 indexed sender, bytes32 indexed messageId);
35
46
 
36
47
  // ============ External Functions ============
37
48
 
@@ -44,8 +55,8 @@ abstract contract AbstractNativeISM is
44
55
  bytes calldata _message
45
56
  ) external view returns (bool) {
46
57
  bytes32 _messageId = Message.id(_message);
47
- address _messageSender = Message.senderAddress(_message);
58
+ bytes32 _messageSender = Message.sender(_message);
48
59
 
49
- return verifiedMessageIds[_messageId][_messageSender];
60
+ return _messageSender == verifiedMessageIds[_messageId];
50
61
  }
51
62
  }
@@ -0,0 +1,75 @@
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
+
18
+ import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
19
+ import {ERC5164MessageHook} from "../../hooks/ERC5164MessageHook.sol";
20
+ import {Message} from "../../libs/Message.sol";
21
+ import {TypeCasts} from "../../libs/TypeCasts.sol";
22
+ import {AbstractNativeISM} from "./AbstractNativeISM.sol";
23
+
24
+ // ============ External Imports ============
25
+
26
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
27
+
28
+ /**
29
+ * @title ERC5164ISM
30
+ * @notice Uses the generic eip-5164 standard to verify interchain messages.
31
+ */
32
+ contract ERC5164ISM is AbstractNativeISM {
33
+ // ============ Constants ============
34
+
35
+ uint8 public constant moduleType =
36
+ uint8(IInterchainSecurityModule.Types.NULL);
37
+ // corresponding 5164 executor address
38
+ address public immutable executor;
39
+
40
+ // ============ Modifiers ============
41
+
42
+ /**
43
+ * @notice Check if sender is authorized to message `verifyMessageId`.
44
+ */
45
+ modifier isAuthorized() {
46
+ require(
47
+ msg.sender == executor,
48
+ "ERC5164ISM: sender is not the executor"
49
+ );
50
+ _;
51
+ }
52
+
53
+ // ============ Constructor ============
54
+
55
+ constructor(address _executor) {
56
+ require(Address.isContract(_executor), "ERC5164ISM: invalid executor");
57
+ executor = _executor;
58
+ }
59
+
60
+ // ============ External Functions ============
61
+
62
+ /**
63
+ * @notice Receive a message from the executor.
64
+ * @param _sender Left-padded address of the sender.
65
+ * @param _messageId Hyperlane ID for the message.
66
+ */
67
+ function verifyMessageId(bytes32 _sender, bytes32 _messageId)
68
+ external
69
+ isAuthorized
70
+ {
71
+ verifiedMessageIds[_messageId] = _sender;
72
+
73
+ emit ReceivedMessage(_sender, _messageId);
74
+ }
75
+ }
@@ -1,6 +1,18 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
+ /*@@@@@@@ @@@@@@@@@
5
+ @@@@@@@@@ @@@@@@@@@
6
+ @@@@@@@@@ @@@@@@@@@
7
+ @@@@@@@@@ @@@@@@@@@
8
+ @@@@@@@@@@@@@@@@@@@@@@@@@
9
+ @@@@@ HYPERLANE @@@@@@@
10
+ @@@@@@@@@@@@@@@@@@@@@@@@@
11
+ @@@@@@@@@ @@@@@@@@@
12
+ @@@@@@@@@ @@@@@@@@@
13
+ @@@@@@@@@ @@@@@@@@@
14
+ @@@@@@@@@ @@@@@@@@*/
15
+
4
16
  // ============ Internal Imports ============
5
17
 
6
18
  import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
@@ -22,7 +34,6 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
22
34
  contract OptimismISM is CrossChainEnabledOptimism, AbstractNativeISM {
23
35
  // ============ Constants ============
24
36
 
25
- // solhint-disable-next-line const-name-snakecase
26
37
  uint8 public constant moduleType =
27
38
  uint8(IInterchainSecurityModule.Types.NULL);
28
39
 
@@ -66,14 +77,14 @@ contract OptimismISM is CrossChainEnabledOptimism, AbstractNativeISM {
66
77
  /**
67
78
  * @notice Receive a message from the L2 messenger.
68
79
  * @dev Only callable by the L2 messenger.
69
- * @param _sender Address of the sender.
80
+ * @param _sender Left-padded address of the sender.
70
81
  * @param _messageId Hyperlane ID for the message.
71
82
  */
72
- function verifyMessageId(address _sender, bytes32 _messageId)
83
+ function verifyMessageId(bytes32 _sender, bytes32 _messageId)
73
84
  external
74
85
  isAuthorized
75
86
  {
76
- verifiedMessageIds[_messageId][_sender] = true;
87
+ verifiedMessageIds[_messageId] = _sender;
77
88
 
78
89
  emit ReceivedMessage(_sender, _messageId);
79
90
  }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT or Apache-2.0
2
+ pragma solidity ^0.8.13;
3
+
4
+ import {IMessageDispatcher} from "../hooks/ERC5164/interfaces/IMessageDispatcher.sol";
5
+
6
+ contract MockMessageDispatcher is IMessageDispatcher {
7
+ function dispatchMessage(
8
+ uint256 toChainId,
9
+ address to,
10
+ bytes calldata data
11
+ ) external returns (bytes32) {
12
+ bytes32 messageId = keccak256(abi.encodePacked(toChainId, to, data));
13
+
14
+ // simulate a successful dispatch
15
+ emit MessageDispatched(messageId, msg.sender, toChainId, to, data);
16
+
17
+ return messageId;
18
+ }
19
+ }
20
+
21
+ contract MockMessageExecutor {
22
+ event MessageIdExecuted(
23
+ uint256 indexed fromChainId,
24
+ bytes32 indexed messageId
25
+ );
26
+ }
@@ -0,0 +1,3 @@
1
+ import type * as interfaces from "./interfaces";
2
+ export type { interfaces };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/contracts/hooks/ERC5164/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,UAAU,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/contracts/hooks/ERC5164/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,72 @@
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 IMessageDispatcherInterface extends utils.Interface {
6
+ functions: {
7
+ "dispatchMessage(uint256,address,bytes)": FunctionFragment;
8
+ };
9
+ getFunction(nameOrSignatureOrTopic: "dispatchMessage"): FunctionFragment;
10
+ encodeFunctionData(functionFragment: "dispatchMessage", values: [BigNumberish, string, BytesLike]): string;
11
+ decodeFunctionResult(functionFragment: "dispatchMessage", data: BytesLike): Result;
12
+ events: {
13
+ "MessageDispatched(bytes32,address,uint256,address,bytes)": EventFragment;
14
+ };
15
+ getEvent(nameOrSignatureOrTopic: "MessageDispatched"): EventFragment;
16
+ }
17
+ export interface MessageDispatchedEventObject {
18
+ messageId: string;
19
+ from: string;
20
+ toChainId: BigNumber;
21
+ to: string;
22
+ data: string;
23
+ }
24
+ export declare type MessageDispatchedEvent = TypedEvent<[
25
+ string,
26
+ string,
27
+ BigNumber,
28
+ string,
29
+ string
30
+ ], MessageDispatchedEventObject>;
31
+ export declare type MessageDispatchedEventFilter = TypedEventFilter<MessageDispatchedEvent>;
32
+ export interface IMessageDispatcher extends BaseContract {
33
+ connect(signerOrProvider: Signer | Provider | string): this;
34
+ attach(addressOrName: string): this;
35
+ deployed(): Promise<this>;
36
+ interface: IMessageDispatcherInterface;
37
+ queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
38
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
39
+ listeners(eventName?: string): Array<Listener>;
40
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
41
+ removeAllListeners(eventName?: string): this;
42
+ off: OnEvent<this>;
43
+ on: OnEvent<this>;
44
+ once: OnEvent<this>;
45
+ removeListener: OnEvent<this>;
46
+ functions: {
47
+ dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
48
+ from?: string | Promise<string>;
49
+ }): Promise<ContractTransaction>;
50
+ };
51
+ dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
52
+ from?: string | Promise<string>;
53
+ }): Promise<ContractTransaction>;
54
+ callStatic: {
55
+ dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: CallOverrides): Promise<string>;
56
+ };
57
+ filters: {
58
+ "MessageDispatched(bytes32,address,uint256,address,bytes)"(messageId?: BytesLike | null, from?: string | null, toChainId?: BigNumberish | null, to?: null, data?: null): MessageDispatchedEventFilter;
59
+ MessageDispatched(messageId?: BytesLike | null, from?: string | null, toChainId?: BigNumberish | null, to?: null, data?: null): MessageDispatchedEventFilter;
60
+ };
61
+ estimateGas: {
62
+ dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
63
+ from?: string | Promise<string>;
64
+ }): Promise<BigNumber>;
65
+ };
66
+ populateTransaction: {
67
+ dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
68
+ from?: string | Promise<string>;
69
+ }): Promise<PopulatedTransaction>;
70
+ };
71
+ }
72
+ //# sourceMappingURL=IMessageDispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMessageDispatcher.d.ts","sourceRoot":"","sources":["../../../../../types/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.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=IMessageDispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMessageDispatcher.js","sourceRoot":"","sources":["../../../../../types/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,2 @@
1
+ export type { IMessageDispatcher } from "./IMessageDispatcher";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/contracts/hooks/ERC5164/interfaces/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,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/contracts/hooks/ERC5164/interfaces/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../common";
2
+ import type { FunctionFragment, Result } from "@ethersproject/abi";
3
+ import type { Listener, Provider } from "@ethersproject/providers";
4
+ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers";
5
+ export interface ERC5164MessageHookInterface extends utils.Interface {
6
+ functions: {
7
+ "destinationDomain()": FunctionFragment;
8
+ "dispatcher()": FunctionFragment;
9
+ "ism()": FunctionFragment;
10
+ "postDispatch(uint32,bytes32)": FunctionFragment;
11
+ };
12
+ getFunction(nameOrSignatureOrTopic: "destinationDomain" | "dispatcher" | "ism" | "postDispatch"): FunctionFragment;
13
+ encodeFunctionData(functionFragment: "destinationDomain", values?: undefined): string;
14
+ encodeFunctionData(functionFragment: "dispatcher", values?: undefined): string;
15
+ encodeFunctionData(functionFragment: "ism", values?: undefined): string;
16
+ encodeFunctionData(functionFragment: "postDispatch", values: [BigNumberish, BytesLike]): string;
17
+ decodeFunctionResult(functionFragment: "destinationDomain", data: BytesLike): Result;
18
+ decodeFunctionResult(functionFragment: "dispatcher", data: BytesLike): Result;
19
+ decodeFunctionResult(functionFragment: "ism", data: BytesLike): Result;
20
+ decodeFunctionResult(functionFragment: "postDispatch", data: BytesLike): Result;
21
+ events: {};
22
+ }
23
+ export interface ERC5164MessageHook extends BaseContract {
24
+ connect(signerOrProvider: Signer | Provider | string): this;
25
+ attach(addressOrName: string): this;
26
+ deployed(): Promise<this>;
27
+ interface: ERC5164MessageHookInterface;
28
+ queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
29
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
30
+ listeners(eventName?: string): Array<Listener>;
31
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
32
+ removeAllListeners(eventName?: string): this;
33
+ off: OnEvent<this>;
34
+ on: OnEvent<this>;
35
+ once: OnEvent<this>;
36
+ removeListener: OnEvent<this>;
37
+ functions: {
38
+ destinationDomain(overrides?: CallOverrides): Promise<[number]>;
39
+ dispatcher(overrides?: CallOverrides): Promise<[string]>;
40
+ ism(overrides?: CallOverrides): Promise<[string]>;
41
+ postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
42
+ from?: string | Promise<string>;
43
+ }): Promise<ContractTransaction>;
44
+ };
45
+ destinationDomain(overrides?: CallOverrides): Promise<number>;
46
+ dispatcher(overrides?: CallOverrides): Promise<string>;
47
+ ism(overrides?: CallOverrides): Promise<string>;
48
+ postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
49
+ from?: string | Promise<string>;
50
+ }): Promise<ContractTransaction>;
51
+ callStatic: {
52
+ destinationDomain(overrides?: CallOverrides): Promise<number>;
53
+ dispatcher(overrides?: CallOverrides): Promise<string>;
54
+ ism(overrides?: CallOverrides): Promise<string>;
55
+ postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
56
+ };
57
+ filters: {};
58
+ estimateGas: {
59
+ destinationDomain(overrides?: CallOverrides): Promise<BigNumber>;
60
+ dispatcher(overrides?: CallOverrides): Promise<BigNumber>;
61
+ ism(overrides?: CallOverrides): Promise<BigNumber>;
62
+ postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
63
+ from?: string | Promise<string>;
64
+ }): Promise<BigNumber>;
65
+ };
66
+ populateTransaction: {
67
+ destinationDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
68
+ dispatcher(overrides?: CallOverrides): Promise<PopulatedTransaction>;
69
+ ism(overrides?: CallOverrides): Promise<PopulatedTransaction>;
70
+ postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
71
+ from?: string | Promise<string>;
72
+ }): Promise<PopulatedTransaction>;
73
+ };
74
+ }
75
+ //# sourceMappingURL=ERC5164MessageHook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ERC5164MessageHook.d.ts","sourceRoot":"","sources":["../../../types/contracts/hooks/ERC5164MessageHook.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=ERC5164MessageHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ERC5164MessageHook.js","sourceRoot":"","sources":["../../../types/contracts/hooks/ERC5164MessageHook.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -1,2 +1,5 @@
1
+ import type * as erc5164 from "./ERC5164";
2
+ export type { erc5164 };
3
+ export type { ERC5164MessageHook } from "./ERC5164MessageHook";
1
4
  export type { OptimismMessageHook } from "./OptimismMessageHook";
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/contracts/hooks/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/contracts/hooks/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAC;AAE1C,YAAY,EAAE,OAAO,EAAE,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../types/contracts/hooks/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../types/contracts/hooks/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -18,7 +18,6 @@ export type { middleware };
18
18
  export type { mock };
19
19
  export type { test };
20
20
  export type { upgrade };
21
- export type { CheckpointFraudProofs } from "./CheckpointFraudProofs";
22
21
  export type { GasRouter } from "./GasRouter";
23
22
  export type { HyperlaneConnectionClient } from "./HyperlaneConnectionClient";
24
23
  export type { Mailbox } from "./Mailbox";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,0BAA0B,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAC;AAE1C,YAAY,EAAE,0BAA0B,EAAE,CAAC;AAE3C,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,OAAO,EAAE,CAAC;AACxB,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,0BAA0B,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAC;AAE1C,YAAY,EAAE,0BAA0B,EAAE,CAAC;AAE3C,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,YAAY,EAAE,OAAO,EAAE,CAAC;AACxB,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}