UNPKG

minter-js-sdk

Version:
81 lines (75 loc) 2.61 kB
'use strict'; var minterjsTx = require('minterjs-tx'); var minterjsUtil = require('minterjs-util'); var utils = require('../utils.js'); /** * @param {object} txData * @param {string} txData.address * @param {string} txData.publicKey * @param {number|string} txData.commission * @param {number|string} txData.coin - coin id * @param {number|string} txData.stake * @param {TxOptions} [options] * @constructor */ function DeclareCandidacyTxData(_ref) { var address = _ref.address, publicKey = _ref.publicKey, commission = _ref.commission, coin = _ref.coin, stake = _ref.stake; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!options.disableValidation) { utils.validateAddress(address, 'address'); utils.validatePublicKey(publicKey, 'publicKey'); utils.validateUint(commission, 'commission'); utils.validateUint(coin, 'coin'); utils.validateAmount(stake, 'stake'); } this.address = address; this.publicKey = publicKey; this.commission = commission; this.coin = coin; this.stake = stake; this.txData = new minterjsTx.TxDataDeclareCandidacy({ address: minterjsUtil.toBuffer(address), publicKey: minterjsUtil.toBuffer(publicKey), commission: utils.integerToHexString(commission), coin: utils.integerToHexString(coin), stake: "0x".concat(minterjsUtil.convertToPip(stake, 'hex')) }); utils.proxyNestedTxData(this); } /** * @param {object} txData * @param {Buffer|string} txData.address * @param {Buffer|string} txData.publicKey * @param {Buffer|string} txData.commission * @param {Buffer|string} txData.coin * @param {Buffer|string} txData.stake * @param {TxOptions} [options] * @return {DeclareCandidacyTxData} */ DeclareCandidacyTxData.fromBufferFields = function fromBufferFields(_ref2) { var address = _ref2.address, publicKey = _ref2.publicKey, commission = _ref2.commission, coin = _ref2.coin, stake = _ref2.stake; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return new DeclareCandidacyTxData({ address: utils.dataToAddress(address), publicKey: utils.dataToPublicKey(publicKey), commission: utils.dataToInteger(commission), coin: utils.dataToInteger(coin), stake: utils.dataPipToAmount(stake) }, options); }; /** * @param {Buffer|string} data * @return {DeclareCandidacyTxData} */ DeclareCandidacyTxData.fromRlp = function fromRlp(data) { return DeclareCandidacyTxData.fromBufferFields(new minterjsTx.TxDataDeclareCandidacy(data)); }; module.exports = DeclareCandidacyTxData;