engine

package
v0.78.4-pre Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2021 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package engine provides access to VM execution metadata and allows to make contract calls. It's roughly similar in function to ExecutionEngine class in the Neo .net framework.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppCall

func AppCall(scriptHash []byte, args ...interface{}) interface{}

AppCall executes previously deployed blockchain contract with specified hash (160 bit in BE form represented as 20-byte slice) using provided arguments. It returns whatever this contract returns. Even though this function accepts a slice for scriptHash you can only use it for contracts known at compile time, because there is a significant difference between static and dynamic calls in Neo (contracts should have a special property declared and paid for to be able to use dynamic calls). This function uses `APPCALL` opcode.

func DynAppCall added in v0.75.0

func DynAppCall(scriptHash []byte, args ...interface{}) interface{}

DynAppCall executes previously deployed blockchain contract with specified hash (160 bit in BE form represented as 20-byte slice) using provided arguments. It returns whatever this contract returns. It differs from AppCall in that you can use it for truly dynamic scriptHash values, but at the same time using it requires HasDynamicInvoke property set for a contract doing this call. This function uses `APPCALL` opcode.

func GetCallingScriptHash

func GetCallingScriptHash() []byte

GetCallingScriptHash returns script hash (160 bit in BE form represented as 20-byte slice) of the contract that started the execution of the currently running context (caller of current contract or function), so it's one level above the GetExecutingScriptHash in the call stack. It uses `System.ExecutionEngine.GetCallingScriptHash` syscall.

func GetEntryScriptHash

func GetEntryScriptHash() []byte

GetEntryScriptHash returns script hash (160 bit in BE form represented as 20-byte slice) of the contract that initially started current execution (this is a script that is contained in a transaction returned by GetScriptContainer) execution from the start. This function uses `System.ExecutionEngine.GetEntryScriptHash` syscall.

func GetExecutingScriptHash

func GetExecutingScriptHash() []byte

GetExecutingScriptHash returns script hash (160 bit in BE form represented as 20-byte slice) of the contract that is currently being executed. Any AppCall can change the value returned by this function if it calls a different contract. This function uses `System.ExecutionEngine.GetExecutingScriptHash` syscall.

func GetScriptContainer

func GetScriptContainer() transaction.Transaction

GetScriptContainer returns the transaction that initially triggered current execution context. It never changes in a single execution, no matter how deep this execution goes. See `transaction` package for details on how to use the returned value. This function uses `System.ExecutionEngine.GetScriptContainer` syscall.

Types

This section is empty.

Jump to

Keyboard shortcuts

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