UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

31 lines 1.25 kB
import { IsmType } from '../types.js'; import { AggregationMetadataBuilder } from './aggregation.js'; import { ArbL2ToL1MetadataBuilder } from './arbL2ToL1.js'; import { MultisigMetadataBuilder } from './multisig.js'; import { NullMetadataBuilder } from './null.js'; import { DynamicRoutingMetadataBuilder } from './routing.js'; export function decodeIsmMetadata(metadata, context) { const { ism } = context; switch (ism.type) { case IsmType.TRUSTED_RELAYER: return NullMetadataBuilder.decode(ism); case IsmType.MERKLE_ROOT_MULTISIG: case IsmType.MESSAGE_ID_MULTISIG: return MultisigMetadataBuilder.decode(metadata, ism.type); case IsmType.AGGREGATION: return AggregationMetadataBuilder.decode(metadata, { ...context, ism }); case IsmType.ROUTING: return DynamicRoutingMetadataBuilder.decode(metadata, { ...context, ism, }); case IsmType.ARB_L2_TO_L1: return ArbL2ToL1MetadataBuilder.decode(metadata, { ...context, ism, }); default: throw new Error(`Unsupported ISM type: ${ism.type}`); } } //# sourceMappingURL=decode.js.map