Skip to content

Enums

woke.ast.enums module #

AssignmentOperator class #

Bases: str, enum.Enum

Assignment operator used in an Assignment expression.

Source code in woke/ast/enums.py
class AssignmentOperator(str, enum.Enum):
    """
    Assignment operator used in an [Assignment][woke.ast.ir.expression.assignment.Assignment] expression.
    """

    EQUALS = r"="
    PLUS_EQUALS = r"+="
    MINUS_EQUALS = r"-="
    TIMES_EQUALS = r"*="
    DIVIDE_EQUALS = r"/="
    MODULO_EQUALS = r"%="
    OR_EQUALS = r"|="
    AND_EQUALS = r"&="
    XOR_EQUALS = r"^="
    RIGHT_SHIFT_EQUALS = r">>="
    LEFT_SHIFT_EQUALS = r"<<="

AND_EQUALS = '&=' class-attribute #

DIVIDE_EQUALS = '/=' class-attribute #

EQUALS = '=' class-attribute #

LEFT_SHIFT_EQUALS = '<<=' class-attribute #

MINUS_EQUALS = '-=' class-attribute #

MODULO_EQUALS = '%=' class-attribute #

OR_EQUALS = '|=' class-attribute #

PLUS_EQUALS = '+=' class-attribute #

RIGHT_SHIFT_EQUALS = '>>=' class-attribute #

TIMES_EQUALS = '*=' class-attribute #

XOR_EQUALS = '^=' class-attribute #

BinaryOpOperator class #

Bases: str, enum.Enum

Binary operation operator used in a BinaryOperation expression.

Source code in woke/ast/enums.py
class BinaryOpOperator(str, enum.Enum):
    """
    Binary operation operator used in a [BinaryOperation][woke.ast.ir.expression.binary_operation.BinaryOperation] expression.
    """

    PLUS = r"+"
    MINUS = r"-"
    TIMES = r"*"
    DIVIDE = r"/"
    MODULO = r"%"
    EXP = r"**"
    BOOLEAN_AND = r"&&"
    BOOLEAN_OR = r"||"
    NEQ = r"!="
    EQ = r"=="
    LT = r"<"
    LTE = r"<="
    GT = r">"
    GTE = r">="
    XOR = r"^"
    BITWISE_AND = r"&"
    BITWISE_OR = r"|"
    LEFT_SHIFT = r"<<"
    RIGHT_SHIFT = r">>"

BITWISE_AND = '&' class-attribute #

BITWISE_OR = '|' class-attribute #

BOOLEAN_AND = '&&' class-attribute #

BOOLEAN_OR = '||' class-attribute #

DIVIDE = '/' class-attribute #

EQ = '==' class-attribute #

EXP = '**' class-attribute #

GT = '>' class-attribute #

GTE = '>=' class-attribute #

LEFT_SHIFT = '<<' class-attribute #

LT = '<' class-attribute #

LTE = '<=' class-attribute #

MINUS = '-' class-attribute #

MODULO = '%' class-attribute #

NEQ = '!=' class-attribute #

PLUS = '+' class-attribute #

RIGHT_SHIFT = '>>' class-attribute #

TIMES = '*' class-attribute #

XOR = '^' class-attribute #

ContractKind class #

Bases: str, enum.Enum

Kind of a ContractDefinition declaration node.

Source code in woke/ast/enums.py
class ContractKind(str, enum.Enum):
    """
    Kind of a [ContractDefinition][woke.ast.ir.declaration.contract_definition.ContractDefinition] declaration node.
    """

    CONTRACT = "contract"
    INTERFACE = "interface"
    LIBRARY = "library"

CONTRACT = 'contract' class-attribute #

INTERFACE = 'interface' class-attribute #

LIBRARY = 'library' class-attribute #

DataLocation class #

Bases: str, enum.Enum

Data location of a VariableDeclaration node. It also specifies the data location of the following types:

