@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
33 lines • 1.34 kB
JavaScript
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