Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_runtime_program_fd_zk_elgamal_proof_program_h 2 : #define HEADER_fd_src_flamenco_runtime_program_fd_zk_elgamal_proof_program_h 3 : 4 : /* 5 : * ZK ElGamal Proof Program 6 : */ 7 : 8 : #include "../context/fd_exec_instr_ctx.h" 9 : 10 : /* FD_ZKSDK_INSTR_{...} identify ZK ElGamal Proof Program instructions. 11 : https://github.com/anza-xyz/agave/blob/v2.0.1/zk-sdk/src/zk_elgamal_proof_program/instruction.rs#L48 */ 12 : 13 0 : #define FD_ZKSDK_INSTR_CLOSE_CONTEXT_STATE ((uchar) 0) 14 0 : #define FD_ZKSDK_INSTR_VERIFY_ZERO_CIPHERTEXT ((uchar) 1) 15 0 : #define FD_ZKSDK_INSTR_VERIFY_CIPHERTEXT_CIPHERTEXT_EQUALITY ((uchar) 2) 16 0 : #define FD_ZKSDK_INSTR_VERIFY_CIPHERTEXT_COMMITMENT_EQUALITY ((uchar) 3) 17 18 : #define FD_ZKSDK_INSTR_VERIFY_PUBKEY_VALIDITY ((uchar) 4) 18 0 : #define FD_ZKSDK_INSTR_VERIFY_PERCENTAGE_WITH_CAP ((uchar) 5) 19 0 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_RANGE_PROOF_U64 ((uchar) 6) 20 0 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_RANGE_PROOF_U128 ((uchar) 7) 21 0 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_RANGE_PROOF_U256 ((uchar) 8) 22 0 : #define FD_ZKSDK_INSTR_VERIFY_GROUPED_CIPHERTEXT_2_HANDLES_VALIDITY ((uchar) 9) 23 0 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_GROUPED_CIPHERTEXT_2_HANDLES_VALIDITY ((uchar)10) 24 0 : #define FD_ZKSDK_INSTR_VERIFY_GROUPED_CIPHERTEXT_3_HANDLES_VALIDITY ((uchar)11) 25 0 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_GROUPED_CIPHERTEXT_3_HANDLES_VALIDITY ((uchar)12) 26 : 27 : /* FD_ZKSDK_INSTR_{...}_COMPUTE_UNITS 28 : https://github.com/anza-xyz/agave/blob/v2.0.1/programs/zk-elgamal-proof/src/lib.rs#L16 */ 29 : 30 : #define FD_ZKSDK_INSTR_CLOSE_CONTEXT_STATE_COMPUTE_UNITS 3300UL 31 : #define FD_ZKSDK_INSTR_VERIFY_ZERO_CIPHERTEXT_COMPUTE_UNITS 6000UL 32 : #define FD_ZKSDK_INSTR_VERIFY_CIPHERTEXT_CIPHERTEXT_EQUALITY_COMPUTE_UNITS 8000UL 33 : #define FD_ZKSDK_INSTR_VERIFY_CIPHERTEXT_COMMITMENT_EQUALITY_COMPUTE_UNITS 6400UL 34 3 : #define FD_ZKSDK_INSTR_VERIFY_PUBKEY_VALIDITY_COMPUTE_UNITS 2600UL 35 : #define FD_ZKSDK_INSTR_VERIFY_PERCENTAGE_WITH_CAP_COMPUTE_UNITS 6500UL 36 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_RANGE_PROOF_U64_COMPUTE_UNITS 111000UL 37 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_RANGE_PROOF_U128_COMPUTE_UNITS 200000UL 38 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_RANGE_PROOF_U256_COMPUTE_UNITS 368000UL 39 : #define FD_ZKSDK_INSTR_VERIFY_GROUPED_CIPHERTEXT_2_HANDLES_VALIDITY_COMPUTE_UNITS 6400UL 40 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_GROUPED_CIPHERTEXT_2_HANDLES_VALIDITY_COMPUTE_UNITS 13000UL 41 : #define FD_ZKSDK_INSTR_VERIFY_GROUPED_CIPHERTEXT_3_HANDLES_VALIDITY_COMPUTE_UNITS 8100UL 42 : #define FD_ZKSDK_INSTR_VERIFY_BATCHED_GROUPED_CIPHERTEXT_3_HANDLES_VALIDITY_COMPUTE_UNITS 16400UL 43 : 44 : FD_PROTOTYPES_BEGIN 45 : 46 : int 47 : fd_executor_zk_elgamal_proof_program_execute( fd_exec_instr_ctx_t * ctx ); 48 : 49 : FD_PROTOTYPES_END 50 : 51 : #endif /* HEADER_fd_src_flamenco_runtime_program_fd_zk_elgamal_proof_program_h */