config

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Nov 11, 2019 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FillGasMapWithWASMOpcodeValues

func FillGasMapWithWASMOpcodeValues(gasMap map[string]uint64, value uint64) map[string]uint64

Types

type BaseOperationCost

type BaseOperationCost struct {
	StorePerByte    uint64
	DataCopyPerByte uint64
}

type BigIntAPICost

type BigIntAPICost struct {
	BigIntNew                uint64
	BigIntByteLength         uint64
	BigIntGetBytes           uint64
	BigIntSetBytes           uint64
	BigIntIsInt64            uint64
	BigIntGetInt64           uint64
	BigIntSetInt64           uint64
	BigIntAdd                uint64
	BigIntSub                uint64
	BigIntMul                uint64
	BigIntCmp                uint64
	BigIntFinish             uint64
	BigIntStorageLoad        uint64
	BigIntStorageStore       uint64
	BigIntGetArgument        uint64
	BigIntGetCallValue       uint64
	BigIntGetExternalBalance uint64
}

type CryptoAPICost

type CryptoAPICost struct {
	SHA256    uint64
	Keccak256 uint64
}

type ElrondAPICost

type ElrondAPICost struct {
	GetOwner           uint64
	GetExternalBalance uint64
	GetBlockHash       uint64
	TransferValue      uint64
	GetArgument        uint64
	GetFunction        uint64
	GetNumArguments    uint64
	StorageStore       uint64
	StorageLoad        uint64
	GetCaller          uint64
	GetCallValue       uint64
	Log                uint64
	Finish             uint64
	SignalError        uint64
	GetBlockTimeStamp  uint64
	GetGasLeft         uint64
	Int64GetArgument   uint64
	Int64StorageStore  uint64
	Int64StorageLoad   uint64
	Int64Finish        uint64
	GetStateRootHash   uint64
	GetBlockNonce      uint64
	GetBlockEpoch      uint64
	GetBlockRound      uint64
	GetBlockRandomSeed uint64
}

type EthAPICost

type EthAPICost struct {
	UseGas              uint64
	GetAddress          uint64
	GetExternalBalance  uint64
	GetBlockHash        uint64
	Call                uint64
	CallDataCopy        uint64
	GetCallDataSize     uint64
	CallCode            uint64
	CallDelegate        uint64
	CallStatic          uint64
	StorageStore        uint64
	StorageLoad         uint64
	GetCaller           uint64
	GetCallValue        uint64
	CodeCopy            uint64
	GetCodeSize         uint64
	GetBlockCoinbase    uint64
	Create              uint64
	GetBlockDifficulty  uint64
	ExternalCodeCopy    uint64
	GetExternalCodeSize uint64
	GetGasLeft          uint64
	GetBlockGasLimit    uint64
	GetTxGasPrice       uint64
	Log                 uint64
	GetBlockNumber      uint64
	GetTxOrigin         uint64
	Finish              uint64
	Revert              uint64
	GetReturnDataSize   uint64
	ReturnDataCopy      uint64
	SelfDestruct        uint64
	GetBlockTimeStamp   uint64
}

type GasCost

type GasCost struct {
	BaseOperationCost BaseOperationCost
	BigIntAPICost     BigIntAPICost
	EthAPICost        EthAPICost
	ElrondAPICost     ElrondAPICost
	CryptoAPICost     CryptoAPICost
	WASMOpcodeCost    WASMOpcodeCost
}

func CreateGasConfig

func CreateGasConfig(gasMap map[string]uint64) (*GasCost, error)

type WASMOpcodeCost

