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 |