blockfrost-js-ratelimited
Version:
A JavaScript/TypeScript SDK for interacting with the https://blockfrost.io API
368 lines (367 loc) • 14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.accountsAddressesAssetsAll = exports.accountsAddressesAssets = exports.accountsAddressesAll = exports.accountsAddresses = exports.accountsRegistrationsAll = exports.accountsRegistrations = exports.accountsDelegationsAll = exports.accountsDelegations = exports.accountsMirsAll = exports.accountsMirs = exports.accountsWithdrawalsAll = exports.accountsWithdrawals = exports.accountsHistoryAll = exports.accountsHistory = exports.accountsRewardsAll = exports.accountsRewards = exports.accounts = void 0;
const config_1 = require("../../../config");
const utils_1 = require("../../../utils");
async function accounts(stakeAddress) {
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}`)
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accounts = accounts;
async function accountsRewards(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/rewards`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsRewards = accountsRewards;
async function accountsRewardsAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsRewards(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsRewardsAll = accountsRewardsAll;
async function accountsHistory(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/history`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsHistory = accountsHistory;
async function accountsHistoryAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsHistory(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsHistoryAll = accountsHistoryAll;
async function accountsWithdrawals(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/withdrawals`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsWithdrawals = accountsWithdrawals;
async function accountsWithdrawalsAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsWithdrawals(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsWithdrawalsAll = accountsWithdrawalsAll;
async function accountsMirs(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/mirs`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsMirs = accountsMirs;
async function accountsMirsAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsMirs(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsMirsAll = accountsMirsAll;
async function accountsDelegations(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/delegations`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsDelegations = accountsDelegations;
async function accountsDelegationsAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const options = utils_1.getAllMethodOptions(allMethodOptions);
const res = [];
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsDelegations(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsDelegationsAll = accountsDelegationsAll;
async function accountsRegistrations(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/registrations`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsRegistrations = accountsRegistrations;
async function accountsRegistrationsAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsRegistrations(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsRegistrationsAll = accountsRegistrationsAll;
async function accountsAddresses(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/addresses`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsAddresses = accountsAddresses;
async function accountsAddressesAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsAddresses(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsAddressesAll = accountsAddressesAll;
async function accountsAddressesAssets(stakeAddress, pagination) {
const paginationOptions = utils_1.getPaginationOptions(pagination);
return new Promise((resolve, reject) => {
this.axiosInstance(`${this.apiUrl}/accounts/${stakeAddress}/addresses/assets`, {
params: {
page: paginationOptions.page,
count: paginationOptions.count,
order: paginationOptions.order,
},
})
.then(resp => {
resolve(resp.data);
})
.catch(err => reject(utils_1.handleError(err)));
});
}
exports.accountsAddressesAssets = accountsAddressesAssets;
async function accountsAddressesAssetsAll(stakeAddress, allMethodOptions) {
let page = 1;
const count = config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT;
const res = [];
const options = utils_1.getAllMethodOptions(allMethodOptions);
const getPromiseBundle = () => {
const promises = [...Array(options.batchSize).keys()].map(i => this.accountsAddressesAssets(stakeAddress, {
page: page + i,
count,
order: options.order,
}));
page += options.batchSize;
return promises;
};
// eslint-disable-next-line no-constant-condition
while (true) {
const promiseBundle = getPromiseBundle();
const pages = await Promise.all(promiseBundle);
for (const page of pages) {
res.push(...page);
if (page.length < config_1.DEFAULT_PAGINATION_PAGE_ITEMS_COUNT) {
return res;
}
}
}
}
exports.accountsAddressesAssetsAll = accountsAddressesAssetsAll;