vm

package
v1.2.16 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2021 License: GPL-3.0 Imports: 66 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AccountExists

func AccountExists(accnts state.AccountsAdapter, addressBytes []byte) bool

AccountExists -

func ComputeExpectedBalance

func ComputeExpectedBalance(
	existing *big.Int,
	transferred *big.Int,
	gasLimit uint64,
	gasPrice uint64,
) *big.Int

ComputeExpectedBalance -

func ComputeGasLimit added in v1.1.32

func ComputeGasLimit(gasSchedule map[string]map[string]uint64, testContext *VMTestContext, tx *dataTx.Transaction) uint64

ComputeGasLimit -

func CreateAccount

func CreateAccount(accnts state.AccountsAdapter, pubKey []byte, nonce uint64, balance *big.Int) ([]byte, error)

CreateAccount -

func CreateDeployTx

func CreateDeployTx(
	senderAddressBytes []byte,
	senderNonce uint64,
	value *big.Int,
	gasPrice uint64,
	gasLimit uint64,
	scCodeAndVMType string,
) *dataTransaction.Transaction

CreateDeployTx -

func CreateEmptyAddress

func CreateEmptyAddress() []byte

CreateEmptyAddress -

func CreateInMemoryShardAccountsDB

func CreateInMemoryShardAccountsDB() *state.AccountsDB

CreateInMemoryShardAccountsDB -

func CreateMemUnit

func CreateMemUnit() storage.Storer

CreateMemUnit -

func CreateOneSCExecutorMockVM

func CreateOneSCExecutorMockVM(accnts state.AccountsAdapter) vmcommon.VMExecutionHandler

CreateOneSCExecutorMockVM -

func CreatePreparedTxProcessorAndAccountsWithMockedVM

func CreatePreparedTxProcessorAndAccountsWithMockedVM(
	vmOpGas uint64,
	senderNonce uint64,
	senderAddressBytes []byte,
	senderBalance *big.Int,
	argEnableEpoch ArgEnableEpoch,
	arwenChangeLocker process.Locker,
) (process.TransactionProcessor, state.AccountsAdapter, error)

CreatePreparedTxProcessorAndAccountsWithMockedVM -

func CreateTestIndexer added in v1.1.22

func CreateTestIndexer(
	t testing.TB,
	coordinator sharding.Coordinator,
	economicsDataHandler process.EconomicsDataHandler,
) *testIndexer

CreateTestIndexer -

func CreateTransaction added in v1.1.15

func CreateTransaction(
	nonce uint64,
	value *big.Int,
	sndAddress []byte,
	rcvAddress []byte,
	gasprice uint64,
	gasLimit uint64,
	data []byte,
) *dataTransaction.Transaction

CreateTransaction -

func CreateTransferTokenTx

func CreateTransferTokenTx(
	nonce uint64,
	functionName string,
	value *big.Int,
	scAddrress []byte,
	sndAddress []byte,
	rcvAddress []byte,
) *dataTransaction.Transaction

CreateTransferTokenTx -

func CreateTx

func CreateTx(
	senderAddressBytes []byte,
	receiverAddressBytes []byte,
	senderNonce uint64,
	value *big.Int,
	gasPrice uint64,
	gasLimit uint64,
	scCodeOrFunc string,
) *dataTransaction.Transaction

CreateTx -

func CreateTxProcessorWithOneSCExecutorMockVM

func CreateTxProcessorWithOneSCExecutorMockVM(
	accnts state.AccountsAdapter,
	opGas uint64,
	argEnableEpoch ArgEnableEpoch,
	arwenChangeLocker process.Locker,
) (process.TransactionProcessor, error)

CreateTxProcessorWithOneSCExecutorMockVM -

func CreateTxProcessorWithOneSCExecutorWithVMs

CreateTxProcessorWithOneSCExecutorWithVMs -

func CreateVMAndBlockchainHookAndDataPool added in v1.2.4

