wake.ir.enums
module
#
AssignmentOperator
class
#
Bases: StrEnum
Assignment operator used in an Assignment expression.
Source code in wake/ir/enums.py
AND_EQUALS = '&='
class-attribute
instance-attribute
#
DIVIDE_EQUALS = '/='
class-attribute
instance-attribute
#
EQUALS = '='
class-attribute
instance-attribute
#
LEFT_SHIFT_EQUALS = '<<='
class-attribute
instance-attribute
#
MINUS_EQUALS = '-='
class-attribute
instance-attribute
#
MODULO_EQUALS = '%='
class-attribute
instance-attribute
#
OR_EQUALS = '|='
class-attribute
instance-attribute
#
PLUS_EQUALS = '+='
class-attribute
instance-attribute
#
RIGHT_SHIFT_EQUALS = '>>='
class-attribute
instance-attribute
#
TIMES_EQUALS = '*='
class-attribute
instance-attribute
#
XOR_EQUALS = '^='
class-attribute
instance-attribute
#
BinaryOpOperator
class
#
Bases: StrEnum
Binary operation operator used in a BinaryOperation expression.
Source code in wake/ir/enums.py
BITWISE_AND = '&'
class-attribute
instance-attribute
#
BITWISE_OR = '|'
class-attribute
instance-attribute
#
BOOLEAN_AND = '&&'
class-attribute
instance-attribute
#
BOOLEAN_OR = '||'
class-attribute
instance-attribute
#
DIVIDE = '/'
class-attribute
instance-attribute
#
EQ = '=='
class-attribute
instance-attribute
#
EXP = '**'
class-attribute
instance-attribute
#
GT = '>'
class-attribute
instance-attribute
#
GTE = '>='
class-attribute
instance-attribute
#
LEFT_SHIFT = '<<'
class-attribute
instance-attribute
#
LT = '<'
class-attribute
instance-attribute
#
LTE = '<='
class-attribute
instance-attribute
#
MINUS = '-'
class-attribute
instance-attribute
#
MODULO = '%'
class-attribute
instance-attribute
#
NEQ = '!='
class-attribute
instance-attribute
#
PLUS = '+'
class-attribute
instance-attribute
#
RIGHT_SHIFT = '>>'
class-attribute
instance-attribute
#
TIMES = '*'
class-attribute
instance-attribute
#
XOR = '^'
class-attribute
instance-attribute
#
ContractKind
class
#
DataLocation
class
#
Bases: StrEnum
Data location of a VariableDeclaration node. It also specifies the data location of the following types:
Source code in wake/ir/enums.py
CALLDATA = 'calldata'
class-attribute
instance-attribute
#
DEFAULT = 'default'
class-attribute
instance-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
instance-attribute
#
STORAGE = 'storage'
class-attribute
instance-attribute
#
TRANSIENT = 'transient'
class-attribute
instance-attribute
#
FunctionCallKind
class
#
Bases: StrEnum
Kind of a FunctionCall expression node.
Source code in wake/ir/enums.py
FUNCTION_CALL = 'functionCall'
class-attribute
instance-attribute
#
Represents also an error call, event call and NewExpression call.
STRUCT_CONSTRUCTOR_CALL = 'structConstructorCall'
class-attribute
instance-attribute
#
TYPE_CONVERSION = 'typeConversion'
class-attribute
instance-attribute
#
FunctionKind
class
#
Bases: StrEnum
Kind of a FunctionDefinition declaration node.
Source code in wake/ir/enums.py
CONSTRUCTOR = 'constructor'
class-attribute
instance-attribute
#
FALLBACK = 'fallback'
class-attribute
instance-attribute
#
FREE_FUNCTION = 'freeFunction'
class-attribute
instance-attribute
#
Function defined outside of a contract.
FUNCTION = 'function'
class-attribute
instance-attribute
#
RECEIVE = 'receive'
class-attribute
instance-attribute
#
FunctionTypeKind
class
#
Bases: StrEnum
Kind of a Function type.
Source code in wake/ir/enums.py
ABI_DECODE = 'abidecode'
class-attribute
instance-attribute
#
ABI_ENCODE = 'abiencode'
class-attribute
instance-attribute
#
ABI_ENCODE_CALL = 'abiencodecall'
class-attribute
instance-attribute
#
ABI_ENCODE_PACKED = 'abiencodepacked'
class-attribute
instance-attribute
#
ABI_ENCODE_WITH_SELECTOR = 'abiencodewithselector'
class-attribute
instance-attribute
#
ABI_ENCODE_WITH_SIGNATURE = 'abiencodewithsignature'
class-attribute
instance-attribute
#
ADD_MOD = 'addmod'
class-attribute
instance-attribute
#
ARRAY_POP = 'arraypop'
class-attribute
instance-attribute
#
ARRAY_PUSH = 'arraypush'
class-attribute
instance-attribute
#
ASSERT = 'assert'
class-attribute
instance-attribute
#
BARE_CALL = 'barecall'
class-attribute
instance-attribute
#
BARE_CALL_CODE = 'barecallcode'
class-attribute
instance-attribute
#
BARE_DELEGATE_CALL = 'baredelegatecall'
class-attribute
instance-attribute
#
BARE_STATIC_CALL = 'barestaticcall'
class-attribute
instance-attribute
#
BLOBHASH = 'blobhash'
class-attribute
instance-attribute
#
BLOCK_HASH = 'blockhash'
class-attribute
instance-attribute
#
BYTES_CONCAT = 'bytesconcat'
class-attribute
instance-attribute
#
BYTE_ARRAY_PUSH = 'bytearraypush'
class-attribute
instance-attribute
#
CREATION = 'creation'
class-attribute
instance-attribute
#
DECLARATION = 'declaration'
class-attribute
instance-attribute
#
DELEGATE_CALL = 'delegatecall'
class-attribute
instance-attribute
#
EC_RECOVER = 'ecrecover'
class-attribute
instance-attribute
#
ERROR = 'error'
class-attribute
instance-attribute
#
EVENT = 'event'
class-attribute
instance-attribute
#
EXTERNAL = 'external'
class-attribute
instance-attribute
#
GAS_LEFT = 'gasleft'
class-attribute
instance-attribute
#
INTERNAL = 'internal'
class-attribute
instance-attribute
#
KECCAK256 = 'keccak256'
class-attribute
instance-attribute
#
LOG0 = 'log0'
class-attribute
instance-attribute
#
LOG1 = 'log1'
class-attribute
instance-attribute
#
LOG2 = 'log2'
class-attribute
instance-attribute
#
LOG3 = 'log3'
class-attribute
instance-attribute
#
LOG4 = 'log4'
class-attribute
instance-attribute
#
META_TYPE = 'metatype'
class-attribute
instance-attribute
#
MUL_MOD = 'mulmod'
class-attribute
instance-attribute
#
OBJECT_CREATION = 'objectcreation'
class-attribute
instance-attribute
#
REQUIRE = 'require'
class-attribute
instance-attribute
#
REVERT = 'revert'
class-attribute
instance-attribute
#
RIPEMD160 = 'ripemd160'
class-attribute
instance-attribute
#
SELFDESTRUCT = 'selfdestruct'
class-attribute
instance-attribute
#
SEND = 'send'
class-attribute
instance-attribute
#
SET_GAS = 'setgas'
class-attribute
instance-attribute
#
SET_VALUE = 'setvalue'
class-attribute
instance-attribute
#
SHA256 = 'sha256'
class-attribute
instance-attribute
#
STRING_CONCAT = 'stringconcat'
class-attribute
instance-attribute
#
TRANSFER = 'transfer'
class-attribute
instance-attribute
#
UNWRAP = 'unwrap'
class-attribute
instance-attribute
#
WRAP = 'wrap'
class-attribute
instance-attribute
#
GlobalSymbol
class
#
Bases: 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 Wake 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 wake/ir/enums.py
ABI = -1
class-attribute
instance-attribute
#
ABI_DECODE = -400
class-attribute
instance-attribute
#
ABI_ENCODE = -401
class-attribute
instance-attribute
#
ABI_ENCODE_CALL = -405
class-attribute
instance-attribute
#
ABI_ENCODE_PACKED = -402
class-attribute
instance-attribute
#
ABI_ENCODE_WITH_SELECTOR = -403
class-attribute
instance-attribute
#
ABI_ENCODE_WITH_SIGNATURE = -404
class-attribute
instance-attribute
#
ADDMOD = -2
class-attribute
instance-attribute
#
ADDRESS_BALANCE = -700
class-attribute
instance-attribute
#
ADDRESS_CALL = -705
class-attribute
instance-attribute
#
ADDRESS_CODE = -701
class-attribute
instance-attribute
#
ADDRESS_CODEHASH = -702
class-attribute
instance-attribute
#
ADDRESS_DELEGATECALL = -706
class-attribute
instance-attribute
#
ADDRESS_SEND = -704
class-attribute
instance-attribute
#
ADDRESS_STATICCALL = -707
class-attribute
instance-attribute
#
ADDRESS_TRANSFER = -703
class-attribute
instance-attribute
#
ARRAY_LENGTH = -900
class-attribute
instance-attribute
#
ARRAY_POP = -902
class-attribute
instance-attribute
#
ARRAY_PUSH = -901
class-attribute
instance-attribute
#
ASSERT = -3
class-attribute
instance-attribute
#
BLOBHASH = -29
class-attribute
instance-attribute
#
BLOCK = -4
class-attribute
instance-attribute
#
BLOCKHASH = -5
class-attribute
instance-attribute
#
BLOCK_BASEFEE = -100
class-attribute
instance-attribute
#
BLOCK_BLOBBASEFEE = -108
class-attribute
instance-attribute
#
BLOCK_CHAINID = -101
class-attribute
instance-attribute
#
BLOCK_COINBASE = -102
class-attribute
instance-attribute
#
BLOCK_DIFFICULTY = -103
class-attribute
instance-attribute
#
BLOCK_GASLIMIT = -104
class-attribute
instance-attribute
#
BLOCK_NUMBER = -105
class-attribute
instance-attribute
#
BLOCK_PREVRANDAO = -107
class-attribute
instance-attribute
#
BLOCK_TIMESTAMP = -106
class-attribute
instance-attribute
#
BYTES_CONCAT = -500
class-attribute
instance-attribute
#
BYTES_LENGTH = -501
class-attribute
instance-attribute
#
BYTES_POP = -503
class-attribute
instance-attribute
#
BYTES_PUSH = -502
class-attribute
instance-attribute
#
ECRECOVER = -6
class-attribute
instance-attribute
#
FUNCTION_ADDRESS = -1003
class-attribute
instance-attribute
#
FUNCTION_GAS = -1002
class-attribute
instance-attribute
#
FUNCTION_SELECTOR = -1000
class-attribute
instance-attribute
#
FUNCTION_VALUE = -1001
class-attribute
instance-attribute
#
GASLEFT = -7
class-attribute
instance-attribute
#
KECCAK256 = -8
class-attribute
instance-attribute
#
LOG0 = -10
class-attribute
instance-attribute
#
LOG1 = -11
class-attribute
instance-attribute
#
LOG2 = -12
class-attribute
instance-attribute
#
LOG3 = -13
class-attribute
instance-attribute
#
LOG4 = -14
class-attribute
instance-attribute
#
MSG = -15
class-attribute
instance-attribute
#
MSG_DATA = -200
class-attribute
instance-attribute
#
MSG_SENDER = -201
class-attribute
instance-attribute
#
MSG_SIG = -202
class-attribute
instance-attribute
#
MSG_VALUE = -203
class-attribute
instance-attribute
#
MULMOD = -16
class-attribute
instance-attribute
#
NOW = -17
class-attribute
instance-attribute
#
REQUIRE = -18
class-attribute
instance-attribute
#
REVERT = -19
class-attribute
instance-attribute
#
RIPEMD160 = -20
class-attribute
instance-attribute
#
SELFDESTRUCT = -21
class-attribute
instance-attribute
#
SHA256 = -22
class-attribute
instance-attribute
#
SHA3 = -23
class-attribute
instance-attribute
#
STRING_CONCAT = -600
class-attribute
instance-attribute
#
SUICIDE = -24
class-attribute
instance-attribute
#
SUPER = -25
class-attribute
instance-attribute
#
THIS = -28
class-attribute
instance-attribute
#
TX = -26
class-attribute
instance-attribute
#
TX_GASPRICE = -300
class-attribute
instance-attribute
#
TX_ORIGIN = -301
class-attribute
instance-attribute
#
TYPE = -27
class-attribute
instance-attribute
#
TYPE_CREATION_CODE = -801
class-attribute
instance-attribute
#
TYPE_INTERFACE_ID = -803
class-attribute
instance-attribute
#
TYPE_MAX = -805
class-attribute
instance-attribute
#
TYPE_MIN = -804
class-attribute
instance-attribute
#
TYPE_NAME = -800
class-attribute
instance-attribute
#
TYPE_RUNTIME_CODE = -802
class-attribute
instance-attribute
#
USER_DEFINED_VALUE_TYPE_UNWRAP = -1101
class-attribute
instance-attribute
#
USER_DEFINED_VALUE_TYPE_WRAP = -1100
class-attribute
instance-attribute
#
InlineAssemblyEvmVersion
class
#
Bases: StrEnum
Source code in wake/ir/enums.py
BERLIN = 'berlin'
class-attribute
instance-attribute
#
BYZANTIUM = 'byzantium'
class-attribute
instance-attribute
#
CANCUN = 'cancun'
class-attribute
instance-attribute
#
CONSTANTINOPLE = 'constantinople'
class-attribute
instance-attribute
#
HOMESTEAD = 'homestead'
class-attribute
instance-attribute
#
ISTANBUL = 'istanbul'
class-attribute
instance-attribute
#
LONDON = 'london'
class-attribute
instance-attribute
#
PARIS = 'paris'
class-attribute
instance-attribute
#
PETERSBURG = 'petersburg'
class-attribute
instance-attribute
#
PRAGUE = 'prague'
class-attribute
instance-attribute
#
SHANGHAI = 'shanghai'
class-attribute
instance-attribute
#
SPURIOUS_DRAGON = 'spuriousDragon'
class-attribute
instance-attribute
#
TANGERINE_WHISTLE = 'tangerineWhistle'
class-attribute
instance-attribute
#
InlineAssemblyFlag
class
#
InlineAssemblySuffix
class
#
Bases: StrEnum
Source code in wake/ir/enums.py
LiteralKind
class
#
ModifierInvocationKind
class
#
Mutability
class
#
Bases: StrEnum
Mutability of a VariableDeclaration declaration node.
Source code in wake/ir/enums.py
StateMutability
class
#
Bases: StrEnum
State mutability of:
- Function type,
- FunctionDefinition declaration,
- ElementaryTypeName and FunctionTypeName type names.
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 wake/ir/enums.py
UnaryOpOperator
class
#
Bases: StrEnum
Unary operation operator used in an UnaryOperation expression.
Source code in wake/ir/enums.py
DELETE = 'delete'
class-attribute
instance-attribute
#
MINUS = '-'
class-attribute
instance-attribute
#
MINUS_MINUS = '--'
class-attribute
instance-attribute
#
NOT = '!'
class-attribute
instance-attribute
#
PLUS_PLUS = '++'
class-attribute
instance-attribute
#
TILDE = '~'
class-attribute
instance-attribute
#
Visibility
class
#
Bases: StrEnum
Visibility of:
- FunctionTypeName type name,
- FunctionDefinition, ModifierDefinition, StructDefinition and VariableDeclaration declarations.