Interface IStore
Inherited Members
Namespace: Libplanet.Store
Assembly: Libplanet.Store.dll
Syntax
public interface IStore : IDisposable
Methods
| Improve this Doc View SourceAppendIndex(Guid, BlockHash)
Appends a block to a chain.
Declaration
long AppendIndex(Guid chainId, BlockHash hash)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of a chain to append a block to. |
| BlockHash | hash | The hash of a block to append. Assumes the block is already put into the store. |
Returns
| Type | Description |
|---|---|
| System.Int64 | The index of the appended block. |
ContainsBlock(BlockHash)
Declaration
bool ContainsBlock(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | The HashDigest<T> of the Block to check if it is in the IStore. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the IStore contains Block with
the specified |
ContainsTransaction(TxId)
Determines whether the IStore contains Transaction
the specified txId.
Declaration
bool ContainsTransaction(TxId txId)
Parameters
| Type | Name | Description |
|---|---|---|
| TxId | txId | The TxId of the Transaction to check if it is in the IStore. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the IStore contains Transaction
with the specified |
CountBlocks()
Declaration
long CountBlocks()
Returns
| Type | Description |
|---|---|
| System.Int64 |
CountIndex(Guid)
Declaration
long CountIndex(Guid chainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId |
Returns
| Type | Description |
|---|---|
| System.Int64 |
DeleteBlock(BlockHash)
Removes a block from the store.
Declaration
bool DeleteBlock(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | The hash of a block to remove. |
Returns
| Type | Description |
|---|---|
| System.Boolean | false if such block does not exist. Otherwise true. |
DeleteBlockCommit(BlockHash)
Deletes a BlockCommit of given height from store.
Declaration
void DeleteBlockCommit(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | The BlockHash of a BlockCommit to delete. |
DeleteChainId(Guid)
Deletes an index, tx nonces, and state references in the given
chainId.
It also deletes chain itself. If there is no such chainId it
does nothing.
Declaration
void DeleteChainId(Guid chainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of chain to delete. |
Remarks
This does not delete blocks or transactions that belong to the index of
the chainId, but only the index, tx nonces, and state references.
DeleteTxIdBlockHashIndex(TxId, BlockHash)
Deletes the index for the txId and blockHash.
Declaration
void DeleteTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| TxId | txId | The TxId of the Transaction. |
| BlockHash | blockHash |
ForkBlockIndexes(Guid, Guid, BlockHash)
Forks block indexes from
sourceChainId to
destinationChainId.
Declaration
void ForkBlockIndexes(Guid sourceChainId, Guid destinationChainId, BlockHash branchpoint)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | sourceChainId | The chain ID of block indexes to fork. |
| Guid | destinationChainId | The chain ID of destination block indexes. |
| BlockHash | branchpoint | The branchpoint Block to fork. |
See Also
| Improve this Doc View SourceForkTxNonces(Guid, Guid)
Forks Transaction Nonces from
sourceChainId to
destinationChainId.
Declaration
void ForkTxNonces(Guid sourceChainId, Guid destinationChainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | sourceChainId | The chain |
| Guid | destinationChainId | The chain |
GetBlock(BlockHash)
Gets the corresponding stored Block to the given
blockHash.
Declaration
Block GetBlock(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | Hash to find. |
Returns
| Type | Description |
|---|---|
| Block | A found block, or null if no block having such
|
GetBlockCommit(BlockHash)
Gets the BlockCommit for given blockHash from
the store.
Declaration
BlockCommit GetBlockCommit(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | The BlockHash of a BlockCommit to retrieve. |
Returns
| Type | Description |
|---|---|
| BlockCommit | Returns BlockCommit if given |
GetBlockCommitHashes()
Gets every BlockHashes of BlockCommits from store.
Declaration
IEnumerable<BlockHash> GetBlockCommitHashes()
Returns
| Type | Description |
|---|---|
| IEnumerable<BlockHash> | Returns an IEnumerable<T> of BlockHashes of all BlockCommits. |
GetBlockDigest(BlockHash)
Gets the corresponding stored BlockDigest to the given
blockHash.
Declaration
BlockDigest? GetBlockDigest(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | Hash to find. |
Returns
| Type | Description |
|---|---|
| Nullable<BlockDigest> | A found BlockDigest, or null if no block
having such |
GetBlockIndex(BlockHash)
Declaration
long? GetBlockIndex(BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | Hash to find. |
Returns
| Type | Description |
|---|---|
| Nullable<System.Int64> | A found block's Index, or null if
no block having such |
Remarks
It provides only limited information, but can be called without any type parameter unlike GetBlock(BlockHash).
GetCanonicalChainId()
Gets the ID of the current canonical chain.
Declaration
Guid? GetCanonicalChainId()
Returns
| Type | Description |
|---|---|
| Nullable<Guid> | The ID of the current canonical chain. Maybe null. |
See Also
| Improve this Doc View SourceGetChainBlockCommit(Guid)
Gets a BlockCommit associated with a chainId as its
Declaration
BlockCommit GetChainBlockCommit(Guid chainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The |
Returns
| Type | Description |
|---|---|
| BlockCommit | Returns BlockCommit if given |
GetFirstTxIdBlockHashIndex(TxId)
Retrieves the BlockHash indexed by the txId.
Declaration
BlockHash? GetFirstTxIdBlockHashIndex(TxId txId)
Parameters
| Type | Name | Description |
|---|---|---|
| TxId | txId | The TxId of the Transaction. |
Returns
| Type | Description |
|---|---|
| Nullable<BlockHash> | BlockHash if the index exists. Otherwise null. |
GetTransaction(TxId)
Declaration
Transaction GetTransaction(TxId txid)
Parameters
| Type | Name | Description |
|---|---|---|
| TxId | txid |
Returns
| Type | Description |
|---|---|
| Transaction |
GetTxExecution(BlockHash, TxId)
Retrieves the recorded transaction execution summary.
Declaration
TxExecution GetTxExecution(BlockHash blockHash, TxId txid)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockHash | blockHash | The Hash of the recorded transaction execution to retrieve. |
| TxId | txid | The Id of the recorded transaction execution to retrieve. |
Returns
| Type | Description |
|---|---|
| TxExecution | The recorded transaction execution summary. If it has been never recorded null is returned instead. |
See Also
| Improve this Doc View SourceGetTxNonce(Guid, Address)
Gets Transaction nonce of the
address.
Declaration
long GetTxNonce(Guid chainId, Address address)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of the chain to get Transaction nonce. |
| Address | address | The Address to get Transaction nonce. |
Returns
| Type | Description |
|---|---|
| System.Int64 | A Transaction nonce. If there is no previous Transaction, return 0. |
See Also
| Improve this Doc View SourceIncreaseTxNonce(Guid, Address, Int64)
Increases (or decreases if a negative delta is given)
the tx nonce counter for signer.
Declaration
void IncreaseTxNonce(Guid chainId, Address signer, long delta = 1L)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of the chain to increase Transaction nonce. |
| Address | signer | The address of the account to increase tx nonce. |
| System.Int64 | delta | How many to increase the counter. A negative number decreases the counter. 1 by default. |
See Also
| Improve this Doc View SourceIndexBlockHash(Guid, Int64)
Determines the block hash by its index.
Declaration
BlockHash? IndexBlockHash(Guid chainId, long index)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The chain ID of the index that contains the block. |
| System.Int64 | index | The index of the block to query its hash. Negative indices mean the offset from the end. For example, -1 means the topmost block. |
Returns
| Type | Description |
|---|---|
| Nullable<BlockHash> | The block hash of the index in the chain. If there is no such index, it returns null. |
IterateBlockHashes()
Lists all block hashes in the store, regardless of their belonging chains.
Declaration
IEnumerable<BlockHash> IterateBlockHashes()
Returns
| Type | Description |
|---|---|
| IEnumerable<BlockHash> | All block hashes in the store. |
IterateIndexes(Guid, Int32, Nullable<Int32>)
Lists all block hashes in chainId.
Declaration
IEnumerable<BlockHash> IterateIndexes(Guid chainId, int offset = 0, int? limit = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The chain ID of the index that contains block hashes to iterate. |
| Int32 | offset | The starting point to return block hashes. |
| Nullable<Int32> | limit | The maximum number of block hashes to get. |
Returns
| Type | Description |
|---|---|
| IEnumerable<BlockHash> | Block hashes in the index of the |
IterateTxIdBlockHashIndex(TxId)
Retrieves BlockHashes indexed by the txId.
Declaration
IEnumerable<BlockHash> IterateTxIdBlockHashIndex(TxId txId)
Parameters
| Type | Name | Description |
|---|---|---|
| TxId | txId | The TxId of the Transaction. |
Returns
| Type | Description |
|---|---|
| IEnumerable<BlockHash> | BlockHashes if the index exists. |
ListChainIds()
Lists chain IDs containing at least a single block.
Declaration
IEnumerable<Guid> ListChainIds()
Returns
| Type | Description |
|---|---|
| IEnumerable<Guid> | Chain IDs with at least a single block. |
ListTxNonces(Guid)
Lists all Addresses that have ever signed Transaction, and their corresponding Transaction nonces.
Declaration
IEnumerable<KeyValuePair<Address, long>> ListTxNonces(Guid chainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of the chain to list Addresses and their Transaction nonces. |
Returns
| Type | Description |
|---|---|
| IEnumerable<System.Collections.Generic.KeyValuePair<Address, System.Int64>> | Pairs of an Address and its tx nonce. All nonces are greater than 0. (If there are underlying entries having zero nonces these must be hidden.) |
See Also
| Improve this Doc View SourcePruneOutdatedChains(Boolean)
Delete all non-canonical chains.
Declaration
void PruneOutdatedChains(bool noopWithoutCanon = false)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | noopWithoutCanon | Flag to determine whether the function throws exception when the canonical chain is not assigned. false by default. If it set to true, does not throw exception when there is no canonical chain. Otherwise, throws InvalidOperationException when there is no canonical chain. |
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | Thrown when there is no canonical chain and
|
PutBlock(Block)
Puts the given block in to the store.
If the same block already exists in the store it does nothing.
Declaration
void PutBlock(Block block)
Parameters
| Type | Name | Description |
|---|---|---|
| Block | block | A Block to put into the store. |
PutBlockCommit(BlockCommit)
Puts a BlockCommit to the store.
Declaration
void PutBlockCommit(BlockCommit blockCommit)
Parameters
| Type | Name | Description |
|---|---|---|
| BlockCommit | blockCommit | A BlockCommit to store. |
PutChainBlockCommit(Guid, BlockCommit)
Puts a BlockCommit associated with a chainId as its
Declaration
void PutChainBlockCommit(Guid chainId, BlockCommit blockCommit)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The |
| BlockCommit | blockCommit | The BlockCommit to store. |
PutTransaction(Transaction)
Puts a given Transaction to the store. If the same transaction already exists in the store it does nothing.
Declaration
void PutTransaction(Transaction tx)
Parameters
| Type | Name | Description |
|---|---|---|
| Transaction | tx | A transaction to put into the store. |
PutTxExecution(TxExecution)
Records the given txExecution.
Declaration
void PutTxExecution(TxExecution txExecution)
Parameters
| Type | Name | Description |
|---|---|---|
| TxExecution | txExecution | The transaction execution summary to record. Must not be null. |
Remarks
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | Thrown when |
See Also
| Improve this Doc View SourcePutTxIdBlockHashIndex(TxId, BlockHash)
Records a index for given pair txId and blockHash.
If there exist a record for txId already,
it overwrites the record silently.
Declaration
void PutTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| TxId | txId | The TxId of the Transaction. |
| BlockHash | blockHash |
SetCanonicalChainId(Guid)
Sets the canonical chain.
Declaration
void SetCanonicalChainId(Guid chainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of a new canonical chain. |