@hyperlane-xyz/deploy-sdk 3.0.0 → 3.1.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.
@@ -3,14 +3,12 @@ import { ChainLookup, ChainMetadataForAltVM } from '@hyperlane-xyz/provider-sdk/
3
3
  import { CoreModuleType, DerivedCoreConfig } from '@hyperlane-xyz/provider-sdk/core';
4
4
  import { HypReader } from '@hyperlane-xyz/provider-sdk/module';
5
5
  import { Address, Logger } from '@hyperlane-xyz/utils';
6
- import { HookReader } from './hook/hook-reader.js';
7
6
  export declare class AltVMCoreReader implements HypReader<CoreModuleType> {
8
7
  protected readonly chainMetadata: ChainMetadataForAltVM;
9
8
  protected readonly chainLookup: ChainLookup;
10
9
  protected readonly provider: AltVM.IProvider;
11
10
  protected readonly logger: Logger;
12
11
  private readonly ismReader;
13
- protected readonly hookReader: HookReader;
14
12
  constructor(chainMetadata: ChainMetadataForAltVM, chainLookup: ChainLookup, provider: AltVM.IProvider);
15
13
  read(address: string): Promise<DerivedCoreConfig>;
16
14
  deriveCoreConfig(mailboxAddress: Address): Promise<DerivedCoreConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"AltVMCoreReader.d.ts","sourceRoot":"","sources":["../src/AltVMCoreReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EACL,WAAW,EACX,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAoB,MAAM,uBAAuB,CAAC;AAGrE,qBAAa,eAAgB,YAAW,SAAS,CAAC,cAAc,CAAC;IAQ7D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB;IACvD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS;IAT9C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;gBAGrB,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,KAAK,CAAC,SAAS;IAMxC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjD,gBAAgB,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAc5E"}
1
+ {"version":3,"file":"AltVMCoreReader.d.ts","sourceRoot":"","sources":["../src/AltVMCoreReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EACL,WAAW,EACX,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAKnE,qBAAa,eAAgB,YAAW,SAAS,CAAC,cAAc,CAAC;IAO7D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB;IACvD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS;IAR9C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAGjB,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,KAAK,CAAC,SAAS;IAKxC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjD,gBAAgB,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAgB5E"}
@@ -9,12 +9,10 @@ export class AltVMCoreReader {
9
9
  module: 'AltVMCoreReader',
10
10
  });
11
11
  ismReader;
12
- hookReader;
13
12
  constructor(chainMetadata, chainLookup, provider) {
14
13
  this.chainMetadata = chainMetadata;
15
14
  this.chainLookup = chainLookup;
16
15
  this.provider = provider;
17
- this.hookReader = createHookReader(this.chainMetadata, this.chainLookup);
18
16
  this.ismReader = createIsmReader(this.chainMetadata, this.chainLookup);
19
17
  }
20
18
  async read(address) {
@@ -24,11 +22,14 @@ export class AltVMCoreReader {
24
22
  const mailbox = await this.provider.getMailbox({
25
23
  mailboxAddress: mailboxAddress,
26
24
  });
25
+ const hookReader = createHookReader(this.chainMetadata, this.chainLookup, {
26
+ mailbox: mailboxAddress,
27
+ });
27
28
  return {
28
29
  owner: mailbox.owner,
29
30
  defaultIsm: await this.ismReader.deriveIsmConfig(mailbox.defaultIsm),
30
- defaultHook: await this.hookReader.deriveHookConfig(mailbox.defaultHook),
31
- requiredHook: await this.hookReader.deriveHookConfig(mailbox.requiredHook),
31
+ defaultHook: await hookReader.deriveHookConfig(mailbox.defaultHook),
32
+ requiredHook: await hookReader.deriveHookConfig(mailbox.requiredHook),
32
33
  };
33
34
  }
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AltVMCoreReader.js","sourceRoot":"","sources":["../src/AltVMCoreReader.ts"],"names":[],"mappings":"AAUA,OAAO,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAc,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAa,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,OAAO,eAAe;IAQL;IACA;IACA;IATF,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,iBAAiB;KAC1B,CAAC,CAAC;IACc,SAAS,CAAY;IACnB,UAAU,CAAa;IAE1C,YACqB,aAAoC,EACpC,WAAwB,EACxB,QAAyB;QAFzB,kBAAa,GAAb,aAAa,CAAuB;QACpC,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAiB;QAE5C,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,cAAuB;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC7C,cAAc,EAAE,cAAc;SAC/B,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;YACpE,WAAW,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC;YACxE,YAAY,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAClD,OAAO,CAAC,YAAY,CACrB;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"AltVMCoreReader.js","sourceRoot":"","sources":["../src/AltVMCoreReader.ts"],"names":[],"mappings":"AAUA,OAAO,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAa,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,OAAO,eAAe;IAOL;IACA;IACA;IARF,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,iBAAiB;KAC1B,CAAC,CAAC;IACc,SAAS,CAAY;IAEtC,YACqB,aAAoC,EACpC,WAAwB,EACxB,QAAyB;QAFzB,kBAAa,GAAb,aAAa,CAAuB;QACpC,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAiB;QAE5C,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,cAAuB;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC7C,cAAc,EAAE,cAAc;SAC/B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE;YACxE,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;YACpE,WAAW,EAAE,MAAM,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC;YACnE,YAAY,EAAE,MAAM,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC;SACtE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ import { ChainMetadataForAltVM } from '@hyperlane-xyz/provider-sdk';
2
+ import { ArtifactReader } from '@hyperlane-xyz/provider-sdk/artifact';
3
+ import { ChainLookup } from '@hyperlane-xyz/provider-sdk/chain';
4
+ import { DerivedCoreConfig } from '@hyperlane-xyz/provider-sdk/core';
5
+ import { DeployedMailboxAddress, DeployedMailboxArtifact, IRawMailboxArtifactManager, MailboxOnChain } from '@hyperlane-xyz/provider-sdk/mailbox';
6
+ import { Logger } from '@hyperlane-xyz/utils';
7
+ /**
8
+ * Core Artifact Reader - composite artifact reader that orchestrates mailbox, ISM, and hook readers.
9
+ *
10
+ * This implements the artifact API pattern at the "composite" level in deploy-sdk.
11
+ * It takes a mailbox address and returns a fully expanded MailboxOnChain artifact with
12
+ * all nested ISM and hook configurations read from the chain.
13
+ *
14
+ * Architecture:
15
+ * - Raw level: IRawMailboxArtifactManager (protocol-specific, in radix-sdk, cosmos-sdk, etc.)
16
+ * - Composite level: CoreArtifactReader (this class, in deploy-sdk)
17
+ *
18
+ * The raw mailbox reader returns UNDERIVED ISM/hook references (just addresses).
19
+ * This composite reader expands them into full DEPLOYED artifacts with complete configs.
20
+ */
21
+ export declare class CoreArtifactReader implements ArtifactReader<MailboxOnChain, DeployedMailboxAddress> {
22
+ protected readonly mailboxArtifactManager: IRawMailboxArtifactManager;
23
+ protected readonly chainMetadata: ChainMetadataForAltVM;
24
+ protected readonly chainLookup: ChainLookup;
25
+ protected readonly logger: Logger;
26
+ private readonly ismReader;
27
+ constructor(mailboxArtifactManager: IRawMailboxArtifactManager, chainMetadata: ChainMetadataForAltVM, chainLookup: ChainLookup);
28
+ /**
29
+ * Read mailbox configuration and expand all nested ISM/hook configs.
30
+ *
31
+ * Takes a mailbox address, reads the raw mailbox config (which has UNDERIVED ISM/hook references),
32
+ * then recursively reads and expands all nested ISM and hook artifacts.
33
+ *
34
+ * @param mailboxAddress The deployed mailbox address
35
+ * @returns Fully expanded mailbox artifact with all nested configs in DEPLOYED state
36
+ */
37
+ read(mailboxAddress: string): Promise<DeployedMailboxArtifact>;
38
+ /**
39
+ * Backward compatibility method: convert deployed mailbox artifact to DerivedCoreConfig.
40
+ *
41
+ * This allows CoreArtifactReader to be used as a drop-in replacement for AltVMCoreReader.
42
+ * Existing code expects the deriveCoreConfig() method returning DerivedCoreConfig format.
43
+ *
44
+ * @param mailboxAddress The deployed mailbox address
45
+ * @returns DerivedCoreConfig in the legacy format
46
+ */
47
+ deriveCoreConfig(mailboxAddress: string): Promise<DerivedCoreConfig>;
48
+ }
49
+ //# sourceMappingURL=core-artifact-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-artifact-reader.d.ts","sourceRoot":"","sources":["../../src/core/core-artifact-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACL,cAAc,EAEf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,EAEf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAA8B,MAAM,sBAAsB,CAAC;AAM1E;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,YAAW,cAAc,CACvD,cAAc,EACd,sBAAsB,CACvB;IAOG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,0BAA0B;IACrE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB;IACvD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAR7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAGjB,sBAAsB,EAAE,0BAA0B,EAClD,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW;IAK7C;;;;;;;;OAQG;IACG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA0CpE;;;;;;;;OAQG;IACG,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAQ3E"}
@@ -0,0 +1,97 @@
1
+ import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
2
+ import { hookArtifactToDerivedConfig } from '@hyperlane-xyz/provider-sdk/hook';
3
+ import { mailboxArtifactToDerivedCoreConfig, } from '@hyperlane-xyz/provider-sdk/mailbox';
4
+ import { isEmptyAddress, rootLogger } from '@hyperlane-xyz/utils';
5
+ import { createHookReader } from '../hook/hook-reader.js';
6
+ import { createIsmReader } from '../ism/generic-ism.js';
7
+ import { ismArtifactToDerivedConfig } from '@hyperlane-xyz/provider-sdk/ism';
8
+ /**
9
+ * Core Artifact Reader - composite artifact reader that orchestrates mailbox, ISM, and hook readers.
10
+ *
11
+ * This implements the artifact API pattern at the "composite" level in deploy-sdk.
12
+ * It takes a mailbox address and returns a fully expanded MailboxOnChain artifact with
13
+ * all nested ISM and hook configurations read from the chain.
14
+ *
15
+ * Architecture:
16
+ * - Raw level: IRawMailboxArtifactManager (protocol-specific, in radix-sdk, cosmos-sdk, etc.)
17
+ * - Composite level: CoreArtifactReader (this class, in deploy-sdk)
18
+ *
19
+ * The raw mailbox reader returns UNDERIVED ISM/hook references (just addresses).
20
+ * This composite reader expands them into full DEPLOYED artifacts with complete configs.
21
+ */
22
+ export class CoreArtifactReader {
23
+ mailboxArtifactManager;
24
+ chainMetadata;
25
+ chainLookup;
26
+ logger = rootLogger.child({
27
+ module: CoreArtifactReader.name,
28
+ });
29
+ ismReader;
30
+ constructor(mailboxArtifactManager, chainMetadata, chainLookup) {
31
+ this.mailboxArtifactManager = mailboxArtifactManager;
32
+ this.chainMetadata = chainMetadata;
33
+ this.chainLookup = chainLookup;
34
+ this.ismReader = createIsmReader(this.chainMetadata, this.chainLookup);
35
+ }
36
+ /**
37
+ * Read mailbox configuration and expand all nested ISM/hook configs.
38
+ *
39
+ * Takes a mailbox address, reads the raw mailbox config (which has UNDERIVED ISM/hook references),
40
+ * then recursively reads and expands all nested ISM and hook artifacts.
41
+ *
42
+ * @param mailboxAddress The deployed mailbox address
43
+ * @returns Fully expanded mailbox artifact with all nested configs in DEPLOYED state
44
+ */
45
+ async read(mailboxAddress) {
46
+ // 1. Read raw mailbox config - returns UNDERIVED ISM/hook references (just addresses)
47
+ const rawMailbox = await this.mailboxArtifactManager.readMailbox(mailboxAddress);
48
+ // 2. Expand nested ISM and hooks using specialized readers
49
+ // Hook reader is created per-read with mailbox context (needed for SVM hook detection)
50
+ // Skip reading when address is empty (undefined, null, empty string, or zeroish)
51
+ const hookReader = createHookReader(this.chainMetadata, this.chainLookup, {
52
+ mailbox: mailboxAddress,
53
+ });
54
+ const defaultIsmAddr = rawMailbox.config.defaultIsm.deployed.address;
55
+ const defaultHookAddr = rawMailbox.config.defaultHook.deployed.address;
56
+ const requiredHookAddr = rawMailbox.config.requiredHook.deployed.address;
57
+ const [defaultIsmArtifact, defaultHookArtifact, requiredHookArtifact] = await Promise.all([
58
+ isEmptyAddress(defaultIsmAddr)
59
+ ? rawMailbox.config.defaultIsm
60
+ : this.ismReader.read(defaultIsmAddr),
61
+ isEmptyAddress(defaultHookAddr)
62
+ ? rawMailbox.config.defaultHook
63
+ : hookReader.read(defaultHookAddr),
64
+ isEmptyAddress(requiredHookAddr)
65
+ ? rawMailbox.config.requiredHook
66
+ : hookReader.read(requiredHookAddr),
67
+ ]);
68
+ // 3. Return fully expanded mailbox artifact
69
+ return {
70
+ artifactState: ArtifactState.DEPLOYED,
71
+ config: {
72
+ owner: rawMailbox.config.owner,
73
+ defaultIsm: defaultIsmArtifact,
74
+ defaultHook: defaultHookArtifact,
75
+ requiredHook: requiredHookArtifact,
76
+ },
77
+ deployed: rawMailbox.deployed,
78
+ };
79
+ }
80
+ /**
81
+ * Backward compatibility method: convert deployed mailbox artifact to DerivedCoreConfig.
82
+ *
83
+ * This allows CoreArtifactReader to be used as a drop-in replacement for AltVMCoreReader.
84
+ * Existing code expects the deriveCoreConfig() method returning DerivedCoreConfig format.
85
+ *
86
+ * @param mailboxAddress The deployed mailbox address
87
+ * @returns DerivedCoreConfig in the legacy format
88
+ */
89
+ async deriveCoreConfig(mailboxAddress) {
90
+ const artifact = await this.read(mailboxAddress);
91
+ return mailboxArtifactToDerivedCoreConfig(artifact, this.chainLookup, {
92
+ ismArtifactToDerivedConfig,
93
+ hookArtifactToDerivedConfig,
94
+ });
95
+ }
96
+ }
97
+ //# sourceMappingURL=core-artifact-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-artifact-reader.js","sourceRoot":"","sources":["../../src/core/core-artifact-reader.ts"],"names":[],"mappings":"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"}
@@ -10,15 +10,18 @@ import { Logger } from '@hyperlane-xyz/utils';
10
10
  *
11
11
  * @param chainMetadata Chain metadata for the target chain (protocol type is extracted from metadata.protocol)
12
12
  * @param chainLookup Chain lookup interface for resolving chain names and domain IDs
13
+ * @param context Optional deployment context (e.g. mailbox address needed by SVM for merkle tree hook detection)
13
14
  * @returns A HookReader instance
14
15
  *
15
16
  * @example
16
17
  * ```typescript
17
- * const reader = createHookReader(chainMetadata, chainLookup);
18
+ * const reader = createHookReader(chainMetadata, chainLookup, { mailbox: mailboxAddress });
18
19
  * const hookConfig = await reader.read(hookAddress);
19
20
  * ```
20
21
  */
21
- export declare function createHookReader(chainMetadata: ChainMetadataForAltVM, chainLookup: ChainLookup): HookReader;
22
+ export declare function createHookReader(chainMetadata: ChainMetadataForAltVM, chainLookup: ChainLookup, context?: {
23
+ mailbox?: string;
24
+ }): HookReader;
22
25
  /**
23
26
  * Generic Hook Reader that can read any hook type by detecting its type.
24
27
  * Unlike ISMs, hooks don't have composite/nested types, so no recursive expansion needed.
@@ -1 +1 @@
1
- {"version":3,"file":"hook-reader.d.ts","sourceRoot":"","sources":["../../src/hook/hook-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,GACvB,UAAU,CAMZ;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,cAAc,CAC/C,kBAAkB,EAClB,mBAAmB,CACpB;IAMG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAN7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGkB,eAAe,EAAE,uBAAuB,EACxC,WAAW,EAAE,WAAW;IAGvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK1D;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAIpE"}
1
+ {"version":3,"file":"hook-reader.d.ts","sourceRoot":"","sources":["../../src/hook/hook-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,UAAU,CAMZ;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,cAAc,CAC/C,kBAAkB,EAClB,mBAAmB,CACpB;IAMG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAN7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGkB,eAAe,EAAE,uBAAuB,EACxC,WAAW,EAAE,WAAW;IAGvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK1D;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAIpE"}
@@ -8,17 +8,18 @@ import { rootLogger } from '@hyperlane-xyz/utils';
8
8
  *
9
9
  * @param chainMetadata Chain metadata for the target chain (protocol type is extracted from metadata.protocol)
10
10
  * @param chainLookup Chain lookup interface for resolving chain names and domain IDs
11
+ * @param context Optional deployment context (e.g. mailbox address needed by SVM for merkle tree hook detection)
11
12
  * @returns A HookReader instance
12
13
  *
13
14
  * @example
14
15
  * ```typescript
15
- * const reader = createHookReader(chainMetadata, chainLookup);
16
+ * const reader = createHookReader(chainMetadata, chainLookup, { mailbox: mailboxAddress });
16
17
  * const hookConfig = await reader.read(hookAddress);
17
18
  * ```
18
19
  */
19
- export function createHookReader(chainMetadata, chainLookup) {
20
+ export function createHookReader(chainMetadata, chainLookup, context) {
20
21
  const protocolProvider = getProtocolProvider(chainMetadata.protocol);
21
- const artifactManager = protocolProvider.createHookArtifactManager(chainMetadata);
22
+ const artifactManager = protocolProvider.createHookArtifactManager(chainMetadata, context);
22
23
  return new HookReader(artifactManager, chainLookup);
23
24
  }
24
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hook-reader.js","sourceRoot":"","sources":["../../src/hook/hook-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAML,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAC9B,aAAoC,EACpC,WAAwB;IAExB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,eAAe,GACnB,gBAAgB,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAE5D,OAAO,IAAI,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,UAAU;IASA;IACA;IANF,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,UAAU,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,YACqB,eAAwC,EACxC,WAAwB;QADxB,oBAAe,GAAf,eAAe,CAAyB;QACxC,gBAAW,GAAX,WAAW,CAAa;IAC1C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,kEAAkE;QAClE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;CACF"}
1
+ {"version":3,"file":"hook-reader.js","sourceRoot":"","sources":["../../src/hook/hook-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAML,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC9B,aAAoC,EACpC,WAAwB,EACxB,OAA8B;IAE9B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,eAAe,GACnB,gBAAgB,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAErE,OAAO,IAAI,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,UAAU;IASA;IACA;IANF,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,UAAU,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,YACqB,eAAwC,EACxC,WAAwB;QADxB,oBAAe,GAAf,eAAe,CAAyB;QACxC,gBAAW,GAAX,WAAW,CAAa;IAC1C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,kEAAkE;QAClE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { AltVMJsonRpcSubmitter } from './AltVMJsonRpcSubmitter.js';
2
2
  export { AltVMCoreModule } from './AltVMCoreModule.js';
3
3
  export { AltVMCoreReader } from './AltVMCoreReader.js';
4
4
  export { coreModuleProvider } from './core-module.js';
5
+ export { CoreArtifactReader } from './core/core-artifact-reader.js';
5
6
  export { createHookReader } from './hook/hook-reader.js';
6
7
  export { HookWriter, createHookWriter } from './hook/hook-writer.js';
7
8
  export { createIsmReader } from './ism/generic-ism.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { AltVMJsonRpcSubmitter } from './AltVMJsonRpcSubmitter.js';
5
5
  export { AltVMCoreModule } from './AltVMCoreModule.js';
6
6
  export { AltVMCoreReader } from './AltVMCoreReader.js';
7
7
  export { coreModuleProvider } from './core-module.js';
8
+ export { CoreArtifactReader } from './core/core-artifact-reader.js';
8
9
  export { createHookReader } from './hook/hook-reader.js';
9
10
  export { HookWriter, createHookWriter } from './hook/hook-writer.js';
10
11
  export { createIsmReader } from './ism/generic-ism.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,qFAAqF;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,qFAAqF;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generic-ism.d.ts","sourceRoot":"","sources":["../../src/ism/generic-ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,cAAc,EAGf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAEhB,sBAAsB,EACtB,iBAAiB,EAGlB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,GACvB,SAAS,CAMX;AAiDD;;;GAGG;AACH,qBAAa,SAAU,YAAW,cAAc,CAC9C,iBAAiB,EACjB,kBAAkB,CACnB;IAMG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB;IAC1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAN7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGkB,eAAe,EAAE,sBAAsB,EACvC,WAAW,EAAE,WAAW;IAGvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkBzD;;;OAGG;YACW,gBAAgB;IAwC9B;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIlE"}
1
+ {"version":3,"file":"generic-ism.d.ts","sourceRoot":"","sources":["../../src/ism/generic-ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,cAAc,EAEf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EAIlB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,GACvB,SAAS,CAMX;AAED;;;GAGG;AACH,qBAAa,SAAU,YAAW,cAAc,CAC9C,iBAAiB,EACjB,kBAAkB,CACnB;IAMG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB;IAC1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAN7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGkB,eAAe,EAAE,sBAAsB,EACvC,WAAW,EAAE,WAAW;IAGvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkBzD;;;OAGG;YACW,gBAAgB;IAwC9B;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIlE"}
@@ -1,5 +1,6 @@
1
1
  import { AltVM, getProtocolProvider, } from '@hyperlane-xyz/provider-sdk';
2
- import { isArtifactDeployed, isArtifactUnderived, } from '@hyperlane-xyz/provider-sdk/artifact';
2
+ import { isArtifactDeployed, } from '@hyperlane-xyz/provider-sdk/artifact';
3
+ import { ismArtifactToDerivedConfig, } from '@hyperlane-xyz/provider-sdk/ism';
3
4
  import { rootLogger } from '@hyperlane-xyz/utils';
4
5
  /**
5
6
  * Factory function to create an IsmReader instance.
@@ -21,44 +22,6 @@ export function createIsmReader(chainMetadata, chainLookup) {
21
22
  const artifactManager = protocolProvider.createIsmArtifactManager(chainMetadata);
22
23
  return new IsmReader(artifactManager, chainLookup);
23
24
  }
24
- /**
25
- * Converts a DeployedIsmArtifact to DerivedIsmConfig format.
26
- * This handles the conversion between the new Artifact API and the old Config API.
27
- */
28
- function artifactToDerivedConfig(artifact, chainLookup) {
29
- const config = artifact.config;
30
- const address = artifact.deployed.address;
31
- // For routing ISMs, recursively convert nested artifacts
32
- if (config.type === AltVM.IsmType.ROUTING) {
33
- const domains = {};
34
- for (const [domainId, nestedArtifact] of Object.entries(config.domains)) {
35
- // Convert numeric domain ID to chain name for the config output
36
- const chainName = chainLookup.getChainName(parseInt(domainId));
37
- if (!chainName) {
38
- // Skip unknown domains (already warned during expand)
39
- continue;
40
- }
41
- if (isArtifactUnderived(nestedArtifact)) {
42
- domains[chainName] = nestedArtifact.deployed.address;
43
- }
44
- else if (isArtifactDeployed(nestedArtifact)) {
45
- domains[chainName] = artifactToDerivedConfig(nestedArtifact, chainLookup);
46
- }
47
- // Note: ArtifactState.NEW should never occur in expanded routing configs
48
- }
49
- return {
50
- type: 'domainRoutingIsm',
51
- owner: config.owner,
52
- domains,
53
- address,
54
- };
55
- }
56
- // For other ISM types, just add the address
57
- return {
58
- ...config,
59
- address,
60
- };
61
- }
62
25
  /**
63
26
  * Generic ISM Reader that can read any ISM type by detecting its type
64
27
  * and recursively expanding nested ISMs (e.g., for routing ISMs).
@@ -126,7 +89,7 @@ export class IsmReader {
126
89
  */
127
90
  async deriveIsmConfig(address) {
128
91
  const artifact = await this.read(address);
129
- return artifactToDerivedConfig(artifact, this.chainLookup);
92
+ return ismArtifactToDerivedConfig(artifact, this.chainLookup);
130
93
  }
131
94
  }
132
95
  //# sourceMappingURL=generic-ism.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generic-ism.js","sourceRoot":"","sources":["../../src/ism/generic-ism.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-ism.js","sourceRoot":"","sources":["../../src/ism/generic-ism.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,iBA4BnC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,iBAkCnC"}
package/dist/protocol.js CHANGED
@@ -22,6 +22,11 @@ export async function loadProtocolProviders(neededProtocols) {
22
22
  registerProtocol(protocol, () => new AleoProtocolProvider());
23
23
  break;
24
24
  }
25
+ case ProtocolType.Sealevel: {
26
+ const { SealevelProtocolProvider } = await import('@hyperlane-xyz/sealevel-sdk');
27
+ registerProtocol(protocol, () => new SealevelProtocolProvider());
28
+ break;
29
+ }
25
30
  }
26
31
  }
27
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,eAAkC;IAElC,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,4BAA4B,EAAE,GACpC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,qBAAqB,EAAE,GAC7B,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,oBAAoB,EAAE,GAC5B,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAC1C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,eAAkC;IAElC,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,4BAA4B,EAAE,GACpC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,qBAAqB,EAAE,GAC7B,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,oBAAoB,EAAE,GAC5B,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAC1C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,wBAAwB,EAAE,GAChC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;gBACjE,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -2,7 +2,6 @@ import { ChainMetadataForAltVM } from '@hyperlane-xyz/provider-sdk';
2
2
  import { ArtifactReader } from '@hyperlane-xyz/provider-sdk/artifact';
3
3
  import { ChainLookup } from '@hyperlane-xyz/provider-sdk/chain';
4
4
  import { DeployedWarpAddress, DeployedWarpArtifact, DerivedWarpConfig, IRawWarpArtifactManager, WarpArtifactConfig } from '@hyperlane-xyz/provider-sdk/warp';
5
- import { HookReader } from '../hook/hook-reader.js';
6
5
  import { IsmReader } from '../ism/generic-ism.js';
7
6
  /**
8
7
  * Generic Warp Token Reader that can read any warp token type by detecting its type
@@ -13,7 +12,6 @@ export declare class WarpTokenReader implements ArtifactReader<WarpArtifactConfi
13
12
  protected readonly chainMetadata: ChainMetadataForAltVM;
14
13
  protected readonly chainLookup: ChainLookup;
15
14
  protected readonly ismReader: IsmReader;
16
- protected readonly hookReader: HookReader;
17
15
  constructor(artifactManager: IRawWarpArtifactManager, chainMetadata: ChainMetadataForAltVM, chainLookup: ChainLookup);
18
16
  read(address: string): Promise<DeployedWarpArtifact>;
19
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"warp-reader.d.ts","sourceRoot":"","sources":["../../src/warp/warp-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,cAAc,EAGf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAWhE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AAEnE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,cAAc,CACpD,kBAAkB,EAClB,mBAAmB,CACpB;IAKG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB;IAC3D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB;IACvD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAN7C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;gBAGrB,eAAe,EAAE,uBAAuB,EACxC,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW;IAMvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwB1D;;;OAGG;YACW,iBAAiB;IAuB/B;;;OAGG;YACW,kBAAkB;IAuBhC;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAIpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,GACvB,eAAe,CAMjB"}
1
+ {"version":3,"file":"warp-reader.d.ts","sourceRoot":"","sources":["../../src/warp/warp-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,cAAc,EAGf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAWhE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AAEnE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,cAAc,CACpD,kBAAkB,EAClB,mBAAmB,CACpB;IAIG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB;IAC3D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB;IACvD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAL7C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;gBAGnB,eAAe,EAAE,uBAAuB,EACxC,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW;IAKvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8B1D;;;OAGG;YACW,iBAAiB;IAuB/B;;;OAGG;YACW,kBAAkB;IAwBhC;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAIpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,GACvB,eAAe,CAMjB"}
@@ -12,21 +12,23 @@ export class WarpTokenReader {
12
12
  chainMetadata;
13
13
  chainLookup;
14
14
  ismReader;
15
- hookReader;
16
15
  constructor(artifactManager, chainMetadata, chainLookup) {
17
16
  this.artifactManager = artifactManager;
18
17
  this.chainMetadata = chainMetadata;
19
18
  this.chainLookup = chainLookup;
20
19
  this.ismReader = createIsmReader(chainMetadata, chainLookup);
21
- this.hookReader = createHookReader(chainMetadata, chainLookup);
22
20
  }
23
21
  async read(address) {
24
22
  // Read warp token via artifactManager - detects type and returns raw config
25
23
  const rawArtifact = await this.artifactManager.readWarpToken(address);
24
+ // Create hook reader with mailbox context from the warp config
25
+ const hookReader = createHookReader(this.chainMetadata, this.chainLookup, {
26
+ mailbox: rawArtifact.config.mailbox,
27
+ });
26
28
  // Expand nested ISM artifact if present
27
29
  const expandedIsmArtifact = await this.expandIsmArtifact(rawArtifact.config.interchainSecurityModule);
28
30
  // Expand nested Hook artifact if present
29
- const expandedHookArtifact = await this.expandHookArtifact(rawArtifact.config.hook);
31
+ const expandedHookArtifact = await this.expandHookArtifact(hookReader, rawArtifact.config.hook);
30
32
  return {
31
33
  ...rawArtifact,
32
34
  config: {
@@ -59,13 +61,13 @@ export class WarpTokenReader {
59
61
  * Expands a Hook artifact by recursively reading it if underived.
60
62
  * Returns undefined if no Hook is configured.
61
63
  */
62
- async expandHookArtifact(hookArtifact) {
64
+ async expandHookArtifact(hookReader, hookArtifact) {
63
65
  if (!hookArtifact) {
64
66
  return undefined;
65
67
  }
66
68
  // If Hook is underived (just an address), read it recursively to get full config
67
69
  if (isArtifactUnderived(hookArtifact)) {
68
- return this.hookReader.read(hookArtifact.deployed.address);
70
+ return hookReader.read(hookArtifact.deployed.address);
69
71
  }
70
72
  // If already a full deployed artifact, use as-is
71
73
  if (isArtifactDeployed(hookArtifact)) {
@@ -1 +1 @@
1
- {"version":3,"file":"warp-reader.js","sourceRoot":"","sources":["../../src/warp/warp-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warp-reader.js","sourceRoot":"","sources":["../../src/warp/warp-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sCAAsC,CAAC;AAY9C,OAAO,EAML,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAc,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAa,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;GAGG;AACH,MAAM,OAAO,eAAe;IAOL;IACA;IACA;IALF,SAAS,CAAY;IAExC,YACqB,eAAwC,EACxC,aAAoC,EACpC,WAAwB;QAFxB,oBAAe,GAAf,eAAe,CAAyB;QACxC,kBAAa,GAAb,aAAa,CAAuB;QACpC,gBAAW,GAAX,WAAW,CAAa;QAE3C,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,4EAA4E;QAC5E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEtE,+DAA+D;QAC/D,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE;YACxE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO;SACpC,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACtD,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAC5C,CAAC;QAEF,yCAAyC;QACzC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACxD,UAAU,EACV,WAAW,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC;QAEF,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE;gBACN,GAAG,WAAW,CAAC,MAAM;gBACrB,wBAAwB,EAAE,mBAAmB;gBAC7C,IAAI,EAAE,oBAAoB;aAC3B;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAC7B,WAA6D;QAE7D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,gFAAgF;QAChF,IAAI,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QAED,iDAAiD;QACjD,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,+CAA+C;QAC/C,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,UAAsB,EACtB,YAAgE;QAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,iFAAiF;QACjF,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,iDAAiD;QACjD,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,+CAA+C;QAC/C,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAoC,EACpC,WAAwB;IAExB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,eAAe,GACnB,gBAAgB,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAE5D,OAAO,IAAI,eAAe,CAAC,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/deploy-sdk",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Deployer SDK for the Hyperlane Protocol",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
@@ -15,12 +15,13 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "zod": "^3.21.2",
18
- "@hyperlane-xyz/aleo-sdk": "26.0.0",
19
- "@hyperlane-xyz/cosmos-sdk": "26.0.0",
20
- "@hyperlane-xyz/provider-sdk": "3.0.0",
21
- "@hyperlane-xyz/radix-sdk": "26.0.0",
22
- "@hyperlane-xyz/tron-sdk": "22.0.0",
23
- "@hyperlane-xyz/utils": "26.0.0"
18
+ "@hyperlane-xyz/aleo-sdk": "27.1.0",
19
+ "@hyperlane-xyz/cosmos-sdk": "27.1.0",
20
+ "@hyperlane-xyz/provider-sdk": "3.1.0",
21
+ "@hyperlane-xyz/radix-sdk": "27.1.0",
22
+ "@hyperlane-xyz/sealevel-sdk": "27.1.0",
23
+ "@hyperlane-xyz/tron-sdk": "22.1.1",
24
+ "@hyperlane-xyz/utils": "27.1.0"
24
25
  },
25
26
  "devDependencies": {
26
27
  "@types/chai-as-promised": "^8",
@@ -35,8 +36,8 @@
35
36
  "sinon": "^13.0.2",
36
37
  "tsx": "^4.19.1",
37
38
  "typescript": "5.8.3",
38
- "@hyperlane-xyz/eslint-config": "^26.0.0",
39
- "@hyperlane-xyz/tsconfig": "^26.0.0"
39
+ "@hyperlane-xyz/eslint-config": "^27.1.0",
40
+ "@hyperlane-xyz/tsconfig": "^27.1.0"
40
41
  },
41
42
  "scripts": {
42
43
  "build": "tsc",