UNPKG

@blockfrost/blockfrost-js

Version:

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

197 lines (196 loc) 8.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addressesUtxosAssetAll = exports.addressesUtxosAsset = exports.addressesUtxosAll = exports.addressesUtxos = exports.addressesTransactionsAll = exports.addressesTransactions = exports.addressesExtended = exports.addressesTotal = exports.addresses = void 0; const utils_1 = require("../../../utils"); const errors_1 = require("../../../utils/errors"); const got_1 = require("got"); /** * Obtains information about a specific address. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D/get | API docs for Specific address} * * @param address - Bech32 address * @returns Information about a specific stake account. * */ async function addresses(address) { try { const res = await this.instance(`addresses/${address}`); return res.body; } catch (error) { throw (0, errors_1.handleError)(error); } } exports.addresses = addresses; /** * Obtains aggregated details about transactions for a specific address * (received assets, sent assets, number of transactions). * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1total/get | API docs for Address details} * * @param address - Bech32 address * @returns Aggregated details about an address (received assets, sent assets, number of transactions) * */ async function addressesTotal(address) { try { const res = await this.instance(`addresses/${address}/total`); return res.body; } catch (error) { throw (0, errors_1.handleError)(error); } } exports.addressesTotal = addressesTotal; /** * Obtains extended information about a specific address. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~extended/get | API docs for Extended information of a specific address} * @remarks Similar to `addresses` with the addition of `has_nft_onchain_metadata` and `decimals` fields in asset amounts. * * @param address - Bech32 address * @returns Extended information about a specific address * */ async function addressesExtended(address) { try { const res = await this.instance(`addresses/${address}/extended`); return res.body; } catch (error) { throw (0, errors_1.handleError)(error); } } exports.addressesExtended = addressesExtended; /** * Obtains transactions linked to a spec * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1transactions/get | API docs for Address transactions} * * @param address - Bech32 address * @param pagination - Optional, Pagination options * @param cursorPagination - Optional, Additional options such as cursor pagination * @returns Extended information about a specific address * */ async function addressesTransactions(address, pagination, cursorPagination) { const cursorPaginationParams = (0, utils_1.getCursorPaginationParams)(cursorPagination); const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); try { const res = await this.instance(`addresses/${address}/transactions`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, from: cursorPaginationParams.from, to: cursorPaginationParams.to, }, }); return res.body; } catch (error) { if (error instanceof got_1.HTTPError && error.response.statusCode === 404) { return []; } throw (0, errors_1.handleError)(error); } } exports.addressesTransactions = addressesTransactions; /** * Obtains all transactions on the address. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1transactions/get | API docs for Address transactions} * @remarks * Variant of `addressesTransactions` method for fetching all pages with built-in requests batching * * @param address - Bech32 address * @param allMethodOptions - Optional, Options for request batching * @param cursorPagination - Optional, Additional options such as cursor pagination * @returns Extended information about a specific address * */ async function addressesTransactionsAll(address, allMethodOptions, cursorPagination) { return (0, utils_1.paginateMethod)((pagination, cursorPagination) => this.addressesTransactions(address, pagination, cursorPagination), allMethodOptions, cursorPagination); } exports.addressesTransactionsAll = addressesTransactionsAll; /** * Obtains UTXOs of the address * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1utxos/get | API docs for Address UTXOs} * * @param address - Bech32 address * @param pagination - Optional, Pagination options * @returns UTXOs of the address * */ async function addressesUtxos(address, pagination) { const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); try { const res = await this.instance(`addresses/${address}/utxos`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, }, }); return res.body; } catch (error) { throw (0, errors_1.handleError)(error); } } exports.addressesUtxos = addressesUtxos; /** * Obtains all UTXOs of the address * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1utxos/get | API docs for Address UTXOs} * @remarks * Variant of `addressesUtxos` method for fetching all pages with built-in requests batching * * @param address - Bech32 address * @param allMethodOptions - Optional, Options for request batching * @returns UTXOs of the address * */ async function addressesUtxosAll(address, allMethodOptions) { return (0, utils_1.paginateMethod)(pagination => this.addressesUtxos(address, pagination), allMethodOptions); } exports.addressesUtxosAll = addressesUtxosAll; /** * Obtains address's UTXOs containing a given asset (paginated) * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1utxos~1%7Basset%7D/get | API docs for Address UTXOs of a given asset} * * @param address - Bech32 address * @param asset - Concatenation of the policy ID and hex-encoded asset name * @param pagination - Optional, Pagination options * @returns List of the address's utxos containing a given asset * */ async function addressesUtxosAsset(address, asset, pagination) { // TODO: test is missing since we can't guarantee that list of address's utxos won't change in the future const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); try { const res = await this.instance(`addresses/${address}/utxos/${asset}`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, }, }); return res.body; } catch (error) { throw (0, errors_1.handleError)(error); } } exports.addressesUtxosAsset = addressesUtxosAsset; /** * Obtains all address's UTXOs containing a given asset * @see {@link https://docs.blockfrost.io/#tag/Cardano-Addresses/paths/~1addresses~1%7Baddress%7D~1utxos~1%7Basset%7D/get | API docs for Address UTXOs of a given asset} * @remarks * Variant of `addressesUtxosAsset` method for fetching all pages with built-in requests batching * * @param address - Bech32 address * @param asset - Concatenation of the policy ID and hex-encoded asset name * @param allMethodOptions - Optional, Options for request batching * @returns List of the address's utxos containing a given asset * */ async function addressesUtxosAssetAll(address, asset, allMethodOptions) { return (0, utils_1.paginateMethod)(pagination => this.addressesUtxosAsset(address, asset, pagination), allMethodOptions); } exports.addressesUtxosAssetAll = addressesUtxosAssetAll;