DB
SPV Wallet Engine transaction engine database overview:
Note: The lack of relations in database does not mean there is no logical relationships between models.
Tables
Note: Prefix 'xapi' will be omitted in further descriptions.
xpubs
Represents an HD-Key or extended public key (xPub for short). Model has no external references.
access_keys
AccessKey is a private key with a corresponding public key. Model is linked to xpubs by xpub_id field.
paymail_addresses
Represents paymail data like public name, avatar etc.. Model is linked to xpubs by xpub_id field.
block_headers
Represents the BSV block header. Model may refer to another block_header record through hash_previous_block field.
transactions
Represents the BSV transaction. In the table we store all transactions in the system: outgoing and incomig ones. In other words, transaction record is created based on record from draft_transactions (for outgoing) and based on incoming_transactions (for incoming). Outgoing transaction will refer to draft_transactions by draft_id field, incoming will refer to incoming_transactions by by id field (1:1).
Note: Transactions inside the same SPV Walllet Engine system (between two paymails in same system) are recorded as outgoing only!
draft_transactions
Represents the draft outgoing BSV transaction prior to the final transaction. Model is linked to xpubs by xpub_id field and transactions by final_tx_id.
sync_transactions
Represents the chain-state sync configuration and results for a given transaction. Sync record is added for EVERY transaction in system (outgoing and incoming). Model is linked to transactions by id field (1:1).
Note: sync_transactions does not represents transaction per se, but its synchronization state.
Possible values for status fields (p2p_status, sync_status, broadcast_status ):
pending - is when the sync is pending (blocked by other constraints)
ready - is when the sync is ready (waiting for workers)
processing - is when the sync is processing (worker is running task)
canceled - is when the sync is canceled
skipped - is when the sync is skipped
error - is when the sync has an error
complete - is when the sync is complete
incoming_transactions
Represents the incoming (external) transaction (for pre-processing). Model is related to transactions by id field (1:1).
NOTE: Internal incoming transactions (from SPV Wallet to SPV Wallet) are not recorded in incoming_transactions
utxos
Represents a BSV unspent transaction. Model is related to transactions by transaction_id field.
Last updated