evm v0.1.14 EVM.Operation.StopAndArithmetic
Link to this section Summary
Functions
Addition operation
Modulo addition operation
Integer division operation
Exponential operation
Modulo remainder operation
Multiplication operation
Modulo multiplication operation
Signed integer division operation (truncated)
Extend length of two’s complement signed integer
Signed modulo remainder operation
Halts execution
Subtraction operation
Link to this section Functions
Addition operation.
Adds the values and wraps and encodes them
Examples
iex> EVM.Operation.StopAndArithmetic.add([1, 2], %{})
3
iex> EVM.Operation.StopAndArithmetic.add([-1, -5], %{})
-6
iex> EVM.Operation.StopAndArithmetic.add([0, 0], %{})
0
Link to this function
addmod(list, _)
addmod(EVM.Operation.stack_args, EVM.Operation.vm_map) :: EVM.val
Modulo addition operation.
Link to this function
div(list, _)
Integer division operation.
Examples
iex> EVM.Operation.StopAndArithmetic.div([5, 2], %{})
2
iex> EVM.Operation.StopAndArithmetic.div([10, 2], %{})
5
iex> EVM.Operation.StopAndArithmetic.div([10, 0], %{})
0
Modulo remainder operation.
Multiplication operation.
Examples
iex> EVM.Operation.StopAndArithmetic.mul([5, 2], %{})
10
iex> EVM.Operation.StopAndArithmetic.mul([5, -2], %{})
-10
Link to this function
mulmod(list, _)
mulmod(EVM.Operation.stack_args, EVM.Operation.vm_map) :: EVM.val
Modulo multiplication operation.
Signed integer division operation (truncated).
Link to this function
signextend(list, _)
signextend(EVM.Operation.stack_args, EVM.Operation.vm_map) :: EVM.val
Extend length of two’s complement signed integer.
Signed modulo remainder operation.
Link to this function
stop(list, map)
Halts execution.
In our implementation, this is a no-op.
Examples
iex> EVM.Operation.StopAndArithmetic.stop([], %{})
:noop