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
JavaScript
;
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