@hyperlane-xyz/sdk 5.6.1 → 5.7.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 (127) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +119 -14
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/consts/multisigIsm.test.js +13 -0
  5. package/dist/consts/multisigIsm.test.js.map +1 -1
  6. package/dist/contracts/contracts.d.ts +3 -0
  7. package/dist/contracts/contracts.d.ts.map +1 -1
  8. package/dist/contracts/contracts.js +15 -1
  9. package/dist/contracts/contracts.js.map +1 -1
  10. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  11. package/dist/core/EvmCoreModule.js +2 -8
  12. package/dist/core/EvmCoreModule.js.map +1 -1
  13. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  14. package/dist/core/HyperlaneCore.js +5 -2
  15. package/dist/core/HyperlaneCore.js.map +1 -1
  16. package/dist/core/HyperlaneRelayer.d.ts +37 -32
  17. package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
  18. package/dist/core/HyperlaneRelayer.js +6 -6
  19. package/dist/core/HyperlaneRelayer.js.map +1 -1
  20. package/dist/core/schemas.d.ts +1007 -953
  21. package/dist/core/schemas.d.ts.map +1 -1
  22. package/dist/deploy/HyperlaneDeployer.d.ts +1 -0
  23. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  24. package/dist/deploy/HyperlaneDeployer.js +2 -2
  25. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  26. package/dist/deploy/types.d.ts +2 -1
  27. package/dist/deploy/types.d.ts.map +1 -1
  28. package/dist/deploy/types.js.map +1 -1
  29. package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -1
  30. package/dist/deploy/verify/PostDeploymentContractVerifier.js +1 -1
  31. package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -1
  32. package/dist/deploy/verify/utils.d.ts +36 -0
  33. package/dist/deploy/verify/utils.d.ts.map +1 -1
  34. package/dist/deploy/verify/utils.js +100 -1
  35. package/dist/deploy/verify/utils.js.map +1 -1
  36. package/dist/gas/token-prices.d.ts +7 -7
  37. package/dist/gas/token-prices.d.ts.map +1 -1
  38. package/dist/gas/token-prices.js +36 -32
  39. package/dist/gas/token-prices.js.map +1 -1
  40. package/dist/gas/utils.d.ts +38 -0
  41. package/dist/gas/utils.d.ts.map +1 -0
  42. package/dist/gas/utils.js +145 -0
  43. package/dist/gas/utils.js.map +1 -0
  44. package/dist/hook/EvmHookModule.d.ts +9 -4
  45. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  46. package/dist/hook/EvmHookModule.js +43 -81
  47. package/dist/hook/EvmHookModule.js.map +1 -1
  48. package/dist/hook/EvmHookReader.d.ts +3 -1
  49. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  50. package/dist/hook/EvmHookReader.js +9 -2
  51. package/dist/hook/EvmHookReader.js.map +1 -1
  52. package/dist/hook/schemas.d.ts +10 -4
  53. package/dist/hook/schemas.d.ts.map +1 -1
  54. package/dist/hook/schemas.js +1 -0
  55. package/dist/hook/schemas.js.map +1 -1
  56. package/dist/index.d.ts +5 -4
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +3 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/ism/EvmIsmModule.d.ts +5 -24
  61. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  62. package/dist/ism/EvmIsmModule.js +22 -222
  63. package/dist/ism/EvmIsmModule.js.map +1 -1
  64. package/dist/ism/EvmIsmReader.d.ts +3 -1
  65. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  66. package/dist/ism/EvmIsmReader.js +10 -4
  67. package/dist/ism/EvmIsmReader.js.map +1 -1
  68. package/dist/ism/HyperlaneIsmFactory.d.ts +17 -4
  69. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  70. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +0 -1
  71. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  72. package/dist/ism/HyperlaneIsmFactory.js +30 -17
  73. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  74. package/dist/ism/metadata/arbL2ToL1.hardhat-test.js +20 -5
  75. package/dist/ism/metadata/arbL2ToL1.hardhat-test.js.map +1 -1
  76. package/dist/metadata/agentConfig.d.ts +5 -5
  77. package/dist/metadata/warpRouteConfig.d.ts +10 -0
  78. package/dist/metadata/warpRouteConfig.d.ts.map +1 -1
  79. package/dist/metadata/warpRouteConfig.js +1 -0
  80. package/dist/metadata/warpRouteConfig.js.map +1 -1
  81. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  82. package/dist/middleware/account/InterchainAccount.js +4 -1
  83. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  84. package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -1
  85. package/dist/router/ProxiedRouterDeployer.js +10 -2
  86. package/dist/router/ProxiedRouterDeployer.js.map +1 -1
  87. package/dist/router/schemas.d.ts +155 -90
  88. package/dist/router/schemas.d.ts.map +1 -1
  89. package/dist/router/schemas.js +6 -1
  90. package/dist/router/schemas.js.map +1 -1
  91. package/dist/router/types.d.ts +2 -1
  92. package/dist/router/types.d.ts.map +1 -1
  93. package/dist/router/types.js.map +1 -1
  94. package/dist/schemas.d.ts +13 -0
  95. package/dist/schemas.d.ts.map +1 -1
  96. package/dist/schemas.js +3 -0
  97. package/dist/schemas.js.map +1 -1
  98. package/dist/token/EvmERC20WarpModule.d.ts +9 -0
  99. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  100. package/dist/token/EvmERC20WarpModule.hardhat-test.js +67 -2
  101. package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
  102. package/dist/token/EvmERC20WarpModule.js +61 -10
  103. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  104. package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -1
  105. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  106. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +0 -1
  107. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
  108. package/dist/token/EvmERC20WarpRouteReader.js +26 -1
  109. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  110. package/dist/token/IToken.d.ts +2 -2
  111. package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
  112. package/dist/token/adapters/SealevelTokenAdapter.js +2 -2
  113. package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
  114. package/dist/token/deploy.d.ts.map +1 -1
  115. package/dist/token/deploy.js +18 -7
  116. package/dist/token/deploy.js.map +1 -1
  117. package/dist/token/schemas.d.ts +206 -120
  118. package/dist/token/schemas.d.ts.map +1 -1
  119. package/dist/token/schemas.js +5 -1
  120. package/dist/token/schemas.js.map +1 -1
  121. package/dist/utils/cosmos.d.ts +12 -12
  122. package/dist/warp/types.d.ts +4 -4
  123. package/package.json +3 -3
  124. package/dist/deploy/EvmModuleDeployer.d.ts +0 -93
  125. package/dist/deploy/EvmModuleDeployer.d.ts.map +0 -1
  126. package/dist/deploy/EvmModuleDeployer.js +0 -187
  127. package/dist/deploy/EvmModuleDeployer.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ import { BigNumber } from 'ethers';
