UNPKG

@pokt-network/pocket-js

Version:

Pocket-js core package with the main functionalities to interact with the Pocket Network.

78 lines 2.86 kB
"use strict"; 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