Source code in woke/ast/enums.py
class DataLocation(str, enum.Enum):
    """
    Data location of a [VariableDeclaration][woke.ast.ir.declaration.variable_declaration.VariableDeclaration] node.
    It also specifies the data location of the following types:

    - [Array][woke.ast.types.Array],
    - [Bytes][woke.ast.types.Bytes],
    - [String][woke.ast.types.String],
    - [Struct][woke.ast.types.Struct].
    """

    CALLDATA = "calldata"
    DEFAULT = "default"
    """
    Set only in [VariableDeclaration][woke.ast.ir.declaration.variable_declaration.VariableDeclaration] nodes when the data location is not specified (and the compiler even does not allow it).
    """
    MEMORY = "memory"
    STORAGE = "storage"

CALLDATA = 'calldata' class-attribute #

DEFAULT = 'default' class-attribute #

Set only in VariableDeclaration nodes when the data location is not specified (and the compiler even does not allow it).

MEMORY = 'memory' class-attribute #

STORAGE = 'storage' class-attribute #

FunctionCallKind class #

Bases: str, enum.Enum

Kind of a FunctionCall expression node.

Source code in woke/ast/enums.py
class FunctionCallKind(str, enum.Enum):
    """
    Kind of a [FunctionCall][woke.ast.ir.expression.function_call.FunctionCall] expression node.
    """

    FUNCTION_CALL = "functionCall"
    """
    Represents also an error call, event call and [NewExpression][woke.ast.ir.expression.new_expression.NewExpression] call.
    """
    TYPE_CONVERSION = "typeConversion"
    STRUCT_CONSTRUCTOR_CALL = "structConstructorCall"

FUNCTION_CALL = 'functionCall' class-attribute #

Represents also an error call, event call and NewExpression call.

STRUCT_CONSTRUCTOR_CALL = 'structConstructorCall' class-attribute #

TYPE_CONVERSION = 'typeConversion' class-attribute #

FunctionKind class #

Bases: str, enum.Enum

Kind of a FunctionDefinition declaration node.

Source code in woke/ast/enums.py
class FunctionKind(str, enum.Enum):
    """
    Kind of a [FunctionDefinition][woke.ast.ir.declaration.function_definition.FunctionDefinition] declaration node.
    """

    FUNCTION = "function"
    RECEIVE = "receive"
    CONSTRUCTOR = "constructor"
    FALLBACK = "fallback"
    FREE_FUNCTION = "freeFunction"
    """
    Function defined outside of a contract.
    """

CONSTRUCTOR = 'constructor' class-attribute #

FALLBACK = 'fallback' class-attribute #

FREE_FUNCTION = 'freeFunction' class-attribute #

Function defined outside of a contract.

FUNCTION = 'function' class-attribute #

RECEIVE = 'receive' class-attribute #

FunctionTypeKind class #

Bases: str, enum.Enum

Kind of a Function type.

Source code in woke/ast/enums.py
class FunctionTypeKind(str, enum.Enum):
    """
    Kind of a [Function][woke.ast.types.Function] type.
    """

    DECLARATION = "declaration"
    INTERNAL = "internal"
    EXTERNAL = "external"
    DELEGATE_CALL = "delegatecall"
    BARE_CALL = "barecall"
    BARE_CALL_CODE = "barecallcode"
    BARE_DELEGATE_CALL = "baredelegatecall"
    BARE_STATIC_CALL = "barestaticcall"
    CREATION = "creation"
    SEND = "send"
    TRANSFER = "transfer"
    KECCAK256 = "keccak256"
    SELFDESTRUCT = "selfdestruct"
    REVERT = "revert"
    EC_RECOVER = "ecrecover"
    SHA256 = "sha256"
    RIPEMD160 = "ripemd160"
    LOG0 = "log0"
    LOG1 = "log1"
    LOG2 = "log2"
    LOG3 = "log3"
    LOG4 = "log4"
    GAS_LEFT = "gasleft"
    EVENT = "event"
    ERROR = "error"
    WRAP = "wrap"
    UNWRAP = "unwrap"
    SET_GAS = "setgas"
    SET_VALUE = "setvalue"
    BLOCK_HASH = "blockhash"
    ADD_MOD = "addmod"
    MUL_MOD = "mulmod"
    ARRAY_PUSH = "arraypush"
    ARRAY_POP = "arraypop"
    BYTE_ARRAY_PUSH = "bytearraypush"
    BYTES_CONCAT = "bytesconcat"
    STRING_CONCAT = "stringconcat"
    OBJECT_CREATION = "objectcreation"
    ASSERT = "assert"
    REQUIRE = "require"
    ABI_ENCODE = "abiencode"
    ABI_ENCODE_PACKED = "abiencodepacked"
    ABI_ENCODE_WITH_SELECTOR = "abiencodewithselector"
    ABI_ENCODE_CALL = "abiencodecall"
    ABI_ENCODE_WITH_SIGNATURE = "abiencodewithsignature"
    ABI_DECODE = "abidecode"
    META_TYPE = "metatype"

