Fabcoin Core  0.16.2
P2P Digital Currency
Public Attributes | List of all members
evm_variant Union Reference

Variant type to represent possible types of values used in EVM. More...

#include <evm.h>

Collaboration diagram for evm_variant:
[legend]

Public Attributes

int64_t int64
 A host-endian 64-bit integer. More...
 
struct evm_uint256be uint256be
 A big-endian 256-bit integer or hash. More...
 
struct {
   uint8_t   address_padding [12]
 Additional padding to align the evm_variant::address with lower bytes of a full 256-bit hash. More...
 
   struct evm_uint160be   address
 An Ethereum address. More...
 
}; 
 
struct {
   uint8_t const *   data
 Pointer to the data. More...
 
   size_t   data_size
 Size of the referenced memory/data. More...
 
}; 
 A memory reference. More...
 

Detailed Description

Variant type to represent possible types of values used in EVM.

Type-safety is lost around the code that uses this type. We should have complete set of unit tests covering all possible cases. The size of the type is 64 bytes and should fit in single cache line.

Definition at line 138 of file evm.h.

Member Data Documentation

struct { ... }
struct { ... }

A memory reference.

struct evm_uint160be evm_variant::address

An Ethereum address.

Definition at line 151 of file evm.h.

uint8_t evm_variant::address_padding[12]

Additional padding to align the evm_variant::address with lower bytes of a full 256-bit hash.

Definition at line 148 of file evm.h.

uint8_t const* evm_variant::data

Pointer to the data.

Definition at line 157 of file evm.h.

size_t evm_variant::data_size

Size of the referenced memory/data.

Definition at line 160 of file evm.h.

int64_t evm_variant::int64

A host-endian 64-bit integer.

Definition at line 140 of file evm.h.

struct evm_uint256be evm_variant::uint256be

A big-endian 256-bit integer or hash.

Definition at line 143 of file evm.h.


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