Documentation ¶
Overview ¶
Package config contains structures that configure the VM
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 FillGasMapDynamicStorageLoad() 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 DynamicStorageLoadCostCoefficients
- type DynamicStorageLoadUnsigned
- type GasCost
- type GasScheduleMap
- type ManagedBufferAPICost
- type ManagedMapAPICost
Constants ¶
const GasValueForTests = 1
GasValueForTests defines the gas value for tests
Variables ¶
var AsyncCallbackGasLockForTests = uint64(100_000)
AsyncCallbackGasLockForTests defines the gas lock for tests
Functions ¶
func FillGasMapBaseOperationCosts ¶
FillGasMapBaseOperationCosts fills the base operation costs
func FillGasMapBaseOpsAPICosts ¶
FillGasMapBaseOpsAPICosts fills the API calls costs
func FillGasMapBigFloatAPICosts ¶
FillGasMapBigFloatAPICosts fills the big floats costs
func FillGasMapBigIntAPICosts ¶
FillGasMapBigIntAPICosts fills the big int costs
func FillGasMapBuiltInCosts ¶
FillGasMapBuiltInCosts fills the builtin costs
func FillGasMapCryptoAPICosts ¶
FillGasMapCryptoAPICosts fills the crypto costs
func FillGasMapDynamicStorageLoad ¶
FillGasMapDynamicStorageLoad populates the gas map with the coefficients needed for dynamic storage load
func FillGasMapEthereumAPICosts ¶
FillGasMapEthereumAPICosts is needed for EthAPICost, which is needed on node for VM tests < 1.5
func FillGasMapManagedBufferAPICosts ¶
FillGasMapManagedBufferAPICosts fills the managed buffer costs
func FillGasMapWASMOpcodeValues ¶
FillGasMapWASMOpcodeValues fills the wasm opcodes costs
Types ¶
type BaseOperationCost ¶
type BaseOperationCost struct { StorePerByte uint64 ReleasePerByte uint64 DataCopyPerByte uint64 PersistPerByte uint64 CompilePerByte uint64 AoTPreparePerByte uint64 GetCode uint64 }
BaseOperationCost defines the base operations gas cost config structure
type BaseOpsAPICost ¶
type BaseOpsAPICost struct { GetSCAddress uint64 GetOwnerAddress uint64 IsSmartContract uint64 GetShardOfAddress uint64 GetExternalBalance uint64 GetBlockHash uint64 GetOriginalTxHash uint64 GetCurrentTxHash uint64 GetPrevTxHash 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 CreateAsyncCall uint64 SetAsyncCallback uint64 SetAsyncGroupCallback uint64 SetAsyncContextCallback uint64 GetCallbackClosure uint64 CreateContract uint64 GetReturnData uint64 GetNumReturnData uint64 GetReturnDataSize uint64 CleanReturnData uint64 DeleteFromReturnData uint64 GetCodeMetadata uint64 IsBuiltinFunction uint64 }
BaseOpsAPICost defines the API operations gas cost config structure
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 }
BigFloatAPICost defines the big float operations gas cost config structure
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 }
BigIntAPICost defines the big int operations gas cost config structure
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 }
CryptoAPICost defines the crypto operations gas cost config structure
type DynamicStorageLoadCostCoefficients ¶
type DynamicStorageLoadCostCoefficients struct { Quadratic int64 Linear int64 Constant int64 MinGasCost uint64 }
DynamicStorageLoadCostCoefficients holds the signed coefficients of the func that will compute the gas cost based on the trie depth.
type DynamicStorageLoadUnsigned ¶
type DynamicStorageLoadUnsigned struct { QuadraticCoefficient uint64 SignOfQuadratic uint64 LinearCoefficient uint64 SignOfLinear uint64 ConstantCoefficient uint64 SignOfConstant uint64 MinimumGasCost uint64 }
DynamicStorageLoadUnsigned is used to store the coefficients for the func that will compute the gas cost based on the trie depth. The coefficients are unsigned.
type GasCost ¶
type GasCost struct { BaseOperationCost BaseOperationCost BigIntAPICost BigIntAPICost BigFloatAPICost BigFloatAPICost BaseOpsAPICost BaseOpsAPICost ManagedBufferAPICost ManagedBufferAPICost ManagedMapAPICost ManagedMapAPICost CryptoAPICost CryptoAPICost WASMOpcodeCost *executor.WASMOpcodeCost DynamicStorageLoad DynamicStorageLoadCostCoefficients }
GasCost defines the gas cost config structure
func CreateGasConfig ¶
func CreateGasConfig(gasMap GasScheduleMap) (*GasCost, error)
CreateGasConfig will create a gas cost instance
type GasScheduleMap ¶
GasScheduleMap (alias) is the map for gas schedule
func FillGasMap ¶
func FillGasMap(gasMap GasScheduleMap, value, asyncCallbackGasLock uint64) GasScheduleMap
FillGasMap will fill the gas map with the provided value
func MakeGasMap ¶
func MakeGasMap(value, asyncCallbackGasLock uint64) GasScheduleMap
MakeGasMap creates a new GasScheduleMap instance
func MakeGasMapForTests ¶
func MakeGasMapForTests() GasScheduleMap
MakeGasMapForTests creates a gas schedule map for tests
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 }
ManagedBufferAPICost defines the managed buffer operations gas cost config structure