ledger

package
v1.2.3 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2019 License: MIT Imports: 24 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrStoreEmpty             = errors.New("the store is empty")
	ErrBlockExists            = errors.New("block already exists")
	ErrBlockNotFound          = errors.New("block not found")
	ErrUncheckedBlockExists   = errors.New("unchecked block already exists")
	ErrUncheckedBlockNotFound = errors.New("unchecked block not found")
	ErrAccountExists          = errors.New("account already exists")
	ErrAccountNotFound        = errors.New("account not found")
	ErrTokenExists            = errors.New("token already exists")
	ErrTokenNotFound          = errors.New("token not found")
	//ErrTokenInfoExists        = errors.New("token info already exists")
	//ErrTokenInfoNotFound      = errors.New("token info not found")
	ErrPendingExists          = errors.New("pending transaction already exists")
	ErrPendingNotFound        = errors.New("pending transaction not found")
	ErrFrontierExists         = errors.New("frontier already exists")
	ErrFrontierNotFound       = errors.New("frontier not found")
	ErrRepresentationNotFound = errors.New("representation not found")
	ErrPerformanceNotFound    = errors.New("performance not found")
	//ErrChildExists            = errors.New("child already exists")
	//ErrChildNotFound          = errors.New("child not found")
	ErrVersionNotFound = errors.New("version not found")
	ErrLinkNotFound    = errors.New("link not found")
)
View Source
var (
	ErrPovKeyNotFound      = errors.New("pov key not found")
	ErrPovHeaderNotFound   = errors.New("pov header not found")
	ErrPovBodyNotFound     = errors.New("pov body not found")
	ErrPovHeightNotFound   = errors.New("pov height not found")
	ErrPovHashNotFound     = errors.New("pov hash not found")
	ErrPovTxLookupNotFound = errors.New("pov tx lookup not found")
	ErrPovTDNotFound       = errors.New("pov total difficulty not found")

	ErrPovMinerStatNotFound = errors.New("pov miner state not found")
)

Functions

func CloseLedger

func CloseLedger()

CloseLedger force release all ledger instance

Types

type Ledger

type Ledger struct {
	io.Closer
	Store db.Store

	EB event.EventBus
	// contains filtered or unexported fields
}

func NewLedger

func NewLedger(dir string) *Ledger

func (*Ledger) Account

func (l *Ledger) Account(hash types.Hash, txns ...db.StoreTxn) (*types.AccountMeta, error)

func (*Ledger) AddAccountMeta

func (l *Ledger) AddAccountMeta(meta *types.AccountMeta, txns ...db.StoreTxn) error

func (*Ledger) AddAccountMetaCache added in v1.2.3

func (l *Ledger) AddAccountMetaCache(meta *types.AccountMeta, txns ...db.StoreTxn) error

func (*Ledger) AddBlockCache added in v1.2.3

func (l *Ledger) AddBlockCache(blk *types.StateBlock, txns ...db.StoreTxn) error

func (*Ledger) AddFrontier

func (l *Ledger) AddFrontier(frontier *types.Frontier, txns ...db.StoreTxn) error

func (*Ledger) AddMessageInfo added in v0.0.9

func (l *Ledger) AddMessageInfo(mHash types.Hash, message []byte, txns ...db.StoreTxn) error

func (*Ledger) AddOrUpdateAccountMeta

func (l *Ledger) AddOrUpdateAccountMeta(meta *types.AccountMeta, txns ...db.StoreTxn) error

func (*Ledger) AddOrUpdateAccountMetaCache added in v1.2.3

func (l *Ledger) AddOrUpdateAccountMetaCache(meta *types.AccountMeta, txns ...db.StoreTxn) error

func (*Ledger) AddOrUpdatePerformance added in v0.0.5

func (l *Ledger) AddOrUpdatePerformance(p *types.PerformanceTime, txns ...db.StoreTxn) error

func (*Ledger) AddOrUpdateTokenMeta

func (l *Ledger) AddOrUpdateTokenMeta(address types.Address, meta *types.TokenMeta, txns ...db.StoreTxn) error

func (*Ledger) AddPending

func (l *Ledger) AddPending(pendingKey *types.PendingKey, pending *types.PendingInfo, txns ...db.StoreTxn) error

func (*Ledger) AddPovBestHash added in v1.2.3

func (l *Ledger) AddPovBestHash(height uint64, hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) AddPovBlock added in v1.2.3

func (l *Ledger) AddPovBlock(blk *types.PovBlock, td *big.Int, txns ...db.StoreTxn) error

func (*Ledger) AddPovBody added in v1.2.3

func (l *Ledger) AddPovBody(height uint64, hash types.Hash, body *types.PovBody, txns ...db.StoreTxn) error

func (*Ledger) AddPovHeader added in v1.2.3

func (l *Ledger) AddPovHeader(header *types.PovHeader, txns ...db.StoreTxn) error

func (*Ledger) AddPovHeight added in v1.2.3

func (l *Ledger) AddPovHeight(hash types.Hash, height uint64, txns ...db.StoreTxn) error

func (*Ledger) AddPovMinerStat added in v1.2.3

func (l *Ledger) AddPovMinerStat(dayStat *types.PovMinerDayStat, txns ...db.StoreTxn) error

