Documentation
¶
Index ¶
- Constants
- Variables
- func FillGasMapBaseOperationCosts(value uint64) map[string]uint64
- func FillGasMapBaseOpsAPICosts(value, asyncCallbackGasLock uint64) map[string]uint64
- func FillGasMapBigFloatAPICosts(value uint64) map[string]uint64
- func FillGasMapBigIntAPICosts(value uint64) map[string]uint64
- func FillGasMapBuiltInCosts(value uint64) map[string]uint64
- func FillGasMapCryptoAPICosts(value uint64) map[string]uint64
- func FillGasMapEthereumAPICosts(value uint64) map[string]uint64
- func FillGasMapManagedBufferAPICosts(value uint64) map[string]uint64
- func FillGasMapWASMOpcodeValues(value uint64) map[string]uint64
- type BaseOperationCost
- type BaseOpsAPICost
- type BigFloatAPICost
- type BigIntAPICost
- type CryptoAPICost
- type EthAPICost
- type GasCost
- type GasScheduleMap
- type ManagedBufferAPICost
- type WASMOpcodeCost
Constants ¶
View Source
const GasValueForTests = 1
Variables ¶
View Source
var AsyncCallbackGasLockForTests = uint64(100_000)
Functions ¶
func FillGasMapBuiltInCosts ¶
Types ¶
type BaseOperationCost ¶
type BaseOpsAPICost ¶
type BaseOpsAPICost struct {
GetSCAddress uint64
GetOwnerAddress uint64
IsSmartContract uint64
GetShardOfAddress uint64
GetExternalBalance uint64
GetBlockHash uint64
GetOriginalTxHash uint64
TransferValue uint64
GetArgument uint64
GetFunction uint64
GetNumArguments uint64
StorageStore uint64
StorageLoad uint64
CachedStorageLoad 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
ExecuteOnSameContext uint64
ExecuteOnDestContext uint64
DelegateExecution uint64
ExecuteReadOnly uint64
AsyncCallStep uint64
AsyncCallbackGasLock uint64
CreateContract uint64
GetReturnData uint64
GetNumReturnData uint64
GetReturnDataSize uint64
CleanReturnData uint64
DeleteFromReturnData uint64
}
type BigFloatAPICost ¶
type BigFloatAPICost struct {
BigFloatNewFromParts uint64
BigFloatAdd uint64
BigFloatSub uint64
BigFloatMul uint64
BigFloatDiv uint64
BigFloatTruncate uint64
BigFloatNeg uint64
BigFloatClone uint64
BigFloatCmp uint64
BigFloatAbs uint64
BigFloatSqrt uint64
BigFloatPow uint64
BigFloatFloor uint64
BigFloatCeil uint64
BigFloatIsInt uint64
BigFloatSetBigInt uint64
BigFloatSetInt64 uint64
BigFloatGetConst uint64
}
type BigIntAPICost ¶
type BigIntAPICost struct {
BigIntNew uint64
BigIntUnsignedByteLength uint64
BigIntSignedByteLength uint64
BigIntGetUnsignedBytes uint64
BigIntGetSignedBytes uint64
BigIntSetUnsignedBytes uint64
BigIntSetSignedBytes uint64
BigIntIsInt64 uint64
BigIntGetInt64 uint64
BigIntSetInt64 uint64
BigIntAdd uint64
BigIntSub uint64
BigIntMul uint64
BigIntSqrt uint64
BigIntPow uint64
BigIntLog uint64
BigIntTDiv uint64
BigIntTMod uint64
BigIntEDiv uint64
BigIntEMod uint64
BigIntAbs uint64
BigIntNeg uint64
BigIntSign uint64
BigIntCmp uint64
BigIntNot uint64
BigIntAnd uint64
BigIntOr uint64
BigIntXor uint64
BigIntShr uint64
BigIntShl uint64
BigIntFinishUnsigned uint64
BigIntFinishSigned uint64
BigIntStorageLoadUnsigned uint64
BigIntStorageStoreUnsigned uint64
BigIntGetUnsignedArgument uint64
BigIntGetSignedArgument uint64
BigIntGetCallValue uint64
BigIntGetExternalBalance uint64
CopyPerByteForTooBig uint64
}
type CryptoAPICost ¶
type CryptoAPICost struct {
SHA256 uint64
Keccak256 uint64
Ripemd160 uint64
VerifyBLS uint64
VerifyEd25519 uint64
VerifySecp256k1 uint64
EllipticCurveNew uint64
AddECC uint64
DoubleECC uint64
IsOnCurveECC uint64
ScalarMultECC uint64
MarshalECC uint64
MarshalCompressedECC uint64
UnmarshalECC uint64
UnmarshalCompressedECC uint64
GenerateKeyECC uint64
EncodeDERSig 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
BigFloatAPICost BigFloatAPICost
EthAPICost EthAPICost
BaseOpsAPICost BaseOpsAPICost
ManagedBufferAPICost ManagedBufferAPICost
CryptoAPICost CryptoAPICost
WASMOpcodeCost WASMOpcodeCost
}
func CreateGasConfig ¶
func CreateGasConfig(gasMap GasScheduleMap) (*GasCost, error)
type GasScheduleMap ¶
GasScheduleMap (alias) is the map for gas schedule
func FillGasMap ¶
func FillGasMap(gasMap GasScheduleMap, value, asyncCallbackGasLock uint64) GasScheduleMap
func MakeGasMap ¶
func MakeGasMap(value, asyncCallbackGasLock uint64) GasScheduleMap
func MakeGasMapForTests ¶
func MakeGasMapForTests() GasScheduleMap
type ManagedBufferAPICost ¶
type ManagedBufferAPICost struct {
MBufferNew uint64
MBufferNewFromBytes uint64
MBufferGetLength uint64
MBufferGetBytes uint64
MBufferGetByteSlice uint64
MBufferCopyByteSlice uint64
MBufferSetBytes uint64
MBufferAppend uint64
MBufferAppendBytes uint64
MBufferToBigIntUnsigned uint64
MBufferToBigIntSigned uint64
MBufferFromBigIntUnsigned uint64
MBufferFromBigIntSigned uint64
MBufferToBigFloat uint64
MBufferFromBigFloat uint64
MBufferStorageStore uint64
MBufferStorageLoad uint64
MBufferGetArgument uint64
MBufferFinish uint64
MBufferSetRandom uint64
}
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
TypedSelect uint32
LocalGet uint32
LocalSet uint32
LocalTee uint32
GlobalGet uint32
GlobalSet 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
RefFunc 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
I32TruncF32S uint32
I32TruncF32U uint32
I32TruncF64S uint32
I32TruncF64U uint32
I64ExtendI32S uint32
I64ExtendI32U uint32
I64TruncF32S uint32
I64TruncF32U uint32
I64TruncF64S uint32
I64TruncF64U uint32
F32ConvertI32S uint32
F32ConvertI32U uint32
F32ConvertI64S uint32
F32ConvertI64U uint32
F32DemoteF64 uint32
F64ConvertI32S uint32
F64ConvertI32U uint32
F64ConvertI64S uint32
F64ConvertI64U uint32
F64PromoteF32 uint32
I32ReinterpretF32 uint32
I64ReinterpretF64 uint32
F32ReinterpretI32 uint32
F64ReinterpretI64 uint32
I32Extend8S uint32
I32Extend16S uint32
I64Extend8S uint32
I64Extend16S uint32
I64Extend32S uint32
I32TruncSatF32S uint32
I32TruncSatF32U uint32
I32TruncSatF64S uint32
I32TruncSatF64U uint32
I64TruncSatF32S uint32
I64TruncSatF32U uint32
I64TruncSatF64S uint32
I64TruncSatF64U uint32
MemoryInit uint32
DataDrop uint32
MemoryCopy uint32
MemoryFill uint32
TableInit uint32
ElemDrop uint32
TableCopy uint32
TableFill uint32
TableGet uint32
TableSet uint32
TableGrow uint32
TableSize uint32
AtomicNotify uint32
I32AtomicWait uint32
I64AtomicWait uint32
AtomicFence 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
I32AtomicRmw8AddU uint32
I32AtomicRmw16AddU uint32
I64AtomicRmw8AddU uint32
I64AtomicRmw16AddU uint32
I64AtomicRmw32AddU uint32
I32AtomicRmwSub uint32
I64AtomicRmwSub uint32
I32AtomicRmw8SubU uint32
I32AtomicRmw16SubU uint32
I64AtomicRmw8SubU uint32
I64AtomicRmw16SubU uint32
I64AtomicRmw32SubU uint32
I32AtomicRmwAnd uint32
I64AtomicRmwAnd uint32
I32AtomicRmw8AndU uint32
I32AtomicRmw16AndU uint32
I64AtomicRmw8AndU uint32
I64AtomicRmw16AndU uint32
I64AtomicRmw32AndU uint32
I32AtomicRmwOr uint32
I64AtomicRmwOr uint32
I32AtomicRmw8OrU uint32
I32AtomicRmw16OrU uint32
I64AtomicRmw8OrU uint32
I64AtomicRmw16OrU uint32
I64AtomicRmw32OrU uint32
I32AtomicRmwXor uint32
I64AtomicRmwXor uint32
I32AtomicRmw8XorU uint32
I32AtomicRmw16XorU uint32
I64AtomicRmw8XorU uint32
I64AtomicRmw16XorU uint32
I64AtomicRmw32XorU uint32
I32AtomicRmwXchg uint32
I64AtomicRmwXchg uint32
I32AtomicRmw8XchgU uint32
I32AtomicRmw16XchgU uint32
I64AtomicRmw8XchgU uint32
I64AtomicRmw16XchgU uint32
I64AtomicRmw32XchgU uint32
I32AtomicRmwCmpxchg uint32
I64AtomicRmwCmpxchg uint32
I32AtomicRmw8CmpxchgU uint32
I32AtomicRmw16CmpxchgU uint32
I64AtomicRmw8CmpxchgU uint32
I64AtomicRmw16CmpxchgU uint32
I64AtomicRmw32CmpxchgU 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
V128AndNot 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
I8x16MinS uint32
I8x16MinU uint32
I8x16MaxS uint32
I8x16MaxU 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
I16x8MinS uint32
I16x8MinU uint32
I16x8MaxS uint32
I16x8MaxU uint32
I32x4Neg uint32
I32x4AnyTrue uint32
I32x4AllTrue uint32
I32x4Shl uint32
I32x4ShrS uint32
I32x4ShrU uint32
I32x4Add uint32
I32x4Sub uint32
I32x4Mul uint32
I32x4MinS uint32
I32x4MinU uint32
I32x4MaxS uint32
I32x4MaxU uint32
I64x2Neg uint32
I64x2AnyTrue uint32
I64x2AllTrue uint32
I64x2Shl uint32
I64x2ShrS uint32
I64x2ShrU uint32
I64x2Add uint32
I64x2Sub uint32
I64x2Mul 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
I32x4TruncSatF32x4S uint32
I32x4TruncSatF32x4U uint32
I64x2TruncSatF64x2S uint32
I64x2TruncSatF64x2U uint32
F32x4ConvertI32x4S uint32
F32x4ConvertI32x4U uint32
F64x2ConvertI64x2S uint32
F64x2ConvertI64x2U uint32
V8x16Swizzle uint32
V8x16Shuffle uint32
V8x16LoadSplat uint32
V16x8LoadSplat uint32
V32x4LoadSplat uint32
V64x2LoadSplat uint32
I8x16NarrowI16x8S uint32
I8x16NarrowI16x8U uint32
I16x8NarrowI32x4S uint32
I16x8NarrowI32x4U uint32
I16x8WidenLowI8x16S uint32
I16x8WidenHighI8x16S uint32
I16x8WidenLowI8x16U uint32
I16x8WidenHighI8x16U uint32
I32x4WidenLowI16x8S uint32
I32x4WidenHighI16x8S uint32
I32x4WidenLowI16x8U uint32
I32x4WidenHighI16x8U uint32
I16x8Load8x8S uint32
I16x8Load8x8U uint32
I32x4Load16x4S uint32
I32x4Load16x4U uint32
I64x2Load32x2S uint32
I64x2Load32x2U uint32
I8x16RoundingAverageU uint32
I16x8RoundingAverageU uint32
LocalAllocate uint32
LocalsUnmetered uint32
MaxMemoryGrow uint32
MaxMemoryGrowDelta uint32
}
func (*WASMOpcodeCost) ToOpcodeCostsArray ¶
func (opcode_costs_struct *WASMOpcodeCost) ToOpcodeCostsArray() [wasmer.OpcodeCount]uint32
Click to show internal directories.
Click to hide internal directories.