func CreateVMAndBlockchainHookAndDataPool(
	accnts state.AccountsAdapter,
	gasSchedule map[string]map[string]uint64,
	vmConfig *config.VirtualMachineConfig,
	shardCoordinator sharding.Coordinator,
	arwenChangeLocker process.Locker,
) (process.VirtualMachinesContainer, *hooks.BlockChainHookImpl, dataRetriever.PoolsHolder)

CreateVMAndBlockchainHookAndDataPool -

func CreateVMAndBlockchainHookMeta added in v1.1.34

func CreateVMAndBlockchainHookMeta(
	accnts state.AccountsAdapter,
	gasSchedule map[string]map[string]uint64,
	shardCoordinator sharding.Coordinator,
	arg ArgEnableEpoch,
) (process.VirtualMachinesContainer, *hooks.BlockChainHookImpl)

CreateVMAndBlockchainHookMeta -

func GetIntValueFromSC

func GetIntValueFromSC(
	gasSchedule map[string]map[string]uint64,
	accnts state.AccountsAdapter,
	scAddressBytes []byte,
	funcName string,
	args ...[]byte,
) *big.Int

GetIntValueFromSC -

func GetNodeIndex added in v1.1.15

GetNodeIndex -

func GetVmOutput added in v1.1.22

func GetVmOutput(gasSchedule map[string]map[string]uint64, accnts state.AccountsAdapter, scAddressBytes []byte, funcName string, args ...[]byte) *vmcommon.VMOutput

GetVmOutput -

func TestAccount

func TestAccount(
	t *testing.T,
	accnts state.AccountsAdapter,
	senderAddressBytes []byte,
	expectedNonce uint64,
	expectedBalance *big.Int,
) *big.Int

TestAccount -

func TestDeployedContractContents

func TestDeployedContractContents(
	t *testing.T,
	destinationAddressBytes []byte,
	accnts state.AccountsAdapter,
	requiredBalance *big.Int,
	scCode string,
	dataValues map[string]*big.Int,
)

TestDeployedContractContents -

Types

type ArgEnableEpoch added in v1.1.16

type ArgEnableEpoch struct {
	PenalizedTooMuchGasEnableEpoch uint32
	BuiltinEnableEpoch             uint32
	DeployEnableEpoch              uint32
	MetaProtectionEnableEpoch      uint32
	RelayedTxEnableEpoch           uint32
	UnbondTokensV2EnableEpoch      uint32
}

ArgEnableEpoch will specify the enable epoch values for certain flags

type VMTestAccount added in v1.2.1

type VMTestAccount struct {
	Balance      *big.Int
	Address      []byte
	Nonce        uint64
	TokenBalance *big.Int
}

VMTestAccount -

type VMTestContext added in v0.0.5

type VMTestContext struct {
	TxProcessor      process.TransactionProcessor
	ScProcessor      *smartContract.TestScProcessor
	Accounts         state.AccountsAdapter
	BlockchainHook   vmcommon.BlockchainHook
	VMContainer      process.VirtualMachinesContainer
	TxFeeHandler     process.TransactionFeeHandler
	ShardCoordinator sharding.Coordinator
	ScForwarder      process.IntermediateTransactionHandler
	EconomicsData    process.EconomicsDataHandler
	Marshalizer      marshal.Marshalizer
	GasSchedule      map[string]map[string]uint64
	VMConfiguration  *config.VirtualMachineConfig
	EpochNotifier    process.EpochNotifier
	SCQueryService   *smartContract.SCQueryService

	Alice         VMTestAccount
	Bob           VMTestAccount
	ContractOwner VMTestAccount
	Contract      VMTestAccount

	TxCostHandler external.TransactionCostHandler
}

VMTestContext -

func CreatePreparedTxProcessorAndAccountsWithVMs

func CreatePreparedTxProcessorAndAccountsWithVMs(
	senderNonce uint64,
	senderAddressBytes []byte,
	senderBalance *big.Int,
	argEnableEpoch ArgEnableEpoch,
) (*VMTestContext, error)

CreatePreparedTxProcessorAndAccountsWithVMs -

