UNPKG

@citizenwallet/sdk

Version:

An sdk to easily work with citizen wallet.

87 lines 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogsService = exports.LogStatus = void 0; exports.logDataToQueryString = logDataToQueryString; // Enum for LogStatus var LogStatus; (function (LogStatus) { LogStatus["Unknown"] = ""; LogStatus["Sending"] = "sending"; LogStatus["Pending"] = "pending"; LogStatus["Success"] = "success"; LogStatus["Fail"] = "fail"; })(LogStatus || (exports.LogStatus = LogStatus = {})); function logDataToQueryString(data, prefix = "data") { return Object.entries(data) .map(([key, value]) => `&${prefix}.${key}=${encodeURIComponent(value)}`) .join(""); } class LogsService { constructor(config) { const network = config.primaryNetwork; this.url = `${network.node.url}/v1/logs`; } async getLog(tokenAddress, hash) { const url = `${this.url}/${tokenAddress}/tx/${hash}`; const resp = await fetch(url); return resp.json(); } async getLogs(tokenAddress, topic, params) { let url = `${this.url}/${tokenAddress}/${topic}`; if (params) { url += `?limit=${params.limit}&offset=${params.offset}`; if (params.maxDate) { url += `&maxDate=${params.maxDate}`; } if (params.data) { url += logDataToQueryString(params.data); } if (params.orData) { url += logDataToQueryString(params.orData, "data2"); } } const resp = await fetch(url); return resp.json(); } async getAllLogs(tokenAddress, topic, params) { let url = `${this.url}/${tokenAddress}/${topic}/all`; if (params) { url += `?limit=${params.limit}&offset=${params.offset}`; if (params.maxDate) { url += `&maxDate=${params.maxDate}`; } } const resp = await fetch(url); return resp.json(); } async getNewLogs(tokenAddress, topic, params) { let url = `${this.url}/${tokenAddress}/${topic}/new`; if (params) { url += `?limit=${params.limit}&offset=${params.offset}`; if (params.fromDate) { url += `&fromDate=${params.fromDate}`; } if (params.data) { url += logDataToQueryString(params.data); } if (params.orData) { url += logDataToQueryString(params.orData, "data2"); } } const resp = await fetch(url); return resp.json(); } async getAllNewLogs(tokenAddress, topic, params) { let url = `${this.url}/${tokenAddress}/${topic}/new/all`; if (params) { url += `?limit=${params.limit}&offset=${params.offset}`; if (params.fromDate) { url += `&fromDate=${params.fromDate}`; } } const resp = await fetch(url); return resp.json(); } } exports.LogsService = LogsService; //# sourceMappingURL=index.js.map