UNPKG

airgap-coin-lib

Version:

The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

75 lines 3.89 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); var bignumber_1 = require("../../../dependencies/src/bignumber.js-9.0.0/bignumber"); var unsigned_transaction_serializer_1 = require("../unsigned-transaction.serializer"); var toBuffer_1 = require("../utils/toBuffer"); var BitcoinUnsignedTransactionSerializer = /** @class */ (function (_super) { __extends(BitcoinUnsignedTransactionSerializer, _super); function BitcoinUnsignedTransactionSerializer() { return _super !== null && _super.apply(this, arguments) || this; } BitcoinUnsignedTransactionSerializer.prototype.serialize = function (unsignedTx) { var toSerialize = [ [ __spreadArrays(unsignedTx.transaction.ins.map(function (input) { return [input.txId, input.value, input.vout, input.address, input.derivationPath]; })), __spreadArrays(unsignedTx.transaction.outs.map(function (output) { return [output.isChange, output.recipient, output.value]; })) ], unsignedTx.publicKey, unsignedTx.callback ? unsignedTx.callback : 'airgap-wallet://?d=' // callback-scheme ]; var serializedTx = toBuffer_1.toBuffer(toSerialize); return serializedTx; }; BitcoinUnsignedTransactionSerializer.prototype.deserialize = function (serializedTx) { var bitcoinTx = serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION]; var inputs = bitcoinTx[0]; var outputs = bitcoinTx[1]; return { transaction: { ins: inputs.map(function (val) { var input = { txId: val[0].toString(), value: new bignumber_1.default(val[1].toString()), vout: parseInt(val[2].toString(), 10), address: val[3].toString(), derivationPath: val[4].toString() }; return input; }), outs: outputs.map(function (val) { var output = { isChange: val[0].toString() === '0' ? false : true, recipient: val[1].toString(), value: new bignumber_1.default(val[2].toString()) }; return output; }) }, publicKey: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.PUBLIC_KEY].toString(), callback: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.CALLBACK].toString() }; }; return BitcoinUnsignedTransactionSerializer; }(unsigned_transaction_serializer_1.UnsignedTransactionSerializer)); exports.BitcoinUnsignedTransactionSerializer = BitcoinUnsignedTransactionSerializer; //# sourceMappingURL=bitcoin-transactions.serializer.js.map