ABI_DECODE = 'abidecode' class-attribute #

ABI_ENCODE = 'abiencode' class-attribute #

ABI_ENCODE_CALL = 'abiencodecall' class-attribute #

ABI_ENCODE_PACKED = 'abiencodepacked' class-attribute #

ABI_ENCODE_WITH_SELECTOR = 'abiencodewithselector' class-attribute #

ABI_ENCODE_WITH_SIGNATURE = 'abiencodewithsignature' class-attribute #

ADD_MOD = 'addmod' class-attribute #

ARRAY_POP = 'arraypop' class-attribute #

ARRAY_PUSH = 'arraypush' class-attribute #

ASSERT = 'assert' class-attribute #

BARE_CALL = 'barecall' class-attribute #

BARE_CALL_CODE = 'barecallcode' class-attribute #

BARE_DELEGATE_CALL = 'baredelegatecall' class-attribute #

BARE_STATIC_CALL = 'barestaticcall' class-attribute #

BLOCK_HASH = 'blockhash' class-attribute #

BYTES_CONCAT = 'bytesconcat' class-attribute #

BYTE_ARRAY_PUSH = 'bytearraypush' class-attribute #

CREATION = 'creation' class-attribute #

DECLARATION = 'declaration' class-attribute #

DELEGATE_CALL = 'delegatecall' class-attribute #

EC_RECOVER = 'ecrecover' class-attribute #

ERROR = 'error' class-attribute #

EVENT = 'event' class-attribute #

EXTERNAL = 'external' class-attribute #

GAS_LEFT = 'gasleft' class-attribute #

INTERNAL = 'internal' class-attribute #

KECCAK256 = 'keccak256' class-attribute #

LOG0 = 'log0' class-attribute #

LOG1 = 'log1' class-attribute #

LOG2 = 'log2' class-attribute #

LOG3 = 'log3' class-attribute #

LOG4 = 'log4' class-attribute #

META_TYPE = 'metatype' class-attribute #

MUL_MOD = 'mulmod' class-attribute #

OBJECT_CREATION = 'objectcreation' class-attribute #

REQUIRE = 'require' class-attribute #

REVERT = 'revert' class-attribute #

RIPEMD160 = 'ripemd160' class-attribute #

SELFDESTRUCT = 'selfdestruct' class-attribute #

SEND = 'send' class-attribute #

SET_GAS = 'setgas' class-attribute #

SET_VALUE = 'setvalue' class-attribute #

SHA256 = 'sha256' class-attribute #

STRING_CONCAT = 'stringconcat' class-attribute #

TRANSFER = 'transfer' class-attribute #

UNWRAP = 'unwrap' class-attribute #

WRAP = 'wrap' class-attribute #

GlobalSymbolsEnum class #

Bases: enum.IntEnum

Global symbols of the Solidity language. Symbols with identifiers from -1 to -99 are codified by the compiler and can only be referenced by Identifier nodes. Other symbols are not officially codified by the compiler, but Woke also defines identifiers for them. These symbols can only be referenced by MemberAccess nodes. See the Solidity docs for (an incomplete) list of global symbols and their descriptions.

