@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.
Files changed (129) hide show
  1. package/README.md +0 -1
  2. package/contracts/Mailbox.sol +2 -1
  3. package/contracts/Router.sol +6 -5
  4. package/contracts/igps/InterchainGasPaymaster.sol +0 -6
  5. package/contracts/interfaces/IAggregationIsm.sol +1 -1
  6. package/contracts/interfaces/isms/IMultisigIsm.sol +1 -1
  7. package/contracts/isms/aggregation/AbstractAggregationIsm.sol +1 -0
  8. package/contracts/isms/multisig/AbstractMultisigIsm.sol +6 -5
  9. package/contracts/isms/multisig/LegacyMultisigIsm.sol +15 -11
  10. package/contracts/libs/MetaProxy.sol +2 -2
  11. package/contracts/libs/MinimalProxy.sol +3 -2
  12. package/contracts/middleware/InterchainQueryRouter.sol +0 -1
  13. package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +4 -6
  14. package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +9 -10
  15. package/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol +1 -1
  16. package/contracts/test/TestInterchainGasPaymaster.sol +3 -1
  17. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts +75 -0
  18. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts.map +1 -0
  19. package/dist/{contracts/Create2Factory.js → @openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js} +1 -1
  20. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js.map +1 -0
  21. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +2 -0
  22. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map +1 -0
  23. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js +3 -0
  24. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map +1 -0
  25. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +3 -0
  26. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -0
  27. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js +4 -0
  28. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -0
  29. package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts +2 -0
  30. package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
  31. package/dist/@openzeppelin/contracts/token/ERC20/index.js +1 -0
  32. package/dist/@openzeppelin/contracts/token/ERC20/index.js.map +1 -1
  33. package/dist/contracts/index.d.ts +0 -1
  34. package/dist/contracts/index.d.ts.map +1 -1
  35. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +9 -1
  36. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -1
  37. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts +23 -0
  38. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts.map +1 -0
  39. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js +93 -0
  40. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js.map +1 -0
  41. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +2 -0
  42. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map +1 -0
  43. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js +9 -0
  44. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map +1 -0
  45. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +2 -0
  46. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -0
  47. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js +31 -0
  48. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -0
  49. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts +1 -0
  50. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
  51. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js +25 -1
  52. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js.map +1 -1
  53. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  54. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  55. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts +4 -15
  56. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts.map +1 -1
  57. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js +5 -16
  58. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js.map +1 -1
  59. package/dist/factories/contracts/index.d.ts +0 -1
  60. package/dist/factories/contracts/index.d.ts.map +1 -1
  61. package/dist/factories/contracts/index.js +1 -3
  62. package/dist/factories/contracts/index.js.map +1 -1
  63. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  64. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  65. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  66. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  67. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
  68. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts.map +1 -1
  69. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
  70. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js.map +1 -1
  71. package/dist/factories/contracts/isms/multisig/StaticMultisigIsmFactory__factory.d.ts +1 -1
  72. package/dist/factories/contracts/isms/multisig/StaticMultisigIsmFactory__factory.js +1 -1
  73. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm__factory.d.ts +1 -1
  74. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm__factory.js +1 -1
  75. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  76. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  77. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  78. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  79. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  80. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  81. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  82. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  83. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  84. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  85. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  86. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  87. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  88. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  89. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  90. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  91. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +14 -1
  92. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  93. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  94. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  95. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  96. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  97. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  98. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  99. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  100. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  101. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  102. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  103. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  104. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  105. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
  106. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts.map +1 -1
  107. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
  108. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js.map +1 -1
  109. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  110. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  111. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  112. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  113. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  114. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  115. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  116. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  117. package/dist/index.d.ts +2 -2
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +3 -3
  120. package/dist/index.js.map +1 -1
  121. package/package.json +3 -2
  122. package/contracts/Create2Factory.sol +0 -114
  123. package/dist/contracts/Create2Factory.d.ts +0 -94
  124. package/dist/contracts/Create2Factory.d.ts.map +0 -1
  125. package/dist/contracts/Create2Factory.js.map +0 -1
  126. package/dist/factories/contracts/Create2Factory__factory.d.ts +0 -55
  127. package/dist/factories/contracts/Create2Factory__factory.d.ts.map +0 -1
  128. package/dist/factories/contracts/Create2Factory__factory.js +0 -163
  129. package/dist/factories/contracts/Create2Factory__factory.js.map +0 -1
