Class: StatusDoc<T>
// Create a new StatusDoc with transaction tracking const statusDoc = new StatusDoc({ docId: 'status', block: { height: 1000, txIndex: 5, timestamp: Date.now()…
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:723
Example
// Create a new StatusDoc with transaction tracking
const statusDoc = new StatusDoc({
_docId: 'status',
block: { height: 1000, txIndex: 5, timestamp: Date.now() },
nextCollectionId: 123,
gasPrice: 0.001,
lastXGasAmounts: [0.001, 0.002, 0.0015],
lastXGasLimits: [100000, 150000, 120000],
lastXTxs: []
});
// Add transactions with timestamps
statusDoc.addTransaction(0.001, 100000); // Uses current timestamp
statusDoc.addTransaction(0.002, 150000, Date.now() - 60000); // 1 minute ago
// Get transactions in the last 5 minutes
const recentTxs = statusDoc.getTransactionsInWindow(5 * 60 * 1000);
// Calculate average gas price in the last hour
const avgGasPrice = statusDoc.getAverageGasPriceInWindow(60 * 60 * 1000);
// Get transaction statistics
const stats = statusDoc.getTransactionStats(24 * 60 * 60 * 1000); // Last 24 hours
console.log(`Total transactions: ${stats.count}`);
console.log(`Average amount: ${stats.averageAmount}`);
// Clean up old transactions (older than 1 day)
const removed = statusDoc.cleanupOldTransactions(24 * 60 * 60 * 1000);
console.log(`Removed ${removed} old transactions`);Extends
BaseNumberTypeClass<StatusDoc<T>>
Type Parameters
T
T extends NumberType
Implements
iStatusDoc<T>
Constructors
Constructor
new StatusDoc<
T>(data):StatusDoc<T>
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:731
Parameters
data
iStatusDoc<T>
Returns
StatusDoc<T>
Overrides
BaseNumberTypeClass.constructor
Properties
_docId
_docId:
string
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:724
A unique stringified document ID
Implementation of
_id?
optional_id?:string
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:725
A unique document ID (Mongo DB ObjectID)
Implementation of
block
block:
LatestBlockStatus<T>
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:726
The latest synced block status (i.e. height, txIndex, timestamp)
Implementation of
gasPrice
gasPrice:
number
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:728
The current gas price based on the average of recent transactions
Implementation of
lastXTxs?
optionallastXTxs?:TransactionEntry<T>[]
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:729
The last X transactions with timestamps for dynamic reset functionality
Implementation of
nextCollectionId
nextCollectionId:
T
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:727
The next collection ID to be used
Implementation of
Methods
addTransaction()
addTransaction(
amount,limit,timestamp?,maxEntries?):void
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:756
Add a new transaction entry to the lastXTxs array
Parameters
amount
T
The transaction amount
limit
T
The gas limit
timestamp?
number
The timestamp (optional, defaults to current time)
maxEntries?
number = 100
Maximum number of entries to keep (optional, defaults to 100)
Returns
void
cleanupOldTransactions()
cleanupOldTransactions(
maxAgeMs,currentTime?):number
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:831
Clean up old transactions beyond a certain age
Parameters
maxAgeMs
number
Maximum age in milliseconds
currentTime?
number
Current timestamp (optional, defaults to Date.now())
Returns
number
Number of transactions removed
clone()
clone():
StatusDoc
Defined in: packages/bitbadgesjs-sdk/src/common/base.ts:151
Deep copies the object and returns a new instance.
Returns
StatusDoc
Inherited from
convert()
convert<
U>(convertFunction,options?):StatusDoc<U>
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:745
Converts the object to a different NumberType equivalent.
Type Parameters
U
U extends NumberType
Parameters
convertFunction
(item) => U
options?
Returns
StatusDoc<U>
Overrides
equals()
equals<
U>(other,normalizeNumberTypes?):boolean
Defined in: packages/bitbadgesjs-sdk/src/common/base.ts:147
Compares this object's fields to another object's fields for equality. Equality is determined by comparing the JSON representations of the objects.
If normalizeNumberTypes is true, then all number types will be compared as strings (i.e. "1n" === "1" === 1). Else, they will be compared as their native types (i.e. 1n !== 1 !== "1").
Type Parameters
U
U extends CustomType<U>
Parameters
other
CustomType<U> | null | undefined
normalizeNumberTypes?
boolean
Returns
boolean
Inherited from
getAverageGasPriceInWindow()
getAverageGasPriceInWindow(
windowMs,currentTime?):number
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:811
Calculate average gas price from transactions in a time window
Parameters
windowMs
number
Time window in milliseconds
currentTime?
number
Current timestamp (optional, defaults to Date.now())
Returns
number
Average gas price or 0 if no transactions
getLatestTransaction()
getLatestTransaction():
TransactionEntry<T> |null
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:849
Get the most recent transaction
Returns
TransactionEntry<T> | null
The most recent transaction entry or null if none exist
getNumberFieldNames()
getNumberFieldNames():
string[]
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:741
Internal helper method to convert the number fields of the object to a different NumberType equivalent.
Returns
string[]
Overrides
BaseNumberTypeClass.getNumberFieldNames
getTransactionsInWindow()
getTransactionsInWindow(
windowMs,currentTime?,defaultMinimumTxs?):TransactionEntry<T>[]
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:782
Get transactions within a time window
Parameters
windowMs
number
Time window in milliseconds
currentTime?
number
Current timestamp (optional, defaults to Date.now())
defaultMinimumTxs?
number
Returns
TransactionEntry<T>[]
Array of transactions within the time window
getTransactionStats()
getTransactionStats(
windowMs,currentTime?):object
Defined in: packages/bitbadgesjs-sdk/src/api-indexer/docs-types/docs.ts:863
Get transaction statistics in a time window
Parameters
windowMs
number
Time window in milliseconds
currentTime?
number
Current timestamp (optional, defaults to Date.now())
Returns
object
Object with transaction statistics
averageAmount
averageAmount:
number
averageLimit
averageLimit:
number
count
count:
number
maxAmount
maxAmount:
number
minAmount
minAmount:
number
totalAmount
totalAmount:
number
totalLimit
totalLimit:
number
hasNumberFields()
hasNumberFields():
boolean
Defined in: packages/bitbadgesjs-sdk/src/common/base.ts:161
Checks if the object has number fields.
Returns
boolean
Inherited from
BaseNumberTypeClass.hasNumberFields
toJson()
toJson():
JsonObject
Defined in: packages/bitbadgesjs-sdk/src/common/base.ts:139
Converts the object to a JSON object with all primitive types.
Returns
JsonObject
Inherited from
toJsonString()
toJsonString():
string
Defined in: packages/bitbadgesjs-sdk/src/common/base.ts:143
Converts the object to a JSON string.
Returns
string