UNPKG

@hyperlane-xyz/cli

Version:

A command-line utility for common Hyperlane operations

29 lines 1.48 kB
import { stringify as yamlStringify } from 'yaml'; import { assert, errorToString } from '@hyperlane-xyz/utils'; import { logGray, logRed } from '../logger.js'; import { getSubmitterBuilder } from '../submit/submit.js'; import { indentYamlOrJson, readYamlOrJson, writeYamlOrJson, } from '../utils/files.js'; export async function runSubmit({ context, transactionsFilepath, receiptsFilepath, submissionStrategy, }) { const { multiProvider } = context; assert(submissionStrategy, 'Submission strategy required to submit transactions.\nPlease create a submission strategy. See examples in cli/examples/submit/strategy/*.'); const transactions = getTransactions(transactionsFilepath); const submitterBuilder = await getSubmitterBuilder({ submissionStrategy, multiProvider, }); try { const transactionReceipts = await submitterBuilder.submit(...transactions); if (transactionReceipts) { logGray('🧾 Transaction receipts:\n\n', indentYamlOrJson(yamlStringify(transactionReceipts, null, 2), 4)); writeYamlOrJson(receiptsFilepath, transactionReceipts, 'yaml'); } } catch (error) { logRed(`⛔️ Failed to submit ${transactions.length} transactions:`, errorToString(error)); throw new Error('Failed to submit transactions.'); } } function getTransactions(transactionsFilepath) { return readYamlOrJson(transactionsFilepath.trim()); } //# sourceMappingURL=submit.js.map