Documentation
¶
Index ¶
- type ExecuteFunc
- type ExecutionContext
- type FeeBalanceValidator
- type FeeCalculation
- type FeeCreditModule
- type FeeTxVerifier
- type GenericExecuteFunc
- type GenericValidateFunc
- type Module
- type StateInfo
- type TxExecutionContext
- func (ec *TxExecutionContext) CalculateCost() uint64
- func (ec *TxExecutionContext) CurrentRound() uint64
- func (ec *TxExecutionContext) GasAvailable() uint64
- func (ec *TxExecutionContext) GetData() []byte
- func (ec *TxExecutionContext) GetUnit(id types.UnitID, committed bool) (*state.Unit, error)
- func (ec *TxExecutionContext) SetData(data []byte)
- func (ec *TxExecutionContext) SpendGas(gas uint64) error
- func (ec *TxExecutionContext) TransactionOrder() (*types.TransactionOrder, error)
- func (ec *TxExecutionContext) TrustBase(epoch uint64) (types.RootTrustBase, error)
- type TxExecutor
- type TxExecutors
- func (h TxExecutors) Add(src TxExecutors) error
- func (h TxExecutors) Execute(txo *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error)
- func (h TxExecutors) ExecuteWithAttr(txo *types.TransactionOrder, attr any, authProof any, exeCtx ExecutionContext) (*types.ServerMetadata, error)
- func (h TxExecutors) Validate(txo *types.TransactionOrder, exeCtx ExecutionContext) (any, any, error)
- func (h TxExecutors) ValidateAndExecute(txo *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error)
- type TxHandler
- func (t *TxHandler[A, P]) ExecuteTx(txo *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error)
- func (t *TxHandler[A, P]) ExecuteTxWithAttr(txo *types.TransactionOrder, attr any, authProof any, exeCtx ExecutionContext) (*types.ServerMetadata, error)
- func (t *TxHandler[A, P]) ValidateTx(txo *types.TransactionOrder, exeCtx ExecutionContext) (any, any, error)
- type ValidateFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ExecuteFunc ¶
type ExecuteFunc func(*types.TransactionOrder, ExecutionContext) (*types.ServerMetadata, error)
type ExecutionContext ¶
type ExecutionContext interface { predicates.TxContext GetData() []byte // read data added by the GetData function SetData(data []byte) // add arbitrary data to the execution context }
ExecutionContext - provides additional context and info for tx validation and execution
type FeeBalanceValidator ¶
type FeeBalanceValidator interface {
IsCredible(exeCtx ExecutionContext, tx *types.TransactionOrder) error
}
type FeeCalculation ¶
type FeeCreditModule ¶
type FeeCreditModule interface { Module FeeCalculation FeeBalanceValidator FeeTxVerifier IsPermissionedMode() bool IsFeelessMode() bool }
type FeeTxVerifier ¶
type FeeTxVerifier interface {
IsFeeCreditTx(tx *types.TransactionOrder) bool
}
type GenericExecuteFunc ¶
type GenericExecuteFunc[A, P any] func(tx *types.TransactionOrder, attributes *A, authProof *P, exeCtx ExecutionContext) (*types.ServerMetadata, error)
type GenericValidateFunc ¶
type GenericValidateFunc[A, P any] func(tx *types.TransactionOrder, attributes *A, authProof *P, exeCtx ExecutionContext) error
type TxExecutionContext ¶
type TxExecutionContext struct {
// contains filtered or unexported fields
}
TxExecutionContext - implementation of ExecutionContext interface for generic tx handler
func NewExecutionContext ¶
func NewExecutionContext(txo *types.TransactionOrder, txSys StateInfo, f FeeCalculation, tb types.RootTrustBase, maxCost uint64) *TxExecutionContext
func (*TxExecutionContext) CalculateCost ¶
func (ec *TxExecutionContext) CalculateCost() uint64
func (*TxExecutionContext) CurrentRound ¶
func (ec *TxExecutionContext) CurrentRound() uint64
func (*TxExecutionContext) GasAvailable ¶
func (ec *TxExecutionContext) GasAvailable() uint64
func (*TxExecutionContext) GetData ¶
func (ec *TxExecutionContext) GetData() []byte
func (*TxExecutionContext) SetData ¶
func (ec *TxExecutionContext) SetData(data []byte)
func (*TxExecutionContext) SpendGas ¶
func (ec *TxExecutionContext) SpendGas(gas uint64) error
func (*TxExecutionContext) TransactionOrder ¶
func (ec *TxExecutionContext) TransactionOrder() (*types.TransactionOrder, error)
func (*TxExecutionContext) TrustBase ¶
func (ec *TxExecutionContext) TrustBase(epoch uint64) (types.RootTrustBase, error)
type TxExecutor ¶
type TxExecutor interface { ValidateTx(tx *types.TransactionOrder, exeCtx ExecutionContext) (any, any, error) ExecuteTxWithAttr(tx *types.TransactionOrder, attributes any, authProof any, exeCtx ExecutionContext) (*types.ServerMetadata, error) ExecuteTx(tx *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error) }
type TxExecutors ¶
type TxExecutors map[uint16]TxExecutor
func (TxExecutors) Execute ¶
func (h TxExecutors) Execute(txo *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error)
func (TxExecutors) ExecuteWithAttr ¶
func (h TxExecutors) ExecuteWithAttr(txo *types.TransactionOrder, attr any, authProof any, exeCtx ExecutionContext) (*types.ServerMetadata, error)
func (TxExecutors) Validate ¶
func (h TxExecutors) Validate(txo *types.TransactionOrder, exeCtx ExecutionContext) (any, any, error)
func (TxExecutors) ValidateAndExecute ¶
func (h TxExecutors) ValidateAndExecute(txo *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error)
type TxHandler ¶
type TxHandler[A any, P any] struct { Execute func(tx *types.TransactionOrder, attributes *A, authProof *P, exeCtx ExecutionContext) (*types.ServerMetadata, error) Validate func(tx *types.TransactionOrder, attributes *A, authProof *P, exeCtx ExecutionContext) error }
func NewTxHandler ¶
func (*TxHandler[A, P]) ExecuteTx ¶
func (t *TxHandler[A, P]) ExecuteTx(txo *types.TransactionOrder, exeCtx ExecutionContext) (*types.ServerMetadata, error)
func (*TxHandler[A, P]) ExecuteTxWithAttr ¶
func (t *TxHandler[A, P]) ExecuteTxWithAttr(txo *types.TransactionOrder, attr any, authProof any, exeCtx ExecutionContext) (*types.ServerMetadata, error)
func (*TxHandler[A, P]) ValidateTx ¶
type ValidateFunc ¶
type ValidateFunc func(*types.TransactionOrder, ExecutionContext) error
Click to show internal directories.
Click to hide internal directories.