// Code generated by vmhooks generator. DO NOT EDIT.

// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// !!!!!!!!!!!!!!!!!!!!!! AUTO-GENERATED FILE !!!!!!!!!!!!!!!!!!!!!!
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

use wasmparser::ValType;

use super::VmHookSignature;

#[rustfmt::skip]
pub const VM_HOOK_SIGNATURES: &[VmHookSignature] = &[
    VmHookSignature::new("getGasLeft", &[], Some(ValType::I64)),
    VmHookSignature::new("getSCAddress", &[ValType::I32], None),
    VmHookSignature::new("getOwnerAddress", &[ValType::I32], None),
    VmHookSignature::new("getShardOfAddress", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("isSmartContract", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("signalError", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("getExternalBalance", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("getBlockHash", &[ValType::I64, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTBalance", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTNFTNameLength", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("getESDTNFTAttributeLength", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("getESDTNFTURILength", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("getESDTTokenData", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTLocalRoles", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("validateTokenIdentifier", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("transferValue", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("transferValueExecute", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("transferESDTExecute", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("transferESDTNFTExecute", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("multiTransferESDTNFTExecute", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("createAsyncCall", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("setAsyncContextCallback", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("upgradeContract", &[ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("upgradeFromSourceContract", &[ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("deleteContract", &[ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("asyncCall", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("getArgumentLength", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getArgument", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getFunction", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getNumArguments", &[], Some(ValType::I32)),
    VmHookSignature::new("storageStore", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("storageLoadLength", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("storageLoadFromAddress", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("storageLoad", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("setStorageLock", &[ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("getStorageLock", &[ValType::I32, ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("isStorageLocked", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("clearStorageLock", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getCaller", &[ValType::I32], None),
    VmHookSignature::new("checkNoPayment", &[], None),
    VmHookSignature::new("getCallValue", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTValue", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTValueByIndex", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTTokenName", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTTokenNameByIndex", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getESDTTokenNonce", &[], Some(ValType::I64)),
    VmHookSignature::new("getESDTTokenNonceByIndex", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("getCurrentESDTNFTNonce", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("getESDTTokenType", &[], Some(ValType::I32)),
    VmHookSignature::new("getESDTTokenTypeByIndex", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getNumESDTTransfers", &[], Some(ValType::I32)),
    VmHookSignature::new("getCallValueTokenName", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getCallValueTokenNameByIndex", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("isReservedFunctionName", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("writeLog", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("writeEventLog", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("getBlockTimestamp", &[], Some(ValType::I64)),
    VmHookSignature::new("getBlockTimestampMs", &[], Some(ValType::I64)),
    VmHookSignature::new("getBlockNonce", &[], Some(ValType::I64)),
    VmHookSignature::new("getBlockRound", &[], Some(ValType::I64)),
    VmHookSignature::new("getBlockEpoch", &[], Some(ValType::I64)),
    VmHookSignature::new("getBlockRandomSeed", &[ValType::I32], None),
    VmHookSignature::new("getStateRootHash", &[ValType::I32], None),
    VmHookSignature::new("getPrevBlockTimestamp", &[], Some(ValType::I64)),
    VmHookSignature::new("getPrevBlockTimestampMs", &[], Some(ValType::I64)),
    VmHookSignature::new("getPrevBlockNonce", &[], Some(ValType::I64)),
    VmHookSignature::new("getPrevBlockRound", &[], Some(ValType::I64)),
    VmHookSignature::new("getPrevBlockEpoch", &[], Some(ValType::I64)),
    VmHookSignature::new("getPrevBlockRandomSeed", &[ValType::I32], None),
    VmHookSignature::new("getBlockRoundTimeMs", &[], Some(ValType::I64)),
    VmHookSignature::new("epochStartBlockTimestampMs", &[], Some(ValType::I64)),
    VmHookSignature::new("epochStartBlockNonce", &[], Some(ValType::I64)),
    VmHookSignature::new("epochStartBlockRound", &[], Some(ValType::I64)),
    VmHookSignature::new("finish", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("executeOnSameContext", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("executeOnDestContext", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("executeReadOnly", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("createContract", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("deployFromSourceContract", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getNumReturnData", &[], Some(ValType::I32)),
    VmHookSignature::new("getReturnDataSize", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getReturnData", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("cleanReturnData", &[], None),
    VmHookSignature::new("deleteFromReturnData", &[ValType::I32], None),
    VmHookSignature::new("getOriginalTxHash", &[ValType::I32], None),
    VmHookSignature::new("getCurrentTxHash", &[ValType::I32], None),
    VmHookSignature::new("getPrevTxHash", &[ValType::I32], None),
    VmHookSignature::new("managedSCAddress", &[ValType::I32], None),
    VmHookSignature::new("managedOwnerAddress", &[ValType::I32], None),
    VmHookSignature::new("managedCaller", &[ValType::I32], None),
    VmHookSignature::new("managedGetOriginalCallerAddr", &[ValType::I32], None),
    VmHookSignature::new("managedGetRelayerAddr", &[ValType::I32], None),
    VmHookSignature::new("managedSignalError", &[ValType::I32], None),
    VmHookSignature::new("managedWriteLog", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedGetOriginalTxHash", &[ValType::I32], None),
    VmHookSignature::new("managedGetStateRootHash", &[ValType::I32], None),
    VmHookSignature::new("managedGetBlockRandomSeed", &[ValType::I32], None),
    VmHookSignature::new("managedGetPrevBlockRandomSeed", &[ValType::I32], None),
    VmHookSignature::new("managedGetReturnData", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedGetMultiESDTCallValue", &[ValType::I32], None),
    VmHookSignature::new("managedGetAllTransfersCallValue", &[ValType::I32], None),
    VmHookSignature::new("managedGetBackTransfers", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedGetESDTBalance", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32], None),
    VmHookSignature::new("managedGetESDTTokenData", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedGetESDTTokenType", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32], None),
    VmHookSignature::new("managedAsyncCall", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedCreateAsyncCall", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I64, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedGetCallbackClosure", &[ValType::I32], None),
    VmHookSignature::new("managedUpgradeFromSourceContract", &[ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedUpgradeContract", &[ValType::I32, ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedDeleteContract", &[ValType::I32, ValType::I64, ValType::I32], None),
    VmHookSignature::new("managedDeployFromSourceContract", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedCreateContract", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedExecuteReadOnly", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedExecuteOnSameContext", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedExecuteOnDestContext", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedExecuteOnDestContextWithErrorReturn", &[ValType::I64, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMultiTransferESDTNFTExecute", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMultiTransferESDTNFTExecuteWithReturn", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMultiTransferESDTNFTExecuteByUser", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedTransferValueExecute", &[ValType::I32, ValType::I32, ValType::I64, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedIsESDTFrozen", &[ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("managedIsESDTLimitedTransfer", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedIsESDTPaused", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedBufferToHex", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedGetCodeMetadata", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedGetCodeHash", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("managedIsBuiltinFunction", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigFloatNewFromParts", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigFloatNewFromFrac", &[ValType::I64, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("bigFloatNewFromSci", &[ValType::I64, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("bigFloatAdd", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatSub", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatMul", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatDiv", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatNeg", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatClone", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatCmp", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigFloatAbs", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatSign", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigFloatSqrt", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatPow", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatFloor", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatCeil", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatTruncate", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatSetInt64", &[ValType::I32, ValType::I64], None),
    VmHookSignature::new("bigFloatIsInt", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigFloatSetBigInt", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigFloatGetConstPi", &[ValType::I32], None),
    VmHookSignature::new("bigFloatGetConstE", &[ValType::I32], None),
    VmHookSignature::new("bigIntGetUnsignedArgument", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntGetSignedArgument", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntStorageStoreUnsigned", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntStorageLoadUnsigned", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntGetCallValue", &[ValType::I32], None),
    VmHookSignature::new("bigIntGetESDTCallValue", &[ValType::I32], None),
    VmHookSignature::new("bigIntGetESDTCallValueByIndex", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntGetExternalBalance", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntGetESDTExternalBalance", &[ValType::I32, ValType::I32, ValType::I32, ValType::I64, ValType::I32], None),
    VmHookSignature::new("bigIntNew", &[ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("bigIntUnsignedByteLength", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntSignedByteLength", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntGetUnsignedBytes", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntGetSignedBytes", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntSetUnsignedBytes", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntSetSignedBytes", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntIsInt64", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntGetInt64", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("bigIntSetInt64", &[ValType::I32, ValType::I64], None),
    VmHookSignature::new("bigIntAdd", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntSub", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntMul", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntTDiv", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntTMod", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntEDiv", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntEMod", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntSqrt", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntPow", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntLog2", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntAbs", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntNeg", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntSign", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntCmp", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("bigIntNot", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntAnd", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntOr", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntXor", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntShr", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntShl", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("bigIntFinishUnsigned", &[ValType::I32], None),
    VmHookSignature::new("bigIntFinishSigned", &[ValType::I32], None),
    VmHookSignature::new("bigIntToString", &[ValType::I32, ValType::I32], None),
    VmHookSignature::new("mBufferNew", &[], Some(ValType::I32)),
    VmHookSignature::new("mBufferNewFromBytes", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferGetLength", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferGetBytes", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferGetByteSlice", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferCopyByteSlice", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferEq", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferSetBytes", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferSetByteSlice", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferAppend", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferAppendBytes", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferToBigIntUnsigned", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferToBigIntSigned", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferFromBigIntUnsigned", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferFromBigIntSigned", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferToSmallIntUnsigned", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("mBufferToSmallIntSigned", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("mBufferFromSmallIntUnsigned", &[ValType::I32, ValType::I64], None),
    VmHookSignature::new("mBufferFromSmallIntSigned", &[ValType::I32, ValType::I64], None),
    VmHookSignature::new("mBufferToBigFloat", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferFromBigFloat", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferStorageStore", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferStorageLoad", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferStorageLoadFromAddress", &[ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("mBufferGetArgument", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferFinish", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("mBufferSetRandom", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMapNew", &[], Some(ValType::I32)),
    VmHookSignature::new("managedMapPut", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMapGet", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMapRemove", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMapContains", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("smallIntGetUnsignedArgument", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("smallIntGetSignedArgument", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("smallIntFinishUnsigned", &[ValType::I64], None),
    VmHookSignature::new("smallIntFinishSigned", &[ValType::I64], None),
    VmHookSignature::new("smallIntStorageStoreUnsigned", &[ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("smallIntStorageStoreSigned", &[ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("smallIntStorageLoadUnsigned", &[ValType::I32, ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("smallIntStorageLoadSigned", &[ValType::I32, ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("int64getArgument", &[ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("int64finish", &[ValType::I64], None),
    VmHookSignature::new("int64storageStore", &[ValType::I32, ValType::I32, ValType::I64], Some(ValType::I32)),
    VmHookSignature::new("int64storageLoad", &[ValType::I32, ValType::I32], Some(ValType::I64)),
    VmHookSignature::new("sha256", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedSha256", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("keccak256", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedKeccak256", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("ripemd160", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedRipemd160", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("verifyBLS", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifyBLS", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("verifyEd25519", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifyEd25519", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("verifyCustomSecp256k1", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifyCustomSecp256k1", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("verifySecp256k1", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifySecp256k1", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("encodeSecp256k1DerSignature", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedEncodeSecp256k1DerSignature", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("addEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("doubleEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], None),
    VmHookSignature::new("isOnCurveEC", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("scalarBaseMultEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedScalarBaseMultEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("scalarMultEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedScalarMultEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("marshalEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMarshalEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("marshalCompressedEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedMarshalCompressedEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("unmarshalEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedUnmarshalEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("unmarshalCompressedEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedUnmarshalCompressedEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("generateKeyEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedGenerateKeyEC", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("createEC", &[ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedCreateEC", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getCurveLengthEC", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("getPrivKeyByteLengthEC", &[ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("ellipticCurveGetValues", &[ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifySecp256r1", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifyBLSSignatureShare", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
    VmHookSignature::new("managedVerifyBLSAggregatedSignature", &[ValType::I32, ValType::I32, ValType::I32], Some(ValType::I32)),
];