2
+ import { ChainMetadataManager } from '../metadata/ChainMetadataManager.js';
3
+ import { AgentCosmosGasPrice } from '../metadata/agentConfig.js';
4
+ import { ChainMetadata } from '../metadata/chainMetadataTypes.js';
5
+ import { MultiProtocolProvider } from '../providers/MultiProtocolProvider.js';
6
+ import { ChainMap, ChainName } from '../types.js';
7
+ import { StorageGasOracleConfig } from './oracle/types.js';
8
+ export interface GasPriceConfig {
9
+ amount: string;
10
+ decimals: number;
11
+ }
12
+ export interface NativeTokenPriceConfig {
13
+ price: string;
14
+ decimals: number;
15
+ }
16
+ export interface ChainGasOracleParams {
17
+ gasPrice: GasPriceConfig;
18
+ nativeToken: NativeTokenPriceConfig;
19
+ }
20
+ export declare function getGasPrice(mpp: MultiProtocolProvider, chain: string): Promise<GasPriceConfig>;
21
+ export declare function getCosmosChainGasPrice(chain: ChainName, chainMetadataManager: ChainMetadataManager): Promise<AgentCosmosGasPrice>;
22
+ export declare function getTokenExchangeRateFromValues({ local, remote, tokenPrices, exchangeRateMarginPct, decimals, }: {
23
+ local: ChainName;
24
+ remote: ChainName;
25
+ tokenPrices: ChainMap<string>;
26
+ exchangeRateMarginPct: number;
27
+ decimals: {
28
+ local: number;
29
+ remote: number;
30
+ };
31
+ }): BigNumber;
32
+ export declare function getLocalStorageGasOracleConfig({ local, gasOracleParams, exchangeRateMarginPct, }: {
33
+ local: ChainName;
34
+ gasOracleParams: ChainMap<ChainGasOracleParams>;
35
+ exchangeRateMarginPct: number;
36
+ }): ChainMap<StorageGasOracleConfig>;
37
+ export declare function getCoingeckoTokenPrices(chainMetadata: ChainMap<ChainMetadata>, currency?: string): Promise<ChainMap<string | undefined>>;
38
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/gas/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAQ3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,qBAAqB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAGD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,EAChB,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAiC9B;AAGD,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,EACL,MAAM,EACN,WAAW,EACX,qBAAqB,EACrB,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,GAAG,SAAS,CAsBZ;AAKD,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,EACL,eAAe,EACf,qBAAqB,GACtB,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAChD,qBAAqB,EAAE,MAAM,CAAC;CAC/B,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAgEnC;AAID,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,QAAQ,SAAQ,GACf,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CA2BvC"}
@@ -0,0 +1,145 @@
1
+ import { BigNumber, ethers } from 'ethers';
2
+ import { ProtocolType, convertDecimals, objMap } from '@hyperlane-xyz/utils';
3
+ import { TOKEN_EXCHANGE_RATE_DECIMALS, TOKEN_EXCHANGE_RATE_SCALE, } from '../consts/igp.js';
4
+ import { getCosmosRegistryChain } from '../utils/cosmos.js';
5
+ export async function getGasPrice(mpp, chain) {
6
+ const protocolType = mpp.getProtocol(chain);
7
+ switch (protocolType) {
8
+ case ProtocolType.Ethereum: {
9
+ const provider = mpp.getProvider(chain);
10
+ const gasPrice = await provider.provider.getGasPrice();
11
+ return {
12
+ amount: ethers.utils.formatUnits(gasPrice, 'gwei'),
13
+ decimals: 9,
14
+ };
15
+ }
16
+ case ProtocolType.Cosmos: {
17
+ const { amount } = await getCosmosChainGasPrice(chain, mpp);
18
+ return {
19
+ amount,
20
+ decimals: 1,
21
+ };
22
+ }
23
+ case ProtocolType.Sealevel:
24
+ // TODO get a reasonable value
25
+ return {
26
+ amount: '0.001',
27
+ decimals: 9,
28
+ };
29
+ default:
30
+ throw new Error(`Unsupported protocol type: ${protocolType}`);
31
+ }
32
+ }
33
+ // Gets the gas price for a Cosmos chain
34
+ export async function getCosmosChainGasPrice(chain, chainMetadataManager) {
35
+ const metadata = chainMetadataManager.getChainMetadata(chain);
36
+ if (!metadata) {
37
+ throw new Error(`No metadata found for Cosmos chain ${chain}`);
38
+ }
39
+ if (metadata.protocol !== ProtocolType.Cosmos) {
40
+ throw new Error(`Chain ${chain} is not a Cosmos chain`);
41
+ }
42
+ const cosmosRegistryChain = await getCosmosRegistryChain(chain);
43
+ const nativeToken = metadata.nativeToken;
44
+ if (!nativeToken) {
45
+ throw new Error(`No native token found for Cosmos chain ${chain}`);
46
+ }
47
+ if (!nativeToken.denom) {
48
+ throw new Error(`No denom found for native token on Cosmos chain ${chain}`);
49
+ }
50
+ const fee = cosmosRegistryChain.fees?.fee_tokens.find((fee) => {
51
+ return (fee.denom === nativeToken.denom || fee.denom === `u${nativeToken.denom}`);
52
+ });
53
+ if (!fee || fee.average_gas_price === undefined) {
54
+ throw new Error(`No gas price found for Cosmos chain ${chain}`);
55
+ }
56
+ return {
57
+ denom: fee.denom,
58
+ amount: fee.average_gas_price.toString(),
59
+ };
60
+ }
61
+ // Gets the exchange rate of the remote quoted in local tokens
62
+ export function getTokenExchangeRateFromValues({ local, remote, tokenPrices, exchangeRateMarginPct, decimals, }) {
63
+ // Workaround for chicken-egg dependency problem.
64
+ // We need to provide some default value here to satisfy the config on initial load,
65
+ // whilst knowing that it will get overwritten when a script actually gets run.
66
+ const defaultValue = '1';
67
+ const localValue = ethers.utils.parseUnits(tokenPrices[local] ?? defaultValue, TOKEN_EXCHANGE_RATE_DECIMALS);
68
+ const remoteValue = ethers.utils.parseUnits(tokenPrices[remote] ?? defaultValue, TOKEN_EXCHANGE_RATE_DECIMALS);
69
+ // This does not yet account for decimals!
70
+ let exchangeRate = remoteValue.mul(TOKEN_EXCHANGE_RATE_SCALE).div(localValue);
71
+ // Apply the premium
72
+ exchangeRate = exchangeRate.mul(100 + exchangeRateMarginPct).div(100);
73
+ return BigNumber.from(convertDecimals(decimals.remote, decimals.local, exchangeRate.toString()));
74
+ }
75
+ // Gets the StorageGasOracleConfig for each remote chain for a particular local chain.
76
+ // Accommodates small non-integer gas prices by scaling up the gas price
77
+ // and scaling down the exchange rate by the same factor.
78
+ export function getLocalStorageGasOracleConfig({ local, gasOracleParams, exchangeRateMarginPct, }) {
79
+ const remotes = Object.keys(gasOracleParams).filter((remote) => remote !== local);
80
+ const tokenPrices = objMap(gasOracleParams, (chain) => gasOracleParams[chain].nativeToken.price);
81
+ const localDecimals = gasOracleParams[local].nativeToken.decimals;
82
+ return remotes.reduce((agg, remote) => {
83
+ const remoteDecimals = gasOracleParams[remote].nativeToken.decimals;
84
+ let exchangeRate = getTokenExchangeRateFromValues({
85
+ local,
86
+ remote,
87
+ tokenPrices,
88
+ exchangeRateMarginPct,
89
+ decimals: { local: localDecimals, remote: remoteDecimals },
90
+ });
91
+ // First parse as a number, so we have floating point precision.
92
+ // Recall it's possible to have gas prices that are not integers, even
93
+ // after converting to the "wei" version of the token.
94
+ let gasPrice = parseFloat(gasOracleParams[remote].gasPrice.amount) *
95
+ Math.pow(10, gasOracleParams[remote].gasPrice.decimals);
96
+ if (isNaN(gasPrice)) {
97
+ throw new Error(`Invalid gas price for chain ${remote}: ${gasOracleParams[remote].gasPrice.amount}`);
98
+ }
99
+ // We have very little precision and ultimately need an integer value for
100
+ // the gas price that will be set on-chain. We scale up the gas price and
101
+ // scale down the exchange rate by the same factor.
102
+ if (gasPrice < 10 && gasPrice % 1 !== 0) {
103
+ // Scale up the gas price by 1e4
104
+ const gasPriceScalingFactor = 1e4;
105
+ // Check that there's no significant underflow when applying
106
+ // this to the exchange rate:
107
+ const adjustedExchangeRate = exchangeRate.div(gasPriceScalingFactor);
108
+ const recoveredExchangeRate = adjustedExchangeRate.mul(gasPriceScalingFactor);
109
+ if (recoveredExchangeRate.mul(100).div(exchangeRate).lt(99)) {
110
+ throw new Error('Too much underflow when downscaling exchange rate');
111
+ }
112
+ // Apply the scaling factor
113
+ exchangeRate = adjustedExchangeRate;
114
+ gasPrice *= gasPriceScalingFactor;
115
+ }
116
+ // Our integer gas price.
117
+ const gasPriceBn = BigNumber.from(Math.ceil(gasPrice));
118
+ return {
119
+ ...agg,
120
+ [remote]: {
121
+ tokenExchangeRate: exchangeRate.toString(),
122
+ gasPrice: gasPriceBn.toString(),
123
+ },
124
+ };
125
+ }, {});
126
+ }
127
+ const COINGECKO_PRICE_API = 'https://api.coingecko.com/api/v3/simple/price';
128
+ export async function getCoingeckoTokenPrices(chainMetadata, currency = 'usd') {
129
+ const ids = objMap(chainMetadata, (_, metadata) => metadata.gasCurrencyCoinGeckoId ?? metadata.name);
130
+ const resp = await fetch(`${COINGECKO_PRICE_API}?ids=${Object.entries(ids).join(',')}&vs_currencies=${currency}`);
131
+ const idPrices = await resp.json();
132
+ const prices = objMap(ids, (chain, id) => {
133
+ const idData = idPrices[id];
134
+ if (!idData) {
135
+ return undefined;
136
+ }
137
+ const price = idData[currency];
138
+ if (!price) {
139
+ return undefined;
140
+ }
141
+ return price.toString();
142
+ });
143
+ return prices;
144
+ }
145
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/gas/utils.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,14 @@ import { Address, ProtocolType } from '@hyperlane-xyz/utils';
4
4
  import { HyperlaneAddresses } from '../contracts/types.js';
