-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
total transactions reported as 0 when an offset is used #2061
Comments
Confirmed in v8.0.0 |
Some context: I came across this issue while coding a script that updates a local JSON file holding all the transactions of our Pool Operator. The script checks how many transactions I already saved in a JSON and how many are left to fetch. But after I downloaded 30 transactions, I was missing the latest 3 transactions I broadcasted. Upon debugging, I noticed that the It would be great to always show the let lastTxs = [];
let total = 0;
let limitLastTxs = 10;
let totalSavedTxs = jsonTxData.transactions.length;
let offsetLastTxs = jsonTxData.transactions.length;
while (total <= totalSavedTxs) {
try {
await fetch(
'https://api.hiro.so/extended/v2/addresses/' +
poolAddress + '/transactions?limit=' + limitLastTxs +
'&offset=' + offsetLastTxs, {
method: 'get',
headers: { 'Content-Type': 'application/json' }
}
)
.then((response) => response.json())
.then((data) => {
//console.log('data', data);
// Concatenate results with the previous fetch
lastTxs = lastTxs.concat(data.results);
// Update total
total = data.total;
// Update offset
offsetLastTxs = (lastTxs.length + totalSavedTxs);
});
// Break if it is still totalSavedTxs === total
if (total === totalSavedTxs || total === 0) break;
} catch (e) {
console.error('Could not fetch transactions from HIRO API.');
throw new Error(e);
}
} |
🎉 This issue has been resolved in version 8.1.0-beta.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
🎉 This issue has been resolved in version 8.1.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This issue was not entirely solved, unfortunately. See attached pictures more info. Basically, when I have 5 transactions but request transactions with an offset of 4, I see 1 transaction (good) and a total count of 5 (good). But when I use an offset of 5, the total drops to 0 (not good, should remain 5). |
Thanks @crypt0jan. It looks like the total will need to be moved out of the results query so we don't lose it when it's empty. I'll try to get to this soon, but I've reopened this issue for now |
Just know that changing it to always showing the total will be a breaking change in apps that now rely on "until total === 0". Current pseudo code: Future pseudo code: |
Thanks @crypt0jan. We won't consider this a breaking change that requires a major version bump as it's fixing a bug, rather than changing previously intended behavior. Put another way, no documentation update is needed for this as the prior behavior wasn't previously specified. |
Example: https://api.hiro.so/extended/v2/addresses/SP1JX8274K2R0MMP1VCX56C5DCERPP6EH5XHS68MR/transactions?limit=30&offset=30
When
offset=
is removed:The text was updated successfully, but these errors were encountered: