UNPKG

@apexfusionfoundation/blockfrost-js

Version:

A JavaScript/TypeScript SDK for interacting with the https://blockfrost.io API

230 lines (229 loc) 8.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.blocksAddressesAll = exports.blocksAddresses = exports.blocksTxsAll = exports.blocksTxs = exports.blocksPrevious = exports.blocksNext = exports.blocksLatestTxsAll = exports.blocksLatestTxs = exports.blocksLatest = exports.blocks = void 0; const utils_1 = require("../../../utils"); const errors_1 = require("../../../utils/errors"); /** * Obtains a specific block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1latest/get | API docs for Latest block} * * @param hashOrNumber - Hash or number of the requested block * @returns Specific block * */ async function blocks(hashOrNumber) { return new Promise((resolve, reject) => { this.instance(`blocks/${hashOrNumber}`) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.blocks = blocks; /** * Obtains the specific block available to the backends, also known as the tip of the blockchain. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1latest/get | API docs for Latest block} * * @returns latest block * */ async function blocksLatest() { return new Promise((resolve, reject) => { this.instance(`blocks/latest`) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.blocksLatest = blocksLatest; /** * Obtains transactions within the latest block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1latest~1txs/get | API docs for Latest block transactions} * * @param pagination - Optional, Pagination options * @returns transactions within the latest block * */ async function blocksLatestTxs(pagination) { const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); return new Promise((resolve, reject) => { this.instance(`blocks/latest/txs`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, }, }) .then(resp => { resolve(resp.body); }) .catch(err => { return reject((0, errors_1.handleError)(err)); }); }); } exports.blocksLatestTxs = blocksLatestTxs; /** * Obtains all transactions within the latest block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1latest~1txs/get | API docs for Latest block transactions} * @remarks * Variant of `blocksLatestTxs` method for fetching all pages with built-in requests batching * * @param allMethodOptions - Optional, Options for request batching * @returns transactions within the latest block * */ async function blocksLatestTxsAll(allMethodOptions) { return (0, utils_1.paginateMethod)(pagination => this.blocksLatestTxs(pagination), allMethodOptions); } exports.blocksLatestTxsAll = blocksLatestTxsAll; /** * Obtains list of blocks following a specific block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1%7Bhash_or_number%7D~1next/get | API docs for Listing of next blocks} * * @param hashOrNumber - Hash or number of the requested block * @param pagination - Optional, Pagination options * @returns List of blocks following a specific block * */ async function blocksNext(hashOrNumber, pagination) { const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); return new Promise((resolve, reject) => { this.instance(`blocks/${hashOrNumber}/next`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, }, }) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.blocksNext = blocksNext; /** * Obtains list of blocks preceding a specific block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1%7Bhash_or_number%7D~previous/get | API docs for Listing of previous blocks} * * @param hashOrNumber - Hash or number of the requested block * @param pagination - Optional, Pagination options * @returns List of blocks preceding a specific block * */ async function blocksPrevious(hashOrNumber, pagination) { const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); return new Promise((resolve, reject) => { this.instance(`blocks/${hashOrNumber}/previous`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, }, }) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.blocksPrevious = blocksPrevious; /** * Obtains transactions within the specific block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1%7Bhash_or_number%7D~1txs/get | API docs for Block transactions} * * @param hashOrNumber - Hash or number of the requested block * @param pagination - Optional, Pagination options * @returns Transactions within the specific block * */ async function blocksTxs(hashOrNumber, pagination) { const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); return new Promise((resolve, reject) => { this.instance(`blocks/${hashOrNumber}/txs`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, }, }) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.blocksTxs = blocksTxs; /** * Obtains all transactions within the specific block. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1%7Bhash_or_number%7D~1txs/get | API docs for Block transactions} * @remarks * Variant of `blocksTxs` method for fetching all pages with built-in requests batching * * @param hashOrNumber - Hash or number of the requested block * @param allMethodOptions - Optional, Options for request batching * @returns All transactions within the specific block * */ async function blocksTxsAll(hashOrNumber, allMethodOptions) { return (0, utils_1.paginateMethod)(pagination => this.blocksTxs(hashOrNumber, pagination), allMethodOptions); } exports.blocksTxsAll = blocksTxsAll; /** * Obtains list of addresses affected in the specified block with additional information. * @remarks * Sorted by the bech32 address, in ascending order. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1%7Bhash_or_number%7D~1addresses/get | API docs for Addresses affected in a specific block} * * @param hashOrNumber - Hash or number of the requested block * @param pagination - Optional, Pagination options * @returns List of addresses affected in the specified block * */ async function blocksAddresses(hashOrNumber, pagination) { const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); return new Promise((resolve, reject) => { this.instance(`blocks/${hashOrNumber}/addresses`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, // order: paginationOptions.order, // no ordering on /blocks/{hash}/addresses }, }) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.blocksAddresses = blocksAddresses; /** * Obtains list of addresses affected in the specified block with additional information. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Blocks/paths/~1blocks~1%7Bhash_or_number%7D~1addresses/get | API docs for Addresses affected in a specific block} * @remarks * Sorted by the bech32 address, in ascending order. * @remarks * Variant of `blocksAddresses` method for fetching all pages with built-in requests batching * * @param hashOrNumber - Hash or number of the requested block * @param allMethodOptions - Optional, Options for request batching * @returns List of addresses affected in the specified block * */ async function blocksAddressesAll(hashOrNumber, allMethodOptions) { return (0, utils_1.paginateMethod)(pagination => this.blocksAddresses(hashOrNumber, pagination), allMethodOptions); } exports.blocksAddressesAll = blocksAddressesAll;