@apexfusionfoundation/blockfrost-js
Version:
A JavaScript/TypeScript SDK for interacting with the https://blockfrost.io API
187 lines (186 loc) • 7.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assetsPolicyByIdAll = exports.assetsPolicyById = exports.assetsAddresses = exports.assetsTransactions = exports.assetsHistoryAll = exports.assetsHistory = exports.assetsById = exports.assets = void 0;
const utils_1 = require("../../../utils");
const errors_1 = require("../../../utils/errors");
/**
* Obtains list of assets.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets/get | API docs for Assets}
* @remarks
* If an asset is completely burned, it will stay on the list with quantity 0 (order of assets is immutable).
*
* @param stakeAddress - Bech32 stake address
* @param pagination - Optional, Pagination options
* @returns List of assets
*
*/
async function assets(pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`assets`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => reject((0, errors_1.handleError)(err)));
});
}
exports.assets = assets;
/**
* Obtains information about a specific asset.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1%7Basset%7D/get | API docs for Asset}
*
* @param asset - Concatenation of the policy ID and hex-encoded asset name
* @returns Information about a specific asset.
*
*/
async function assetsById(asset) {
return new Promise((resolve, reject) => {
this.instance(`assets/${asset}`)
.then(resp => {
resolve(resp.body);
})
.catch(err => reject((0, errors_1.handleError)(err)));
});
}
exports.assetsById = assetsById;
/**
* Obtains history of a specific asset.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1%7Basset%7D~1history/get | API docs for Asset history}
*
* @param asset - Concatenation of the policy ID and hex-encoded asset name
* @param pagination - Optional, Pagination options
* @returns History of a specific asset.
*
*/
async function assetsHistory(asset, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`assets/${asset}/history`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => reject((0, errors_1.handleError)(err)));
});
}
exports.assetsHistory = assetsHistory;
/**
* Obtains whole history of a specific asset.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1%7Basset%7D~1history/get | API docs for Asset history}
* @remarks
* Variant of `assetsHistory` method for fetching all pages with built-in requests batching
*
* @param asset - Concatenation of the policy ID and hex-encoded asset name
* @param allMethodOptions - Optional, Options for request batching
* @returns Whole history of a specific asset.
*
*/
async function assetsHistoryAll(asset, allMethodOptions) {
return (0, utils_1.paginateMethod)(pagination => this.assetsHistory(asset, pagination), allMethodOptions);
}
exports.assetsHistoryAll = assetsHistoryAll;
/**
* Lists of transactions of a specific asset.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1%7Basset%7D~1transactions/get | API docs for Asset transactions}
*
* @param asset - Concatenation of the policy ID and hex-encoded asset name
* @param pagination - Optional, Pagination options
* @returns List of a specific asset transactions.
*
*/
async function assetsTransactions(asset, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`assets/${asset}/transactions`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => reject((0, errors_1.handleError)(err)));
});
}
exports.assetsTransactions = assetsTransactions;
/**
* Obtains list of a addresses containing a specific asset.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1%7Basset%7D~1addresses/get | API docs for Asset addresses}
*
* @param asset - Concatenation of the policy ID and hex-encoded asset name
* @param pagination - Optional, Pagination options
* @returns List of a addresses containing a specific asset.
*
*/
async function assetsAddresses(asset, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`assets/${asset}/addresses`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => reject((0, errors_1.handleError)(err)));
});
}
exports.assetsAddresses = assetsAddresses;
/**
* Obtains list of assets minted under a specific policy.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1policy~1%7Bpolicy_id%7D/get | API docs for Assets of a specific policy}
*
* @param policyId - Specific policy ID
* @param pagination - Optional, Pagination options
* @returns List of assets minted under a specific policy.
*
*/
async function assetsPolicyById(policyId, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`assets/policy/${policyId}`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => reject((0, errors_1.handleError)(err)));
});
}
exports.assetsPolicyById = assetsPolicyById;
/**
* Obtains list of all assets minted under a specific policy.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Assets/paths/~1assets~1policy~1%7Bpolicy_id%7D/get | API docs for Assets of a specific policy}
* @remarks
* Variant of `assetsPolicyById` method for fetching all pages with built-in requests batching
*
* @param policyId - Specific policy ID
* @param pagination - Optional, Pagination options
* @param allMethodOptions - Optional, Options for request batching
* @returns List of asset minted under a specific policy.
*
*/
async function assetsPolicyByIdAll(policyId, allMethodOptions) {
return (0, utils_1.paginateMethod)(pagination => this.assetsPolicyById(policyId, pagination), allMethodOptions);
}
exports.assetsPolicyByIdAll = assetsPolicyByIdAll;