UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

57 lines 2.64 kB
import { Address, Checkpoint, MerkleProof, S3CheckpointWithId, SignatureLike, WithAddress } from '@hyperlane-xyz/utils'; import { S3Validator } from '../../aws/validator.js'; import { HyperlaneCore } from '../../core/HyperlaneCore.js'; import { MerkleTreeHookConfig } from '../../hook/types.js'; import { ChainName } from '../../types.js'; import { IsmType, MultisigIsmConfig } from '../types.js'; import type { MetadataBuilder, MetadataContext } from './types.js'; interface MessageIdMultisigMetadata { type: IsmType.MESSAGE_ID_MULTISIG; signatures: SignatureLike[]; checkpoint: Omit<Checkpoint, 'mailbox_domain'>; } interface MerkleRootMultisigMetadata extends Omit<MessageIdMultisigMetadata, 'type'> { type: IsmType.MERKLE_ROOT_MULTISIG; proof: MerkleProof; } export type MultisigMetadata = MessageIdMultisigMetadata | MerkleRootMultisigMetadata; export declare class MultisigMetadataBuilder implements MetadataBuilder { protected readonly core: HyperlaneCore; protected readonly logger: import("pino").default.Logger<never>; protected validatorCache: Record<ChainName, Record<string, S3Validator>>; constructor(core: HyperlaneCore, logger?: import("pino").default.Logger<never>); protected s3Validators(originChain: ChainName, validators: string[]): Promise<S3Validator[]>; getS3Checkpoints(validators: Address[], match: { origin: number; merkleTree: Address; messageId: string; index: number; }): Promise<S3CheckpointWithId[]>; build(context: MetadataContext<WithAddress<MultisigIsmConfig>, WithAddress<MerkleTreeHookConfig>>): Promise<string>; protected static encodeSimplePrefix(metadata: MessageIdMultisigMetadata): string; static decodeSimplePrefix(metadata: string): { signatureOffset: number; type: IsmType; checkpoint: { root: string; index: number; merkle_tree_hook_address: string; }; }; static encodeProofPrefix(metadata: MerkleRootMultisigMetadata): string; static decodeProofPrefix(metadata: string): { signatureOffset: number; type: IsmType; checkpoint: { root: string; index: number; merkle_tree_hook_address: string; }; proof: MerkleProof; }; static encode(metadata: MultisigMetadata): string; static signatureAt(metadata: string, offset: number, index: number): SignatureLike | undefined; static decode(metadata: string, type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG): MultisigMetadata; } export {}; //# sourceMappingURL=multisig.d.ts.map