@hyperlane-xyz/sdk 30.0.0 → 30.1.0

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 (186) hide show
  1. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  2. package/dist/core/EvmCoreModule.hardhat-test.js +22 -3
  3. package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
  4. package/dist/core/EvmCoreModule.js +11 -0
  5. package/dist/core/EvmCoreModule.js.map +1 -1
  6. package/dist/core/HyperlaneCoreDeployer.d.ts +2 -1
  7. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  8. package/dist/core/HyperlaneCoreDeployer.js +13 -4
  9. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  10. package/dist/core/MultiProtocolCore.test.js +1 -0
  11. package/dist/core/MultiProtocolCore.test.js.map +1 -1
  12. package/dist/core/TestCoreApp.d.ts +1 -0
  13. package/dist/core/TestCoreApp.d.ts.map +1 -1
  14. package/dist/core/contracts.d.ts +3 -1
  15. package/dist/core/contracts.d.ts.map +1 -1
  16. package/dist/core/contracts.js +4 -1
  17. package/dist/core/contracts.js.map +1 -1
  18. package/dist/core/types.d.ts +344 -16
  19. package/dist/core/types.d.ts.map +1 -1
  20. package/dist/core/types.js +4 -0
  21. package/dist/core/types.js.map +1 -1
  22. package/dist/fee/EvmTokenFeeDeployer.d.ts +2 -0
  23. package/dist/fee/EvmTokenFeeDeployer.d.ts.map +1 -1
  24. package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js +80 -9
  25. package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js.map +1 -1
  26. package/dist/fee/EvmTokenFeeDeployer.js +68 -25
  27. package/dist/fee/EvmTokenFeeDeployer.js.map +1 -1
  28. package/dist/fee/EvmTokenFeeModule.d.ts +5 -3
  29. package/dist/fee/EvmTokenFeeModule.d.ts.map +1 -1
  30. package/dist/fee/EvmTokenFeeModule.hardhat-test.js +384 -20
  31. package/dist/fee/EvmTokenFeeModule.hardhat-test.js.map +1 -1
  32. package/dist/fee/EvmTokenFeeModule.js +190 -68
  33. package/dist/fee/EvmTokenFeeModule.js.map +1 -1
  34. package/dist/fee/EvmTokenFeeReader.d.ts +15 -2
  35. package/dist/fee/EvmTokenFeeReader.d.ts.map +1 -1
  36. package/dist/fee/EvmTokenFeeReader.hardhat-test.d.ts.map +1 -1
  37. package/dist/fee/EvmTokenFeeReader.hardhat-test.js +191 -4
  38. package/dist/fee/EvmTokenFeeReader.hardhat-test.js.map +1 -1
  39. package/dist/fee/EvmTokenFeeReader.js +104 -13
  40. package/dist/fee/EvmTokenFeeReader.js.map +1 -1
  41. package/dist/fee/contracts.d.ts +3 -1
  42. package/dist/fee/contracts.d.ts.map +1 -1
  43. package/dist/fee/contracts.js +3 -1
  44. package/dist/fee/contracts.js.map +1 -1
  45. package/dist/fee/crossCollateralUtils.d.ts +8 -0
  46. package/dist/fee/crossCollateralUtils.d.ts.map +1 -0
  47. package/dist/fee/crossCollateralUtils.js +49 -0
  48. package/dist/fee/crossCollateralUtils.js.map +1 -0
  49. package/dist/fee/types.d.ts +296 -32
  50. package/dist/fee/types.d.ts.map +1 -1
  51. package/dist/fee/types.js +94 -11
  52. package/dist/fee/types.js.map +1 -1
  53. package/dist/fee/types.test.js +39 -1
  54. package/dist/fee/types.test.js.map +1 -1
  55. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  56. package/dist/gas/HyperlaneIgpDeployer.js +6 -0
  57. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  58. package/dist/hook/EvmHookModule.d.ts +5 -1
  59. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  60. package/dist/hook/EvmHookModule.hardhat-test.js +69 -1
  61. package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
  62. package/dist/hook/EvmHookModule.js +65 -2
  63. package/dist/hook/EvmHookModule.js.map +1 -1
  64. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  65. package/dist/hook/EvmHookReader.js +7 -1
  66. package/dist/hook/EvmHookReader.js.map +1 -1
  67. package/dist/hook/HyperlaneHookDeployer.d.ts +5 -0
  68. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  69. package/dist/hook/types.d.ts +60 -0
  70. package/dist/hook/types.d.ts.map +1 -1
  71. package/dist/hook/types.js +2 -0
  72. package/dist/hook/types.js.map +1 -1
  73. package/dist/ica/types.d.ts +236 -12
  74. package/dist/ica/types.d.ts.map +1 -1
  75. package/dist/index.d.ts +6 -3
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +6 -3
  78. package/dist/index.js.map +1 -1
  79. package/dist/metadata/warpRouteConfig.d.ts +10 -8
  80. package/dist/metadata/warpRouteConfig.d.ts.map +1 -1
  81. package/dist/middleware/account/InterchainAccount.d.ts +8 -8
  82. package/dist/quoted-calls/builder.d.ts +52 -0
  83. package/dist/quoted-calls/builder.d.ts.map +1 -0
  84. package/dist/quoted-calls/builder.js +161 -0
  85. package/dist/quoted-calls/builder.js.map +1 -0
  86. package/dist/quoted-calls/builder.test.d.ts +2 -0
  87. package/dist/quoted-calls/builder.test.d.ts.map +1 -0
  88. package/dist/quoted-calls/builder.test.js +193 -0
  89. package/dist/quoted-calls/builder.test.js.map +1 -0
  90. package/dist/quoted-calls/codec.d.ts +94 -0
  91. package/dist/quoted-calls/codec.d.ts.map +1 -0
  92. package/dist/quoted-calls/codec.js +223 -0
  93. package/dist/quoted-calls/codec.js.map +1 -0
  94. package/dist/quoted-calls/codec.test.d.ts +2 -0
  95. package/dist/quoted-calls/codec.test.d.ts.map +1 -0
  96. package/dist/quoted-calls/codec.test.js +307 -0
  97. package/dist/quoted-calls/codec.test.js.map +1 -0
  98. package/dist/quoted-calls/types.d.ts +68 -0
  99. package/dist/quoted-calls/types.d.ts.map +1 -0
  100. package/dist/quoted-calls/types.js +22 -0
  101. package/dist/quoted-calls/types.js.map +1 -0
  102. package/dist/router/types.d.ts +246 -12
  103. package/dist/router/types.d.ts.map +1 -1
  104. package/dist/token/EvmWarpModule.d.ts +1 -0
  105. package/dist/token/EvmWarpModule.d.ts.map +1 -1
  106. package/dist/token/EvmWarpModule.hardhat-test.js +146 -2
  107. package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
  108. package/dist/token/EvmWarpModule.js +36 -5
  109. package/dist/token/EvmWarpModule.js.map +1 -1
  110. package/dist/token/EvmWarpRouteReader.d.ts +3 -1
  111. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  112. package/dist/token/EvmWarpRouteReader.hardhat-test.js +129 -5
  113. package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
  114. package/dist/token/EvmWarpRouteReader.js +86 -24
  115. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  116. package/dist/token/IToken.d.ts +2 -2
  117. package/dist/token/Token.d.ts.map +1 -1
  118. package/dist/token/Token.js +12 -1
  119. package/dist/token/Token.js.map +1 -1
  120. package/dist/token/Token.test.js +1 -0
  121. package/dist/token/Token.test.js.map +1 -1
  122. package/dist/token/TokenStandard.d.ts +2 -1
  123. package/dist/token/TokenStandard.d.ts.map +1 -1
  124. package/dist/token/TokenStandard.js +8 -0
  125. package/dist/token/TokenStandard.js.map +1 -1
  126. package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts +1 -1
  127. package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts.map +1 -1
  128. package/dist/token/adapters/EvmCrossCollateralAdapter.js +1 -1
  129. package/dist/token/adapters/EvmCrossCollateralAdapter.js.map +1 -1
  130. package/dist/token/adapters/EvmTokenAdapter.d.ts +2 -2
  131. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  132. package/dist/token/adapters/EvmTokenAdapter.js +11 -5
  133. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  134. package/dist/token/adapters/ITokenAdapter.d.ts +20 -0
  135. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
  136. package/dist/token/adapters/ITokenAdapter.js +6 -1
  137. package/dist/token/adapters/ITokenAdapter.js.map +1 -1
  138. package/dist/token/adapters/SealevelCrossCollateralAdapter.d.ts +36 -0
  139. package/dist/token/adapters/SealevelCrossCollateralAdapter.d.ts.map +1 -0
  140. package/dist/token/adapters/SealevelCrossCollateralAdapter.js +364 -0
  141. package/dist/token/adapters/SealevelCrossCollateralAdapter.js.map +1 -0
  142. package/dist/token/adapters/SealevelTokenAdapter.d.ts +9 -0
  143. package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
  144. package/dist/token/adapters/SealevelTokenAdapter.js +1 -1
  145. package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
  146. package/dist/token/adapters/serialization.d.ts +27 -0
  147. package/dist/token/adapters/serialization.d.ts.map +1 -1
  148. package/dist/token/adapters/serialization.js +93 -0
  149. package/dist/token/adapters/serialization.js.map +1 -1
  150. package/dist/token/config.d.ts +2 -0
  151. package/dist/token/config.d.ts.map +1 -1
  152. package/dist/token/config.js +2 -0
  153. package/dist/token/config.js.map +1 -1
  154. package/dist/token/configUtils.d.ts +0 -6
  155. package/dist/token/configUtils.d.ts.map +1 -1
  156. package/dist/token/configUtils.js +108 -15
  157. package/dist/token/configUtils.js.map +1 -1
  158. package/dist/token/configUtils.test.js +248 -4
  159. package/dist/token/configUtils.test.js.map +1 -1
  160. package/dist/token/contracts.d.ts +3 -2
  161. package/dist/token/contracts.d.ts.map +1 -1
  162. package/dist/token/contracts.js +3 -2
  163. package/dist/token/contracts.js.map +1 -1
  164. package/dist/token/deploy.d.ts +4 -5
  165. package/dist/token/deploy.d.ts.map +1 -1
  166. package/dist/token/deploy.hardhat-test.js +82 -0
  167. package/dist/token/deploy.hardhat-test.js.map +1 -1
  168. package/dist/token/deploy.js +60 -17
  169. package/dist/token/deploy.js.map +1 -1
  170. package/dist/token/tokenMetadataUtils.d.ts.map +1 -1
  171. package/dist/token/tokenMetadataUtils.js +17 -2
  172. package/dist/token/tokenMetadataUtils.js.map +1 -1
  173. package/dist/token/types.d.ts +2277 -567
  174. package/dist/token/types.d.ts.map +1 -1
  175. package/dist/token/types.js +55 -5
  176. package/dist/token/types.js.map +1 -1
  177. package/dist/token/types.test.js +132 -0
  178. package/dist/token/types.test.js.map +1 -1
  179. package/dist/warp/WarpCore.d.ts +59 -1
  180. package/dist/warp/WarpCore.d.ts.map +1 -1
  181. package/dist/warp/WarpCore.js +206 -6
  182. package/dist/warp/WarpCore.js.map +1 -1
  183. package/dist/warp/WarpCore.test.js +161 -9
  184. package/dist/warp/WarpCore.test.js.map +1 -1
  185. package/dist/warp/types.d.ts +24 -24
  186. package/package.json +11 -12
