wallet

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: May 10, 2023 License: AGPL-3.0, ISC Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrWalletAlreadySynchronizing = errors.New("wallet is already synchronizing")
	ErrFailedToBroadcastTx        = errors.New("failed to broadcast transaction")
	ErrTxRetryCanceled            = errors.New("user canceled tx retry")
)

Functions

This section is empty.

Types

type BlockProcessor

type BlockProcessor interface {

	// ProcessBlock signals given block to be processesed
	// any error returned here signals block processor to terminate,
	ProcessBlock(b *block.Block) error
}

type Builder

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

func New

func New() *Builder

func (*Builder) Build

func (b *Builder) Build() *Wallet

func (*Builder) SetABClient

func (b *Builder) SetABClient(abc client.ABClient) *Builder

func (*Builder) SetABClientConf

func (b *Builder) SetABClientConf(abcConf client.AlphabillClientConfig) *Builder

func (*Builder) SetBlockProcessor

func (b *Builder) SetBlockProcessor(bp BlockProcessor) *Builder

type Predicate added in v0.1.4

type Predicate []byte

type Proof added in v0.1.4

type Proof struct {
	BlockNumber uint64                `json:"blockNumber,string"`
	Tx          *txsystem.Transaction `json:"tx"`
	Proof       *block.BlockProof     `json:"proof"`
}

type PubKey added in v0.1.4

type PubKey []byte

type SendOpts added in v0.1.1

type SendOpts struct {
	// RetryOnFullTxBuffer retries to send transaction when tx buffer is full
	RetryOnFullTxBuffer bool
}

type TxHash added in v0.1.4

type TxHash []byte

type UnitID added in v0.1.4

type UnitID []byte

type Wallet

type Wallet struct {
	BlockProcessor  BlockProcessor
	AlphabillClient client.ABClient
	// contains filtered or unexported fields
}

Wallet To synchronize wallet with a node call Sync. Shutdown needs to be called to release resources used by wallet.

func (*Wallet) GetMaxBlockNumber

func (w *Wallet) GetMaxBlockNumber(ctx context.Context) (uint64, error)

GetMaxBlockNumber queries the node for latest block number

func (*Wallet) SendTransaction

func (w *Wallet) SendTransaction(ctx context.Context, tx *txsystem.Transaction, opts *SendOpts) error

SendTransaction broadcasts transaction to configured node. Returns nil if transaction was successfully accepted by node, otherwise returns error.

func (*Wallet) Shutdown

func (w *Wallet) Shutdown()

Shutdown terminates connection to alphabill node and cancels any background goroutines.

func (*Wallet) Sync

func (w *Wallet) Sync(ctx context.Context, lastBlockNumber uint64) error

Sync synchronises wallet from the last known block number with the given alphabill node. The function blocks forever or until alphabill connection is terminated. Returns error if wallet is already synchronizing or any error occured during syncrohronization, otherwise returns nil.

func (*Wallet) SyncToMaxBlockNumber

func (w *Wallet) SyncToMaxBlockNumber(ctx context.Context, lastBlockNumber uint64) error

SyncToMaxBlockNumber synchronises wallet from the last known block number with the given alphabill node. The function blocks until maximum block height, calculated at the start of the process, is reached. Returns error if wallet is already synchronizing or any error occured during syncrohronization, otherwise returns nil.

Directories

Path Synopsis
backend
Package log implements a logger interface that is used for logging inside Alphabill Wallet SDK.
Package log implements a logger interface that is used for logging inside Alphabill Wallet SDK.
backend
package twb implements token wallet backend
package twb implements token wallet backend

Jump to

Keyboard shortcuts

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