UNPKG

@helium/http

Version:

HTTP library for interacting with the Helium blockchain API

39 lines 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const camelcase_keys_1 = __importDefault(require("camelcase-keys")); const currency_1 = require("@helium/currency"); const DataModel_1 = __importDefault(require("./DataModel")); function processTxn(transaction) { if (transaction.status === 'received') return null; const rawTxn = transaction.txn; const txn = (0, camelcase_keys_1.default)(rawTxn); switch (transaction.type) { case 'payment_v1': return Object.assign(Object.assign({}, txn), { amount: new currency_1.Balance(txn.amount, currency_1.CurrencyType.default) }); case 'payment_v2': return Object.assign(Object.assign({}, txn), { payments: txn.payments.map((p) => (Object.assign(Object.assign({}, p), { amount: new currency_1.Balance(p.amount, currency_1.CurrencyType.default) }))), totalAmount: new currency_1.Balance(txn.payments.reduce((sum, { amount }) => sum + amount, 0), currency_1.CurrencyType.default) }); default: return txn; } } class PendingTransaction extends DataModel_1.default { constructor(transaction) { super(); this.type = transaction.type; this.txn = processTxn(transaction); this.status = transaction.status; this.failedReason = transaction.failed_reason; this.hash = transaction.hash; this.createdAt = transaction.created_at; this.updatedAt = transaction.updated_at; } get data() { return this; } } exports.default = PendingTransaction; //# sourceMappingURL=PendingTransaction.js.map