@witnet/ethers
Version:
Wit/Oracle SDK Framework package for Solidity projects
65 lines • 9.89 kB
JavaScript
;
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=