5
5
  import { HyperlaneModule, HyperlaneModuleParams } from '../core/AbstractHyperlaneModule.js';
6
6
  import { CoreAddresses } from '../core/contracts.js';
7
- import { EvmModuleDeployer } from '../deploy/EvmModuleDeployer.js';
7
+ import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer.js';
8
8
  import { ProxyFactoryFactories } from '../deploy/contracts.js';
9
9
  import { ContractVerifier } from '../deploy/verify/ContractVerifier.js';
10
- import { IgpFactories } from '../gas/contracts.js';
11
10
  import { IgpConfig } from '../gas/types.js';
11
+ import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
12
12
  import { MultiProvider } from '../providers/MultiProvider.js';
13
13
  import { AnnotatedEV5Transaction } from '../providers/ProviderType.js';
14
- import { ChainNameOrId } from '../types.js';
14
+ import { ChainName, ChainNameOrId } from '../types.js';
15
15
  import { EvmHookReader } from './EvmHookReader.js';
16
16
  import { DeployedHook, HookFactories } from './contracts.js';
17
17
  import { AggregationHookConfig, ArbL2ToL1HookConfig, DomainRoutingHookConfig, FallbackRoutingHookConfig, HookConfig, IgpHookConfig, OpStackHookConfig, PausableHookConfig, ProtocolFeeHookConfig } from './types.js';
