@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.
- package/contracts/hooks/OptimismMessageHook.sol +96 -0
- package/contracts/interfaces/IInterchainSecurityModule.sol +3 -2
- package/contracts/interfaces/hooks/IMessageHook.sol +9 -0
- package/contracts/isms/native/AbstractNativeISM.sol +51 -0
- package/contracts/isms/native/OptimismISM.sol +80 -0
- package/dist/@eth-optimism/contracts/index.d.ts +3 -0
- package/dist/@eth-optimism/contracts/index.d.ts.map +1 -0
- package/dist/@eth-optimism/contracts/index.js +4 -0
- package/dist/@eth-optimism/contracts/index.js.map +1 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts +102 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts.map +1 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js +4 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js.map +1 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/index.d.ts +2 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/index.d.ts.map +1 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/index.js +3 -0
- package/dist/@eth-optimism/contracts/libraries/bridge/index.js.map +1 -0
- package/dist/@eth-optimism/contracts/libraries/index.d.ts +3 -0
- package/dist/@eth-optimism/contracts/libraries/index.d.ts.map +1 -0
- package/dist/@eth-optimism/contracts/libraries/index.js +4 -0
- package/dist/@eth-optimism/contracts/libraries/index.js.map +1 -0
- package/dist/@eth-optimism/index.d.ts +3 -0
- package/dist/@eth-optimism/index.d.ts.map +1 -0
- package/dist/@eth-optimism/index.js +4 -0
- package/dist/@eth-optimism/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts/vendor/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/index.js +4 -0
- package/dist/@openzeppelin/contracts/vendor/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts +102 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js +4 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/index.js +3 -0
- package/dist/@openzeppelin/contracts/vendor/optimism/index.js.map +1 -0
- package/dist/contracts/hooks/OptimismMessageHook.d.ts +75 -0
- package/dist/contracts/hooks/OptimismMessageHook.d.ts.map +1 -0
- package/dist/contracts/hooks/OptimismMessageHook.js +4 -0
- package/dist/contracts/hooks/OptimismMessageHook.js.map +1 -0
- package/dist/contracts/hooks/index.d.ts +2 -0
- package/dist/contracts/hooks/index.d.ts.map +1 -0
- package/dist/contracts/hooks/index.js +3 -0
- package/dist/contracts/hooks/index.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/interfaces/hooks/IMessageHook.d.ts +51 -0
- package/dist/contracts/interfaces/hooks/IMessageHook.d.ts.map +1 -0
- package/dist/contracts/interfaces/hooks/IMessageHook.js +4 -0
- package/dist/contracts/interfaces/hooks/IMessageHook.js.map +1 -0
- package/dist/contracts/interfaces/hooks/index.d.ts +2 -0
- package/dist/contracts/interfaces/hooks/index.d.ts.map +1 -0
- package/dist/contracts/interfaces/hooks/index.js +3 -0
- package/dist/contracts/interfaces/hooks/index.js.map +1 -0
- package/dist/contracts/interfaces/index.d.ts +2 -0
- package/dist/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/contracts/isms/index.d.ts +2 -0
- package/dist/contracts/isms/index.d.ts.map +1 -1
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts +83 -0
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -0
- package/dist/contracts/isms/native/AbstractNativeISM.js +4 -0
- package/dist/contracts/isms/native/AbstractNativeISM.js.map +1 -0
- package/dist/contracts/isms/native/OptimismISM.d.ts +123 -0
- package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -0
- package/dist/contracts/isms/native/OptimismISM.js +4 -0
- package/dist/contracts/isms/native/OptimismISM.js.map +1 -0
- package/dist/contracts/isms/native/index.d.ts +3 -0
- package/dist/contracts/isms/native/index.d.ts.map +1 -0
- package/dist/contracts/isms/native/index.js +3 -0
- package/dist/contracts/isms/native/index.js.map +1 -0
- package/dist/factories/@eth-optimism/contracts/index.d.ts +2 -0
- package/dist/factories/@eth-optimism/contracts/index.d.ts.map +1 -0
- package/dist/factories/@eth-optimism/contracts/index.js +31 -0
- package/dist/factories/@eth-optimism/contracts/index.js.map +1 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts +43 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts.map +1 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js +117 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js.map +1 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.d.ts +2 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.d.ts.map +1 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.js +9 -0
- package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.js.map +1 -0
- package/dist/factories/@eth-optimism/contracts/libraries/index.d.ts +2 -0
- package/dist/factories/@eth-optimism/contracts/libraries/index.d.ts.map +1 -0
- package/dist/factories/@eth-optimism/contracts/libraries/index.js +31 -0
- package/dist/factories/@eth-optimism/contracts/libraries/index.js.map +1 -0
- package/dist/factories/@eth-optimism/index.d.ts +2 -0
- package/dist/factories/@eth-optimism/index.d.ts.map +1 -0
- package/dist/factories/@eth-optimism/index.js +31 -0
- package/dist/factories/@eth-optimism/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.js +2 -1
- package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/index.js +31 -0
- package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts +43 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js +117 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js.map +1 -0
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts +1 -1
- package/dist/factories/contracts/ValidatorAnnounce__factory.js +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +45 -0
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +125 -0
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/index.js +9 -0
- package/dist/factories/contracts/hooks/index.js.map +1 -0
- package/dist/factories/contracts/index.d.ts +1 -0
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +2 -1
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts +23 -0
- package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js +42 -0
- package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/hooks/index.d.ts +2 -0
- package/dist/factories/contracts/interfaces/hooks/index.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/hooks/index.js +9 -0
- package/dist/factories/contracts/interfaces/hooks/index.js.map +1 -0
- package/dist/factories/contracts/interfaces/index.d.ts +1 -0
- package/dist/factories/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/index.js +2 -1
- package/dist/factories/contracts/interfaces/index.js.map +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/index.d.ts +1 -0
- package/dist/factories/contracts/isms/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/index.js +2 -1
- package/dist/factories/contracts/isms/index.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts +36 -0
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +111 -0
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +66 -0
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js +194 -0
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/native/index.d.ts +3 -0
- package/dist/factories/contracts/isms/native/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/native/index.js +11 -0
- package/dist/factories/contracts/isms/native/index.js.map +1 -0
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
- package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
- package/dist/factories/index.d.ts +1 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +2 -1
- package/dist/factories/index.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- 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
|
-
|
|
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,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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"ICrossDomainMessenger.js","sourceRoot":"","sources":["../../../../../types/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@eth-optimism/contracts/libraries/bridge/index.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/@eth-optimism/contracts/libraries/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -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 @@
|
|
|
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;
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"ICrossDomainMessenger.js","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/vendor/optimism/index.ts"],"names":[],"mappings":""}
|