Interface IStagePolicy<T>
An interface to configure a BlockChain<T>'s strategy to deal with staged transactions.
Namespace: Libplanet.Blockchain.Policies
Assembly: Libplanet.dll
Syntax
public interface IStagePolicy<T>
where T : IAction, new()
Type Parameters
Name | Description |
---|---|
T | An IAction type. It should match the BlockChain<T>'s type parameter. |
Remarks
Every operation of an implementation of this interface
must be thread-safe.
Methods
| Improve this Doc View SourceGet(BlockChain<T>, TxId, Boolean)
Retrieves a staged Transaction<T> by its id
.
Declaration
Transaction<T> Get(BlockChain<T> blockChain, TxId id, bool filtered = true)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
TxId | id | The Id to get. |
Boolean | filtered | Whether to filter masked staged Transaction<T>s
or not. Set to |
Returns
Type | Description |
---|---|
Transaction<T> | The staged Transaction<T> associated with |
GetNextTxNonce(BlockChain<T>, Address)
Calculates the next nonce according for given address
.
Declaration
long GetNextTxNonce(BlockChain<T> blockChain, Address address)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
Address | address | The Address to calculate the next nonce for. |
Returns
Type | Description |
---|---|
Int64 | The next appropriate nonce for |
Ignore(BlockChain<T>, TxId)
Marks given id
as ignored.
Declaration
void Ignore(BlockChain<T> blockChain, TxId id)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
TxId | id | The Id to ignore. |
Remarks
If the Transaction<T> associated with id
is already
staged, this also unstages the Transaction<T>.
Ignores(BlockChain<T>, TxId)
Checks if given id
is marked as ignored.
Declaration
bool Ignores(BlockChain<T> blockChain, TxId id)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
TxId | id | The Id to check. |
Returns
Type | Description |
---|---|
Boolean |
|
Iterate(BlockChain<T>, Boolean)
Enumerates all staged Transaction<T>s.
Declaration
IEnumerable<Transaction<T>> Iterate(BlockChain<T> blockChain, bool filtered = true)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
Boolean | filtered | Whether to filter masked staged Transaction<T>s
or not. Set to |
Returns
Type | Description |
---|---|
IEnumerable<Transaction<T>> | All staged transactions. No ordering is guaranteed. |
Stage(BlockChain<T>, Transaction<T>)
Stages a transaction
.
Declaration
bool Stage(BlockChain<T> blockChain, Transaction<T> transaction)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
Transaction<T> | transaction | The Transaction<T> to be staged. |
Returns
Type | Description |
---|---|
Boolean |
|
Remarks
This does not throw any exception regardless of whether transaction
was successfully staged or not.
If the Id of transaction
is marked
as ignored, transaction
will not be staged.
Unstage(BlockChain<T>, TxId)
Unstages a transaction id
.
Declaration
bool Unstage(BlockChain<T> blockChain, TxId id)
Parameters
Type | Name | Description |
---|---|---|
BlockChain<T> | blockChain | The BlockChain<T> that the stage belongs to. |
TxId | id | The Id to unstage. |
Returns
Type | Description |
---|---|
Boolean |
|
Remarks
This does not throw any exception regardless of whether id
was
successfully unstaged or not.