UNPKG

@ledgerhq/coin-mina

Version:
90 lines 3.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.rosettaSubmitTransaction = exports.fetchTransactionMetadata = exports.rosettaGetBlockInfo = exports.fetchAccountTransactions = exports.fetchAccountBalance = exports.fetchNetworkStatus = void 0; const live_network_1 = __importDefault(require("@ledgerhq/live-network")); const config_1 = require("../../config"); const utils_1 = require("./utils"); const consts_1 = require("../../consts"); const getRosettaUrl = (route) => { const currencyConfig = (0, config_1.getCoinConfig)(); return `${currencyConfig.infra.API_MINA_ROSETTA_NODE}${route || ""}`; }; const fetchNetworkStatus = async () => { const { data } = await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/network/status"), data: (0, utils_1.addNetworkIdentifier)({}), }); return data; }; exports.fetchNetworkStatus = fetchNetworkStatus; const fetchAccountBalance = async (address) => { const { data } = await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/account/balance"), data: (0, utils_1.addNetworkIdentifier)((0, utils_1.buildAccountIdentifier)(address)), }); return data; }; exports.fetchAccountBalance = fetchAccountBalance; const fetchAccountTransactions = async (address, offset = 0) => { const transactions = []; let currentOffset = offset; while (currentOffset !== undefined) { const response = await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/search/transactions"), data: { ...(0, utils_1.addNetworkIdentifier)((0, utils_1.buildAccountIdentifier)(address)), offset: currentOffset, limit: consts_1.MAX_TRANSACTIONS_PER_PAGE, include_timestamp: true, }, }); const { data } = response; transactions.push(...data.transactions); currentOffset = data.next_offset; } return transactions; }; exports.fetchAccountTransactions = fetchAccountTransactions; const rosettaGetBlockInfo = async (blockHeight) => { const { data } = await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/block"), data: (0, utils_1.addNetworkIdentifier)({ block_identifier: { index: blockHeight } }), }); return data; }; exports.rosettaGetBlockInfo = rosettaGetBlockInfo; const rosettaPreprocess = async (from, to, feeNano, valueNano) => { const payload = (0, utils_1.makeTransferPayload)(from, to, feeNano, valueNano); const { data } = await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/construction/preprocess"), data: (0, utils_1.addNetworkIdentifier)(payload), }); return data; }; const fetchTransactionMetadata = async (srcAddress, destAddress, feeNano, valueNano) => { const options = await rosettaPreprocess(srcAddress, destAddress, feeNano, valueNano); const payload = (0, utils_1.makeTransferPayload)(srcAddress, destAddress, feeNano, valueNano); return await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/construction/metadata"), data: (0, utils_1.addNetworkIdentifier)({ ...payload, ...options }), }); }; exports.fetchTransactionMetadata = fetchTransactionMetadata; const rosettaSubmitTransaction = async (blob) => { return await (0, live_network_1.default)({ method: "POST", url: getRosettaUrl("/construction/submit"), data: (0, utils_1.addNetworkIdentifier)({ signed_transaction: blob }), }); }; exports.rosettaSubmitTransaction = rosettaSubmitTransaction; //# sourceMappingURL=index.js.map