环境变量和常量¶
环境变量¶
环境变量始终存在于命名空间中,主要用于提供有关区块链或当前交易的信息。
区块和交易属性¶
名称 |
类型 |
值 |
---|---|---|
|
|
当前区块矿工的地址 |
|
|
当前区块难度 |
|
|
由信标链提供的当前随机数信标 |
|
|
当前区块编号 |
|
|
等效于 |
|
|
当前区块纪元时间戳 |
|
|
链 ID |
|
|
消息数据 |
|
|
剩余 gas |
|
|
消息发送者(当前调用) |
|
|
与消息一起发送的 wei 数量 |
|
|
交易发送者(完整调用链) |
|
|
当前交易的 gas 价格(以 wei 为单位) |
注意
block.prevrandao
是 block.difficulty
的别名。由于 block.difficulty
根据 EIP-4399 在“合并” (巴黎硬分叉) 后被认为已弃用,我们建议使用 block.prevrandao
。
self 变量¶
self
是一个环境变量,用于在合约内部引用合约。除了普通的 address 成员之外,self
允许您读取和写入状态变量,并调用合约内的私有函数。
名称 |
类型 |
值 |
---|---|---|
|
|
当前合约的地址 |
|
|
当前合约的余额 |
自定义常量¶
自定义常量可以在 Vyper 中的全局级别定义。要定义常量,请使用 constant
关键字。
TOTAL_SUPPLY: constant(uint256) = 10000000
total_supply: public(uint256)
@external
def __init__():
self.total_supply = TOTAL_SUPPLY