@hyperlane-xyz/cli
Version:
A command-line utility for common Hyperlane operations
29 lines • 1.48 kB
JavaScript
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