pyaver.errors
1from anchorpy import Program 2from anchorpy.error import ProgramError, _ExtendedRPCError 3from solana.rpc.core import RPCException 4import ast 5 6def get_idl_errors(program: Program): 7 """ 8 Fetches a dictionary of all IDL errors from Program 9 10 Args: 11 program (Program): Aver program AnchorPy 12 13 Returns: 14 dict[int, str]: Errors with error codes as keys and error messages as values 15 """ 16 idl_dict = dict() 17 for e in program.idl.errors: 18 idl_dict[e.code] = e.msg 19 return idl_dict 20 21def parse_error(e: RPCException, program: Program): 22 """ 23 Tests whether RPCException is a Program Error or other RPC error. 24 25 Program Errors refer to an error thrown by the smart contract 26 27 Args: 28 e (RPCException): Exception 29 program (Program): Aver program AnchorPy 30 31 Returns: 32 (ProgramError | RPCException): Program Error or RPC Excpeption 33 """ 34 error_json = ast.literal_eval(e.__str__()) 35 error_extended = _ExtendedRPCError(code=error_json['code'], message=error_json['message'], data=error_json['data']) 36 p = ProgramError.parse(error_extended, get_idl_errors(program)) 37 print(isinstance(e, RPCException)) 38 print(p) 39 if(p is not None): 40 return p 41 else: 42 return e
def
get_idl_errors(program: anchorpy.program.core.Program)
7def get_idl_errors(program: Program): 8 """ 9 Fetches a dictionary of all IDL errors from Program 10 11 Args: 12 program (Program): Aver program AnchorPy 13 14 Returns: 15 dict[int, str]: Errors with error codes as keys and error messages as values 16 """ 17 idl_dict = dict() 18 for e in program.idl.errors: 19 idl_dict[e.code] = e.msg 20 return idl_dict
Fetches a dictionary of all IDL errors from Program
Args
- program (Program): Aver program AnchorPy
Returns
dict[int, str]: Errors with error codes as keys and error messages as values
def
parse_error( e: solana.rpc.core.RPCException, program: anchorpy.program.core.Program)
22def parse_error(e: RPCException, program: Program): 23 """ 24 Tests whether RPCException is a Program Error or other RPC error. 25 26 Program Errors refer to an error thrown by the smart contract 27 28 Args: 29 e (RPCException): Exception 30 program (Program): Aver program AnchorPy 31 32 Returns: 33 (ProgramError | RPCException): Program Error or RPC Excpeption 34 """ 35 error_json = ast.literal_eval(e.__str__()) 36 error_extended = _ExtendedRPCError(code=error_json['code'], message=error_json['message'], data=error_json['data']) 37 p = ProgramError.parse(error_extended, get_idl_errors(program)) 38 print(isinstance(e, RPCException)) 39 print(p) 40 if(p is not None): 41 return p 42 else: 43 return e
Tests whether RPCException is a Program Error or other RPC error.
Program Errors refer to an error thrown by the smart contract
Args
- e (RPCException): Exception
- program (Program): Aver program AnchorPy
Returns
(ProgramError | RPCException): Program Error or RPC Excpeption