types

package
v1.0.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2024 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

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 FeeCalculation interface {
	BuyGas(tema uint64) uint64
	CalculateCost(spentGas uint64) uint64
}

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 Module

type Module interface {
	TxHandlers() map[uint16]TxExecutor
}

type StateInfo

type StateInfo interface {
	GetUnit(id types.UnitID, committed bool) (*state.Unit, error)
	CurrentRound() uint64
}

type TxExecutionContext

type TxExecutionContext struct {
	// contains filtered or unexported fields
}

TxExecutionContext - implementation of ExecutionContext interface for generic tx handler

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) GetUnit

func (ec *TxExecutionContext) GetUnit(id types.UnitID, committed bool) (*state.Unit, error)

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) Add

func (h TxExecutors) Add(src TxExecutors) error

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 NewTxHandler[A, P any](v GenericValidateFunc[A, P], e GenericExecuteFunc[A, P]) *TxHandler[A, P]

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

func (t *TxHandler[A, P]) ValidateTx(txo *types.TransactionOrder, exeCtx ExecutionContext) (any, any, error)

type ValidateFunc

type ValidateFunc func(*types.TransactionOrder, ExecutionContext) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL