database

package
v1.0.0-beta.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Models

func Models() []any

Models returns a list of all models, e.g. for migrations.

Types

type Data

type Data struct {
	TxID string `gorm:"primaryKey"`
	Vout uint32 `gorm:"primaryKey"`
	Blob []byte
}

Data holds the data stored in outputs.

func (*Data) Outpoint

func (o *Data) Outpoint() *bsv.Outpoint

Outpoint returns bsv.Outpoint object which identifies the data-output.

type Output

type Output struct {
	TxID       string `gorm:"primaryKey"`
	Vout       uint32 `gorm:"primaryKey"`
	SpendingTX string `gorm:"type:char(64)"`
}

Output represents an output of a transaction.

func (*Output) IsSpent

func (o *Output) IsSpent() bool

IsSpent returns true if the output is spent.

func (*Output) Outpoint

func (o *Output) Outpoint() *bsv.Outpoint

Outpoint returns bsv.Outpoint object which identifies the output.

type TrackedTransaction

type TrackedTransaction struct {
	ID       string `gorm:"type:char(64);primaryKey"`
	TxStatus TxStatus

	Outputs []*Output `gorm:"foreignKey:TxID"`
	Data    []*Data   `gorm:"foreignKey:TxID"`
	Inputs  []*Output `gorm:"foreignKey:SpendingTX"`
}

TrackedTransaction represents a transaction in the database.

func (*TrackedTransaction) AddData

func (t *TrackedTransaction) AddData(data ...*Data)

AddData adds data to the transaction.

func (*TrackedTransaction) AddInputs

func (t *TrackedTransaction) AddInputs(inputs ...*Output)

AddInputs adds inputs to the transaction.

func (*TrackedTransaction) AddOutputs

func (t *TrackedTransaction) AddOutputs(outputs ...*Output)

AddOutputs adds outputs to the transaction.

type TxStatus

type TxStatus string

TxStatus represents possible statuses of stored transaction model

const (
	TxStatusCreated     TxStatus = "CREATED"
	TxStatusBroadcasted TxStatus = "BROADCASTED"
	TxStatusMined       TxStatus = "MINED"
	TxStatusReverted    TxStatus = "REVERTED"
	TxStatusProblematic TxStatus = "PROBLEMATIC"
)

List of transaction statuses

type UserUtxos

type UserUtxos struct {
	XPubID                       string `gorm:"primaryKey;column:xpub_id;uniqueIndex:idx_window,sort:asc,priority:1"`
	TxID                         string `gorm:"primaryKey;uniqueIndex:idx_window,sort:asc,priority:4"`
	Vout                         uint32 `gorm:"primaryKey;uniqueIndex:idx_window,sort:asc,priority:5"`
	Satoshis                     uint64
	UnlockingScriptEstimatedSize uint64
	Bucket                       string    `gorm:"check:chk_not_data_bucket,bucket <> 'data'"`
	CreatedAt                    time.Time `gorm:"uniqueIndex:idx_window,sort:asc,priority:3"`
	TouchedAt                    time.Time `gorm:"uniqueIndex:idx_window,sort:asc,priority:2"`
}

UserUtxos is a table holding user's Unspent Transaction Outputs (UTXOs).

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL