Skip to content

Commit d52948d

Browse files
CodingCattwobobjiang
authored andcommitted
修改“预编译合约”相关语句,使之更易懂
结合EVM底层预编译合约的原理,让“预编译合约”与第一次调用预编译合约out-of-gas的语句更通俗易懂
1 parent d0c7d43 commit d52948d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

units-and-global-variables.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ ABI 编码函数
144144

145145
请注意,常量值会使用存储它们所需要的最少字节数进行打包。例如:``keccak256(0) == keccak256(uint8(0))``,``keccak256(0x12345678) == keccak256(uint32(0x12345678))``。
146146

147-
在一个私链上,你很有可能碰到由于 ``sha256``、``ripemd160`` 或者 ``ecrecover`` 引起的 Out-of-Gas。这个原因就是他们被当做所谓的预编译合约而执行,并且在第一次收到消息后这些合约才真正存在(尽管合约代码是硬代码)。发送到不存在的合约的消息非常昂贵,所以实际的执行会导致 Out-of-Gas 错误。在你的合约中实际使用它们之前,给每个合约发送一点儿以太币,比如 1 Wei。这在官方网络或测试网络上不是问题。
147+
在一个私链上,你很有可能碰到由于 ``sha256``、``ripemd160`` 或者 ``ecrecover`` 引起的 Out-of-Gas。原因是因为这些密码学函数在以太坊虚拟机(EVM)中以“预编译合约”形式存在的,且在第一次收到消息后才被真正存在(尽管合约代码是EVM中已存在的硬编码)。因此发送到不存在的合约的消息非常昂贵,所以实际的执行会导致 Out-of-Gas 错误。在你实际使用你的合约之前,给每个合约发送一点儿以太币,比如 1 Wei。这在官方网络或测试网络上不是问题。
148148

149149
.. index:: balance, send, transfer, call, callcode, delegatecall
150150
.. _address_related:

0 commit comments

Comments
 (0)