Interface IStore
Namespace: Libplanet.Store
Assembly: Libplanet.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 |
---|---|
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<T> to check if it is in the IStore. |
Returns
Type | Description |
---|---|
Boolean |
|
ContainsTransaction(TxId)
Determines whether the IStore contains Transaction<T>
the specified txId
.
Declaration
bool ContainsTransaction(TxId txId)
Parameters
Type | Name | Description |
---|---|---|
TxId | txId | The TxId of the Transaction<T> to check if it is in the IStore. |
Returns
Type | Description |
---|---|
Boolean |
|
CountBlocks()
Declaration
long CountBlocks()
Returns
Type | Description |
---|---|
Int64 |
CountIndex(Guid)
Declaration
long CountIndex(Guid chainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | chainId |
Returns
Type | Description |
---|---|
Int64 |
CountTransactions()
Declaration
long CountTransactions()
Returns
Type | Description |
---|---|
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 |
---|---|
Boolean |
|
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.
DeleteTransaction(TxId)
Declaration
bool DeleteTransaction(TxId txid)
Parameters
Type | Name | Description |
---|---|---|
TxId | txid |
Returns
Type | Description |
---|---|
Boolean |
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<T>. |
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<T> to fork. |
Exceptions
Type | Condition |
---|---|
ChainIdNotFoundException | Thrown when the given
|
See Also
| Improve this Doc View SourceForkTxNonces(Guid, Guid)
Forks Transaction<T> Nonces from
sourceChainId
to
destinationChainId
.
Declaration
void ForkTxNonces(Guid sourceChainId, Guid destinationChainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | sourceChainId | The chain Id of Transaction<T> Nonces to fork. |
Guid | destinationChainId | The chain Id of destination Transaction<T> Nonces. |
Exceptions
Type | Condition |
---|---|
ChainIdNotFoundException | Thrown when the given
|
GetBlock<T>(HashAlgorithmGetter, BlockHash)
Gets the corresponding stored Block<T> to the given
blockHash
.
Declaration
Block<T> GetBlock<T>(HashAlgorithmGetter hashAlgorithmGetter, BlockHash blockHash)
where T : IAction, new()
Parameters
Type | Name | Description |
---|---|---|
HashAlgorithmGetter | hashAlgorithmGetter | The function to determine hash algorithm used for proof-of-work mining. |
BlockHash | blockHash | Hash to find. |
Returns
Type | Description |
---|---|
Block<T> | A found block, or |
Type Parameters
Name | Description |
---|---|
T | An IAction type. It should match to Block<T>'s type parameter. |
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 |
GetBlockIndex(BlockHash)
Declaration
long? GetBlockIndex(BlockHash blockHash)
Parameters
Type | Name | Description |
---|---|---|
BlockHash | blockHash | Hash to find. |
Returns
Type | Description |
---|---|
Nullable<Int64> | A found block's Index, or |
Remarks
It provides only limited information, but can be called without any type parameter unlike GetBlock<T>(HashAlgorithmGetter, BlockHash).
GetBlockPerceivedTime(BlockHash)
Queries the perceived time of a block, if it has been recorded.
Declaration
DateTimeOffset? GetBlockPerceivedTime(BlockHash blockHash)
Parameters
Type | Name | Description |
---|---|---|
BlockHash | blockHash | Hash to query. |
Returns
Type | Description |
---|---|
Nullable<DateTimeOffset> | The perceived time of a block, if it exists. Otherwise, |
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 |
See Also
| Improve this Doc View SourceGetFirstTxIdBlockHashIndex(TxId)
Retrieves the BlockHash indexed by the txId
.
Declaration
BlockHash? GetFirstTxIdBlockHashIndex(TxId txId)
Parameters
Type | Name | Description |
---|---|---|
TxId | txId | The TxId of the Transaction<T>. |
Returns
Type | Description |
---|---|
Nullable<BlockHash> | BlockHash if the index exists. Otherwise |
GetTransaction<T>(TxId)
Declaration
Transaction<T> GetTransaction<T>(TxId txid)
where T : IAction, new()
Parameters
Type | Name | Description |
---|---|---|
TxId | txid |
Returns
Type | Description |
---|---|
Transaction<T> |
Type Parameters
Name | Description |
---|---|
T |
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
|
See Also
| Improve this Doc View SourceGetTxNonce(Guid, Address)
Gets Transaction<T> 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<T> nonce. |
Address | address | The Address to get Transaction<T> nonce. |
Returns
Type | Description |
---|---|
Int64 | A Transaction<T> nonce. If there is no previous Transaction<T>, 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<T> nonce. |
Address | signer | The address of the account to increase tx nonce. |
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. |
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 |
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 the
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 |
IterateTransactionIds()
Declaration
IEnumerable<TxId> IterateTransactionIds()
Returns
Type | Description |
---|---|
IEnumerable<TxId> |
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<T>. |
Returns
Type | Description |
---|---|
IEnumerable<BlockHash> | BlockHashes if the index exists. |
ListChainIds()
Lists existing chain IDs.
Declaration
IEnumerable<Guid> ListChainIds()
Returns
Type | Description |
---|---|
IEnumerable<Guid> | Existing chain IDs. |
ListTxNonces(Guid)
Lists all Addresses that have ever signed Transaction<T>, and their corresponding Transaction<T> 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<T> nonces. |
Returns
Type | Description |
---|---|
IEnumerable<KeyValuePair<Address, 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 |
---|---|---|
Boolean | noopWithoutCanon | Flag to determine whether the function throws exception
when the canonical chain is not assigned. |
PutBlock<T>(Block<T>)
Puts the given block
in to the store.
If the same block already exists in the store it does nothing.
Declaration
void PutBlock<T>(Block<T> block)
where T : IAction, new()
Parameters
Type | Name | Description |
---|---|---|
Block<T> | block | A Block<T> to put into the store. |
Type Parameters
Name | Description |
---|---|
T | An IAction class used with
|
PutTransaction<T>(Transaction<T>)
Puts a given Transaction<T> to the store. If the same transaction already exists in the store it does nothing.
Declaration
void PutTransaction<T>(Transaction<T> tx)
where T : IAction, new()
Parameters
Type | Name | Description |
---|---|---|
Transaction<T> | tx | A transaction to put into the store. |
Type Parameters
Name | Description |
---|---|
T | An IAction type. It should match to Transaction<T>'s type parameter. |
PutTxExecution(TxFailure)
Records the given txFailure
.
Declaration
void PutTxExecution(TxFailure txFailure)
Parameters
Type | Name | Description |
---|---|---|
TxFailure | txFailure | The failed transaction execution summary to record.
Must not be |
Remarks
See Also
| Improve this Doc View SourcePutTxExecution(TxSuccess)
Records the given txSuccess
.
Declaration
void PutTxExecution(TxSuccess txSuccess)
Parameters
Type | Name | Description |
---|---|---|
TxSuccess | txSuccess | The successful transaction execution summary to record.
Must not be |
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<T>. |
BlockHash | blockHash |
SetBlockPerceivedTime(BlockHash, DateTimeOffset)
Records the perceived time of a block. If there is already a record, it is overwritten.
Declaration
void SetBlockPerceivedTime(BlockHash blockHash, DateTimeOffset perceivedTime)
Parameters
Type | Name | Description |
---|---|---|
BlockHash | blockHash | Hash to record its perceived time. |
DateTimeOffset | perceivedTime | The perceived time to record. |
SetCanonicalChainId(Guid)
Sets the canonical chain.
Declaration
void SetCanonicalChainId(Guid chainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | chainId | The ID of a new canonical chain. |