repository

package
v0.0.0-...-1b5cee2 Latest Latest
Warning

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

Go to latest
Published: May 15, 2023 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInsertFailed                            = fmt.Errorf("insert failed")
	ErrRemoveFailed                            = fmt.Errorf("remove failed")
	ErrSelectFailed                            = fmt.Errorf("select failed")
	ErrMoveFailed                              = fmt.Errorf("move failed")
	ErrScanFailed                              = fmt.Errorf("scan failed")
	ErrUnmarshalFailed                         = fmt.Errorf("unmarshal failed")
	ErrCommitFailed                            = fmt.Errorf("transaction commit failed")
	ErrTrxBeginFailed                          = fmt.Errorf("transaction begin failed")
	ErrAddingToLockQueueBlockChainFailed       = fmt.Errorf("adding to lock blockchain failed")
	ErrRemovingFromLockQueueBlockChainFailed   = fmt.Errorf("removing from lock blockchain failed")
	ErrListenFailed                            = fmt.Errorf("listen failed")
	ErrCheckingIsOnTopOfBlockchainsLocksFailed = fmt.Errorf("checking is on top of blockchains locks failed")
	ErrNodeRegisterFailed                      = fmt.Errorf("node register failed")
	ErrNodeUnregisterFailed                    = fmt.Errorf("node unregister failed")
	ErrNodeLookupFailed                        = fmt.Errorf("node lookup failed")
	ErrNodeRegisteredAddressesQueryFailed      = fmt.Errorf("node registered addresses query failed")
)

Functions

This section is empty.

Types

type DBConfig

type DBConfig struct {
	ConnStr      string `yaml:"conn_str"`      // ConnStr is the connection string to the database.
	DatabaseName string `yaml:"database_name"` // DatabaseName is the name of the database.
	IsSSL        bool   `yaml:"is_ssl"`        // IsSSL is the flag that indicates if the connection should be encrypted.
}

Config contains configuration for the database.

type DataBase

type DataBase struct {
	// contains filtered or unexported fields
}

Database provides database access for read, write and delete of repository entities.

func Connect

func Connect(ctx context.Context, cfg DBConfig) (*DataBase, error)

Connect creates new connection to the repository and returns pointer to the DataBase.

func (DataBase) AddToBlockchainLockQueue

func (db DataBase) AddToBlockchainLockQueue(ctx context.Context, nodeID string) error

AddToBlockchainLockQueue adds blockchain lock to queue.

func (DataBase) CheckAddressExists

func (db DataBase) CheckAddressExists(ctx context.Context, addr string) (bool, error)

CheckAddressExists checks if address exists in the database.

func (DataBase) CheckIsOnTopOfBlockchainsLocks

func (db DataBase) CheckIsOnTopOfBlockchainsLocks(ctx context.Context, nodeID string) (bool, error)

CheckIsOnTopOfBlockchainsLocks checks if node is on top of blockchain locks queue.

func (DataBase) CheckToken

func (db DataBase) CheckToken(ctx context.Context, tkn string) (bool, error)

CheckToken checks if token exists in the database is valid and didn't expire.

func (DataBase) CountRegistered

func (db DataBase) CountRegistered(ctx context.Context) (int, error)

CountRegistered counts registered nodes in the database.

func (DataBase) Disconnect

func (db DataBase) Disconnect(ctx context.Context) error

Disconnect disconnects user from database

func (DataBase) FindAddress

func (db DataBase) FindAddress(ctx context.Context, search string, limit int) ([]string, error)

FindAddress finds address in the database.

func (DataBase) FindTransactionInBlockHash

func (db DataBase) FindTransactionInBlockHash(ctx context.Context, trxHash [32]byte) ([32]byte, error)

FindTransactionInBlockHash returns block hash in to which transaction with given hash was added. If transaction is not yet added to any block, empty hash is returned.

func (DataBase) InvalidateToken

func (db DataBase) InvalidateToken(ctx context.Context, token string) error

InvalidateToken invalidates token.

func (DataBase) IsAddressAdmin

func (db DataBase) IsAddressAdmin(ctx context.Context, addr string) (bool, error)

IsAddressAdmin checks if address has access level admin.

func (DataBase) IsAddressStandard

func (db DataBase) IsAddressStandard(ctx context.Context, addr string) (bool, error)

IsAddressStandard checks if address has access level standard.

func (DataBase) IsAddressSuspended

func (db DataBase) IsAddressSuspended(ctx context.Context, addr string) (bool, error)

IsAddressAdmin checks if address has access level suspended.

func (DataBase) IsAddressTrusted

func (db DataBase) IsAddressTrusted(ctx context.Context, addr string) (bool, error)

IsAddressTrusted checks if address has access level trusted.

func (DataBase) LastBlock

func (db DataBase) LastBlock(ctx context.Context) (block.Block, error)

LastBlock returns last block from the database.

