@pokt-network/pocket-js
Version:
Pocket-js core package with the main functionalities to interact with the Pocket Network.
69 lines • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChallengeRequest = void 0;
/**
* @class ChallengeRequest
*/
var majority_response_1 = require("./majority-response");
var minority_response_1 = require("./minority-response");
var validator_1 = require("../../../utils/validator");
var utils_1 = require("../../../utils");
var ChallengeRequest = /** @class */ (function () {
/**
* Challenge Request.
* @constructor
* @param {MajorityResponse} majorityResponse - MajorityResponse object.
* @param {MinorityResponse} minorityResponse - MinorityResponse object.
*/
function ChallengeRequest(majorityResponse, minorityResponse) {
this.majorityResponse = majorityResponse;
this.minorityResponse = minorityResponse;
var valid = this.isValid();
if (utils_1.typeGuard(valid, Error)) {
throw valid;
}
}
/**
*
* Creates a ChallengeRequest object using a JSON string
* @param {String} json - JSON string.
* @returns {ChallengeRequest} - ChallengeRequest object.
* @memberof ChallengeRequest
*/
ChallengeRequest.fromJSON = function (json) {
try {
var jsonObject = JSON.parse(json);
return new ChallengeRequest(majority_response_1.MajorityResponse.fromJSON(JSON.stringify(jsonObject.majority_responses)), minority_response_1.MinorityResponse.fromJSON(JSON.stringify(jsonObject.minority_response)));
}
catch (error) {
throw error;
}
};
/**
*
* Creates a JSON object with the ChallengeRequest properties
* @returns {JSON} - JSON Object.
* @memberof ChallengeRequest
*/
ChallengeRequest.prototype.toJSON = function () {
return {
majority_responses: this.majorityResponse.toJSON(),
minority_response: this.minorityResponse.toJSON()
};
};
/**
*
* Check if the ChallengeRequest object is valid
* @returns {boolean} - True or false.
* @memberof ChallengeRequest
*/
ChallengeRequest.prototype.isValid = function () {
if (validator_1.validateChallengeRequest(this) === undefined) {
return true;
}
return false;
};
return ChallengeRequest;
}());
exports.ChallengeRequest = ChallengeRequest;
//# sourceMappingURL=challenge-request.js.map