minter-js-sdk
Version:
JS SDK for Minter Blockchain
74 lines (68 loc) • 2.47 kB
JavaScript
;
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.volume0
* @param {number|string} [txData.maximumVolume1]
* @param {TxOptions} [options]
* @constructor
*/
function AddLiquidityTxData(_ref) {
var coin0 = _ref.coin0,
coin1 = _ref.coin1,
volume0 = _ref.volume0,
_ref$maximumVolume = _ref.maximumVolume1,
maximumVolume1 = _ref$maximumVolume === void 0 ? minterjsUtil.COIN_MAX_AMOUNT : _ref$maximumVolume;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!options.disableValidation) {
utils.validateUint(coin0, 'coin0');
utils.validateUint(coin1, 'coin1');
utils.validateAmount(volume0, 'volume0');
utils.validateAmount(maximumVolume1, 'maximumVolume1');
}
this.coin0 = coin0;
this.coin1 = coin1;
this.volume0 = volume0;
this.maximumVolume1 = maximumVolume1;
this.txData = new minterjsTx.TxDataAddLiquidity({
coin0: utils.integerToHexString(coin0),
coin1: utils.integerToHexString(coin1),
volume0: "0x".concat(minterjsUtil.convertToPip(volume0, 'hex')),
maximumVolume1: "0x".concat(minterjsUtil.convertToPip(maximumVolume1, 'hex'))
});
utils.proxyNestedTxData(this);
}
/**
* @param {object} txData
* @param {Buffer|string} txData.coin0
* @param {Buffer|string} txData.volume0
* @param {Buffer|string} txData.coin1
* @param {Buffer|string} txData.maximumVolume1
* @param {TxOptions} [options]
* @return {AddLiquidityTxData}
*/
AddLiquidityTxData.fromBufferFields = function fromBufferFields(_ref2) {
var coin0 = _ref2.coin0,
volume0 = _ref2.volume0,
coin1 = _ref2.coin1,
maximumVolume1 = _ref2.maximumVolume1;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new AddLiquidityTxData({
coin0: utils.dataToInteger(coin0),
coin1: utils.dataToInteger(coin1),
volume0: utils.dataPipToAmount(volume0),
maximumVolume1: utils.dataPipToAmount(maximumVolume1)
}, options);
};
/**
* @param {Buffer|string} data
* @return {AddLiquidityTxData}
*/
AddLiquidityTxData.fromRlp = function fromRlp(data) {
return AddLiquidityTxData.fromBufferFields(new minterjsTx.TxDataAddLiquidity(data));
};
module.exports = AddLiquidityTxData;