Source code in woke/ast/enums.py
class GlobalSymbolsEnum(enum.IntEnum):
    """
    Global symbols of the Solidity language. Symbols with identifiers from `-1` to `-99` are codified by the compiler and can only be referenced by [Identifier][woke.ast.ir.expression.identifier.Identifier] nodes.
    Other symbols are not officially codified by the compiler, but Woke also defines identifiers for them. These symbols can only be referenced by [MemberAccess][woke.ast.ir.expression.member_access.MemberAccess] nodes.
    See the [Solidity docs](https://docs.soliditylang.org/en/latest/units-and-global-variables.html#special-variables-and-functions) for (an incomplete) list of global symbols and their descriptions.
    """

    ABI = -1
    ADDMOD = -2
    ASSERT = -3
    BLOCK = -4
    BLOCKHASH = -5
    ECRECOVER = -6
    GASLEFT = -7
    KECCAK256 = -8
    MSG = -15
    MULMOD = -16
    NOW = -17
    REQUIRE = -18
    REVERT = -19
    RIPEMD160 = -20
    SELFDESTRUCT = -21
    SHA256 = -22
    SHA3 = -23
    SUICIDE = -24
    SUPER = -25
    TX = -26
    TYPE = -27
    THIS = -28

    BLOCK_BASEFEE = -100
    BLOCK_CHAINID = -101
    BLOCK_COINBASE = -102
    BLOCK_DIFFICULTY = -103
    BLOCK_GASLIMIT = -104
    BLOCK_NUMBER = -105
    BLOCK_TIMESTAMP = -106
    BLOCK_PREVRANDAO = -107

    MSG_DATA = -200
    MSG_SENDER = -201
    MSG_SIG = -202
    MSG_VALUE = -203

    TX_GASPRICE = -300
    TX_ORIGIN = -301

    ABI_DECODE = -400
    ABI_ENCODE = -401
    ABI_ENCODE_PACKED = -402
    ABI_ENCODE_WITH_SELECTOR = -403
    ABI_ENCODE_WITH_SIGNATURE = -404
    ABI_ENCODE_CALL = -405

    BYTES_CONCAT = -500
    BYTES_LENGTH = -501
    BYTES_PUSH = -502

    STRING_CONCAT = -600

    ADDRESS_BALANCE = -700
    ADDRESS_CODE = -701
    ADDRESS_CODEHASH = -702
    ADDRESS_TRANSFER = -703
    ADDRESS_SEND = -704
    ADDRESS_CALL = -705
    ADDRESS_DELEGATECALL = -706
    ADDRESS_STATICCALL = -707

    # available for contracts and interfaces
    TYPE_NAME = -800
    TYPE_CREATION_CODE = -801
    TYPE_RUNTIME_CODE = -802
    # available for interfaces only
    TYPE_INTERFACE_ID = -803
    # available for integers
    TYPE_MIN = -804
    TYPE_MAX = -805

    ARRAY_LENGTH = -900
    ARRAY_PUSH = -901
    ARRAY_POP = -902

    FUNCTION_SELECTOR = -1000
    FUNCTION_VALUE = -1001
    FUNCTION_GAS = -1002
    FUNCTION_ADDRESS = -1003

    USER_DEFINED_VALUE_TYPE_WRAP = -1100
    USER_DEFINED_VALUE_TYPE_UNWRAP = -1101

ABI = -1 class-attribute #

ABI_DECODE = -400 class-attribute #

ABI_ENCODE = -401 class-attribute #

ABI_ENCODE_CALL = -405 class-attribute #

ABI_ENCODE_PACKED = -402 class-attribute #

ABI_ENCODE_WITH_SELECTOR = -403 class-attribute #

ABI_ENCODE_WITH_SIGNATURE = -404 class-attribute #

ADDMOD = -2 class-attribute #

ADDRESS_BALANCE = -700 class-attribute #

ADDRESS_CALL = -705 class-attribute #

ADDRESS_CODE = -701 class-attribute #

ADDRESS_CODEHASH = -702 class-attribute #

ADDRESS_DELEGATECALL = -706 class-attribute #

ADDRESS_SEND = -704 class-attribute #

ADDRESS_STATICCALL = -707 class-attribute #

ADDRESS_TRANSFER = -703 class-attribute #

ARRAY_LENGTH = -900 class-attribute #

ARRAY_POP = -902 class-attribute #

ARRAY_PUSH = -901 class-attribute #

ASSERT = -3 class-attribute #

BLOCK = -4 class-attribute #

BLOCKHASH = -5 class-attribute #

