UNPKG

@apexfusionfoundation/blockfrost-js

Version:

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

198 lines (197 loc) 8.55 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"); /** * 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) { return new Promise((resolve, reject) => { this.instance(`addresses/${address}`) .then(resp => { resolve(resp.body); }) .catch(err => reject((0, errors_1.handleError)(err))); }); } 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) { return new Promise((resolve, reject) => { this.instance(`addresses/${address}/total`) .then(resp => { resolve(resp.body); }) .catch(err => reject((0, errors_1.handleError)(err))); }); } 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) { return new Promise((resolve, reject) => { this.instance(`addresses/${address}/extended`) .then(resp => { resolve(resp.body); }) .catch(err => reject((0, errors_1.handleError)(err))); }); } exports.addressesExtended = addressesExtended; /** * Obtains 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} * * @param address - Bech32 address * @param pagination - Optional, Pagination options * @param additionalOptions - Optional, Additional options such as cursor pagination * @returns Extended information about a specific address * */ async function addressesTransactions(address, pagination, additionalOptions) { const additionalParams = (0, utils_1.getAdditionalParams)(additionalOptions); const paginationOptions = (0, utils_1.getPaginationOptions)(pagination); return new Promise((resolve, reject) => { this.instance(`addresses/${address}/transactions`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, from: additionalParams.from, to: additionalParams.to, }, }) .then(resp => { resolve(resp.body); }) .catch(err => { if (err && err.response && err.response.statusCode === 404) { resolve([]); } reject((0, errors_1.handleError)(err)); }); }); } 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 additionalOptions - Optional, Additional options such as cursor pagination * @returns Extended information about a specific address * */ async function addressesTransactionsAll(address, allMethodOptions, additionalOptions) { return (0, utils_1.paginateMethod)((pagination, additionalOptions) => this.addressesTransactions(address, pagination, additionalOptions), allMethodOptions, additionalOptions); } 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); return new Promise((resolve, reject) => { this.instance(`addresses/${address}/utxos`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, }, }) .then(resp => { resolve(resp.body); }) .catch(err => reject((0, errors_1.handleError)(err))); }); } 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); return new Promise((resolve, reject) => { this.instance(`addresses/${address}/utxos/${asset}`, { searchParams: { page: paginationOptions.page, count: paginationOptions.count, order: paginationOptions.order, }, }) .then(resp => { resolve(resp.body); }) .catch(err => reject((0, errors_1.handleError)(err))); }); } 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;