Interface IActionContext
Contextual data determined by a transaction and a block. Passed to Execute(IActionContext) method.
Namespace: Libplanet.Action
Assembly: Libplanet.Action.dll
Syntax
public interface IActionContext
Properties
| Improve this Doc View SourceBlockIndex
Declaration
long BlockIndex { get; }
Property Value
Type | Description |
---|---|
System.Int64 |
BlockProtocolVersion
The ProtocolVersion of the Block that contains the IAction.
Declaration
int BlockProtocolVersion { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Evidence
A list of EvidenceBases that are included in a Block.
Declaration
IReadOnlyList<EvidenceBase> Evidence { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<EvidenceBase> |
IsPolicyAction
Whether this action is executed as a policy action. false if it is a user action.
Declaration
bool IsPolicyAction { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Miner
Declaration
Address Miner { get; }
Property Value
Type | Description |
---|---|
Address |
PreviousState
A null delta of states, which means it represents the states before IAction executes.
Although a IAccount instance is immutable, it has several manipulative methods that returns new IAccount instances with some "dirty" states. These kinds of dirty IWorld instances can be returned by Execute(IActionContext) method.
Declaration
IWorld PreviousState { get; }
Property Value
Type | Description |
---|---|
IWorld |
RandomSeed
The random seed to use for pseudorandom number generator. This value is determined by various block properties, the signature of the transaction containing the action to execute, and index of the action to execute, which is deterministic so that every node can replay the same action and then reproduce the same result, while neither a single block miner nor a single transaction signer can predict the result and cheat.
Declaration
int RandomSeed { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
See Also
| Improve this Doc View SourceSigner
The Signer of the Transaction that contains
the IAction to be executed. If the IAction is
not part of a Transaction, e.g.
Declaration
Address Signer { get; }
Property Value
Type | Description |
---|---|
Address |
TxId
The Id of the Transaction that contains
the IAction. If the IAction is not part of
a Transaction, e.g.
Declaration
TxId? TxId { get; }
Property Value
Type | Description |
---|---|
System.Nullable<TxId> |
Txs
A list of ITransactions that are included in a Block as the IAction to be evaluated. This information is provided only if IsPolicyAction is true, otherwise returns an empty set.
Declaration
IReadOnlyList<ITransaction> Txs { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<ITransaction> |
Methods
| Improve this Doc View SourceGasLimit()
Returns the limit gas of the current action.
Declaration
long GasLimit()
Returns
Type | Description |
---|---|
System.Int64 | The limit gas of the current action. |
GasUsed()
Returns the total gas used by the current action.
Declaration
long GasUsed()
Returns
Type | Description |
---|---|
System.Int64 | The total gas used by the current action. |
GetRandom()
Returns a newly initialized IRandom using RandomSeed as its seed value.
Declaration
IRandom GetRandom()
Returns
Type | Description |
---|---|
IRandom | A newly initialized IRandom using RandomSeed as its seed value. |
UseGas(Int64)
Consumes the specified amount of gas.
Declaration
void UseGas(long gas)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | gas | The amount of gas to consume. |