From 9bf9b608bdf2c54ceb955b296f67e4d1393dce81 Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Sat, 19 Mar 2016 22:36:11 +0100
Subject: [PATCH] Ucoin Errors

---
 ucoinpy/api/bma/__init__.py |  2 +-
 ucoinpy/api/bma/api.py      | 11 ++-------
 ucoinpy/api/errors.py       | 45 +++++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 10 deletions(-)
 create mode 100644 ucoinpy/api/errors.py

diff --git a/ucoinpy/api/bma/__init__.py b/ucoinpy/api/bma/__init__.py
index 68763a4b..67f0e2d7 100644
--- a/ucoinpy/api/bma/__init__.py
+++ b/ucoinpy/api/bma/__init__.py
@@ -26,5 +26,5 @@ import logging
 logger = logging.getLogger("ucoin")
 
 
-from .api import API, ConnectionHandler, UcoinError
+from .api import API, ConnectionHandler
 from . import network, blockchain, tx, wot, node, ud, ws
\ No newline at end of file
diff --git a/ucoinpy/api/bma/api.py b/ucoinpy/api/bma/api.py
index 2afa98d6..143b7f26 100644
--- a/ucoinpy/api/bma/api.py
+++ b/ucoinpy/api/bma/api.py
@@ -20,16 +20,9 @@
 
 import aiohttp, json, logging, jsonschema
 
-logger = logging.getLogger("ucoin")
-
+from ..errors import UcoinError
 
-class UcoinError(Exception):
-    """
-    UCoin error
-    """
-    def __init__(self, data):
-        super().__init__("Error code {0} - {1}".format(data["ucode"], data["message"]))
-        self.error = data
+logger = logging.getLogger("ucoin")
 
 
 class ConnectionHandler(object):
diff --git a/ucoinpy/api/errors.py b/ucoinpy/api/errors.py
new file mode 100644
index 00000000..a0ed22d0
--- /dev/null
+++ b/ucoinpy/api/errors.py
@@ -0,0 +1,45 @@
+
+class UcoinError(Exception):
+    """
+    UCoin error
+    """
+    def __init__(self, data):
+        super().__init__("Error code {0} - {1}".format(data["ucode"], data["message"]))
+        self.ucode = data["ucode"]
+        self.message = data["message"]
+
+UNKNOWN                              = 1001
+UNHANDLED                            = 1002
+SIGNATURE_DOES_NOT_MATCH             = 1003
+ALREADY_UP_TO_DATE                   = 1004
+WRONG_DOCUMENT                       = 1005
+
+HTTP_PARAM_PUBKEY_REQUIRED           = 1101
+HTTP_PARAM_IDENTITY_REQUIRED         = 1102
+HTTP_PARAM_PEER_REQUIRED             = 1103
+HTTP_PARAM_BLOCK_REQUIRED            = 1104
+HTTP_PARAM_MEMBERSHIP_REQUIRED       = 1105
+HTTP_PARAM_TX_REQUIRED               = 1106
+HTTP_PARAM_SIG_REQUIRED              = 1107
+HTTP_PARAM_CERT_REQUIRED             = 1108
+HTTP_PARAM_REVOCATION_REQUIRED       = 1109
+HTTP_PARAM_CONF_REQUIRED             = 1110
+
+NO_MATCHING_IDENTITY                 = 2001
+UID_ALREADY_USED                     = 2002
+PUBKEY_ALREADY_USED                  = 2003
+NO_MEMBER_MATCHING_PUB_OR_UID        = 2004
+SELF_PEER_NOT_FOUND                  = 2005
+WRONG_SIGNATURE_MEMBERSHIP           = 2006
+ALREADY_RECEIVED_MEMBERSHIP          = 2007
+MEMBERSHIP_A_NON_MEMBER_CANNOT_LEAVE = 2008
+NOT_A_MEMBER                         = 2009
+NO_CURRENT_BLOCK                     = 2010
+BLOCK_NOT_FOUND                      = 2011
+PEER_NOT_FOUND                       = 2012
+WRONG_UNLOCKER                       = 2013
+LOCKTIME_PREVENT                     = 2014
+SOURCE_ALREADY_CONSUMED              = 2015
+WRONG_AMOUNTS                        = 2016
+WRONG_OUTPUT_BASE                    = 2017
+CANNOT_ROOT_BLOCK_NO_MEMBERS         = 2018
\ No newline at end of file
-- 
GitLab