@ledgerhq/coin-tezos
Version:
77 lines • 2.68 kB
JavaScript
;
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