pub enum VyperExpr {
Show 37 variants
IntLit(i128),
BoolLit(bool),
StrLit(String),
HexLit(String),
Var(String),
SelfField(String),
MsgSender,
MsgValue,
BlockTimestamp,
BlockNumber,
ChainId,
TxOrigin,
Len(Box<VyperExpr>),
Convert(Box<VyperExpr>, VyperType),
Concat(Vec<VyperExpr>),
Keccak256(Box<VyperExpr>),
Sha256(Box<VyperExpr>),
Ecrecover(Box<VyperExpr>, Box<VyperExpr>, Box<VyperExpr>, Box<VyperExpr>),
Extract32(Box<VyperExpr>, Box<VyperExpr>),
FieldAccess(Box<VyperExpr>, String),
Index(Box<VyperExpr>, Box<VyperExpr>),
Call(String, Vec<VyperExpr>),
ExtCall(String, Box<VyperExpr>, String, Vec<VyperExpr>),
BinOp(String, Box<VyperExpr>, Box<VyperExpr>),
UnaryOp(String, Box<VyperExpr>),
IfExpr(Box<VyperExpr>, Box<VyperExpr>, Box<VyperExpr>),
StructLit(String, Vec<(String, VyperExpr)>),
ListLit(Vec<VyperExpr>),
Empty(VyperType),
MaxValue(VyperType),
MinValue(VyperType),
Isqrt(Box<VyperExpr>),
Uint2Str(Box<VyperExpr>),
RawCall {
addr: Box<VyperExpr>,
data: Box<VyperExpr>,
value: Option<Box<VyperExpr>>,
gas: Option<Box<VyperExpr>>,
},
CreateMinimalProxy(Box<VyperExpr>),
CreateCopyOf(Box<VyperExpr>),
CreateFromBlueprint(Box<VyperExpr>, Vec<VyperExpr>),
}Expand description
Vyper expression AST node.
Variants§
IntLit(i128)
Integer literal: 42
BoolLit(bool)
Boolean literal: True / False
StrLit(String)
String literal: "hello"
HexLit(String)
Hex literal: 0xdeadbeef
Var(String)
Variable reference: my_var
SelfField(String)
self.field — storage variable access
MsgSender
msg.sender
MsgValue
msg.value
BlockTimestamp
block.timestamp
BlockNumber
block.number
ChainId
chain.id
TxOrigin
tx.origin
Len(Box<VyperExpr>)
len(expr)
Convert(Box<VyperExpr>, VyperType)
convert(expr, T)
Concat(Vec<VyperExpr>)
concat(a, b, ...)
Keccak256(Box<VyperExpr>)
keccak256(expr)
Sha256(Box<VyperExpr>)
sha256(expr)
Ecrecover(Box<VyperExpr>, Box<VyperExpr>, Box<VyperExpr>, Box<VyperExpr>)
ecrecover(hash, v, r, s)
Extract32(Box<VyperExpr>, Box<VyperExpr>)
extract32(expr, start)
FieldAccess(Box<VyperExpr>, String)
Field access on a struct: expr.field
Index(Box<VyperExpr>, Box<VyperExpr>)
expr[index]
Call(String, Vec<VyperExpr>)
Function call: f(args...)
ExtCall(String, Box<VyperExpr>, String, Vec<VyperExpr>)
External call: Interface(addr).method(args...)
BinOp(String, Box<VyperExpr>, Box<VyperExpr>)
Binary operation: a + b
UnaryOp(String, Box<VyperExpr>)
Unary operation: not a, -a
IfExpr(Box<VyperExpr>, Box<VyperExpr>, Box<VyperExpr>)
Ternary: value if cond else default
StructLit(String, Vec<(String, VyperExpr)>)
Struct literal: MyStruct({field: val, ...})
ListLit(Vec<VyperExpr>)
List literal: [a, b, c]
Empty(VyperType)
empty(T) — zero value
MaxValue(VyperType)
max_value(T)
MinValue(VyperType)
min_value(T)
Isqrt(Box<VyperExpr>)
isqrt(n)
Uint2Str(Box<VyperExpr>)
uint2str(n) (Vyper 0.3+)
RawCall
raw_call(addr, data, value=v, gas=g)
Fields
CreateMinimalProxy(Box<VyperExpr>)
create_minimal_proxy_to(target)
CreateCopyOf(Box<VyperExpr>)
create_copy_of(target)
CreateFromBlueprint(Box<VyperExpr>, Vec<VyperExpr>)
create_from_blueprint(blueprint, args...)