@pokt-network/pocket-js
Version:
Pocket-js core package with the main functionalities to interact with the Pocket Network.
78 lines • 2.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RelayRequest = void 0;
var relay_proof_1 = require("../relay-proof");
var relay_payload_1 = require("./relay-payload");
var relay_meta_1 = require("./relay-meta");
var request_hash_1 = require("./request-hash");
var pocket_1 = require("../../../pocket");
/**
*
*
* @class RelayRequest
*/
var RelayRequest = /** @class */ (function () {
/**
* Relay Request.
* @constructor
* @param {RelayPayload} payload - Relay payload.
* @param {RelayMeta} meta - Relay meta.
* @param {RelayProof} proof - Proof object.
*/
function RelayRequest(payload, meta, proof) {
this.payload = payload;
this.meta = meta;
this.proof = proof;
if (!this.isValid()) {
throw new TypeError("Invalid RelayRequest properties.");
}
}
/**
*
* Creates a RelayRequest object using a JSON string
* @param {String} json - JSON string.
* @returns {RelayRequest} - RelayRequest object.
* @memberof RelayRequest
*/
RelayRequest.fromJSON = function (json) {
try {
var jsonObject = JSON.parse(json);
var relayPayload = relay_payload_1.RelayPayload.fromJSON(JSON.stringify(jsonObject.payload));
var relayMeta = relay_meta_1.RelayMeta.fromJSON(JSON.stringify(jsonObject.meta));
var requestHash = new request_hash_1.RequestHash(relayPayload, relayMeta);
var pocketAAT = new pocket_1.PocketAAT(jsonObject.proof.aat.version, jsonObject.proof.aat.client_pub_key, jsonObject.proof.aat.app_pub_key, jsonObject.proof.aat.signature);
var relayProof = new relay_proof_1.RelayProof(BigInt(jsonObject.proof.entropy), BigInt(jsonObject.proof.session_block_height), jsonObject.proof.servicer_pub_key, jsonObject.proof.blockchain, pocketAAT, jsonObject.proof.signature, requestHash);
return new RelayRequest(relayPayload, relayMeta, relayProof);
}
catch (error) {
throw error;
}
};
/**
*
* Creates a JSON object with the RelayRequest properties
* @returns {JSON} - JSON Object.
* @memberof RelayRequest
*/
RelayRequest.prototype.toJSON = function () {
return {
payload: this.payload.toJSON(),
meta: this.meta.toJSON(),
proof: this.proof.toJSON()
};
};
/**
*
* Check if the RelayRequest object is valid
* @returns {boolean} - True or false.
* @memberof RelayRequest
*/
RelayRequest.prototype.isValid = function () {
return this.payload.isValid() &&
this.meta.isValid() &&
this.proof.isValid();
};
return RelayRequest;
}());
exports.RelayRequest = RelayRequest;
//# sourceMappingURL=relay-request.js.map