UNPKG

minter-js-sdk

Version:
84 lines (77 loc) 2.8 kB
'use strict'; var minterjsTx = require('minterjs-tx'); var minterjsUtil = require('minterjs-util'); var utils = require('../utils.js'); /** * @param {object} txData * @param {number|string} txData.coinToSell - coin id * @param {number|string} txData.coinToBuy - coin id * @param {number|string} txData.valueToSell * @param {number|string} txData.valueToBuy * @param {TxOptions} [options] * @constructor */ function AddLimitOrderTxData(_ref) { var coinToSell = _ref.coinToSell, coinToBuy = _ref.coinToBuy, valueToSell = _ref.valueToSell, _ref$valueToBuy = _ref.valueToBuy, valueToBuy = _ref$valueToBuy === void 0 ? 0 : _ref$valueToBuy; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!options.disableValidation) { utils.validateUint(coinToSell, 'coinToSell'); utils.validateUint(coinToBuy, 'coinToBuy'); utils.validateAmount(valueToSell, 'valueToSell'); utils.validateAmount(valueToBuy, 'valueToBuy'); } this.coinToSell = coinToSell; this.coinToBuy = coinToBuy; this.valueToSell = valueToSell; this.valueToBuy = valueToBuy; this.txData = new minterjsTx.TxDataAddLimitOrder({ coinToSell: utils.integerToHexString(coinToSell), coinToBuy: utils.integerToHexString(coinToBuy), valueToSell: "0x".concat(minterjsUtil.convertToPip(valueToSell, 'hex')), valueToBuy: "0x".concat(minterjsUtil.convertToPip(valueToBuy, 'hex')) }); utils.proxyNestedTxData(this); } /** * @param {object} txData * @param {Buffer|string} txData.coinToSell * @param {Buffer|string} txData.valueToSell * @param {Buffer|string} txData.coinToBuy * @param {Buffer|string} txData.valueToBuy * @param {TxOptions} [options] * @return {AddLimitOrderTxData} */ AddLimitOrderTxData.fromBufferFields = function fromBufferFields(_ref2) { var coinToSell = _ref2.coinToSell, valueToSell = _ref2.valueToSell, coinToBuy = _ref2.coinToBuy, valueToBuy = _ref2.valueToBuy; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // @TODO should validation be done here? /* if (!valueToSell && valueToSell !== 0) { throw new Error('Invalid valueToSell'); } if (!valueToBuy && valueToBuy !== 0) { throw new Error('Invalid valueToBuy'); } */ return new AddLimitOrderTxData({ coinToSell: utils.dataToInteger(coinToSell), coinToBuy: utils.dataToInteger(coinToBuy), valueToSell: utils.dataPipToAmount(valueToSell), valueToBuy: utils.dataPipToAmount(valueToBuy) }, options); }; /** * @param {Buffer|string} data * @return {AddLimitOrderTxData} */ AddLimitOrderTxData.fromRlp = function fromRlp(data) { return AddLimitOrderTxData.fromBufferFields(new minterjsTx.TxDataAddLimitOrder(data)); }; module.exports = AddLimitOrderTxData;