@hyperlane-xyz/sdk 35.1.0 → 36.0.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 (286) hide show
  1. package/dist/block-explorer/utils.d.ts +8 -0
  2. package/dist/block-explorer/utils.d.ts.map +1 -1
  3. package/dist/block-explorer/utils.js +16 -3
  4. package/dist/block-explorer/utils.js.map +1 -1
  5. package/dist/ccip/consts.d.ts.map +1 -1
  6. package/dist/ccip/consts.js +0 -40
  7. package/dist/ccip/consts.js.map +1 -1
  8. package/dist/consts/multisigIsm.d.ts.map +1 -1
  9. package/dist/consts/multisigIsm.js +39 -241
  10. package/dist/consts/multisigIsm.js.map +1 -1
  11. package/dist/contracts/contracts.d.ts.map +1 -1
  12. package/dist/contracts/contracts.js +6 -1
  13. package/dist/contracts/contracts.js.map +1 -1
  14. package/dist/core/CoreDeployer.hardhat-test.js +9 -0
  15. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  16. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  17. package/dist/core/EvmCoreModule.hardhat-test.js +23 -0
  18. package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
  19. package/dist/core/EvmCoreModule.js +8 -5
  20. package/dist/core/EvmCoreModule.js.map +1 -1
  21. package/dist/core/EvmCoreReader.d.ts.map +1 -1
  22. package/dist/core/EvmCoreReader.js +34 -15
  23. package/dist/core/EvmCoreReader.js.map +1 -1
  24. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  25. package/dist/core/HyperlaneCoreDeployer.js +34 -13
  26. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  27. package/dist/core/TestCoreApp.d.ts +1 -1
  28. package/dist/core/contracts.d.ts +5 -2
  29. package/dist/core/contracts.d.ts.map +1 -1
  30. package/dist/core/contracts.js +4 -1
  31. package/dist/core/contracts.js.map +1 -1
  32. package/dist/core/types.d.ts +1092 -627
  33. package/dist/core/types.d.ts.map +1 -1
  34. package/dist/core/types.js +30 -2
  35. package/dist/core/types.js.map +1 -1
  36. package/dist/core/types.test.d.ts +2 -0
  37. package/dist/core/types.test.d.ts.map +1 -0
  38. package/dist/core/types.test.js +50 -0
  39. package/dist/core/types.test.js.map +1 -0
  40. package/dist/deploy/HyperlaneDeployer.d.ts +1 -0
  41. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  42. package/dist/deploy/HyperlaneDeployer.js +17 -8
  43. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  44. package/dist/deploy/proxy.d.ts.map +1 -1
  45. package/dist/deploy/proxy.js +9 -5
  46. package/dist/deploy/proxy.js.map +1 -1
  47. package/dist/deploy/warp.d.ts.map +1 -1
  48. package/dist/deploy/warp.js +5 -0
  49. package/dist/deploy/warp.js.map +1 -1
  50. package/dist/fee/EvmTokenFeeDeployer.d.ts +1 -0
  51. package/dist/fee/EvmTokenFeeDeployer.d.ts.map +1 -1
  52. package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js +40 -0
  53. package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js.map +1 -1
  54. package/dist/fee/EvmTokenFeeDeployer.js +8 -0
  55. package/dist/fee/EvmTokenFeeDeployer.js.map +1 -1
  56. package/dist/fee/EvmTokenFeeReader.d.ts.map +1 -1
  57. package/dist/fee/EvmTokenFeeReader.js +3 -13
  58. package/dist/fee/EvmTokenFeeReader.js.map +1 -1
  59. package/dist/fee/feeConfigMapping.d.ts +9 -0
  60. package/dist/fee/feeConfigMapping.d.ts.map +1 -0
  61. package/dist/fee/feeConfigMapping.js +86 -0
  62. package/dist/fee/feeConfigMapping.js.map +1 -0
  63. package/dist/fee/feeConfigMapping.test.d.ts +2 -0
  64. package/dist/fee/feeConfigMapping.test.d.ts.map +1 -0
  65. package/dist/fee/feeConfigMapping.test.js +204 -0
  66. package/dist/fee/feeConfigMapping.test.js.map +1 -0
  67. package/dist/fee/types.d.ts +185 -113
  68. package/dist/fee/types.d.ts.map +1 -1
  69. package/dist/fee/types.js +13 -11
  70. package/dist/fee/types.js.map +1 -1
  71. package/dist/fee/utils.d.ts +1 -32
  72. package/dist/fee/utils.d.ts.map +1 -1
  73. package/dist/fee/utils.js +1 -47
  74. package/dist/fee/utils.js.map +1 -1
  75. package/dist/gas/HyperlaneIgpChecker.d.ts +1 -0
  76. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
  77. package/dist/gas/HyperlaneIgpChecker.js +43 -1
  78. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  79. package/dist/gas/HyperlaneIgpDeployer.d.ts +17 -0
  80. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  81. package/dist/gas/HyperlaneIgpDeployer.js +124 -4
  82. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  83. package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +33 -2
  84. package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
  85. package/dist/gas/types.d.ts +17 -3
  86. package/dist/gas/types.d.ts.map +1 -1
  87. package/dist/gas/types.js +19 -0
  88. package/dist/gas/types.js.map +1 -1
  89. package/dist/gas/utils.d.ts +5 -1
  90. package/dist/gas/utils.d.ts.map +1 -1
  91. package/dist/gas/utils.js +92 -31
  92. package/dist/gas/utils.js.map +1 -1
  93. package/dist/gas/utils.test.d.ts +2 -0
  94. package/dist/gas/utils.test.d.ts.map +1 -0
  95. package/dist/gas/utils.test.js +132 -0
  96. package/dist/gas/utils.test.js.map +1 -0
  97. package/dist/hook/EvmHookModule.d.ts +21 -1
  98. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  99. package/dist/hook/EvmHookModule.hardhat-test.js +125 -2
  100. package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
  101. package/dist/hook/EvmHookModule.js +191 -17
  102. package/dist/hook/EvmHookModule.js.map +1 -1
  103. package/dist/hook/EvmHookReader.d.ts +4 -4
  104. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  105. package/dist/hook/EvmHookReader.js +67 -16
  106. package/dist/hook/EvmHookReader.js.map +1 -1
  107. package/dist/hook/EvmHookReader.test.js +128 -2
  108. package/dist/hook/EvmHookReader.test.js.map +1 -1
  109. package/dist/hook/HyperlaneHookDeployer.d.ts +10 -5
  110. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  111. package/dist/hook/types.d.ts +338 -264
  112. package/dist/hook/types.d.ts.map +1 -1
  113. package/dist/hook/types.js +30 -6
  114. package/dist/hook/types.js.map +1 -1
  115. package/dist/hook/types.test.d.ts +2 -0
  116. package/dist/hook/types.test.d.ts.map +1 -0
  117. package/dist/hook/types.test.js +184 -0
  118. package/dist/hook/types.test.js.map +1 -0
  119. package/dist/hook/utils.d.ts +1 -0
  120. package/dist/hook/utils.d.ts.map +1 -1
  121. package/dist/hook/utils.js +16 -10
  122. package/dist/hook/utils.js.map +1 -1
  123. package/dist/ica/types.d.ts +380 -188
  124. package/dist/ica/types.d.ts.map +1 -1
  125. package/dist/index.d.ts +8 -6
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +5 -3
  128. package/dist/index.js.map +1 -1
  129. package/dist/ism/EvmIsmModule.d.ts +7 -1
  130. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  131. package/dist/ism/EvmIsmModule.hardhat-test.js +4 -0
  132. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  133. package/dist/ism/EvmIsmModule.js +152 -4
  134. package/dist/ism/EvmIsmModule.js.map +1 -1
  135. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  136. package/dist/ism/EvmIsmReader.js +1 -2
  137. package/dist/ism/EvmIsmReader.js.map +1 -1
  138. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  139. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +17 -0
  140. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  141. package/dist/ism/HyperlaneIsmFactory.js +35 -9
  142. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  143. package/dist/ism/types.d.ts +88 -3
  144. package/dist/ism/types.d.ts.map +1 -1
  145. package/dist/ism/types.js +4 -0
  146. package/dist/ism/types.js.map +1 -1
  147. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  148. package/dist/metadata/ChainMetadataManager.js +2 -2
  149. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  150. package/dist/metadata/ChainMetadataManager.test.js +71 -0
  151. package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
  152. package/dist/metadata/agentConfig.d.ts +937 -168
  153. package/dist/metadata/agentConfig.d.ts.map +1 -1
  154. package/dist/metadata/agentConfig.js +68 -1
  155. package/dist/metadata/agentConfig.js.map +1 -1
  156. package/dist/metadata/agentConfig.test.js +67 -1
  157. package/dist/metadata/agentConfig.test.js.map +1 -1
  158. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  159. package/dist/middleware/account/InterchainAccount.js +10 -0
  160. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  161. package/dist/middleware/account/InterchainAccount.test.js +26 -0
  162. package/dist/middleware/account/InterchainAccount.test.js.map +1 -1
  163. package/dist/providers/MultiProvider.d.ts +6 -0
  164. package/dist/providers/MultiProvider.d.ts.map +1 -1
  165. package/dist/providers/MultiProvider.js +28 -2
  166. package/dist/providers/MultiProvider.js.map +1 -1
  167. package/dist/providers/SeismicSigner.d.ts +54 -0
  168. package/dist/providers/SeismicSigner.d.ts.map +1 -0
  169. package/dist/providers/SeismicSigner.js +89 -0
  170. package/dist/providers/SeismicSigner.js.map +1 -0
  171. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts.map +1 -1
  172. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js +8 -0
  173. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js.map +1 -1
  174. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  175. package/dist/providers/SmartProvider/SmartProvider.js +69 -23
  176. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  177. package/dist/providers/SmartProvider/SmartProvider.test.js +34 -5
  178. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
  179. package/dist/providers/builders/starknet.d.ts.map +1 -1
  180. package/dist/providers/builders/starknet.js +6 -1
  181. package/dist/providers/builders/starknet.js.map +1 -1
  182. package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts.map +1 -1
  183. package/dist/providers/transactions/submitter/IcaTxSubmitter.js +23 -8
  184. package/dist/providers/transactions/submitter/IcaTxSubmitter.js.map +1 -1
  185. package/dist/providers/transactions/submitter/IcaTxSubmitter.test.js +45 -0
  186. package/dist/providers/transactions/submitter/IcaTxSubmitter.test.js.map +1 -1
  187. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts +1 -1
  188. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts.map +1 -1
  189. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +1 -1
  190. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -1
  191. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
  192. package/dist/providers/transactions/submitter/ethersV5/types.d.ts +6 -0
  193. package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -1
  194. package/dist/providers/transactions/submitter/ethersV5/types.js +26 -5
  195. package/dist/providers/transactions/submitter/ethersV5/types.js.map +1 -1
  196. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts.map +1 -1
  197. package/dist/providers/transactions/submitter/submitterBuilderGetter.js +11 -1
  198. package/dist/providers/transactions/submitter/submitterBuilderGetter.js.map +1 -1
  199. package/dist/providers/transactions/submitter/submitterBuilderGetter.test.d.ts +2 -0
  200. package/dist/providers/transactions/submitter/submitterBuilderGetter.test.d.ts.map +1 -0
  201. package/dist/providers/transactions/submitter/submitterBuilderGetter.test.js +38 -0
  202. package/dist/providers/transactions/submitter/submitterBuilderGetter.test.js.map +1 -0
  203. package/dist/router/types.d.ts +481 -236
  204. package/dist/router/types.d.ts.map +1 -1
  205. package/dist/router/types.js +1 -0
  206. package/dist/router/types.js.map +1 -1
  207. package/dist/router/types.test.d.ts +2 -0
  208. package/dist/router/types.test.d.ts.map +1 -0
  209. package/dist/router/types.test.js +32 -0
  210. package/dist/router/types.test.js.map +1 -0
  211. package/dist/test/testUtils.d.ts.map +1 -1
  212. package/dist/test/testUtils.js +3 -0
  213. package/dist/test/testUtils.js.map +1 -1
  214. package/dist/token/EvmWarpModule.d.ts +18 -1
  215. package/dist/token/EvmWarpModule.d.ts.map +1 -1
  216. package/dist/token/EvmWarpModule.hardhat-test.js +30 -0
  217. package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
  218. package/dist/token/EvmWarpModule.js +67 -5
  219. package/dist/token/EvmWarpModule.js.map +1 -1
  220. package/dist/token/EvmWarpModule.test.d.ts +2 -0
  221. package/dist/token/EvmWarpModule.test.d.ts.map +1 -0
  222. package/dist/token/EvmWarpModule.test.js +77 -0
  223. package/dist/token/EvmWarpModule.test.js.map +1 -0
  224. package/dist/token/EvmWarpRouteReader.d.ts +1 -0
  225. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  226. package/dist/token/EvmWarpRouteReader.js +17 -0
  227. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  228. package/dist/token/EvmXERC20Module.d.ts +31 -26
  229. package/dist/token/EvmXERC20Module.d.ts.map +1 -1
  230. package/dist/token/EvmXERC20Module.js +46 -3
  231. package/dist/token/EvmXERC20Module.js.map +1 -1
  232. package/dist/token/EvmXERC20Module.test.js +162 -1
  233. package/dist/token/EvmXERC20Module.test.js.map +1 -1
  234. package/dist/token/EvmXERC20Reader.d.ts +17 -0
  235. package/dist/token/EvmXERC20Reader.d.ts.map +1 -1
  236. package/dist/token/EvmXERC20Reader.js +37 -1
  237. package/dist/token/EvmXERC20Reader.js.map +1 -1
  238. package/dist/token/adapters/EvmHypSyntheticAdapter.test.d.ts +2 -0
  239. package/dist/token/adapters/EvmHypSyntheticAdapter.test.d.ts.map +1 -0
  240. package/dist/token/adapters/EvmHypSyntheticAdapter.test.js +96 -0
  241. package/dist/token/adapters/EvmHypSyntheticAdapter.test.js.map +1 -0
  242. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  243. package/dist/token/adapters/EvmTokenAdapter.js +25 -12
  244. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  245. package/dist/token/configUtils.test.js.map +1 -1
  246. package/dist/token/deploy.d.ts +1 -0
  247. package/dist/token/deploy.d.ts.map +1 -1
  248. package/dist/token/deploy.js +13 -0
  249. package/dist/token/deploy.js.map +1 -1
  250. package/dist/token/tokenMetadataUtils.d.ts.map +1 -1
  251. package/dist/token/tokenMetadataUtils.js +1 -0
  252. package/dist/token/tokenMetadataUtils.js.map +1 -1
  253. package/dist/token/types.d.ts +1373 -699
  254. package/dist/token/types.d.ts.map +1 -1
  255. package/dist/token/types.test.js +11 -0
  256. package/dist/token/types.test.js.map +1 -1
  257. package/dist/token/xerc20.d.ts.map +1 -1
  258. package/dist/token/xerc20.js +10 -2
  259. package/dist/token/xerc20.js.map +1 -1
  260. package/dist/token/xerc20.test.d.ts +2 -0
  261. package/dist/token/xerc20.test.d.ts.map +1 -0
  262. package/dist/token/xerc20.test.js +143 -0
  263. package/dist/token/xerc20.test.js.map +1 -0
  264. package/dist/utils/contract.d.ts +6 -0
  265. package/dist/utils/contract.d.ts.map +1 -1
  266. package/dist/utils/contract.js +11 -0
  267. package/dist/utils/contract.js.map +1 -1
  268. package/dist/utils/contract.test.js +2 -1
  269. package/dist/utils/contract.test.js.map +1 -1
  270. package/dist/utils/gas.d.ts +1 -0
  271. package/dist/utils/gas.d.ts.map +1 -1
  272. package/dist/utils/gas.js +1 -0
  273. package/dist/utils/gas.js.map +1 -1
  274. package/dist/utils/gnosisSafe.d.ts +4 -1
  275. package/dist/utils/gnosisSafe.d.ts.map +1 -1
  276. package/dist/utils/gnosisSafe.js +20 -7
  277. package/dist/utils/gnosisSafe.js.map +1 -1
  278. package/dist/utils/gnosisSafe.test.js +44 -1
  279. package/dist/utils/gnosisSafe.test.js.map +1 -1
  280. package/dist/utils/ism.d.ts.map +1 -1
  281. package/dist/utils/ism.js +4 -2
  282. package/dist/utils/ism.js.map +1 -1
  283. package/dist/warp/WarpCore.d.ts.map +1 -1
  284. package/dist/warp/WarpCore.js +4 -3
  285. package/dist/warp/WarpCore.js.map +1 -1
  286. package/package.json +14 -14
