Also store ledger information

This commit is contained in:
Wietse Wind
2023-10-01 02:23:55 +02:00
parent 250cd7f123
commit 31995b7c4e

View File

@@ -43,7 +43,20 @@ const onLedger = async ({
: []), : []),
].map(query => query.then(results => { ].map(query => query.then(results => {
if (results?.validated && results?.ledger_index === ledger?.ledger_index && results?.ledger_hash === ledger?.ledger_hash) { if (results?.validated && results?.ledger_index === ledger?.ledger_index && results?.ledger_hash === ledger?.ledger_hash) {
if (results?.ledger?.transactions && obtainedBinaryTxLedgers.indexOf(ledger.ledger_index) < 0) { if (
results?.ledger?.transactions
&& Array.isArray(results.ledger.transactions)
&& results.ledger.transactions.length > 0
&& obtainedBinaryTxLedgers.indexOf(ledger.ledger_index) < 0
) {
/**
* Store in array, so if more ledger events come in and they
* also result in a response here, it won't be saved again.
* So yes: events will come in multiple times if multiple
* nodes are connected, and yes, multiple promises will be
* fired to fetch the ledger information, but then only
* the first one will be stored.
*/
obtainedBinaryTxLedgers.unshift(results.ledger_index) obtainedBinaryTxLedgers.unshift(results.ledger_index)
obtainedBinaryTxLedgers.length = 250 obtainedBinaryTxLedgers.length = 250
@@ -54,7 +67,13 @@ const onLedger = async ({
} }
}) })
} }
if (results?.ledger?.parent_hash && obtainedHumanReadableLedgers.indexOf(ledger.ledger_index) < 0) { if (
results?.ledger?.parent_hash
&& obtainedHumanReadableLedgers.indexOf(ledger.ledger_index) < 0
) {
/**
* See comment above "Store in array" ... - first one will be stored
*/
obtainedHumanReadableLedgers.unshift(results.ledger_index) obtainedHumanReadableLedgers.unshift(results.ledger_index)
obtainedHumanReadableLedgers.length = 250 obtainedHumanReadableLedgers.length = 250