Skip to content

// 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

typescript
// 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

Type Parameters

T

T extends NumberType

Implements

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

iStatusDoc._docId


_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

iStatusDoc._id


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

iStatusDoc.block


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

iStatusDoc.gasPrice


lastXTxs?

optional lastXTxs?: 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

iStatusDoc.lastXTxs


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

iStatusDoc.nextCollectionId

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

BaseNumberTypeClass.clone


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?

ConvertOptions

Returns

StatusDoc<U>

Overrides

BaseNumberTypeClass.convert


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

BaseNumberTypeClass.equals


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

BaseNumberTypeClass.toJson


toJsonString()

toJsonString(): string

Defined in: packages/bitbadgesjs-sdk/src/common/base.ts:143

Converts the object to a JSON string.

Returns

string

Inherited from

BaseNumberTypeClass.toJsonString

Edit this page on GitHub