@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.
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +12 -0
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/core/AbstractHyperlaneModule.d.ts +17 -2
- package/dist/core/AbstractHyperlaneModule.d.ts.map +1 -1
- package/dist/core/AbstractHyperlaneModule.js +25 -0
- package/dist/core/AbstractHyperlaneModule.js.map +1 -1
- package/dist/core/EvmCoreModule.d.ts +40 -12
- package/dist/core/EvmCoreModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.hardhat-test.js +109 -3
- package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
- package/dist/core/EvmCoreModule.js +91 -4
- package/dist/core/EvmCoreModule.js.map +1 -1
- package/dist/core/schemas.d.ts +148 -106
- package/dist/core/schemas.d.ts.map +1 -1
- package/dist/core/schemas.js +11 -0
- package/dist/core/schemas.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts +2 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +39 -2
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +22 -6
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.d.ts +5 -5
- package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpModule.js +14 -20
- package/dist/token/EvmERC20WarpModule.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js +1 -2
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/utils/cosmos.d.ts +1879 -276
- package/dist/utils/cosmos.d.ts.map +1 -1
- package/dist/utils/cosmos.js +3 -2
- package/dist/utils/cosmos.js.map +1 -1
- package/package.json +7 -9
- package/logos/black/arbitrum.svg +0 -1
- package/logos/black/avalanche.svg +0 -1
- package/logos/black/base.svg +0 -1
- package/logos/black/bsc.svg +0 -1
- package/logos/black/celo.svg +0 -1
- package/logos/black/cosmos.svg +0 -1
- package/logos/black/cosmwasm.svg +0 -1
- package/logos/black/eclipse.svg +0 -3
- package/logos/black/ethereum.svg +0 -8
- package/logos/black/gnosis.svg +0 -1
- package/logos/black/hyperlane.svg +0 -1
- package/logos/black/inevm.svg +0 -1
- package/logos/black/injective.svg +0 -1
- package/logos/black/manta.svg +0 -1
- package/logos/black/moonbeam.svg +0 -3
- package/logos/black/nautilus.svg +0 -1
- package/logos/black/near.svg +0 -1
- package/logos/black/neutron.svg +0 -1
- package/logos/black/optimism.svg +0 -1
- package/logos/black/plume.svg +0 -24
- package/logos/black/polygon.svg +0 -1
- package/logos/black/polygonzkevm.svg +0 -1
- package/logos/black/scroll.svg +0 -1
- package/logos/black/solana.svg +0 -1
- package/logos/black/viction.svg +0 -1
- package/logos/color/arbitrum.svg +0 -1
- package/logos/color/avalanche.svg +0 -1
- package/logos/color/base.svg +0 -1
- package/logos/color/bsc.svg +0 -1
- package/logos/color/celo.svg +0 -1
- package/logos/color/cosmos.svg +0 -1
- package/logos/color/cosmwasm.svg +0 -1
- package/logos/color/eclipse.svg +0 -3
- package/logos/color/ethereum.svg +0 -1
- package/logos/color/gnosis.svg +0 -1
- package/logos/color/hyperlane.svg +0 -1
- package/logos/color/inevm.svg +0 -1
- package/logos/color/injective.svg +0 -1
- package/logos/color/manta.svg +0 -1
- package/logos/color/moonbeam.svg +0 -1
- package/logos/color/nautilus.svg +0 -1
- package/logos/color/neutron.svg +0 -1
- package/logos/color/optimism.svg +0 -1
- package/logos/color/plume.svg +0 -24
- package/logos/color/polygon.svg +0 -1
- package/logos/color/polygonzkevm.svg +0 -1
- package/logos/color/scroll.svg +0 -1
- package/logos/color/solana.svg +0 -1
- 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,
|
|
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":"AAGA,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAA6B;IAC9D,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,WAAW;YACzD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;SAC3D;KACF;IAED,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,KAAK,EAAE;QACL,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,UAAU;YACxD,4CAA4C,EAAE,YAAY;SAC3D;KACF;IAED,GAAG,EAAE;QACH,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,UAAU;SACzD;KACF;IAED,GAAG,EAAE;QACH,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,UAAU,EAAE;QACV,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,WAAW,EAAE;QACX,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,cAAc,EAAE;QACd,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,cAAc,EAAE;QACd,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,YAAY;SAC3D;KACF;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,WAAW;YACzD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,iBAAiB;YAC/D,4CAA4C,EAAE,gBAAgB;SAC/D;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,WAAW,EAAE;QACX,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC,EAAE,OAAO;KACpE;IAED,KAAK,EAAE;QACL,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,UAAU;YACxD,4CAA4C,EAAE,YAAY;SAC3D;KACF;IAED,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,UAAU;YACxD,4CAA4C,EAAE,YAAY;SAC3D;KACF;IAED,KAAK,EAAE;QACL,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,UAAU;SACzD;KACF;IAED,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C,EAAE,aAAa;YAC3D,4CAA4C,EAAE,cAAc;YAC5D,4CAA4C,EAAE,KAAK;YACnD,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,eAAe;YAC7D,4CAA4C,EAAE,MAAM;YACpD,4CAA4C,EAAE,MAAM;SACrD;KACF;IAED,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,UAAU;SACzD;KACF;IAED,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,UAAU;SACzD;KACF;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,eAAe;YAC7D,4CAA4C,EAAE,MAAM;YACpD,4CAA4C,EAAE,UAAU;YACxD,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,gBAAgB;YAC9D,4CAA4C,EAAE,OAAO;SACtD;KACF;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,WAAW;SAC1D;KACF;IAED,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,YAAY;SAC3D;KACF;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,OAAO;SACtD;KACF;IAED,aAAa,EAAE;QACb,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,GAAG,EAAE;QACH,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C;YAC5C,4CAA4C;SAC7C;KACF;IAED,aAAa,EAAE;QACb,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,oBAAoB,EAAE;QACpB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,KAAK,EAAE;QACL,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,UAAU;SACzD;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C,EAAE,UAAU;YACxD,4CAA4C,EAAE,QAAQ;YACtD,4CAA4C;SAC7C;KACF;IAED,UAAU,EAAE;QACV,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,4CAA4C,CAAC;KAC3D;IAED,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,SAAS;SACxD;KACF;IAED,WAAW,EAAE;QACX,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,4CAA4C;YAC5C,4CAA4C,EAAE,YAAY;YAC1D,4CAA4C,EAAE,SAAS;YACvD,4CAA4C,EAAE,UAAU;SACzD;KACF;CACF,CAAC"}
|
|
@@ -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;
|
|
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":"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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<
|
|
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,
|
|
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.
|
|
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":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
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 {
|
|
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
|
-
|
|
29
|
-
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"EvmCoreModule.js","sourceRoot":"","sources":["../../src/core/EvmCoreModule.ts"],"names":[],"mappings":"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"}
|