BLOCK_BASEFEE = -100 class-attribute #

BLOCK_CHAINID = -101 class-attribute #

BLOCK_COINBASE = -102 class-attribute #

BLOCK_DIFFICULTY = -103 class-attribute #

BLOCK_GASLIMIT = -104 class-attribute #

BLOCK_NUMBER = -105 class-attribute #

BLOCK_PREVRANDAO = -107 class-attribute #

BLOCK_TIMESTAMP = -106 class-attribute #

BYTES_CONCAT = -500 class-attribute #

BYTES_LENGTH = -501 class-attribute #

BYTES_PUSH = -502 class-attribute #

ECRECOVER = -6 class-attribute #

FUNCTION_ADDRESS = -1003 class-attribute #

FUNCTION_GAS = -1002 class-attribute #

FUNCTION_SELECTOR = -1000 class-attribute #

FUNCTION_VALUE = -1001 class-attribute #

GASLEFT = -7 class-attribute #

KECCAK256 = -8 class-attribute #

MSG = -15 class-attribute #

MSG_DATA = -200 class-attribute #

MSG_SENDER = -201 class-attribute #

MSG_SIG = -202 class-attribute #

MSG_VALUE = -203 class-attribute #

MULMOD = -16 class-attribute #

NOW = -17 class-attribute #

REQUIRE = -18 class-attribute #

REVERT = -19 class-attribute #

RIPEMD160 = -20 class-attribute #

SELFDESTRUCT = -21 class-attribute #

SHA256 = -22 class-attribute #

SHA3 = -23 class-attribute #

STRING_CONCAT = -600 class-attribute #

SUICIDE = -24 class-attribute #

SUPER = -25 class-attribute #

THIS = -28 class-attribute #

TX = -26 class-attribute #

TX_GASPRICE = -300 class-attribute #

TX_ORIGIN = -301 class-attribute #

TYPE = -27 class-attribute #

TYPE_CREATION_CODE = -801 class-attribute #

TYPE_INTERFACE_ID = -803 class-attribute #

TYPE_MAX = -805 class-attribute #

TYPE_MIN = -804 class-attribute #

TYPE_NAME = -800 class-attribute #

TYPE_RUNTIME_CODE = -802 class-attribute #

USER_DEFINED_VALUE_TYPE_UNWRAP = -1101 class-attribute #

USER_DEFINED_VALUE_TYPE_WRAP = -1100 class-attribute #

InlineAssemblyEvmVersion class #

Bases: str, enum.Enum

Source code in woke/ast/enums.py
class InlineAssemblyEvmVersion(str, enum.Enum):
    HOMESTEAD = "homestead"
    TANGERINE_WHISTLE = "tangerineWhistle"
    SPURIOUS_DRAGON = "spuriousDragon"
    BYZANTIUM = "byzantium"
    CONSTANTINOPLE = "constantinople"
    PETERSBURG = "petersburg"
    ISTANBUL = "istanbul"
    BERLIN = "berlin"
    LONDON = "london"
    PARIS = "paris"

BERLIN = 'berlin' class-attribute #

BYZANTIUM = 'byzantium' class-attribute #

CONSTANTINOPLE = 'constantinople' class-attribute #

HOMESTEAD = 'homestead' class-attribute #

ISTANBUL = 'istanbul' class-attribute #

LONDON = 'london' class-attribute #

PARIS = 'paris' class-attribute #

PETERSBURG = 'petersburg' class-attribute #

SPURIOUS_DRAGON = 'spuriousDragon' class-attribute #

TANGERINE_WHISTLE = 'tangerineWhistle' class-attribute #

InlineAssemblyFlag class #

Bases: str, enum.Enum

Source code in woke/ast/enums.py
class InlineAssemblyFlag(str, enum.Enum):
    MEMORY_SAFE = "memory-safe"

MEMORY_SAFE = 'memory-safe' class-attribute #

InlineAssemblySuffix class #

Bases: str, enum.Enum

Source code in woke/ast/enums.py
class InlineAssemblySuffix(str, enum.Enum):
    SLOT = "slot"
    OFFSET = "offset"
    LENGTH = "length"
    ADDRESS = "address"
    SELECTOR = "selector"