@@ -1,27 +1,82 @@
1
1
  import { constants } from 'ethers';
2
- import { RoutingFee__factory } from '@hyperlane-xyz/core';
3
- import { ProtocolType, deepEquals, eqAddress, isNullish, objMap, objMerge, objOmit, promiseObjAll, rootLogger, } from '@hyperlane-xyz/utils';
2
+ import { OffchainQuotedLinearFee__factory, RoutingFee__factory, } from '@hyperlane-xyz/core';
3
+ import { ProtocolType, deepEquals, difference, eqAddress, objMap, objMerge, objOmit, promiseObjAll, rootLogger, } from '@hyperlane-xyz/utils';
4
4
  import { transferOwnershipTransactions } from '../contracts/contracts.js';
5
5
  import { HyperlaneModule, } from '../core/AbstractHyperlaneModule.js';
6
6
  import { normalizeConfig } from '../utils/ism.js';
7
7
  import { EvmTokenFeeDeployer } from './EvmTokenFeeDeployer.js';
8
8
  import { EvmTokenFeeReader, } from './EvmTokenFeeReader.js';
9
- import { ImmutableTokenFeeType, TokenFeeConfigInputSchema, TokenFeeConfigSchema, TokenFeeType, } from './types.js';
9
+ import { getConfiguredCrossCollateralRouters, getConfiguredRoutingDestinations, mergeCrossCollateralRouters, } from './crossCollateralUtils.js';
10
+ import { TokenFeeConfigInputSchema, TokenFeeConfigSchema, TokenFeeType, } from './types.js';
10
11
  import { convertToBps } from './utils.js';
