Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_runtime_program_fd_precompiles_h 2 : #define HEADER_fd_src_flamenco_runtime_program_fd_precompiles_h 3 : 4 : #include "../fd_runtime.h" 5 : #include "../context/fd_exec_instr_ctx.h" 6 : 7 : /* PrecompileError 8 : https://github.com/anza-xyz/agave/blob/v1.18.12/sdk/src/precompiles.rs#L16 9 : Agave distinguishes between 5 errors and the returned one depends on 10 : the order they decided to write their code. 11 : These are all fatal errors, so the specific errors don't matter for 12 : consensus. 13 : To simplify our fuzzers, we return the same error code for all errors. */ 14 : #define FD_EXECUTOR_PRECOMPILE_ERR_PUBLIC_KEY ( 0 ) 15 : #define FD_EXECUTOR_PRECOMPILE_ERR_RECOVERY_ID ( 1 ) 16 0 : #define FD_EXECUTOR_PRECOMPILE_ERR_SIGNATURE ( 2 ) 17 0 : #define FD_EXECUTOR_PRECOMPILE_ERR_DATA_OFFSET ( 3 ) 18 0 : #define FD_EXECUTOR_PRECOMPILE_ERR_INSTR_DATA_SIZE ( 4 ) 19 : 20 : FD_PROTOTYPES_BEGIN 21 : 22 : /* fd_precompile_ed25519_verify is the instruction processing entrypoint 23 : for the Ed25519 precompile. */ 24 : 25 : int 26 : fd_precompile_ed25519_verify( fd_exec_instr_ctx_t * ctx ); 27 : 28 : /* fd_precompile_secp256k1_verify is the instruction processing entrypoint 29 : for the Secp256k1 precompile. */ 30 : 31 : int 32 : fd_precompile_secp256k1_verify( fd_exec_instr_ctx_t * ctx ); 33 : 34 : /* fd_precompile_secp256r1_verify is the instruction processing entrypoint 35 : for the Secp256r1 precompile (SIMD-0075). */ 36 : 37 : int 38 : fd_precompile_secp256r1_verify( fd_exec_instr_ctx_t * ctx ); 39 : 40 : FD_PROTOTYPES_END 41 : 42 : #endif /* HEADER_fd_src_flamenco_runtime_program_fd_precompiles_h */