func (*Ledger) AddPovTD added in v1.2.3

func (l *Ledger) AddPovTD(hash types.Hash, height uint64, td *big.Int, txns ...db.StoreTxn) error

func (*Ledger) AddPovTxLookup added in v1.2.3

func (l *Ledger) AddPovTxLookup(txHash types.Hash, txLookup *types.PovTxLookup, txns ...db.StoreTxn) error

func (*Ledger) AddRepresentation

func (l *Ledger) AddRepresentation(address types.Address, diff *types.Benefit, txns ...db.StoreTxn) error

func (*Ledger) AddSmartContractBlock added in v0.0.9

func (l *Ledger) AddSmartContractBlock(blk *types.SmartContractBlock, txns ...db.StoreTxn) error

func (*Ledger) AddStateBlock added in v0.0.9

func (l *Ledger) AddStateBlock(blk *types.StateBlock, txns ...db.StoreTxn) error

func (*Ledger) AddTokenMeta

func (l *Ledger) AddTokenMeta(address types.Address, meta *types.TokenMeta, txns ...db.StoreTxn) error

func (*Ledger) AddUncheckedBlock

func (l *Ledger) AddUncheckedBlock(parentHash types.Hash, blk *types.StateBlock, kind types.UncheckedKind, sync types.SynchronizedKind, txns ...db.StoreTxn) error

func (*Ledger) Balance

func (l *Ledger) Balance(account types.Address, txns ...db.StoreTxn) (map[types.Hash]types.Balance, error)

func (*Ledger) BatchGetPovHeadersByHeightAsc added in v1.2.3

func (l *Ledger) BatchGetPovHeadersByHeightAsc(height uint64, count uint64, txns ...db.StoreTxn) ([]*types.PovHeader, error)

func (*Ledger) BatchGetPovHeadersByHeightDesc added in v1.2.3

func (l *Ledger) BatchGetPovHeadersByHeightDesc(height uint64, count uint64, txns ...db.StoreTxn) ([]*types.PovHeader, error)

func (*Ledger) BatchUpdate

func (l *Ledger) BatchUpdate(fn func(txn db.StoreTxn) error) error

BatchUpdate MUST pass the same txn

func (*Ledger) BatchView added in v1.2.3

func (l *Ledger) BatchView(fn func(txn db.StoreTxn) error) error

BatchView MUST pass the same txn

func (*Ledger) CalculateAmount added in v0.0.9

func (l *Ledger) CalculateAmount(block *types.StateBlock, txns ...db.StoreTxn) (types.Balance, error)

func (*Ledger) Close

func (l *Ledger) Close() error

func (*Ledger) CountAccountMetas added in v0.0.5

