UNPKG

minter-js-sdk

Version:
77 lines (70 loc) 2.5 kB
'use strict'; var minterjsTx = require('minterjs-tx'); var minterjsUtil = require('minterjs-util'); var utils = require('../utils.js'); /** * @param {object} txData * @param {Array<number|string>} txData.coins - list of coin id * @param {number|string} txData.valueToSell * @param {number|string} [txData.minimumValueToBuy=0] * @param {TxOptions} [options] * @constructor */ function SellPoolTxData(_ref) { var coins = _ref.coins, valueToSell = _ref.valueToSell, _ref$minimumValueToBu = _ref.minimumValueToBuy, minimumValueToBuy = _ref$minimumValueToBu === void 0 ? 0 : _ref$minimumValueToBu; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!options.disableValidation) { utils.validateUintArray(coins, 'coins'); utils.validateAmount(valueToSell, 'valueToSell'); utils.validateAmount(minimumValueToBuy, 'minimumValueToBuy'); } this.coins = coins; this.valueToSell = valueToSell; this.minimumValueToBuy = minimumValueToBuy; this.txData = new minterjsTx.TxDataSellSwapPool({ coins: coins.map(function (coin) { return utils.integerToHexString(coin); }), valueToSell: "0x".concat(minterjsUtil.convertToPip(valueToSell, 'hex')), minimumValueToBuy: "0x".concat(minterjsUtil.convertToPip(minimumValueToBuy, 'hex')) }); utils.proxyNestedTxData(this); } /** * @param {object} txData * @param {Array<Buffer>} txData.coins * @param {Buffer|string} txData.valueToSell * @param {Buffer|string} txData.minimumValueToBuy * @param {TxOptions} [options] * @return {SellPoolTxData} */ SellPoolTxData.fromBufferFields = function fromBufferFields(_ref2) { var coins = _ref2.coins, valueToSell = _ref2.valueToSell, minimumValueToBuy = _ref2.minimumValueToBuy; 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'); } */ return new SellPoolTxData({ coins: coins.map(function (item) { return utils.bufferToInteger(item); }), valueToSell: utils.dataPipToAmount(valueToSell), minimumValueToBuy: utils.dataPipToAmount(minimumValueToBuy) }, options); }; /** * @param {Buffer|string} data * @return {SellPoolTxData} */ SellPoolTxData.fromRlp = function fromRlp(data) { return SellPoolTxData.fromBufferFields(new minterjsTx.TxDataSellSwapPool(data)); }; module.exports = SellPoolTxData;