@@ -99,9 +99,9 @@ export class EvmWarpModule extends HyperlaneModule {
99
99
  * orphaned. See PredicateWrapperDeployer.deployAndConfigure for details.
100
100
  *
101
101
  * @param expectedConfig - The configuration for the token router to be updated.
102
- * @returns An array of Ethereum transactions that were executed to update the contract, or an error if the update failed.
102
+ * @returns `{txs, feeTxs, ownershipTxs}` main txs (includes router-owner `setFeeRecipient`), fee-contract-owner txs (safe to route to a dedicated feeSubmitter), and ownership/proxyAdmin txs that must execute last.
103
103
  */
104
- async update(expectedConfig, tokenReaderParams) {
104
+ async updateSplit(expectedConfig, tokenReaderParams) {
105
105
  HypTokenRouterConfigSchema.parse(expectedConfig);
106
106
  const actualConfig = await this.read();
107
107
  const transactions = [];
@@ -110,6 +110,16 @@ export class EvmWarpModule extends HyperlaneModule {
110
110
  const { module, config } = await EvmXERC20Module.fromWarpRouteConfig(this.multiProvider, this.chainName, expectedConfig, this.args.addresses.deployedTokenRoute);
111
111
  xerc20Txs = await module.update(config);
112
112
  }
113
+ const allFeeTxs = await this.createTokenFeeUpdateTxs(actualConfig, expectedConfig, tokenReaderParams);
114
+ // Split feeTxs by authority: setFeeRecipient targets the token router (router
115
+ // owner gated) while all other fee txs target the fee contract (fee-contract
116
+ // owner gated). Keeping them in the same bucket means a dedicated feeSubmitter
117
+ // (which owns the fee contract) would try to call setFeeRecipient — which reverts
118
+ // because it doesn't own the router. Router-owner txs go into the main batch;
119
+ // only fee-contract-owner txs are returned as feeTxs for the feeSubmitter.
120
+ const routerAddress = this.args.addresses.deployedTokenRoute.toLowerCase();
121
+ const routerOwnerFeeTxs = allFeeTxs.filter((tx) => tx.to?.toLowerCase() === routerAddress);
122
+ const feeTxs = allFeeTxs.filter((tx) => tx.to?.toLowerCase() !== routerAddress);
113
123
  /**
114
124
  * @remark
115
125
  * The order of operations matter
@@ -119,11 +129,31 @@ export class EvmWarpModule extends HyperlaneModule {
119
129
  * 3. createHookAndPredicateUpdateTxs() handles hook + predicate wrapper together so the
120
130
  * pending new hook address is threaded through without leaking into other method signatures
121
131
  */
122
- transactions.push(...(await this.upgradeWarpRouteImplementationTx(actualConfig, expectedConfig)), ...(await this.createIsmUpdateTxs(actualConfig, expectedConfig)), ...(await this.createHookAndPredicateUpdateTxs(actualConfig, expectedConfig)), ...(await this.createTokenFeeUpdateTxs(actualConfig, expectedConfig, tokenReaderParams)), ...this.createUnenrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createEnrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig),
132
+ transactions.push(...(await this.upgradeWarpRouteImplementationTx(actualConfig, expectedConfig)), ...(await this.createIsmUpdateTxs(actualConfig, expectedConfig)), ...(await this.createHookAndPredicateUpdateTxs(actualConfig, expectedConfig)), ...this.createFeeHookUpdateTxs(actualConfig, expectedConfig), ...this.createUnenrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createEnrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig),
123
133
  // MC unenroll before enroll for consistency with remote routers.
124
134
  // MC enrollment must come before gas setting so that MC-only domains
125
- ...this.createUnenrollCrossCollateralRoutersTxs(actualConfig, expectedConfig), ...this.createEnrollCrossCollateralRoutersTxs(actualConfig, expectedConfig), ...this.createSetDestinationGasUpdateTxs(actualConfig, expectedConfig), ...this.createAddRebalancersUpdateTxs(actualConfig, expectedConfig), ...this.createRemoveRebalancersUpdateTxs(actualConfig, expectedConfig), ...(await this.createAddAllowedBridgesUpdateTxs(actualConfig, expectedConfig)), ...this.createRemoveBridgesTxs(actualConfig, expectedConfig), ...this.createAddRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createRemoveRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createUpdateEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createRemoveEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createSetMaxFeePpmTxs(actualConfig, expectedConfig), ...xerc20Txs, ...this.createOwnershipUpdateTxs(actualConfig, expectedConfig), ...proxyAdminUpdateTxs(this.chainId, this.args.addresses.deployedTokenRoute, actualConfig, expectedConfig));
126
- return transactions;
135
+ ...this.createUnenrollCrossCollateralRoutersTxs(actualConfig, expectedConfig), ...this.createEnrollCrossCollateralRoutersTxs(actualConfig, expectedConfig), ...this.createSetDestinationGasUpdateTxs(actualConfig, expectedConfig), ...this.createAddRebalancersUpdateTxs(actualConfig, expectedConfig), ...this.createRemoveRebalancersUpdateTxs(actualConfig, expectedConfig), ...(await this.createAddAllowedBridgesUpdateTxs(actualConfig, expectedConfig)), ...this.createRemoveBridgesTxs(actualConfig, expectedConfig), ...this.createAddRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createRemoveRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createUpdateEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createRemoveEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createSetMaxFeePpmTxs(actualConfig, expectedConfig), ...xerc20Txs,
136
+ // Router-owner fee txs (setFeeRecipient) belong in the main batch so they
137
+ // always execute under the router owner's authority — even when a dedicated
138
+ // feeSubmitter is configured for fee-contract-owner txs.
139
+ ...routerOwnerFeeTxs);
140
+ // Ownership/proxyAdmin must always execute last; returned separately so callers
141
+ // can place feeTxs between main txs and ownership (see update() below).
142
+ const ownershipTxs = [
143
+ ...this.createOwnershipUpdateTxs(actualConfig, expectedConfig),
144
+ ...proxyAdminUpdateTxs(this.chainId, this.args.addresses.deployedTokenRoute, actualConfig, expectedConfig),
145
+ ];
146
+ return { txs: transactions, feeTxs, ownershipTxs };
147
+ }
148
+ /**
149
+ * Backwards-compatible wrapper around `updateSplit`. Returns a flat, ordered
150
+ * transaction array suitable for a single submitter.
151
+ */
152
+ async update(expectedConfig, tokenReaderParams) {
153
+ const { txs, feeTxs, ownershipTxs } = await this.updateSplit(expectedConfig, tokenReaderParams);
154
+ // feeTxs (fee-contract-owner calls) must come before ownershipTxs so they
155
+ // execute before the router owner changes.
156
+ return [...txs, ...feeTxs, ...ownershipTxs];
127
157
  }
