@apexfusionfoundation/blockfrost-js
Version:
A JavaScript/TypeScript SDK for interacting with the https://blockfrost.io API
304 lines (303 loc) • 10.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.poolsExtendedAll = exports.poolsExtended = exports.poolsByIdUpdates = exports.poolsByIdBlocks = exports.poolsByIdDelegators = exports.poolsByIdRelays = exports.poolMetadata = exports.poolsByIdHistory = exports.poolsById = exports.poolsRetiring = exports.poolsRetired = exports.poolsAll = exports.pools = void 0;
const utils_1 = require("../../../utils");
const errors_1 = require("../../../utils/errors");
/**
* Obtains list of registered stake pools (paginated).
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools/get | API docs for List of stake pools}
*
* @param pagination - Optional, Pagination options
* @returns List of registered stake pools.
*
*/
async function pools(pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.pools = pools;
/**
* Obtains list of all registered stake pools.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools/get | API docs for List of stake pools}
* @remarks
* Variant of `pools` method for fetching all pages with built-in requests batching
*
* @param allMethodOptions - Optional, Options for request batching
* @returns List of registered stake pools.
*
*/
async function poolsAll(allMethodOptions) {
return (0, utils_1.paginateMethod)(pagination => this.pools(pagination), allMethodOptions);
}
exports.poolsAll = poolsAll;
async function poolsRetired(pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/retired`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsRetired = poolsRetired;
/**
* Obtains list of stake pools retiring in the upcoming epochs (paginated).
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1retiring/get | API docs for List of retiring stake pools}
*
* @param pagination - Optional, Pagination options
* @returns List of stake pools retiring in the upcoming epochs
*
*/
async function poolsRetiring(pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/retiring`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsRetiring = poolsRetiring;
/**
* Obtains information of a specific stake pool.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D/get | API docs for Stake Pool}
*
* @param poolId - Pool ID
* @returns Information of a specific stake pool.
*
*/
async function poolsById(poolId) {
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}`)
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsById = poolsById;
/**
* Obtains history of stake pool parameters over epochs (paginated).
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~1history/get | API docs for Stake pool history}
*
* @param poolId - Pool ID
* @param pagination - Optional, Pagination options
* @returns List of stake pool parameters per epoch
*
*/
async function poolsByIdHistory(poolId, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}/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.poolsByIdHistory = poolsByIdHistory;
/**
* Obtains stake pool registration metadata.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~1metadata/get | API docs for Stake pool metadata}
*
* @param poolId - Pool ID
* @returns Stake pool registration metadata
*
*/
async function poolMetadata(poolId) {
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}/metadata`)
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolMetadata = poolMetadata;
/**
* Obtains stake pool relays.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~1relays/get | API docs for Stake pool relays}
*
* @param poolId - Pool ID
* @returns Stake pool relays
*
*/
async function poolsByIdRelays(poolId) {
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}/relays`)
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsByIdRelays = poolsByIdRelays;
/**
* Obtains current stake pool delegators.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~delegators/get | API docs for Stake pool delegators}
*
* @param poolId - Pool ID
* @returns Current stake pool delegators
*
*/
async function poolsByIdDelegators(poolId, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}/delegators`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsByIdDelegators = poolsByIdDelegators;
/**
* Obtains list of stake pool blocks.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~1blocks/get | API docs for Stake pool blocks}
*
* @param poolId - Pool ID
* @param pagination - Optional, Pagination options
* @returns List of stake pool blocks
*
*/
async function poolsByIdBlocks(poolId, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}/blocks`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsByIdBlocks = poolsByIdBlocks;
/**
* Obtains list of certificate updates to the stake pool.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~1updates/get | API docs for Stake pool updates}
*
* @param poolId - Pool ID
* @param pagination - Optional, Pagination options
* @returns List of certificate updates to the stake pool
*
*/
async function poolsByIdUpdates(poolId, pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/${poolId}/updates`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsByIdUpdates = poolsByIdUpdates;
/**
* Obtains list of registered stake pools with additional information.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1extended/get | API docs for List of stake pools with additional information}
*
* @returns List of registered stake pools with additional information
*
*/
async function poolsExtended(pagination) {
const paginationOptions = (0, utils_1.getPaginationOptions)(pagination);
return new Promise((resolve, reject) => {
this.instance(`pools/extended`, {
searchParams: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.body);
})
.catch(err => {
reject((0, errors_1.handleError)(err));
});
});
}
exports.poolsExtended = poolsExtended;
/**
* Obtains list of registered stake pools with additional information.
* @see {@link https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1extended/get | API docs for List of stake pools with additional information}
* @remarks
* Variant of `poolsExtended` method for fetching all pages with built-in requests batching
*
* @param allMethodOptions - Optional, Options for request batching
* @returns List of registered stake pools with additional information
*
*/
async function poolsExtendedAll(allMethodOptions) {
return (0, utils_1.paginateMethod)(pagination => this.poolsExtended(pagination), allMethodOptions);
}
exports.poolsExtendedAll = poolsExtendedAll;