package/README.md CHANGED
@@ -6,7 +6,6 @@ On-chain implementations of Hyperlane in Solidity.
6
6
 
7
7
  - `npm install --dev`
8
8
  - `brew install jq`   OR   `sudo apt-get install jq`
9
- - `npm install -g solhint`, check it is installed using `solhint --version`
10
9
 
11
10
  ## Build
12
11
 
@@ -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() public view returns (bytes32, uint32) {
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
  }
@@ -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
- uint32[] memory keys = new uint32[](rawKeys.length);
75
- for (uint256 i = 0; i < rawKeys.length; i++) {
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
- for (uint256 i = 0; i < _domains.length; i += 1) {
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
  /**
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.6.0;
2
+ pragma solidity >=0.6.11;
3
3
 
4
4
  import {IInterchainSecurityModule} from "./IInterchainSecurityModule.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.6.0;
2
+ pragma solidity >=0.6.11;
3
3
 
4
4
  import {IInterchainSecurityModule} from "../IInterchainSecurityModule.sol";
5
5
 
@@ -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
- for (
113
- ;
113
+ while (
114
114
  _validatorIndex < _validatorCount &&
115
- _signer != _validators[_validatorIndex];
116
- ++_validatorIndex
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
- require(_domains.length == _validators.length, "!length");
106
- for (uint256 i = 0; i < _domains.length; i += 1) {
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
- for (uint256 j = 0; j < _domainValidators.length; j += 1) {
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
- require(_domains.length == _thresholds.length, "!length");
159
- for (uint256 i = 0; i < _domains.length; i += 1) {
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
- public
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
- for (
344
- ;
347
+ while (
345
348
  _validatorIndex < _validatorCount &&
346
- _signer != _metadata.validatorAt(_validatorIndex);
347
- ++_validatorIndex
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 = hex"3d602d80600a3d3981f3363d3d373d3d3d363d73";
7
- bytes15 constant SUFFIX = hex"5af43d82803e903d91602b57fd5bf3";
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
- // TODO: use safeTransferFrom
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. TODO fix?
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
- ) public initializer {
74
- // Transfer ownership of the contract to deployer
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 = routers(_destinationDomain);
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
- require(_token.transfer(_recipient, _amount), "!transfer out");
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) InterchainGasPaymaster(_beneficiary) {}
11
+ constructor(address _beneficiary) {
12
+ initialize(msg.sender, _beneficiary);
13
+ }
12
14
 
13
15
  function quoteGasPayment(uint32, uint256 gasAmount)
14
16
  public
@@ -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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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  /* Autogenerated file. Do not edit manually. */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=Create2Factory.js.map
4
+ //# sourceMappingURL=IERC20Permit.js.map
@@ -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"}
@@ -0,0 +1,2 @@
1
+ export type { IERC20Permit } from "./IERC20Permit";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type * as draftIerc20PermitSol from "./draft-IERC20Permit.sol";
2
+ export type { draftIerc20PermitSol };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../types/@openzeppelin/contracts/token/ERC20/extensions/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -1,2 +1,4 @@
1
+ import type * as extensions from "./extensions";
2
+ export type { extensions };
1
3
  export type { IERC20 } from "./IERC20";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/@openzeppelin/contracts/token/ERC20/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
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,3 +1,4 @@
1
1
  "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/@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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,0BAA0B,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,KAAK,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>;