128
158
  /**
129
159
  * Create a transaction to update the remote routers for the Warp Route contract.
@@ -849,12 +879,44 @@ export class EvmWarpModule extends HyperlaneModule {
849
879
  deploysNewWrapper: true,
850
880
  };
851
881
  }
882
+ createFeeHookUpdateTxs(actualConfig, expectedConfig) {
883
+ if (isOftTokenConfig(expectedConfig))
884
+ return [];
885
+ const expectedFeeHook = expectedConfig.feeHook;
886
+ const actualFeeHook = actualConfig.feeHook;
887
+ // No change needed
888
+ if (!expectedFeeHook && !actualFeeHook)
889
+ return [];
890
+ // Unset in expected config → leave the on-chain feeHook unchanged.
891
+ // Clearing an existing feeHook requires an explicit address(0) in the config.
892
+ if (!expectedFeeHook && actualFeeHook)
893
+ return [];
894
+ if (expectedFeeHook &&
895
+ actualFeeHook &&
896
+ eqAddress(expectedFeeHook, actualFeeHook))
897
+ return [];
898
+ const newFeeHook = expectedFeeHook ?? constants.AddressZero;
899
+ return [
900
+ {
901
+ chainId: this.chainId,
902
+ annotation: `Setting feeHook to ${newFeeHook}`,
903
+ to: this.args.addresses.deployedTokenRoute,
904
+ data: TokenRouter__factory.createInterface().encodeFunctionData('setFeeHook', [newFeeHook]),
905
+ },
906
+ ];
907
+ }
852
908
  /**
853
909
  * Create transactions to update token fee configuration.
854
910
  *
855
911
  * @param actualConfig - The on-chain router configuration.
856
912
  * @param expectedConfig - The expected token router configuration.
857
913
  * @returns Ethereum transactions that need to be executed to update the token fee.
914
+ *
915
+ * @remarks
916
+ * The returned transactions may include both `setFeeRecipient` (gated by the
917
+ * token-router owner) and fee-contract config calls (gated by the fee-contract
918
+ * owner). When routing these to a dedicated `feeSubmitter`, that submitter
919
+ * must own both the token router and the fee contract.
858
920
  */
