UNPKG

minter-js-sdk

Version:
83 lines (77 loc) 3.06 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.coin0 - coin id * @param {number|string} txData.coin1 - coin id * @param {number|string} txData.liquidity - volume of shares to be withdrawn from the pool * @param {number|string} [txData.minimumVolume0] * @param {number|string} [txData.minimumVolume1] * @param {TxOptions} [options] * @constructor */ function RemoveLiquidityTxData(_ref) { var coin0 = _ref.coin0, coin1 = _ref.coin1, liquidity = _ref.liquidity, _ref$minimumVolume = _ref.minimumVolume0, minimumVolume0 = _ref$minimumVolume === void 0 ? 0 : _ref$minimumVolume, _ref$minimumVolume2 = _ref.minimumVolume1, minimumVolume1 = _ref$minimumVolume2 === void 0 ? 0 : _ref$minimumVolume2; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!options.disableValidation) { utils.validateUint(coin0, 'coin0'); utils.validateUint(coin1, 'coin1'); utils.validateAmount(liquidity, 'liquidity'); utils.validateAmount(minimumVolume0, 'minimumVolume0'); utils.validateAmount(minimumVolume1, 'minimumVolume1'); } this.coin0 = coin0; this.coin1 = coin1; this.liquidity = liquidity; this.minimumVolume0 = minimumVolume0; this.minimumVolume1 = minimumVolume1; this.txData = new minterjsTx.TxDataRemoveLiquidity({ coin0: utils.integerToHexString(coin0), coin1: utils.integerToHexString(coin1), liquidity: "0x".concat(minterjsUtil.convertToPip(liquidity, 'hex')), minimumVolume0: "0x".concat(minterjsUtil.convertToPip(minimumVolume0, 'hex')), minimumVolume1: "0x".concat(minterjsUtil.convertToPip(minimumVolume1, 'hex')) }); utils.proxyNestedTxData(this); } /** * @param {object} txData * @param {Buffer|string} txData.coin0 * @param {Buffer|string} txData.coin1 * @param {Buffer|string} txData.liquidity * @param {Buffer|string} txData.minimumVolume0 * @param {Buffer|string} txData.minimumVolume1 * @param {TxOptions} [options] * @return {RemoveLiquidityTxData} */ RemoveLiquidityTxData.fromBufferFields = function fromBufferFields(_ref2) { var coin0 = _ref2.coin0, minimumVolume0 = _ref2.minimumVolume0, coin1 = _ref2.coin1, liquidity = _ref2.liquidity, minimumVolume1 = _ref2.minimumVolume1; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return new RemoveLiquidityTxData({ coin0: utils.dataToInteger(coin0), coin1: utils.dataToInteger(coin1), liquidity: utils.dataPipToAmount(liquidity), minimumVolume0: utils.dataPipToAmount(minimumVolume0), minimumVolume1: utils.dataPipToAmount(minimumVolume1) }, options); }; /** * @param {Buffer|string} data * @return {RemoveLiquidityTxData} */ RemoveLiquidityTxData.fromRlp = function fromRlp(data) { return RemoveLiquidityTxData.fromBufferFields(new minterjsTx.TxDataRemoveLiquidity(data)); }; module.exports = RemoveLiquidityTxData;