wallet

package
v1.0.7 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2018 License: AGPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//TxPrefix is wallet database transactions prefix
	TxPrefix = "TXS:"
	//TxIndexPrefix is wallet database tx index prefix
	TxIndexPrefix = "TID:"
)
View Source
const (
	//UnconfirmedTxPrefix is txpool unconfirmed transactions prefix
	UnconfirmedTxPrefix      = "UTXS:"
	UnconfirmedTxCheckPeriod = 30 * time.Minute
	MaxUnconfirmedTxDuration = 24 * time.Hour
)
View Source
const (
	//SINGLE single sign
	SINGLE = 1
)

Variables

View Source
var (

	// ErrRecoveryBusy another recovery in progress, can not get recovery manager lock
	ErrRecoveryBusy = errors.New("another recovery in progress")

	// ErrInvalidAcctID can not find account by account id
	ErrInvalidAcctID = errors.New("invalid account id")
)

recoveryKey key for db store recovery info.

Functions

This section is empty.

Types

type AccountBalance added in v0.4.3

type AccountBalance struct {
	AccountID       string                 `json:"account_id"`
	Alias           string                 `json:"account_alias"`
	AssetAlias      string                 `json:"asset_alias"`
	AssetID         string                 `json:"asset_id"`
	Amount          uint64                 `json:"amount"`
	AssetDefinition map[string]interface{} `json:"asset_definition"`
}

AccountBalance account balance

type SortByTimestamp added in v1.0.3

type SortByTimestamp []*query.AnnotatedTx

SortByTimestamp implements sort.Interface for AnnotatedTx slices

func (SortByTimestamp) Len added in v1.0.3

func (a SortByTimestamp) Len() int

func (SortByTimestamp) Less added in v1.0.3

func (a SortByTimestamp) Less(i, j int) bool

func (SortByTimestamp) Swap added in v1.0.3

func (a SortByTimestamp) Swap(i, j int)

type StatusInfo

type StatusInfo struct {
	WorkHeight uint64
	WorkHash   bc.Hash
	BestHeight uint64
	BestHash   bc.Hash
}

StatusInfo is base valid block info to handle orphan block rollback

type Summary

type Summary struct {
	Type         string             `json:"type"`
	AssetID      bc.AssetID         `json:"asset_id,omitempty"`
	AssetAlias   string             `json:"asset_alias,omitempty"`
	Amount       uint64             `json:"amount,omitempty"`
	AccountID    string             `json:"account_id,omitempty"`
	AccountAlias string             `json:"account_alias,omitempty"`
	Arbitrary    chainjson.HexBytes `json:"arbitrary,omitempty"`
}

Summary is the struct of transaction's input and output summary

type TxSummary

type TxSummary struct {
	ID        bc.Hash   `json:"tx_id"`
	Timestamp uint64    `json:"block_time"`
	Inputs    []Summary `json:"inputs"`
	Outputs   []Summary `json:"outputs"`
}

TxSummary is the struct of transaction summary

type Wallet

type Wallet struct {
	DB db.DB

	AccountMgr *account.Manager
	AssetReg   *asset.Registry
	Hsm        *pseudohsm.HSM

	RecoveryMgr *recoveryManager
	// contains filtered or unexported fields
}

Wallet is related to storing account unspent outputs

func NewWallet

func NewWallet(walletDB db.DB, account *account.Manager, asset *asset.Registry, hsm *pseudohsm.HSM, chain *protocol.Chain) (*Wallet, error)

NewWallet return a new wallet instance

func (*Wallet) AddUnconfirmedTx added in v1.0.4

func (w *Wallet) AddUnconfirmedTx(txD *protocol.TxDesc)

AddUnconfirmedTx handle wallet status update when tx add into txpool

func (*Wallet) AttachBlock added in v0.4.6

func (w *Wallet) AttachBlock(block *types.Block) error

AttachBlock attach a new block

func (*Wallet) BuildAnnotatedInput added in v0.4.6

func (w *Wallet) BuildAnnotatedInput(tx *types.Tx, i uint32) *query.AnnotatedInput

BuildAnnotatedInput build the annotated input.

func (*Wallet) BuildAnnotatedOutput added in v0.4.6

func (w *Wallet) BuildAnnotatedOutput(tx *types.Tx, idx int) *query.AnnotatedOutput

BuildAnnotatedOutput build the annotated output.

func (*Wallet) DeleteAccount added in v1.0.7

func (w *Wallet) DeleteAccount(accountID string) (err error)

DeleteAccount deletes account matching accountID, then rescan wallet

func (*Wallet) DetachBlock added in v0.4.6

func (w *Wallet) DetachBlock(block *types.Block) error

DetachBlock detach a block and rollback state

func (*Wallet) GetAccountBalances

func (w *Wallet) GetAccountBalances(accountID string, id string) ([]AccountBalance, error)

GetAccountBalances return all account balances

func (*Wallet) GetAccountUtxos added in v1.0.4

func (w *Wallet) GetAccountUtxos(accountID string, id string, unconfirmed, isSmartContract bool) []*account.UTXO

GetAccountUtxos return all account unspent outputs

func (*Wallet) GetTransactionByTxID

func (w *Wallet) GetTransactionByTxID(txID string) (*query.AnnotatedTx, error)

GetTransactionByTxID get transaction by txID

func (*Wallet) GetTransactions added in v1.0.3

func (w *Wallet) GetTransactions(accountID string) ([]*query.AnnotatedTx, error)

GetTransactions get all walletDB transactions, and filter transactions by accountID optional

func (*Wallet) GetTransactionsSummary

func (w *Wallet) GetTransactionsSummary(transactions []*query.AnnotatedTx) []TxSummary

GetTransactionsSummary get transactions summary

func (*Wallet) GetUnconfirmedTxByTxID added in v1.0.3

func (w *Wallet) GetUnconfirmedTxByTxID(txID string) (*query.AnnotatedTx, error)

GetUnconfirmedTxByTxID get unconfirmed transaction by txID

func (*Wallet) GetUnconfirmedTxs added in v1.0.3

func (w *Wallet) GetUnconfirmedTxs(accountID string) ([]*query.AnnotatedTx, error)

GetUnconfirmedTxs get account unconfirmed transactions, filter transactions by accountID when accountID is not empty

func (*Wallet) GetWalletStatusInfo added in v1.0.4

func (w *Wallet) GetWalletStatusInfo() StatusInfo

GetWalletStatusInfo return current wallet StatusInfo

func (*Wallet) RemoveUnconfirmedTx added in v1.0.4

func (w *Wallet) RemoveUnconfirmedTx(txD *protocol.TxDesc)

RemoveUnconfirmedTx handle wallet status update when tx removed from txpool

func (*Wallet) RescanBlocks added in v0.5.0

func (w *Wallet) RescanBlocks()

RescanBlocks provide a trigger to rescan blocks

func (*Wallet) UpdateAccountAlias added in v1.0.7

func (w *Wallet) UpdateAccountAlias(accountID string, newAlias string) (err error)

Directories

Path Synopsis
Package bip39 is the official Golang implementation of the BIP39 spec.
Package bip39 is the official Golang implementation of the BIP39 spec.

Jump to

Keyboard shortcuts

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