Documentation
¶
Overview ¶
Package runtime provides various service functions related to execution environment. It has similar function to Runtime class in .net framwork for Neo.
Index ¶
- func Application() byte
- func CheckWitness(hashOrKey []byte) bool
- func GasLeft() int64
- func GetCallingScriptHash() []byte
- func GetEntryScriptHash() []byte
- func GetExecutingScriptHash() []byte
- func GetInvocationCounter() int
- func GetNotifications(h []byte) [][]interface{}
- func GetScriptContainer() blockchain.Transaction
- func GetTime() int
- func GetTrigger() byte
- func Log(message string)
- func Notify(arg ...interface{})
- func System() byte
- func Verification() byte
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Application ¶
func Application() byte
Application returns the Application trigger type value to compare with GetTrigger return value.
func CheckWitness ¶
CheckWitness verifies if the given script hash (160-bit BE value in a 20 byte slice) or key (compressed serialized 33-byte form) is one of the signers of this invocation. It uses `System.Runtime.CheckWitness` syscall.
func GasLeft ¶ added in v0.90.0
func GasLeft() int64
GasLeft returns the amount of gas available for the current execution. This function uses `System.Runtime.GasLeft` syscall.
func GetCallingScriptHash ¶ added in v0.90.0
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.Runtime.GetCallingScriptHash` syscall.
func GetEntryScriptHash ¶ added in v0.90.0
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.Runtime.GetEntryScriptHash` syscall.
func GetExecutingScriptHash ¶ added in v0.90.0
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.Runtime.GetExecutingScriptHash` syscall.
func GetInvocationCounter ¶ added in v0.90.0
func GetInvocationCounter() int
GetInvocationCounter returns how many times current contract was invoked during current tx execution. This function uses `System.Runtime.GetInvocationCounter` syscall.
func GetNotifications ¶ added in v0.90.0
func GetNotifications(h []byte) [][]interface{}
GetNotifications returns notifications emitted by contract h. 'nil' literal means no filtering. It returns slice consisting of following elements: [ scripthash of notification's contract , emitted item ]. This function uses `System.Runtime.GetNotifications` syscall.
func GetScriptContainer ¶ added in v0.90.0
func GetScriptContainer() blockchain.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. This function uses `System.Runtime.GetScriptContainer` syscall.
func GetTime ¶
func GetTime() int
GetTime returns the timestamp of the most recent block. Note that when running script in test mode this would be the last accepted (persisted) block in the chain, but when running as a part of the new block the time returned is the time of this (currently being processed) block. This function uses `System.Runtime.GetTime` syscall.
func GetTrigger ¶
func GetTrigger() byte
GetTrigger returns the smart contract invocation trigger which can be either verification or application. It can be used to differentiate running contract as a part of verification process from running it as a regular application. Some interop functions (especially ones that change the state in any way) are not available when running with verification trigger. This function uses `System.Runtime.GetTrigger` syscall.
func Log ¶
func Log(message string)
Log instructs VM to log the given message. It's mostly used for debugging purposes as these messages are not saved anywhere normally and usually are only visible in the VM logs. This function uses `System.Runtime.Log` syscall.
func Notify ¶
func Notify(arg ...interface{})
Notify sends a notification (collecting all arguments in an array) to the executing environment. Unlike Log it can accept any data and resulting notification is saved in application log. It's intended to be used as a part of contract's API to external systems, these events can be monitored from outside and act upon accordingly. This function uses `System.Runtime.Notify` syscall.
func System ¶ added in v0.90.0
func System() byte
System returns the System trigger type value to compare with GetTrigger return value.
func Verification ¶
func Verification() byte
Verification returns the Verification trigger type value to compare with GetTrigger return value.
Types ¶
This section is empty.