ethereum.forks.tangerine_whistle.utils.address
Hardfork Utility Functions For Addresses.
.. contents:: Table of Contents :backlinks: none :local:
Introduction
Address specific functions used in this tangerine whistle version of specification.
to_address_masked
Convert a Uint or U256 value to a valid address (20 bytes).
Parameters
data : The numeric value to be converted to address.
Returns
address : Address
The obtained address.
                def to_address_masked(data: Uint | U256) -> Address:
            
| 25 |     """ | 
|---|---|
| 26 |     Convert a Uint or U256 value to a valid address (20 bytes). | 
| 27 |  | 
| 28 |     Parameters | 
| 29 |     ---------- | 
| 30 |     data : | 
| 31 |         The numeric value to be converted to address. | 
| 32 |  | 
| 33 |     Returns | 
| 34 |     ------- | 
| 35 |     address : `Address` | 
| 36 |         The obtained address. | 
| 37 |  | 
| 38 |     """ | 
| 39 |     return Address(data.to_be_bytes32()[-20:]) | 
compute_contract_address
Computes address of the new account that needs to be created.
Parameters
address : The address of the account that wants to create the new account. nonce : The transaction count of the account that wants to create the new account.
Returns
address: ethereum.forks.tangerine_whistle.fork_types.Address
The computed address of the new account.
                def compute_contract_address(address: Address, nonce: Uint) -> Address:
            
| 43 |     """ | 
|---|---|
| 44 |     Computes address of the new account that needs to be created. | 
| 45 |  | 
| 46 |     Parameters | 
| 47 |     ---------- | 
| 48 |     address : | 
| 49 |         The address of the account that wants to create the new account. | 
| 50 |     nonce : | 
| 51 |         The transaction count of the account that wants to create the new | 
| 52 |         account. | 
| 53 |  | 
| 54 |     Returns | 
| 55 |     ------- | 
| 56 |     address: `ethereum.forks.tangerine_whistle.fork_types.Address` | 
| 57 |         The computed address of the new account. | 
| 58 |  | 
| 59 |     """ | 
| 60 |     computed_address = keccak256(rlp.encode([address, nonce])) | 
| 61 |     canonical_address = computed_address[-20:] | 
| 62 |     padded_address = left_pad_zero_bytes(canonical_address, 20) | 
| 63 |     return Address(padded_address) |