minter-js-sdk
Version:
JS SDK for Minter Blockchain
73 lines (67 loc) • 2.51 kB
JavaScript
;
var minterjsTx = require('minterjs-tx');
var minterjsUtil = require('minterjs-util');
var utils = require('../utils.js');
/**
* @param {object} txData
* @param {string} txData.publicKey
* @param {string} txData.rewardAddress
* @param {string} txData.ownerAddress
* @param {string} txData.controlAddress
* @param {TxOptions} [options]
* @constructor
*/
function EditCandidateTxData(_ref) {
var publicKey = _ref.publicKey,
rewardAddress = _ref.rewardAddress,
ownerAddress = _ref.ownerAddress,
controlAddress = _ref.controlAddress;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!options.disableValidation) {
utils.validatePublicKey(publicKey, 'publicKey');
utils.validateAddress(rewardAddress, 'rewardAddress');
utils.validateAddress(ownerAddress, 'ownerAddress');
utils.validateAddress(controlAddress, 'controlAddress');
}
this.publicKey = publicKey;
this.rewardAddress = rewardAddress;
this.ownerAddress = ownerAddress;
this.controlAddress = controlAddress;
this.txData = new minterjsTx.TxDataEditCandidate({
publicKey: minterjsUtil.toBuffer(publicKey),
rewardAddress: minterjsUtil.toBuffer(rewardAddress),
ownerAddress: minterjsUtil.toBuffer(ownerAddress),
controlAddress: minterjsUtil.toBuffer(controlAddress)
});
utils.proxyNestedTxData(this);
}
/**
* @param {object} txData
* @param {Buffer|string} txData.publicKey
* @param {Buffer|string} txData.rewardAddress
* @param {Buffer|string} txData.ownerAddress
* @param {Buffer|string} txData.controlAddress
* @param {TxOptions} [options]
* @return {EditCandidateTxData}
*/
EditCandidateTxData.fromBufferFields = function fromBufferFields(_ref2) {
var publicKey = _ref2.publicKey,
rewardAddress = _ref2.rewardAddress,
ownerAddress = _ref2.ownerAddress,
controlAddress = _ref2.controlAddress;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new EditCandidateTxData({
publicKey: utils.dataToPublicKey(publicKey),
rewardAddress: utils.dataToAddress(rewardAddress),
ownerAddress: utils.dataToAddress(ownerAddress),
controlAddress: utils.dataToAddress(controlAddress)
}, options);
};
/**
* @param {Buffer|string} data
* @return {EditCandidateTxData}
*/
EditCandidateTxData.fromRlp = function fromRlp(data) {
return EditCandidateTxData.fromBufferFields(new minterjsTx.TxDataEditCandidate(data));
};
module.exports = EditCandidateTxData;