UNPKG

@ledgerhq/coin-tezos

Version:
77 lines 2.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchAllTransactions = void 0; const url_1 = __importDefault(require("url")); const logs_1 = require("@ledgerhq/logs"); const live_network_1 = __importDefault(require("@ledgerhq/live-network")); const config_1 = __importDefault(require("../config")); const getExplorerUrl = () => config_1.default.getCoinConfig().explorer.url; const api = { async getBlockCount() { const { data } = await (0, live_network_1.default)({ url: `${getExplorerUrl()}/v1/blocks/count`, }); return data; }, async getLastBlock() { const { data } = await (0, live_network_1.default)({ url: `${getExplorerUrl()}/v1/blocks`, params: { "sort.desc": "level", }, }); return { hash: data[0].hash, level: data[0].level, date: new Date(data[0].timestamp), }; }, async getAccountByAddress(address) { const { data } = await (0, live_network_1.default)({ url: `${getExplorerUrl()}/v1/accounts/${address}`, }); return data; }, // https://api.tzkt.io/#operation/Accounts_GetOperations async getAccountOperations(address, query) { // Remove undefined from query Object.entries(query).forEach(([key, value]) => value === undefined && delete query[key]); const { data } = await (0, live_network_1.default)({ url: url_1.default.format({ pathname: `${getExplorerUrl()}/v1/accounts/${address}/operations`, query, }), }); return data; }, }; // TODO this has same purpose as api/listOperations const fetchAllTransactions = async (address, lastId) => { let ops = []; let maxIteration = config_1.default.getCoinConfig().explorer.maxTxQuery; do { const newOps = await api.getAccountOperations(address, { lastId, sort: "Ascending", "level.ge": 0, }); if (newOps.length === 0) return ops; ops = ops.concat(newOps); const last = ops[ops.length - 1]; if (!last) return ops; lastId = last.id; if (!lastId) { (0, logs_1.log)("tezos", "id missing!"); return ops; } } while (--maxIteration); return ops; }; exports.fetchAllTransactions = fetchAllTransactions; exports.default = api; //# sourceMappingURL=tzkt.js.map