@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.
- package/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol +30 -0
- package/contracts/hooks/ERC5164MessageHook.sol +95 -0
- package/contracts/hooks/OptimismMessageHook.sol +3 -1
- package/contracts/isms/native/AbstractNativeISM.sol +17 -6
- package/contracts/isms/native/ERC5164ISM.sol +75 -0
- package/contracts/isms/native/OptimismISM.sol +15 -4
- package/contracts/mock/MockERC5164.sol +26 -0
- package/dist/contracts/hooks/ERC5164/index.d.ts +3 -0
- package/dist/contracts/hooks/ERC5164/index.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/index.js +4 -0
- package/dist/contracts/hooks/ERC5164/index.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts +72 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js +4 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.js +3 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
- package/dist/contracts/hooks/ERC5164MessageHook.d.ts +75 -0
- package/dist/contracts/hooks/ERC5164MessageHook.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164MessageHook.js +4 -0
- package/dist/contracts/hooks/ERC5164MessageHook.js.map +1 -0
- package/dist/contracts/hooks/index.d.ts +3 -0
- package/dist/contracts/hooks/index.d.ts.map +1 -1
- package/dist/contracts/hooks/index.js +1 -0
- package/dist/contracts/hooks/index.js.map +1 -1
- package/dist/contracts/index.d.ts +0 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts +10 -10
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -1
- package/dist/contracts/isms/native/ERC5164ISM.d.ts +107 -0
- package/dist/contracts/isms/native/ERC5164ISM.d.ts.map +1 -0
- package/dist/contracts/isms/native/ERC5164ISM.js +4 -0
- package/dist/contracts/isms/native/ERC5164ISM.js.map +1 -0
- package/dist/contracts/isms/native/OptimismISM.d.ts +17 -17
- package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -1
- package/dist/contracts/isms/native/index.d.ts +1 -0
- package/dist/contracts/isms/native/index.d.ts.map +1 -1
- package/dist/contracts/libs/index.d.ts +0 -2
- package/dist/contracts/libs/index.d.ts.map +1 -1
- package/dist/contracts/libs/index.js +0 -1
- package/dist/contracts/libs/index.js.map +1 -1
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts +72 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js +4 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts +44 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js +4 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
- package/dist/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/index.js +3 -0
- package/dist/contracts/mock/MockERC5164.sol/index.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +2 -0
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/mock/index.js +1 -0
- package/dist/contracts/mock/index.js.map +1 -1
- package/dist/factories/contracts/hooks/ERC5164/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/ERC5164/index.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/index.js +31 -0
- package/dist/factories/contracts/hooks/ERC5164/index.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts +36 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js +84 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js +9 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts +45 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js +125 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/index.js +27 -1
- package/dist/factories/contracts/hooks/index.js.map +1 -1
- package/dist/factories/contracts/index.d.ts +0 -1
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +1 -3
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +4 -9
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -1
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts +59 -0
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js +171 -0
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js +7 -12
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -1
- package/dist/factories/contracts/isms/native/index.d.ts +1 -0
- package/dist/factories/contracts/isms/native/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/native/index.js +3 -1
- package/dist/factories/contracts/isms/native/index.js.map +1 -1
- package/dist/factories/contracts/libs/index.d.ts +0 -1
- package/dist/factories/contracts/libs/index.d.ts.map +1 -1
- package/dist/factories/contracts/libs/index.js +1 -25
- package/dist/factories/contracts/libs/index.js.map +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +48 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +107 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +31 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +60 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.js +11 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +1 -0
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +25 -1
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -7
- package/dist/index.js.map +1 -1
- 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
|
|
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 =>
|
|
41
|
+
mapping(bytes32 => bytes32) public verifiedMessageIds;
|
|
31
42
|
|
|
32
43
|
// ============ Events ============
|
|
33
44
|
|
|
34
|
-
event ReceivedMessage(
|
|
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
|
-
|
|
58
|
+
bytes32 _messageSender = Message.sender(_message);
|
|
48
59
|
|
|
49
|
-
return verifiedMessageIds[_messageId]
|
|
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
|
|
80
|
+
* @param _sender Left-padded address of the sender.
|
|
70
81
|
* @param _messageId Hyperlane ID for the message.
|
|
71
82
|
*/
|
|
72
|
-
function verifyMessageId(
|
|
83
|
+
function verifyMessageId(bytes32 _sender, bytes32 _messageId)
|
|
73
84
|
external
|
|
74
85
|
isAuthorized
|
|
75
86
|
{
|
|
76
|
-
verifiedMessageIds[_messageId]
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"IMessageDispatcher.js","sourceRoot":"","sources":["../../../../../types/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"ERC5164MessageHook.js","sourceRoot":"","sources":["../../../types/contracts/hooks/ERC5164MessageHook.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/contracts/hooks/index.ts"],"names":[],"mappings":"
|
|
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 +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,
|
|
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"}
|