Documentation
¶
Index ¶
- Variables
- type VMContext
- func (vmctx *VMContext) Call(targetContract coretypes.Hname, epCode coretypes.Hname, params dict.Dict, ...) (dict.Dict, error)
- func (vmctx *VMContext) Caller() coretypes.AgentID
- func (vmctx *VMContext) ChainID() coretypes.ChainID
- func (vmctx *VMContext) ChainOwnerID() coretypes.AgentID
- func (vmctx *VMContext) ContractCreator() coretypes.AgentID
- func (vmctx *VMContext) CurrentContractHname() coretypes.Hname
- func (vmctx *VMContext) CurrentContractID() coretypes.ContractID
- func (vmctx *VMContext) Debugf(format string, params ...interface{})
- func (vmctx *VMContext) DeployContract(programHash hashing.HashValue, name string, description string, ...) error
- func (vmctx *VMContext) Entropy() hashing.HashValue
- func (vmctx *VMContext) EventPublisher() vm.ContractEventPublisher
- func (vmctx *VMContext) FinalizeTransactionEssence(blockIndex uint32, stateHash hashing.HashValue, timestamp int64) (*sctransaction.Transaction, error)
- func (vmctx *VMContext) GetBalance(col balance.Color) int64
- func (vmctx *VMContext) GetIncoming() coretypes.ColoredBalances
- func (vmctx *VMContext) GetMyBalances() coretypes.ColoredBalances
- func (vmctx *VMContext) GetResult() (state.StateUpdate, dict.Dict, error)
- func (vmctx *VMContext) Infof(format string, params ...interface{})
- func (vmctx *VMContext) IsRequestContext() bool
- func (vmctx *VMContext) MyAgentID() coretypes.AgentID
- func (vmctx *VMContext) NumFreeMinted() int64
- func (vmctx *VMContext) Panicf(format string, params ...interface{})
- func (vmctx *VMContext) Params() dict.Dict
- func (vmctx *VMContext) PostRequest(par coretypes.PostRequestParams) bool
- func (vmctx *VMContext) PostRequestToSelf(reqCode coretypes.Hname, params dict.Dict) bool
- func (vmctx *VMContext) PostRequestToSelfWithDelay(entryPoint coretypes.Hname, args dict.Dict, delaySec uint32) bool
- func (vmctx *VMContext) RequestID() coretypes.RequestID
- func (vmctx *VMContext) RunTheRequest(reqRef vm.RequestRefWithFreeTokens, timestamp int64)
- func (vmctx *VMContext) State() kv.KVStore
- func (vmctx *VMContext) StoreToEventLog(contract coretypes.Hname, data []byte)
- func (vmctx *VMContext) Timestamp() int64
- func (vmctx *VMContext) TransferToAddress(targetAddr address.Address, transfer coretypes.ColoredBalances) bool
Constants ¶
This section is empty.
Variables ¶
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") )
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 ¶
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) ChainOwnerID ¶
func (*VMContext) ContractCreator ¶
func (*VMContext) CurrentContractHname ¶
func (*VMContext) CurrentContractID ¶
func (vmctx *VMContext) CurrentContractID() coretypes.ContractID
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) 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) GetIncoming ¶
func (vmctx *VMContext) GetIncoming() coretypes.ColoredBalances
func (*VMContext) GetMyBalances ¶
func (vmctx *VMContext) GetMyBalances() coretypes.ColoredBalances
func (*VMContext) IsRequestContext ¶
func (*VMContext) NumFreeMinted ¶
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 (*VMContext) PostRequestToSelfWithDelay ¶
func (*VMContext) RunTheRequest ¶
func (vmctx *VMContext) RunTheRequest(reqRef vm.RequestRefWithFreeTokens, timestamp int64)
runTheRequest: - handles request token - processes reward logic
func (*VMContext) StoreToEventLog ¶
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