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 SourceBlockAction
Whether this action is executed as a block action. false if it belongs to a transaction.
Declaration
[Pure]
bool BlockAction { get; }
Property Value
Type | Description |
---|---|
Boolean |
BlockIndex
Declaration
[Pure]
long BlockIndex { get; }
Property Value
Type | Description |
---|---|
Int64 |
BlockProtocolVersion
The ProtocolVersion of the Block that contains the IAction.
Declaration
[Pure]
int BlockProtocolVersion { get; }
Property Value
Type | Description |
---|---|
Int32 |
Miner
Declaration
[Pure]
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 IAccount instances can be returned by Execute(IActionContext) method.
Declaration
[Pure]
IAccount PreviousState { get; }
Property Value
Type | Description |
---|---|
IAccount |
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 |
---|---|
Int32 |
See Also
| Improve this Doc View SourceRehearsal
Whether an IAction is being executed during “rehearsal mode”, that there is nothing in PreviousState.
Declaration
[Pure]
bool Rehearsal { get; }
Property Value
Type | Description |
---|---|
Boolean |
Signer
The Signer of the Transaction that contains
the IAction to be executed. If the IAction is
not part of a Transaction, e.g.
Declaration
[Pure]
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
[Pure]
TxId? TxId { get; }
Property Value
Type | Description |
---|---|
Nullable<TxId> |
Methods
| Improve this Doc View SourceGasLimit()
Returns the limit gas of the current action.
Declaration
[Pure]
long GasLimit()
Returns
Type | Description |
---|---|
Int64 | The limit gas of the current action. |
GasUsed()
Returns the total gas used by the current action.
Declaration
[Pure]
long GasUsed()
Returns
Type | Description |
---|---|
Int64 | The total gas used by the current action. |
GetRandom()
Returns a newly initialized IRandom using RandomSeed as its seed value.
Declaration
[Pure]
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 |
---|---|---|
Int64 | gas | The amount of gas to consume. |