type WASMOpcodeCost struct {
	Unreachable            uint32
	Nop                    uint32
	Block                  uint32
	Loop                   uint32
	If                     uint32
	Else                   uint32
	End                    uint32
	Br                     uint32
	BrIf                   uint32
	BrTable                uint32
	Return                 uint32
	Call                   uint32
	CallIndirect           uint32
	Drop                   uint32
	Select                 uint32
	GetLocal               uint32
	SetLocal               uint32
	TeeLocal               uint32
	GetGlobal              uint32
	SetGlobal              uint32
	I32Load                uint32
	I64Load                uint32
	F32Load                uint32
	F64Load                uint32
	I32Load8S              uint32
	I32Load8U              uint32
	I32Load16S             uint32
	I32Load16U             uint32
	I64Load8S              uint32
	I64Load8U              uint32
	I64Load16S             uint32
	I64Load16U             uint32
	I64Load32S             uint32
	I64Load32U             uint32
	I32Store               uint32
	I64Store               uint32
	F32Store               uint32
	F64Store               uint32
	I32Store8              uint32
	I32Store16             uint32
	I64Store8              uint32
	I64Store16             uint32
	I64Store32             uint32
	MemorySize             uint32
	MemoryGrow             uint32
	I32Const               uint32
	I64Const               uint32
	F32Const               uint32
	F64Const               uint32
	RefNull                uint32
	RefIsNull              uint32
	I32Eqz                 uint32
	I32Eq                  uint32
	I32Ne                  uint32
	I32LtS                 uint32
	I32LtU                 uint32
	I32GtS                 uint32
	I32GtU                 uint32
	I32LeS                 uint32
	I32LeU                 uint32
	I32GeS                 uint32
	I32GeU                 uint32
	I64Eqz                 uint32
	I64Eq                  uint32
	I64Ne                  uint32
	I64LtS                 uint32
	I64LtU                 uint32
	I64GtS                 uint32
	I64GtU                 uint32
	I64LeS                 uint32
	I64LeU                 uint32
	I64GeS                 uint32
	I64GeU                 uint32
	F32Eq                  uint32
	F32Ne                  uint32
	F32Lt                  uint32
	F32Gt                  uint32
	F32Le                  uint32
	F32Ge                  uint32
	F64Eq                  uint32
	F64Ne                  uint32
	F64Lt                  uint32
	F64Gt                  uint32
	F64Le                  uint32
	F64Ge                  uint32
	I32Clz                 uint32
	I32Ctz                 uint32
	I32Popcnt              uint32
	I32Add                 uint32
	I32Sub                 uint32
	I32Mul                 uint32
	I32DivS                uint32
	I32DivU                uint32
	I32RemS                uint32
	I32RemU                uint32
	I32And                 uint32
	I32Or                  uint32
	I32Xor                 uint32
	I32Shl                 uint32
	I32ShrS                uint32
	I32ShrU                uint32
	I32Rotl                uint32
	I32Rotr                uint32
	I64Clz                 uint32
	I64Ctz                 uint32
	I64Popcnt              uint32
	I64Add                 uint32
	I64Sub                 uint32
	I64Mul                 uint32
	I64DivS                uint32
	I64DivU                uint32
	I64RemS                uint32
	I64RemU                uint32
	I64And                 uint32
	I64Or                  uint32
	I64Xor                 uint32
	I64Shl                 uint32
	I64ShrS                uint32
	I64ShrU                uint32
	I64Rotl                uint32
	I64Rotr                uint32
	F32Abs                 uint32
	F32Neg                 uint32
	F32Ceil                uint32
	F32Floor               uint32
	F32Trunc               uint32
	F32Nearest             uint32
	F32Sqrt                uint32
	F32Add                 uint32
	F32Sub                 uint32
	F32Mul                 uint32
	F32Div                 uint32
	F32Min                 uint32
	F32Max                 uint32
	F32Copysign            uint32
	F64Abs                 uint32
	F64Neg                 uint32
	F64Ceil                uint32
	F64Floor               uint32
	F64Trunc               uint32
	F64Nearest             uint32
	F64Sqrt                uint32
	F64Add                 uint32
	F64Sub                 uint32
	F64Mul                 uint32
	F64Div                 uint32
	F64Min                 uint32
	F64Max                 uint32
	F64Copysign            uint32
	I32WrapI64             uint32
	I32TruncSF32           uint32
	I32TruncUF32           uint32
	I32TruncSF64           uint32
	I32TruncUF64           uint32
	I64ExtendSI32          uint32
	I64ExtendUI32          uint32
	I64TruncSF32           uint32
	I64TruncUF32           uint32
	I64TruncSF64           uint32
	I64TruncUF64           uint32
	F32ConvertSI32         uint32
	F32ConvertUI32         uint32
	F32ConvertSI64         uint32
	F32ConvertUI64         uint32
	F32DemoteF64           uint32
	F64ConvertSI32         uint32
	F64ConvertUI32         uint32
	F64ConvertSI64         uint32
	F64ConvertUI64         uint32
	F64PromoteF32          uint32
	I32ReinterpretF32      uint32
	I64ReinterpretF64      uint32
	F32ReinterpretI32      uint32
	F64ReinterpretI64      uint32
	I32Extend8S            uint32
	I32Extend16S           uint32
	I64Extend8S            uint32
	I64Extend16S           uint32
	I64Extend32S           uint32
	I32TruncSSatF32        uint32
	I32TruncUSatF32        uint32
	I32TruncSSatF64        uint32
	I32TruncUSatF64        uint32
	I64TruncSSatF32        uint32
	I64TruncUSatF32        uint32
	I64TruncSSatF64        uint32
	I64TruncUSatF64        uint32
	MemoryInit             uint32
	DataDrop               uint32
	MemoryCopy             uint32
	MemoryFill             uint32
	TableInit              uint32
	ElemDrop               uint32
	TableCopy              uint32
	TableGet               uint32
	TableSet               uint32
	TableGrow              uint32
	TableSize              uint32
	Wake                   uint32
	I32Wait                uint32
	I64Wait                uint32
	Fence                  uint32
	I32AtomicLoad          uint32
	I64AtomicLoad          uint32
	I32AtomicLoad8U        uint32
	I32AtomicLoad16U       uint32
	I64AtomicLoad8U        uint32
	I64AtomicLoad16U       uint32
	I64AtomicLoad32U       uint32
	I32AtomicStore         uint32
	I64AtomicStore         uint32
	I32AtomicStore8        uint32
	I32AtomicStore16       uint32
	I64AtomicStore8        uint32
	I64AtomicStore16       uint32
	I64AtomicStore32       uint32
	I32AtomicRmwAdd        uint32
	I64AtomicRmwAdd        uint32
	I32AtomicRmw8UAdd      uint32
	I32AtomicRmw16UAdd     uint32
	I64AtomicRmw8UAdd      uint32
	I64AtomicRmw16UAdd     uint32
	I64AtomicRmw32UAdd     uint32
	I32AtomicRmwSub        uint32
	I64AtomicRmwSub        uint32
	I32AtomicRmw8USub      uint32
	I32AtomicRmw16USub     uint32
	I64AtomicRmw8USub      uint32
	I64AtomicRmw16USub     uint32
	I64AtomicRmw32USub     uint32
	I32AtomicRmwAnd        uint32
	I64AtomicRmwAnd        uint32
	I32AtomicRmw8UAnd      uint32
	I32AtomicRmw16UAnd     uint32
	I64AtomicRmw8UAnd      uint32
	I64AtomicRmw16UAnd     uint32
	I64AtomicRmw32UAnd     uint32
	I32AtomicRmwOr         uint32
	I64AtomicRmwOr         uint32
	I32AtomicRmw8UOr       uint32
	I32AtomicRmw16UOr      uint32
	I64AtomicRmw8UOr       uint32
	I64AtomicRmw16UOr      uint32
	I64AtomicRmw32UOr      uint32
	I32AtomicRmwXor        uint32
	I64AtomicRmwXor        uint32
	I32AtomicRmw8UXor      uint32
	I32AtomicRmw16UXor     uint32
	I64AtomicRmw8UXor      uint32
	I64AtomicRmw16UXor     uint32
	I64AtomicRmw32UXor     uint32
	I32AtomicRmwXchg       uint32
	I64AtomicRmwXchg       uint32
	I32AtomicRmw8UXchg     uint32
	I32AtomicRmw16UXchg    uint32
	I64AtomicRmw8UXchg     uint32
	I64AtomicRmw16UXchg    uint32
	I64AtomicRmw32UXchg    uint32
	I32AtomicRmwCmpxchg    uint32
	I64AtomicRmwCmpxchg    uint32
	I32AtomicRmw8UCmpxchg  uint32
	I32AtomicRmw16UCmpxchg uint32
	I64AtomicRmw8UCmpxchg  uint32
	I64AtomicRmw16UCmpxchg uint32
	I64AtomicRmw32UCmpxchg uint32
	V128Load               uint32
	V128Store              uint32
	V128Const              uint32
	I8x16Splat             uint32
	I8x16ExtractLaneS      uint32
	I8x16ExtractLaneU      uint32
	I8x16ReplaceLane       uint32
	I16x8Splat             uint32
	I16x8ExtractLaneS      uint32
	I16x8ExtractLaneU      uint32
	I16x8ReplaceLane       uint32
	I32x4Splat             uint32
	I32x4ExtractLane       uint32
	I32x4ReplaceLane       uint32
	I64x2Splat             uint32
	I64x2ExtractLane       uint32
	I64x2ReplaceLane       uint32
	F32x4Splat             uint32
	F32x4ExtractLane       uint32
	F32x4ReplaceLane       uint32
	F64x2Splat             uint32
	F64x2ExtractLane       uint32
	F64x2ReplaceLane       uint32
	I8x16Eq                uint32
	I8x16Ne                uint32
	I8x16LtS               uint32
	I8x16LtU               uint32
	I8x16GtS               uint32
	I8x16GtU               uint32
	I8x16LeS               uint32
	I8x16LeU               uint32
	I8x16GeS               uint32
	I8x16GeU               uint32
	I16x8Eq                uint32
	I16x8Ne                uint32
	I16x8LtS               uint32
	I16x8LtU               uint32
	I16x8GtS               uint32
	I16x8GtU               uint32
	I16x8LeS               uint32
	I16x8LeU               uint32
	I16x8GeS               uint32
	I16x8GeU               uint32
	I32x4Eq                uint32
	I32x4Ne                uint32
	I32x4LtS               uint32
	I32x4LtU               uint32
	I32x4GtS               uint32
	I32x4GtU               uint32
	I32x4LeS               uint32
	I32x4LeU               uint32
	I32x4GeS               uint32
	I32x4GeU               uint32
	F32x4Eq                uint32
	F32x4Ne                uint32
	F32x4Lt                uint32
	F32x4Gt                uint32
	F32x4Le                uint32
	F32x4Ge                uint32
	F64x2Eq                uint32
	F64x2Ne                uint32
	F64x2Lt                uint32
	F64x2Gt                uint32
	F64x2Le                uint32
	F64x2Ge                uint32
	V128Not                uint32
	V128And                uint32
	V128Or                 uint32
	V128Xor                uint32
	V128Bitselect          uint32
	I8x16Neg               uint32
	I8x16AnyTrue           uint32
	I8x16AllTrue           uint32
	I8x16Shl               uint32
	I8x16ShrS              uint32
	I8x16ShrU              uint32
	I8x16Add               uint32
	I8x16AddSaturateS      uint32
	I8x16AddSaturateU      uint32
	I8x16Sub               uint32
	I8x16SubSaturateS      uint32
	I8x16SubSaturateU      uint32
	I8x16Mul               uint32
	I16x8Neg               uint32
	I16x8AnyTrue           uint32
	I16x8AllTrue           uint32
	I16x8Shl               uint32
	I16x8ShrS              uint32
	I16x8ShrU              uint32
	I16x8Add               uint32
	I16x8AddSaturateS      uint32
	I16x8AddSaturateU      uint32
	I16x8Sub               uint32
	I16x8SubSaturateS      uint32
	I16x8SubSaturateU      uint32
	I16x8Mul               uint32
	I32x4Neg               uint32
	I32x4AnyTrue           uint32
	I32x4AllTrue           uint32
	I32x4Shl               uint32
	I32x4ShrS              uint32
	I32x4ShrU              uint32
	I32x4Add               uint32
	I32x4Sub               uint32
	I32x4Mul               uint32
	I64x2Neg               uint32
	I64x2AnyTrue           uint32
	I64x2AllTrue           uint32
	I64x2Shl               uint32
	I64x2ShrS              uint32
	I64x2ShrU              uint32
	I64x2Add               uint32
	I64x2Sub               uint32
	F32x4Abs               uint32
	F32x4Neg               uint32
	F32x4Sqrt              uint32
	F32x4Add               uint32
	F32x4Sub               uint32
	F32x4Mul               uint32
	F32x4Div               uint32
	F32x4Min               uint32
	F32x4Max               uint32
	F64x2Abs               uint32
	F64x2Neg               uint32
	F64x2Sqrt              uint32
	F64x2Add               uint32
	F64x2Sub               uint32
	F64x2Mul               uint32
	F64x2Div               uint32
	F64x2Min               uint32
	F64x2Max               uint32
	I32x4TruncSF32x4Sat    uint32
	I32x4TruncUF32x4Sat    uint32
	I64x2TruncSF64x2Sat    uint32
	I64x2TruncUF64x2Sat    uint32
	F32x4ConvertSI32x4     uint32
	F32x4ConvertUI32x4     uint32
	F64x2ConvertSI64x2     uint32
	F64x2ConvertUI64x2     uint32
	V8x16Swizzle           uint32
	V8x16Shuffle           uint32
	I8x16LoadSplat         uint32
	I16x8LoadSplat         uint32
	I32x4LoadSplat         uint32
	I64x2LoadSplat         uint32
}

func (*WASMOpcodeCost) ToOpcodeCostsArray

func (opcode_costs_struct *WASMOpcodeCost) ToOpcodeCostsArray() [wasmer.OPCODE_COUNT]uint32

Jump to

Keyboard shortcuts

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