account

package
v0.0.0-...-f024f33 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2016 License: AGPL-3.0 Imports: 23 Imported by: 0

Documentation

Overview

Package account stores and tracks accounts within a Chain Core.

Index

Constants

View Source
const (

	// PinName is used to identify the pin associated with
	// the account block processor.
	PinName = "account"
)

Variables

View Source
var ErrDuplicateAlias = errors.New("duplicate account alias")

Functions

This section is empty.

Types

type Account

type Account struct {
	*signers.Signer
	Alias string
	Tags  map[string]interface{}
}

type Manager

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

Manager stores accounts and their associated control programs.

func NewManager

func NewManager(db *sql.DB, chain *protocol.Chain) *Manager

func (*Manager) AnnotateTxs

func (m *Manager) AnnotateTxs(ctx context.Context, txs []map[string]interface{}) error

AnnotateTxs adds account data to transactions

func (*Manager) Create

func (m *Manager) Create(ctx context.Context, xpubs []string, quorum int, alias string, tags map[string]interface{}, clientToken *string) (*Account, error)

Create creates a new Account.

func (*Manager) CreateControlProgram

func (m *Manager) CreateControlProgram(ctx context.Context, accountID string, change bool) ([]byte, error)

CreateControlProgram creates a control program that is tied to the Account and stores it in the database.

func (*Manager) DecodeControlAction

func (m *Manager) DecodeControlAction(data []byte) (txbuilder.Action, error)

func (*Manager) DecodeSpendAction

func (m *Manager) DecodeSpendAction(data []byte) (txbuilder.Action, error)

func (*Manager) DecodeSpendUTXOAction

func (m *Manager) DecodeSpendUTXOAction(data []byte) (txbuilder.Action, error)

func (*Manager) ExpireReservations

func (m *Manager) ExpireReservations(ctx context.Context, period time.Duration)

ExpireReservations removes reservations that have expired periodically. It blocks until the context is canceled.

func (*Manager) FindByAlias

func (m *Manager) FindByAlias(ctx context.Context, alias string) (*signers.Signer, error)

FindByAlias retrieves an account's Signer record by its alias

func (*Manager) IndexAccounts

func (m *Manager) IndexAccounts(indexer Saver, pinStore *pin.Store)

func (*Manager) IndexUnconfirmedUTXOs

func (m *Manager) IndexUnconfirmedUTXOs(ctx context.Context, tx *bc.Tx) error

IndexUnconfirmedUTXOs looks up a transaction's control programs for matching account control programs. If any control programs match, the unconfirmed UTXOs are inserted into account_utxos with an expiry_height. If not confirmed by the expiry_height, the UTXOs will be deleted (and assumed rejected).

func (*Manager) NewControlAction

func (m *Manager) NewControlAction(amt bc.AssetAmount, accountID string, refData chainjson.Map) txbuilder.Action

func (*Manager) NewSpendAction

func (m *Manager) NewSpendAction(amt bc.AssetAmount, accountID string, txHash *bc.Hash, txOut *uint32, refData chainjson.Map, clientToken *string) txbuilder.Action

func (*Manager) NewSpendUTXOAction

func (m *Manager) NewSpendUTXOAction(outpoint bc.Outpoint) txbuilder.Action

func (*Manager) ProcessBlocks

func (m *Manager) ProcessBlocks(ctx context.Context)

type Saver

type Saver interface {
	SaveAnnotatedAccount(context.Context, string, map[string]interface{}) error
}

A Saver is responsible for saving an annotated account object. for indexing and retrieval. If the Core is configured not to provide search services, SaveAnnotatedAccount can be a no-op.

Directories

Path Synopsis
Package utxodb implements UTXO selection and reservation.
Package utxodb implements UTXO selection and reservation.

Jump to

Keyboard shortcuts

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