@@ -12,12 +12,15 @@ use crate::execution::common_hints::HintExecutionResult;
12
12
use crate :: execution:: execution_utils:: felt_from_ptr;
13
13
use crate :: execution:: syscalls:: hint_processor:: { SyscallExecutionError , OUT_OF_GAS_ERROR } ;
14
14
use crate :: execution:: syscalls:: secp:: {
15
+ Secp256r1NewRequest ,
16
+ Secp256r1NewResponse ,
15
17
SecpAddRequest ,
16
18
SecpAddResponse ,
17
19
SecpGetPointFromXRequest ,
18
20
SecpGetPointFromXResponse ,
19
21
SecpGetXyRequest ,
20
22
SecpGetXyResponse ,
23
+ SecpHintProcessor ,
21
24
SecpMulRequest ,
22
25
SecpMulResponse ,
23
26
SecpNewRequest ,
@@ -72,6 +75,10 @@ pub trait SyscallExecutor {
72
75
remaining_gas : & mut u64 ,
73
76
) -> SyscallResult < ( [ u64 ; 4 ] , usize ) > ;
74
77
78
+ fn get_secpk1_hint_processor ( & mut self ) -> & mut SecpHintProcessor < ark_secp256k1:: Config > ;
79
+
80
+ fn get_secpr1_hint_processor ( & mut self ) -> & mut SecpHintProcessor < ark_secp256r1:: Config > ;
81
+
75
82
fn increment_syscall_count_by ( & mut self , selector : & SyscallSelector , count : usize ) ;
76
83
77
84
fn increment_syscall_count ( & mut self , selector : & SyscallSelector ) {
@@ -192,73 +199,93 @@ pub trait SyscallExecutor {
192
199
193
200
fn secp256k1_add (
194
201
request : SecpAddRequest ,
195
- vm : & mut VirtualMachine ,
202
+ _vm : & mut VirtualMachine ,
196
203
syscall_handler : & mut Self ,
197
- remaining_gas : & mut u64 ,
198
- ) -> SyscallResult < SecpAddResponse > ;
204
+ _remaining_gas : & mut u64 ,
205
+ ) -> SyscallResult < SecpAddResponse > {
206
+ syscall_handler. get_secpk1_hint_processor ( ) . secp_add ( request)
207
+ }
199
208
200
209
fn secp256k1_get_point_from_x (
201
210
request : SecpGetPointFromXRequest ,
202
211
vm : & mut VirtualMachine ,
203
212
syscall_handler : & mut Self ,
204
- remaining_gas : & mut u64 ,
205
- ) -> SyscallResult < SecpGetPointFromXResponse > ;
213
+ _remaining_gas : & mut u64 ,
214
+ ) -> SyscallResult < SecpGetPointFromXResponse > {
215
+ syscall_handler. get_secpk1_hint_processor ( ) . secp_get_point_from_x ( vm, request)
216
+ }
206
217
207
218
fn secp256k1_get_xy (
208
219
request : SecpGetXyRequest ,
209
- vm : & mut VirtualMachine ,
220
+ _vm : & mut VirtualMachine ,
210
221
syscall_handler : & mut Self ,
211
- remaining_gas : & mut u64 ,
212
- ) -> SyscallResult < SecpGetXyResponse > ;
222
+ _remaining_gas : & mut u64 ,
223
+ ) -> SyscallResult < SecpGetXyResponse > {
224
+ syscall_handler. get_secpk1_hint_processor ( ) . secp_get_xy ( request)
225
+ }
213
226
214
227
fn secp256k1_mul (
215
228
request : SecpMulRequest ,
216
- vm : & mut VirtualMachine ,
229
+ _vm : & mut VirtualMachine ,
217
230
syscall_handler : & mut Self ,
218
- remaining_gas : & mut u64 ,
219
- ) -> SyscallResult < SecpMulResponse > ;
231
+ _remaining_gas : & mut u64 ,
232
+ ) -> SyscallResult < SecpMulResponse > {
233
+ syscall_handler. get_secpk1_hint_processor ( ) . secp_mul ( request)
234
+ }
220
235
221
236
fn secp256k1_new (
222
237
request : SecpNewRequest ,
223
238
vm : & mut VirtualMachine ,
224
239
syscall_handler : & mut Self ,
225
- remaining_gas : & mut u64 ,
226
- ) -> SyscallResult < SecpNewResponse > ;
240
+ _remaining_gas : & mut u64 ,
241
+ ) -> SyscallResult < SecpNewResponse > {
242
+ syscall_handler. get_secpk1_hint_processor ( ) . secp_new ( vm, request)
243
+ }
227
244
228
245
fn secp256r1_add (
229
246
request : SecpAddRequest ,
230
- vm : & mut VirtualMachine ,
247
+ _vm : & mut VirtualMachine ,
231
248
syscall_handler : & mut Self ,
232
- remaining_gas : & mut u64 ,
233
- ) -> SyscallResult < SecpAddResponse > ;
249
+ _remaining_gas : & mut u64 ,
250
+ ) -> SyscallResult < SecpAddResponse > {
251
+ syscall_handler. get_secpr1_hint_processor ( ) . secp_add ( request)
252
+ }
234
253
235
254
fn secp256r1_get_point_from_x (
236
255
request : SecpGetPointFromXRequest ,
237
256
vm : & mut VirtualMachine ,
238
257
syscall_handler : & mut Self ,
239
- remaining_gas : & mut u64 ,
240
- ) -> SyscallResult < SecpGetPointFromXResponse > ;
258
+ _remaining_gas : & mut u64 ,
259
+ ) -> SyscallResult < SecpGetPointFromXResponse > {
260
+ syscall_handler. get_secpr1_hint_processor ( ) . secp_get_point_from_x ( vm, request)
261
+ }
241
262
242
263
fn secp256r1_get_xy (
243
264
request : SecpGetXyRequest ,
244
- vm : & mut VirtualMachine ,
265
+ _vm : & mut VirtualMachine ,
245
266
syscall_handler : & mut Self ,
246
- remaining_gas : & mut u64 ,
247
- ) -> SyscallResult < SecpGetXyResponse > ;
267
+ _remaining_gas : & mut u64 ,
268
+ ) -> SyscallResult < SecpGetXyResponse > {
269
+ syscall_handler. get_secpr1_hint_processor ( ) . secp_get_xy ( request)
270
+ }
248
271
249
272
fn secp256r1_mul (
250
273
request : SecpMulRequest ,
251
- vm : & mut VirtualMachine ,
274
+ _vm : & mut VirtualMachine ,
252
275
syscall_handler : & mut Self ,
253
- remaining_gas : & mut u64 ,
254
- ) -> SyscallResult < SecpMulResponse > ;
276
+ _remaining_gas : & mut u64 ,
277
+ ) -> SyscallResult < SecpMulResponse > {
278
+ syscall_handler. get_secpr1_hint_processor ( ) . secp_mul ( request)
279
+ }
255
280
256
281
fn secp256r1_new (
257
- request : SecpNewRequest ,
282
+ request : Secp256r1NewRequest ,
258
283
vm : & mut VirtualMachine ,
259
284
syscall_handler : & mut Self ,
260
- remaining_gas : & mut u64 ,
261
- ) -> SyscallResult < SecpNewResponse > ;
285
+ _remaining_gas : & mut u64 ,
286
+ ) -> SyscallResult < Secp256r1NewResponse > {
287
+ syscall_handler. get_secpr1_hint_processor ( ) . secp_new ( vm, request)
288
+ }
262
289
263
290
fn send_message_to_l1 (
264
291
request : SendMessageToL1Request ,
0 commit comments