EVMC
evmc::address Struct Reference

The big-endian 160-bit hash suitable for keeping an Ethereum address. More...

#include <evmc.hpp>

Inheritance diagram for evmc::address:
evmc_address

Public Member Functions

constexpr address (evmc_address init={}) noexcept
 Default and converting constructor.
 
constexpr address (uint64_t v) noexcept
 Converting constructor from unsigned integer value.
 
constexpr operator bool () const noexcept
 Explicit operator converting to bool.
 
constexpr operator bytes_view () const noexcept
 Implicit operator converting to bytes_view.
 

Additional Inherited Members

- Public Attributes inherited from evmc_address
uint8_t bytes [20]
 The 20 bytes of the hash.
 

Detailed Description

The big-endian 160-bit hash suitable for keeping an Ethereum address.

This type wraps C evmc_address to make sure objects of this type are always initialized.

Definition at line 29 of file evmc.hpp.

Constructor & Destructor Documentation

◆ address() [1/2]

constexpr evmc::address::address ( evmc_address  init = {})
inlineconstexprnoexcept

Default and converting constructor.

Initializes bytes to zeros if not other init value provided.

Definition at line 34 of file evmc.hpp.

34{}) noexcept : evmc_address{init} {}
Big-endian 160-bit hash suitable for keeping an Ethereum address.
Definition: evmc.h:69

◆ address() [2/2]

constexpr evmc::address::address ( uint64_t  v)
inlineexplicitconstexprnoexcept

Converting constructor from unsigned integer value.

This constructor assigns the v value to the last 8 bytes [12:19] in big-endian order.

Definition at line 40 of file evmc.hpp.

41 : evmc_address{{0,
42 0,
43 0,
44 0,
45 0,
46 0,
47 0,
48 0,
49 0,
50 0,
51 0,
52 0,
53 static_cast<uint8_t>(v >> 56),
54 static_cast<uint8_t>(v >> 48),
55 static_cast<uint8_t>(v >> 40),
56 static_cast<uint8_t>(v >> 32),
57 static_cast<uint8_t>(v >> 24),
58 static_cast<uint8_t>(v >> 16),
59 static_cast<uint8_t>(v >> 8),
60 static_cast<uint8_t>(v >> 0)}}
61 {}

Member Function Documentation

◆ operator bool()

constexpr evmc::address::operator bool ( ) const
inlineexplicitconstexprnoexcept

Explicit operator converting to bool.

Definition at line 266 of file evmc.hpp.

267{
268 return !is_zero(*this);
269}
constexpr bool is_zero(const address &a) noexcept
Checks if the given address is the zero address.
Definition: evmc.hpp:261

◆ operator bytes_view()

constexpr evmc::address::operator bytes_view ( ) const
inlineconstexprnoexcept

Implicit operator converting to bytes_view.

Definition at line 67 of file evmc.hpp.

67{ return {bytes, sizeof(bytes)}; }
uint8_t bytes[20]
The 20 bytes of the hash.
Definition: evmc.h:71

The documentation for this struct was generated from the following file: