@hyperlane-xyz/core 1.3.0 → 1.3.2
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/README.md +0 -1
- package/contracts/Mailbox.sol +2 -1
- package/contracts/Router.sol +6 -5
- package/contracts/igps/InterchainGasPaymaster.sol +0 -6
- package/contracts/interfaces/IAggregationIsm.sol +1 -1
- package/contracts/interfaces/isms/IMultisigIsm.sol +1 -1
- package/contracts/isms/aggregation/AbstractAggregationIsm.sol +1 -0
- package/contracts/isms/multisig/AbstractMultisigIsm.sol +6 -5
- package/contracts/isms/multisig/LegacyMultisigIsm.sol +15 -11
- package/contracts/libs/MetaProxy.sol +2 -2
- package/contracts/libs/MinimalProxy.sol +3 -2
- package/contracts/middleware/InterchainQueryRouter.sol +0 -1
- package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +4 -6
- package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +9 -10
- package/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol +1 -1
- package/contracts/test/TestInterchainGasPaymaster.sol +3 -1
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts +75 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts.map +1 -0
- package/dist/{contracts/Create2Factory.js → @openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js} +1 -1
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js +3 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js +4 -0
- package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts/token/ERC20/index.js +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/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/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +9 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts +23 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js +93 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js +31 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js +25 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js.map +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/igps/InterchainGasPaymaster__factory.d.ts +4 -15
- package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts.map +1 -1
- package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js +5 -16
- package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.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/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/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm__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.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +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.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +14 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +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/test/TestGasRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js.map +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/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__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 +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/contracts/Create2Factory.sol +0 -114
- package/dist/contracts/Create2Factory.d.ts +0 -94
- package/dist/contracts/Create2Factory.d.ts.map +0 -1
- package/dist/contracts/Create2Factory.js.map +0 -1
- package/dist/factories/contracts/Create2Factory__factory.d.ts +0 -55
- package/dist/factories/contracts/Create2Factory__factory.d.ts.map +0 -1
- package/dist/factories/contracts/Create2Factory__factory.js +0 -163
- package/dist/factories/contracts/Create2Factory__factory.js.map +0 -1
package/README.md
CHANGED
package/contracts/Mailbox.sol
CHANGED
|
@@ -189,7 +189,7 @@ contract Mailbox is
|
|
|
189
189
|
* @return root The root of the Mailbox's merkle tree.
|
|
190
190
|
* @return index The index of the last element in the tree.
|
|
191
191
|
*/
|
|
192
|
-
function latestCheckpoint()
|
|
192
|
+
function latestCheckpoint() external view returns (bytes32, uint32) {
|
|
193
193
|
return (root(), count() - 1);
|
|
194
194
|
}
|
|
195
195
|
|
|
@@ -241,6 +241,7 @@ contract Mailbox is
|
|
|
241
241
|
if (address(_val) != address(0)) {
|
|
242
242
|
return _val;
|
|
243
243
|
}
|
|
244
|
+
// solhint-disable-next-line no-empty-blocks
|
|
244
245
|
} catch {}
|
|
245
246
|
return defaultIsm;
|
|
246
247
|
}
|
package/contracts/Router.sol
CHANGED
|
@@ -11,7 +11,7 @@ import {EnumerableMapExtended} from "./libs/EnumerableMapExtended.sol";
|
|
|
11
11
|
abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
12
12
|
using EnumerableMapExtended for EnumerableMapExtended.UintToBytes32Map;
|
|
13
13
|
|
|
14
|
-
string constant NO_ROUTER_ENROLLED_REVERT_MESSAGE =
|
|
14
|
+
string private constant NO_ROUTER_ENROLLED_REVERT_MESSAGE =
|
|
15
15
|
"No router enrolled for domain. Did you specify the right domain ID?";
|
|
16
16
|
|
|
17
17
|
// ============ Mutable Storage ============
|
|
@@ -71,8 +71,9 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
71
71
|
// ============ External functions ============
|
|
72
72
|
function domains() external view returns (uint32[] memory) {
|
|
73
73
|
bytes32[] storage rawKeys = _routers.keys();
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
uint256 length = rawKeys.length;
|
|
75
|
+
uint32[] memory keys = new uint32[](length);
|
|
76
|
+
for (uint256 i = 0; i < length; i++) {
|
|
76
77
|
keys[i] = uint32(uint256(rawKeys[i]));
|
|
77
78
|
}
|
|
78
79
|
return keys;
|
|
@@ -109,7 +110,8 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
109
110
|
bytes32[] calldata _addresses
|
|
110
111
|
) external virtual onlyOwner {
|
|
111
112
|
require(_domains.length == _addresses.length, "!length");
|
|
112
|
-
|
|
113
|
+
uint256 length = _domains.length;
|
|
114
|
+
for (uint256 i = 0; i < length; i += 1) {
|
|
113
115
|
_enrollRemoteRouter(_domains[i], _addresses[i]);
|
|
114
116
|
}
|
|
115
117
|
}
|
|
@@ -125,7 +127,6 @@ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
|
125
127
|
bytes32 _sender,
|
|
126
128
|
bytes calldata _message
|
|
127
129
|
) external virtual override onlyMailbox onlyRemoteRouter(_origin, _sender) {
|
|
128
|
-
// TODO: callbacks on success/failure
|
|
129
130
|
_handle(_origin, _sender, _message);
|
|
130
131
|
}
|
|
131
132
|
|
|
@@ -50,12 +50,6 @@ contract InterchainGasPaymaster is
|
|
|
50
50
|
address gasOracle;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
// ============ Constructor ============
|
|
54
|
-
|
|
55
|
-
constructor(address _beneficiary) {
|
|
56
|
-
initialize(msg.sender, _beneficiary); // allows contract to be used without proxying
|
|
57
|
-
}
|
|
58
|
-
|
|
59
53
|
// ============ External Functions ============
|
|
60
54
|
|
|
61
55
|
/**
|
|
@@ -17,6 +17,7 @@ import {AggregationIsmMetadata} from "../../libs/isms/AggregationIsmMetadata.sol
|
|
|
17
17
|
abstract contract AbstractAggregationIsm is IAggregationIsm {
|
|
18
18
|
// ============ Constants ============
|
|
19
19
|
|
|
20
|
+
// solhint-disable-next-line const-name-snakecase
|
|
20
21
|
uint8 public constant moduleType =
|
|
21
22
|
uint8(IInterchainSecurityModule.Types.MULTISIG);
|
|
22
23
|
|
|
@@ -20,6 +20,7 @@ import {MerkleLib} from "../../libs/Merkle.sol";
|
|
|
20
20
|
abstract contract AbstractMultisigIsm is IMultisigIsm {
|
|
21
21
|
// ============ Constants ============
|
|
22
22
|
|
|
23
|
+
// solhint-disable-next-line const-name-snakecase
|
|
23
24
|
uint8 public constant moduleType =
|
|
24
25
|
uint8(IInterchainSecurityModule.Types.MULTISIG);
|
|
25
26
|
|
|
@@ -109,12 +110,12 @@ abstract contract AbstractMultisigIsm is IMultisigIsm {
|
|
|
109
110
|
MultisigIsmMetadata.signatureAt(_metadata, i)
|
|
110
111
|
);
|
|
111
112
|
// Loop through remaining validators until we find a match
|
|
112
|
-
|
|
113
|
-
;
|
|
113
|
+
while (
|
|
114
114
|
_validatorIndex < _validatorCount &&
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
_signer != _validators[_validatorIndex]
|
|
116
|
+
) {
|
|
117
|
+
++_validatorIndex;
|
|
118
|
+
}
|
|
118
119
|
// Fail if we never found a match
|
|
119
120
|
require(_validatorIndex < _validatorCount, "!threshold");
|
|
120
121
|
++_validatorIndex;
|
|
@@ -29,6 +29,7 @@ contract LegacyMultisigIsm is IMultisigIsm, Ownable {
|
|
|
29
29
|
|
|
30
30
|
// ============ Constants ============
|
|
31
31
|
|
|
32
|
+
// solhint-disable-next-line const-name-snakecase
|
|
32
33
|
uint8 public constant moduleType =
|
|
33
34
|
uint8(IInterchainSecurityModule.Types.LEGACY_MULTISIG);
|
|
34
35
|
|
|
@@ -102,10 +103,12 @@ contract LegacyMultisigIsm is IMultisigIsm, Ownable {
|
|
|
102
103
|
uint32[] calldata _domains,
|
|
103
104
|
address[][] calldata _validators
|
|
104
105
|
) external onlyOwner {
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
uint256 domainsLength = _domains.length;
|
|
107
|
+
require(domainsLength == _validators.length, "!length");
|
|
108
|
+
for (uint256 i = 0; i < domainsLength; i += 1) {
|
|
107
109
|
address[] calldata _domainValidators = _validators[i];
|
|
108
|
-
|
|
110
|
+
uint256 validatorsLength = _domainValidators.length;
|
|
111
|
+
for (uint256 j = 0; j < validatorsLength; j += 1) {
|
|
109
112
|
_enrollValidator(_domains[i], _domainValidators[j]);
|
|
110
113
|
}
|
|
111
114
|
_updateCommitment(_domains[i]);
|
|
@@ -155,8 +158,9 @@ contract LegacyMultisigIsm is IMultisigIsm, Ownable {
|
|
|
155
158
|
uint32[] calldata _domains,
|
|
156
159
|
uint8[] calldata _thresholds
|
|
157
160
|
) external onlyOwner {
|
|
158
|
-
|
|
159
|
-
|
|
161
|
+
uint256 length = _domains.length;
|
|
162
|
+
require(length == _thresholds.length, "!length");
|
|
163
|
+
for (uint256 i = 0; i < length; i += 1) {
|
|
160
164
|
setThreshold(_domains[i], _thresholds[i]);
|
|
161
165
|
}
|
|
162
166
|
}
|
|
@@ -202,7 +206,7 @@ contract LegacyMultisigIsm is IMultisigIsm, Ownable {
|
|
|
202
206
|
* @param _message Formatted Hyperlane message (see Message.sol).
|
|
203
207
|
*/
|
|
204
208
|
function verify(bytes calldata _metadata, bytes calldata _message)
|
|
205
|
-
|
|
209
|
+
external
|
|
206
210
|
view
|
|
207
211
|
returns (bool)
|
|
208
212
|
{
|
|
@@ -340,12 +344,12 @@ contract LegacyMultisigIsm is IMultisigIsm, Ownable {
|
|
|
340
344
|
for (uint256 i = 0; i < _threshold; ++i) {
|
|
341
345
|
address _signer = ECDSA.recover(_digest, _metadata.signatureAt(i));
|
|
342
346
|
// Loop through remaining validators until we find a match
|
|
343
|
-
|
|
344
|
-
;
|
|
347
|
+
while (
|
|
345
348
|
_validatorIndex < _validatorCount &&
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
+
_signer != _metadata.validatorAt(_validatorIndex)
|
|
350
|
+
) {
|
|
351
|
+
++_validatorIndex;
|
|
352
|
+
}
|
|
349
353
|
// Fail if we never found a match
|
|
350
354
|
require(_validatorIndex < _validatorCount, "!threshold");
|
|
351
355
|
++_validatorIndex;
|
|
@@ -3,9 +3,9 @@ pragma solidity >=0.7.6;
|
|
|
3
3
|
|
|
4
4
|
/// @dev Adapted from https://eips.ethereum.org/EIPS/eip-3448
|
|
5
5
|
library MetaProxy {
|
|
6
|
-
bytes32 constant PREFIX =
|
|
6
|
+
bytes32 private constant PREFIX =
|
|
7
7
|
hex"600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d73";
|
|
8
|
-
bytes13 constant SUFFIX = hex"5af43d3d93803e603457fd5bf3";
|
|
8
|
+
bytes13 private constant SUFFIX = hex"5af43d3d93803e603457fd5bf3";
|
|
9
9
|
|
|
10
10
|
function bytecode(address _implementation, bytes memory _metadata)
|
|
11
11
|
internal
|
|
@@ -3,8 +3,9 @@ pragma solidity >=0.6.11;
|
|
|
3
3
|
|
|
4
4
|
// Library for building bytecode of minimal proxies (see https://eips.ethereum.org/EIPS/eip-1167)
|
|
5
5
|
library MinimalProxy {
|
|
6
|
-
bytes20 constant PREFIX =
|
|
7
|
-
|
|
6
|
+
bytes20 private constant PREFIX =
|
|
7
|
+
hex"3d602d80600a3d3981f3363d3d373d3d3d363d73";
|
|
8
|
+
bytes15 private constant SUFFIX = hex"5af43d82803e903d91602b57fd5bf3";
|
|
8
9
|
|
|
9
10
|
function bytecode(address implementation)
|
|
10
11
|
internal
|
|
@@ -136,7 +136,6 @@ contract InterchainQueryRouter is Router, IInterchainQueryRouter {
|
|
|
136
136
|
address senderAddress = sender.bytes32ToAddress();
|
|
137
137
|
bytes[] memory rawCalls = InterchainQueryMessage.rawCalls(_message);
|
|
138
138
|
CallLib.multicallto(senderAddress, rawCalls);
|
|
139
|
-
//
|
|
140
139
|
emit QueryResolved(_origin, senderAddress);
|
|
141
140
|
} else {
|
|
142
141
|
assert(false);
|
|
@@ -11,8 +11,11 @@ import {ILiquidityLayerMessageRecipient} from "../../interfaces/ILiquidityLayerM
|
|
|
11
11
|
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
12
12
|
|
|
13
13
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
14
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
14
15
|
|
|
15
16
|
contract LiquidityLayerRouter is Router, ILiquidityLayerRouter {
|
|
17
|
+
using SafeERC20 for IERC20;
|
|
18
|
+
|
|
16
19
|
// Token bridge => adapter address
|
|
17
20
|
mapping(string => address) public liquidityLayerAdapters;
|
|
18
21
|
|
|
@@ -50,12 +53,7 @@ contract LiquidityLayerRouter is Router, ILiquidityLayerRouter {
|
|
|
50
53
|
ILiquidityLayerAdapter _adapter = _getAdapter(_bridge);
|
|
51
54
|
|
|
52
55
|
// Transfer the tokens to the adapter
|
|
53
|
-
|
|
54
|
-
// TODO: Are there scenarios where a transferFrom fails and it doesn't revert?
|
|
55
|
-
require(
|
|
56
|
-
IERC20(_token).transferFrom(msg.sender, address(_adapter), _amount),
|
|
57
|
-
"!transfer in"
|
|
58
|
-
);
|
|
56
|
+
IERC20(_token).safeTransferFrom(msg.sender, address(_adapter), _amount);
|
|
59
57
|
|
|
60
58
|
// Reverts if the bridge was unsuccessful.
|
|
61
59
|
// Gets adapter-specific data that is encoded into the message
|
|
@@ -8,8 +8,11 @@ import {ICircleMessageTransmitter} from "../interfaces/circle/ICircleMessageTran
|
|
|
8
8
|
import {ILiquidityLayerAdapter} from "../interfaces/ILiquidityLayerAdapter.sol";
|
|
9
9
|
|
|
10
10
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
11
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
11
12
|
|
|
12
13
|
contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
14
|
+
using SafeERC20 for IERC20;
|
|
15
|
+
|
|
13
16
|
/// @notice The TokenMessenger contract.
|
|
14
17
|
ITokenMessenger public tokenMessenger;
|
|
15
18
|
|
|
@@ -22,7 +25,7 @@ contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
|
22
25
|
/// @notice Hyperlane domain => Circle domain.
|
|
23
26
|
/// ATM, known Circle domains are Ethereum = 0 and Avalanche = 1.
|
|
24
27
|
/// Note this could result in ambiguity between the Circle domain being
|
|
25
|
-
/// Ethereum or unknown.
|
|
28
|
+
/// Ethereum or unknown.
|
|
26
29
|
mapping(uint32 => uint32) public hyperlaneDomainToCircleDomain;
|
|
27
30
|
|
|
28
31
|
/// @notice Token symbol => address of token on local chain.
|
|
@@ -70,8 +73,8 @@ contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
|
70
73
|
address _tokenMessenger,
|
|
71
74
|
address _circleMessageTransmitter,
|
|
72
75
|
address _liquidityLayerRouter
|
|
73
|
-
)
|
|
74
|
-
|
|
76
|
+
) external initializer {
|
|
77
|
+
__Ownable_init();
|
|
75
78
|
_transferOwnership(_owner);
|
|
76
79
|
|
|
77
80
|
tokenMessenger = ITokenMessenger(_tokenMessenger);
|
|
@@ -96,11 +99,7 @@ contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
|
96
99
|
uint32 _circleDomain = hyperlaneDomainToCircleDomain[
|
|
97
100
|
_destinationDomain
|
|
98
101
|
];
|
|
99
|
-
bytes32 _remoteRouter =
|
|
100
|
-
require(
|
|
101
|
-
_remoteRouter != bytes32(0),
|
|
102
|
-
"CircleBridgeAdapter: No router for domain"
|
|
103
|
-
);
|
|
102
|
+
bytes32 _remoteRouter = _mustHaveRemoteRouter(_destinationDomain);
|
|
104
103
|
|
|
105
104
|
// Approve the token to Circle. We assume that the LiquidityLayerRouter
|
|
106
105
|
// has already transferred the token to this contract.
|
|
@@ -127,6 +126,7 @@ contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
|
127
126
|
uint256 _amount,
|
|
128
127
|
bytes calldata _adapterData // The adapter data from the message
|
|
129
128
|
) external onlyLiquidityLayerRouter returns (address, uint256) {
|
|
129
|
+
_mustHaveRemoteRouter(_originDomain);
|
|
130
130
|
// The origin Circle domain
|
|
131
131
|
uint32 _originCircleDomain = hyperlaneDomainToCircleDomain[
|
|
132
132
|
_originDomain
|
|
@@ -151,10 +151,9 @@ contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
|
151
151
|
);
|
|
152
152
|
|
|
153
153
|
// Transfer the token out to the recipient
|
|
154
|
-
// TODO: use safeTransfer
|
|
155
154
|
// Circle doesn't charge any fee, so we can safely transfer out the
|
|
156
155
|
// exact amount that was bridged over.
|
|
157
|
-
|
|
156
|
+
_token.safeTransfer(_recipient, _amount);
|
|
158
157
|
|
|
159
158
|
return (address(_token), _amount);
|
|
160
159
|
}
|
|
@@ -21,7 +21,7 @@ contract PortalAdapter is ILiquidityLayerAdapter, Router {
|
|
|
21
21
|
/// @notice transferId => token address
|
|
22
22
|
mapping(bytes32 => address) public portalTransfersProcessed;
|
|
23
23
|
|
|
24
|
-
uint32 localDomain;
|
|
24
|
+
uint32 public localDomain;
|
|
25
25
|
|
|
26
26
|
// We could technically use Portal's sequence number here but it doesn't
|
|
27
27
|
// get passed through, so we would have to parse the VAA twice
|
|
@@ -8,7 +8,9 @@ contract TestInterchainGasPaymaster is InterchainGasPaymaster {
|
|
|
8
8
|
uint256 public constant gasPrice = 10;
|
|
9
9
|
|
|
10
10
|
// Ensure the same constructor interface as the inherited InterchainGasPaymaster
|
|
11
|
-
constructor(address _beneficiary)
|
|
11
|
+
constructor(address _beneficiary) {
|
|
12
|
+
initialize(msg.sender, _beneficiary);
|
|
13
|
+
}
|
|
12
14
|
|
|
13
15
|
function quoteGasPayment(uint32, uint256 gasAmount)
|
|
14
16
|
public
|
package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts
ADDED
|
@@ -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, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
|
|
5
|
+
export interface IERC20PermitInterface extends utils.Interface {
|
|
6
|
+
functions: {
|
|
7
|
+
"DOMAIN_SEPARATOR()": FunctionFragment;
|
|
8
|
+
"nonces(address)": FunctionFragment;
|
|
9
|
+
"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment;
|
|
10
|
+
};
|
|
11
|
+
getFunction(nameOrSignatureOrTopic: "DOMAIN_SEPARATOR" | "nonces" | "permit"): FunctionFragment;
|
|
12
|
+
encodeFunctionData(functionFragment: "DOMAIN_SEPARATOR", values?: undefined): string;
|
|
13
|
+
encodeFunctionData(functionFragment: "nonces", values: [string]): string;
|
|
14
|
+
encodeFunctionData(functionFragment: "permit", values: [
|
|
15
|
+
string,
|
|
16
|
+
string,
|
|
17
|
+
BigNumberish,
|
|
18
|
+
BigNumberish,
|
|
19
|
+
BigNumberish,
|
|
20
|
+
BytesLike,
|
|
21
|
+
BytesLike
|
|
22
|
+
]): string;
|
|
23
|
+
decodeFunctionResult(functionFragment: "DOMAIN_SEPARATOR", data: BytesLike): Result;
|
|
24
|
+
decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
|
|
25
|
+
decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result;
|
|
26
|
+
events: {};
|
|
27
|
+
}
|
|
28
|
+
export interface IERC20Permit extends BaseContract {
|
|
29
|
+
connect(signerOrProvider: Signer | Provider | string): this;
|
|
30
|
+
attach(addressOrName: string): this;
|
|
31
|
+
deployed(): Promise<this>;
|
|
32
|
+
interface: IERC20PermitInterface;
|
|
33
|
+
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
|
|
34
|
+
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
|
|
35
|
+
listeners(eventName?: string): Array<Listener>;
|
|
36
|
+
removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
|
|
37
|
+
removeAllListeners(eventName?: string): this;
|
|
38
|
+
off: OnEvent<this>;
|
|
39
|
+
on: OnEvent<this>;
|
|
40
|
+
once: OnEvent<this>;
|
|
41
|
+
removeListener: OnEvent<this>;
|
|
42
|
+
functions: {
|
|
43
|
+
DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
|
|
44
|
+
nonces(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
45
|
+
permit(owner: string, spender: string, value: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, overrides?: Overrides & {
|
|
46
|
+
from?: string | Promise<string>;
|
|
47
|
+
}): Promise<ContractTransaction>;
|
|
48
|
+
};
|
|
49
|
+
DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
|
|
50
|
+
nonces(owner: string, overrides?: CallOverrides): Promise<BigNumber>;
|
|
51
|
+
permit(owner: string, spender: string, value: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, overrides?: Overrides & {
|
|
52
|
+
from?: string | Promise<string>;
|
|
53
|
+
}): Promise<ContractTransaction>;
|
|
54
|
+
callStatic: {
|
|
55
|
+
DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
|
|
56
|
+
nonces(owner: string, overrides?: CallOverrides): Promise<BigNumber>;
|
|
57
|
+
permit(owner: string, spender: string, value: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, overrides?: CallOverrides): Promise<void>;
|
|
58
|
+
};
|
|
59
|
+
filters: {};
|
|
60
|
+
estimateGas: {
|
|
61
|
+
DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
|
|
62
|
+
nonces(owner: string, overrides?: CallOverrides): Promise<BigNumber>;
|
|
63
|
+
permit(owner: string, spender: string, value: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, overrides?: Overrides & {
|
|
64
|
+
from?: string | Promise<string>;
|
|
65
|
+
}): Promise<BigNumber>;
|
|
66
|
+
};
|
|
67
|
+
populateTransaction: {
|
|
68
|
+
DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
69
|
+
nonces(owner: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
70
|
+
permit(owner: string, spender: string, value: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, overrides?: Overrides & {
|
|
71
|
+
from?: string | Promise<string>;
|
|
72
|
+
}): Promise<PopulatedTransaction>;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=IERC20Permit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IERC20Permit.d.ts","sourceRoot":"","sources":["../../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IERC20Permit.js","sourceRoot":"","sources":["../../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,oBAAoB,MAAM,0BAA0B,CAAC;AAEtE,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/token/ERC20/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/token/ERC20/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,UAAU,EAAE,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/token/ERC20/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/token/ERC20/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -16,7 +16,6 @@ export type { middleware };
|
|
|
16
16
|
export type { mock };
|
|
17
17
|
export type { test };
|
|
18
18
|
export type { upgrade };
|
|
19
|
-
export type { Create2Factory } from "./Create2Factory";
|
|
20
19
|
export type { GasRouter } from "./GasRouter";
|
|
21
20
|
export type { HyperlaneConnectionClient } from "./HyperlaneConnectionClient";
|
|
22
21
|
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,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,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,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,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"}
|
|
@@ -15,6 +15,7 @@ export interface PortalAdapterInterface extends utils.Interface {
|
|
|
15
15
|
"interchainGasPaymaster()": FunctionFragment;
|
|
16
16
|
"interchainSecurityModule()": FunctionFragment;
|
|
17
17
|
"liquidityLayerRouter()": FunctionFragment;
|
|
18
|
+
"localDomain()": FunctionFragment;
|
|
18
19
|
"mailbox()": FunctionFragment;
|
|
19
20
|
"nonce()": FunctionFragment;
|
|
20
21
|
"owner()": FunctionFragment;
|
|
@@ -30,7 +31,7 @@ export interface PortalAdapterInterface extends utils.Interface {
|
|
|
30
31
|
"transferId(uint32,uint224)": FunctionFragment;
|
|
31
32
|
"transferOwnership(address)": FunctionFragment;
|
|
32
33
|
};
|
|
33
|
-
getFunction(nameOrSignatureOrTopic: "addDomain" | "completeTransfer" | "domains" | "enrollRemoteRouter" | "enrollRemoteRouters" | "handle" | "hyperlaneDomainToWormholeDomain" | "initialize" | "interchainGasPaymaster" | "interchainSecurityModule" | "liquidityLayerRouter" | "mailbox" | "nonce" | "owner" | "portalTokenBridge" | "portalTransfersProcessed" | "receiveTokens" | "renounceOwnership" | "routers" | "sendTokens" | "setInterchainGasPaymaster" | "setInterchainSecurityModule" | "setMailbox" | "transferId" | "transferOwnership"): FunctionFragment;
|
|
34
|
+
getFunction(nameOrSignatureOrTopic: "addDomain" | "completeTransfer" | "domains" | "enrollRemoteRouter" | "enrollRemoteRouters" | "handle" | "hyperlaneDomainToWormholeDomain" | "initialize" | "interchainGasPaymaster" | "interchainSecurityModule" | "liquidityLayerRouter" | "localDomain" | "mailbox" | "nonce" | "owner" | "portalTokenBridge" | "portalTransfersProcessed" | "receiveTokens" | "renounceOwnership" | "routers" | "sendTokens" | "setInterchainGasPaymaster" | "setInterchainSecurityModule" | "setMailbox" | "transferId" | "transferOwnership"): FunctionFragment;
|
|
34
35
|
encodeFunctionData(functionFragment: "addDomain", values: [BigNumberish, BigNumberish]): string;
|
|
35
36
|
encodeFunctionData(functionFragment: "completeTransfer", values: [BytesLike]): string;
|
|
36
37
|
encodeFunctionData(functionFragment: "domains", values?: undefined): string;
|
|
@@ -42,6 +43,7 @@ export interface PortalAdapterInterface extends utils.Interface {
|
|
|
42
43
|
encodeFunctionData(functionFragment: "interchainGasPaymaster", values?: undefined): string;
|
|
43
44
|
encodeFunctionData(functionFragment: "interchainSecurityModule", values?: undefined): string;
|
|
44
45
|
encodeFunctionData(functionFragment: "liquidityLayerRouter", values?: undefined): string;
|
|
46
|
+
encodeFunctionData(functionFragment: "localDomain", values?: undefined): string;
|
|
45
47
|
encodeFunctionData(functionFragment: "mailbox", values?: undefined): string;
|
|
46
48
|
encodeFunctionData(functionFragment: "nonce", values?: undefined): string;
|
|
47
49
|
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
|
@@ -67,6 +69,7 @@ export interface PortalAdapterInterface extends utils.Interface {
|
|
|
67
69
|
decodeFunctionResult(functionFragment: "interchainGasPaymaster", data: BytesLike): Result;
|
|
68
70
|
decodeFunctionResult(functionFragment: "interchainSecurityModule", data: BytesLike): Result;
|
|
69
71
|
decodeFunctionResult(functionFragment: "liquidityLayerRouter", data: BytesLike): Result;
|
|
72
|
+
decodeFunctionResult(functionFragment: "localDomain", data: BytesLike): Result;
|
|
70
73
|
decodeFunctionResult(functionFragment: "mailbox", data: BytesLike): Result;
|
|
71
74
|
decodeFunctionResult(functionFragment: "nonce", data: BytesLike): Result;
|
|
72
75
|
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
|
@@ -200,6 +203,7 @@ export interface PortalAdapter extends BaseContract {
|
|
|
200
203
|
interchainGasPaymaster(overrides?: CallOverrides): Promise<[string]>;
|
|
201
204
|
interchainSecurityModule(overrides?: CallOverrides): Promise<[string]>;
|
|
202
205
|
liquidityLayerRouter(overrides?: CallOverrides): Promise<[string]>;
|
|
206
|
+
localDomain(overrides?: CallOverrides): Promise<[number]>;
|
|
203
207
|
mailbox(overrides?: CallOverrides): Promise<[string]>;
|
|
204
208
|
nonce(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
205
209
|
owner(overrides?: CallOverrides): Promise<[string]>;
|
|
@@ -252,6 +256,7 @@ export interface PortalAdapter extends BaseContract {
|
|
|
252
256
|
interchainGasPaymaster(overrides?: CallOverrides): Promise<string>;
|
|
253
257
|
interchainSecurityModule(overrides?: CallOverrides): Promise<string>;
|
|
254
258
|
liquidityLayerRouter(overrides?: CallOverrides): Promise<string>;
|
|
259
|
+
localDomain(overrides?: CallOverrides): Promise<number>;
|
|
255
260
|
mailbox(overrides?: CallOverrides): Promise<string>;
|
|
256
261
|
nonce(overrides?: CallOverrides): Promise<BigNumber>;
|
|
257
262
|
owner(overrides?: CallOverrides): Promise<string>;
|
|
@@ -292,6 +297,7 @@ export interface PortalAdapter extends BaseContract {
|
|
|
292
297
|
interchainGasPaymaster(overrides?: CallOverrides): Promise<string>;
|
|
293
298
|
interchainSecurityModule(overrides?: CallOverrides): Promise<string>;
|
|
294
299
|
liquidityLayerRouter(overrides?: CallOverrides): Promise<string>;
|
|
300
|
+
localDomain(overrides?: CallOverrides): Promise<number>;
|
|
295
301
|
mailbox(overrides?: CallOverrides): Promise<string>;
|
|
296
302
|
nonce(overrides?: CallOverrides): Promise<BigNumber>;
|
|
297
303
|
owner(overrides?: CallOverrides): Promise<string>;
|
|
@@ -349,6 +355,7 @@ export interface PortalAdapter extends BaseContract {
|
|
|
349
355
|
interchainGasPaymaster(overrides?: CallOverrides): Promise<BigNumber>;
|
|
350
356
|
interchainSecurityModule(overrides?: CallOverrides): Promise<BigNumber>;
|
|
351
357
|
liquidityLayerRouter(overrides?: CallOverrides): Promise<BigNumber>;
|
|
358
|
+
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
|
|
352
359
|
mailbox(overrides?: CallOverrides): Promise<BigNumber>;
|
|
353
360
|
nonce(overrides?: CallOverrides): Promise<BigNumber>;
|
|
354
361
|
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
|
@@ -402,6 +409,7 @@ export interface PortalAdapter extends BaseContract {
|
|
|
402
409
|
interchainGasPaymaster(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
403
410
|
interchainSecurityModule(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
404
411
|
liquidityLayerRouter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
412
|
+
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
405
413
|
mailbox(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
406
414
|
nonce(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
407
415
|
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|