hostCore

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2024 License: GPL-3.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SCDeployFlag defines the flag that activates the sc deploy
	SCDeployFlag core.EnableEpochFlag = "SCDeployFlag"
	// BuiltInFunctionsFlag defines the flag that activates the builtin functions
	BuiltInFunctionsFlag core.EnableEpochFlag = "BuiltInFunctionsFlag"
	// RepairCallbackFlag defines the flag that activates the repair callback fix
	RepairCallbackFlag core.EnableEpochFlag = "RepairCallbackFlag"
	// AheadOfTimeGasUsageFlag defines the flag that activates the ahead of time gas usage fix
	AheadOfTimeGasUsageFlag core.EnableEpochFlag = "AheadOfTimeGasUsageFlag"
)
View Source
const AddressSize = 32

AddressSize is the size of an account address, in bytes.

Variables

View Source
var MaximumWasmerInstanceCount = uint64(10)

MaximumWasmerInstanceCount represents the maximum number of Wasmer instances that can be active at the same time

View Source
var SCAddressPrefix = []byte("\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f")

SCAddressPrefix is the prefix of any smart contract address used for testing.

Functions

func AddFinishData

func AddFinishData(vmOutput *vmcommon.VMOutput, data []byte)

AddFinishData appends the provided []byte to the ReturnData of the given vmOutput

func AddNewOutputAccount

func AddNewOutputAccount(vmOutput *vmcommon.VMOutput, sender []byte, address []byte, balanceDelta int64, data []byte) *vmcommon.OutputAccount

AddNewOutputAccount creates a new vmcommon.OutputAccount from the provided arguments and adds it to OutputAccounts of the provided vmOutput

func AddTestSmartContractToWorld

func AddTestSmartContractToWorld(world *worldmock.MockWorld, identifier string, code []byte) *worldmock.Account

AddTestSmartContractToWorld directly deploys the provided code into the given MockWorld under a SC address built with the given identifier.

func BuildSCModule

func BuildSCModule(scName string, prefixToTestSCs string)

BuildSCModule invokes moapy to build the contract into a WASM module

func DefaultTestContractCallInput

func DefaultTestContractCallInput() *vmcommon.ContractCallInput

DefaultTestContractCallInput creates a vmcommon.ContractCallInput struct with default values.

func DefaultTestContractCreateInput

func DefaultTestContractCreateInput() *vmcommon.ContractCreateInput

DefaultTestContractCreateInput creates a vmcommon.ContractCreateInput struct with default values.

func DefaultTestVMForCallSigSegv

func DefaultTestVMForCallSigSegv(tb testing.TB, code []byte, balance *big.Int, passthrough bool) (*vmHost, *contextmock.BlockchainHookStub)

func GetSCCode

func GetSCCode(fileName string) []byte

GetSCCode retrieves the bytecode of a WASM module from a file

func GetTestSCCode

func GetTestSCCode(scName string, prefixToTestSCs string) []byte

GetTestSCCode retrieves the bytecode of a WASM testing contract

func GetTestSCCodeModule

func GetTestSCCodeModule(scName string, moduleName string, prefixToTestSCs string) []byte

GetTestSCCodeModule retrieves the bytecode of a WASM testing contract, given a specific name of the WASM module

func LoadGasScheduleConfig

func LoadGasScheduleConfig(filepath string) (config.GasScheduleMap, error)

LoadGasScheduleConfig parses and prepares a gas schedule read from file.

func LoadTomlFileToMap

func LoadTomlFileToMap(relativePath string) (map[string]interface{}, error)

LoadTomlFileToMap opens and decodes a toml file as a map[string]interface{}

func MakeTestSCAddress

func MakeTestSCAddress(identifier string) []byte

MakeTestSCAddress generates a new smart contract address to be used for testing based on the given identifier.

func MakeVMOutput

func MakeVMOutput() *vmcommon.VMOutput

MakeVMOutput creates a vmcommon.VMOutput struct with default values

func MakeVMOutputError

func MakeVMOutputError() *vmcommon.VMOutput

MakeVMOutputError creates a vmcommon.VMOutput struct with default values for errors

func NewVMHost

func NewVMHost(
	blockChainHook vmcommon.BlockchainHook,
	hostParameters *vmhost.VMHostParameters,
) (*vmHost, error)

NewVMHost creates a new VM vmHost

func OpenFile

func OpenFile(relativePath string) (*os.File, error)

OpenFile method opens the file from given path - does not close the file

func SetStorageUpdate

func SetStorageUpdate(account *vmcommon.OutputAccount, key []byte, data []byte)

SetStorageUpdate sets a storage update to the provided vmcommon.OutputAccount

func SetStorageUpdateStrings

func SetStorageUpdateStrings(account *vmcommon.OutputAccount, key string, data string)

SetStorageUpdateStrings sets a storage update to the provided vmcommon.OutputAccount, from string arguments

func TryCatch

func TryCatch(try TryFunction, catch CatchFunction, catchFallbackMessage string)

TryCatch simulates a try/catch block using golang's recover() functionality

Types

type CatchFunction

type CatchFunction func(error)

CatchFunction corresponds to the catch() part of a try / catch block

type TryFunction

type TryFunction func()

TryFunction corresponds to the try() part of a try / catch block

Jump to

Keyboard shortcuts

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