UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

33 lines 1.34 kB
import { rootLogger } from '@hyperlane-xyz/utils'; import { CosmosNativeHookReader } from '../hook/CosmosNativeHookReader.js'; import { CosmosNativeIsmReader } from '../ism/CosmosNativeIsmReader.js'; export class CosmosNativeCoreReader { metadataManager; signer; logger = rootLogger.child({ module: 'CosmosNativeCoreReader', }); ismReader; hookReader; constructor(metadataManager, signer) { this.metadataManager = metadataManager; this.signer = signer; this.ismReader = new CosmosNativeIsmReader(this.metadataManager, this.signer); this.hookReader = new CosmosNativeHookReader(this.metadataManager, this.signer); } async deriveCoreConfig(mailboxAddress) { const { mailbox } = await this.signer.query.core.Mailbox({ id: mailboxAddress, }); if (!mailbox) { throw new Error(`Mailbox not found for address ${mailboxAddress}`); } return { owner: mailbox.owner, defaultIsm: await this.ismReader.deriveIsmConfig(mailbox.default_ism), defaultHook: await this.hookReader.deriveHookConfig(mailbox.default_hook), requiredHook: await this.hookReader.deriveHookConfig(mailbox.required_hook), }; } } //# sourceMappingURL=CosmosNativeCoreReader.js.map