github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/errors/p2perrcode.go (about) 1 package errors 2 3 import ( 4 "fmt" 5 ) 6 7 type ErrCoder interface { 8 GetErrCode() ErrCode 9 } 10 11 type ErrCode int32 12 13 const ( 14 ErrNoCode ErrCode = -2 15 ErrNoError ErrCode = 0 16 ErrUnknown ErrCode = -1 17 ErrDuplicatedTx ErrCode = 45002 18 ErrDuplicateInput ErrCode = 45003 19 ErrAssetPrecision ErrCode = 45004 20 ErrTransactionBalance ErrCode = 45005 21 ErrAttributeProgram ErrCode = 45006 22 ErrTransactionContracts ErrCode = 45007 23 ErrTransactionPayload ErrCode = 45008 24 ErrDoubleSpend ErrCode = 45009 25 ErrTxHashDuplicate ErrCode = 45010 26 ErrStateUpdaterVaild ErrCode = 45011 27 ErrSummaryAsset ErrCode = 45012 28 ErrXmitFail ErrCode = 45013 29 ErrNoAccount ErrCode = 45014 30 ErrRetryExhausted ErrCode = 45015 31 ErrTxPoolFull ErrCode = 45016 32 ErrNetPackFail ErrCode = 45017 33 ErrNetUnPackFail ErrCode = 45018 34 ErrNetVerifyFail ErrCode = 45019 35 ErrGasPrice ErrCode = 45020 36 ErrVerifySignature ErrCode = 45021 37 ) 38 39 func (err ErrCode) Error() string { 40 switch err { 41 case ErrNoCode: 42 return "no error code" 43 case ErrNoError: 44 return "not an error" 45 case ErrUnknown: 46 return "unknown error" 47 case ErrDuplicatedTx: 48 return "duplicated transaction detected" 49 case ErrDuplicateInput: 50 return "duplicated transaction input detected" 51 case ErrAssetPrecision: 52 return "invalid asset precision" 53 case ErrTransactionBalance: 54 return "transaction balance unmatched" 55 case ErrAttributeProgram: 56 return "attribute program error" 57 case ErrTransactionContracts: 58 return "invalid transaction contract" 59 case ErrTransactionPayload: 60 return "invalid transaction payload" 61 case ErrDoubleSpend: 62 return "double spent transaction detected" 63 case ErrTxHashDuplicate: 64 return "duplicated transaction hash detected" 65 case ErrStateUpdaterVaild: 66 return "invalid state updater" 67 case ErrSummaryAsset: 68 return "invalid summary asset" 69 case ErrXmitFail: 70 return "transmit error" 71 case ErrRetryExhausted: 72 return "retry exhausted" 73 case ErrTxPoolFull: 74 return "tx pool full" 75 case ErrNetPackFail: 76 return "net msg pack fail" 77 case ErrNetUnPackFail: 78 return "net msg unpack fail" 79 case ErrNetVerifyFail: 80 return "net msg verify fail" 81 case ErrGasPrice: 82 return "invalid gas price" 83 case ErrVerifySignature: 84 return "transaction verify signature fail" 85 86 } 87 88 return fmt.Sprintf("Unknown error? Error code = %d", err) 89 } 90 91 func ErrerCode(err error) ErrCode { 92 if err, ok := err.(ErrCoder); ok { 93 return err.GetErrCode() 94 } 95 return ErrUnknown 96 }