859
921
  async createTokenFeeUpdateTxs(actualConfig, expectedConfig, tokenReaderParams) {
860
922
  if (!expectedConfig.tokenFee) {
@@ -1 +1 @@
1
- {"version":3,"file":"EvmWarpModule.js","sourceRoot":"","sources":["../../src/token/EvmWarpModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmWarpModule.js","sourceRoot":"","sources":["../../src/token/EvmWarpModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EvmWarpModule.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmWarpModule.test.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpModule.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { expect } from 'chai';
2
+ import sinon from 'sinon';
3
+ import { TestChainName } from '../consts/testChains.js';
4
+ import { MultiProvider } from '../providers/MultiProvider.js';
5
+ import { EvmWarpModule } from './EvmWarpModule.js';
6
+ import { EvmXERC20Module } from './EvmXERC20Module.js';
7
+ import { TokenType } from './config.js';
8
+ import { XERC20Type, } from './types.js';
9
+ const TOKEN_ADDRESS = '0x1111111111111111111111111111111111111111';
10
+ const MAILBOX_ADDRESS = '0x2222222222222222222222222222222222222222';
11
+ const OWNER_ADDRESS = '0x3333333333333333333333333333333333333333';
12
+ const ROUTER_ADDRESS = '0x4444444444444444444444444444444444444444';
13
+ // Sentinel thrown by the createTokenFeeUpdateTxs stub to short-circuit
14
+ // updateSplit immediately after the module.update() call, so the test does not
15
+ // need to stub the ~20 downstream create*UpdateTxs helpers.
16
+ class ShortCircuit extends Error {
17
+ }
18
+ describe('EvmWarpModule', () => {
19
+ let multiProvider;
20
+ let sandbox;
21
+ const xERC20Config = {
22
+ type: TokenType.XERC20,
23
+ token: TOKEN_ADDRESS,
24
+ mailbox: MAILBOX_ADDRESS,
25
+ owner: OWNER_ADDRESS,
26
+ xERC20: {
27
+ warpRouteLimits: {
28
+ type: XERC20Type.Standard,
29
+ mint: '1000000000000000000',
30
+ burn: '1000000000000000000',
31
+ },
32
+ },
33
+ };
34
+ beforeEach(() => {
35
+ multiProvider = MultiProvider.createTestMultiProvider();
36
+ sandbox = sinon.createSandbox();
37
+ });
38
+ afterEach(() => {
39
+ sandbox.restore();
40
+ });
41
+ // Locks the ownership gate at the real caller. updateSplit must invoke
42
+ // module.update(config) WITHOUT { includeOwnership: true }, so the warp
43
+ // apply/read path never emits XERC20 ownership-transfer txs. Asserting only at
44
+ // the EvmXERC20Module level would stay green if someone flipped this call site.
45
+ it('calls XERC20 module.update without includeOwnership from updateSplit', async () => {
46
+ const updateStub = sandbox
47
+ .stub(EvmXERC20Module.prototype, 'update')
48
+ .resolves([]);
49
+ // read() output is unused before the short-circuit; stub it to avoid network.
50
+ sandbox
51
+ .stub(EvmWarpModule.prototype, 'read')
52
+ // CAST: value is never inspected before createTokenFeeUpdateTxs throws.
53
+ .resolves({});
54
+ sandbox
55
+ .stub(EvmWarpModule.prototype, 'createTokenFeeUpdateTxs')
56
+ .rejects(new ShortCircuit());
57
+ const module = new EvmWarpModule(multiProvider,
58
+ // CAST: only deployedTokenRoute is read before the short-circuit; the
59
+ // proxy-factory addresses in WarpRouteAddresses are never touched.
60
+ {
61
+ chain: TestChainName.test1,
62
+ config: xERC20Config,
63
+ addresses: { deployedTokenRoute: ROUTER_ADDRESS },
64
+ });
65
+ try {
66
+ await module.updateSplit(xERC20Config);
67
+ expect.fail('expected updateSplit to short-circuit via ShortCircuit');
68
+ }
69
+ catch (error) {
70
+ expect(error).to.be.instanceOf(ShortCircuit);
71
+ }
72
+ expect(updateStub.calledOnce).to.equal(true);
73
+ expect(updateStub.firstCall.args).to.have.length(1);
74
+ expect(updateStub.firstCall.args[1]).to.equal(undefined);
75
+ });
76
+ });
77
+ //# sourceMappingURL=EvmWarpModule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmWarpModule.test.js","sourceRoot":"","sources":["../../src/token/EvmWarpModule.test.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ export declare class EvmWarpRouteReader extends EvmRouterReader {
44
44
  */
45
45
  private derivePredicateWrapperConfig;
46
46
  private findPredicateAddressInHook;
47
+ fetchFeeHook(routerAddress: Address): Promise<Address | undefined>;
47
48
  fetchTokenFee(routerAddress: Address, destinations?: number[], crossCollateralRouters?: Record<string, string[]>): Promise<DerivedTokenFeeConfig | undefined>;
48
49
  getContractVerificationStatus(chain: ChainName, address: Address): Promise<Record<string, ContractVerificationStatus>>;
49
50
  getOwnerStatus(chain: ChainName, address: Address): Promise<Record<string, OwnerStatus>>;
@@ -1 +1 @@
1
- {"version":3,"file":"EvmWarpRouteReader.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmWarpRouteReader.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.ts"],"names":[],"mappings":"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"}
@@ -162,6 +162,8 @@ export class EvmWarpRouteReader extends EvmRouterReader {
162
162
  const tokenFee = await this.fetchTokenFee(warpRouteAddress, feeDestinations.length ? feeDestinations : undefined, isCrossCollateralTokenConfig(tokenConfig)
163
163
  ? tokenConfig.crossCollateralRouters
164
164
  : undefined);
165
+ // Read feeHook (IGP address for ERC20 gas payments)
166
+ const feeHook = await this.fetchFeeHook(warpRouteAddress);
165
167
  // CCTP tokens implement their own ISM (the contract itself acts as the ISM via AbstractCcipReadIsm).
166
168
  // The ISM is hardcoded and not configurable, so we return zero address to match deploy config expectations.
167
169
  if (type === TokenType.collateralCctp &&
@@ -177,6 +179,7 @@ export class EvmWarpRouteReader extends EvmRouterReader {
177
179
  proxyAdmin,
178
180
  destinationGas,
179
181
  tokenFee,
182
+ feeHook,
180
183
  ...(predicateWrapper && { predicateWrapper }),
181
184
  };
182
185
  return derivedConfig;
@@ -240,6 +243,20 @@ export class EvmWarpRouteReader extends EvmRouterReader {
240
243
  }
241
244
  return undefined;
242
245
  }
246
+ async fetchFeeHook(routerAddress) {
247
+ try {
248
+ const router = TokenRouter__factory.connect(routerAddress, this.provider);
249
+ const feeHookAddress = await router.feeHook();
250
+ if (!isZeroishAddress(feeHookAddress)) {
251
+ return feeHookAddress;
252
+ }
253
+ }
254
+ catch (error) {
255
+ throwIfNotMissingSelector(error);
256
+ this.logger.debug(`Token at "${routerAddress}" on chain "${this.chain}" does not support feeHook`);
257
+ }
258
+ return undefined;
259
+ }
243
260
  async fetchTokenFee(routerAddress, destinations, crossCollateralRouters) {
244
261
  const TokenRouter = TokenRouter__factory.connect(routerAddress, this.provider);
245
262
  const [packageVersion, tokenFee] = await Promise.all([