stellar-plus
Version:
beta version of stellar-plus, an all-in-one sdk for the Stellar blockchain
32 lines (31 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractOperationsData = exports.extractTransactionData = exports.extractTransactionInvocationMeta = void 0;
const stellar_sdk_1 = require("@stellar/stellar-sdk");
const extractTransactionInvocationMeta = (txInvocationArgs, stringfy) => {
const { header, signers, feeBump } = txInvocationArgs;
const meta = header ? { header: Object.assign({}, header) } : {};
if (signers)
meta.signers = signers.map((signer) => signer.getPublicKey());
if (feeBump)
meta.feebump = (0, exports.extractTransactionInvocationMeta)({ feeBump }, false);
return stringfy ? JSON.stringify(meta) : meta;
};
exports.extractTransactionInvocationMeta = extractTransactionInvocationMeta;
const extractTransactionData = (envelope) => {
const innerTransaction = envelope instanceof stellar_sdk_1.FeeBumpTransaction ? envelope.innerTransaction : envelope;
const feeBump = envelope instanceof stellar_sdk_1.FeeBumpTransaction ? envelope : undefined;
const operations = (0, exports.extractOperationsData)(innerTransaction.operations, false);
return Object.assign(Object.assign({ feeSource: feeBump === null || feeBump === void 0 ? void 0 : feeBump.feeSource, feeBumpFee: feeBump === null || feeBump === void 0 ? void 0 : feeBump.fee, source: innerTransaction.source, fee: innerTransaction.fee, sequence: innerTransaction.sequence }, innerTransaction.timeBounds), { operations });
};
exports.extractTransactionData = extractTransactionData;
const extractOperationsData = (operations, stringfy) => {
const operationData = operations.map((operation) => {
return {
type: operation.type,
source: operation.source,
};
});
return stringfy ? JSON.stringify(operationData) : operationData;
};
exports.extractOperationsData = extractOperationsData;