smartcontract

package
v0.0.0-...-e58dc6b Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2018 License: LGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_EXECUTE_ENGINE = 1024
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Time   uint32              // current block timestamp
	Height uint32              // current block height
	Tx     *ctypes.Transaction // current transaction
}

Config describe smart contract need parameters configuration

type SmartContract

type SmartContract struct {
	Contexts      []*context.Context  // all execute smart contract context
	CloneCache    *storage.CloneCache // state cache
	Store         store.LedgerStore   // ledger store
	Config        *Config
	Notifications []*event.NotifyEventInfo // all execute smart contract event notify info
	Gas           uint64
	ExecStep      int
}

SmartContract describe smart contract execute engine

func (*SmartContract) CallingContext

func (this *SmartContract) CallingContext() *context.Context

CallingContext return smart contract caller context

func (*SmartContract) CheckExecStep

func (this *SmartContract) CheckExecStep() bool

func (*SmartContract) CheckUseGas

func (this *SmartContract) CheckUseGas(gas uint64) bool

func (*SmartContract) CheckWitness

func (this *SmartContract) CheckWitness(address common.Address) bool

CheckWitness check whether authorization correct If address is wallet address, check whether in the signature addressed list Else check whether address is calling contract address Param address: wallet address or contract address

func (*SmartContract) CurrentContext

func (this *SmartContract) CurrentContext() *context.Context

CurrentContext return smart contract current context

func (*SmartContract) EntryContext

func (this *SmartContract) EntryContext() *context.Context

EntryContext return smart contract entry entrance context

func (*SmartContract) NewExecuteEngine

func (this *SmartContract) NewExecuteEngine(code []byte) (context.Engine, error)

Execute is smart contract execute manager According different vm type to launch different service

func (*SmartContract) NewNativeService

func (this *SmartContract) NewNativeService() (*native.NativeService, error)

func (*SmartContract) PopContext

func (this *SmartContract) PopContext()

PopContext pop smart contract current context

func (*SmartContract) PushContext

func (this *SmartContract) PushContext(context *context.Context)

PushContext push current context to smart contract

func (*SmartContract) PushNotifications

func (this *SmartContract) PushNotifications(notifications []*event.NotifyEventInfo)

PushNotifications push smart contract event info

Jump to

Keyboard shortcuts

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