UNPKG

minter-js-sdk

Version:
70 lines (64 loc) 2.37 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.valueToBuy * @param {number|string} [txData.maximumValueToSell] * @param {TxOptions} [options] * @constructor */ function BuyPoolTxData(_ref) { var coins = _ref.coins, valueToBuy = _ref.valueToBuy, _ref$maximumValueToSe = _ref.maximumValueToSell, maximumValueToSell = _ref$maximumValueToSe === void 0 ? minterjsUtil.COIN_MAX_AMOUNT : _ref$maximumValueToSe; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!options.disableValidation) { utils.validateUintArray(coins, 'coins'); utils.validateAmount(valueToBuy, 'valueToBuy'); utils.validateAmount(maximumValueToSell, 'maximumValueToSell'); } this.coins = coins; this.valueToBuy = valueToBuy; this.maximumValueToSell = maximumValueToSell; this.txData = new minterjsTx.TxDataBuySwapPool({ coins: coins.map(function (coin) { return utils.integerToHexString(coin); }), valueToBuy: "0x".concat(minterjsUtil.convertToPip(valueToBuy, 'hex')), maximumValueToSell: "0x".concat(minterjsUtil.convertToPip(maximumValueToSell, 'hex')) }); utils.proxyNestedTxData(this); } /** * @param {object} txData * @param {Array<Buffer>} txData.coins * @param {Buffer|string} txData.valueToBuy * @param {Buffer|string} txData.maximumValueToSell * @param {TxOptions} [options] * @return {BuyPoolTxData} */ BuyPoolTxData.fromBufferFields = function fromBufferFields(_ref2) { var coins = _ref2.coins, valueToBuy = _ref2.valueToBuy, maximumValueToSell = _ref2.maximumValueToSell; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return new BuyPoolTxData({ coins: coins.map(function (item) { return utils.bufferToInteger(item); }), valueToBuy: utils.dataPipToAmount(valueToBuy), maximumValueToSell: utils.dataPipToAmount(maximumValueToSell) }, options); }; /** * @param {Buffer|string} data * @return {BuyPoolTxData} */ BuyPoolTxData.fromRlp = function fromRlp(data) { return BuyPoolTxData.fromBufferFields(new minterjsTx.TxDataBuySwapPool(data)); }; module.exports = BuyPoolTxData;