ADDRESS = 'address' class-attribute #

LENGTH = 'length' class-attribute #

OFFSET = 'offset' class-attribute #

SELECTOR = 'selector' class-attribute #

SLOT = 'slot' class-attribute #

LiteralKind class #

Bases: str, enum.Enum

Kind of a Literal expression node.

Source code in woke/ast/enums.py
class LiteralKind(str, enum.Enum):
    """
    Kind of a [Literal][woke.ast.ir.expression.literal.Literal] expression node.
    """

    BOOL = "bool"
    NUMBER = "number"
    STRING = "string"
    HEX_STRING = "hexString"
    UNICODE_STRING = "unicodeString"

BOOL = 'bool' class-attribute #

HEX_STRING = 'hexString' class-attribute #

NUMBER = 'number' class-attribute #

STRING = 'string' class-attribute #

UNICODE_STRING = 'unicodeString' class-attribute #

MagicTypeKind class #

Bases: str, enum.Enum

Kind of a Magic type.

Source code in woke/ast/enums.py
class MagicTypeKind(str, enum.Enum):
    """
    Kind of a [Magic][woke.ast.types.Magic] type.
    """

    BLOCK = "block"
    MESSAGE = "message"
    TRANSACTION = "transaction"
    ABI = "abi"
    META_TYPE = "meta_type"

ABI = 'abi' class-attribute #

BLOCK = 'block' class-attribute #

MESSAGE = 'message' class-attribute #

META_TYPE = 'meta_type' class-attribute #

TRANSACTION = 'transaction' class-attribute #

ModifierInvocationKind class #

Bases: str, enum.Enum

Kind of a ModifierInvocation meta node.

Source code in woke/ast/enums.py
class ModifierInvocationKind(str, enum.Enum):
    """
    Kind of a [ModifierInvocation][woke.ast.ir.meta.modifier_invocation.ModifierInvocation] meta node.
    """

    MODIFIER_INVOCATION = "modifierInvocation"
    BASE_CONSTRUCTOR_SPECIFIER = "baseConstructorSpecifier"

BASE_CONSTRUCTOR_SPECIFIER = 'baseConstructorSpecifier' class-attribute #

MODIFIER_INVOCATION = 'modifierInvocation' class-attribute #

ModifiesStateFlag class #

Bases: enum.IntFlag

Flag enum describing how an expression (ExpressionAbc) or statement (StatementAbc) modifies the blockchain state.

Source code in woke/ast/enums.py
class ModifiesStateFlag(enum.IntFlag):
    """
    Flag enum describing how an expression ([ExpressionAbc][woke.ast.ir.expression.abc.ExpressionAbc]) or statement ([StatementAbc][woke.ast.ir.statement.abc.StatementAbc]) modifies the blockchain state.
    """

    MODIFIES_STATE_VAR = 1
    EMITS = 2
    SENDS_ETHER = 4
    DEPLOYS_CONTRACT = 8
    SELFDESTRUCTS = 16
    PERFORMS_CALL = 32
    PERFORMS_DELEGATECALL = 64
    CALLS_UNIMPLEMENTED_NONPAYABLE_FUNCTION = 128
    CALLS_UNIMPLEMENTED_PAYABLE_FUNCTION = 256

    def __repr__(self):
        if self.value == 0:
            return f"{self.__class__.__name__}(0)"
        flags = [f for f in self.__class__ if f in self]
        return " | ".join(f.name or "" for f in flags)

    __str__ = __repr__

CALLS_UNIMPLEMENTED_NONPAYABLE_FUNCTION = 128 class-attribute #

CALLS_UNIMPLEMENTED_PAYABLE_FUNCTION = 256 class-attribute #

DEPLOYS_CONTRACT = 8 class-attribute #

EMITS = 2 class-attribute #

MODIFIES_STATE_VAR = 1 class-attribute #

PERFORMS_CALL = 32 class-attribute #

PERFORMS_DELEGATECALL = 64 class-attribute #

SELFDESTRUCTS = 16 class-attribute #

SENDS_ETHER = 4 class-attribute #

Mutability class #

Bases: str, enum.Enum

