airgap-coin-lib
Version:
The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.
58 lines • 3.6 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 __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var unsigned_transaction_serializer_1 = require("../unsigned-transaction.serializer");
var toBuffer_1 = require("../utils/toBuffer");
var EthereumUnsignedTransactionSerializer = /** @class */ (function (_super) {
__extends(EthereumUnsignedTransactionSerializer, _super);
function EthereumUnsignedTransactionSerializer() {
return _super !== null && _super.apply(this, arguments) || this;
}
EthereumUnsignedTransactionSerializer.prototype.serialize = function (transaction) {
var serializedTx = toBuffer_1.toBuffer([
[
transaction.transaction.nonce,
transaction.transaction.gasPrice,
transaction.transaction.gasLimit,
transaction.transaction.to,
transaction.transaction.value,
transaction.transaction.chainId,
transaction.transaction.data ? transaction.transaction.data : '0x' // data is optional, include empty if necessary
],
transaction.publicKey,
transaction.callback ? transaction.callback : 'airgap-wallet://?d=' // callback-scheme
]);
return serializedTx;
};
EthereumUnsignedTransactionSerializer.prototype.deserialize = function (serializedTx) {
var unsignedEthereumTx = {
publicKey: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.PUBLIC_KEY].toString(),
transaction: {
nonce: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][0].toString(),
gasPrice: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][1].toString(),
gasLimit: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][2].toString(),
to: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][3].toString(),
value: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][4].toString(),
chainId: parseInt(serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][5].toString(), 10),
data: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.UNSIGNED_TRANSACTION][6].toString()
},
callback: serializedTx[unsigned_transaction_serializer_1.SyncProtocolUnsignedTransactionKeys.CALLBACK].toString()
};
return unsignedEthereumTx;
};
return EthereumUnsignedTransactionSerializer;
}(unsigned_transaction_serializer_1.UnsignedTransactionSerializer));
exports.EthereumUnsignedTransactionSerializer = EthereumUnsignedTransactionSerializer;
//# sourceMappingURL=ethereum-transactions.serializer.js.map