UNPKG

minter-js-sdk

Version:
90 lines (84 loc) 3.2 kB
'use strict'; var minterjsTx = require('minterjs-tx'); var minterjsUtil = require('minterjs-util'); var utils = require('../utils.js'); /** * @param {object} txData * @param {string} [txData.name] * @param {string} txData.symbol * @param {number|string} txData.initialAmount * @param {number|string} [txData.maxSupply] * @param {boolean} txData.mintable * @param {boolean} txData.burnable * @param {TxOptions} [options] * @constructor */ function RecreateTokenTxData(_ref) { var _ref$name = _ref.name, name = _ref$name === void 0 ? '' : _ref$name, symbol = _ref.symbol, initialAmount = _ref.initialAmount, _ref$maxSupply = _ref.maxSupply, maxSupply = _ref$maxSupply === void 0 ? minterjsUtil.COIN_MAX_MAX_SUPPLY : _ref$maxSupply, mintable = _ref.mintable, burnable = _ref.burnable; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!options.disableValidation) { utils.validateTicker(symbol, 'symbol'); utils.validateAmount(initialAmount, 'initialAmount'); utils.validateMaxSupply(maxSupply, initialAmount); utils.validateBoolean(mintable, 'mintable'); utils.validateBoolean(burnable, 'burnable'); } this.name = name; this.symbol = symbol; this.initialAmount = initialAmount; this.maxSupply = maxSupply; this.mintable = mintable; this.burnable = burnable; this.txData = new minterjsTx.TxDataRecreateToken({ name: Buffer.from(name.toString(), 'utf8'), symbol: minterjsUtil.coinToBuffer(symbol), initialAmount: "0x".concat(minterjsUtil.convertToPip(initialAmount, 'hex')), maxSupply: "0x".concat(minterjsUtil.convertToPip(maxSupply, 'hex')), mintable: mintable ? '0x01' : '0x00', burnable: burnable ? '0x01' : '0x00' }); utils.proxyNestedTxData(this); } /** * @param {object} txData * @param {Buffer|string} txData.name * @param {Buffer|string} txData.symbol * @param {Buffer|string|number} txData.initialAmount * @param {Buffer|string|number} txData.maxSupply * @param {Buffer|string} txData.mintable * @param {Buffer|string} txData.burnable * @param {TxOptions} [options] * @return {RecreateTokenTxData} */ RecreateTokenTxData.fromBufferFields = function fromBufferFields(_ref2) { var name = _ref2.name, symbol = _ref2.symbol, initialAmount = _ref2.initialAmount, maxSupply = _ref2.maxSupply, mintable = _ref2.mintable, burnable = _ref2.burnable; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return new RecreateTokenTxData({ name: minterjsUtil.toBuffer(name).toString('utf8'), symbol: minterjsUtil.bufferToCoin(minterjsUtil.toBuffer(symbol)), initialAmount: utils.dataPipToAmount(initialAmount), maxSupply: utils.dataPipToAmount(maxSupply), mintable: utils.bufferToBoolean(minterjsUtil.toBuffer(mintable)), burnable: utils.bufferToBoolean(minterjsUtil.toBuffer(burnable)) }, options); }; /** * @param {Buffer|string} data * @return {RecreateTokenTxData} */ RecreateTokenTxData.fromRlp = function fromRlp(data) { return RecreateTokenTxData.fromBufferFields(new minterjsTx.TxDataRecreateToken(data)); }; module.exports = RecreateTokenTxData;