 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
const ( DefaultLogTimeThreshold = 1 * time.Second DefaultExecutionTimeLimit = 10 * time.Second DefaultMaxErrorMessageSize = 1000 // 1000 chars )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EntropyProviderPerBlock ¶ added in v0.32.0
type EntropyProviderPerBlock interface {
	// AtBlockID returns an entropy provider at the given block ID.
	AtBlockID(blockID flow.Identifier) environment.EntropyProvider
}
    EntropyProviderPerBlock is an abstraction for entropy providers that can be used in `QueryExecutor`.
`EntropyProvider` is defined in `fvm/environment` and abstracts the distributed random source used by the protocol.
For a full-protocol node implementation , `EntropyProvider` is implemented by the protocol `Snapshot`, while `EntropyProviderPerBlock` is implemented by the protocol `State`. For nodes answering script queries that do not participate in the protocol, `EntropyProvider` and `EntropyProviderPerBlock` can be implemented by other components that provide the source of randomness for each block.
func NewProtocolStateWrapper ¶ added in v0.32.0
func NewProtocolStateWrapper(s protocol.State) EntropyProviderPerBlock
NewProtocolStateWrapper wraps a protocol.State input as an `EntropyProviderPerBlock`
type Executor ¶
type Executor interface {
	ExecuteScript(
		ctx context.Context,
		script []byte,
		arguments [][]byte,
		blockHeader *flow.Header,
		snapshot snapshot.StorageSnapshot,
	) (
		[]byte,
		error,
	)
	GetAccount(
		ctx context.Context,
		addr flow.Address,
		header *flow.Header,
		snapshot snapshot.StorageSnapshot,
	) (
		*flow.Account,
		error,
	)
}
    type QueryConfig ¶
type QueryConfig struct {
	LogTimeThreshold    time.Duration
	ExecutionTimeLimit  time.Duration
	ComputationLimit    uint64
	MaxErrorMessageSize int
}
    func NewDefaultConfig ¶
func NewDefaultConfig() QueryConfig
type QueryExecutor ¶
type QueryExecutor struct {
	// contains filtered or unexported fields
}
    func NewQueryExecutor ¶
func NewQueryExecutor( config QueryConfig, logger zerolog.Logger, metrics module.ExecutionMetrics, vm fvm.VM, vmCtx fvm.Context, derivedChainData *derived.DerivedChainData, entropyPerBlock EntropyProviderPerBlock, ) *QueryExecutor