@hyperlane-xyz/sdk 4.2.0-beta1 → 5.0.0-beta.1

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 (88) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +12 -0
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/core/AbstractHyperlaneModule.d.ts +17 -2
  5. package/dist/core/AbstractHyperlaneModule.d.ts.map +1 -1
  6. package/dist/core/AbstractHyperlaneModule.js +25 -0
  7. package/dist/core/AbstractHyperlaneModule.js.map +1 -1
  8. package/dist/core/EvmCoreModule.d.ts +40 -12
  9. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  10. package/dist/core/EvmCoreModule.hardhat-test.js +109 -3
  11. package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
  12. package/dist/core/EvmCoreModule.js +91 -4
  13. package/dist/core/EvmCoreModule.js.map +1 -1
  14. package/dist/core/schemas.d.ts +148 -106
  15. package/dist/core/schemas.d.ts.map +1 -1
  16. package/dist/core/schemas.js +11 -0
  17. package/dist/core/schemas.js.map +1 -1
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/providers/SmartProvider/SmartProvider.d.ts +2 -1
  23. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  24. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +39 -2
  25. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
  26. package/dist/providers/SmartProvider/SmartProvider.js +22 -6
  27. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  28. package/dist/token/EvmERC20WarpModule.d.ts +5 -5
  29. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  30. package/dist/token/EvmERC20WarpModule.js +14 -20
  31. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  32. package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
  33. package/dist/token/adapters/CosmosTokenAdapter.js +1 -2
  34. package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
  35. package/dist/utils/cosmos.d.ts +1879 -276
  36. package/dist/utils/cosmos.d.ts.map +1 -1
  37. package/dist/utils/cosmos.js +3 -2
  38. package/dist/utils/cosmos.js.map +1 -1
  39. package/package.json +7 -9
  40. package/logos/black/arbitrum.svg +0 -1
  41. package/logos/black/avalanche.svg +0 -1
  42. package/logos/black/base.svg +0 -1
  43. package/logos/black/bsc.svg +0 -1
  44. package/logos/black/celo.svg +0 -1
  45. package/logos/black/cosmos.svg +0 -1
  46. package/logos/black/cosmwasm.svg +0 -1
  47. package/logos/black/eclipse.svg +0 -3
  48. package/logos/black/ethereum.svg +0 -8
  49. package/logos/black/gnosis.svg +0 -1
  50. package/logos/black/hyperlane.svg +0 -1
  51. package/logos/black/inevm.svg +0 -1
  52. package/logos/black/injective.svg +0 -1
  53. package/logos/black/manta.svg +0 -1
  54. package/logos/black/moonbeam.svg +0 -3
  55. package/logos/black/nautilus.svg +0 -1
  56. package/logos/black/near.svg +0 -1
  57. package/logos/black/neutron.svg +0 -1
  58. package/logos/black/optimism.svg +0 -1
  59. package/logos/black/plume.svg +0 -24
  60. package/logos/black/polygon.svg +0 -1
  61. package/logos/black/polygonzkevm.svg +0 -1
  62. package/logos/black/scroll.svg +0 -1
  63. package/logos/black/solana.svg +0 -1
  64. package/logos/black/viction.svg +0 -1
  65. package/logos/color/arbitrum.svg +0 -1
  66. package/logos/color/avalanche.svg +0 -1
  67. package/logos/color/base.svg +0 -1
  68. package/logos/color/bsc.svg +0 -1
  69. package/logos/color/celo.svg +0 -1
  70. package/logos/color/cosmos.svg +0 -1
  71. package/logos/color/cosmwasm.svg +0 -1
  72. package/logos/color/eclipse.svg +0 -3
  73. package/logos/color/ethereum.svg +0 -1
  74. package/logos/color/gnosis.svg +0 -1
  75. package/logos/color/hyperlane.svg +0 -1
  76. package/logos/color/inevm.svg +0 -1
  77. package/logos/color/injective.svg +0 -1
  78. package/logos/color/manta.svg +0 -1
  79. package/logos/color/moonbeam.svg +0 -1
  80. package/logos/color/nautilus.svg +0 -1
  81. package/logos/color/neutron.svg +0 -1
  82. package/logos/color/optimism.svg +0 -1
  83. package/logos/color/plume.svg +0 -24
  84. package/logos/color/polygon.svg +0 -1
  85. package/logos/color/polygonzkevm.svg +0 -1
  86. package/logos/color/scroll.svg +0 -1
  87. package/logos/color/solana.svg +0 -1
  88. package/logos/color/viction.svg +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"multisigIsm.d.ts","sourceRoot":"","sources":["../../src/consts/multisigIsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CA8Y3D,CAAC"}