func (DataBase) MoveTransactionsFromAwaitingToTemporary

func (db DataBase) MoveTransactionsFromAwaitingToTemporary(ctx context.Context, trxHash [32]byte) error

MoveTransactionsFromAwaitingToTemporary moves awaiting transaction marking it as temporary.

func (DataBase) MoveTransactionsFromTemporaryToPermanent

func (db DataBase) MoveTransactionsFromTemporaryToPermanent(ctx context.Context, blockHash [32]byte, hashes [][32]byte) error

MoveTransactionsFromTemporaryToPermanent moves transactions by marking transactions with matching hash to be permanent and sets block hash field to referenced block hash.

func (DataBase) Ping

func (db DataBase) Ping(ctx context.Context) error

Ping checks if the connection to the database is still alive.

func (DataBase) ReadAwaitingTransactionsByIssuer

func (db DataBase) ReadAwaitingTransactionsByIssuer(ctx context.Context, address string) ([]transaction.Transaction, error)

ReadAwaitingTransactionsByIssuer reads all transactions paired with given issuer address.

func (DataBase) ReadAwaitingTransactionsByReceiver

func (db DataBase) ReadAwaitingTransactionsByReceiver(ctx context.Context, address string) ([]transaction.Transaction, error)

ReadAwaitingTransactionsByReceiver reads all transactions paired with given receiver address.

func (DataBase) ReadBlockByHash

func (db DataBase) ReadBlockByHash(ctx context.Context, hash [32]byte) (block.Block, error)

ReadBlockByHash returns block with given hash.

func (DataBase) ReadLastNValidatorStatuses

func (db DataBase) ReadLastNValidatorStatuses(ctx context.Context, last int64) ([]validator.Status, error)

ReadLastNValidatorStatuses reads last validator statuses from the database.

func (DataBase) ReadRegisteredNodesAddresses

func (db DataBase) ReadRegisteredNodesAddresses(ctx context.Context) ([]string, error)

ReadAddresses reads registered nodes addresses from the database.

func (DataBase) ReadTemporaryTransactions

func (db DataBase) ReadTemporaryTransactions(ctx context.Context) ([]transaction.Transaction, error)

ReadTemporaryTransactions reads all transactions that are marked as temporary.

func (DataBase) RegisterNode

func (db DataBase) RegisterNode(ctx context.Context, n, ws string) error

RegisterNode registers node in the database.

func (DataBase) RemoveFromBlockchainLocks

func (db DataBase) RemoveFromBlockchainLocks(ctx context.Context, nodeID string) error

RemoveFromBlockchainLocks removes blockchain lock from queue.

func (DataBase) RunMigration

func (DataBase) RunMigration(_ context.Context) error

RunMigration satisfies the RepositoryProvider interface as PostgreSQL migrations are run on when database is created in docker-compose-postgresql.yml.

func (DataBase) UnregisterNode

func (db DataBase) UnregisterNode(ctx context.Context, n string) error

UnregisterNode unregister node from the database.

func (DataBase) Write

func (db DataBase) Write(p []byte) (n int, err error)

Write writes log to the database. p is a marshaled logger.Log.

func (DataBase) WriteAddress

func (db DataBase) WriteAddress(ctx context.Context, addr string) error

WriteAddress writes address to the database.

func (DataBase) WriteBlock

func (db DataBase) WriteBlock(ctx context.Context, block block.Block) error

WriteBlock writes block to the database.

func (DataBase) WriteIssuerSignedTransactionForReceiver

func (db DataBase) WriteIssuerSignedTransactionForReceiver(
	ctx context.Context,
	trx *transaction.Transaction,
) error

WriteIssuerSignedTransactionForReceiver writes transaction to the storage marking it as awaiting.

func (DataBase) WriteToken

func (db DataBase) WriteToken(ctx context.Context, tkn string, expirationDate int64) error

WriteToken writes unique token to the database.

func (DataBase) WriteValidatorStatus

func (db DataBase) WriteValidatorStatus(ctx context.Context, vs *validator.Status) error

WriteValidatorStatus writes validator status to the database.

type Listener

type Listener struct {
	// contains filtered or unexported fields
}

Listener wraps listener for notifications from database. Provides methods for listening and closing.

func Listen

func Listen(conn string, report func(ev pq.ListenerEventType, err error)) (Listener, error)

Listen creates Listener for notifications from database.

func Subscribe

func Subscribe(ctx context.Context, cfg DBConfig) (Listener, error)

Subscribe subscribes to the database events.

func (Listener) Close

func (l Listener) Close()

Close closes listener.

func (Listener) SubscribeToLockBlockchainNotification

func (l Listener) SubscribeToLockBlockchainNotification(ctx context.Context, c chan<- bool, node string)

SubscribeToLockBlockchainNotification listens for blockchain lock. To stop subscription, close channel.

Jump to

Keyboard shortcuts

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