UNPKG

@anonklub/halo2-eth-membership

Version:

Wasm Rust crate for verifying Secp256k1 signatures

883 lines (876 loc) 28 kB
/* tslint:disable */ /* eslint-disable */ /** * @param {Uint8Array} s * @param {Uint8Array} r * @param {boolean} is_y_odd * @param {Uint8Array} msg_hash * @param {Uint8Array} merkle_proof_bytes_serialized * @param {Uint8Array} params * @returns {Uint8Array} */ export function prove_membership(s: Uint8Array, r: Uint8Array, is_y_odd: boolean, msg_hash: Uint8Array, merkle_proof_bytes_serialized: Uint8Array, params: Uint8Array): Uint8Array; /** * @param {Uint8Array} membership_proof * @param {Uint8Array} params * @returns {boolean} */ export function verify_membership(membership_proof: Uint8Array, params: Uint8Array): boolean; /** */ export function initPanicHook(): void; /** * @param {number} num_threads * @returns {Promise<any>} */ export function initThreadPool(num_threads: number): Promise<any>; /** * @param {number} receiver */ export function wbg_rayon_start_worker(receiver: number): void; /** * @param {(string)[]} leaves * @param {string} leaf * @param {number} depth * @returns {Uint8Array} */ export function generate_merkle_proof(leaves: (string)[], leaf: string, depth: number): Uint8Array; export interface CircuitStats { advice: number; lookup: number; fixed: number; instance: number; k: number; } export interface CircuitConfig { k: number; numAdvice: number; numLookupAdvice: number; numInstance: number; numLookupBits: number; numVirtualInstance: number; } /** */ export class Bn254Fq2Point { free(): void; /** * @returns {Bn254FqPoint} */ c0(): Bn254FqPoint; /** * @returns {Bn254FqPoint} */ c1(): Bn254FqPoint; } /** * We use 3 limbs with 88 bits each. * NOT constrained to be less than the prime. */ export class Bn254FqPoint { free(): void; /** * @param {Halo2LibWasm} lib_wasm * @returns {JsCircuitValue256} */ to_circuit_value_256(lib_wasm: Halo2LibWasm): JsCircuitValue256; } /** */ export class Bn254G1AffinePoint { free(): void; /** * @returns {Bn254FqPoint} */ x(): Bn254FqPoint; /** * @returns {Bn254FqPoint} */ y(): Bn254FqPoint; } /** */ export class Bn254G2AffinePoint { free(): void; /** * @returns {Bn254Fq2Point} */ x(): Bn254Fq2Point; /** * @returns {Bn254Fq2Point} */ y(): Bn254Fq2Point; } /** */ export class Halo2LibWasm { free(): void; /** * Takes in CircuitValue256 in hi-lo form and loads internal CircuitBn254Fq type (we use 3 limbs of 88 bits). * This function does not range check `hi,lo` to be `uint128` in case it's already done elsewhere. * @param {JsCircuitValue256} val * @returns {Bn254FqPoint} */ load_bn254_fq(val: JsCircuitValue256): Bn254FqPoint; /** * Doesn't range check limbs of g1_point. * Does not allow you to load identity point. * @param {JsCircuitBn254G1Affine} point * @returns {Bn254G1AffinePoint} */ load_bn254_g1(point: JsCircuitBn254G1Affine): Bn254G1AffinePoint; /** * `g1_points` should be array of `CircuitBn254G1Affine` in hi-lo form. * This function does not range check `hi,lo` to be `uint128` in case it's already done elsewhere. * Prevents any g1_points from being identity. * @param {Array<any>} g1_points * @returns {Bn254G1AffinePoint} */ bn254_g1_sum(g1_points: Array<any>): Bn254G1AffinePoint; /** * `g1_point_1` and `g1_point_2` are `CircuitBn254G1Affine` points in hi-lo form. * This function does not range check `hi,lo` to be `uint128` in case it's already done elsewhere * and also it constraints that g1_point_1.x != g1_point_2.x * Prevents any g1_points from being identity. * @param {JsCircuitBn254G1Affine} g1_point_1 * @param {JsCircuitBn254G1Affine} g1_point_2 * @returns {Bn254G1AffinePoint} */ bn254_g1_sub_unequal(g1_point_1: JsCircuitBn254G1Affine, g1_point_2: JsCircuitBn254G1Affine): Bn254G1AffinePoint; /** * Doesn't range check limbs of g2_point. * Does not allow you to load identity point. * @param {JsCircuitBn254G2Affine} point * @returns {Bn254G2AffinePoint} */ load_bn254_g2(point: JsCircuitBn254G2Affine): Bn254G2AffinePoint; /** * `g2_points` should be array of `CircuitBn254G2Affine` in hi-lo form. * This function does not range check `hi,lo` to be `uint128` in case it's already done elsewhere. * Prevents any g2_points from being identity. * @param {Array<any>} g2_points * @returns {Bn254G2AffinePoint} */ bn254_g2_sum(g2_points: Array<any>): Bn254G2AffinePoint; /** * Verifies that e(lhs_g1, lhs_g2) = e(rhs_g1, rhs_g2) by checking e(lhs_g1, lhs_g2)*e(-rhs_g1, rhs_g2) === 1 * Returns [CircuitValue] for the result as a boolean (1 if signature verification is successful). * None of the points should be identity. * @param {Bn254G1AffinePoint} lhs_g1 * @param {Bn254G2AffinePoint} lhs_g2 * @param {Bn254G1AffinePoint} rhs_g1 * @param {Bn254G2AffinePoint} rhs_g2 * @returns {number} */ bn254_pairing_check(lhs_g1: Bn254G1AffinePoint, lhs_g2: Bn254G2AffinePoint, rhs_g1: Bn254G1AffinePoint, rhs_g2: Bn254G2AffinePoint): number; /** * Doesn't range check limbs of point. * Pubkey is a point on * @param {JsCircuitSecp256k1Affine} point * @returns {Secp256k1AffinePoint} */ load_secp256k1_pubkey(point: JsCircuitSecp256k1Affine): Secp256k1AffinePoint; /** * Assumes all `JsCircuitValue256` limbs have been range checked to be `u128`. * @param {Secp256k1AffinePoint} pubkey * @param {JsCircuitValue256} r * @param {JsCircuitValue256} s * @param {JsCircuitValue256} msg_hash * @returns {number} */ verify_secp256k1_ecdsa_signature(pubkey: Secp256k1AffinePoint, r: JsCircuitValue256, s: JsCircuitValue256, msg_hash: JsCircuitValue256): number; /** * @param {bigint} sk * @param {bigint} msg_hash * @param {bigint} k * @returns {number} */ ecdsa_benchmark(sk: bigint, msg_hash: bigint, k: bigint): number; /** * @param {number} hi * @param {number} lo * @returns {JsCircuitValue256} */ to_js_circuit_value_256(hi: number, lo: number): JsCircuitValue256; /** * @param {JsCircuitValue256} x * @param {JsCircuitValue256} y * @returns {JsCircuitBn254G1Affine} */ to_js_circuit_bn254_g1_affine(x: JsCircuitValue256, y: JsCircuitValue256): JsCircuitBn254G1Affine; /** * @param {JsCircuitValue256} c0 * @param {JsCircuitValue256} c1 * @returns {JsCircuitBn254Fq2} */ to_js_circuit_bn254_fq2(c0: JsCircuitValue256, c1: JsCircuitValue256): JsCircuitBn254Fq2; /** * @param {JsCircuitBn254Fq2} x * @param {JsCircuitBn254Fq2} y * @returns {JsCircuitBn254G2Affine} */ to_js_circuit_bn254_g2_affine(x: JsCircuitBn254Fq2, y: JsCircuitBn254Fq2): JsCircuitBn254G2Affine; /** * @param {JsCircuitValue256} x * @param {JsCircuitValue256} y * @returns {JsCircuitSecp256k1Affine} */ to_js_circuit_secp256k1_affine(x: JsCircuitValue256, y: JsCircuitValue256): JsCircuitSecp256k1Affine; /** * @param {Halo2Wasm} circuit */ constructor(circuit: Halo2Wasm); /** */ config(): void; /** * @param {number} a * @param {number} b * @returns {number} */ add(a: number, b: number): number; /** * @param {number} a * @param {number} b * @returns {number} */ sub(a: number, b: number): number; /** * @param {number} a * @returns {number} */ neg(a: number): number; /** * @param {number} a * @param {number} b * @returns {number} */ mul(a: number, b: number): number; /** * @param {number} a * @param {number} b * @param {number} c * @returns {number} */ mul_add(a: number, b: number, c: number): number; /** * @param {number} a * @param {number} b * @returns {number} */ mul_not(a: number, b: number): number; /** * @param {number} a */ assert_bit(a: number): void; /** * @param {number} a * @param {number} b * @returns {number} */ div_unsafe(a: number, b: number): number; /** * @param {number} a * @param {string} b */ assert_is_const(a: number, b: string): void; /** * @param {Uint32Array} a * @param {Uint32Array} b * @returns {number} */ inner_product(a: Uint32Array, b: Uint32Array): number; /** * @param {Uint32Array} a * @returns {number} */ sum(a: Uint32Array): number; /** * @param {number} a * @param {number} b * @returns {number} */ and(a: number, b: number): number; /** * @param {number} a * @param {number} b * @returns {number} */ or(a: number, b: number): number; /** * @param {number} a * @returns {number} */ not(a: number): number; /** * @param {number} a * @returns {number} */ dec(a: number): number; /** * @param {number} a * @param {number} b * @param {number} sel * @returns {number} */ select(a: number, b: number, sel: number): number; /** * @param {number} a * @param {number} b * @param {number} c * @returns {number} */ or_and(a: number, b: number, c: number): number; /** * @param {Uint32Array} a * @returns {Uint32Array} */ bits_to_indicator(a: Uint32Array): Uint32Array; /** * @param {number} a * @param {string} b * @returns {Uint32Array} */ idx_to_indicator(a: number, b: string): Uint32Array; /** * @param {Uint32Array} a * @param {Uint32Array} indicator * @returns {number} */ select_by_indicator(a: Uint32Array, indicator: Uint32Array): number; /** * @param {Uint32Array} a * @param {number} idx * @returns {number} */ select_from_idx(a: Uint32Array, idx: number): number; /** * @param {number} a * @returns {number} */ is_zero(a: number): number; /** * @param {number} a * @param {number} b * @returns {number} */ is_equal(a: number, b: number): number; /** * @param {number} a * @param {string} num_bits * @returns {Uint32Array} */ num_to_bits(a: number, num_bits: string): Uint32Array; /** * @param {number} a * @param {number} b */ constrain_equal(a: number, b: number): void; /** * @param {number} a * @param {string} b */ range_check(a: number, b: string): void; /** * @param {number} a * @param {number} b * @param {string} size */ check_less_than(a: number, b: number, size: string): void; /** * @param {number} a * @param {string} b */ check_less_than_safe(a: number, b: string): void; /** * @param {number} a * @param {number} b * @param {string} size * @returns {number} */ is_less_than(a: number, b: number, size: string): number; /** * @param {number} a * @param {string} b * @returns {number} */ is_less_than_safe(a: number, b: string): number; /** * @param {number} a * @param {string} b * @param {string} size * @returns {Uint32Array} */ div_mod(a: number, b: string, size: string): Uint32Array; /** * Returns a 256-bit hi-lo pair from a single CircuitValue * * See `check_hi_lo` for what is constrained. * * * `a`: the CircuitValue to split into hi-lo * @param {number} a * @returns {Uint32Array} */ to_hi_lo(a: number): Uint32Array; /** * Returns a single CircuitValue from a hi-lo pair * * NOTE: this can fail if the hi-lo pair is greater than the Fr modulus. * See `check_hi_lo` for what is constrained. * * * `hi`: the high 128 bits of the CircuitValue * * `lo`: the low 128 bits of the CircuitValue * @param {number} hi * @param {number} lo * @returns {number} */ from_hi_lo(hi: number, lo: number): number; /** * @param {number} a * @param {number} b * @param {string} a_size * @param {string} b_size * @returns {Uint32Array} */ div_mod_var(a: number, b: number, a_size: string, b_size: string): Uint32Array; /** * @param {number} a * @param {number} b * @param {string} max_bits * @returns {number} */ pow_var(a: number, b: number, max_bits: string): number; /** * @param {Uint32Array} a * @returns {number} */ poseidon(a: Uint32Array): number; /** * @param {string} val * @returns {number} */ witness(val: string): number; /** * @param {string} val * @returns {number} */ constant(val: string): number; /** * @param {Halo2Wasm} circuit * @param {number} a * @param {number} col */ make_public(circuit: Halo2Wasm, a: number, col: number): void; /** * @param {Halo2Wasm} circuit * @param {number} a */ log(circuit: Halo2Wasm, a: number): void; /** * @param {number} a * @returns {string} */ value(a: number): string; /** * @returns {number} */ lookup_bits(): number; } /** */ export class Halo2Wasm { free(): void; /** */ constructor(); /** */ clear(): void; /** */ clearInstances(): void; /** * @param {Uint8Array} proof */ verify(proof: Uint8Array): void; /** * @param {number} col * @returns {Uint32Array} */ getInstances(col: number): Uint32Array; /** * @param {Uint32Array} instances * @param {number} col */ setInstances(instances: Uint32Array, col: number): void; /** * @param {number} col * @returns {any} */ getInstanceValues(col: number): any; /** * @param {CircuitConfig} config */ config(config: CircuitConfig): void; /** * @returns {CircuitStats} */ getCircuitStats(): CircuitStats; /** * @returns {Uint8Array} */ getVk(): Uint8Array; /** * @returns {Uint8Array} */ getPartialVk(): Uint8Array; /** * @returns {Uint8Array} */ getPk(): Uint8Array; /** */ assignInstances(): void; /** */ mock(): void; /** * @param {Uint8Array} params */ loadParams(params: Uint8Array): void; /** * @param {Uint8Array} vk */ loadVk(vk: Uint8Array): void; /** * @param {Uint8Array} pk */ loadPk(pk: Uint8Array): void; /** */ genVk(): void; /** */ genPk(): void; /** * @returns {Uint8Array} */ prove(): Uint8Array; /** * For console logging only. * @param {string} a */ log(a: string): void; } /** */ export class JsCircuitBn254Fq2 { free(): void; /** * @param {JsCircuitValue256} c0 * @param {JsCircuitValue256} c1 */ constructor(c0: JsCircuitValue256, c1: JsCircuitValue256); /** */ c0: JsCircuitValue256; /** */ c1: JsCircuitValue256; } /** */ export class JsCircuitBn254G1Affine { free(): void; /** * @param {JsCircuitValue256} x * @param {JsCircuitValue256} y */ constructor(x: JsCircuitValue256, y: JsCircuitValue256); /** */ x: JsCircuitValue256; /** */ y: JsCircuitValue256; } /** */ export class JsCircuitBn254G2Affine { free(): void; /** * @param {JsCircuitBn254Fq2} x * @param {JsCircuitBn254Fq2} y */ constructor(x: JsCircuitBn254Fq2, y: JsCircuitBn254Fq2); /** */ x: JsCircuitBn254Fq2; /** */ y: JsCircuitBn254Fq2; } /** */ export class JsCircuitSecp256k1Affine { free(): void; /** * @param {JsCircuitValue256} x * @param {JsCircuitValue256} y */ constructor(x: JsCircuitValue256, y: JsCircuitValue256); /** */ x: JsCircuitValue256; /** */ y: JsCircuitValue256; } /** * When this type is used, it is **ASSUMED** that the corresponding `hi,lo` [AssignedValue]s have been range checked to be 128 bits each. */ export class JsCircuitValue256 { free(): void; /** * @param {number} hi * @param {number} lo */ constructor(hi: number, lo: number); /** */ hi: number; /** */ lo: number; } /** */ export class Secp256k1AffinePoint { free(): void; /** * @returns {Secp256k1FpPoint} */ x(): Secp256k1FpPoint; /** * @returns {Secp256k1FpPoint} */ y(): Secp256k1FpPoint; } /** * We use 3 limbs with 88 bits each. * NOT constrained to be less than the prime. */ export class Secp256k1FpPoint { free(): void; /** * @param {Halo2LibWasm} lib_wasm * @returns {JsCircuitValue256} */ to_circuit_value_256(lib_wasm: Halo2LibWasm): JsCircuitValue256; } /** * We use 3 limbs with 88 bits each. * NOT constrained to be less than the prime. */ export class Secp256k1FqPoint { free(): void; /** * @param {Halo2LibWasm} lib_wasm * @returns {JsCircuitValue256} */ to_circuit_value_256(lib_wasm: Halo2LibWasm): JsCircuitValue256; } /** */ export class Secp256k1VerifyCircuit { free(): void; } /** */ export class wbg_rayon_PoolBuilder { free(): void; /** * @returns {number} */ numThreads(): number; /** * @returns {number} */ receiver(): number; /** */ build(): void; } export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; export interface InitOutput { readonly prove_membership: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void; readonly verify_membership: (a: number, b: number, c: number, d: number) => number; readonly generate_merkle_proof: (a: number, b: number, c: number, d: number, e: number, f: number) => void; readonly __wbg_secp256k1verifycircuit_free: (a: number, b: number) => void; readonly __wbg_bn254fqpoint_free: (a: number, b: number) => void; readonly bn254fqpoint_to_circuit_value_256: (a: number, b: number) => number; readonly __wbg_bn254fq2point_free: (a: number, b: number) => void; readonly bn254fq2point_c0: (a: number) => number; readonly bn254fq2point_c1: (a: number) => number; readonly __wbg_bn254g1affinepoint_free: (a: number, b: number) => void; readonly bn254g1affinepoint_x: (a: number) => number; readonly bn254g1affinepoint_y: (a: number) => number; readonly __wbg_bn254g2affinepoint_free: (a: number, b: number) => void; readonly bn254g2affinepoint_x: (a: number) => number; readonly bn254g2affinepoint_y: (a: number) => number; readonly __wbg_secp256k1affinepoint_free: (a: number, b: number) => void; readonly secp256k1affinepoint_x: (a: number) => number; readonly secp256k1affinepoint_y: (a: number) => number; readonly __wbg_jscircuitvalue256_free: (a: number, b: number) => void; readonly __wbg_get_jscircuitvalue256_hi: (a: number) => number; readonly __wbg_set_jscircuitvalue256_hi: (a: number, b: number) => void; readonly __wbg_get_jscircuitvalue256_lo: (a: number) => number; readonly __wbg_set_jscircuitvalue256_lo: (a: number, b: number) => void; readonly jscircuitvalue256_new: (a: number, b: number) => number; readonly __wbg_jscircuitbn254fq2_free: (a: number, b: number) => void; readonly __wbg_get_jscircuitbn254fq2_c0: (a: number) => number; readonly __wbg_set_jscircuitbn254fq2_c0: (a: number, b: number) => void; readonly __wbg_get_jscircuitbn254fq2_c1: (a: number) => number; readonly __wbg_set_jscircuitbn254fq2_c1: (a: number, b: number) => void; readonly jscircuitbn254fq2_new: (a: number, b: number) => number; readonly __wbg_jscircuitbn254g2affine_free: (a: number, b: number) => void; readonly __wbg_get_jscircuitbn254g2affine_x: (a: number) => number; readonly __wbg_set_jscircuitbn254g2affine_x: (a: number, b: number) => void; readonly __wbg_get_jscircuitbn254g2affine_y: (a: number) => number; readonly __wbg_set_jscircuitbn254g2affine_y: (a: number, b: number) => void; readonly jscircuitbn254g2affine_new: (a: number, b: number) => number; readonly halo2libwasm_load_bn254_fq: (a: number, b: number) => number; readonly halo2libwasm_load_bn254_g1: (a: number, b: number) => number; readonly halo2libwasm_bn254_g1_sum: (a: number, b: number) => number; readonly halo2libwasm_bn254_g1_sub_unequal: (a: number, b: number, c: number) => number; readonly halo2libwasm_load_bn254_g2: (a: number, b: number) => number; readonly halo2libwasm_bn254_g2_sum: (a: number, b: number) => number; readonly halo2libwasm_bn254_pairing_check: (a: number, b: number, c: number, d: number, e: number) => number; readonly halo2libwasm_load_secp256k1_pubkey: (a: number, b: number) => number; readonly halo2libwasm_verify_secp256k1_ecdsa_signature: (a: number, b: number, c: number, d: number, e: number) => number; readonly halo2libwasm_ecdsa_benchmark: (a: number, b: number, c: number, d: number) => number; readonly halo2libwasm_to_js_circuit_value_256: (a: number, b: number, c: number) => number; readonly halo2libwasm_to_js_circuit_bn254_fq2: (a: number, b: number, c: number) => number; readonly halo2libwasm_to_js_circuit_bn254_g2_affine: (a: number, b: number, c: number) => number; readonly __wbg_halo2libwasm_free: (a: number, b: number) => void; readonly halo2libwasm_new: (a: number) => number; readonly halo2libwasm_config: (a: number) => void; readonly halo2libwasm_add: (a: number, b: number, c: number) => number; readonly halo2libwasm_sub: (a: number, b: number, c: number) => number; readonly halo2libwasm_neg: (a: number, b: number) => number; readonly halo2libwasm_mul: (a: number, b: number, c: number) => number; readonly halo2libwasm_mul_add: (a: number, b: number, c: number, d: number) => number; readonly halo2libwasm_mul_not: (a: number, b: number, c: number) => number; readonly halo2libwasm_assert_bit: (a: number, b: number) => void; readonly halo2libwasm_div_unsafe: (a: number, b: number, c: number) => number; readonly halo2libwasm_assert_is_const: (a: number, b: number, c: number, d: number) => void; readonly halo2libwasm_inner_product: (a: number, b: number, c: number, d: number, e: number) => number; readonly halo2libwasm_sum: (a: number, b: number, c: number) => number; readonly halo2libwasm_and: (a: number, b: number, c: number) => number; readonly halo2libwasm_or: (a: number, b: number, c: number) => number; readonly halo2libwasm_not: (a: number, b: number) => number; readonly halo2libwasm_dec: (a: number, b: number) => number; readonly halo2libwasm_select: (a: number, b: number, c: number, d: number) => number; readonly halo2libwasm_or_and: (a: number, b: number, c: number, d: number) => number; readonly halo2libwasm_bits_to_indicator: (a: number, b: number, c: number, d: number) => void; readonly halo2libwasm_idx_to_indicator: (a: number, b: number, c: number, d: number, e: number) => void; readonly halo2libwasm_select_by_indicator: (a: number, b: number, c: number, d: number, e: number) => number; readonly halo2libwasm_select_from_idx: (a: number, b: number, c: number, d: number) => number; readonly halo2libwasm_is_zero: (a: number, b: number) => number; readonly halo2libwasm_is_equal: (a: number, b: number, c: number) => number; readonly halo2libwasm_num_to_bits: (a: number, b: number, c: number, d: number, e: number) => void; readonly halo2libwasm_constrain_equal: (a: number, b: number, c: number) => void; readonly halo2libwasm_range_check: (a: number, b: number, c: number, d: number) => void; readonly halo2libwasm_check_less_than: (a: number, b: number, c: number, d: number, e: number) => void; readonly halo2libwasm_check_less_than_safe: (a: number, b: number, c: number, d: number) => void; readonly halo2libwasm_is_less_than: (a: number, b: number, c: number, d: number, e: number) => number; readonly halo2libwasm_is_less_than_safe: (a: number, b: number, c: number, d: number) => number; readonly halo2libwasm_div_mod: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void; readonly halo2libwasm_to_hi_lo: (a: number, b: number, c: number) => void; readonly halo2libwasm_from_hi_lo: (a: number, b: number, c: number) => number; readonly halo2libwasm_div_mod_var: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void; readonly halo2libwasm_pow_var: (a: number, b: number, c: number, d: number, e: number) => number; readonly halo2libwasm_poseidon: (a: number, b: number, c: number) => number; readonly halo2libwasm_witness: (a: number, b: number, c: number) => number; readonly halo2libwasm_constant: (a: number, b: number, c: number) => number; readonly halo2libwasm_make_public: (a: number, b: number, c: number, d: number) => void; readonly halo2libwasm_log: (a: number, b: number, c: number) => void; readonly halo2libwasm_value: (a: number, b: number, c: number) => void; readonly halo2libwasm_lookup_bits: (a: number) => number; readonly __wbg_halo2wasm_free: (a: number, b: number) => void; readonly halo2wasm_new: () => number; readonly halo2wasm_clear: (a: number) => void; readonly halo2wasm_clearInstances: (a: number) => void; readonly halo2wasm_verify: (a: number, b: number, c: number) => void; readonly halo2wasm_getInstances: (a: number, b: number, c: number) => void; readonly halo2wasm_setInstances: (a: number, b: number, c: number, d: number) => void; readonly halo2wasm_getInstanceValues: (a: number, b: number) => number; readonly halo2wasm_config: (a: number, b: number) => void; readonly halo2wasm_getCircuitStats: (a: number) => number; readonly halo2wasm_getVk: (a: number, b: number) => void; readonly halo2wasm_getPartialVk: (a: number, b: number) => void; readonly halo2wasm_getPk: (a: number, b: number) => void; readonly halo2wasm_assignInstances: (a: number) => void; readonly halo2wasm_mock: (a: number) => void; readonly halo2wasm_loadParams: (a: number, b: number, c: number) => void; readonly halo2wasm_loadVk: (a: number, b: number, c: number) => void; readonly halo2wasm_loadPk: (a: number, b: number, c: number) => void; readonly halo2wasm_genVk: (a: number) => void; readonly halo2wasm_genPk: (a: number) => void; readonly halo2wasm_prove: (a: number, b: number) => void; readonly halo2wasm_log: (a: number, b: number, c: number) => void; readonly __wbg_set_jscircuitbn254g1affine_x: (a: number, b: number) => void; readonly __wbg_set_jscircuitbn254g1affine_y: (a: number, b: number) => void; readonly __wbg_set_jscircuitsecp256k1affine_x: (a: number, b: number) => void; readonly __wbg_set_jscircuitsecp256k1affine_y: (a: number, b: number) => void; readonly jscircuitbn254g1affine_new: (a: number, b: number) => number; readonly jscircuitsecp256k1affine_new: (a: number, b: number) => number; readonly __wbg_secp256k1fppoint_free: (a: number, b: number) => void; readonly __wbg_secp256k1fqpoint_free: (a: number, b: number) => void; readonly halo2libwasm_to_js_circuit_bn254_g1_affine: (a: number, b: number, c: number) => number; readonly halo2libwasm_to_js_circuit_secp256k1_affine: (a: number, b: number, c: number) => number; readonly initPanicHook: () => void; readonly __wbg_get_jscircuitbn254g1affine_x: (a: number) => number; readonly __wbg_get_jscircuitbn254g1affine_y: (a: number) => number; readonly __wbg_get_jscircuitsecp256k1affine_x: (a: number) => number; readonly __wbg_get_jscircuitsecp256k1affine_y: (a: number) => number; readonly secp256k1fppoint_to_circuit_value_256: (a: number, b: number) => number; readonly secp256k1fqpoint_to_circuit_value_256: (a: number, b: number) => number; readonly __wbg_jscircuitbn254g1affine_free: (a: number, b: number) => void; readonly __wbg_jscircuitsecp256k1affine_free: (a: number, b: number) => void; readonly __wbg_wbg_rayon_poolbuilder_free: (a: number, b: number) => void; readonly wbg_rayon_poolbuilder_numThreads: (a: number) => number; readonly wbg_rayon_poolbuilder_receiver: (a: number) => number; readonly wbg_rayon_poolbuilder_build: (a: number) => void; readonly initThreadPool: (a: number) => number; readonly wbg_rayon_start_worker: (a: number) => void; readonly memory: WebAssembly.Memory; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_add_to_stack_pointer: (a: number) => number; readonly __wbindgen_free: (a: number, b: number, c: number) => void; readonly __wbindgen_exn_store: (a: number) => void; readonly __wbindgen_thread_destroy: (a?: number, b?: number, c?: number) => void; readonly __wbindgen_start: (a: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; /** * Instantiates the given `module`, which can either be bytes or * a precompiled `WebAssembly.Module`. * * @param {{ module: SyncInitInput, memory?: WebAssembly.Memory, thread_stack_size?: number }} module - Passing `SyncInitInput` directly is deprecated. * @param {WebAssembly.Memory} memory - Deprecated. * * @returns {InitOutput} */ export function initSync(module: { module: SyncInitInput, memory?: WebAssembly.Memory, thread_stack_size?: number } | SyncInitInput, memory?: WebAssembly.Memory): InitOutput; /** * If `module_or_path` is {RequestInfo} or {URL}, makes a request and * for everything else, calls `WebAssembly.instantiate` directly. * * @param {{ module_or_path: InitInput | Promise<InitInput>, memory?: WebAssembly.Memory, thread_stack_size?: number }} module_or_path - Passing `InitInput` directly is deprecated. * @param {WebAssembly.Memory} memory - Deprecated. * * @returns {Promise<InitOutput>} */ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput>, memory?: WebAssembly.Memory, thread_stack_size?: number } | InitInput | Promise<InitInput>, memory?: WebAssembly.Memory): Promise<InitOutput>;