func CreatePreparedTxProcessorWithVMs added in v1.1.15

func CreatePreparedTxProcessorWithVMs(argEnableEpoch ArgEnableEpoch) (*VMTestContext, error)

CreatePreparedTxProcessorWithVMs -

func CreatePreparedTxProcessorWithVMsMultiShard added in v1.1.15

func CreatePreparedTxProcessorWithVMsMultiShard(selfShardID uint32, argEnableEpoch ArgEnableEpoch) (*VMTestContext, error)

CreatePreparedTxProcessorWithVMsMultiShard -

func CreatePreparedTxProcessorWithVMsWithShardCoordinator added in v1.1.66

func CreatePreparedTxProcessorWithVMsWithShardCoordinator(argEnableEpoch ArgEnableEpoch, shardCoordinator sharding.Coordinator) (*VMTestContext, error)

CreatePreparedTxProcessorWithVMsWithShardCoordinator -

func CreateTxProcessorArwenVMWithGasSchedule

func CreateTxProcessorArwenVMWithGasSchedule(
	senderNonce uint64,
	senderAddressBytes []byte,
	senderBalance *big.Int,
	gasSchedule map[string]map[string]uint64,
	argEnableEpoch ArgEnableEpoch,
) (*VMTestContext, error)

CreateTxProcessorArwenVMWithGasSchedule -

func CreateTxProcessorArwenWithVMConfig added in v1.2.1

func CreateTxProcessorArwenWithVMConfig(
	argEnableEpoch ArgEnableEpoch,
	vmConfig *config.VirtualMachineConfig,
	gasSchedule map[string]map[string]uint64,
) (*VMTestContext, error)

CreateTxProcessorArwenWithVMConfig -

func (*VMTestContext) Close added in v0.0.5

func (vmTestContext *VMTestContext) Close()

Close -

func (*VMTestContext) CreateAccount added in v1.2.1

func (vmTestContext *VMTestContext) CreateAccount(account *VMTestAccount)

CreateAccount -

func (*VMTestContext) CreateBlockStarted added in v1.1.25

func (vmTestContext *VMTestContext) CreateBlockStarted()

CreateBlockStarted -

func (*VMTestContext) CreateTransaction added in v1.2.1

func (vmTestContext *VMTestContext) CreateTransaction(
	sender *VMTestAccount,
	receiver *VMTestAccount,
	value *big.Int,
	gasprice uint64,
	gasLimit uint64,
	data []byte,
) *dataTransaction.Transaction

CreateTransaction -

func (*VMTestContext) CreateTransferTokenTx added in v1.2.1

func (vmTestContext *VMTestContext) CreateTransferTokenTx(
	sender *VMTestAccount,
	receiver *VMTestAccount,
	value *big.Int,
	functionName string,
) *dataTransaction.Transaction

CreateTransferTokenTx -

func (*VMTestContext) GetGasRemaining added in v1.1.12

func (vmTestContext *VMTestContext) GetGasRemaining() uint64

GetGasRemaining -

func (*VMTestContext) GetIntValueFromSCWithTransientVM added in v1.2.1

func (vmTestContext *VMTestContext) GetIntValueFromSCWithTransientVM(funcName string, args ...[]byte) *big.Int

GetIntValueFromSCWithTransientVM -

func (*VMTestContext) GetIntermediateTransactions added in v1.1.16

func (vmTestContext *VMTestContext) GetIntermediateTransactions(t *testing.T) []data.TransactionHandler

GetIntermediateTransactions -

func (*VMTestContext) GetLatestError added in v1.0.103

func (vmTestContext *VMTestContext) GetLatestError() error

GetLatestError -

func (*VMTestContext) GetVMOutputWithTransientVM added in v1.2.1

func (vmTestContext *VMTestContext) GetVMOutputWithTransientVM(funcName string, args ...[]byte) *vmcommon.VMOutput

GetVMOutputWithTransientVM -

Directories

Path Synopsis
txsFee

Jump to

Keyboard shortcuts

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