@hyperlane-xyz/core 1.0.0-beta1 → 1.0.0-beta3
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/OwnableMulticall.sol +4 -0
- package/contracts/Router.sol +33 -14
- package/contracts/libs/EnumerableMapExtended.sol +72 -0
- package/contracts/libs/MinimalProxy.sol +16 -0
- package/contracts/middleware/InterchainAccountRouter.sol +12 -2
- package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +1 -1
- package/contracts/mock/MockInterchainAccountRouter.sol +15 -79
- package/dist/contracts/OwnableMulticall.d.ts +17 -1
- package/dist/contracts/OwnableMulticall.d.ts.map +1 -1
- package/dist/contracts/Router.d.ts +19 -11
- package/dist/contracts/Router.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts +19 -11
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts +42 -18
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +19 -11
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +19 -11
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +259 -1
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/test/TestRouter.d.ts +19 -11
- package/dist/contracts/test/TestRouter.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +1 -1
- package/dist/factories/contracts/Create2Factory__factory.d.ts +1 -1
- package/dist/factories/contracts/Create2Factory__factory.js +1 -1
- package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.d.ts +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.d.ts.map +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.js +8 -1
- package/dist/factories/contracts/OwnableMulticall__factory.js.map +1 -1
- package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Router__factory.js +15 -2
- package/dist/factories/contracts/Router__factory.js.map +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +9 -2
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +21 -3
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +23 -3
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +16 -3
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +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.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +16 -3
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockCircleBridge__factory.js +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +316 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +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/mock/MockToken__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockToken__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/TestIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__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/TestMerkle__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.js +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__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.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +16 -3
- package/dist/factories/contracts/test/TestRouter__factory.js.map +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/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts +1 -1
- package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js +1 -1
- package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +1 -1
- package/dist/factories/contracts/upgrade/Versioned__factory.js +1 -1
- package/package.json +6 -4
|
@@ -15,6 +15,10 @@ contract OwnableMulticall is OwnableUpgradeable {
|
|
|
15
15
|
_transferOwnership(msg.sender);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
function initialize() external initializer {
|
|
19
|
+
_transferOwnership(msg.sender);
|
|
20
|
+
}
|
|
21
|
+
|
|
18
22
|
function proxyCalls(Call[] calldata calls) external onlyOwner {
|
|
19
23
|
for (uint256 i = 0; i < calls.length; i += 1) {
|
|
20
24
|
(bool success, bytes memory returnData) = calls[i].to.call(
|
package/contracts/Router.sol
CHANGED
|
@@ -6,14 +6,16 @@ import {HyperlaneConnectionClient} from "./HyperlaneConnectionClient.sol";
|
|
|
6
6
|
import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
|
|
7
7
|
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
|
|
8
8
|
import {IMailbox} from "../interfaces/IMailbox.sol";
|
|
9
|
+
import {EnumerableMapExtended} from "./libs/EnumerableMapExtended.sol";
|
|
9
10
|
|
|
10
11
|
abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
12
|
+
using EnumerableMapExtended for EnumerableMapExtended.UintToBytes32Map;
|
|
13
|
+
|
|
11
14
|
string constant NO_ROUTER_ENROLLED_REVERT_MESSAGE =
|
|
12
15
|
"No router enrolled for domain. Did you specify the right domain ID?";
|
|
13
16
|
|
|
14
17
|
// ============ Mutable Storage ============
|
|
15
|
-
|
|
16
|
-
mapping(uint32 => bytes32) public routers;
|
|
18
|
+
EnumerableMapExtended.UintToBytes32Map internal _routers;
|
|
17
19
|
uint256[49] private __GAP; // gap for upgrade safety
|
|
18
20
|
|
|
19
21
|
// ============ Events ============
|
|
@@ -55,6 +57,22 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
// ============ External functions ============
|
|
60
|
+
function domains() external view returns (uint32[] memory) {
|
|
61
|
+
bytes32[] storage rawKeys = _routers.keys();
|
|
62
|
+
uint32[] memory keys = new uint32[](rawKeys.length);
|
|
63
|
+
for (uint256 i = 0; i < rawKeys.length; i++) {
|
|
64
|
+
keys[i] = uint32(uint256(rawKeys[i]));
|
|
65
|
+
}
|
|
66
|
+
return keys;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function routers(uint32 _domain) public view returns (bytes32) {
|
|
70
|
+
if (_routers.contains(_domain)) {
|
|
71
|
+
return _routers.get(_domain);
|
|
72
|
+
} else {
|
|
73
|
+
return bytes32(0); // for backwards compatibility with storage mapping
|
|
74
|
+
}
|
|
75
|
+
}
|
|
58
76
|
|
|
59
77
|
/**
|
|
60
78
|
* @notice Register the address of a Router contract for the same Application on a remote chain
|
|
@@ -72,15 +90,15 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
72
90
|
/**
|
|
73
91
|
* @notice Batch version of `enrollRemoteRouter`
|
|
74
92
|
* @param _domains The domaisn of the remote Application Routers
|
|
75
|
-
* @param
|
|
93
|
+
* @param _addresses The addresses of the remote Application Routers
|
|
76
94
|
*/
|
|
77
95
|
function enrollRemoteRouters(
|
|
78
96
|
uint32[] calldata _domains,
|
|
79
|
-
bytes32[] calldata
|
|
97
|
+
bytes32[] calldata _addresses
|
|
80
98
|
) external virtual onlyOwner {
|
|
81
|
-
require(_domains.length ==
|
|
99
|
+
require(_domains.length == _addresses.length, "!length");
|
|
82
100
|
for (uint256 i = 0; i < _domains.length; i += 1) {
|
|
83
|
-
_enrollRemoteRouter(_domains[i],
|
|
101
|
+
_enrollRemoteRouter(_domains[i], _addresses[i]);
|
|
84
102
|
}
|
|
85
103
|
}
|
|
86
104
|
|
|
@@ -111,24 +129,24 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
111
129
|
/**
|
|
112
130
|
* @notice Set the router for a given domain
|
|
113
131
|
* @param _domain The domain
|
|
114
|
-
* @param
|
|
132
|
+
* @param _address The new router
|
|
115
133
|
*/
|
|
116
|
-
function _enrollRemoteRouter(uint32 _domain, bytes32
|
|
117
|
-
|
|
118
|
-
emit RemoteRouterEnrolled(_domain,
|
|
134
|
+
function _enrollRemoteRouter(uint32 _domain, bytes32 _address) internal {
|
|
135
|
+
_routers.set(_domain, _address);
|
|
136
|
+
emit RemoteRouterEnrolled(_domain, _address);
|
|
119
137
|
}
|
|
120
138
|
|
|
121
139
|
/**
|
|
122
140
|
* @notice Return true if the given domain / router is the address of a remote Application Router
|
|
123
141
|
* @param _domain The domain of the potential remote Application Router
|
|
124
|
-
* @param
|
|
142
|
+
* @param _address The address of the potential remote Application Router
|
|
125
143
|
*/
|
|
126
|
-
function _isRemoteRouter(uint32 _domain, bytes32
|
|
144
|
+
function _isRemoteRouter(uint32 _domain, bytes32 _address)
|
|
127
145
|
internal
|
|
128
146
|
view
|
|
129
147
|
returns (bool)
|
|
130
148
|
{
|
|
131
|
-
return routers
|
|
149
|
+
return routers(_domain) == _address;
|
|
132
150
|
}
|
|
133
151
|
|
|
134
152
|
/**
|
|
@@ -141,7 +159,7 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
141
159
|
view
|
|
142
160
|
returns (bytes32 _router)
|
|
143
161
|
{
|
|
144
|
-
_router = routers
|
|
162
|
+
_router = routers(_domain);
|
|
145
163
|
require(_router != bytes32(0), NO_ROUTER_ENROLLED_REVERT_MESSAGE);
|
|
146
164
|
}
|
|
147
165
|
|
|
@@ -182,6 +200,7 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
182
200
|
*/
|
|
183
201
|
function _dispatch(uint32 _destinationDomain, bytes memory _messageBody)
|
|
184
202
|
internal
|
|
203
|
+
virtual
|
|
185
204
|
returns (bytes32)
|
|
186
205
|
{
|
|
187
206
|
// Ensure that destination chain has an enrolled router.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.6.11;
|
|
3
|
+
|
|
4
|
+
// ============ External Imports ============
|
|
5
|
+
import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
|
|
6
|
+
|
|
7
|
+
// extends EnumerableMap with uint256 => bytes32 type
|
|
8
|
+
// modelled after https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.0/contracts/utils/structs/EnumerableMap.sol
|
|
9
|
+
library EnumerableMapExtended {
|
|
10
|
+
using EnumerableMap for EnumerableMap.Bytes32ToBytes32Map;
|
|
11
|
+
|
|
12
|
+
struct UintToBytes32Map {
|
|
13
|
+
EnumerableMap.Bytes32ToBytes32Map _inner;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// ============ Library Functions ============
|
|
17
|
+
function keys(UintToBytes32Map storage map)
|
|
18
|
+
internal
|
|
19
|
+
view
|
|
20
|
+
returns (bytes32[] storage)
|
|
21
|
+
{
|
|
22
|
+
return map._inner._keys._inner._values;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function set(
|
|
26
|
+
UintToBytes32Map storage map,
|
|
27
|
+
uint256 key,
|
|
28
|
+
bytes32 value
|
|
29
|
+
) internal {
|
|
30
|
+
map._inner.set(bytes32(key), value);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function get(UintToBytes32Map storage map, uint256 key)
|
|
34
|
+
internal
|
|
35
|
+
view
|
|
36
|
+
returns (bytes32)
|
|
37
|
+
{
|
|
38
|
+
return map._inner.get(bytes32(key));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function remove(UintToBytes32Map storage map, uint256 key)
|
|
42
|
+
internal
|
|
43
|
+
returns (bool)
|
|
44
|
+
{
|
|
45
|
+
return map._inner.remove(bytes32(key));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function contains(UintToBytes32Map storage map, uint256 key)
|
|
49
|
+
internal
|
|
50
|
+
view
|
|
51
|
+
returns (bool)
|
|
52
|
+
{
|
|
53
|
+
return map._inner.contains(bytes32(key));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function length(UintToBytes32Map storage map)
|
|
57
|
+
internal
|
|
58
|
+
view
|
|
59
|
+
returns (uint256)
|
|
60
|
+
{
|
|
61
|
+
return map._inner.length();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function at(UintToBytes32Map storage map, uint256 index)
|
|
65
|
+
internal
|
|
66
|
+
view
|
|
67
|
+
returns (uint256, bytes32)
|
|
68
|
+
{
|
|
69
|
+
(bytes32 key, bytes32 value) = map._inner.at(index);
|
|
70
|
+
return (uint256(key), value);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.6.11;
|
|
3
|
+
|
|
4
|
+
// Library for building bytecode of minimal proxies (see https://eips.ethereum.org/EIPS/eip-1167)
|
|
5
|
+
library MinimalProxy {
|
|
6
|
+
bytes20 constant PREFIX = hex"3d602d80600a3d3981f3363d3d373d3d3d363d73";
|
|
7
|
+
bytes15 constant SUFFIX = hex"5af43d82803e903d91602b57fd5bf3";
|
|
8
|
+
|
|
9
|
+
function bytecode(address implementation)
|
|
10
|
+
internal
|
|
11
|
+
pure
|
|
12
|
+
returns (bytes memory)
|
|
13
|
+
{
|
|
14
|
+
return abi.encodePacked(PREFIX, bytes20(implementation), SUFFIX);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -5,6 +5,7 @@ pragma solidity ^0.8.13;
|
|
|
5
5
|
import {OwnableMulticall, Call} from "../OwnableMulticall.sol";
|
|
6
6
|
import {Router} from "../Router.sol";
|
|
7
7
|
import {IInterchainAccountRouter} from "../../interfaces/IInterchainAccountRouter.sol";
|
|
8
|
+
import {MinimalProxy} from "../libs/MinimalProxy.sol";
|
|
8
9
|
|
|
9
10
|
// ============ External Imports ============
|
|
10
11
|
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
|
@@ -16,8 +17,8 @@ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Ini
|
|
|
16
17
|
* @dev You can use this simple app as a starting point for your own application.
|
|
17
18
|
*/
|
|
18
19
|
contract InterchainAccountRouter is Router, IInterchainAccountRouter {
|
|
19
|
-
|
|
20
|
-
bytes32
|
|
20
|
+
address immutable implementation;
|
|
21
|
+
bytes32 immutable bytecodeHash;
|
|
21
22
|
|
|
22
23
|
event InterchainAccountCreated(
|
|
23
24
|
uint32 indexed origin,
|
|
@@ -25,6 +26,13 @@ contract InterchainAccountRouter is Router, IInterchainAccountRouter {
|
|
|
25
26
|
address account
|
|
26
27
|
);
|
|
27
28
|
|
|
29
|
+
constructor() {
|
|
30
|
+
implementation = address(new OwnableMulticall());
|
|
31
|
+
// cannot be stored immutably because it is dynamically sized
|
|
32
|
+
bytes memory bytecode = MinimalProxy.bytecode(implementation);
|
|
33
|
+
bytecodeHash = keccak256(bytecode);
|
|
34
|
+
}
|
|
35
|
+
|
|
28
36
|
function initialize(
|
|
29
37
|
address _mailbox,
|
|
30
38
|
address _interchainGasPaymaster,
|
|
@@ -70,7 +78,9 @@ contract InterchainAccountRouter is Router, IInterchainAccountRouter {
|
|
|
70
78
|
bytes32 salt = _salt(_origin, _sender);
|
|
71
79
|
address interchainAccount = _getInterchainAccount(salt);
|
|
72
80
|
if (!Address.isContract(interchainAccount)) {
|
|
81
|
+
bytes memory bytecode = MinimalProxy.bytecode(implementation);
|
|
73
82
|
interchainAccount = Create2.deploy(0, salt, bytecode);
|
|
83
|
+
OwnableMulticall(interchainAccount).initialize();
|
|
74
84
|
emit InterchainAccountCreated(_origin, _sender, interchainAccount);
|
|
75
85
|
}
|
|
76
86
|
return OwnableMulticall(interchainAccount);
|
|
@@ -96,7 +96,7 @@ contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
|
96
96
|
uint32 _circleDomain = hyperlaneDomainToCircleDomain[
|
|
97
97
|
_destinationDomain
|
|
98
98
|
];
|
|
99
|
-
bytes32 _remoteRouter = routers
|
|
99
|
+
bytes32 _remoteRouter = routers(_destinationDomain);
|
|
100
100
|
require(
|
|
101
101
|
_remoteRouter != bytes32(0),
|
|
102
102
|
"CircleBridgeAdapter: No router for domain"
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.13;
|
|
3
3
|
|
|
4
|
+
import {InterchainAccountRouter} from "../middleware/InterchainAccountRouter.sol";
|
|
4
5
|
import {OwnableMulticall, Call} from "../OwnableMulticall.sol";
|
|
5
|
-
import {IInterchainAccountRouter} from "../../interfaces/IInterchainAccountRouter.sol";
|
|
6
|
-
|
|
7
|
-
// ============ External Imports ============
|
|
8
|
-
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
|
9
|
-
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
10
6
|
|
|
11
7
|
/*
|
|
12
8
|
* @title The Hello World App
|
|
13
9
|
* @dev You can use this simple app as a starting point for your own application.
|
|
14
10
|
*/
|
|
15
|
-
contract MockInterchainAccountRouter is
|
|
11
|
+
contract MockInterchainAccountRouter is InterchainAccountRouter {
|
|
16
12
|
struct PendingCall {
|
|
17
13
|
uint32 originDomain;
|
|
18
|
-
|
|
19
|
-
bytes serializedCalls;
|
|
14
|
+
bytes senderAndCalls;
|
|
20
15
|
}
|
|
21
16
|
|
|
22
17
|
uint32 public originDomain;
|
|
@@ -25,88 +20,29 @@ contract MockInterchainAccountRouter is IInterchainAccountRouter {
|
|
|
25
20
|
uint256 totalCalls = 0;
|
|
26
21
|
uint256 callsProcessed = 0;
|
|
27
22
|
|
|
28
|
-
|
|
29
|
-
bytes32 constant bytecodeHash = bytes32(keccak256(bytecode));
|
|
30
|
-
|
|
31
|
-
event InterchainAccountCreated(
|
|
32
|
-
uint32 indexed origin,
|
|
33
|
-
address sender,
|
|
34
|
-
address account
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
constructor(uint32 _originDomain) {
|
|
23
|
+
constructor(uint32 _originDomain) InterchainAccountRouter() {
|
|
38
24
|
originDomain = _originDomain;
|
|
39
25
|
}
|
|
40
26
|
|
|
41
|
-
function
|
|
42
|
-
|
|
27
|
+
function _dispatch(uint32, bytes memory _messageBody)
|
|
28
|
+
internal
|
|
29
|
+
override
|
|
43
30
|
returns (bytes32)
|
|
44
31
|
{
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function dispatch(
|
|
49
|
-
uint32 _destinationDomain,
|
|
50
|
-
address target,
|
|
51
|
-
bytes calldata data
|
|
52
|
-
) external returns (bytes32) {
|
|
53
|
-
Call[] memory calls = new Call[](1);
|
|
54
|
-
calls[0] = Call({to: target, data: data});
|
|
55
|
-
return _dispatch(_destinationDomain, calls);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function _dispatch(uint32, Call[] memory calls) internal returns (bytes32) {
|
|
59
|
-
pendingCalls[totalCalls] = PendingCall(
|
|
60
|
-
originDomain,
|
|
61
|
-
msg.sender,
|
|
62
|
-
abi.encode(calls)
|
|
63
|
-
);
|
|
32
|
+
pendingCalls[totalCalls] = PendingCall(originDomain, _messageBody);
|
|
64
33
|
totalCalls += 1;
|
|
65
34
|
return keccak256(abi.encodePacked(totalCalls));
|
|
66
35
|
}
|
|
67
36
|
|
|
68
|
-
function getInterchainAccount(uint32 _origin, address _sender)
|
|
69
|
-
public
|
|
70
|
-
view
|
|
71
|
-
returns (address)
|
|
72
|
-
{
|
|
73
|
-
return _getInterchainAccount(_salt(_origin, _sender));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function getDeployedInterchainAccount(uint32 _origin, address _sender)
|
|
77
|
-
public
|
|
78
|
-
returns (OwnableMulticall)
|
|
79
|
-
{
|
|
80
|
-
bytes32 salt = _salt(_origin, _sender);
|
|
81
|
-
address interchainAccount = _getInterchainAccount(salt);
|
|
82
|
-
if (!Address.isContract(interchainAccount)) {
|
|
83
|
-
interchainAccount = Create2.deploy(0, salt, bytecode);
|
|
84
|
-
emit InterchainAccountCreated(_origin, _sender, interchainAccount);
|
|
85
|
-
}
|
|
86
|
-
return OwnableMulticall(interchainAccount);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function _salt(uint32 _origin, address _sender)
|
|
90
|
-
internal
|
|
91
|
-
pure
|
|
92
|
-
returns (bytes32)
|
|
93
|
-
{
|
|
94
|
-
return bytes32(abi.encodePacked(_origin, _sender));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function _getInterchainAccount(bytes32 salt)
|
|
98
|
-
internal
|
|
99
|
-
view
|
|
100
|
-
returns (address)
|
|
101
|
-
{
|
|
102
|
-
return Create2.computeAddress(salt, bytecodeHash);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
37
|
function processNextPendingCall() public {
|
|
106
38
|
PendingCall memory pendingCall = pendingCalls[callsProcessed];
|
|
107
|
-
Call[] memory calls = abi.decode(
|
|
39
|
+
(address sender, Call[] memory calls) = abi.decode(
|
|
40
|
+
pendingCall.senderAndCalls,
|
|
41
|
+
(address, Call[])
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
getDeployedInterchainAccount(originDomain, sender).proxyCalls(calls);
|
|
108
45
|
|
|
109
|
-
|
|
110
|
-
.proxyCalls(calls);
|
|
46
|
+
callsProcessed += 1;
|
|
111
47
|
}
|
|
112
48
|
}
|
|
@@ -12,16 +12,19 @@ export declare type CallStructOutput = [string, string] & {
|
|
|
12
12
|
};
|
|
13
13
|
export interface OwnableMulticallInterface extends utils.Interface {
|
|
14
14
|
functions: {
|
|
15
|
+
"initialize()": FunctionFragment;
|
|
15
16
|
"owner()": FunctionFragment;
|
|
16
17
|
"proxyCalls((address,bytes)[])": FunctionFragment;
|
|
17
18
|
"renounceOwnership()": FunctionFragment;
|
|
18
19
|
"transferOwnership(address)": FunctionFragment;
|
|
19
20
|
};
|
|
20
|
-
getFunction(nameOrSignatureOrTopic: "owner" | "proxyCalls" | "renounceOwnership" | "transferOwnership"): FunctionFragment;
|
|
21
|
+
getFunction(nameOrSignatureOrTopic: "initialize" | "owner" | "proxyCalls" | "renounceOwnership" | "transferOwnership"): FunctionFragment;
|
|
22
|
+
encodeFunctionData(functionFragment: "initialize", values?: undefined): string;
|
|
21
23
|
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
|
22
24
|
encodeFunctionData(functionFragment: "proxyCalls", values: [CallStruct[]]): string;
|
|
23
25
|
encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
|
|
24
26
|
encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
|
|
27
|
+
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
|
|
25
28
|
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
|
26
29
|
decodeFunctionResult(functionFragment: "proxyCalls", data: BytesLike): Result;
|
|
27
30
|
decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
|
|
@@ -62,6 +65,9 @@ export interface OwnableMulticall extends BaseContract {
|
|
|
62
65
|
once: OnEvent<this>;
|
|
63
66
|
removeListener: OnEvent<this>;
|
|
64
67
|
functions: {
|
|
68
|
+
initialize(overrides?: Overrides & {
|
|
69
|
+
from?: string | Promise<string>;
|
|
70
|
+
}): Promise<ContractTransaction>;
|
|
65
71
|
owner(overrides?: CallOverrides): Promise<[string]>;
|
|
66
72
|
proxyCalls(calls: CallStruct[], overrides?: Overrides & {
|
|
67
73
|
from?: string | Promise<string>;
|
|
@@ -73,6 +79,9 @@ export interface OwnableMulticall extends BaseContract {
|
|
|
73
79
|
from?: string | Promise<string>;
|
|
74
80
|
}): Promise<ContractTransaction>;
|
|
75
81
|
};
|
|
82
|
+
initialize(overrides?: Overrides & {
|
|
83
|
+
from?: string | Promise<string>;
|
|
84
|
+
}): Promise<ContractTransaction>;
|
|
76
85
|
owner(overrides?: CallOverrides): Promise<string>;
|
|
77
86
|
proxyCalls(calls: CallStruct[], overrides?: Overrides & {
|
|
78
87
|
from?: string | Promise<string>;
|
|
@@ -84,6 +93,7 @@ export interface OwnableMulticall extends BaseContract {
|
|
|
84
93
|
from?: string | Promise<string>;
|
|
85
94
|
}): Promise<ContractTransaction>;
|
|
86
95
|
callStatic: {
|
|
96
|
+
initialize(overrides?: CallOverrides): Promise<void>;
|
|
87
97
|
owner(overrides?: CallOverrides): Promise<string>;
|
|
88
98
|
proxyCalls(calls: CallStruct[], overrides?: CallOverrides): Promise<void>;
|
|
89
99
|
renounceOwnership(overrides?: CallOverrides): Promise<void>;
|
|
@@ -96,6 +106,9 @@ export interface OwnableMulticall extends BaseContract {
|
|
|
96
106
|
OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
|
|
97
107
|
};
|
|
98
108
|
estimateGas: {
|
|
109
|
+
initialize(overrides?: Overrides & {
|
|
110
|
+
from?: string | Promise<string>;
|
|
111
|
+
}): Promise<BigNumber>;
|
|
99
112
|
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
|
100
113
|
proxyCalls(calls: CallStruct[], overrides?: Overrides & {
|
|
101
114
|
from?: string | Promise<string>;
|
|
@@ -108,6 +121,9 @@ export interface OwnableMulticall extends BaseContract {
|
|
|
108
121
|
}): Promise<BigNumber>;
|
|
109
122
|
};
|
|
110
123
|
populateTransaction: {
|
|
124
|
+
initialize(overrides?: Overrides & {
|
|
125
|
+
from?: string | Promise<string>;
|
|
126
|
+
}): Promise<PopulatedTransaction>;
|
|
111
127
|
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
112
128
|
proxyCalls(calls: CallStruct[], overrides?: Overrides & {
|
|
113
129
|
from?: string | Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwnableMulticall.d.ts","sourceRoot":"","sources":["../../types/contracts/OwnableMulticall.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OwnableMulticall.d.ts","sourceRoot":"","sources":["../../types/contracts/OwnableMulticall.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { Listener, Provider } from "@ethersproject/providers";
|
|
|
4
4
|
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
|
|
5
5
|
export interface RouterInterface extends utils.Interface {
|
|
6
6
|
functions: {
|
|
7
|
+
"domains()": FunctionFragment;
|
|
7
8
|
"enrollRemoteRouter(uint32,bytes32)": FunctionFragment;
|
|
8
9
|
"enrollRemoteRouters(uint32[],bytes32[])": FunctionFragment;
|
|
9
10
|
"handle(uint32,bytes32,bytes)": FunctionFragment;
|
|
@@ -18,7 +19,8 @@ export interface RouterInterface extends utils.Interface {
|
|
|
18
19
|
"setMailbox(address)": FunctionFragment;
|
|
19
20
|
"transferOwnership(address)": FunctionFragment;
|
|
20
21
|
};
|
|
21
|
-
getFunction(nameOrSignatureOrTopic: "enrollRemoteRouter" | "enrollRemoteRouters" | "handle" | "interchainGasPaymaster" | "interchainSecurityModule" | "mailbox" | "owner" | "renounceOwnership" | "routers" | "setInterchainGasPaymaster" | "setInterchainSecurityModule" | "setMailbox" | "transferOwnership"): FunctionFragment;
|
|
22
|
+
getFunction(nameOrSignatureOrTopic: "domains" | "enrollRemoteRouter" | "enrollRemoteRouters" | "handle" | "interchainGasPaymaster" | "interchainSecurityModule" | "mailbox" | "owner" | "renounceOwnership" | "routers" | "setInterchainGasPaymaster" | "setInterchainSecurityModule" | "setMailbox" | "transferOwnership"): FunctionFragment;
|
|
23
|
+
encodeFunctionData(functionFragment: "domains", values?: undefined): string;
|
|
22
24
|
encodeFunctionData(functionFragment: "enrollRemoteRouter", values: [BigNumberish, BytesLike]): string;
|
|
23
25
|
encodeFunctionData(functionFragment: "enrollRemoteRouters", values: [BigNumberish[], BytesLike[]]): string;
|
|
24
26
|
encodeFunctionData(functionFragment: "handle", values: [BigNumberish, BytesLike, BytesLike]): string;
|
|
@@ -32,6 +34,7 @@ export interface RouterInterface extends utils.Interface {
|
|
|
32
34
|
encodeFunctionData(functionFragment: "setInterchainSecurityModule", values: [string]): string;
|
|
33
35
|
encodeFunctionData(functionFragment: "setMailbox", values: [string]): string;
|
|
34
36
|
encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
|
|
37
|
+
decodeFunctionResult(functionFragment: "domains", data: BytesLike): Result;
|
|
35
38
|
decodeFunctionResult(functionFragment: "enrollRemoteRouter", data: BytesLike): Result;
|
|
36
39
|
decodeFunctionResult(functionFragment: "enrollRemoteRouters", data: BytesLike): Result;
|
|
37
40
|
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
|
|
@@ -117,10 +120,11 @@ export interface Router extends BaseContract {
|
|
|
117
120
|
once: OnEvent<this>;
|
|
118
121
|
removeListener: OnEvent<this>;
|
|
119
122
|
functions: {
|
|
123
|
+
domains(overrides?: CallOverrides): Promise<[number[]]>;
|
|
120
124
|
enrollRemoteRouter(_domain: BigNumberish, _router: BytesLike, overrides?: Overrides & {
|
|
121
125
|
from?: string | Promise<string>;
|
|
122
126
|
}): Promise<ContractTransaction>;
|
|
123
|
-
enrollRemoteRouters(_domains: BigNumberish[],
|
|
127
|
+
enrollRemoteRouters(_domains: BigNumberish[], _addresses: BytesLike[], overrides?: Overrides & {
|
|
124
128
|
from?: string | Promise<string>;
|
|
125
129
|
}): Promise<ContractTransaction>;
|
|
126
130
|
handle(_origin: BigNumberish, _sender: BytesLike, _message: BytesLike, overrides?: Overrides & {
|
|
@@ -133,7 +137,7 @@ export interface Router extends BaseContract {
|
|
|
133
137
|
renounceOwnership(overrides?: Overrides & {
|
|
134
138
|
from?: string | Promise<string>;
|
|
135
139
|
}): Promise<ContractTransaction>;
|
|
136
|
-
routers(
|
|
140
|
+
routers(_domain: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
|
|
137
141
|
setInterchainGasPaymaster(_interchainGasPaymaster: string, overrides?: Overrides & {
|
|
138
142
|
from?: string | Promise<string>;
|
|
139
143
|
}): Promise<ContractTransaction>;
|
|
@@ -147,10 +151,11 @@ export interface Router extends BaseContract {
|
|
|
147
151
|
from?: string | Promise<string>;
|
|
148
152
|
}): Promise<ContractTransaction>;
|
|
149
153
|
};
|
|
154
|
+
domains(overrides?: CallOverrides): Promise<number[]>;
|
|
150
155
|
enrollRemoteRouter(_domain: BigNumberish, _router: BytesLike, overrides?: Overrides & {
|
|
151
156
|
from?: string | Promise<string>;
|
|
152
157
|
}): Promise<ContractTransaction>;
|
|
153
|
-
enrollRemoteRouters(_domains: BigNumberish[],
|
|
158
|
+
enrollRemoteRouters(_domains: BigNumberish[], _addresses: BytesLike[], overrides?: Overrides & {
|
|
154
159
|
from?: string | Promise<string>;
|
|
155
160
|
}): Promise<ContractTransaction>;
|
|
156
161
|
handle(_origin: BigNumberish, _sender: BytesLike, _message: BytesLike, overrides?: Overrides & {
|
|
@@ -163,7 +168,7 @@ export interface Router extends BaseContract {
|
|
|
163
168
|
renounceOwnership(overrides?: Overrides & {
|
|
164
169
|
from?: string | Promise<string>;
|
|
165
170
|
}): Promise<ContractTransaction>;
|
|
166
|
-
routers(
|
|
171
|
+
routers(_domain: BigNumberish, overrides?: CallOverrides): Promise<string>;
|
|
167
172
|
setInterchainGasPaymaster(_interchainGasPaymaster: string, overrides?: Overrides & {
|
|
168
173
|
from?: string | Promise<string>;
|
|
169
174
|
}): Promise<ContractTransaction>;
|
|
@@ -177,15 +182,16 @@ export interface Router extends BaseContract {
|
|
|
177
182
|
from?: string | Promise<string>;
|
|
178
183
|
}): Promise<ContractTransaction>;
|
|
179
184
|
callStatic: {
|
|
185
|
+
domains(overrides?: CallOverrides): Promise<number[]>;
|
|
180
186
|
enrollRemoteRouter(_domain: BigNumberish, _router: BytesLike, overrides?: CallOverrides): Promise<void>;
|
|
181
|
-
enrollRemoteRouters(_domains: BigNumberish[],
|
|
187
|
+
enrollRemoteRouters(_domains: BigNumberish[], _addresses: BytesLike[], overrides?: CallOverrides): Promise<void>;
|
|
182
188
|
handle(_origin: BigNumberish, _sender: BytesLike, _message: BytesLike, overrides?: CallOverrides): Promise<void>;
|
|
183
189
|
interchainGasPaymaster(overrides?: CallOverrides): Promise<string>;
|
|
184
190
|
interchainSecurityModule(overrides?: CallOverrides): Promise<string>;
|
|
185
191
|
mailbox(overrides?: CallOverrides): Promise<string>;
|
|
186
192
|
owner(overrides?: CallOverrides): Promise<string>;
|
|
187
193
|
renounceOwnership(overrides?: CallOverrides): Promise<void>;
|
|
188
|
-
routers(
|
|
194
|
+
routers(_domain: BigNumberish, overrides?: CallOverrides): Promise<string>;
|
|
189
195
|
setInterchainGasPaymaster(_interchainGasPaymaster: string, overrides?: CallOverrides): Promise<void>;
|
|
190
196
|
setInterchainSecurityModule(_module: string, overrides?: CallOverrides): Promise<void>;
|
|
191
197
|
setMailbox(_mailbox: string, overrides?: CallOverrides): Promise<void>;
|
|
@@ -206,10 +212,11 @@ export interface Router extends BaseContract {
|
|
|
206
212
|
RemoteRouterEnrolled(domain?: BigNumberish | null, router?: BytesLike | null): RemoteRouterEnrolledEventFilter;
|
|
207
213
|
};
|
|
208
214
|
estimateGas: {
|
|
215
|
+
domains(overrides?: CallOverrides): Promise<BigNumber>;
|
|
209
216
|
enrollRemoteRouter(_domain: BigNumberish, _router: BytesLike, overrides?: Overrides & {
|
|
210
217
|
from?: string | Promise<string>;
|
|
211
218
|
}): Promise<BigNumber>;
|
|
212
|
-
enrollRemoteRouters(_domains: BigNumberish[],
|
|
219
|
+
enrollRemoteRouters(_domains: BigNumberish[], _addresses: BytesLike[], overrides?: Overrides & {
|
|
213
220
|
from?: string | Promise<string>;
|
|
214
221
|
}): Promise<BigNumber>;
|
|
215
222
|
handle(_origin: BigNumberish, _sender: BytesLike, _message: BytesLike, overrides?: Overrides & {
|
|
@@ -222,7 +229,7 @@ export interface Router extends BaseContract {
|
|
|
222
229
|
renounceOwnership(overrides?: Overrides & {
|
|
223
230
|
from?: string | Promise<string>;
|
|
224
231
|
}): Promise<BigNumber>;
|
|
225
|
-
routers(
|
|
232
|
+
routers(_domain: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
|
|
226
233
|
setInterchainGasPaymaster(_interchainGasPaymaster: string, overrides?: Overrides & {
|
|
227
234
|
from?: string | Promise<string>;
|
|
228
235
|
}): Promise<BigNumber>;
|
|
@@ -237,10 +244,11 @@ export interface Router extends BaseContract {
|
|
|
237
244
|
}): Promise<BigNumber>;
|
|
238
245
|
};
|
|
239
246
|
populateTransaction: {
|
|
247
|
+
domains(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
240
248
|
enrollRemoteRouter(_domain: BigNumberish, _router: BytesLike, overrides?: Overrides & {
|
|
241
249
|
from?: string | Promise<string>;
|
|
242
250
|
}): Promise<PopulatedTransaction>;
|
|
243
|
-
enrollRemoteRouters(_domains: BigNumberish[],
|
|
251
|
+
enrollRemoteRouters(_domains: BigNumberish[], _addresses: BytesLike[], overrides?: Overrides & {
|
|
244
252
|
from?: string | Promise<string>;
|
|
245
253
|
}): Promise<PopulatedTransaction>;
|
|
246
254
|
handle(_origin: BigNumberish, _sender: BytesLike, _message: BytesLike, overrides?: Overrides & {
|
|
@@ -253,7 +261,7 @@ export interface Router extends BaseContract {
|
|
|
253
261
|
renounceOwnership(overrides?: Overrides & {
|
|
254
262
|
from?: string | Promise<string>;
|
|
255
263
|
}): Promise<PopulatedTransaction>;
|
|
256
|
-
routers(
|
|
264
|
+
routers(_domain: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
257
265
|
setInterchainGasPaymaster(_interchainGasPaymaster: string, overrides?: Overrides & {
|
|
258
266
|
from?: string | Promise<string>;
|
|
259
267
|
}): Promise<PopulatedTransaction>;
|