Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Database ¶
type Database interface {
// BeginDatabaseTransaction will start a database transaction, then you can perform CRUD on it, finally can do commit or rollback on purpose
BeginDatabaseTransaction(ctx context.Context) (DbTransaction, error)
// CommitTransaction performs committing the db transaction into store
CommitTransaction(ptx DbTransaction) error
// RollbackTransaction performs rolling back changes made by the db transaction
RollbackTransaction(ptx DbTransaction) error
// Close closes the underlying database connection
Close()
// PreparePartitionedTablesForChainId create partitioned tables for the corresponding chain-id.
PreparePartitionedTablesForChainId(chainId string) error
// PreparePartitionedTablesForEpochAndChainId create partitioned tables for the corresponding epoch UTC and chain-id.
PreparePartitionedTablesForEpochAndChainId(epochUtcSeconds int64, chainId string) error
// InsertOrUpdateRecordChainInfo inserts a new chain info record into the database.
// If the chain info already exists, it will be updated.
InsertOrUpdateRecordChainInfo(chainInfo dbtypes.RecordChainInfo) (insertedOrUpdated bool, err error)
// UpdateBeJsonRpcUrlsIfExists updates the be_json_rpc_urls field of the chain info record with the given chain ID.
// If the chain info does not exist, nothing will be updated.
UpdateBeJsonRpcUrlsIfExists(chainId string, urls []string) (updated bool, err error)
// GetBech32Config returns the bech32 config of the chain info record with the given chain ID.
GetBech32Config(chainId string) (bech32Cfg dbtypes.Bech32PrefixOfChainInfo, err error)
// IsChainPostponed returns true if the chain is postponed. If the chain is not exists, it returns false.
IsChainPostponed(chainId string) (postponed bool, err error)
// GetLatestIndexedBlock returns the latest indexed block height of the chain info record with the given chain ID.
GetLatestIndexedBlock(chainId string) (height int64, postponed bool, err error)
// SetLatestIndexedBlock updates the latest indexed block height of the chain info record with the given chain ID.
SetLatestIndexedBlock(chainId string, height int64) error
// InsertOrUpdateFailedBlocks inserts a batch of failed block records into the database.
// If the record is already present, the logic fields will be updated.
InsertOrUpdateFailedBlocks(chainId string, blocksHeight []int64, optionalReason error) error
// GetOneFailedBlock returns the height of a failed block record of the chain with the given chain ID.
GetOneFailedBlock(chainId string) (height int64, err error)
// GetFailedBlocksInRange returns the heights of failed block records in the given range, inclusive.
GetFailedBlocksInRange(chainId string, from, to int64) (blocksHeight []int64, err error)
// RemoveFailedBlockRecord removes a failed block record from the database.
// Typically, this is used when the failed block is successfully processed.
RemoveFailedBlockRecord(chainId string, height int64) error
}
Database represents an abstract database that can be used to CRUD
type DbTransaction ¶
type DbTransaction interface {
// CommitTransaction commits the current transaction instance, returns error if any problem happened using commit progress
CommitTransaction() error
// RollbackTransaction rollbacks the current transaction instance, returns error if any problem happened using rollback progress
RollbackTransaction() error
// SetLatestIndexedBlock updates the latest indexed block height of the chain info record with the given chain ID.
SetLatestIndexedBlock(chainId string, height int64) error
// InsertOrUpdateRecordsAccount inserts or updates the given accounts into the database.
// If the account is exists, it will update the account's balance on erc20 and nft contracts,
// the list of contracts address will be appended to the existing list distinctly.
InsertOrUpdateRecordsAccount(accounts dbtypes.RecordsAccount) error
// InsertRecordTransactionsIfNotExists inserts the given transactions into the database.
// If the transaction is exists, it will do nothing.
InsertRecordTransactionsIfNotExists(txs dbtypes.RecordsTransaction) error
// InsertRecordsRecentAccountTransactionIfNotExists inserts the given recent account transactions into the database.
// If the transaction is exists, it will do nothing.
InsertRecordsRecentAccountTransactionIfNotExists(txs dbtypes.RecordsRecentAccountTransaction) error
// InsertRecordsRefAccountToRecentTxIfNotExists inserts the given references of account to recent transaction into the database.
// If the reference is exists, it will do nothing.
// The record connects the recent account transaction with the account that has the transaction.
InsertRecordsRefAccountToRecentTxIfNotExists(refs dbtypes.RecordsRefAccountToRecentTx) error
// CleanupZeroRefCountRecentAccountTransaction call procedures to clean-up `recent_account_transaction` records
// which have zero referent (`ref_account_to_recent_tx`).
CleanupZeroRefCountRecentAccountTransaction() error
// RemoveFailedBlockRecord removes a failed block record from the database.
// Typically, this is used when the failed block is successfully processed.
RemoveFailedBlockRecord(chainId string, height int64) error
}
DbTransaction represents an abstract database transaction that can be used to CRUD, then commit or rollback on purpose
Click to show internal directories.
Click to hide internal directories.