func (l *Ledger) CountAccountMetas(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountBlockCache added in v1.2.3

func (l *Ledger) CountBlockCache(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountFrontiers

func (l *Ledger) CountFrontiers(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountPovBestHashs added in v1.2.3

func (l *Ledger) CountPovBestHashs(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountPovBlocks added in v1.2.3

func (l *Ledger) CountPovBlocks(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountPovTxs added in v1.2.3

func (l *Ledger) CountPovTxs(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountSmartContractBlocks added in v0.0.9

func (l *Ledger) CountSmartContractBlocks(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountStateBlocks added in v0.0.2

func (l *Ledger) CountStateBlocks(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) CountUncheckedBlocks

func (l *Ledger) CountUncheckedBlocks(txns ...db.StoreTxn) (uint64, error)

func (*Ledger) DBStore added in v1.2.3

func (l *Ledger) DBStore() db.Store

func (*Ledger) DeleteAccountMeta

func (l *Ledger) DeleteAccountMeta(address types.Address, txns ...db.StoreTxn) error

func (*Ledger) DeleteAccountMetaCache added in v1.2.3

func (l *Ledger) DeleteAccountMetaCache(address types.Address, txns ...db.StoreTxn) error

func (*Ledger) DeleteBlockCache added in v1.2.3

func (l *Ledger) DeleteBlockCache(hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeleteFrontier

func (l *Ledger) DeleteFrontier(hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeletePending

func (l *Ledger) DeletePending(pendingKey *types.PendingKey, txns ...db.StoreTxn) error

func (*Ledger) DeletePovBestHash added in v1.2.3

func (l *Ledger) DeletePovBestHash(height uint64, txns ...db.StoreTxn) error

func (*Ledger) DeletePovBlock added in v1.2.3

func (l *Ledger) DeletePovBlock(blk *types.PovBlock, txns ...db.StoreTxn) error

func (*Ledger) DeletePovBody added in v1.2.3

func (l *Ledger) DeletePovBody(height uint64, hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeletePovHeader added in v1.2.3

func (l *Ledger) DeletePovHeader(height uint64, hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeletePovHeight added in v1.2.3

func (l *Ledger) DeletePovHeight(hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeletePovMinerStat added in v1.2.3

func (l *Ledger) DeletePovMinerStat(dayIndex uint32, txns ...db.StoreTxn) error

func (*Ledger) DeletePovTD added in v1.2.3

func (l *Ledger) DeletePovTD(hash types.Hash, height uint64, txns ...db.StoreTxn) error

func (*Ledger) DeletePovTxLookup added in v1.2.3

func (l *Ledger) DeletePovTxLookup(txHash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeleteStateBlock added in v0.0.2

func (l *Ledger) DeleteStateBlock(hash types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeleteTokenMeta

func (l *Ledger) DeleteTokenMeta(address types.Address, tokenType types.Hash, txns ...db.StoreTxn) error

func (*Ledger) DeleteUncheckedBlock

func (l *Ledger) DeleteUncheckedBlock(parentHash types.Hash, kind types.UncheckedKind, txns ...db.StoreTxn) error

func (*Ledger) DropAllPovBlocks added in v1.2.3

func (l *Ledger) DropAllPovBlocks() error

func (*Ledger) Empty

func (l *Ledger) Empty(txns ...db.StoreTxn) (bool, error)

Empty reports whether the database is empty or not.

func (*Ledger) GenerateChangeBlock added in v0.0.5

func (l *Ledger) GenerateChangeBlock(account types.Address, representative types.Address, prk ed25519.PrivateKey) (*types.StateBlock, error)

func (*Ledger) GenerateReceiveBlock added in v0.0.5

func (l *Ledger) GenerateReceiveBlock(sendBlock *types.StateBlock, prk ed25519.PrivateKey) (*types.StateBlock, error)

func (*Ledger) GenerateSendBlock added in v0.0.5

func (l *Ledger) GenerateSendBlock(block *types.StateBlock, amount types.Balance, prk ed25519.PrivateKey) (*types.StateBlock, error)

func (*Ledger) GetAccountMeta

func (l *Ledger) GetAccountMeta(address types.Address, txns ...db.StoreTxn) (*types.AccountMeta, error)

func (*Ledger) GetAccountMetaCache added in v1.2.3

func (l *Ledger) GetAccountMetaCache(address types.Address, txns ...db.StoreTxn) (*types.AccountMeta, error)

func (*Ledger) GetAccountMetaConfirmed added in v1.2.3

func (l *Ledger) GetAccountMetaConfirmed(address types.Address, txns ...db.StoreTxn) (*types.AccountMeta, error)

func (*Ledger) GetAccountMetas added in v0.0.5

func (l *Ledger) GetAccountMetas(fn func(am *types.AccountMeta) error, txns ...db.StoreTxn) error

func (*Ledger) GetAllPovBestBlocks added in v1.2.3

func (l *Ledger) GetAllPovBestBlocks(fn func(*types.PovBlock) error, txns ...db.StoreTxn) error

func (*Ledger) GetAllPovBestHashes added in v1.2.3

func (l *Ledger) GetAllPovBestHashes(fn func(height uint64, hash types.Hash) error, txns ...db.StoreTxn) error

func (*Ledger) GetAllPovBestHeaders added in v1.2.3

func (l *Ledger) GetAllPovBestHeaders(fn func(header *types.PovHeader) error, txns ...db.StoreTxn) error

func (*Ledger) GetAllPovBlocks added in v1.2.3

func (l *Ledger) GetAllPovBlocks(fn func(*types.PovBlock) error, txns ...db.StoreTxn) error

func (*Ledger) GetAllPovHeaders added in v1.2.3

func (l *Ledger) GetAllPovHeaders(fn func(header *types.PovHeader) error, txns ...db.StoreTxn) error

func (*Ledger) GetAllPovMinerStats added in v1.2.3

func (l *Ledger) GetAllPovMinerStats(fn func(*types.PovMinerDayStat) error, txns ...db.StoreTxn) error

func (*Ledger) GetBlockCache added in v1.2.3

func (l *Ledger) GetBlockCache(hash types.Hash, txns ...db.StoreTxn) (*types.StateBlock, error)

func (*Ledger) GetBlockCaches added in v1.2.3

func (l *Ledger) GetBlockCaches(fn func(*types.StateBlock) error, txns ...db.StoreTxn) error

func (*Ledger) GetChild added in v1.0.1

func (l *Ledger) GetChild(hash types.Hash, txns ...db.StoreTxn) (types.Hash, error)

func (*Ledger) GetFrontier

func (l *Ledger) GetFrontier(hash types.Hash, txns ...db.StoreTxn) (*types.Frontier, error)

func (*Ledger) GetFrontiers

func (l *Ledger) GetFrontiers(txns ...db.StoreTxn) ([]*types.Frontier, error)

func (*Ledger) GetGenesis added in v0.0.9

func (l *Ledger) GetGenesis(txns ...db.StoreTxn) ([]*types.StateBlock, error)

func (*Ledger) GetLatestPovBestHash added in v1.2.3

func (l *Ledger) GetLatestPovBestHash(txns ...db.StoreTxn) (types.Hash, error)

func (*Ledger) GetLatestPovBlock added in v1.2.3

func (l *Ledger) GetLatestPovBlock(txns ...db.StoreTxn) (*types.PovBlock, error)

func (*Ledger) GetLatestPovHeader added in v1.2.3

func (l *Ledger) GetLatestPovHeader(txns ...db.StoreTxn) (*types.PovHeader, error)

func (*Ledger) GetLatestPovMinerStat added in v1.2.3

func (l *Ledger) GetLatestPovMinerStat(txns ...db.StoreTxn) (*types.PovMinerDayStat, error)

func (*Ledger) GetLinkBlock added in v1.2.3

func (l *Ledger) GetLinkBlock(hash types.Hash, txns ...db.StoreTxn) (types.Hash, error)

func (*Ledger) GetMessageInfo added in v0.0.9

func (l *Ledger) GetMessageInfo(mHash types.Hash, txns ...db.StoreTxn) ([]byte, error)

func (*Ledger) GetOnlineRepresentations added in v0.0.9

func (l *Ledger) GetOnlineRepresentations(txns ...db.StoreTxn) ([]types.Address, error)

func (*Ledger) GetPending

func (l *Ledger) GetPending(pendingKey types.PendingKey, txns ...db.StoreTxn) (*types.PendingInfo, error)

func (*Ledger) GetPendings added in v1.1.0

func (l *Ledger) GetPendings(fn func(pendingKey *types.PendingKey, pendingInfo *types.PendingInfo) error, txns ...db.StoreTxn) error

func (*Ledger) GetPerformanceTime added in v0.0.5

func (l *Ledger) GetPerformanceTime(hash types.Hash, txns ...db.StoreTxn) (*types.PerformanceTime, error)

func (*Ledger) GetPovBestHash added in v1.2.3

func (l *Ledger) GetPovBestHash(height uint64, txns ...db.StoreTxn) (types.Hash, error)

func (*Ledger) GetPovBlockByHash added in v1.2.3

func (l *Ledger) GetPovBlockByHash(hash types.Hash, txns ...db.StoreTxn) (*types.PovBlock, error)

func (*Ledger) GetPovBlockByHeight added in v1.2.3

func (l *Ledger) GetPovBlockByHeight(height uint64, txns ...db.StoreTxn) (*types.PovBlock, error)

func (*Ledger) GetPovBlockByHeightAndHash added in v1.2.3

func (l *Ledger) GetPovBlockByHeightAndHash(height uint64, hash types.Hash, txns ...db.StoreTxn) (*types.PovBlock, error)

func (*Ledger) GetPovBody added in v1.2.3

func (l *Ledger) GetPovBody(height uint64, hash types.Hash, txns ...db.StoreTxn) (*types.PovBody, error)

func (*Ledger) GetPovHeader added in v1.2.3

func (l *Ledger) GetPovHeader(height uint64, hash types.Hash, txns ...db.StoreTxn) (*types.PovHeader, error)

func (*Ledger) GetPovHeaderByHash added in v1.2.3

func (l *Ledger) GetPovHeaderByHash(hash types.Hash, txns ...db.StoreTxn) (*types.PovHeader, error)

func (*Ledger) GetPovHeaderByHeight added in v1.2.3

func (l *Ledger) GetPovHeaderByHeight(height uint64, txns ...db.StoreTxn) (*types.PovHeader, error)

func (*Ledger) GetPovHeight added in v1.2.3

func (l *Ledger) GetPovHeight(hash types.Hash, txns ...db.StoreTxn) (uint64, error)

func (*Ledger) GetPovMinerStat added in v1.2.3

func (l *Ledger) GetPovMinerStat(dayIndex uint32, txns ...db.StoreTxn) (*types.PovMinerDayStat, error)

func (*Ledger) GetPovTD added in v1.2.3

func (l *Ledger) GetPovTD(hash types.Hash, height uint64, txns ...db.StoreTxn) (*big.Int, error)

func (*Ledger) GetPovTxLookup added in v1.2.3

func (l *Ledger) GetPovTxLookup(txHash types.Hash, txns ...db.StoreTxn) (*types.PovTxLookup, error)

func (*Ledger) GetRandomStateBlock added in v0.0.2

func (l *Ledger) GetRandomStateBlock(txns ...db.StoreTxn) (*types.StateBlock, error)

func (*Ledger) GetRepresentation

func (l *Ledger) GetRepresentation(address types.Address, txns ...db.StoreTxn) (*types.Benefit, error)

func (*Ledger) GetRepresentations added in v0.0.5

func (l *Ledger) GetRepresentations(fn func(types.Address, *types.Benefit) error, txns ...db.StoreTxn) error

func (*Ledger) GetRepresentationsCache added in v1.2.3

func (l *Ledger) GetRepresentationsCache(address types.Address, fn func(address types.Address, am *types.Benefit, amCache *types.Benefit) error, txns ...db.StoreTxn) error

func (*Ledger) GetSmartContractBlock added in v0.0.9

func (l *Ledger) GetSmartContractBlock(hash types.Hash, txns ...db.StoreTxn) (*types.SmartContractBlock, error)

func (*Ledger) GetSmartContractBlocks added in v0.0.9

func (l *Ledger) GetSmartContractBlocks(fn func(block *types.SmartContractBlock) error, txns ...db.StoreTxn) error

func (*Ledger) GetStateBlock added in v0.0.2

func (l *Ledger) GetStateBlock(hash types.Hash, txns ...db.StoreTxn) (*types.StateBlock, error)

func (*Ledger) GetStateBlockConfirmed added in v1.2.3

func (l *Ledger) GetStateBlockConfirmed(hash types.Hash, txns ...db.StoreTxn) (*types.StateBlock, error)

func (*Ledger) GetStateBlocks added in v0.0.2

func (l *Ledger) GetStateBlocks(fn func(*types.StateBlock) error, txns ...db.StoreTxn) error

func (*Ledger) GetTokenMeta

func (l *Ledger) GetTokenMeta(address types.Address, tokenType types.Hash, txns ...db.StoreTxn) (*types.TokenMeta, error)

func (*Ledger) GetTokenMetaConfirmed added in v1.2.3

func (l *Ledger) GetTokenMetaConfirmed(address types.Address, tokenType types.Hash, txns ...db.StoreTxn) (*types.TokenMeta, error)

func (*Ledger) GetUncheckedBlock

func (l *Ledger) GetUncheckedBlock(parentHash types.Hash, kind types.UncheckedKind, txns ...db.StoreTxn) (*types.StateBlock, types.SynchronizedKind, error)

func (*Ledger) HasAccountMeta

func (l *Ledger) HasAccountMeta(address types.Address, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasAccountMetaCache added in v1.2.3

func (l *Ledger) HasAccountMetaCache(address types.Address, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasBlockCache added in v1.2.3

func (l *Ledger) HasBlockCache(hash types.Hash, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasPovBlock added in v1.2.3

func (l *Ledger) HasPovBlock(height uint64, hash types.Hash, txns ...db.StoreTxn) bool

func (*Ledger) HasPovBody added in v1.2.3

func (l *Ledger) HasPovBody(height uint64, hash types.Hash, txns ...db.StoreTxn) bool

func (*Ledger) HasPovHeader added in v1.2.3

func (l *Ledger) HasPovHeader(height uint64, hash types.Hash, txns ...db.StoreTxn) bool

func (*Ledger) HasPovHeight added in v1.2.3

func (l *Ledger) HasPovHeight(hash types.Hash, txns ...db.StoreTxn) bool

func (*Ledger) HasPovTxLookup added in v1.2.3

func (l *Ledger) HasPovTxLookup(txHash types.Hash, txns ...db.StoreTxn) bool

func (*Ledger) HasSmartContractBlock added in v0.0.9

func (l *Ledger) HasSmartContractBlock(hash types.Hash, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasStateBlock added in v0.0.2

func (l *Ledger) HasStateBlock(hash types.Hash, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasStateBlockConfirmed added in v1.2.3

func (l *Ledger) HasStateBlockConfirmed(hash types.Hash, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasTokenMeta

func (l *Ledger) HasTokenMeta(address types.Address, tokenType types.Hash, txns ...db.StoreTxn) (bool, error)

func (*Ledger) HasUncheckedBlock

func (l *Ledger) HasUncheckedBlock(hash types.Hash, kind types.UncheckedKind, txns ...db.StoreTxn) (bool, error)

func (*Ledger) IsPerformanceTimeExist added in v0.0.5

func (l *Ledger) IsPerformanceTimeExist(hash types.Hash, txns ...db.StoreTxn) (bool, error)

func (*Ledger) Latest

func (l *Ledger) Latest(account types.Address, token types.Hash, txns ...db.StoreTxn) types.Hash

func (*Ledger) Pending

func (l *Ledger) Pending(account types.Address, txns ...db.StoreTxn) ([]*types.PendingKey, error)

func (*Ledger) PerformanceTimes added in v0.0.5

func (l *Ledger) PerformanceTimes(fn func(*types.PerformanceTime), txns ...db.StoreTxn) error

func (*Ledger) SearchPending added in v0.0.9

func (l *Ledger) SearchPending(address types.Address, fn func(key *types.PendingKey, value *types.PendingInfo) error, txns ...db.StoreTxn) error

func (*Ledger) SetOnlineRepresentations added in v0.0.9

func (l *Ledger) SetOnlineRepresentations(addresses []*types.Address, txns ...db.StoreTxn) error

func (*Ledger) SubRepresentation

func (l *Ledger) SubRepresentation(address types.Address, diff *types.Benefit, txns ...db.StoreTxn) error

func (*Ledger) Token

func (l *Ledger) Token(hash types.Hash, txns ...db.StoreTxn) (*types.TokenMeta, error)

func (*Ledger) TokenBalance

func (l *Ledger) TokenBalance(account types.Address, token types.Hash, txns ...db.StoreTxn) (types.Balance, error)

func (*Ledger) TokenPending

func (l *Ledger) TokenPending(account types.Address, token types.Hash, txns ...db.StoreTxn) ([]*types.PendingKey, error)

func (*Ledger) TokenPendingInfo added in v0.0.2

func (l *Ledger) TokenPendingInfo(account types.Address, token types.Hash, txns ...db.StoreTxn) ([]*types.PendingInfo, error)

func (*Ledger) UpdateAccountMeta

func (l *Ledger) UpdateAccountMeta(meta *types.AccountMeta, txns ...db.StoreTxn) error

func (*Ledger) UpdateAccountMetaCache added in v1.2.3

func (l *Ledger) UpdateAccountMetaCache(meta *types.AccountMeta, txns ...db.StoreTxn) error

func (*Ledger) UpdateTokenMeta

func (l *Ledger) UpdateTokenMeta(address types.Address, meta *types.TokenMeta, txns ...db.StoreTxn) error

func (*Ledger) WalkUncheckedBlocks

func (l *Ledger) WalkUncheckedBlocks(visit types.UncheckedBlockWalkFunc, txns ...db.StoreTxn) error

func (*Ledger) Weight

func (l *Ledger) Weight(account types.Address, txns ...db.StoreTxn) types.Balance

type MigrationV1ToV2 added in v1.0.4

type MigrationV1ToV2 struct {
}

func (MigrationV1ToV2) EndVersion added in v1.0.4

func (m MigrationV1ToV2) EndVersion() int

func (MigrationV1ToV2) Migrate added in v1.0.4

func (m MigrationV1ToV2) Migrate(txn db.StoreTxn) error

func (MigrationV1ToV2) StartVersion added in v1.0.4

func (m MigrationV1ToV2) StartVersion() int

type MigrationV2ToV3 added in v1.0.4

type MigrationV2ToV3 struct {
}

func (MigrationV2ToV3) EndVersion added in v1.0.4

func (m MigrationV2ToV3) EndVersion() int

func (MigrationV2ToV3) Migrate added in v1.0.4

func (m MigrationV2ToV3) Migrate(txn db.StoreTxn) error

func (MigrationV2ToV3) StartVersion added in v1.0.4

func (m MigrationV2ToV3) StartVersion() int

type MigrationV3ToV4 added in v1.1.0

type MigrationV3ToV4 struct {
}

func (MigrationV3ToV4) EndVersion added in v1.1.0

func (m MigrationV3ToV4) EndVersion() int

func (MigrationV3ToV4) Migrate added in v1.1.0

func (m MigrationV3ToV4) Migrate(txn db.StoreTxn) error

func (MigrationV3ToV4) StartVersion added in v1.1.0

func (m MigrationV3ToV4) StartVersion() int

type MigrationV4ToV5 added in v1.1.1

type MigrationV4ToV5 struct {
}

func (MigrationV4ToV5) EndVersion added in v1.1.1

func (m MigrationV4ToV5) EndVersion() int

func (MigrationV4ToV5) Migrate added in v1.1.1

func (m MigrationV4ToV5) Migrate(txn db.StoreTxn) error

func (MigrationV4ToV5) StartVersion added in v1.1.1

func (m MigrationV4ToV5) StartVersion() int

type MigrationV5ToV6 added in v1.2.3

type MigrationV5ToV6 struct {
}

func (MigrationV5ToV6) EndVersion added in v1.2.3

func (m MigrationV5ToV6) EndVersion() int

func (MigrationV5ToV6) Migrate added in v1.2.3

func (m MigrationV5ToV6) Migrate(txn db.StoreTxn) error

func (MigrationV5ToV6) StartVersion added in v1.2.3

func (m MigrationV5ToV6) StartVersion() int

type Store

type Store interface {
	Empty(txns ...db.StoreTxn) (bool, error)
	BatchUpdate(fn func(txn db.StoreTxn) error) error
	BatchView(fn func(txn db.StoreTxn) error) error
	DBStore() db.Store

	// account meta CURD
	AddAccountMeta(meta *types.AccountMeta, txns ...db.StoreTxn) error
	GetAccountMeta(address types.Address, txns ...db.StoreTxn) (*types.AccountMeta, error)
	GetAccountMetas(fn func(am *types.AccountMeta) error, txns ...db.StoreTxn) error
	CountAccountMetas(txns ...db.StoreTxn) (uint64, error)
	UpdateAccountMeta(meta *types.AccountMeta, txns ...db.StoreTxn) error
	DeleteAccountMeta(address types.Address, txns ...db.StoreTxn) error
	HasAccountMeta(address types.Address, txns ...db.StoreTxn) (bool, error)
	// token meta CURD
	AddTokenMeta(address types.Address, meta *types.TokenMeta, txns ...db.StoreTxn) error
	GetTokenMeta(address types.Address, tokenType types.Hash, txns ...db.StoreTxn) (*types.TokenMeta, error)
	UpdateTokenMeta(address types.Address, meta *types.TokenMeta, txns ...db.StoreTxn) error
	DeleteTokenMeta(address types.Address, tokenType types.Hash, txns ...db.StoreTxn) error
	// state block CURD
	AddStateBlock(blk *types.StateBlock, txns ...db.StoreTxn) error
	GetStateBlock(hash types.Hash, txns ...db.StoreTxn) (*types.StateBlock, error)
	GetStateBlocks(fn func(*types.StateBlock) error, txns ...db.StoreTxn) error
	DeleteStateBlock(hash types.Hash, txns ...db.StoreTxn) error
	HasStateBlock(hash types.Hash, txns ...db.StoreTxn) (bool, error)
	CountStateBlocks(txns ...db.StoreTxn) (uint64, error)
	GetRandomStateBlock(txns ...db.StoreTxn) (*types.StateBlock, error)
	// smart contract block CURD
	AddSmartContractBlock(blk *types.SmartContractBlock, txns ...db.StoreTxn) error
	GetSmartContractBlock(hash types.Hash, txns ...db.StoreTxn) (*types.SmartContractBlock, error)
	HasSmartContractBlock(hash types.Hash, txns ...db.StoreTxn) (bool, error)
	GetSmartContractBlocks(fn func(block *types.SmartContractBlock) error, txns ...db.StoreTxn) error
	CountSmartContractBlocks(txns ...db.StoreTxn) (uint64, error)
	// representation CURD
	AddRepresentation(address types.Address, benefit *types.Benefit, txns ...db.StoreTxn) error
	SubRepresentation(address types.Address, benefit *types.Benefit, txns ...db.StoreTxn) error
	GetRepresentation(address types.Address, txns ...db.StoreTxn) (*types.Benefit, error)
	GetRepresentations(fn func(types.Address, *types.Benefit) error, txns ...db.StoreTxn) error
	GetOnlineRepresentations(txns ...db.StoreTxn) ([]types.Address, error)
	SetOnlineRepresentations(addresses []*types.Address, txns ...db.StoreTxn) error
	// unchecked CURD
	AddUncheckedBlock(parentHash types.Hash, blk *types.StateBlock, kind types.UncheckedKind, sync types.SynchronizedKind, txns ...db.StoreTxn) error
	GetUncheckedBlock(parentHash types.Hash, kind types.UncheckedKind, txns ...db.StoreTxn) (*types.StateBlock, types.SynchronizedKind, error)
	DeleteUncheckedBlock(parentHash types.Hash, kind types.UncheckedKind, txns ...db.StoreTxn) error
	HasUncheckedBlock(hash types.Hash, kind types.UncheckedKind, txns ...db.StoreTxn) (bool, error)
	WalkUncheckedBlocks(visit types.UncheckedBlockWalkFunc, txns ...db.StoreTxn) error
	CountUncheckedBlocks(txns ...db.StoreTxn) (uint64, error)
	// pending CURD
	AddPending(pendingKey *types.PendingKey, pending *types.PendingInfo, txns ...db.StoreTxn) error
	GetPending(pendingKey types.PendingKey, txns ...db.StoreTxn) (*types.PendingInfo, error)
	GetPendings(fn func(pendingKey *types.PendingKey, pendingInfo *types.PendingInfo) error, txns ...db.StoreTxn) error
	DeletePending(pendingKey *types.PendingKey, txns ...db.StoreTxn) error
	SearchPending(address types.Address, fn func(key *types.PendingKey, value *types.PendingInfo) error, txns ...db.StoreTxn) error
	// frontier CURD
	AddFrontier(frontier *types.Frontier, txns ...db.StoreTxn) error
	GetFrontier(hash types.Hash, txns ...db.StoreTxn) (*types.Frontier, error)
	GetFrontiers(txns ...db.StoreTxn) ([]*types.Frontier, error)
	DeleteFrontier(hash types.Hash, txns ...db.StoreTxn) error
	CountFrontiers(txns ...db.StoreTxn) (uint64, error)
	// posterior
	GetChild(hash types.Hash, txns ...db.StoreTxn) (types.Hash, error)
	// performance
	AddOrUpdatePerformance(p *types.PerformanceTime, txns ...db.StoreTxn) error
	PerformanceTimes(fn func(*types.PerformanceTime), txns ...db.StoreTxn) error
	GetPerformanceTime(hash types.Hash, txns ...db.StoreTxn) (*types.PerformanceTime, error)
	IsPerformanceTimeExist(hash types.Hash, txns ...db.StoreTxn) (bool, error)
	GetLinkBlock(hash types.Hash, txns ...db.StoreTxn) (types.Hash, error)

	//Latest block hash by account and token type, if not exist, return zero hash
	Latest(account types.Address, token types.Hash, txns ...db.StoreTxn) types.Hash
	//Account get account meta by block hash
	Account(hash types.Hash, txns ...db.StoreTxn) (*types.AccountMeta, error)
	//Token get token meta by block hash
	Token(hash types.Hash, txns ...db.StoreTxn) (*types.TokenMeta, error)
	//Pending get account pending (token_hash->pending)
	Pending(account types.Address, txns ...db.StoreTxn) ([]*types.PendingKey, error)
	//Balance get account balance (token_hash->pending)
	Balance(account types.Address, txns ...db.StoreTxn) (map[types.Hash]types.Balance, error)
	//TokenPending get account token pending
	TokenPending(account types.Address, token types.Hash, txns ...db.StoreTxn) ([]*types.PendingKey, error)
	//TokenBalance get account token balance
	TokenBalance(account types.Address, token types.Hash, txns ...db.StoreTxn) (types.Balance, error)
	//Weight get vote weight for PoS
	Weight(account types.Address, txns ...db.StoreTxn) types.Balance

	//GenerateBlock
	GenerateSendBlock(block *types.StateBlock, amount types.Balance, prk ed25519.PrivateKey) (*types.StateBlock, error)
	GenerateReceiveBlock(sendBlock *types.StateBlock, prk ed25519.PrivateKey) (*types.StateBlock, error)
	GenerateChangeBlock(account types.Address, representative types.Address, prk ed25519.PrivateKey) (*types.StateBlock, error)

	//Token
	//ListTokens(txns ...db.StoreTxn) ([]*types.TokenInfo, error)
	//GetTokenById(tokenId types.Hash, txns ...db.StoreTxn) (*types.TokenInfo, error)
	//GetTokenByName(tokenName string, txns ...db.StoreTxn) (*types.TokenInfo, error)
	GetGenesis(txns ...db.StoreTxn) ([]*types.StateBlock, error)

	//CalculateAmount calculate block amount by balance and check block type
	CalculateAmount(block *types.StateBlock, txns ...db.StoreTxn) (types.Balance, error)
	AddMessageInfo(mHash types.Hash, message []byte, txns ...db.StoreTxn) error
	GetMessageInfo(mHash types.Hash, txns ...db.StoreTxn) ([]byte, error)

	//POV blocks base CRUD
	AddPovBlock(blk *types.PovBlock, td *big.Int, txns ...db.StoreTxn) error
	DeletePovBlock(blk *types.PovBlock, txns ...db.StoreTxn) error
	AddPovHeader(header *types.PovHeader, txns ...db.StoreTxn) error
	DeletePovHeader(height uint64, hash types.Hash, txns ...db.StoreTxn) error
	GetPovHeader(height uint64, hash types.Hash, txns ...db.StoreTxn) (*types.PovHeader, error)
	HasPovHeader(height uint64, hash types.Hash, txns ...db.StoreTxn) bool
	AddPovBody(height uint64, hash types.Hash, body *types.PovBody, txns ...db.StoreTxn) error
	DeletePovBody(height uint64, hash types.Hash, txns ...db.StoreTxn) error
	GetPovBody(height uint64, hash types.Hash, txns ...db.StoreTxn) (*types.PovBody, error)
	HasPovBody(height uint64, hash types.Hash, txns ...db.StoreTxn) bool
	AddPovHeight(hash types.Hash, height uint64, txns ...db.StoreTxn) error
	DeletePovHeight(hash types.Hash, txns ...db.StoreTxn) error
	GetPovHeight(hash types.Hash, txns ...db.StoreTxn) (uint64, error)
	HasPovHeight(hash types.Hash, txns ...db.StoreTxn) bool
	AddPovTD(hash types.Hash, height uint64, td *big.Int, txns ...db.StoreTxn) error
	DeletePovTD(hash types.Hash, height uint64, txns ...db.StoreTxn) error
	GetPovTD(hash types.Hash, height uint64, txns ...db.StoreTxn) (*big.Int, error)
	AddPovTxLookup(txHash types.Hash, txLookup *types.PovTxLookup, txns ...db.StoreTxn) error
	DeletePovTxLookup(txHash types.Hash, txns ...db.StoreTxn) error
	GetPovTxLookup(txHash types.Hash, txns ...db.StoreTxn) (*types.PovTxLookup, error)
	HasPovTxLookup(txHash types.Hash, txns ...db.StoreTxn) bool

	// POV best chain CURD
	AddPovBestHash(height uint64, hash types.Hash, txns ...db.StoreTxn) error
	DeletePovBestHash(height uint64, txns ...db.StoreTxn) error
	GetPovBestHash(height uint64, txns ...db.StoreTxn) (types.Hash, error)

	AddPovMinerStat(dayStat *types.PovMinerDayStat, txns ...db.StoreTxn) error
	DeletePovMinerStat(dayIndex uint32, txns ...db.StoreTxn) error
	GetPovMinerStat(dayIndex uint32, txns ...db.StoreTxn) (*types.PovMinerDayStat, error)
	GetLatestPovMinerStat(txns ...db.StoreTxn) (*types.PovMinerDayStat, error)

	// POV blocks complex queries
	GetPovBlockByHeightAndHash(height uint64, hash types.Hash, txns ...db.StoreTxn) (*types.PovBlock, error)
	GetPovBlockByHeight(height uint64, txns ...db.StoreTxn) (*types.PovBlock, error)
	GetPovBlockByHash(hash types.Hash, txns ...db.StoreTxn) (*types.PovBlock, error)
	BatchGetPovHeadersByHeightAsc(height uint64, count uint64, txns ...db.StoreTxn) ([]*types.PovHeader, error)
	BatchGetPovHeadersByHeightDesc(height uint64, count uint64, txns ...db.StoreTxn) ([]*types.PovHeader, error)
	GetPovHeaderByHash(hash types.Hash, txns ...db.StoreTxn) (*types.PovHeader, error)
	GetPovHeaderByHeight(height uint64, txns ...db.StoreTxn) (*types.PovHeader, error)
	GetAllPovHeaders(fn func(header *types.PovHeader) error, txns ...db.StoreTxn) error
	GetAllPovBlocks(fn func(*types.PovBlock) error, txns ...db.StoreTxn) error
	GetAllPovBestHeaders(fn func(header *types.PovHeader) error, txns ...db.StoreTxn) error
	GetAllPovBestBlocks(fn func(*types.PovBlock) error, txns ...db.StoreTxn) error
	GetLatestPovHeader(txns ...db.StoreTxn) (*types.PovHeader, error)
	GetLatestPovBlock(txns ...db.StoreTxn) (*types.PovBlock, error)
	HasPovBlock(height uint64, hash types.Hash, txns ...db.StoreTxn) bool

	DropAllPovBlocks() error
	CountPovBlocks(txns ...db.StoreTxn) (uint64, error)
	CountPovTxs(txns ...db.StoreTxn) (uint64, error)
	CountPovBestHashs(txns ...db.StoreTxn) (uint64, error)
}

Directories

Path Synopsis
db

Jump to

Keyboard shortcuts

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