ethereum.forks.dao_fork.vm.memory

Ethereum Virtual Machine (EVM) Memory.

.. contents:: Table of Contents :backlinks: none :local:

Introduction

EVM memory operations.

memory_write

Writes to memory.

Parameters

memory : Memory contents of the EVM. start_position : Starting pointer to the memory. value : Data to write to memory.

def memory_write(memory: bytearray, ​​start_position: U256, ​​value: Bytes) -> None:
23
    """
24
    Writes to memory.
25
26
    Parameters
27
    ----------
28
    memory :
29
        Memory contents of the EVM.
30
    start_position :
31
        Starting pointer to the memory.
32
    value :
33
        Data to write to memory.
34
35
    """
36
    memory[start_position : int(start_position) + len(value)] = value

memory_read_bytes

Read bytes from memory.

Parameters

memory : Memory contents of the EVM. start_position : Starting pointer to the memory. size : Size of the data that needs to be read from start_position.

Returns

data_bytes : Data read from memory.

def memory_read_bytes(memory: bytearray, ​​start_position: U256, ​​size: U256) -> Bytes:
42
    """
43
    Read bytes from memory.
44
45
    Parameters
46
    ----------
47
    memory :
48
        Memory contents of the EVM.
49
    start_position :
50
        Starting pointer to the memory.
51
    size :
52
        Size of the data that needs to be read from `start_position`.
53
54
    Returns
55
    -------
56
    data_bytes :
57
        Data read from memory.
58
59
    """
60
    return Bytes(memory[start_position : Uint(start_position) + Uint(size)])

buffer_read

Read bytes from a buffer. Padding with zeros if necessary.

Parameters

buffer : Memory contents of the EVM. start_position : Starting pointer to the memory. size : Size of the data that needs to be read from start_position.

Returns

data_bytes : Data read from memory.

def buffer_read(buffer: Bytes, ​​start_position: U256, ​​size: U256) -> Bytes:
64
    """
65
    Read bytes from a buffer. Padding with zeros if necessary.
66
67
    Parameters
68
    ----------
69
    buffer :
70
        Memory contents of the EVM.
71
    start_position :
72
        Starting pointer to the memory.
73
    size :
74
        Size of the data that needs to be read from `start_position`.
75
76
    Returns
77
    -------
78
    data_bytes :
79
        Data read from memory.
80
81
    """
82
    return right_pad_zero_bytes(
83
        buffer[start_position : Uint(start_position) + Uint(size)], size
84
    )