evm_mulmod

Implements EVM MULMOD: computes (a * b) mod n from the full 512-bit product, without UINT256 wraparound, and returns zero when n is zero. NULL input propagates to NULL.

Example

Local

1
SELECT evm_mulmod(7::UINT256, 7::UINT256, 10::UINT256)::VARCHAR AS result;
2
-- => [{"result":"9"}]
Notebook ready in readonly mode.

API reference

Exact signatures with descriptions, requirements, inputs, returns, and examples.

evm_mulmod(UINT256, UINT256, UINT256) #

EVM MULMOD over three UINT256 words using a 512-bit product.

Inputs

Name Type Use
a UINT256

UINT256 factor.

required positional
b UINT256

UINT256 factor.

required positional
n UINT256

UINT256 modulus; zero returns zero.

required positional

Returns

Name Type
result UINT256

Modular product. UINT256 residue in [0,n), zero for n=0, or NULL for NULL input.

Category and tags

Category
EVM utilities
Tag
Types
Tag
EVM