1#![no_std]
2
3extern crate alloc;
4
5#[cfg(feature = "std")]
6extern crate std;
7
8use miden_core::deferred::PrecompileRegistry;
9
10mod codec;
11mod hash;
12mod math;
13
14pub use codec::{chunks_to_bytes_exact, n_chunks};
15pub use hash::{HashAssertNode, HashFunction, HashPrecompile, keccak256::Keccak256Precompile};
16pub use math::{
17 curve::{
18 CurveCoefficient, CurveId, CurveNodeRef, CurvePoint, CurvePrecompile, CurveSpec, K1_A_PTR,
19 K1_B_PTR, K1_GROUP_PTR, SECP256K1_BETA, SECP256K1_GENERATOR_X, SECP256K1_GENERATOR_Y,
20 SECP256K1_ID, SECP256K1_LAMBDA, ShortWeierstrassSpec, curve_coefficients, glv_decompose,
21 phi_generator, scalar_mul_mod_n,
22 },
23 k1_base::K1Base,
24 k1_scalar::K1Scalar,
25 u256::U256,
26 uint::{
27 K1_BASE_BOUND_PTR, K1_SCALAR_BOUND_PTR, Limbs, ONE_LIMBS, TWO_LIMBS, U256_BOUND_PTR,
28 UintDomain, UintNodeRef, UintPrecompile, UintSpec, ZERO_LIMBS,
29 },
30};
31
32pub fn registry() -> PrecompileRegistry {
40 PrecompileRegistry::new()
41 .with_precompile(Keccak256Precompile::default())
42 .with_precompile(UintPrecompile)
43 .with_precompile(CurvePrecompile)
44}