Mutability of a VariableDeclaration declaration node.

Source code in woke/ast/enums.py
class Mutability(str, enum.Enum):
    """
    Mutability of a [VariableDeclaration][woke.ast.ir.declaration.variable_declaration.VariableDeclaration] declaration node.
    """

    MUTABLE = "mutable"
    IMMUTABLE = "immutable"
    CONSTANT = "constant"

CONSTANT = 'constant' class-attribute #

IMMUTABLE = 'immutable' class-attribute #

MUTABLE = 'mutable' class-attribute #

StateMutability class #

Bases: str, enum.Enum

State mutability of:

In the case of ElementaryTypeName, the state mutability is specified only for the address type and can be either NONPAYABLE or PAYABLE.

Source code in woke/ast/enums.py
class StateMutability(str, enum.Enum):
    """
    State mutability of:

    - [Function][woke.ast.types.Function] type,
    - [FunctionDefinition][woke.ast.ir.declaration.function_definition.FunctionDefinition] declaration,
    - [ElementaryTypeName][woke.ast.ir.type_name.elementary_type_name.ElementaryTypeName] and [FunctionTypeName][woke.ast.ir.type_name.function_type_name.FunctionTypeName] type names.

    In the case of [ElementaryTypeName][woke.ast.ir.type_name.elementary_type_name.ElementaryTypeName], the state mutability is specified only for the `address` type and can be either [NONPAYABLE][woke.ast.enums.StateMutability.NONPAYABLE] or [PAYABLE][woke.ast.enums.StateMutability.PAYABLE].
    """

    PAYABLE = "payable"
    PURE = "pure"
    NONPAYABLE = "nonpayable"
    VIEW = "view"

NONPAYABLE = 'nonpayable' class-attribute #

PAYABLE = 'payable' class-attribute #

PURE = 'pure' class-attribute #

VIEW = 'view' class-attribute #

UnaryOpOperator class #

Bases: str, enum.Enum

Unary operation operator used in an UnaryOperation expression.

Source code in woke/ast/enums.py
class UnaryOpOperator(str, enum.Enum):
    """
    Unary operation operator used in an [UnaryOperation][woke.ast.ir.expression.unary_operation.UnaryOperation] expression.
    """

    PLUS_PLUS = r"++"
    MINUS_MINUS = r"--"
    MINUS = r"-"
    NOT = r"!"
    TILDE = r"~"
    DELETE = "delete"

DELETE = 'delete' class-attribute #

MINUS = '-' class-attribute #

MINUS_MINUS = '--' class-attribute #

NOT = '!' class-attribute #

PLUS_PLUS = '++' class-attribute #

TILDE = '~' class-attribute #

Visibility class #

Bases: str, enum.Enum

Visibility of:

Source code in woke/ast/enums.py
class Visibility(str, enum.Enum):
    """
    Visibility of:

    - [FunctionTypeName][woke.ast.ir.type_name.function_type_name.FunctionTypeName] type name,
    - [FunctionDefinition][woke.ast.ir.declaration.function_definition.FunctionDefinition], [ModifierDefinition][woke.ast.ir.declaration.modifier_definition.ModifierDefinition], [StructDefinition][woke.ast.ir.declaration.struct_definition.StructDefinition] and [VariableDeclaration][woke.ast.ir.declaration.variable_declaration.VariableDeclaration] declarations.
    """

    EXTERNAL = "external"
    PUBLIC = "public"
    INTERNAL = "internal"
    PRIVATE = "private"

EXTERNAL = 'external' class-attribute #

INTERNAL = 'internal' class-attribute #

PRIVATE = 'private' class-attribute #

PUBLIC = 'public' class-attribute #

YulLiteralValueKind class #

Bases: str, enum.Enum

Kind of a Yul Literal node.

Source code in woke/ast/enums.py
class YulLiteralValueKind(str, enum.Enum):
    """
    Kind of a Yul [Literal][woke.ast.ir.yul.literal.Literal] node.
    """

    NUMBER = "number"
    STRING = "string"
    BOOL = "bool"

BOOL = 'bool' class-attribute #

NUMBER = 'number' class-attribute #

STRING = 'string' class-attribute #