Current section

Files

Jump to
evm lib evm builtin.ex
Raw

lib/evm/builtin.ex

defmodule EVM.Builtin do
@moduledoc """
Implements the built-in functions as defined in Appendix E
of the Yellow Paper. These are contract functions that
natively exist in Ethereum.
TODO: Implement and add doc tests.
"""
@spec run_ecrec(EVM.Gas.t, EVM.ExecEnv.t) :: {EVM.Gas.t, EVM.SubState.t, EVM.ExecEnv.t, EVM.VM.output}
def run_ecrec(gas, exec_env), do: {gas, %EVM.SubState{}, exec_env, <<>>}
@spec run_sha256(EVM.Gas.t, EVM.ExecEnv.t) :: {EVM.Gas.t, EVM.SubState.t, EVM.ExecEnv.t, EVM.VM.output}
def run_sha256(gas, exec_env), do: {gas, %EVM.SubState{}, exec_env, <<>>}
@spec run_rip160(EVM.Gas.t, EVM.ExecEnv.t) :: {EVM.Gas.t, EVM.SubState.t, EVM.ExecEnv.t, EVM.VM.output}
def run_rip160(gas, exec_env), do: {gas, %EVM.SubState{}, exec_env, <<>>}
@spec run_id(EVM.Gas.t, EVM.ExecEnv.t) :: {EVM.Gas.t, EVM.SubState.t, EVM.ExecEnv.t, EVM.VM.output}
def run_id(gas, exec_env), do: {gas, %EVM.SubState{}, exec_env, <<>>}
end