@hyperlane-xyz/sdk 7.1.0 → 7.3.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.
- package/dist/aws/validator.d.ts +3 -1
- package/dist/aws/validator.d.ts.map +1 -1
- package/dist/aws/validator.js +12 -4
- package/dist/aws/validator.js.map +1 -1
- package/dist/consts/multisigIsm.d.ts +1 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +1148 -358
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/consts/multisigIsm.test.js +16 -2
- package/dist/consts/multisigIsm.test.js.map +1 -1
- package/dist/consts/multisigIsmVerifyCosts.d.ts.map +1 -1
- package/dist/consts/multisigIsmVerifyCosts.js +0 -1
- package/dist/consts/multisigIsmVerifyCosts.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.d.ts.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +27 -8
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/EvmCoreModule.d.ts +6 -4
- package/dist/core/EvmCoreModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.js +23 -3
- package/dist/core/EvmCoreModule.js.map +1 -1
- package/dist/core/EvmCoreReader.d.ts +14 -6
- package/dist/core/EvmCoreReader.d.ts.map +1 -1
- package/dist/core/EvmCoreReader.js +14 -8
- package/dist/core/EvmCoreReader.js.map +1 -1
- package/dist/core/EvmIcaModule.d.ts +13 -5
- package/dist/core/EvmIcaModule.d.ts.map +1 -1
- package/dist/core/EvmIcaModule.js +81 -4
- package/dist/core/EvmIcaModule.js.map +1 -1
- package/dist/core/HyperlaneRelayer.d.ts +40 -40
- package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
- package/dist/core/HyperlaneRelayer.js +3 -3
- package/dist/core/HyperlaneRelayer.js.map +1 -1
- package/dist/core/schemas.d.ts +3572 -676
- package/dist/core/schemas.d.ts.map +1 -1
- package/dist/core/schemas.js +9 -4
- package/dist/core/schemas.js.map +1 -1
- package/dist/core/types.d.ts +2 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +1 -0
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +6 -3
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +1 -1
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts +40 -4
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.js +107 -12
- package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
- package/dist/gas/adapters/serialization.d.ts +29 -0
- package/dist/gas/adapters/serialization.d.ts.map +1 -1
- package/dist/gas/adapters/serialization.js +71 -2
- package/dist/gas/adapters/serialization.js.map +1 -1
- package/dist/gas/types.d.ts +1 -1
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gcp/storage.d.ts +24 -0
- package/dist/gcp/storage.d.ts.map +1 -0
- package/dist/gcp/storage.js +69 -0
- package/dist/gcp/storage.js.map +1 -0
- package/dist/gcp/validator.d.ts +21 -0
- package/dist/gcp/validator.d.ts.map +1 -0
- package/dist/gcp/validator.js +99 -0
- package/dist/gcp/validator.js.map +1 -0
- package/dist/hook/EvmHookModule.d.ts +2 -2
- package/dist/hook/EvmHookModule.d.ts.map +1 -1
- package/dist/hook/EvmHookModule.hardhat-test.js +0 -1
- package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
- package/dist/hook/EvmHookModule.js +1 -2
- package/dist/hook/EvmHookModule.js.map +1 -1
- package/dist/hook/EvmHookReader.js +2 -2
- package/dist/hook/EvmHookReader.js.map +1 -1
- package/dist/hook/EvmHookReader.test.js +0 -1
- package/dist/hook/EvmHookReader.test.js.map +1 -1
- package/dist/hook/types.d.ts +244 -1
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +65 -0
- package/dist/hook/types.js.map +1 -1
- package/dist/ica/EvmIcaReader.d.ts +10 -0
- package/dist/ica/EvmIcaReader.d.ts.map +1 -0
- package/dist/ica/EvmIcaReader.hardhat-test.d.ts +2 -0
- package/dist/ica/EvmIcaReader.hardhat-test.d.ts.map +1 -0
- package/dist/ica/EvmIcaReader.hardhat-test.js +44 -0
- package/dist/ica/EvmIcaReader.hardhat-test.js.map +1 -0
- package/dist/ica/EvmIcaReader.js +52 -0
- package/dist/ica/EvmIcaReader.js.map +1 -0
- package/dist/ica/schemas.d.ts +107 -0
- package/dist/ica/schemas.d.ts.map +1 -0
- package/dist/ica/schemas.js +25 -0
- package/dist/ica/schemas.js.map +1 -0
- package/dist/ica/types.d.ts +5 -0
- package/dist/ica/types.d.ts.map +1 -0
- package/dist/ica/types.js +2 -0
- package/dist/ica/types.js.map +1 -0
- package/dist/index.d.ts +14 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/ism/EvmIsmModule.d.ts +3 -3
- package/dist/ism/EvmIsmModule.d.ts.map +1 -1
- package/dist/ism/EvmIsmModule.hardhat-test.js +5 -1
- package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
- package/dist/ism/EvmIsmModule.js +1 -2
- package/dist/ism/EvmIsmModule.js.map +1 -1
- package/dist/ism/EvmIsmReader.d.ts.map +1 -1
- package/dist/ism/EvmIsmReader.js +25 -11
- package/dist/ism/EvmIsmReader.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +2 -0
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +20 -2
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts +2 -2
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js.map +1 -1
- package/dist/ism/metadata/aggregation.d.ts +2 -1
- package/dist/ism/metadata/aggregation.d.ts.map +1 -1
- package/dist/ism/metadata/aggregation.js +2 -2
- package/dist/ism/metadata/aggregation.js.map +1 -1
- package/dist/ism/metadata/arbL2ToL1.d.ts +1 -1
- package/dist/ism/metadata/arbL2ToL1.d.ts.map +1 -1
- package/dist/ism/metadata/arbL2ToL1.hardhat-test.js +1 -2
- package/dist/ism/metadata/arbL2ToL1.hardhat-test.js.map +1 -1
- package/dist/ism/metadata/builder.d.ts +6 -19
- package/dist/ism/metadata/builder.d.ts.map +1 -1
- package/dist/ism/metadata/builder.hardhat-test.js +2 -1
- package/dist/ism/metadata/builder.hardhat-test.js.map +1 -1
- package/dist/ism/metadata/builder.js +7 -26
- package/dist/ism/metadata/builder.js.map +1 -1
- package/dist/ism/metadata/decode.d.ts +3 -0
- package/dist/ism/metadata/decode.d.ts.map +1 -0
- package/dist/ism/metadata/decode.js +31 -0
- package/dist/ism/metadata/decode.js.map +1 -0
- package/dist/ism/metadata/multisig.d.ts +1 -1
- package/dist/ism/metadata/multisig.d.ts.map +1 -1
- package/dist/ism/metadata/null.d.ts +1 -1
- package/dist/ism/metadata/null.d.ts.map +1 -1
- package/dist/ism/metadata/routing.d.ts +5 -4
- package/dist/ism/metadata/routing.d.ts.map +1 -1
- package/dist/ism/metadata/routing.js +24 -10
- package/dist/ism/metadata/routing.js.map +1 -1
- package/dist/ism/metadata/types.d.ts +20 -0
- package/dist/ism/metadata/types.d.ts.map +1 -0
- package/dist/ism/metadata/types.js +2 -0
- package/dist/ism/metadata/types.js.map +1 -0
- package/dist/ism/multisig.d.ts +1 -0
- package/dist/ism/multisig.d.ts.map +1 -1
- package/dist/ism/multisig.js +9 -12
- package/dist/ism/multisig.js.map +1 -1
- package/dist/ism/types.d.ts +257 -4
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +84 -1
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/types.test.d.ts +2 -0
- package/dist/ism/types.test.d.ts.map +1 -0
- package/dist/ism/{schemas.test.js → types.test.js} +2 -3
- package/dist/ism/types.test.js.map +1 -0
- package/dist/ism/utils.d.ts +2 -2
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +15 -6
- package/dist/ism/utils.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +5 -5
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +14 -13
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts +1 -2
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +3 -2
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +3 -3
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/types.d.ts +1220 -1
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js +29 -0
- package/dist/router/types.js.map +1 -1
- package/dist/schemas.d.ts +10 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +3 -0
- package/dist/schemas.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.d.ts +28 -7
- package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpModule.hardhat-test.js +158 -39
- package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.js +147 -39
- package/dist/token/EvmERC20WarpModule.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +1 -1
- package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.js +8 -3
- package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
- package/dist/token/IToken.d.ts +2 -2
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +2 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.js +6 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js +19 -8
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +1 -0
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js +3 -0
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +1 -0
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +3 -0
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +2 -1
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +10 -7
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js +78 -47
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/checker.d.ts +6 -0
- package/dist/token/checker.d.ts.map +1 -1
- package/dist/token/checker.js +72 -11
- package/dist/token/checker.js.map +1 -1
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +0 -1
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/schemas.d.ts +196 -290
- package/dist/token/schemas.d.ts.map +1 -1
- package/dist/token/schemas.js +1 -1
- package/dist/token/schemas.js.map +1 -1
- package/dist/utils/gnosisSafe.js +1 -1
- package/dist/utils/ism.js +1 -1
- package/dist/utils/ism.js.map +1 -1
- package/dist/utils/logUtils.js +1 -1
- package/dist/utils/logUtils.js.map +1 -1
- package/dist/utils/sealevelSerialization.d.ts +10 -0
- package/dist/utils/sealevelSerialization.d.ts.map +1 -1
- package/dist/utils/sealevelSerialization.js +21 -1
- package/dist/utils/sealevelSerialization.js.map +1 -1
- package/dist/utils/validator.d.ts +4 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +14 -0
- package/dist/utils/validator.js.map +1 -0
- package/dist/warp/WarpCore.d.ts +5 -3
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +24 -5
- package/dist/warp/WarpCore.js.map +1 -1
- package/dist/warp/WarpCore.test.js +9 -0
- package/dist/warp/WarpCore.test.js.map +1 -1
- package/dist/warp/types.d.ts +4 -4
- package/package.json +16 -9
- package/dist/hook/schemas.d.ts +0 -247
- package/dist/hook/schemas.d.ts.map +0 -1
- package/dist/hook/schemas.js +0 -67
- package/dist/hook/schemas.js.map +0 -1
- package/dist/ism/schemas.d.ts +0 -246
- package/dist/ism/schemas.d.ts.map +0 -1
- package/dist/ism/schemas.js +0 -78
- package/dist/ism/schemas.js.map +0 -1
- package/dist/ism/schemas.test.d.ts +0 -2
- package/dist/ism/schemas.test.d.ts.map +0 -1
- package/dist/ism/schemas.test.js.map +0 -1
- package/dist/router/schemas.d.ts +0 -1317
- package/dist/router/schemas.d.ts.map +0 -1
- package/dist/router/schemas.js +0 -30
- package/dist/router/schemas.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
|
package/dist/router/types.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { ProxyAdmin__factory, TimelockController__factory, } from '@hyperlane-xyz/core';
|
|
3
|
+
import { HookConfigSchema } from '../hook/types.js';
|
|
4
|
+
import { IsmConfigSchema } from '../ism/types.js';
|
|
5
|
+
import { ZHash } from '../metadata/customZodTypes.js';
|
|
6
|
+
import { DeployedOwnableSchema, OwnableSchema } from '../schemas.js';
|
|
2
7
|
export const proxiedFactories = {
|
|
3
8
|
proxyAdmin: new ProxyAdmin__factory(),
|
|
4
9
|
timelockController: new TimelockController__factory(),
|
|
@@ -13,4 +18,28 @@ export var RouterViolationType;
|
|
|
13
18
|
(function (RouterViolationType) {
|
|
14
19
|
RouterViolationType["EnrolledRouter"] = "EnrolledRouter";
|
|
15
20
|
})(RouterViolationType || (RouterViolationType = {}));
|
|
21
|
+
export const MailboxClientConfigSchema = OwnableSchema.extend({
|
|
22
|
+
mailbox: ZHash,
|
|
23
|
+
hook: HookConfigSchema.optional(),
|
|
24
|
+
interchainSecurityModule: IsmConfigSchema.optional(),
|
|
25
|
+
});
|
|
26
|
+
export const ForeignDeploymentConfigSchema = z.object({
|
|
27
|
+
foreignDeployment: z.string().optional(),
|
|
28
|
+
});
|
|
29
|
+
export const RemoteRouterDomain = z.string();
|
|
30
|
+
export const RemoteRouterRouter = z.object({
|
|
31
|
+
address: z.string().startsWith('0x'),
|
|
32
|
+
});
|
|
33
|
+
export const RemoteRoutersSchema = z.record(RemoteRouterDomain, RemoteRouterRouter);
|
|
34
|
+
export const RouterConfigSchema = MailboxClientConfigSchema.merge(ForeignDeploymentConfigSchema).merge(z.object({
|
|
35
|
+
remoteRouters: RemoteRoutersSchema.optional(),
|
|
36
|
+
proxyAdmin: DeployedOwnableSchema.optional(),
|
|
37
|
+
}));
|
|
38
|
+
const DestinationGasDomain = z.string();
|
|
39
|
+
const DestinationGasAmount = z.string(); // This must be a string type to match Ether's type
|
|
40
|
+
export const DestinationGasSchema = z.record(DestinationGasDomain, DestinationGasAmount);
|
|
41
|
+
export const GasRouterConfigSchema = RouterConfigSchema.extend({
|
|
42
|
+
gas: z.number().optional(),
|
|
43
|
+
destinationGas: DestinationGasSchema.optional(),
|
|
44
|
+
});
|
|
16
45
|
//# sourceMappingURL=types.js.map
|
package/dist/router/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,mBAAmB,EAEnB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiBrE,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,UAAU,EAAE,IAAI,mBAAmB,EAAE;IACrC,kBAAkB,EAAE,IAAI,2BAA2B,EAAE;CACtD,CAAC;AAEF,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAsC,CAAA;IACtC,gDAAyB,CAAA;IACzB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAQD,MAAM,CAAN,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,wDAAiC,CAAA;AACnC,CAAC,EAFW,mBAAmB,KAAnB,mBAAmB,QAE9B;AAeD,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,wBAAwB,EAAE,eAAe,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CACzC,kBAAkB,EAClB,kBAAkB,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,KAAK,CAC/D,6BAA6B,CAC9B,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;IACP,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC7C,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CAC7C,CAAC,CACH,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACxC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,mDAAmD;AAC5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAC1C,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -22,6 +22,16 @@ export declare const DeployedOwnableSchema: z.ZodObject<{
|
|
|
22
22
|
ownerOverrides?: Record<string, string> | undefined;
|
|
23
23
|
address?: string | undefined;
|
|
24
24
|
}>;
|
|
25
|
+
export declare const DerivedOwnableSchema: z.ZodObject<{
|
|
26
|
+
owner: z.ZodString;
|
|
27
|
+
address: z.ZodString;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
owner: string;
|
|
30
|
+
address: string;
|
|
31
|
+
}, {
|
|
32
|
+
owner: string;
|
|
33
|
+
address: string;
|
|
34
|
+
}>;
|
|
25
35
|
export declare const PausableSchema: z.ZodObject<{
|
|
26
36
|
owner: z.ZodString;
|
|
27
37
|
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAEhC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAEzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAEhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;EAEpB,CAAC;AAEd,eAAO,MAAM,cAAc;;;;;;;;;;;;EAEzB,CAAC"}
|
package/dist/schemas.js
CHANGED
|
@@ -7,6 +7,9 @@ export const OwnableSchema = z.object({
|
|
|
7
7
|
export const DeployedOwnableSchema = OwnableSchema.extend({
|
|
8
8
|
address: ZHash.optional(),
|
|
9
9
|
});
|
|
10
|
+
export const DerivedOwnableSchema = DeployedOwnableSchema.omit({
|
|
11
|
+
ownerOverrides: true,
|
|
12
|
+
}).required();
|
|
10
13
|
export const PausableSchema = OwnableSchema.extend({
|
|
11
14
|
paused: z.boolean(),
|
|
12
15
|
});
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAC7D,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { ContractVerifier } from '@hyperlane-xyz/sdk';
|
|
1
|
+
import { ContractVerifier, HyperlaneAddresses } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { Address, Domain, EvmChainId, ProtocolType } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { HyperlaneModule, HyperlaneModuleParams } from '../core/AbstractHyperlaneModule.js';
|
|
4
|
+
import { ProxyFactoryFactories } from '../deploy/contracts.js';
|
|
4
5
|
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
5
6
|
import { AnnotatedEV5Transaction } from '../providers/ProviderType.js';
|
|
6
7
|
import { ChainName, ChainNameOrId } from '../types.js';
|
|
7
8
|
import { EvmERC20WarpRouteReader } from './EvmERC20WarpRouteReader.js';
|
|
8
9
|
import { TokenRouterConfig } from './schemas.js';
|
|
9
|
-
|
|
10
|
+
type WarpRouteAddresses = HyperlaneAddresses<ProxyFactoryFactories> & {
|
|
10
11
|
deployedTokenRoute: Address;
|
|
11
|
-
}
|
|
12
|
+
};
|
|
13
|
+
export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Ethereum, TokenRouterConfig, WarpRouteAddresses> {
|
|
12
14
|
protected readonly multiProvider: MultiProvider;
|
|
13
15
|
protected readonly contractVerifier?: ContractVerifier | undefined;
|
|
14
16
|
protected logger: import("pino").default.Logger<never>;
|
|
@@ -16,9 +18,7 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
|
|
|
16
18
|
readonly chainName: ChainName;
|
|
17
19
|
readonly chainId: EvmChainId;
|
|
18
20
|
readonly domainId: Domain;
|
|
19
|
-
constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams<TokenRouterConfig,
|
|
20
|
-
deployedTokenRoute: Address;
|
|
21
|
-
}>, contractVerifier?: ContractVerifier | undefined);
|
|
21
|
+
constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams<TokenRouterConfig, WarpRouteAddresses>, contractVerifier?: ContractVerifier | undefined);
|
|
22
22
|
/**
|
|
23
23
|
* Retrieves the token router configuration for the specified address.
|
|
24
24
|
*
|
|
@@ -40,7 +40,8 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
|
|
|
40
40
|
* @param expectedConfig - The expected token router configuration.
|
|
41
41
|
* @returns A array with a single Ethereum transaction that need to be executed to enroll the routers
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
createEnrollRemoteRoutersUpdateTxs(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): AnnotatedEV5Transaction[];
|
|
44
|
+
createUnenrollRemoteRoutersUpdateTxs(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): AnnotatedEV5Transaction[];
|
|
44
45
|
/**
|
|
45
46
|
* Create a transaction to update the remote routers for the Warp Route contract.
|
|
46
47
|
*
|
|
@@ -57,6 +58,7 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
|
|
|
57
58
|
* @returns Ethereum transaction that need to be executed to update the ISM configuration.
|
|
58
59
|
*/
|
|
59
60
|
createIsmUpdateTxs(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): Promise<AnnotatedEV5Transaction[]>;
|
|
61
|
+
createHookUpdateTxs(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): Promise<AnnotatedEV5Transaction[]>;
|
|
60
62
|
/**
|
|
61
63
|
* Transfer ownership of an existing Warp route with a given config.
|
|
62
64
|
*
|
|
@@ -74,6 +76,23 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
|
|
|
74
76
|
deployedIsm: Address;
|
|
75
77
|
updateTransactions: AnnotatedEV5Transaction[];
|
|
76
78
|
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Updates or deploys the hook using the provided configuration.
|
|
81
|
+
*
|
|
82
|
+
* @returns Object with deployedHook address, and update Transactions
|
|
83
|
+
*/
|
|
84
|
+
deployOrUpdateHook(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): Promise<{
|
|
85
|
+
deployedHook: Address;
|
|
86
|
+
updateTransactions: AnnotatedEV5Transaction[];
|
|
87
|
+
}>;
|
|
88
|
+
deployNewHook(expectedConfig: TokenRouterConfig): Promise<{
|
|
89
|
+
deployedHook: Address;
|
|
90
|
+
updateTransactions: AnnotatedEV5Transaction[];
|
|
91
|
+
}>;
|
|
92
|
+
updateExistingHook(expectedConfig: TokenRouterConfig, actualConfig: TokenRouterConfig): Promise<{
|
|
93
|
+
deployedHook: Address;
|
|
94
|
+
updateTransactions: AnnotatedEV5Transaction[];
|
|
95
|
+
}>;
|
|
77
96
|
/**
|
|
78
97
|
* Deploys the Warp Route.
|
|
79
98
|
*
|
|
@@ -87,6 +106,8 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
|
|
|
87
106
|
config: TokenRouterConfig;
|
|
88
107
|
multiProvider: MultiProvider;
|
|
89
108
|
contractVerifier?: ContractVerifier;
|
|
109
|
+
proxyFactoryFactories: HyperlaneAddresses<ProxyFactoryFactories>;
|
|
90
110
|
}): Promise<EvmERC20WarpModule>;
|
|
91
111
|
}
|
|
112
|
+
export {};
|
|
92
113
|
//# sourceMappingURL=EvmERC20WarpModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvmERC20WarpModule.d.ts","sourceRoot":"","sources":["../../src/token/EvmERC20WarpModule.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"EvmERC20WarpModule.d.ts","sourceRoot":"","sources":["../../src/token/EvmERC20WarpModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
-
import { constants } from 'ethers';
|
|
3
2
|
import hre from 'hardhat';
|
|
4
|
-
import { ERC20Test__factory, ERC4626Test__factory, HypERC20__factory, HypERC4626Collateral__factory, HypNative__factory, Mailbox__factory, } from '@hyperlane-xyz/core';
|
|
5
|
-
import { EvmIsmModule, IsmType, TestChainName, serializeContracts, } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import { ERC20Test__factory, ERC4626Test__factory, HypERC20__factory, HypERC4626Collateral__factory, HypNative__factory, MailboxClient__factory, Mailbox__factory, } from '@hyperlane-xyz/core';
|
|
4
|
+
import { EvmIsmModule, HookType, IsmType, TestChainName, proxyAdmin, serializeContracts, } from '@hyperlane-xyz/sdk';
|
|
5
|
+
import { randomInt } from '@hyperlane-xyz/utils';
|
|
6
6
|
import { TestCoreDeployer } from '../core/TestCoreDeployer.js';
|
|
7
7
|
import { HyperlaneProxyFactoryDeployer } from '../deploy/HyperlaneProxyFactoryDeployer.js';
|
|
8
8
|
import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
|
|
@@ -14,7 +14,9 @@ import { TokenType } from './config.js';
|
|
|
14
14
|
const randomRemoteRouters = (n) => {
|
|
15
15
|
const routers = {};
|
|
16
16
|
for (let domain = 0; domain < n; domain++) {
|
|
17
|
-
routers[domain] =
|
|
17
|
+
routers[domain] = {
|
|
18
|
+
address: randomAddress(),
|
|
19
|
+
};
|
|
18
20
|
}
|
|
19
21
|
return routers;
|
|
20
22
|
};
|
|
@@ -24,7 +26,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
24
26
|
const TOKEN_DECIMALS = 18;
|
|
25
27
|
const chain = TestChainName.test4;
|
|
26
28
|
let mailbox;
|
|
27
|
-
let hookAddress;
|
|
28
29
|
let ismAddress;
|
|
29
30
|
let ismFactory;
|
|
30
31
|
let factories;
|
|
@@ -38,8 +39,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
38
39
|
let baseConfig;
|
|
39
40
|
async function validateCoreValues(deployedToken) {
|
|
40
41
|
expect(await deployedToken.mailbox()).to.equal(mailbox.address);
|
|
41
|
-
expect(await deployedToken.hook()).to.equal(hookAddress);
|
|
42
|
-
expect(await deployedToken.interchainSecurityModule()).to.equal(constants.AddressZero);
|
|
43
42
|
expect(await deployedToken.owner()).to.equal(signer.address);
|
|
44
43
|
}
|
|
45
44
|
async function sendTxs(txs) {
|
|
@@ -60,7 +59,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
60
59
|
token = await erc20Factory.deploy(TOKEN_NAME, TOKEN_NAME, TOKEN_SUPPLY, TOKEN_DECIMALS);
|
|
61
60
|
baseConfig = routerConfigMap[chain];
|
|
62
61
|
mailbox = Mailbox__factory.connect(baseConfig.mailbox, signer);
|
|
63
|
-
hookAddress = await mailbox.defaultHook();
|
|
64
62
|
ismAddress = await mailbox.defaultIsm();
|
|
65
63
|
});
|
|
66
64
|
it('should create with a collateral config', async () => {
|
|
@@ -68,13 +66,13 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
68
66
|
...baseConfig,
|
|
69
67
|
type: TokenType.collateral,
|
|
70
68
|
token: token.address,
|
|
71
|
-
hook: hookAddress,
|
|
72
69
|
};
|
|
73
70
|
// Deploy using WarpModule
|
|
74
71
|
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
75
72
|
chain,
|
|
76
73
|
config,
|
|
77
74
|
multiProvider,
|
|
75
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
78
76
|
});
|
|
79
77
|
// Let's derive it's onchain token type
|
|
80
78
|
const { deployedTokenRoute } = evmERC20WarpModule.serialize();
|
|
@@ -87,7 +85,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
87
85
|
const config = {
|
|
88
86
|
type: TokenType.collateralVault,
|
|
89
87
|
token: vault.address,
|
|
90
|
-
hook: hookAddress,
|
|
91
88
|
...baseConfig,
|
|
92
89
|
};
|
|
93
90
|
// Deploy using WarpModule
|
|
@@ -95,6 +92,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
95
92
|
chain,
|
|
96
93
|
config,
|
|
97
94
|
multiProvider,
|
|
95
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
98
96
|
});
|
|
99
97
|
// Let's derive it's onchain token type
|
|
100
98
|
const { deployedTokenRoute } = evmERC20WarpModule.serialize();
|
|
@@ -108,19 +106,19 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
108
106
|
});
|
|
109
107
|
it('should create with a synthetic config', async () => {
|
|
110
108
|
const config = {
|
|
109
|
+
...baseConfig,
|
|
111
110
|
type: TokenType.synthetic,
|
|
112
|
-
hook: hookAddress,
|
|
113
111
|
name: TOKEN_NAME,
|
|
114
112
|
symbol: TOKEN_NAME,
|
|
115
113
|
decimals: TOKEN_DECIMALS,
|
|
116
114
|
totalSupply: TOKEN_SUPPLY,
|
|
117
|
-
...baseConfig,
|
|
118
115
|
};
|
|
119
116
|
// Deploy using WarpModule
|
|
120
117
|
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
121
118
|
chain,
|
|
122
119
|
config,
|
|
123
120
|
multiProvider,
|
|
121
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
124
122
|
});
|
|
125
123
|
// Let's derive it's onchain token type
|
|
126
124
|
const { deployedTokenRoute } = evmERC20WarpModule.serialize();
|
|
@@ -137,7 +135,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
137
135
|
it('should create with a native config', async () => {
|
|
138
136
|
const config = {
|
|
139
137
|
type: TokenType.native,
|
|
140
|
-
hook: hookAddress,
|
|
141
138
|
...baseConfig,
|
|
142
139
|
};
|
|
143
140
|
// Deploy using WarpModule
|
|
@@ -145,6 +142,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
145
142
|
chain,
|
|
146
143
|
config,
|
|
147
144
|
multiProvider,
|
|
145
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
148
146
|
});
|
|
149
147
|
// Let's derive it's onchain token type
|
|
150
148
|
const { deployedTokenRoute } = evmERC20WarpModule.serialize();
|
|
@@ -159,7 +157,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
159
157
|
const config = {
|
|
160
158
|
...baseConfig,
|
|
161
159
|
type: TokenType.native,
|
|
162
|
-
hook: hookAddress,
|
|
163
160
|
remoteRouters: randomRemoteRouters(numOfRouters),
|
|
164
161
|
};
|
|
165
162
|
// Deploy using WarpModule
|
|
@@ -167,32 +164,53 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
167
164
|
chain,
|
|
168
165
|
config,
|
|
169
166
|
multiProvider,
|
|
167
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
170
168
|
});
|
|
171
169
|
const { remoteRouters } = await evmERC20WarpModule.read();
|
|
172
170
|
expect(Object.keys(remoteRouters).length).to.equal(numOfRouters);
|
|
173
171
|
});
|
|
174
172
|
describe('Update', async () => {
|
|
173
|
+
const owner = randomAddress();
|
|
175
174
|
const ismConfigToUpdate = [
|
|
176
175
|
{
|
|
177
176
|
type: IsmType.TRUSTED_RELAYER,
|
|
178
|
-
relayer:
|
|
177
|
+
relayer: owner,
|
|
179
178
|
},
|
|
180
179
|
{
|
|
181
180
|
type: IsmType.FALLBACK_ROUTING,
|
|
182
|
-
owner:
|
|
181
|
+
owner: owner,
|
|
183
182
|
domains: {},
|
|
184
183
|
},
|
|
185
184
|
{
|
|
186
185
|
type: IsmType.PAUSABLE,
|
|
187
|
-
owner:
|
|
186
|
+
owner: owner,
|
|
188
187
|
paused: false,
|
|
189
188
|
},
|
|
190
189
|
];
|
|
190
|
+
const hookConfigToUpdate = [
|
|
191
|
+
{
|
|
192
|
+
type: HookType.PROTOCOL_FEE,
|
|
193
|
+
beneficiary: owner,
|
|
194
|
+
owner: owner,
|
|
195
|
+
maxProtocolFee: '1337',
|
|
196
|
+
protocolFee: '1337',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: HookType.INTERCHAIN_GAS_PAYMASTER,
|
|
200
|
+
owner: owner,
|
|
201
|
+
beneficiary: owner,
|
|
202
|
+
oracleKey: owner,
|
|
203
|
+
overhead: {},
|
|
204
|
+
oracleConfig: {},
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
type: HookType.MERKLE_TREE,
|
|
208
|
+
},
|
|
209
|
+
];
|
|
191
210
|
it('should deploy and set a new Ism', async () => {
|
|
192
211
|
const config = {
|
|
193
212
|
...baseConfig,
|
|
194
213
|
type: TokenType.native,
|
|
195
|
-
hook: hookAddress,
|
|
196
214
|
interchainSecurityModule: ismAddress,
|
|
197
215
|
};
|
|
198
216
|
// Deploy using WarpModule
|
|
@@ -200,12 +218,12 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
200
218
|
chain,
|
|
201
219
|
config,
|
|
202
220
|
multiProvider,
|
|
221
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
203
222
|
});
|
|
204
223
|
const actualConfig = await evmERC20WarpModule.read();
|
|
205
224
|
for (const interchainSecurityModule of ismConfigToUpdate) {
|
|
206
225
|
const expectedConfig = {
|
|
207
226
|
...actualConfig,
|
|
208
|
-
ismFactoryAddresses,
|
|
209
227
|
interchainSecurityModule,
|
|
210
228
|
};
|
|
211
229
|
await sendTxs(await evmERC20WarpModule.update(expectedConfig));
|
|
@@ -217,7 +235,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
217
235
|
const config = {
|
|
218
236
|
...baseConfig,
|
|
219
237
|
type: TokenType.native,
|
|
220
|
-
hook: hookAddress,
|
|
221
238
|
interchainSecurityModule: ismAddress,
|
|
222
239
|
};
|
|
223
240
|
// Deploy using WarpModule
|
|
@@ -225,6 +242,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
225
242
|
chain,
|
|
226
243
|
config,
|
|
227
244
|
multiProvider,
|
|
245
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
228
246
|
});
|
|
229
247
|
const actualConfig = await evmERC20WarpModule.read();
|
|
230
248
|
const owner = randomAddress();
|
|
@@ -235,7 +253,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
235
253
|
};
|
|
236
254
|
const expectedConfig = {
|
|
237
255
|
...actualConfig,
|
|
238
|
-
ismFactoryAddresses,
|
|
239
256
|
interchainSecurityModule,
|
|
240
257
|
};
|
|
241
258
|
await sendTxs(await evmERC20WarpModule.update(expectedConfig));
|
|
@@ -245,6 +262,75 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
245
262
|
const txs = await evmERC20WarpModule.update(expectedConfig);
|
|
246
263
|
expect(txs.length).to.equal(0);
|
|
247
264
|
});
|
|
265
|
+
it('should update and set a new Hook based on config', async () => {
|
|
266
|
+
const config = {
|
|
267
|
+
...baseConfig,
|
|
268
|
+
type: TokenType.native,
|
|
269
|
+
};
|
|
270
|
+
// Deploy using WarpModule
|
|
271
|
+
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
272
|
+
chain,
|
|
273
|
+
config,
|
|
274
|
+
multiProvider,
|
|
275
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
276
|
+
});
|
|
277
|
+
const actualConfig = await evmERC20WarpModule.read();
|
|
278
|
+
for (const hook of hookConfigToUpdate) {
|
|
279
|
+
const expectedConfig = {
|
|
280
|
+
...actualConfig,
|
|
281
|
+
hook,
|
|
282
|
+
};
|
|
283
|
+
await sendTxs(await evmERC20WarpModule.update(expectedConfig));
|
|
284
|
+
const updatedConfig = (await evmERC20WarpModule.read())
|
|
285
|
+
.hook;
|
|
286
|
+
expect(normalizeConfig(updatedConfig)).to.deep.equal(hook);
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
it('should set new deployed hook mailbox to WarpConfig.owner', async () => {
|
|
290
|
+
const config = {
|
|
291
|
+
...baseConfig,
|
|
292
|
+
type: TokenType.native,
|
|
293
|
+
};
|
|
294
|
+
// Deploy using WarpModule
|
|
295
|
+
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
296
|
+
chain,
|
|
297
|
+
config,
|
|
298
|
+
multiProvider,
|
|
299
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
300
|
+
});
|
|
301
|
+
const actualConfig = await evmERC20WarpModule.read();
|
|
302
|
+
const expectedConfig = {
|
|
303
|
+
...actualConfig,
|
|
304
|
+
hook: hookConfigToUpdate.find((c) => c.type === HookType.MERKLE_TREE),
|
|
305
|
+
};
|
|
306
|
+
await sendTxs(await evmERC20WarpModule.update(expectedConfig));
|
|
307
|
+
const updatedConfig = (await evmERC20WarpModule.read())
|
|
308
|
+
.hook;
|
|
309
|
+
const hook = MailboxClient__factory.connect(updatedConfig.address, multiProvider.getProvider(chain));
|
|
310
|
+
expect(await hook.mailbox()).to.equal(expectedConfig.mailbox);
|
|
311
|
+
});
|
|
312
|
+
it("should set Proxied Hook's proxyAdmins to WarpConfig.proxyAdmin", async () => {
|
|
313
|
+
const config = {
|
|
314
|
+
...baseConfig,
|
|
315
|
+
type: TokenType.native,
|
|
316
|
+
};
|
|
317
|
+
// Deploy using WarpModule
|
|
318
|
+
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
319
|
+
chain,
|
|
320
|
+
config,
|
|
321
|
+
multiProvider,
|
|
322
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
323
|
+
});
|
|
324
|
+
const actualConfig = await evmERC20WarpModule.read();
|
|
325
|
+
const expectedConfig = {
|
|
326
|
+
...actualConfig,
|
|
327
|
+
hook: hookConfigToUpdate.find((c) => c.type === HookType.INTERCHAIN_GAS_PAYMASTER),
|
|
328
|
+
};
|
|
329
|
+
await sendTxs(await evmERC20WarpModule.update(expectedConfig));
|
|
330
|
+
const updatedConfig = (await evmERC20WarpModule.read())
|
|
331
|
+
.hook;
|
|
332
|
+
expect(await proxyAdmin(multiProvider.getProvider(chain), updatedConfig.address)).to.equal(expectedConfig.proxyAdmin?.address);
|
|
333
|
+
});
|
|
248
334
|
it('should update a mutable Ism', async () => {
|
|
249
335
|
const ismConfig = {
|
|
250
336
|
type: IsmType.ROUTING,
|
|
@@ -265,18 +351,17 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
265
351
|
const config = {
|
|
266
352
|
...baseConfig,
|
|
267
353
|
type: TokenType.native,
|
|
268
|
-
hook: hookAddress,
|
|
269
354
|
interchainSecurityModule: deployedIsm,
|
|
270
355
|
};
|
|
271
356
|
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
272
357
|
chain,
|
|
273
358
|
config,
|
|
274
359
|
multiProvider,
|
|
360
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
275
361
|
});
|
|
276
362
|
const actualConfig = await evmERC20WarpModule.read();
|
|
277
363
|
const expectedConfig = {
|
|
278
364
|
...actualConfig,
|
|
279
|
-
ismFactoryAddresses,
|
|
280
365
|
interchainSecurityModule: {
|
|
281
366
|
type: IsmType.ROUTING,
|
|
282
367
|
owner: randomAddress(),
|
|
@@ -289,11 +374,10 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
289
374
|
const updatedConfig = normalizeConfig((await evmERC20WarpModule.read()).interchainSecurityModule);
|
|
290
375
|
expect(updatedConfig).to.deep.equal(expectedConfig.interchainSecurityModule);
|
|
291
376
|
});
|
|
292
|
-
it('should
|
|
377
|
+
it('should enroll connected routers', async () => {
|
|
293
378
|
const config = {
|
|
294
379
|
...baseConfig,
|
|
295
380
|
type: TokenType.native,
|
|
296
|
-
hook: hookAddress,
|
|
297
381
|
ismFactoryAddresses,
|
|
298
382
|
};
|
|
299
383
|
// Deploy using WarpModule
|
|
@@ -304,8 +388,9 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
304
388
|
interchainSecurityModule: ismAddress,
|
|
305
389
|
},
|
|
306
390
|
multiProvider,
|
|
391
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
307
392
|
});
|
|
308
|
-
const numOfRouters =
|
|
393
|
+
const numOfRouters = randomInt(10, 0);
|
|
309
394
|
await sendTxs(await evmERC20WarpModule.update({
|
|
310
395
|
...config,
|
|
311
396
|
remoteRouters: randomRemoteRouters(numOfRouters),
|
|
@@ -313,11 +398,40 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
313
398
|
const updatedConfig = await evmERC20WarpModule.read();
|
|
314
399
|
expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(numOfRouters);
|
|
315
400
|
});
|
|
316
|
-
it('should
|
|
401
|
+
it('should unenroll connected routers', async () => {
|
|
402
|
+
const config = {
|
|
403
|
+
...baseConfig,
|
|
404
|
+
type: TokenType.native,
|
|
405
|
+
ismFactoryAddresses,
|
|
406
|
+
};
|
|
407
|
+
// Deploy using WarpModule
|
|
408
|
+
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
409
|
+
chain,
|
|
410
|
+
config: {
|
|
411
|
+
...config,
|
|
412
|
+
interchainSecurityModule: ismAddress,
|
|
413
|
+
},
|
|
414
|
+
multiProvider,
|
|
415
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
416
|
+
});
|
|
417
|
+
const numOfRouters = randomInt(10, 0);
|
|
418
|
+
await sendTxs(await evmERC20WarpModule.update({
|
|
419
|
+
...config,
|
|
420
|
+
remoteRouters: randomRemoteRouters(numOfRouters),
|
|
421
|
+
}));
|
|
422
|
+
// Read config & delete remoteRouters
|
|
423
|
+
const existingConfig = await evmERC20WarpModule.read();
|
|
424
|
+
for (let i = 0; i < numOfRouters; i++) {
|
|
425
|
+
delete existingConfig.remoteRouters?.[i.toString()];
|
|
426
|
+
await sendTxs(await evmERC20WarpModule.update(existingConfig));
|
|
427
|
+
const updatedConfig = await evmERC20WarpModule.read();
|
|
428
|
+
expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(numOfRouters - (i + 1));
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
it('should replace an enrollment if they are new one different, if the config lengths are the same', async () => {
|
|
317
432
|
const config = {
|
|
318
433
|
...baseConfig,
|
|
319
434
|
type: TokenType.native,
|
|
320
|
-
hook: hookAddress,
|
|
321
435
|
ismFactoryAddresses,
|
|
322
436
|
};
|
|
323
437
|
// Deploy using WarpModule
|
|
@@ -328,6 +442,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
328
442
|
interchainSecurityModule: ismAddress,
|
|
329
443
|
},
|
|
330
444
|
multiProvider,
|
|
445
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
331
446
|
});
|
|
332
447
|
const remoteRouters = randomRemoteRouters(1);
|
|
333
448
|
await sendTxs(await evmERC20WarpModule.update({
|
|
@@ -344,22 +459,25 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
344
459
|
expect(txs.length).to.equal(0);
|
|
345
460
|
await sendTxs(txs);
|
|
346
461
|
// Try to extend with the different remoteRouters, but same length
|
|
462
|
+
const extendedRemoteRouter = {
|
|
463
|
+
3: {
|
|
464
|
+
address: randomAddress(),
|
|
465
|
+
},
|
|
466
|
+
};
|
|
347
467
|
txs = await evmERC20WarpModule.update({
|
|
348
468
|
...config,
|
|
349
|
-
remoteRouters:
|
|
350
|
-
3: randomAddress(),
|
|
351
|
-
},
|
|
469
|
+
remoteRouters: extendedRemoteRouter,
|
|
352
470
|
});
|
|
353
|
-
expect(txs.length).to.equal(
|
|
471
|
+
expect(txs.length).to.equal(2);
|
|
354
472
|
await sendTxs(txs);
|
|
355
473
|
updatedConfig = await evmERC20WarpModule.read();
|
|
356
|
-
expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(
|
|
474
|
+
expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(1);
|
|
475
|
+
expect(updatedConfig.remoteRouters?.['3'].address.toLowerCase()).to.be.eq(extendedRemoteRouter['3'].address.toLowerCase());
|
|
357
476
|
});
|
|
358
477
|
it('should update the owner only if they are different', async () => {
|
|
359
478
|
const config = {
|
|
360
479
|
...baseConfig,
|
|
361
480
|
type: TokenType.native,
|
|
362
|
-
hook: hookAddress,
|
|
363
481
|
ismFactoryAddresses,
|
|
364
482
|
};
|
|
365
483
|
const owner = signer.address.toLowerCase();
|
|
@@ -370,6 +488,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
370
488
|
interchainSecurityModule: ismAddress,
|
|
371
489
|
},
|
|
372
490
|
multiProvider,
|
|
491
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
373
492
|
});
|
|
374
493
|
const currentConfig = await evmERC20WarpModule.read();
|
|
375
494
|
expect(currentConfig.owner.toLowerCase()).to.equal(owner);
|
|
@@ -391,8 +510,6 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
391
510
|
const config = {
|
|
392
511
|
...baseConfig,
|
|
393
512
|
type: TokenType.native,
|
|
394
|
-
hook: hookAddress,
|
|
395
|
-
ismFactoryAddresses,
|
|
396
513
|
};
|
|
397
514
|
const owner = signer.address.toLowerCase();
|
|
398
515
|
const evmERC20WarpModule = await EvmERC20WarpModule.create({
|
|
@@ -402,6 +519,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
402
519
|
interchainSecurityModule: ismAddress,
|
|
403
520
|
},
|
|
404
521
|
multiProvider,
|
|
522
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
405
523
|
});
|
|
406
524
|
const currentConfig = await evmERC20WarpModule.read();
|
|
407
525
|
expect(currentConfig.proxyAdmin?.owner.toLowerCase()).to.equal(owner);
|
|
@@ -427,10 +545,10 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
427
545
|
const config = {
|
|
428
546
|
...baseConfig,
|
|
429
547
|
type: TokenType.native,
|
|
430
|
-
hook: hookAddress,
|
|
431
|
-
ismFactoryAddresses,
|
|
432
548
|
remoteRouters: {
|
|
433
|
-
[domain]:
|
|
549
|
+
[domain]: {
|
|
550
|
+
address: randomAddress(),
|
|
551
|
+
},
|
|
434
552
|
},
|
|
435
553
|
};
|
|
436
554
|
// Deploy using WarpModule
|
|
@@ -440,6 +558,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
|
|
|
440
558
|
...config,
|
|
441
559
|
},
|
|
442
560
|
multiProvider,
|
|
561
|
+
proxyFactoryFactories: ismFactoryAddresses,
|
|
443
562
|
});
|
|
444
563
|
await sendTxs(await evmERC20WarpModule.update({
|
|
445
564
|
...config,
|