LCOV - code coverage report
Current view: top level - discof/bank - fd_bank_err.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 60 0.0 %
Date: 2025-10-13 04:42:14 Functions: 0 4 0.0 %

          Line data    Source code
       1             : #ifndef HEADER_fd_src_discof_bank_fd_bank_err_h
       2             : #define HEADER_fd_src_discof_bank_fd_bank_err_h
       3             : 
       4             : #include "../../util/log/fd_log.h"
       5             : #include "../../flamenco/runtime/fd_runtime_err.h"
       6             : #include "../../disco/metrics/generated/fd_metrics_enums.h"
       7             : 
       8             : 
       9             : static inline int
      10           0 : fd_bank_err_from_runtime_err( int err ) {
      11           0 :    switch( err ) {
      12           0 :       case FD_RUNTIME_EXECUTE_SUCCESS:                                 return FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX;
      13             : 
      14           0 :       case FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR:                       return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTON_ERROR_IDX;
      15             : 
      16           0 :       case FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND:                       return FD_METRICS_ENUM_TRANSACTION_RESULT_V_ACCOUNT_NOT_FOUND_IDX;
      17           0 :       case FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND:               return FD_METRICS_ENUM_TRANSACTION_RESULT_V_PROGRAM_ACCOUNT_NOT_FOUND_IDX;
      18           0 :       case FD_RUNTIME_TXN_ERR_INSUFFICIENT_FUNDS_FOR_FEE:              return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSUFFICIENT_FUNDS_FOR_FEE_IDX;
      19           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ACCOUNT_FOR_FEE:                 return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INVALID_ACCOUNT_FOR_FEE_IDX;
      20           0 :       case FD_RUNTIME_TXN_ERR_ALREADY_PROCESSED:                       return FD_METRICS_ENUM_TRANSACTION_RESULT_V_ALREADY_PROCESSED_IDX;
      21           0 :       case FD_RUNTIME_TXN_ERR_BLOCKHASH_NOT_FOUND:                     return FD_METRICS_ENUM_TRANSACTION_RESULT_V_BLOCKHASH_NOT_FOUND_IDX;
      22           0 :       case FD_RUNTIME_TXN_ERR_INVALID_PROGRAM_FOR_EXECUTION:           return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INVALID_PROGRAM_FOR_EXECUTION_IDX;
      23           0 :       case FD_RUNTIME_TXN_ERR_ADDRESS_LOOKUP_TABLE_NOT_FOUND:          return FD_METRICS_ENUM_TRANSACTION_RESULT_V_ADDRESS_LOOKUP_TABLE_NOT_FOUND_IDX;
      24           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ADDRESS_LOOKUP_TABLE_OWNER:      return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INVALID_ADDRESS_LOOKUP_TABLE_OWNER_IDX;
      25           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ADDRESS_LOOKUP_TABLE_DATA:       return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INVALID_ADDRESS_LOOKUP_TABLE_DATA_IDX;
      26           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ADDRESS_LOOKUP_TABLE_INDEX:      return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INVALID_ADDRESS_LOOKUP_TABLE_INDEX_IDX;
      27           0 :       case FD_RUNTIME_TXN_ERR_MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED:  return FD_METRICS_ENUM_TRANSACTION_RESULT_V_MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED_IDX;
      28           0 :       case FD_RUNTIME_TXN_ERR_DUPLICATE_INSTRUCTION:                   return FD_METRICS_ENUM_TRANSACTION_RESULT_V_DUPLICATE_INSTRUCTION_IDX;
      29           0 :       case FD_RUNTIME_TXN_ERR_INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT: return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT_IDX;
      30             : 
      31           0 :       case FD_RUNTIME_TXN_ERR_ACCOUNT_IN_USE:                          return FD_METRICS_ENUM_TRANSACTION_RESULT_V_ACCOUNT_IN_USE_IDX;
      32           0 :       case FD_RUNTIME_TXN_ERR_ACCOUNT_LOADED_TWICE:                    return FD_METRICS_ENUM_TRANSACTION_RESULT_V_ACCOUNT_LOADED_TWICE_IDX;
      33           0 :       case FD_RUNTIME_TXN_ERR_SIGNATURE_FAILURE:                       return FD_METRICS_ENUM_TRANSACTION_RESULT_V_SIGNATURE_FAILURE_IDX;
      34           0 :       case FD_RUNTIME_TXN_ERR_TOO_MANY_ACCOUNT_LOCKS:                  return FD_METRICS_ENUM_TRANSACTION_RESULT_V_TOO_MANY_ACCOUNT_LOCKS_IDX;
      35             : 
      36           0 :       case FD_RUNTIME_TXN_ERR_INSUFFICIENT_FUNDS_FOR_RENT:             return FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSUFFICIENT_FUNDS_FOR_RENT_IDX;
      37           0 :       case FD_RUNTIME_TXN_ERR_UNBALANCED_TRANSACTION:                  return FD_METRICS_ENUM_TRANSACTION_RESULT_V_UNBALANCED_TRANSACTION_IDX;
      38             : 
      39           0 :       case FD_RUNTIME_TXN_ERR_CALL_CHAIN_TOO_DEEP:
      40           0 :       case FD_RUNTIME_TXN_ERR_MISSING_SIGNATURE_FOR_FEE:
      41           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ACCOUNT_INDEX:
      42           0 :       case FD_RUNTIME_TXN_ERR_SANITIZE_FAILURE:
      43           0 :       case FD_RUNTIME_TXN_ERR_CLUSTER_MAINTENANCE:
      44           0 :       case FD_RUNTIME_TXN_ERR_ACCOUNT_BORROW_OUTSTANDING:
      45           0 :       case FD_RUNTIME_TXN_ERR_WOULD_EXCEED_MAX_BLOCK_COST_LIMIT:
      46           0 :       case FD_RUNTIME_TXN_ERR_UNSUPPORTED_VERSION:
      47           0 :       case FD_RUNTIME_TXN_ERR_INVALID_WRITABLE_ACCOUNT:
      48           0 :       case FD_RUNTIME_TXN_ERR_WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT:
      49           0 :       case FD_RUNTIME_TXN_ERR_WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT:
      50           0 :       case FD_RUNTIME_TXN_ERR_INVALID_RENT_PAYING_ACCOUNT:
      51           0 :       case FD_RUNTIME_TXN_ERR_WOULD_EXCEED_MAX_VOTE_COST_LIMIT:
      52           0 :       case FD_RUNTIME_TXN_ERR_WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT:
      53           0 :       case FD_RUNTIME_TXN_ERR_RESANITIZATION_NEEDED:
      54           0 :       case FD_RUNTIME_TXN_ERR_PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED:
      55           0 :       case FD_RUNTIME_TXN_ERR_PROGRAM_CACHE_HIT_MAX_LIMIT:
      56           0 :       default: FD_LOG_ERR(( "Unknown runtime error %d", err ));
      57           0 :     }
      58             : 
      59           0 :     return 0;
      60           0 : }
      61             : 
      62           0 : #define FD_BANK_LUT_ERR_SUCCESS                            ( 0)
      63           0 : #define FD_BANK_LUT_ERR_ADDRESS_LOOKUP_TABLE_NOT_FOUND     (-1)
      64           0 : #define FD_BANK_LUT_ERR_INVALID_ADDRESS_LOOKUP_TABLE_OWNER (-2)
      65           0 : #define FD_BANK_LUT_ERR_INVALID_ADDRESS_LOOKUP_TABLE_DATA  (-3)
      66           0 : #define FD_BANK_LUT_ERR_INVALID_ADDRESS_LOOKUP_TABLE_INDEX (-5)
      67             : 
      68             : #define FD_BANK_LUT_ERR_LAST                               (-5)
      69             : 
      70             : static inline int
      71           0 : fd_bank_lut_err_from_runtime_err( int err ) {
      72           0 :    switch( err ) {
      73           0 :       case FD_RUNTIME_EXECUTE_SUCCESS:                            return FD_BANK_LUT_ERR_SUCCESS;
      74           0 :       case FD_RUNTIME_TXN_ERR_ADDRESS_LOOKUP_TABLE_NOT_FOUND:     return FD_BANK_LUT_ERR_ADDRESS_LOOKUP_TABLE_NOT_FOUND;
      75           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ADDRESS_LOOKUP_TABLE_OWNER: return FD_BANK_LUT_ERR_INVALID_ADDRESS_LOOKUP_TABLE_OWNER;
      76           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ADDRESS_LOOKUP_TABLE_DATA:  return FD_BANK_LUT_ERR_INVALID_ADDRESS_LOOKUP_TABLE_DATA;
      77           0 :       case FD_RUNTIME_TXN_ERR_INVALID_ADDRESS_LOOKUP_TABLE_INDEX: return FD_BANK_LUT_ERR_INVALID_ADDRESS_LOOKUP_TABLE_INDEX;
      78           0 :       default: FD_LOG_ERR(( "Unknown runtime LUT error %d", err ));
      79           0 :    }
      80           0 : }
      81             : 
      82             : #endif /* HEADER_fd_src_discof_bank_fd_bank_err_h */

Generated by: LCOV version 1.14