UNPKG

cosmic-interchain-cli

Version:

A command-line utility for Cosmic Wire's interchain messaging protocol

36 lines 1.78 kB
import { EV5GnosisSafeTxSubmitter, EV5ImpersonatedAccountTxSubmitter, EV5InterchainAccountTxTransformer, EV5JsonRpcTxSubmitter, TxSubmitterBuilder, TxSubmitterType, TxTransformerType, } from '@hyperlane-xyz/sdk'; export async function getSubmitterBuilder({ submissionStrategy, multiProvider, }) { const submitter = await getSubmitter(multiProvider, submissionStrategy.submitter); const transformers = await getTransformers(multiProvider, submissionStrategy.transforms ?? []); return new TxSubmitterBuilder(submitter, transformers); } async function getSubmitter(multiProvider, submitterMetadata) { switch (submitterMetadata.type) { case TxSubmitterType.JSON_RPC: return new EV5JsonRpcTxSubmitter(multiProvider); case TxSubmitterType.IMPERSONATED_ACCOUNT: return new EV5ImpersonatedAccountTxSubmitter(multiProvider, { ...submitterMetadata, }); case TxSubmitterType.GNOSIS_SAFE: return EV5GnosisSafeTxSubmitter.create(multiProvider, { ...submitterMetadata, }); default: throw new Error(`Invalid TxSubmitterType.`); } } async function getTransformers(multiProvider, transformersMetadata) { return Promise.all(transformersMetadata.map((transformerMetadata) => getTransformer(multiProvider, transformerMetadata))); } async function getTransformer(multiProvider, transformerMetadata) { switch (transformerMetadata.type) { case TxTransformerType.INTERCHAIN_ACCOUNT: return new EV5InterchainAccountTxTransformer(multiProvider, { ...transformerMetadata, }); default: throw new Error('Invalid TxTransformerType.'); } } //# sourceMappingURL=submit.js.map