UNPKG

@witnet/ethers

Version:

Wit/Oracle SDK Framework package for Solidity projects

65 lines 9.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.KermitClient = exports.KermitError = void 0; const axios_1 = __importDefault(require("axios")); const jsonBig = require('json-bigint'); const sdk_1 = require("@witnet/sdk"); const stringify = (query) => Object.entries(query).map(([key, value]) => `&${key}=${value}`).join("").slice(1); class KermitError extends Error { constructor(path, query, error) { super(`${path}${stringify(query)}: ${JSON.stringify(error)}`); delete error?.stack; this.error = error; this.path = path; this.query = query; } } exports.KermitError = KermitError; class KermitClient { static async fromEnv(url) { return new KermitClient(url || process.env.WITNET_KERMIT_PROVIDER_URL || "https://kermit.witnet.io"); } constructor(url) { const [schema,] = sdk_1.utils.parseURL(url); if (!schema.startsWith("http://") && !schema.startsWith("https://")) { throw Error(`KermitClient: unsupported URL schema ${schema}`); } this.url = url; if (!this.url.endsWith("/")) { this.url += "/"; } if (!this.url.endsWith("api/")) { this.url += "api/"; } } async callApiGetMethod(path, query) { const url = `${this.url}${path}${query ? `?${stringify(query)}` : ""}`; return axios_1.default .get(url, { transformResponse: function (response) { return jsonBig().parse(response); }, }).then((response) => { if (response?.error || response?.data?.error) { throw new KermitError(path, query, response?.error || response?.data?.error); } else if (response?.statusCode && response.statusCode !== 200) { throw new KermitError(path, query, `server status code: HTTP/${response.statusCode}`); } else { return response?.data; } }).catch(error => { throw new KermitError(path, query, error); }); } async getDataPushReport(witDrTxHash, evmNetwork) { return this.callApiGetMethod("get_data_push_report", { witDrTxHash, evmNetwork }); } } exports.KermitClient = KermitClient; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9rZXJtaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQXdDO0FBQ3hDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN2QyxxQ0FBMkM7QUFHM0MsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQVFuSCxNQUFhLFdBQVksU0FBUSxLQUFLO0lBSWxDLFlBQVksSUFBWSxFQUFFLEtBQVcsRUFBRSxLQUFXO1FBQzlDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0QsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFBO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7Q0FDSjtBQVhELGtDQVdDO0FBRUQsTUFBYSxZQUFZO0lBRXJCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQVk7UUFDN0IsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsSUFBSSwwQkFBMEIsQ0FBQyxDQUFBO0lBQ3hHLENBQUM7SUFJRCxZQUFZLEdBQVc7UUFDbkIsTUFBTSxDQUFDLE1BQU0sRUFBRyxHQUFHLFdBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEUsTUFBTSxLQUFLLENBQUMsd0NBQXdDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDakUsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUE7UUFDbkIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFBO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBRVMsS0FBSyxDQUFDLGdCQUFnQixDQUFJLElBQVksRUFBRSxLQUFXO1FBQ3pELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtRQUN0RSxPQUFPLGVBQUs7YUFDUCxHQUFHLENBQ0EsR0FBRyxFQUNIO1lBQ0ksaUJBQWlCLEVBQUUsVUFBUyxRQUFRLElBQUksT0FBTyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDO1NBQzdFLENBRUosQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixJQUFJLFFBQVEsRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRixDQUFDO2lCQUFNLElBQUksUUFBUSxFQUFFLFVBQVUsSUFBSSxRQUFRLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM3RCxNQUFNLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsNEJBQTRCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO1lBQ3pGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLFFBQVEsRUFBRSxJQUFTLENBQUM7WUFDL0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNiLE1BQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM3QyxDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsV0FBd0IsRUFBRSxVQUE0QjtRQUNqRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FDeEIsc0JBQXNCLEVBQ3RCO1lBQ0ksV0FBVztZQUNYLFVBQVU7U0FDYixDQUNKLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFyREQsb0NBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBheGlvcyB9IGZyb20gXCJheGlvc1wiXHJcbmNvbnN0IGpzb25CaWcgPSByZXF1aXJlKCdqc29uLWJpZ2ludCcpO1xyXG5pbXBvcnQgeyB1dGlscywgV2l0bmV0IH0gZnJvbSBcIkB3aXRuZXQvc2RrXCJcclxuaW1wb3J0IHsgRGF0YVB1c2hSZXBvcnQgfSBmcm9tIFwiLi90eXBlc1wiXHJcblxyXG5jb25zdCBzdHJpbmdpZnkgPSAocXVlcnk6IGFueSkgPT4gT2JqZWN0LmVudHJpZXMocXVlcnkpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJiR7a2V5fT0ke3ZhbHVlfWApLmpvaW4oXCJcIikuc2xpY2UoMSlcclxuXHJcbmludGVyZmFjZSBJS2VybWl0Q2xpZW50IHtcclxuICAgIGdldERhdGFQdXNoUmVwb3J0KHdpdERyVHhIYXNoOiBXaXRuZXQuSGFzaCwgZXZtTmV0d29yaz86IG51bWJlciB8IHN0cmluZyk6IFByb21pc2U8RGF0YVB1c2hSZXBvcnQ+O1xyXG4gICAgLy8gc2VhcmNoRGF0YVJlcXVlc3RzKGhhc2g6IEhhc2gsIHt9KTogUHJvbWlzZTxhbnk+O1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEtlcm1pdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gICAgcmVhZG9ubHkgZXJyb3I/OiBhbnk7XHJcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XHJcbiAgICByZWFkb25seSBxdWVyeT86IGFueTtcclxuICAgIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZywgcXVlcnk/OiBhbnksIGVycm9yPzogYW55KSB7XHJcbiAgICAgICAgc3VwZXIoYCR7cGF0aH0ke3N0cmluZ2lmeShxdWVyeSl9OiAke0pTT04uc3RyaW5naWZ5KGVycm9yKX1gKVxyXG4gICAgICAgIGRlbGV0ZSBlcnJvcj8uc3RhY2tcclxuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3JcclxuICAgICAgICB0aGlzLnBhdGggPSBwYXRoXHJcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBLZXJtaXRDbGllbnQgaW1wbGVtZW50cyBJS2VybWl0Q2xpZW50IHtcclxuXHJcbiAgICBzdGF0aWMgYXN5bmMgZnJvbUVudih1cmw/OiBzdHJpbmcpOiBQcm9taXNlPEtlcm1pdENsaWVudD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgS2VybWl0Q2xpZW50KHVybCB8fCBwcm9jZXNzLmVudi5XSVRORVRfS0VSTUlUX1BST1ZJREVSX1VSTCB8fCBcImh0dHBzOi8va2VybWl0LndpdG5ldC5pb1wiKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB1cmw6IHN0cmluZ1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IFtzY2hlbWEsIF0gPSB1dGlscy5wYXJzZVVSTCh1cmwpXHJcbiAgICAgICAgaWYgKCFzY2hlbWEuc3RhcnRzV2l0aChcImh0dHA6Ly9cIikgJiYgIXNjaGVtYS5zdGFydHNXaXRoKFwiaHR0cHM6Ly9cIikpIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEtlcm1pdENsaWVudDogdW5zdXBwb3J0ZWQgVVJMIHNjaGVtYSAke3NjaGVtYX1gKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVybCA9IHVybFxyXG4gICAgICAgIGlmICghdGhpcy51cmwuZW5kc1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsICs9IFwiL1wiXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy51cmwuZW5kc1dpdGgoXCJhcGkvXCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsICs9IFwiYXBpL1wiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyBjYWxsQXBpR2V0TWV0aG9kPFQ+KHBhdGg6IHN0cmluZywgcXVlcnk/OiBhbnkpOiBQcm9taXNlPEVycm9yIHwgYW55PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmx9JHtwYXRofSR7cXVlcnkgPyBgPyR7c3RyaW5naWZ5KHF1ZXJ5KX1gIDogXCJcIn1gXHJcbiAgICAgICAgcmV0dXJuIGF4aW9zXHJcbiAgICAgICAgICAgIC5nZXQoXHJcbiAgICAgICAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtUmVzcG9uc2U6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiBqc29uQmlnKCkucGFyc2UocmVzcG9uc2UpIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgcmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlPy5zdGF0dXNDb2RlICYmIHJlc3BvbnNlLnN0YXR1c0NvZGUgIT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgYHNlcnZlciBzdGF0dXMgY29kZTogSFRUUC8ke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YClcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlPy5kYXRhIGFzIFQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgZXJyb3IpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERhdGFQdXNoUmVwb3J0KHdpdERyVHhIYXNoOiBXaXRuZXQuSGFzaCwgZXZtTmV0d29yaz86IG51bWJlciB8IHN0cmluZyk6IFByb21pc2U8RGF0YVB1c2hSZXBvcnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpR2V0TWV0aG9kPERhdGFQdXNoUmVwb3J0PihcclxuICAgICAgICAgICAgXCJnZXRfZGF0YV9wdXNoX3JlcG9ydFwiLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3aXREclR4SGFzaCxcclxuICAgICAgICAgICAgICAgIGV2bU5ldHdvcmtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgIH1cclxufVxyXG4iXX0=