11
- function resolveTokenForFeeConfig(config, token) {
12
- if (config.type === TokenFeeType.RoutingFee &&
13
- 'feeContracts' in config &&
14
- config.feeContracts) {
12
+ function getDeployedFeeAddress(contracts, feeType) {
13
+ switch (feeType) {
14
+ case TokenFeeType.LinearFee:
15
+ return contracts.LinearFee.address;
16
+ case TokenFeeType.ProgressiveFee:
17
+ return contracts.ProgressiveFee.address;
18
+ case TokenFeeType.RegressiveFee:
19
+ return contracts.RegressiveFee.address;
20
+ case TokenFeeType.RoutingFee:
21
+ return contracts.RoutingFee.address;
22
+ case TokenFeeType.CrossCollateralRoutingFee:
23
+ return contracts.CrossCollateralRoutingFee.address;
24
+ case TokenFeeType.OffchainQuotedLinearFee:
25
+ return contracts.OffchainQuotedLinearFee.address;
26
+ }
27
+ }
28
+ function getResolvedFeeToken(config, fallbackToken) {
29
+ return 'token' in config && typeof config.token === 'string'
30
+ ? config.token
31
+ : fallbackToken;
32
+ }
33
+ function getFallbackTokenFromFeeConfig(config) {
34
+ const directToken = getResolvedFeeToken(config);
35
+ if (directToken)
36
+ return directToken;
37
+ if (config.type === TokenFeeType.RoutingFee) {
38
+ return Object.values(config.feeContracts)
39
+ .map(getFallbackTokenFromFeeConfig)
40
+ .find(Boolean);
41
+ }
42
+ if (config.type === TokenFeeType.CrossCollateralRoutingFee) {
43
+ return Object.values(config.feeContracts)
44
+ .flatMap((destinationConfig) => Object.values(destinationConfig))
45
+ .map(getFallbackTokenFromFeeConfig)
46
+ .find(Boolean);
47
+ }
48
+ return undefined;
49
+ }
50
+ function requireResolvedFeeToken(config, fallbackToken) {
51
+ const resolvedToken = getResolvedFeeToken(config, fallbackToken);
52
+ if (!resolvedToken) {
53
+ throw new Error(`Token is required to resolve ${config.type} fee config children`);
54
+ }
55
+ return resolvedToken;
56
+ }
57
+ function resolveTokenForFeeConfig(config, fallbackToken) {
58
+ if (config.type === TokenFeeType.RoutingFee) {
59
+ const resolvedToken = requireResolvedFeeToken(config, fallbackToken);
15
60
  return {
16
61
  ...config,
17
- token,
62
+ token: resolvedToken,
18
63
  feeContracts: Object.fromEntries(Object.entries(config.feeContracts).map(([chain, subFee]) => [
19
64
  chain,
20
- resolveTokenForFeeConfig(subFee, token),
65
+ resolveTokenForFeeConfig(subFee, resolvedToken),
21
66
  ])),
22
67
  };
23
68
  }
24
- return { ...config, token };
69
+ if (config.type === TokenFeeType.CrossCollateralRoutingFee) {
70
+ const nestedFallbackToken = getResolvedFeeToken(config, fallbackToken);
71
+ return {
72
+ ...config,
73
+ feeContracts: objMap(config.feeContracts, (_, destinationConfig) => objMap(destinationConfig, (_, subFee) => resolveTokenForFeeConfig(subFee, nestedFallbackToken))),
74
+ };
75
+ }
76
+ return {
77
+ ...config,
78
+ token: requireResolvedFeeToken(config, fallbackToken),
79
+ };
25
80
  }
26
81
  export class EvmTokenFeeModule extends HyperlaneModule {
27
82
  multiProvider;
@@ -59,16 +114,16 @@ export class EvmTokenFeeModule extends HyperlaneModule {
59
114
  contractVerifier,
60
115
  config,
61
116
  });
62
- module.args.addresses.deployedFee =
63
- contracts[chainName][config.type].address;
117
+ module.args.addresses.deployedFee = getDeployedFeeAddress(contracts[chainName], config.type);
64
118
  return module;
65
119
  }
66
120
  // Processes the Input config to the Final config
67
- // For LinearFee, it converts the bps to maxFee and halfAmount
121
+ // For LinearFee/OffchainQuotedLinearFee, it converts the bps to maxFee and halfAmount
68
122
  static async expandConfig(params) {
69
123
  const { config, multiProvider, chainName } = params;
70
124
  let intermediaryConfig;
71
- if (config.type === TokenFeeType.LinearFee) {
125
+ if (config.type === TokenFeeType.LinearFee ||
126
+ config.type === TokenFeeType.OffchainQuotedLinearFee) {
72
127
  const { token } = config;
73
128
  let maxFee;
74
129
  let halfAmount;
@@ -106,37 +161,56 @@ export class EvmTokenFeeModule extends HyperlaneModule {
106
161
  else {
107
162
  throw new Error('LinearFee config must provide either bps or both maxFee and halfAmount');
108
163
  }
109
- intermediaryConfig = {
110
- type: TokenFeeType.LinearFee,
111
- token,
112
- owner: config.owner,
113
- bps,
114
- maxFee,
115
- halfAmount,
116
- };
164
+ if (config.type === TokenFeeType.OffchainQuotedLinearFee) {
165
+ intermediaryConfig = {
166
+ type: TokenFeeType.OffchainQuotedLinearFee,
167
+ token,
168
+ owner: config.owner,
169
+ bps,
170
+ maxFee,
171
+ halfAmount,
172
+ quoteSigners: config.quoteSigners,
173
+ };
174
+ }
175
+ else {
176
+ intermediaryConfig = {
177
+ type: TokenFeeType.LinearFee,
178
+ token,
179
+ owner: config.owner,
180
+ bps,
181
+ maxFee,
182
+ halfAmount,
183
+ };
184
+ }
117
185
  }
118
186
  else if (config.type === TokenFeeType.RoutingFee) {
119
187
  const { token, owner } = config;
120
- const inputFeeContracts = 'feeContracts' in config ? config.feeContracts : undefined;
121
- const feeContracts = inputFeeContracts
122
- ? await promiseObjAll(objMap(inputFeeContracts, async (_, innerConfig) => {
123
- const resolvedInnerConfig = {
124
- ...innerConfig,
125
- token: innerConfig.token ?? token,
126
- };
127
- return EvmTokenFeeModule.expandConfig({
128
- config: resolvedInnerConfig,
129
- multiProvider,
130
- chainName,
131
- });
132
- }))
133
- : undefined;
188
+ const feeContracts = await promiseObjAll(objMap(config.feeContracts, async (_, innerConfig) => {
189
+ return EvmTokenFeeModule.expandConfig({
190
+ config: resolveTokenForFeeConfig(innerConfig, ('token' in innerConfig ? innerConfig.token : undefined) ?? token),
191
+ multiProvider,
192
+ chainName,
193
+ });
194
+ }));
134
195
  intermediaryConfig = {
135
196
  type: TokenFeeType.RoutingFee,
136
197
  token,
137
198
  owner,
138
- maxFee: constants.MaxUint256.toBigInt(),
139
- halfAmount: constants.MaxUint256.toBigInt(),
199
+ feeContracts,
200
+ };
201
+ }
202
+ else if (config.type === TokenFeeType.CrossCollateralRoutingFee) {
203
+ const { owner } = config;
204
+ const feeContracts = await promiseObjAll(objMap(config.feeContracts, async (_, destinationConfig) => {
205
+ return promiseObjAll(objMap(destinationConfig, async (_, innerConfig) => EvmTokenFeeModule.expandConfig({
206
+ config: innerConfig,
207
+ multiProvider,
208
+ chainName,
209
+ })));
210
+ }));
211
+ intermediaryConfig = {
212
+ type: TokenFeeType.CrossCollateralRoutingFee,
213
+ owner,
140
214
  feeContracts,
141
215
  };
142
216
  }
@@ -160,20 +234,48 @@ export class EvmTokenFeeModule extends HyperlaneModule {
160
234
  const address = params?.address ?? this.args.addresses.deployedFee;
161
235
  const routingDestinations = params?.routingDestinations;
162
236
  return this.reader.deriveTokenFeeConfig({
163
- address: address,
237
+ address,
164
238
  routingDestinations,
239
+ crossCollateralRouters: params?.crossCollateralRouters,
165
240
  });
166
241
  }
242
+ // Routing-fee diffs need enough read context to observe every configured
243
+ // destination plus any caller-specified CCR router hints for stale entries.
244
+ deriveReadParams(targetConfig, params) {
245
+ const effectiveParams = { ...params };
246
+ if ((targetConfig.type === TokenFeeType.RoutingFee ||
247
+ targetConfig.type === TokenFeeType.CrossCollateralRoutingFee) &&
248
+ !effectiveParams.routingDestinations) {
249
+ effectiveParams.routingDestinations = getConfiguredRoutingDestinations(targetConfig.feeContracts, (chainName) => this.multiProvider.getDomainId(chainName));
250
+ }
251
+ if (targetConfig.type !== TokenFeeType.CrossCollateralRoutingFee) {
252
+ return effectiveParams;
253
+ }
254
+ const targetCrossCollateralRouters = getConfiguredCrossCollateralRouters(targetConfig.feeContracts, (chainName) => this.multiProvider.getDomainId(chainName));
255
+ effectiveParams.crossCollateralRouters = mergeCrossCollateralRouters(effectiveParams.crossCollateralRouters, targetCrossCollateralRouters);
256
+ return effectiveParams;
257
+ }
258
+ shouldRedeploy(actualConfig, targetConfig) {
259
+ if (actualConfig.type !== targetConfig.type)
260
+ return true;
261
+ const mutableFields = { owner: true };
262
+ if (targetConfig.type === TokenFeeType.OffchainQuotedLinearFee) {
263
+ mutableFields.quoteSigners = true;
264
+ }
265
+ if (targetConfig.type === TokenFeeType.RoutingFee) {
266
+ mutableFields.feeContracts = true;
267
+ }
268
+ return !deepEquals(objOmit(actualConfig, mutableFields), objOmit(targetConfig, mutableFields));
269
+ }
167
270
  /**
168
271
  * Updates the fee configuration to match the target config.
169
272
  *
170
273
  * IMPORTANT: This method may deploy new contracts as a side effect when:
171
- * - An immutable fee type (e.g., LinearFee) needs parameter changes (triggers redeploy)
172
- * - A new routing destination is added that doesn't have an existing sub-fee contract
274
+ * - Any non-owner diff is detected (triggers redeploy)
173
275
  *
174
276
  * These deployments are executed immediately and are NOT included in the returned
175
277
  * transaction array. The returned transactions only include configuration changes
176
- * (e.g., setFeeContract, ownership transfers) that callers need to execute.
278
+ * (ownership transfers) that callers need to execute.
177
279
  *
178
280
  * This behavior is consistent with other Hyperlane SDK modules (EvmIsmModule, EvmHookModule).
179
281
  *
@@ -185,50 +287,46 @@ export class EvmTokenFeeModule extends HyperlaneModule {
185
287
  */
186
288
  async update(targetConfig, params) {
187
289
  TokenFeeConfigInputSchema.parse(targetConfig);
188
- let updateTransactions = [];
189
- // Derive routingDestinations from target config if not provided
190
- // This ensures we read all sub-fee configs that need to be compared/updated
191
- let effectiveParams = params;
192
- if (!params?.routingDestinations &&
193
- targetConfig.type === TokenFeeType.RoutingFee &&
194
- !isNullish(targetConfig.feeContracts)) {
195
- const routingDestinations = Object.keys(targetConfig.feeContracts).map((chainName) => this.multiProvider.getDomainId(chainName));
196
- effectiveParams = { ...params, routingDestinations };
197
- }
198
- const actualConfig = await this.read(effectiveParams);
290
+ const actualConfig = await this.read(this.deriveReadParams(targetConfig, params));
199
291
  const normalizedActualConfig = normalizeConfig(actualConfig);
200
- const resolvedTargetConfig = resolveTokenForFeeConfig(targetConfig, actualConfig.token);
292
+ const resolvedTargetConfig = resolveTokenForFeeConfig(targetConfig, getFallbackTokenFromFeeConfig(actualConfig));
201
293
  const normalizedTargetConfig = normalizeConfig(await EvmTokenFeeModule.expandConfig({
202
294
  config: resolvedTargetConfig,
203
295
  multiProvider: this.multiProvider,
204
296
  chainName: this.chainName,
205
297
  }));
206
- //If configs are the same, return empty array
207
298
  if (deepEquals(normalizedActualConfig, normalizedTargetConfig)) {
208
299
  this.logger.debug(`Same config for ${normalizedTargetConfig.type}, no update needed`);
209
300
  return [];
210
301
  }
211
- // Redeploy immutable fee types, if owner is the same, but the rest of the config is different
212
- const nonOwnerDiffers = !deepEquals(objOmit(normalizedActualConfig, { owner: true }), objOmit(normalizedTargetConfig, { owner: true }));
213
- if (ImmutableTokenFeeType.includes(normalizedTargetConfig.type) &&
214
- nonOwnerDiffers) {
215
- this.logger.info(`Immutable fee type ${normalizedTargetConfig.type}, redeploying`);
302
+ if (this.shouldRedeploy(normalizedActualConfig, normalizedTargetConfig)) {
303
+ this.logger.info(`Redeploying ${normalizedTargetConfig.type} due to non-owner config diff`);
216
304
  const contracts = await this.deploy({
217
305
  config: normalizedTargetConfig,
218
306
  multiProvider: this.multiProvider,
219
307
  chainName: this.chainName,
220
308
  contractVerifier: this.contractVerifier,
221
309
  });
222
- this.args.addresses.deployedFee =
223
- contracts[this.chainName][normalizedTargetConfig.type].address;
310
+ this.args.addresses.deployedFee = getDeployedFeeAddress(contracts[this.chainName], normalizedTargetConfig.type);
224
311
  return [];
225
312
  }
226
- // if the type is a mutable (for now, only routing fee), then update
227
- updateTransactions = [
228
- ...(await this.updateRoutingFee(objMerge(actualConfig, normalizedTargetConfig, 10, true))),
229
- ...this.createOwnershipUpdateTxs(normalizedActualConfig, normalizedTargetConfig),
230
- ];
231
- return updateTransactions;
313
+ // OffchainQuotedLinearFee: signers are mutable (fee params handled by shouldRedeploy)
314
+ if (normalizedTargetConfig.type === TokenFeeType.OffchainQuotedLinearFee &&
315
+ normalizedActualConfig.type === TokenFeeType.OffchainQuotedLinearFee) {
316
+ return [
317
+ ...this.createQuoteSignerUpdateTxs(normalizedActualConfig.quoteSigners, normalizedTargetConfig.quoteSigners),
318
+ ...this.createOwnershipUpdateTxs(normalizedActualConfig, normalizedTargetConfig),
319
+ ];
320
+ }
321
+ // Routing fee: update sub-fee contracts
322
+ if (normalizedTargetConfig.type === TokenFeeType.RoutingFee &&
323
+ normalizedActualConfig.type === TokenFeeType.RoutingFee) {
324
+ return [
325
+ ...(await this.updateRoutingFee(objMerge(actualConfig, normalizedTargetConfig, 10, true))),
326
+ ...this.createOwnershipUpdateTxs(normalizedActualConfig, normalizedTargetConfig),
327
+ ];
328
+ }
329
+ return this.createOwnershipUpdateTxs(normalizedActualConfig, normalizedTargetConfig);
232
330
  }
233
331
  async updateRoutingFee(targetConfig) {
234
332
  const updateTransactions = [];
@@ -286,6 +384,30 @@ export class EvmTokenFeeModule extends HyperlaneModule {
286
384
  }
287
385
  return updateTransactions;
288
386
  }
387
+ createQuoteSignerUpdateTxs(actualSigners, targetSigners) {
388
+ const txs = [];
389
+ const iface = OffchainQuotedLinearFee__factory.createInterface();
390
+ const contractAddress = this.args.addresses.deployedFee;
391
+ const actualSet = new Set((actualSigners ?? []).map((s) => s.toLowerCase()));
392
+ const targetSet = new Set((targetSigners ?? []).map((s) => s.toLowerCase()));
393
+ for (const signer of difference(targetSet, actualSet)) {
394
+ txs.push({
395
+ annotation: `Add quote signer ${signer}`,
396
+ chainId: this.chainId,
397
+ to: contractAddress,
398
+ data: iface.encodeFunctionData('addQuoteSigner', [signer]),
399
+ });
400
+ }
401
+ for (const signer of difference(actualSet, targetSet)) {
402
+ txs.push({
403
+ annotation: `Remove quote signer ${signer}`,
404
+ chainId: this.chainId,
405
+ to: contractAddress,
406
+ data: iface.encodeFunctionData('removeQuoteSigner', [signer]),
407
+ });
408
+ }
409
+ return txs;
410
+ }
289
411
  createOwnershipUpdateTxs(actualConfig, expectedConfig) {
290
412
  return transferOwnershipTransactions(this.multiProvider.getEvmChainId(this.args.chain), this.args.addresses.deployedFee, actualConfig, expectedConfig, `${expectedConfig.type} Warp Route`);
291
413
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTokenFeeModule.js","sourceRoot":"","sources":["../../src/fee/EvmTokenFeeModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmTokenFeeModule.js","sourceRoot":"","sources":["../../src/fee/EvmTokenFeeModule.ts"],"names":[],"mappings":"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"}
@@ -2,24 +2,37 @@ import { Address, WithAddress } from '@hyperlane-xyz/utils';
2
2
  import { MultiProvider } from '../providers/MultiProvider.js';
3
3
  import { ChainName, ChainNameOrId } from '../types.js';
4
4
  import { HyperlaneReader } from '../utils/HyperlaneReader.js';
5
- import { FeeParameters, RoutingFeeConfig, TokenFeeConfig } from './types.js';
5
+ import { CrossCollateralRoutingFeeConfig, FeeParameters, RoutingFeeConfig, TokenFeeConfig } from './types.js';
6
+ import { CrossCollateralRoutersByDomain } from './crossCollateralUtils.js';
6
7
  export type DerivedTokenFeeConfig = WithAddress<TokenFeeConfig>;
8
+ type DerivedCrossCollateralFeeContracts = Record<ChainName, Record<string, DerivedTokenFeeConfig>>;
7
9
  export type DerivedRoutingFeeConfig = WithAddress<RoutingFeeConfig> & {
8
10
  feeContracts: Record<ChainName, DerivedTokenFeeConfig>;
9
11
  };
12
+ export type DerivedCrossCollateralRoutingFeeConfig = WithAddress<CrossCollateralRoutingFeeConfig> & {
13
+ feeContracts: DerivedCrossCollateralFeeContracts;
14
+ };
10
15
  export type TokenFeeReaderParams = {
11
16
  address: Address;
12
17
  routingDestinations?: number[];
18
+ crossCollateralRouters?: CrossCollateralRoutersByDomain;
13
19
  };
14
20
  export declare class EvmTokenFeeReader extends HyperlaneReader {
15
21
  protected readonly multiProvider: MultiProvider;
16
22
  protected readonly chain: ChainNameOrId;
17
- constructor(multiProvider: MultiProvider, chain: ChainNameOrId);
23
+ protected readonly concurrency: number;
24
+ protected readonly logger: import("pino").default.Logger<never>;
25
+ constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number);
18
26
  deriveTokenFeeConfig(params: TokenFeeReaderParams): Promise<DerivedTokenFeeConfig>;
19
27
  private deriveLinearFeeConfig;
28
+ private deriveOffchainQuotedLinearFeeConfig;
20
29
  private deriveProgressiveFeeConfig;
21
30
  private deriveRegressiveFeeConfig;
22
31
  private deriveRoutingFeeConfig;
32
+ private deriveCrossCollateralRoutingFeeConfig;
33
+ private createCachedFeeConfigReader;
34
+ private deriveCrossCollateralDestinationFees;
23
35
  convertFromBps(bps: number): FeeParameters;
24
36
  }
37
+ export {};
25
38
  //# sourceMappingURL=EvmTokenFeeReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTokenFeeReader.d.ts","sourceRoot":"","sources":["../../src/fee/EvmTokenFeeReader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACL,aAAa,EAEb,gBAAgB,EAChB,cAAc,EAEf,MAAM,YAAY,CAAC;AASpB,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AAEhE,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG;IACpE,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,eAAe;IAElD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;gBADpB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa;IAKnC,oBAAoB,CACxB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;YA6BnB,qBAAqB;YAyBrB,0BAA0B;YAM1B,yBAAyB;YAMzB,sBAAsB;IA4CpC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;CAiB3C"}
1
+ {"version":3,"file":"EvmTokenFeeReader.d.ts","sourceRoot":"","sources":["../../src/fee/EvmTokenFeeReader.ts"],"names":[],"mappings":"AASA,OAAO,EACL,OAAO,EACP,WAAW,EAIZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACL,+BAA+B,EAC/B,aAAa,EAEb,gBAAgB,EAChB,cAAc,EAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,EAG/B,MAAM,2BAA2B,CAAC;AASnC,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AAChE,KAAK,kCAAkC,GAAG,MAAM,CAC9C,SAAS,EACT,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACtC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG;IACpE,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;CACxD,CAAC;AACF,MAAM,MAAM,sCAAsC,GAChD,WAAW,CAAC,+BAA+B,CAAC,GAAG;IAC7C,YAAY,EAAE,kCAAkC,CAAC;CAClD,CAAC;AAEJ,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;CACzD,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,eAAe;IAIlD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IALxC,SAAS,CAAC,QAAQ,CAAC,MAAM,uCAAqD;gBAGzD,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACpB,WAAW,GAAE,MAEM;IAKlC,oBAAoB,CACxB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;YAuCnB,qBAAqB;YAyBrB,mCAAmC;YA8BnC,0BAA0B;YAM1B,yBAAyB;YAMzB,sBAAsB;YAiCtB,qCAAqC;IAiDnD,OAAO,CAAC,2BAA2B;YAuBrB,oCAAoC;IAkDlD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;CAiB3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTokenFeeReader.hardhat-test.d.ts","sourceRoot":"","sources":["../../src/fee/EvmTokenFeeReader.hardhat-test.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,OAAO,8CAA8C,CAAC;AAEnE,eAAO,MAAM,WAAW,8CAA8C,CAAC;AAEvE,eAAO,MAAM,GAAG,QAAqC,CAAC"}
1
+ {"version":3,"file":"EvmTokenFeeReader.hardhat-test.d.ts","sourceRoot":"","sources":["../../src/fee/EvmTokenFeeReader.hardhat-test.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,OAAO,8CAA8C,CAAC;AAEnE,eAAO,MAAM,WAAW,8CAA8C,CAAC;AAEvE,eAAO,MAAM,GAAG,QAAqC,CAAC"}