# `EEVM.Interpreter.Instructions.Environment.Data`
[🔗](https://github.com/mw2000/eevm/blob/main/lib/eevm/interpreter/instructions/environment/data.ex#L1)

Data-copying environment opcodes that read from calldata, code, or return data.

These opcodes load data from the current execution context into the stack or
memory, with dynamic gas costs for memory expansion and per-word copy fees.

Includes: CALLDATALOAD (0x35), CALLDATACOPY (0x37), CODECOPY (0x39),
and RETURNDATACOPY (0x3E).

# `execute`

```elixir
@spec execute(non_neg_integer(), EEVM.Interpreter.MachineState.t()) ::
  {:ok, EEVM.Interpreter.MachineState.t()}
  | {:error, atom(), EEVM.Interpreter.MachineState.t()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
