Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_runtime_fd_executor_err_h 2 : #define HEADER_fd_src_flamenco_runtime_fd_executor_err_h 3 : 4 : /* Instruction error types */ 5 : 6 110376 : #define FD_EXECUTOR_ERR_KIND_EBPF (0) 7 666 : #define FD_EXECUTOR_ERR_KIND_SYSCALL (1) 8 155376 : #define FD_EXECUTOR_ERR_KIND_INSTR (2) 9 : 10 : /* Instruction error codes */ 11 : 12 : /* TODO make sure these are serialized consistently with solana_program::InstructionError */ 13 : /* TODO FD_EXECUTOR_INSTR_SUCCESS is used like Ok(()) in Rust. But this is both overloaded and a 14 : misnomer, because the instruction hasn't necessarily been executed succesfully yet */ 15 : 16 0 : #define FD_EXECUTOR_INSTR_ERR_FATAL ( INT_MIN ) /* Unrecoverable error */ 17 1013205 : #define FD_EXECUTOR_INSTR_SUCCESS ( 0 ) /* Instruction executed successfully */ 18 162 : #define FD_EXECUTOR_INSTR_ERR_GENERIC_ERR ( -1 ) /* The program instruction returned an error */ 19 19545 : #define FD_EXECUTOR_INSTR_ERR_INVALID_ARG ( -2 ) /* The arguments provided to a program were invalid */ 20 31878 : #define FD_EXECUTOR_INSTR_ERR_INVALID_INSTR_DATA ( -3 ) /* An instruction's data contents were invalid */ 21 178371 : #define FD_EXECUTOR_INSTR_ERR_INVALID_ACC_DATA ( -4 ) /* An account's data contents was invalid */ 22 51 : #define FD_EXECUTOR_INSTR_ERR_ACC_DATA_TOO_SMALL ( -5 ) /* An account's data was too small */ 23 185310 : #define FD_EXECUTOR_INSTR_ERR_INSUFFICIENT_FUNDS ( -6 ) /* An account's balance was too small to complete the instruction */ 24 456 : #define FD_EXECUTOR_INSTR_ERR_INCORRECT_PROGRAM_ID ( -7 ) /* The account did not have the expected program id */ 25 20517 : #define FD_EXECUTOR_INSTR_ERR_MISSING_REQUIRED_SIGNATURE ( -8 ) /* A signature was required but not found */ 26 1449 : #define FD_EXECUTOR_INSTR_ERR_ACC_ALREADY_INITIALIZED ( -9 ) /* An initialize instruction was sent to an account that has already been initialized. */ 27 204 : #define FD_EXECUTOR_INSTR_ERR_UNINITIALIZED_ACCOUNT ( -10 ) /* An attempt to operate on an account that hasn't been initialized. */ 28 285 : #define FD_EXECUTOR_INSTR_ERR_UNBALANCED_INSTR ( -11 ) /* Program's instruction lamport balance does not equal the balance after the instruction */ 29 651 : #define FD_EXECUTOR_INSTR_ERR_MODIFIED_PROGRAM_ID ( -12 ) /* Program illegally modified an account's program id */ 30 147 : #define FD_EXECUTOR_INSTR_ERR_EXTERNAL_ACCOUNT_LAMPORT_SPEND ( -13 ) /* Program spent the lamports of an account that doesn't belong to it */ 31 1287 : #define FD_EXECUTOR_INSTR_ERR_EXTERNAL_DATA_MODIFIED ( -14 ) /* Program modified the data of an account that doesn't belong to it */ 32 441 : #define FD_EXECUTOR_INSTR_ERR_READONLY_LAMPORT_CHANGE ( -15 ) /* Read-only account's lamports modified */ 33 1344 : #define FD_EXECUTOR_INSTR_ERR_READONLY_DATA_MODIFIED ( -16 ) /* Read-only account's data was modified */ 34 0 : #define FD_EXECUTOR_INSTR_ERR_DUPLICATE_ACCOUNT_IDX ( -17 ) /* An account was referenced more than once in a single instruction. Deprecated. */ 35 0 : #define FD_EXECUTOR_INSTR_ERR_EXECUTABLE_MODIFIED ( -18 ) /* Executable bit on account changed, but shouldn't have */ 36 0 : #define FD_EXECUTOR_INSTR_ERR_RENT_EPOCH_MODIFIED ( -19 ) /* Rent_epoch account changed, but shouldn't have */ 37 2592 : #define FD_EXECUTOR_INSTR_ERR_NOT_ENOUGH_ACC_KEYS ( -20 ) /* The instruction expected additional account keys */ 38 3 : #define FD_EXECUTOR_INSTR_ERR_ACC_DATA_SIZE_CHANGED ( -21 ) /* Program other than the account's owner changed the size of the account data */ 39 90 : #define FD_EXECUTOR_INSTR_ERR_ACC_NOT_EXECUTABLE ( -22 ) /* The instruction expected an executable account */ 40 474 : #define FD_EXECUTOR_INSTR_ERR_ACC_BORROW_FAILED ( -23 ) /* Failed to borrow a reference to account data, already borrowed */ 41 468 : #define FD_EXECUTOR_INSTR_ERR_ACC_BORROW_OUTSTANDING ( -24 ) /* Account data has an outstanding reference after a program's execution */ 42 0 : #define FD_EXECUTOR_INSTR_ERR_DUPLICATE_ACCOUNT_OUT_OF_SYNC ( -25 ) /* The same account was multiply passed to an on-chain program's entrypoint, but the program modified them differently. */ 43 120183 : #define FD_EXECUTOR_INSTR_ERR_CUSTOM_ERR ( -26 ) /* Allows on-chain programs to implement program-specific error types and see them returned by the runtime. */ 44 0 : #define FD_EXECUTOR_INSTR_ERR_INVALID_ERR ( -27 ) /* The return value from the program was invalid. */ 45 1923 : #define FD_EXECUTOR_INSTR_ERR_EXECUTABLE_DATA_MODIFIED ( -28 ) /* Executable account's data was modified */ 46 372 : #define FD_EXECUTOR_INSTR_ERR_EXECUTABLE_LAMPORT_CHANGE ( -29 ) /* Executable account's lamports modified */ 47 0 : #define FD_EXECUTOR_INSTR_ERR_EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT ( -30 ) /* Executable accounts must be rent exempt */ 48 330 : #define FD_EXECUTOR_INSTR_ERR_UNSUPPORTED_PROGRAM_ID ( -31 ) /* Unsupported program id */ 49 0 : #define FD_EXECUTOR_INSTR_ERR_CALL_DEPTH ( -32 ) /* Cross-program invocation call depth too deep */ 50 234 : #define FD_EXECUTOR_INSTR_ERR_MISSING_ACC ( -33 ) /* An account required by the instruction is missing */ 51 15 : #define FD_EXECUTOR_INSTR_ERR_REENTRANCY_NOT_ALLOWED ( -34 ) /* Cross-program invocation reentrancy not allowed for this instruction */ 52 0 : #define FD_EXECUTOR_INSTR_ERR_MAX_SEED_LENGTH_EXCEEDED ( -35 ) /* Length of the seed is too long for address generation */ 53 0 : #define FD_EXECUTOR_INSTR_ERR_INVALID_SEEDS ( -36 ) /* Provided seeds do not result in a valid address */ 54 0 : #define FD_EXECUTOR_INSTR_ERR_INVALID_REALLOC ( -37 ) /* Failed to reallocate account data of this length */ 55 33630 : #define FD_EXECUTOR_INSTR_ERR_COMPUTE_BUDGET_EXCEEDED ( -38 ) /* Computational budget exceeded */ 56 60 : #define FD_EXECUTOR_INSTR_ERR_PRIVILEGE_ESCALATION ( -39 ) /* Cross-program invocation with unauthorized signer or writable account */ 57 0 : #define FD_EXECUTOR_INSTR_ERR_PROGRAM_ENVIRONMENT_SETUP_FAILURE ( -40 ) /* Failed to create program execution environment */ 58 348 : #define FD_EXECUTOR_INSTR_ERR_PROGRAM_FAILED_TO_COMPLETE ( -41 ) /* Program failed to complete */ 59 0 : #define FD_EXECUTOR_INSTR_ERR_PROGRAM_FAILED_TO_COMPILE ( -42 ) /* Program failed to compile */ 60 54 : #define FD_EXECUTOR_INSTR_ERR_ACC_IMMUTABLE ( -43 ) /* Account is immutable */ 61 198 : #define FD_EXECUTOR_INSTR_ERR_INCORRECT_AUTHORITY ( -44 ) /* Incorrect authority provided */ 62 0 : #define FD_EXECUTOR_INSTR_ERR_BORSH_IO_ERROR ( -45 ) /* Failed to serialize or deserialize account data */ 63 0 : #define FD_EXECUTOR_INSTR_ERR_ACC_NOT_RENT_EXEMPT ( -46 ) /* An account does not have enough lamports to be rent-exempt */ 64 18912 : #define FD_EXECUTOR_INSTR_ERR_INVALID_ACC_OWNER ( -47 ) /* Invalid account owner */ 65 390 : #define FD_EXECUTOR_INSTR_ERR_ARITHMETIC_OVERFLOW ( -48 ) /* Program arithmetic overflowed */ 66 15234 : #define FD_EXECUTOR_INSTR_ERR_UNSUPPORTED_SYSVAR ( -49 ) /* Unsupported sysvar */ 67 0 : #define FD_EXECUTOR_INSTR_ERR_ILLEGAL_OWNER ( -50 ) /* Provided owner is not allowed */ 68 0 : #define FD_EXECUTOR_INSTR_ERR_MAX_ACCS_DATA_ALLOCS_EXCEEDED ( -51 ) /* Account data allocation exceeded the maximum accounts data size limit */ 69 0 : #define FD_EXECUTOR_INSTR_ERR_MAX_ACCS_EXCEEDED ( -52 ) /* Max accounts exceeded */ 70 0 : #define FD_EXECUTOR_INSTR_ERR_MAX_INSN_TRACE_LENS_EXCEEDED ( -53 ) /* Max instruction trace length exceeded */ 71 0 : #define FD_EXECUTOR_INSTR_ERR_BUILTINS_MUST_CONSUME_CUS ( -54 ) /* Builtin programs must consume compute units */ 72 : 73 : #define FD_EXECUTOR_SYSTEM_ERR_ACCOUNT_ALREADY_IN_USE ( -1 ) /* an account with the same address already exists */ 74 : #define FD_EXECUTOR_SYSTEM_ERR_RESULTS_WITH_NEGATIVE_LAMPORTS ( -2 ) /* account does not have enough SOL to perform the operation */ 75 : #define FD_EXECUTOR_SYSTEM_ERR_INVALID_PROGRAM_ID ( -3 ) /* cannot assign account to this program id */ 76 : #define FD_EXECUTOR_SYSTEM_ERR_INVALID_ACCOUNT_DATA_LENGTH ( -4 ) /* cannot allocate account data of this length */ 77 : #define FD_EXECUTOR_SYSTEM_ERR_MAX_SEED_LENGTH_EXCEEDED ( -5 ) /* length of requested seed is too long */ 78 : #define FD_EXECUTOR_SYSTEM_ERR_ADDRESS_WITH_SEED_MISMATCH ( -6 ) /* provided address does not match addressed derived from seed */ 79 : #define FD_EXECUTOR_SYSTEM_ERR_NONCE_NO_RECENT_BLOCKHASHES ( -7 ) /* advancing stored nonce requires a populated RecentBlockhashes sysvar */ 80 : #define FD_EXECUTOR_SYSTEM_ERR_NONCE_BLOCKHASH_NOT_EXPIRED ( -8 ) /* stored nonce is still in recent_blockhashes */ 81 : #define FD_EXECUTOR_SYSTEM_ERR_NONCE_UNEXPECTED_BLOCKHASH_VALUE ( -9 ) /* specified nonce does not match stored nonce */ 82 : 83 : /* PrecompileError 84 : https://github.com/anza-xyz/agave/blob/v1.18.12/sdk/src/precompiles.rs#L16 85 : Agave distinguishes between 5 errors and the returned one depends on 86 : the order they decided to write their code. 87 : These are all fatal errors, so the specific errors doesn't matter for 88 : consensus. 89 : To simplify our fuzzers, we return the same error code for all errors. */ 90 : #define FD_EXECUTOR_PRECOMPILE_ERR_PUBLIC_KEY ( 0 ) 91 : #define FD_EXECUTOR_PRECOMPILE_ERR_RECOVERY_ID ( 1 ) 92 3318 : #define FD_EXECUTOR_PRECOMPILE_ERR_SIGNATURE ( 2 ) 93 51 : #define FD_EXECUTOR_PRECOMPILE_ERR_DATA_OFFSET ( 3 ) 94 90 : #define FD_EXECUTOR_PRECOMPILE_ERR_INSTR_DATA_SIZE ( 4 ) 95 : 96 : #define FD_COMPUTE_BUDGET_PRIORITIZATION_FEE_TYPE_COMPUTE_UNIT_PRICE (0) 97 108786 : #define FD_COMPUTE_BUDGET_PRIORITIZATION_FEE_TYPE_DEPRECATED (1) 98 : 99 : #endif /* HEADER_fd_src_flamenco_runtime_fd_executor_err_h */