04-Solidity8.0以太单位Gas和全局变量

Solidity8.0

04-Solidity8.0以太单位Gas和全局变量


在这里插入图片描述


前言

以太和Wei
交易ether.
类似于1美元等于 100 美分,1ether等于 10**18 wei。

Gas

ether您需要为交易支付多少费用?
您支付gas spent * gas price的金额ether,在哪里

gas是一个计算单位
gas spentgas是交易中使用的总金额
gas priceether是你愿意支付多少gas
具有较高gas价格的交易具有更高的优先级被包含在一个块中。
未用完的gas将被退还。

气体限制

您可以花费的汽油量有 2 个上限
gas limit(您愿意为交易使用的最大天然气量,由您设置)
block gas limit(区块中允许的最大气体量,由网络设置)

msg注解

msg的所有成员的值,包括msg.sender和msg.value可以在每个external函数调用中改变。这包括调用库函数。 如果你想在库函数实现访问限制使用msg.sender, 你必须手动设置msg.sender作为参数。

随机源注解

不要依赖block.timestamp,now和block.blockhash作为随机源
时间戳timestamp和区块哈希blockhash在一定程度上会受到矿工的影响。
例如,矿区中的坏节点可以对选定的哈希运行casino payout函数,如果他们没有收到任何钱,只需重试不同的哈希。
当前块时间戳必须严格大于最后一个块的时间戳,但唯一的保证是它将位于规范链中两个连续块的时间戳之间的某处。 由于区块链是增长可变的,所以不能获取整个区块链的哈希值。 您只能访问最近256个区块的哈希值,其他所有值都将为0。

错误处理(Error Handling)

assert(bool condition):如果条件不满足则抛出异常 - 用于内部错误。
require(bool condition):如果条件不满足则抛出异常 - 用于输入或外部组件中的错误。
revert():中止执行并恢复状态更改

数学和加密功能(Mathematical and Cryptographic Functions)

addmod(uint x, uint y, uint k) returns (uint):
计算(x + y)%k的值,其中加法以指定精度执行,并且不超过2 ** 256。从版本0.5.0开始断言k!= 0。
mulmod(uint x, uint y, uint k) returns (uint):
计算(x * y)%k的值,其中乘法以指定精度执行,并且不超过2 ** 256。从版本0.5.0开始断言k!= 0
keccak256(…) returns (bytes32):
计算(紧凑排列的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值