minter-js-sdk
Version:
JS SDK for Minter Blockchain
73 lines (67 loc) • 2.06 kB
JavaScript
;
var minterjsTx = require('minterjs-tx');
var minterjsUtil = require('minterjs-util');
var utils = require('../utils.js');
/**
* @param {object} txData
* @param {string} txData.from
* @param {string} txData.to
* @param {number|string} txData.coin - coin id
* @param {number|string} txData.stake
* @param {TxOptions} [options]
* @constructor
*/
function MoveStakeTxData(_ref) {
var from = _ref.from,
to = _ref.to,
coin = _ref.coin,
stake = _ref.stake;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!options.disableValidation) {
utils.validatePublicKey(from, 'from');
utils.validatePublicKey(to, 'to');
utils.validateUint(coin, 'coin');
utils.validateAmount(stake, 'stake');
}
this.from = from;
this.to = to;
this.coin = coin;
this.stake = stake;
this.txData = new minterjsTx.TxDataMoveStake({
from: minterjsUtil.toBuffer(from),
to: minterjsUtil.toBuffer(to),
coin: utils.integerToHexString(coin),
stake: "0x".concat(minterjsUtil.convertToPip(stake, 'hex'))
});
utils.proxyNestedTxData(this);
}
/**
* @param {object} txData
* @param {Buffer|string} txData.from
* @param {Buffer|string} txData.to
* @param {Buffer|string} txData.stake
* @param {Buffer|string} txData.coin
* @param {TxOptions} [options]
* @return {MoveStakeTxData}
*/
MoveStakeTxData.fromBufferFields = function fromBufferFields(_ref2) {
var from = _ref2.from,
to = _ref2.to,
coin = _ref2.coin,
stake = _ref2.stake;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new MoveStakeTxData({
from: utils.dataToPublicKey(from),
to: utils.dataToPublicKey(to),
coin: utils.dataToInteger(coin),
stake: utils.dataPipToAmount(stake)
}, options);
};
/**
* @param {Buffer|string} data
* @return {MoveStakeTxData}
*/
MoveStakeTxData.fromRlp = function fromRlp(data) {
return MoveStakeTxData.fromBufferFields(new minterjsTx.TxDataMoveStake(data));
};
module.exports = MoveStakeTxData;