@citizenwallet/sdk
Version:
An sdk to easily work with citizen wallet.
87 lines • 3.06 kB
JavaScript
;
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