Clear up meaning of ZERO_ADDRESS, delete CREATE_CONTRACT_ADDRESS

There is no valid `CREATE_CONTRACT_ADDRESS`.  Some places on the internet say
account zero means contract creation, but that's not correct.

Transactions to `ZERO_ADDRESS` are legitimate transfers to that account, not
contract creations.  They are used to "burn" Eth.  People also send Eth to
address zero by accident, unrecoverably, due to poor user interface issues.

Signed-off-by: Jamie Lokier <jamie@shareable.org>
This commit is contained in:
Jamie Lokier 2021-05-14 15:20:36 +01:00
parent 745129c4ac
commit 90a961243e
No known key found for this signature in database
GPG Key ID: CBC25C68435C30A2

View File

@ -10,11 +10,13 @@ const
UINT_256_MAX*: UInt256 = high(UInt256)
INT_256_MAX_AS_UINT256* = high(Uint256) shr 1
UINT160CEILING*: UInt256 = 2.u256.pow(160)
# Transactions to ZERO_ADDRESS are legitimate transfers to that account, not
# contract creations. They are used to "burn" Eth. People also send Eth to
# address zero by accident, unrecoverably, due to poor user interface issues.
ZERO_ADDRESS* = default(EthAddress)
# TODO: use Option[EthAddress]?
# create contract address cannot be ZERO_ADDRESS
# because actual zero address exists
CREATE_CONTRACT_ADDRESS* = ZERO_ADDRESS
# ZERO_HASH32 is the parent hash of genesis blocks.
ZERO_HASH32* = Hash256()
GAS_LIMIT_EMA_DENOMINATOR* = 1_024