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. |