Interface IStore
Namespace: Libplanet.Store
Assembly: Libplanet.dll
Syntax
public interface IStore
Methods
| Improve this Doc View SourceAppendIndex(Guid, HashDigest<SHA256>)
Declaration
long AppendIndex(Guid chainId, HashDigest<SHA256> hash)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | |
| HashDigest<SHA256> | hash |
Returns
| Type | Description |
|---|---|
| Int64 |
ContainsBlock(HashDigest<SHA256>)
Declaration
bool ContainsBlock(HashDigest<SHA256> blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| HashDigest<SHA256> | 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(HashDigest<SHA256>)
Declaration
bool DeleteBlock(HashDigest<SHA256> blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| HashDigest<SHA256> | blockHash |
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 |
ForkBlockIndexes(Guid, Guid, HashDigest<SHA256>)
Forks block indexes from
sourceChainId to
destinationChainId.
Declaration
void ForkBlockIndexes(Guid sourceChainId, Guid destinationChainId, HashDigest<SHA256> branchPoint)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | sourceChainId | The chain ID of block indexes to fork. |
| Guid | destinationChainId | The chain ID of destination block indexes. |
| HashDigest<SHA256> | branchPoint | The branch point Block<T> to fork. |
Exceptions
| Type | Condition |
|---|---|
| ChainIdNotFoundException | Thrown when the given
|
See Also
| Improve this Doc View SourceGetBlock<T>(HashDigest<SHA256>)
Gets the corresponding stored Block<T> to the given
blockHash.
Declaration
Block<T> GetBlock<T>(HashDigest<SHA256> blockHash)
where T : IAction, new()
Parameters
| Type | Name | Description |
|---|---|---|
| HashDigest<SHA256> | 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(HashDigest<SHA256>)
Gets the corresponding stored BlockDigest to the given
blockHash.
Declaration
BlockDigest? GetBlockDigest(HashDigest<SHA256> blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| HashDigest<SHA256> | blockHash | Hash to find. |
Returns
| Type | Description |
|---|---|
| Nullable<BlockDigest> | A found BlockDigest, or |
GetBlockIndex(HashDigest<SHA256>)
Declaration
long? GetBlockIndex(HashDigest<SHA256> blockHash)
Parameters
| Type | Name | Description |
|---|---|---|
| HashDigest<SHA256> | 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>(HashDigest<SHA256>).
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 SourceGetTransaction<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 |
GetTxNonce(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)
Declaration
HashDigest<SHA256>? IndexBlockHash(Guid chainId, long index)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | |
| Int64 | index |
Returns
| Type | Description |
|---|---|
| Nullable<HashDigest<SHA256>> |
IterateBlockHashes()
Declaration
IEnumerable<HashDigest<SHA256>> IterateBlockHashes()
Returns
| Type | Description |
|---|---|
| IEnumerable<HashDigest<SHA256>> |
IterateIndexes(Guid, Int32, Nullable<Int32>)
Lists all block hashes in the
Declaration
IEnumerable<HashDigest<SHA256>> 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<HashDigest<SHA256>> | Block hashes in the index of the |
IterateStagedTransactionIds()
Iterates staged TxIds.
Declaration
IEnumerable<TxId> IterateStagedTransactionIds()
Returns
| Type | Description |
|---|---|
| IEnumerable<TxId> | Staged TxIds. |
IterateTransactionIds()
Declaration
IEnumerable<TxId> IterateTransactionIds()
Returns
| Type | Description |
|---|---|
| IEnumerable<TxId> |
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 SourcePutBlock<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. |
SetCanonicalChainId(Guid)
Sets the canonical chain.
Declaration
void SetCanonicalChainId(Guid chainId)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | chainId | The ID of a new canonical chain. |
See Also
| Improve this Doc View SourceStageTransactionIds(IImmutableSet<TxId>)
Adds TxIds to the pending list so that a next Block<T> to be mined contains the corresponding Transaction<T>s.
Declaration
void StageTransactionIds(IImmutableSet<TxId> txids)
Parameters
| Type | Name | Description |
|---|---|---|
| IImmutableSet<TxId> | txids | TxIds to add to pending list. |
UnstageTransactionIds(ISet<TxId>)
Declaration
void UnstageTransactionIds(ISet<TxId> txids)
Parameters
| Type | Name | Description |
|---|---|---|
| ISet<TxId> | txids |