vmcontext

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2021 License: Apache-2.0, BSD-2-Clause Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrContractNotFound   = errors.New("contract not found")
	ErrEntryPointNotFound = errors.New("entry point not found")
	ErrProcessorNotFound  = errors.New("VM not found. Internal error")
	ErrNotEnoughFees      = errors.New("not enough fees")
	ErrWrongRequestToken  = errors.New("wrong request token")
)
View Source
var (
	NewSandbox     func(vmctx *VMContext) coretypes.Sandbox
	NewSandboxView func(vmctx *VMContext) coretypes.SandboxView
)

Functions

This section is empty.

Types

type VMContext

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

VMContext represents state of the chain during one run of the VM while processing a batch of requests. VMContext object mutates with each request in the bathc. The VMContext is created from immutable vm.VMTask object and UTXO state of the chain address contained in the statetxbuilder.Builder

func NewVMContext

func NewVMContext(task *vm.VMTask, txb *statetxbuilder.Builder) (*VMContext, error)

NewVMContext a constructor

func (*VMContext) Call

func (vmctx *VMContext) Call(targetContract coretypes.Hname, epCode coretypes.Hname, params dict.Dict, transfer coretypes.ColoredBalances) (dict.Dict, error)

Call

func (*VMContext) Caller

func (vmctx *VMContext) Caller() coretypes.AgentID

func (*VMContext) ChainID

func (vmctx *VMContext) ChainID() coretypes.ChainID

func (*VMContext) ChainOwnerID

func (vmctx *VMContext) ChainOwnerID() coretypes.AgentID

func (*VMContext) ContractCreator

func (vmctx *VMContext) ContractCreator() coretypes.AgentID

func (*VMContext) CurrentContractHname

func (vmctx *VMContext) CurrentContractHname() coretypes.Hname

func (*VMContext) CurrentContractID

func (vmctx *VMContext) CurrentContractID() coretypes.ContractID

func (*VMContext) Debugf

func (vmctx *VMContext) Debugf(format string, params ...interface{})

func (*VMContext) DeployContract

func (vmctx *VMContext) DeployContract(programHash hashing.HashValue, name string, description string, initParams dict.Dict) error

DeployContract deploys contract by its program hash - if called from 'root' contract only loads VM from binary - otherwise calls 'root' contract 'DeployContract' entry point to do the job.

func (*VMContext) Entropy

func (vmctx *VMContext) Entropy() hashing.HashValue

func (*VMContext) EventPublisher

func (vmctx *VMContext) EventPublisher() vm.ContractEventPublisher

func (*VMContext) FinalizeTransactionEssence

func (vmctx *VMContext) FinalizeTransactionEssence(blockIndex uint32, stateHash hashing.HashValue, timestamp int64) (*sctransaction.Transaction, error)

func (*VMContext) GetBalance

func (vmctx *VMContext) GetBalance(col balance.Color) int64

func (*VMContext) GetIncoming

func (vmctx *VMContext) GetIncoming() coretypes.ColoredBalances

func (*VMContext) GetMyBalances

func (vmctx *VMContext) GetMyBalances() coretypes.ColoredBalances

func (*VMContext) GetResult

func (vmctx *VMContext) GetResult() (state.StateUpdate, dict.Dict, error)

func (*VMContext) Infof

func (vmctx *VMContext) Infof(format string, params ...interface{})

func (*VMContext) IsRequestContext

func (vmctx *VMContext) IsRequestContext() bool

func (*VMContext) MyAgentID

func (vmctx *VMContext) MyAgentID() coretypes.AgentID

func (*VMContext) NumFreeMinted

func (vmctx *VMContext) NumFreeMinted() int64

func (*VMContext) Panicf

func (vmctx *VMContext) Panicf(format string, params ...interface{})

func (*VMContext) Params

func (vmctx *VMContext) Params() dict.Dict

func (*VMContext) PostRequest

func (vmctx *VMContext) PostRequest(par coretypes.PostRequestParams) bool

PostRequest creates a request section in the transaction with specified parameters The transfer not include 1 iota for the request token but includes node fee, if eny

func (*VMContext) PostRequestToSelf

func (vmctx *VMContext) PostRequestToSelf(reqCode coretypes.Hname, params dict.Dict) bool

func (*VMContext) PostRequestToSelfWithDelay

func (vmctx *VMContext) PostRequestToSelfWithDelay(entryPoint coretypes.Hname, args dict.Dict, delaySec uint32) bool

func (*VMContext) RequestID

func (vmctx *VMContext) RequestID() coretypes.RequestID

func (*VMContext) RunTheRequest

func (vmctx *VMContext) RunTheRequest(reqRef vm.RequestRefWithFreeTokens, timestamp int64)

runTheRequest: - handles request token - processes reward logic

func (*VMContext) State

func (vmctx *VMContext) State() kv.KVStore

func (*VMContext) StoreToEventLog

func (vmctx *VMContext) StoreToEventLog(contract coretypes.Hname, data []byte)

func (*VMContext) Timestamp

func (vmctx *VMContext) Timestamp() int64

func (*VMContext) TransferToAddress

func (vmctx *VMContext) TransferToAddress(targetAddr address.Address, transfer coretypes.ColoredBalances) bool

TransferToAddress includes output of colored tokens into the transaction i.e. it is a transfer of tokens from chain to layer 1 ledger

Jump to

Keyboard shortcuts

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