@@ -20,12 +20,17 @@ type HookModuleAddresses = {
20
20
  mailbox: Address;
21
21
  proxyAdmin: Address;
22
22
  };
23
+ declare class HookDeployer extends HyperlaneDeployer<{}, HookFactories> {
24
+ protected cachingEnabled: boolean;
25
+ deployContracts(_chain: ChainName, _config: {}): Promise<any>;
26
+ }
23
27
  export declare class EvmHookModule extends HyperlaneModule<ProtocolType.Ethereum, HookConfig, HyperlaneAddresses<ProxyFactoryFactories> & HookModuleAddresses> {
24
28
  protected readonly multiProvider: MultiProvider;
25
29
  protected readonly contractVerifier?: ContractVerifier | undefined;
26
30
  protected readonly logger: import("pino").default.Logger<never>;
27
31
  protected readonly reader: EvmHookReader;
28
- protected readonly deployer: EvmModuleDeployer<HookFactories & IgpFactories>;
32
+ protected readonly hookFactory: HyperlaneIsmFactory;
33
+ protected readonly deployer: HookDeployer;
29
34
  readonly chain: string;
30
35
  readonly domainId: number;
31
36
  protected readonly txOverrides: Partial<ethers.providers.TransactionRequest>;
@@ -1 +1 @@
1
- {"version":3,"file":"EvmHookModule.d.ts","sourceRoot":"","sources":["../../src/hook/EvmHookModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmHookModule.d.ts","sourceRoot":"","sources":["../../src/hook/EvmHookModule.ts"],"names":[],"mappings":"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"}
@@ -4,20 +4,28 @@ import { ArbL2ToL1Ism__factory, DomainRoutingHook__factory, IL1CrossDomainMessen
4
4
  import { addressToBytes32, deepEquals, eqAddress, rootLogger, } from '@hyperlane-xyz/utils';
5
5
  import { TOKEN_EXCHANGE_RATE_SCALE } from '../consts/igp.js';
6
6
  import { HyperlaneModule, } from '../core/AbstractHyperlaneModule.js';
7
- import { EvmModuleDeployer } from '../deploy/EvmModuleDeployer.js';
8
- import { igpFactories } from '../gas/contracts.js';
7
+ import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer.js';
9
8
  import { EvmIsmModule } from '../ism/EvmIsmModule.js';
9
+ import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
10
10
  import { IsmType } from '../ism/types.js';
11
11
  import { normalizeConfig } from '../utils/ism.js';
12
12
  import { EvmHookReader } from './EvmHookReader.js';
13
13
  import { hookFactories } from './contracts.js';
14
14
  import { HookConfigSchema } from './schemas.js';
15
15
  import { HookType, MUTABLE_HOOK_TYPE, } from './types.js';
16
+ class HookDeployer extends HyperlaneDeployer {
17
+ cachingEnabled = false;
18
+ deployContracts(_chain, _config) {
19
+ throw new Error('Method not implemented.');
20
+ }
21
+ }
16
22
  export class EvmHookModule extends HyperlaneModule {
17
23
  multiProvider;
18
24
  contractVerifier;
19
25
  logger = rootLogger.child({ module: 'EvmHookModule' });
20
26
  reader;
27
+ // "ISM" Factory has aggregation hook factories too
28
+ hookFactory;
21
29
  deployer;
22
30
  // Adding these to reduce how often we need to grab from MultiProvider.
23
31
  chain;
@@ -32,10 +40,8 @@ export class EvmHookModule extends HyperlaneModule {
32
40
  this.multiProvider = multiProvider;
33
41
  this.contractVerifier = contractVerifier;
34
42
  this.reader = new EvmHookReader(multiProvider, this.args.chain);
35
- this.deployer = new EvmModuleDeployer(multiProvider, {
36
- ...hookFactories,
37
- ...igpFactories,
38
- }, this.logger, contractVerifier);
43
+ this.hookFactory = HyperlaneIsmFactory.fromAddressesMap({ [this.args.chain]: params.addresses }, multiProvider);
44
+ this.deployer = new HookDeployer(multiProvider, hookFactories);
39
45
  this.chain = this.multiProvider.getChainName(this.args.chain);
40
46
  this.domainId = this.multiProvider.getDomainId(this.chain);
41
47
  this.txOverrides = this.multiProvider.getTransactionOverrides(this.chain);
@@ -354,11 +360,9 @@ export class EvmHookModule extends HyperlaneModule {
354
360
  }
355
361
  switch (config.type) {
356
362
  case HookType.MERKLE_TREE:
357
- return this.deployer.deployContract({
358
- chain: this.chain,
359
- contractKey: HookType.MERKLE_TREE,
360
- constructorArgs: [this.args.addresses.mailbox],
361
- });
363
+ return this.deployer.deployContract(this.chain, HookType.MERKLE_TREE, [
364
+ this.args.addresses.mailbox,
365
+ ]);
362
366
  case HookType.INTERCHAIN_GAS_PAYMASTER:
363
367
  return this.deployIgpHook({ config });
364
368
  case HookType.AGGREGATION:
@@ -381,24 +385,18 @@ export class EvmHookModule extends HyperlaneModule {
381
385
  }
382
386
  async deployProtocolFeeHook({ config, }) {
383
387
  this.logger.debug('Deploying ProtocolFeeHook...');
384
- return this.deployer.deployContract({
385
- chain: this.chain,
386
- contractKey: HookType.PROTOCOL_FEE,
387
- constructorArgs: [
388
- config.maxProtocolFee,
389
- config.protocolFee,
390
- config.beneficiary,
391
- config.owner,
392
- ],
393
- });
388
+ const deployer = new HookDeployer(this.multiProvider, hookFactories);
389
+ return deployer.deployContract(this.chain, HookType.PROTOCOL_FEE, [
390
+ config.maxProtocolFee,
391
+ config.protocolFee,
392
+ config.beneficiary,
393
+ config.owner,
394
+ ]);
394
395
  }
395
396
  async deployPausableHook({ config, }) {
396
397
  this.logger.debug('Deploying PausableHook...');
397
- const hook = await this.deployer.deployContract({
398
- chain: this.chain,
399
- contractKey: HookType.PAUSABLE,
400
- constructorArgs: [],
401
- });
398
+ const deployer = new HookDeployer(this.multiProvider, hookFactories);
399
+ const hook = await deployer.deployContract(this.chain, HookType.PAUSABLE, []);
402
400
  // transfer ownership
403
401
  await this.multiProvider.handleTx(this.chain, hook.transferOwnership(config.owner, this.txOverrides));
404
402
  return hook;
@@ -415,13 +413,7 @@ export class EvmHookModule extends HyperlaneModule {
415
413
  this.logger.debug(`Deploying aggregation hook of type ${config.hooks.map((h) => typeof h === 'string' ? h : h.type)}...`);
416
414
  const signer = this.multiProvider.getSigner(this.chain);
417
415
  const factory = StaticAggregationHookFactory__factory.connect(this.args.addresses.staticAggregationHookFactory, signer);
418
- const address = await EvmModuleDeployer.deployStaticAddressSet({
419
- chain: this.chain,
420
- factory,
421
- values: aggregatedHooks,
422
- logger: this.logger,
423
- multiProvider: this.multiProvider,
424
- });
416
+ const address = await this.hookFactory.deployStaticAddressSet(this.chain, factory, aggregatedHooks, this.logger);
425
417
  // return aggregation hook
426
418
  return StaticAggregationHook__factory.connect(address, signer);
427
419
  }
@@ -451,16 +443,12 @@ export class EvmHookModule extends HyperlaneModule {
451
443
  // connect to ISM
452
444
  const opstackIsm = OPStackIsm__factory.connect(opStackIsmAddress, this.multiProvider.getSignerOrProvider(config.destinationChain));
453
445
  // deploy opstack hook
454
- const hook = await this.deployer.deployContract({
455
- chain,
456
- contractKey: HookType.OP_STACK,
457
- constructorArgs: [
458
- mailbox,
459
- this.multiProvider.getDomainId(config.destinationChain),
460
- addressToBytes32(opstackIsm.address),
461
- config.nativeBridge,
462
- ],
463
- });
446
+ const hook = await this.deployer.deployContract(chain, HookType.OP_STACK, [
447
+ mailbox,
448
+ this.multiProvider.getDomainId(config.destinationChain),
449
+ addressToBytes32(opstackIsm.address),
450
+ config.nativeBridge,
451
+ ]);
464
452
  // set authorized hook on opstack ism
465
453
  const authorizedHook = await opstackIsm.authorizedHook();
466
454
  if (authorizedHook === addressToBytes32(hook.address)) {
@@ -499,18 +487,15 @@ export class EvmHookModule extends HyperlaneModule {
499
487
  })).serialize().deployedIsm;
500
488
  // connect to ISM
501
489
  const arbL2ToL1Ism = ArbL2ToL1Ism__factory.connect(arbL2ToL1IsmAddress, this.multiProvider.getSignerOrProvider(config.destinationChain));
490
+ const childHook = await this.deploy({ config: config.childHook });
502
491
  // deploy arbL1ToL1 hook
503
- const hook = await this.deployer.deployContract({
504
- chain,
505
- contractKey: HookType.ARB_L2_TO_L1,
506
- constructorArgs: [
507
- mailbox,
508
- this.multiProvider.getDomainId(config.destinationChain),
509
- addressToBytes32(arbL2ToL1IsmAddress),
510
- config.arbSys,
511
- BigNumber.from(200000), // 2x estimate of executeTransaction call overhead
512
- ],
513
- });
492
+ const hook = await this.deployer.deployContract(chain, HookType.ARB_L2_TO_L1, [
493
+ mailbox,
494
+ this.multiProvider.getDomainId(config.destinationChain),
495
+ addressToBytes32(arbL2ToL1IsmAddress),
496
+ config.arbSys,
497
+ childHook.address,
498
+ ]);
514
499
  // set authorized hook on arbL2ToL1 ism
515
500
  const authorizedHook = await arbL2ToL1Ism.authorizedHook();
516
501
  if (authorizedHook === addressToBytes32(hook.address)) {
@@ -534,23 +519,11 @@ export class EvmHookModule extends HyperlaneModule {
534
519
  // deploy fallback hook
535
520
  const fallbackHook = await this.deploy({ config: config.fallback });
536
521
  // deploy routing hook with fallback
537
- routingHook = await this.deployer.deployContract({
538
- chain: this.chain,
539
- contractKey: HookType.FALLBACK_ROUTING,
540
- constructorArgs: [
541
- this.args.addresses.mailbox,
542
- deployerAddress,
543
- fallbackHook.address,
544
- ],
545
- });
522
+ routingHook = await this.deployer.deployContract(this.chain, HookType.FALLBACK_ROUTING, [this.args.addresses.mailbox, deployerAddress, fallbackHook.address]);
546
523
  }
547
524
  else {
548
525
  // deploy routing hook
549
- routingHook = await this.deployer.deployContract({
550
- chain: this.chain,
551
- contractKey: HookType.ROUTING,
552
- constructorArgs: [this.args.addresses.mailbox, deployerAddress],
553
- });
526
+ routingHook = await this.deployer.deployContract(this.chain, HookType.ROUTING, [this.args.addresses.mailbox, deployerAddress]);
554
527
  }
555
528
  // compute the hooks that need to be set
556
529
  const hooksToSet = await this.computeRoutingHooksToSet({
@@ -581,14 +554,7 @@ export class EvmHookModule extends HyperlaneModule {
581
554
  // Set the deployer as the owner of the IGP for configuration purposes
582
555
  const deployerAddress = await this.multiProvider.getSignerAddress(this.chain);
583
556
  // Deploy the InterchainGasPaymaster
584
- const igp = await this.deployer.deployProxiedContract({
585
- chain: this.chain,
586
- contractKey: HookType.INTERCHAIN_GAS_PAYMASTER,
587
- contractName: HookType.INTERCHAIN_GAS_PAYMASTER,
588
- proxyAdmin: this.args.addresses.proxyAdmin,
589
- constructorArgs: [],
590
- initializeArgs: [deployerAddress, config.beneficiary],
591
- });
557
+ const igp = await this.deployer.deployProxiedContract(this.chain, HookType.INTERCHAIN_GAS_PAYMASTER, HookType.INTERCHAIN_GAS_PAYMASTER, this.args.addresses.proxyAdmin, [], [deployerAddress, config.beneficiary]);
592
558
  // Obtain the transactions to set the gas params for each remote
593
559
  const configureTxs = await this.updateIgpRemoteGasParams({
594
560
  interchainGasPaymaster: igp.address,
@@ -605,11 +571,7 @@ export class EvmHookModule extends HyperlaneModule {
605
571
  }
606
572
  async deployStorageGasOracle({ config, }) {
607
573
  // Deploy the StorageGasOracle, by default msg.sender is the owner
608
- const gasOracle = await this.deployer.deployContract({
609
- chain: this.chain,
610
- contractKey: 'storageGasOracle',
611
- constructorArgs: [],
612
- });
574
+ const gasOracle = await this.deployer.deployContractFromFactory(this.chain, new StorageGasOracle__factory(), 'storageGasOracle', []);
613
575
  // Obtain the transactions to set the gas params for each remote
614
576
  const configureTxs = await this.updateStorageGasOracle({
615
577
  gasOracle: gasOracle.address,
@@ -1 +1 @@
1
- {"version":3,"file":"EvmHookModule.js","sourceRoot":"","sources":["../../src/hook/EvmHookModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmHookModule.js","sourceRoot":"","sources":["../../src/hook/EvmHookModule.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Address, WithAddress } from '@hyperlane-xyz/utils';
2
+ import { DispatchedMessage } from '../core/types.js';
2
3
  import { MultiProvider } from '../providers/MultiProvider.js';
3
4
  import { ChainNameOrId } from '../types.js';
4
5
  import { HyperlaneReader } from '../utils/HyperlaneReader.js';
@@ -21,6 +22,7 @@ export declare class EvmHookReader extends HyperlaneReader implements HookReader
21
22
  protected readonly multiProvider: MultiProvider;
22
23
  protected readonly chain: ChainNameOrId;
23
24
  protected readonly concurrency: number;
25
+ protected readonly messageContext?: DispatchedMessage | undefined;
24
26
  protected readonly logger: import("pino").default.Logger<never>;
25
27
  /**
26
28
  * HookConfig cache for already retrieved configs. Useful to avoid recomputing configs
@@ -28,7 +30,7 @@ export declare class EvmHookReader extends HyperlaneReader implements HookReader
28
30
  * the specific hook methods.
29
31
  */
30
32
  private _cache;
31
- constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number);
33
+ constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number, messageContext?: DispatchedMessage | undefined);
32
34
  deriveHookConfig(address: Address): Promise<DerivedHookConfig>;
33
35
  deriveMerkleTreeConfig(address: Address): Promise<WithAddress<MerkleTreeHookConfig>>;
34
36
  deriveAggregationConfig(address: Address): Promise<WithAddress<AggregationHookConfig>>;
@@ -1 +1 @@
1
- {"version":3,"file":"EvmHookReader.d.ts","sourceRoot":"","sources":["../../src/hook/EvmHookReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmHookReader.d.ts","sourceRoot":"","sources":["../../src/hook/EvmHookReader.ts"],"names":[],"mappings":"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"}