Interface IStore
Namespace: Libplanet.Store
Assembly: Libplanet.Store.dll
Syntax
public interface IStore
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 |
ContainsCommittedEvidence(EvidenceId)
Determines whether the IStore contains EvidenceBase
the specified evidenceId as committed.
Declaration
bool ContainsCommittedEvidence(EvidenceId evidenceId)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceId | evidenceId | The EvidenceId of the EvidenceBase to check if it is in the IStore and committed. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the IStore contains EvidenceBase
with the specified |
ContainsPendingEvidence(EvidenceId)
Determines whether the IStore contains EvidenceBase
the specified evidenceId as pending.
Declaration
bool ContainsPendingEvidence(EvidenceId evidenceId)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceId | evidenceId | The EvidenceId of the EvidenceBase to check if it is in the IStore and pending. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the IStore contains EvidenceBase
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.
DeleteCommittedEvidence(EvidenceId)
Deletes a committed EvidenceBase of given evidenceId
from the store.
Declaration
void DeleteCommittedEvidence(EvidenceId evidenceId)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceId | evidenceId | The EvidenceId of a committed EvidenceBase to delete. |
DeletePendingEvidence(EvidenceId)
Deletes a pending EvidenceBase of given evidenceId
from the store.
Declaration
void DeletePendingEvidence(EvidenceId evidenceId)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceId | evidenceId | The EvidenceId of a pending EvidenceBase to delete. |
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 |
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 |
|---|---|
| System.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 |
|---|---|
| System.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 |
|---|---|
| System.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 |
GetCommittedEvidence(EvidenceId)
Gets every committed EvidenceBase of given evidenceId
from the store.
Declaration
EvidenceBase GetCommittedEvidence(EvidenceId evidenceId)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceId | evidenceId | The EvidenceId of a committed EvidenceBase to retrieve. |
Returns
| Type | Description |
|---|---|
| EvidenceBase | Returns EvidenceBase 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 |
|---|---|
| System.Nullable<BlockHash> | BlockHash if the index exists. Otherwise null. |
GetPendingEvidence(EvidenceId)
Gets every pending EvidenceBase of given evidenceId
from the store.
Declaration
EvidenceBase GetPendingEvidence(EvidenceId evidenceId)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceId | evidenceId | The EvidenceId of a pending EvidenceBase to retrieve. |
Returns
| Type | Description |
|---|---|
| EvidenceBase | Returns EvidenceBase if given |
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 = null)
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 |
|---|---|
| System.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. |
| System.Int32 | offset | The starting point to return block hashes. |
| System.Nullable<System.Int32> | limit | The maximum number of block hashes to get. |
Returns
| Type | Description |
|---|---|
| IEnumerable<BlockHash> | Block hashes in the index of the |
IteratePendingEvidenceIds()
Gets every EvidenceIds of pending EvidenceBases from the store.
Declaration
IEnumerable<EvidenceId> IteratePendingEvidenceIds()
Returns
| Type | Description |
|---|---|
| IEnumerable<EvidenceId> | Returns an |
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<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 |
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. |
PutCommittedEvidence(EvidenceBase)
Puts a EvidenceBase to the store as committed evidence.
Declaration
void PutCommittedEvidence(EvidenceBase evidence)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceBase | evidence | A committed EvidenceBase to store. |
PutPendingEvidence(EvidenceBase)
Puts a EvidenceBase to the store as pending evidence.
Declaration
void PutPendingEvidence(EvidenceBase evidence)
Parameters
| Type | Name | Description |
|---|---|---|
| EvidenceBase | evidence | A pending EvidenceBase 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
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. |