cairo_lang_sierra/extensions/modules/starknet/
secp256r1.rs

1use super::secp256::Secp256Trait;
2use crate::extensions::NoGenericArgsGenericType;
3use crate::ids::GenericTypeId;
4
5#[derive(Default)]
6pub struct Secp256r1PointType {}
7impl NoGenericArgsGenericType for Secp256r1PointType {
8    const ID: GenericTypeId = GenericTypeId::new_inline("Secp256r1Point");
9    const STORABLE: bool = true;
10    const DUPLICATABLE: bool = true;
11    const DROPPABLE: bool = true;
12    const ZERO_SIZED: bool = false;
13}
14
15#[derive(Default)]
16pub struct Secp256r1;
17impl Secp256Trait for Secp256r1 {
18    const STR_ID_NEW: &'static str = "secp256r1_new_syscall";
19    const STR_ID_ADD: &'static str = "secp256r1_add_syscall";
20    const STR_ID_MUL: &'static str = "secp256r1_mul_syscall";
21    const STR_ID_GET_POINT_FROM_X: &'static str = "secp256r1_get_point_from_x_syscall";
22    const STR_ID_GET_XY: &'static str = "secp256r1_get_xy_syscall";
23    const TYPE_ID: GenericTypeId = Secp256r1PointType::ID;
24    const TYPE_ID_STR: &'static str = "core::starknet::secp256r1::Secp256r1Point";
25}