1
+ {"version":3,"file":"multisigIsm.d.ts","sourceRoot":"","sources":["../../src/consts/multisigIsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CA6Z3D,CAAC"}
@@ -87,6 +87,10 @@ export const defaultMultisigConfigs = {
87
87
  '0x5450447aee7b544c462c9352bef7cad049b0c2dc', // zeeprime
88
88
  ],
89
89
  },
90
+ cheesechain: {
91
+ threshold: 1,
92
+ validators: ['0x478fb53c6860ae8fc35235ba0d38d49b13128226'],
93
+ },
90
94
  chiado: {
91
95
  threshold: 2,
92
96
  validators: [
@@ -337,6 +341,14 @@ export const defaultMultisigConfigs = {
337
341
  '0x1f87c368f8e05a85ef9126d984a980a20930cb9c',
338
342
  ],
339
343
  },
344
+ worldchain: {
345
+ threshold: 1,
346
+ validators: ['0x31048785845325b22817448b68d08f8a8fe36854'],
347
+ },
348
+ xlayer: {
349
+ threshold: 1,
350
+ validators: ['0xa2ae7c594703e988f23d97220717c513db638ea3'],
351
+ },
340
352
  zetachain: {
341
353
  threshold: 2,
342
354
  validators: [
@@ -1 +1 @@
1
- {"version":3,"file":"multisigIsm.js","sourceRoot":"","sources":["../../src/consts/multisigIsm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multisigIsm.js","sourceRoot":"","sources":["../../src/consts/multisigIsm.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Logger } from 'pino';
2
- import { Annotated, ProtocolType } from '@hyperlane-xyz/utils';
3
- import { ProtocolTypedTransaction } from '../providers/ProviderType.js';
2
+ import { Address, Annotated, ProtocolType } from '@hyperlane-xyz/utils';
3
+ import { AnnotatedEV5Transaction, ProtocolTypedTransaction } from '../providers/ProviderType.js';
4
4
  import { ChainNameOrId } from '../types.js';
5
5
  export type HyperlaneModuleParams<TConfig, TAddressMap extends Record<string, any>> = {
6
6
  addresses: TAddressMap;
@@ -14,5 +14,20 @@ export declare abstract class HyperlaneModule<TProtocol extends ProtocolType, TC
14
14
  serialize(): TAddressMap;
15
15
  abstract read(): Promise<TConfig>;
16
16
  abstract update(config: TConfig): Promise<Annotated<ProtocolTypedTransaction<TProtocol>['transaction'][]>>;
17
+ /**
18
+ * Transfers ownership of a contract to a new owner.
19
+ *
20
+ * @param actualOwner - The current owner of the contract.
21
+ * @param expectedOwner - The expected new owner of the contract.
22
+ * @param deployedAddress - The address of the deployed contract.
23
+ * @param chainId - The chain ID of the network the contract is deployed on.
24
+ * @returns An array of annotated EV5 transactions that need to be executed to update the owner.
25
+ */
26
+ static createTransferOwnershipTx(params: {
27
+ actualOwner: Address;
28
+ expectedOwner: Address;
29
+ deployedAddress: Address;
30
+ chainId: number;
31
+ }): AnnotatedEV5Transaction[];
17
32
  }
18
33
  //# sourceMappingURL=AbstractHyperlaneModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractHyperlaneModule.d.ts","sourceRoot":"","sources":["../../src/core/AbstractHyperlaneModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,qBAAqB,CAC/B,OAAO,EACP,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACrC;IACF,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,eAAe,CACnC,SAAS,SAAS,YAAY,EAC9B,OAAO,EACP,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKrC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC;IAHtE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAE3C,SAAS,aACY,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC;IAG/D,SAAS,IAAI,WAAW;aAIf,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;aACxB,MAAM,CACpB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;CAU5E"}
1
+ {"version":3,"file":"AbstractHyperlaneModule.d.ts","sourceRoot":"","sources":["../../src/core/AbstractHyperlaneModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG9B,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,qBAAqB,CAC/B,OAAO,EACP,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACrC;IACF,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,eAAe,CACnC,SAAS,SAAS,YAAY,EAC9B,OAAO,EACP,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKrC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC;IAHtE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAE3C,SAAS,aACY,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC;IAG/D,SAAS,IAAI,WAAW;aAIf,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;aACxB,MAAM,CACpB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAE3E;;;;;;;;OAQG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE;QACvC,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,eAAe,EAAE,OAAO,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,uBAAuB,EAAE;CA4B9B"}
@@ -1,3 +1,5 @@
1
+ import { Ownable__factory } from '@hyperlane-xyz/core';
2
+ import { eqAddress, } from '@hyperlane-xyz/utils';
1
3
  export class HyperlaneModule {
2
4
  args;
3
5
  constructor(args) {
@@ -6,5 +8,28 @@ export class HyperlaneModule {
6
8
  serialize() {
7
9
  return this.args.addresses;
8
10
  }
11
+ /**
12
+ * Transfers ownership of a contract to a new owner.
13
+ *
14
+ * @param actualOwner - The current owner of the contract.
15
+ * @param expectedOwner - The expected new owner of the contract.
16
+ * @param deployedAddress - The address of the deployed contract.
17
+ * @param chainId - The chain ID of the network the contract is deployed on.
18
+ * @returns An array of annotated EV5 transactions that need to be executed to update the owner.
19
+ */
20
+ static createTransferOwnershipTx(params) {
21
+ const { actualOwner, expectedOwner, deployedAddress, chainId } = params;
22
+ const updateTransactions = [];
23
+ if (eqAddress(actualOwner, expectedOwner)) {
24
+ return [];
25
+ }
26
+ updateTransactions.push({
27
+ annotation: `Transferring ownership of ${deployedAddress} from current owner ${actualOwner} to new owner ${expectedOwner}`,
28
+ chainId,
29
+ to: deployedAddress,
30
+ data: Ownable__factory.createInterface().encodeFunctionData('transferOwnership(address)', [expectedOwner]),
31
+ });
32
+ return updateTransactions;
33
+ }
9
34
  }
10
35
  //# sourceMappingURL=AbstractHyperlaneModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractHyperlaneModule.js","sourceRoot":"","sources":["../../src/core/AbstractHyperlaneModule.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAgB,eAAe;IAQd;IADrB,YACqB,IAAiD;QAAjD,SAAI,GAAJ,IAAI,CAA6C;IACnE,CAAC;IAEG,SAAS;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;CAeF"}
1
+ {"version":3,"file":"AbstractHyperlaneModule.js","sourceRoot":"","sources":["../../src/core/AbstractHyperlaneModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAIL,SAAS,GACV,MAAM,sBAAsB,CAAC;AAiB9B,MAAM,OAAgB,eAAe;IAQd;IADrB,YACqB,IAAiD;QAAjD,SAAI,GAAJ,IAAI,CAA6C;IACnE,CAAC;IAEG,SAAS;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAOD;;;;;;;;OAQG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAKhC;QACC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QACxE,MAAM,kBAAkB,GAA8B,EAAE,CAAC;QACzD,IAAI,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,kBAAkB,CAAC,IAAI,CAAC;YACtB,UAAU,EAAE,6BAA6B,eAAe,uBAAuB,WAAW,iBAAiB,aAAa,EAAE;YAC1H,OAAO;YACP,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,gBAAgB,CAAC,eAAe,EAAE,CAAC,kBAAkB,CACzD,4BAA4B,EAC5B,CAAC,aAAa,CAAC,CAChB;SACF,CAAC,CAAC;QAEH,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CAUF"}
@@ -1,34 +1,62 @@
1
1
  import { Mailbox } from '@hyperlane-xyz/core';
2
- import { Address, ProtocolType } from '@hyperlane-xyz/utils';
2
+ import { Address, Domain, ProtocolType } from '@hyperlane-xyz/utils';
3
3
  import { HyperlaneAddresses } from '../contracts/types.js';
4
+ import { DeployedCoreAddresses } from '../core/schemas.js';
4
5
  import { CoreConfig } from '../core/types.js';
5
6
  import { ProxyFactoryFactories } from '../deploy/contracts.js';
6
7
  import { ContractVerifier } from '../deploy/verify/ContractVerifier.js';
8
+ import { DerivedIsmConfig } from '../ism/EvmIsmReader.js';
9
+ import { IsmConfig } from '../ism/types.js';
7
10
  import { MultiProvider } from '../providers/MultiProvider.js';
8
11
  import { AnnotatedEV5Transaction } from '../providers/ProviderType.js';
9
12
  import { ChainNameOrId } from '../types.js';
10
13
  import { HyperlaneModule, HyperlaneModuleParams } from './AbstractHyperlaneModule.js';
11
14
  import { EvmCoreReader } from './EvmCoreReader.js';
12
15
  import { HyperlaneCoreDeployer } from './HyperlaneCoreDeployer.js';
13
- import { CoreFactories } from './contracts.js';
14
- export type DeployedCoreAdresses = HyperlaneAddresses<CoreFactories> & {
15
- testRecipient: Address;
16
- timelockController?: Address;
17
- interchainAccountRouter: Address;
18
- interchainAccountIsm: Address;
19
- } & HyperlaneAddresses<ProxyFactoryFactories>;
20
- export declare class EvmCoreModule extends HyperlaneModule<ProtocolType.Ethereum, CoreConfig, DeployedCoreAdresses> {
16
+ export declare class EvmCoreModule extends HyperlaneModule<ProtocolType.Ethereum, CoreConfig, DeployedCoreAddresses> {
21
17
  protected readonly multiProvider: MultiProvider;
22
18
  protected logger: import("pino").default.Logger<never>;
23
19
  protected coreReader: EvmCoreReader;
24
20
  readonly chainName: string;
25
- protected constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams<CoreConfig, DeployedCoreAdresses>);
21
+ readonly domainId: Domain;
22
+ constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams<CoreConfig, DeployedCoreAddresses>);
26
23
  /**
27
24
  * Reads the core configuration from the mailbox address specified in the SDK arguments.
28
25
  * @returns The core config.
29
26
  */
30
27
  read(): Promise<CoreConfig>;
31
- update(_config: CoreConfig): Promise<AnnotatedEV5Transaction[]>;
28
+ /**
29
+ * Updates the core contracts with the provided configuration.
30
+ *
31
+ * @param expectedConfig - The configuration for the core contracts to be updated.
32
+ * @returns An array of Ethereum transactions that were executed to update the contract.
33
+ */
34
+ update(expectedConfig: CoreConfig): Promise<AnnotatedEV5Transaction[]>;
35
+ /**
36
+ * Create a transaction to update an existing ISM config, or deploy a new ISM and return a tx to setDefaultIsm
37
+ *
38
+ * @param actualConfig - The on-chain router configuration, including the ISM configuration, and address.
39
+ * @param expectedConfig - The expected token router configuration, including the ISM configuration.
40
+ * @returns Transaction that need to be executed to update the ISM configuration.
41
+ */
42
+ createDefaultIsmUpdateTxs(actualConfig: CoreConfig, expectedConfig: CoreConfig): Promise<AnnotatedEV5Transaction[]>;
43
+ /**
44
+ * Updates or deploys the ISM using the provided configuration.
45
+ *
46
+ * @returns Object with deployedIsm address, and update Transactions
47
+ */
48
+ deployOrUpdateIsm(actualDefaultIsmConfig: DerivedIsmConfig, expectDefaultIsmConfig: IsmConfig): Promise<{
49
+ deployedIsm: Address;
50
+ ismUpdateTxs: AnnotatedEV5Transaction[];
51
+ }>;
52
+ /**
53
+ * Create a transaction to transfer ownership of an existing mailbox with a given config.
54
+ *
55
+ * @param actualConfig - The on-chain core configuration.
56
+ * @param expectedConfig - The expected token core configuration.
57
+ * @returns Ethereum transaction that need to be executed to update the owner.
58
+ */
59
+ createMailboxOwnerUpdateTxs(actualConfig: CoreConfig, expectedConfig: CoreConfig): AnnotatedEV5Transaction[];
32
60
  /**
33
61
  * Deploys the Core contracts.
34
62
  * @remark Most of the contract owners is the Deployer with some being the Proxy Admin.
@@ -49,7 +77,7 @@ export declare class EvmCoreModule extends HyperlaneModule<ProtocolType.Ethereum
49
77
  multiProvider: MultiProvider;
50
78
  chain: ChainNameOrId;
51
79
  contractVerifier?: ContractVerifier;
52
- }): Promise<DeployedCoreAdresses>;
80
+ }): Promise<DeployedCoreAddresses>;
53
81
  /**
54
82
  * Deploys the ISM factories for a given chain.
55
83
  * @returns The deployed ISM factories addresses.
@@ -1 +1 @@
1
- {"version":3,"file":"EvmCoreModule.d.ts","sourceRoot":"","sources":["../../src/core/EvmCoreModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAMzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,qBAAqB,EAEtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,eAAe,EACf,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG;IACrE,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAC;IACjC,oBAAoB,EAAE,OAAO,CAAC;CAC/B,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAE9C,qBAAa,aAAc,SAAQ,eAAe,CAChD,YAAY,CAAC,QAAQ,EACrB,UAAU,EACV,oBAAoB,CACrB;IAMG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IALjD,SAAS,CAAC,MAAM,uCAAiD;IACjE,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;IACpC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,SAAS,aACY,aAAa,EAAE,aAAa,EAC/C,IAAI,EAAE,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAO/D;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAI3B,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAI5E;;;;OAIG;WACiB,MAAM,CAAC,MAAM,EAAE;QACjC,KAAK,EAAE,aAAa,CAAC;QACrB,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB1B;;;OAGG;WACU,MAAM,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,KAAK,EAAE,aAAa,CAAC;QACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsFjC;;;OAGG;WACU,kBAAkB,CAAC,MAAM,EAAE;QACtC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IActD;;;OAGG;WACU,aAAa,CAAC,MAAM,EAAE;QACjC,MAAM,EAAE,UAAU,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,qBAAqB,CAAC;QACpC,aAAa,EAAE,aAAa,CAAC;QAC7B,KAAK,EAAE,aAAa,CAAC;KACtB,GAAG,OAAO,CAAC,OAAO,CAAC;CA2DrB"}
1
+ {"version":3,"file":"EvmCoreModule.d.ts","sourceRoot":"","sources":["../../src/core/EvmCoreModule.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@ import { expect } from 'chai';
2
2
  import { constants } from 'ethers';
3
3
  import hre from 'hardhat';
4
4
  import { Mailbox__factory, ProxyAdmin__factory, TestRecipient__factory, TimelockController__factory, ValidatorAnnounce__factory, } from '@hyperlane-xyz/core';
5
- import { objMap } from '@hyperlane-xyz/utils';
5
+ import { normalizeConfig, objMap } from '@hyperlane-xyz/utils';
6
6
  import { TestChainName } from '../consts/testChains.js';
7
+ import { IsmType } from '../ism/types.js';
7
8
  import { MultiProvider } from '../providers/MultiProvider.js';
8
- import { testCoreConfig } from '../test/testUtils.js';
9
+ import { randomAddress, testCoreConfig } from '../test/testUtils.js';
9
10
  import { EvmCoreModule } from './EvmCoreModule.js';
10
11
  describe('EvmCoreModule', async () => {
11
- const CHAIN = TestChainName.test1;
12
+ const CHAIN = TestChainName.test4;
12
13
  const DELAY = 1892391283182;
13
14
  let config;
14
15
  let signer;
@@ -19,11 +20,17 @@ describe('EvmCoreModule', async () => {
19
20
  let validatorAnnounceContract;
20
21
  let testRecipientContract;
21
22
  let timelockControllerContract;
23
+ async function sendTxs(txs) {
24
+ for (const tx of txs) {
25
+ await multiProvider.sendTransaction(CHAIN, tx);
26
+ }
27
+ }
22
28
  before(async () => {
23
29
  [signer] = await hre.ethers.getSigners();
24
30
  multiProvider = MultiProvider.createTestMultiProvider({ signer });
25
31
  config = {
26
32
  ...testCoreConfig([CHAIN])[CHAIN],
33
+ owner: signer.address,
27
34
  upgrade: {
28
35
  timelock: {
29
36
  delay: DELAY,
@@ -97,5 +104,104 @@ describe('EvmCoreModule', async () => {
97
104
  expect(await timelockControllerContract.getMinDelay()).to.equal(DELAY);
98
105
  });
99
106
  });
107
+ describe('Update', async () => {
108
+ const ismConfigToUpdate = [
109
+ {
110
+ type: IsmType.TRUSTED_RELAYER,
111
+ relayer: randomAddress(),
112
+ },
113
+ {
114
+ type: IsmType.FALLBACK_ROUTING,
115
+ owner: randomAddress(),
116
+ domains: {},
117
+ },
118
+ {
119
+ type: IsmType.PAUSABLE,
120
+ owner: randomAddress(),
121
+ paused: false,
122
+ },
123
+ ];
124
+ it('should deploy and set a new defaultIsm', async () => {
125
+ for (const ismConfig of ismConfigToUpdate) {
126
+ const evmCoreModuleInstance = new EvmCoreModule(multiProvider, {
127
+ chain: CHAIN,
128
+ config,
129
+ addresses: {
130
+ ...evmCoreModule.serialize(),
131
+ },
132
+ });
133
+ const expectedConfig = {
134
+ ...(await evmCoreModuleInstance.read()),
135
+ defaultIsm: ismConfig,
136
+ };
137
+ await sendTxs(await evmCoreModuleInstance.update(expectedConfig));
138
+ const updatedDefaultIsm = normalizeConfig((await evmCoreModuleInstance.read()).defaultIsm);
139
+ expect(updatedDefaultIsm).to.deep.equal(ismConfig);
140
+ }
141
+ });
142
+ it('should not deploy and set a new Ism if the config is the same', async () => {
143
+ const evmCoreModuleInstance = new EvmCoreModule(multiProvider, {
144
+ chain: CHAIN,
145
+ config,
146
+ addresses: {
147
+ ...evmCoreModule.serialize(),
148
+ },
149
+ });
150
+ const existingConfig = await evmCoreModuleInstance.read();
151
+ const updateTxs = await evmCoreModuleInstance.update(existingConfig);
152
+ expect(updateTxs.length).to.equal(0);
153
+ });
154
+ it('should update a mutable Ism', async () => {
155
+ const evmCoreModule = await EvmCoreModule.create({
156
+ multiProvider,
157
+ chain: CHAIN,
158
+ config: {
159
+ ...config,
160
+ defaultIsm: {
161
+ type: IsmType.ROUTING,
162
+ owner: signer.address,
163
+ domains: {},
164
+ },
165
+ },
166
+ });
167
+ const defaultIsmToUpdate = normalizeConfig({
168
+ type: IsmType.ROUTING,
169
+ owner: signer.address,
170
+ domains: {
171
+ test2: { type: IsmType.TEST_ISM },
172
+ },
173
+ });
174
+ const updates = await evmCoreModule.update({
175
+ ...config,
176
+ defaultIsm: defaultIsmToUpdate,
177
+ });
178
+ expect(updates.length).to.equal(1);
179
+ await sendTxs(updates);
180
+ const latestDefaultIsmConfig = normalizeConfig((await evmCoreModule.read()).defaultIsm);
181
+ expect(latestDefaultIsmConfig).to.deep.equal(defaultIsmToUpdate);
182
+ });
183
+ it('should update the owner only if they are different', async () => {
184
+ const evmCoreModule = await EvmCoreModule.create({
185
+ chain: CHAIN,
186
+ config,
187
+ multiProvider,
188
+ });
189
+ const newOwner = randomAddress();
190
+ let latestConfig = normalizeConfig(await evmCoreModule.read());
191
+ expect(latestConfig.owner).to.not.equal(newOwner);
192
+ await sendTxs(await evmCoreModule.update({
193
+ ...config,
194
+ owner: newOwner,
195
+ }));
196
+ latestConfig = normalizeConfig(await evmCoreModule.read());
197
+ expect(latestConfig.owner).to.equal(newOwner);
198
+ // No op if the same owner
199
+ const txs = await evmCoreModule.update({
200
+ ...config,
201
+ owner: newOwner,
202
+ });
203
+ expect(txs.length).to.equal(0);
204
+ });
205
+ });
100
206
  });
101
207
  //# sourceMappingURL=EvmCoreModule.hardhat-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmCoreModule.hardhat-test.js","sourceRoot":"","sources":["../../src/core/EvmCoreModule.hardhat-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmCoreModule.hardhat-test.js","sourceRoot":"","sources":["../../src/core/EvmCoreModule.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,29 @@
1
- import { rootLogger } from '@hyperlane-xyz/utils';
1
+ import { Mailbox__factory } from '@hyperlane-xyz/core';
2
+ import { eqAddress, rootLogger, } from '@hyperlane-xyz/utils';
2
3
  import { attachContractsMap, serializeContractsMap, } from '../contracts/contracts.js';
3
4
  import { HyperlaneProxyFactoryDeployer } from '../deploy/HyperlaneProxyFactoryDeployer.js';
4
5
  import { proxyFactoryFactories, } from '../deploy/contracts.js';
6
+ import { EvmIsmModule } from '../ism/EvmIsmModule.js';
5
7
  import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
6
8
  import { HyperlaneModule, } from './AbstractHyperlaneModule.js';
7
9
  import { EvmCoreReader } from './EvmCoreReader.js';
8
10
  import { EvmIcaModule } from './EvmIcaModule.js';
9
11
  import { HyperlaneCoreDeployer } from './HyperlaneCoreDeployer.js';
12
+ import { CoreConfigSchema } from './schemas.js';
10
13
  export class EvmCoreModule extends HyperlaneModule {
11
14
  multiProvider;
12
15
  logger = rootLogger.child({ module: 'EvmCoreModule' });
13
16
  coreReader;
14
17
  chainName;
18
+ // We use domainId here because MultiProvider.getDomainId() will always
19
+ // return a number, and EVM the domainId and chainId are the same.
20
+ domainId;
15
21
  constructor(multiProvider, args) {
16
22
  super(args);
17
23
  this.multiProvider = multiProvider;
18
24
  this.coreReader = new EvmCoreReader(multiProvider, this.args.chain);
19
25
  this.chainName = this.multiProvider.getChainName(this.args.chain);
26
+ this.domainId = multiProvider.getDomainId(args.chain);
20
27
  }
21
28
  /**
22
29
  * Reads the core configuration from the mailbox address specified in the SDK arguments.
@@ -25,8 +32,88 @@ export class EvmCoreModule extends HyperlaneModule {
25
32
  async read() {
26
33
  return this.coreReader.deriveCoreConfig(this.args.addresses.mailbox);
27
34
  }
28
- async update(_config) {
29
- throw new Error('Method not implemented.');
35
+ /**
36
+ * Updates the core contracts with the provided configuration.
37
+ *
38
+ * @param expectedConfig - The configuration for the core contracts to be updated.
39
+ * @returns An array of Ethereum transactions that were executed to update the contract.
40
+ */
41
+ async update(expectedConfig) {
42
+ CoreConfigSchema.parse(expectedConfig);
43
+ const actualConfig = await this.read();
44
+ const transactions = [];
45
+ transactions.push(...(await this.createDefaultIsmUpdateTxs(actualConfig, expectedConfig)), ...this.createMailboxOwnerUpdateTxs(actualConfig, expectedConfig));
46
+ return transactions;
47
+ }
48
+ /**
49
+ * Create a transaction to update an existing ISM config, or deploy a new ISM and return a tx to setDefaultIsm
50
+ *
51
+ * @param actualConfig - The on-chain router configuration, including the ISM configuration, and address.
52
+ * @param expectedConfig - The expected token router configuration, including the ISM configuration.
53
+ * @returns Transaction that need to be executed to update the ISM configuration.
54
+ */
55
+ async createDefaultIsmUpdateTxs(actualConfig, expectedConfig) {
56
+ const updateTransactions = [];
57
+ const actualDefaultIsmConfig = actualConfig.defaultIsm;
58
+ // Try to update (may also deploy) Ism with the expected config
59
+ const { deployedIsm, ismUpdateTxs } = await this.deployOrUpdateIsm(actualDefaultIsmConfig, expectedConfig.defaultIsm);
60
+ if (ismUpdateTxs.length) {
61
+ updateTransactions.push(...ismUpdateTxs);
62
+ }
63
+ const newIsmDeployed = !eqAddress(actualDefaultIsmConfig.address, deployedIsm);
64
+ if (newIsmDeployed) {
65
+ const { mailbox } = this.serialize();
66
+ const contractToUpdate = Mailbox__factory.connect(mailbox, this.multiProvider.getProvider(this.domainId));
67
+ updateTransactions.push({
68
+ annotation: `Setting default ISM for Mailbox ${mailbox} to ${deployedIsm}`,
69
+ chainId: this.domainId,
70
+ to: contractToUpdate.address,
71
+ data: contractToUpdate.interface.encodeFunctionData('setDefaultIsm', [
72
+ deployedIsm,
73
+ ]),
74
+ });
75
+ }
76
+ return updateTransactions;
77
+ }
78
+ /**
79
+ * Updates or deploys the ISM using the provided configuration.
80
+ *
81
+ * @returns Object with deployedIsm address, and update Transactions
82
+ */
83
+ async deployOrUpdateIsm(actualDefaultIsmConfig, expectDefaultIsmConfig) {
84
+ const { mailbox, domainRoutingIsmFactory, staticAggregationIsmFactory, staticAggregationHookFactory, staticMessageIdMultisigIsmFactory, staticMerkleRootMultisigIsmFactory, } = this.serialize();
85
+ const ismModule = new EvmIsmModule(this.multiProvider, {
86
+ chain: this.args.chain,
87
+ config: expectDefaultIsmConfig,
88
+ addresses: {
89
+ mailbox,
90
+ domainRoutingIsmFactory,
91
+ staticAggregationIsmFactory,
92
+ staticAggregationHookFactory,
93
+ staticMessageIdMultisigIsmFactory,
94
+ staticMerkleRootMultisigIsmFactory,
95
+ deployedIsm: actualDefaultIsmConfig.address,
96
+ },
97
+ });
98
+ this.logger.info(`Comparing target ISM config with ${this.args.chain} chain`);
99
+ const ismUpdateTxs = await ismModule.update(expectDefaultIsmConfig);
100
+ const { deployedIsm } = ismModule.serialize();
101
+ return { deployedIsm, ismUpdateTxs };
102
+ }
103
+ /**
104
+ * Create a transaction to transfer ownership of an existing mailbox with a given config.
105
+ *
106
+ * @param actualConfig - The on-chain core configuration.
107
+ * @param expectedConfig - The expected token core configuration.
108
+ * @returns Ethereum transaction that need to be executed to update the owner.
109
+ */
110
+ createMailboxOwnerUpdateTxs(actualConfig, expectedConfig) {
111
+ return EvmCoreModule.createTransferOwnershipTx({
112
+ actualOwner: actualConfig.owner,
113
+ expectedOwner: expectedConfig.owner,
114
+ deployedAddress: this.args.addresses.mailbox,
115
+ chainId: this.domainId,
116
+ });
30
117
  }
31
118
  /**
32
119
  * Deploys the Core contracts.
@@ -91,7 +178,7 @@ export class EvmCoreModule extends HyperlaneModule {
91
178
  if (config.upgrade) {
92
179
  timelockController = (await coreDeployer.deployTimelock(chainName, config.upgrade.timelock)).address;
93
180
  }
94
- // Deploy Test Receipient
181
+ // Deploy Test Recipient
95
182
  const testRecipient = (await coreDeployer.deployTestRecipient(chainName, await mailbox.defaultIsm())).address;
96
183
  // Set Core & extra addresses
97
184
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"EvmCoreModule.js","sourceRoot":"","sources":["../../src/core/EvmCoreModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmCoreModule.js","sourceRoot":"","sources":["../../src/core/EvmCoreModule.ts"],"names":[],"mappings":"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"}