UNPKG

stellar-plus

Version:

beta version of stellar-plus, an all-in-one sdk for the Stellar blockchain

64 lines (63 loc) 2.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BuildTransactionPipeline = void 0; const tslib_1 = require("tslib"); const stellar_sdk_1 = require("@stellar/stellar-sdk"); const errors_1 = require("../../../../stellar-plus/core/pipelines/build-transaction/errors"); const types_1 = require("../../../../stellar-plus/core/pipelines/build-transaction/types"); const conveyor_belt_1 = require("../../../../stellar-plus/error/helpers/conveyor-belt"); const conveyor_belts_1 = require("../../../../stellar-plus/utils/pipeline/conveyor-belts"); class BuildTransactionPipeline extends conveyor_belts_1.ConveyorBelt { constructor(plugins) { super({ type: types_1.BuildTransactionPipelineType.id, plugins: plugins || [], }); } process(item, itemId) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const { header, horizonHandler, operations, networkPassphrase, sorobanData } = item; let sourceAccount; try { sourceAccount = (yield horizonHandler.loadAccount(header.source)); } catch (e) { throw errors_1.PBTError.couldntLoadAccount(e, (0, conveyor_belt_1.extractConveyorBeltErrorMeta)(item, this.getMeta(itemId))); } let txEnvelope; try { txEnvelope = new stellar_sdk_1.TransactionBuilder(sourceAccount, { fee: header.fee, networkPassphrase: networkPassphrase, }); } catch (e) { throw errors_1.PBTError.couldntCreateTransactionBuilder(e, (0, conveyor_belt_1.extractConveyorBeltErrorMeta)(item, this.getMeta(itemId))); } if (sorobanData) { try { txEnvelope.setSorobanData(sorobanData); } catch (e) { throw errors_1.PBTError.couldntSetSorobanData(e, (0, conveyor_belt_1.extractConveyorBeltErrorMeta)(item, this.getMeta(itemId))); } } try { for (const operation of operations) { txEnvelope.addOperation(operation); } txEnvelope.setTimeout(header.timeout); } catch (e) { throw errors_1.PBTError.couldntAddOperations(e, (0, conveyor_belt_1.extractConveyorBeltErrorMeta)(item, this.getMeta(itemId))); } try { return txEnvelope.build(); } catch (e) { throw errors_1.PBTError.couldntBuildTransaction(e, (0, conveyor_belt_1.extractConveyorBeltErrorMeta)(item, this.getMeta(itemId))); } }); } } exports.BuildTransactionPipeline = BuildTransactionPipeline;