I'm trying to count the assets at a blockfrost api endpoint. It only shows 100 items on a page though. How do you loop through all the pages and extract the asset count? Thanks for any help.
const Http = new XMLHttpRequest(),
method = "GET",
url = 'https://cardano-mainnet.blockfrost.io/api/v0/accounts/stake1';
const PAGE_SIZE = 100 /* 100 is the max Blockfrost page size */
const stake_address = 'stake1';
Http.open(method, url, true);
Http.setRequestHeader('project_id', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
Http.send();
Http.onreadystatechange = (e) => {
if (e.currentTarget.readyState == 4 && e.currentTarget.status == 200 && e.currentTarget.responseText != '') {
async function count_assets() {
let total = 0;
try {
let total = 0;
let assets = [];
do {
assets = Http.responseText;
total += assets.length;
page++;
} while (assets.length == page);
} catch (err) {
console.log('error', err);
}
return total;
}
count_assets(stake_address).then(assets => {
console.log(stake_address, 'assets:', assets);
});
}}