UNPKG

@tokamak-zk-evm/synthesizer

Version:

Tokamak zk-EVM Synthesizer - Processes Ethereum transactions into wire maps for Tokamak zk-SNARK proof generation

70 lines 2.25 kB
import type { ArithmeticOperator } from '../types/index.js'; export type ArithmeticFunction = (...args: bigint[]) => bigint | bigint[]; /** * Utility class for handling Synthesizer arithmetic operations */ export declare class ArithmeticOperations { private static readonly MAX_UINT256; private static readonly SIGN_BIT; private static readonly N; /** * Basic arithmetic operations */ static add(a: bigint, b: bigint): bigint; static mul(a: bigint, b: bigint): bigint; static sub(a: bigint, b: bigint): bigint; static div(a: bigint, b: bigint): bigint; static sdiv(a: bigint, b: bigint): bigint; /** * Modulo operations */ static mod(a: bigint, b: bigint): bigint; static smod(a: bigint, b: bigint): bigint; static addmod(a: bigint, b: bigint, N: bigint): bigint; static mulmod(a: bigint, b: bigint, N: bigint): bigint; /** * @deprecated * Exponentiation operation */ static exp(base: bigint, exponent: bigint): bigint; /** * Comparison operations */ static lt(a: bigint, b: bigint): bigint; static gt(a: bigint, b: bigint): bigint; static slt(a: bigint, b: bigint): bigint; static sgt(a: bigint, b: bigint): bigint; static eq(a: bigint, b: bigint): bigint; static iszero(a: bigint): bigint; /** * Bit operations */ static and(a: bigint, b: bigint): bigint; static or(a: bigint, b: bigint): bigint; static xor(a: bigint, b: bigint): bigint; static not(a: bigint): bigint; /** * Shift operations */ static shl(shift: bigint, value: bigint): bigint; static shr(shift: bigint, value: bigint): bigint; static sar(shift: bigint, value: bigint): bigint; /** * Byte operations */ static byte(index: bigint, value: bigint): bigint; /** * Sign extension */ static signextend(k: bigint, value: bigint): bigint; /** * Decimal to Bit */ static decToBit(dec: bigint): bigint[]; /** * Subroutine for EXP */ static subEXP(c: bigint, a: bigint, b: bigint): bigint[]; } export declare const OPERATION_MAPPING: Record<ArithmeticOperator, ArithmeticFunction>; //# sourceMappingURL=arithmetic.d.ts.map