diff --git a/src/cutecoin/core/config.py b/src/cutecoin/core/config.py index 177904f9144fc3a76555165ac7ac19e7a72eb117..c1e4595ca6f09d5e749c443ea42221003925f39e 100644 --- a/src/cutecoin/core/config.py +++ b/src/cutecoin/core/config.py @@ -8,6 +8,7 @@ import logging from optparse import OptionParser import os.path import gnupg +import ucoinpy as ucoin home = os.path.expanduser("~") @@ -39,6 +40,8 @@ def parseArguments(argv): else: logging.getLogger().propagate = False + + ucoin.settings['gpg'] = gnupg.GPG() logger = logging.getLogger("gnupg") logger.setLevel(logging.INFO) diff --git a/src/cutecoin/models/account/__init__.py b/src/cutecoin/models/account/__init__.py index 393bed9175f1eca1f7f71ad3970ce3fab06b2749..0141967e471d2e821eb7f5f73e0991c74d2c5736 100644 --- a/src/cutecoin/models/account/__init__.py +++ b/src/cutecoin/models/account/__init__.py @@ -71,7 +71,7 @@ class Account(object): for community in self.communities.communitiesList: transactionsData = community.ucoinRequest(ucoin.hdc.transactions.Recipient(self.keyFingerprint())) for trxData in transactionsData: - received.append(trxFactory.createTransaction(trxData['sender'], trxData['number'])) + received.append(factory.createTransaction(trxData['value']['transaction']['sender'], trxData['value']['transaction']['number'], community)) return received def transactionsSent(self): @@ -81,7 +81,7 @@ class Account(object): for trxData in transactionsData: # Small bug in ucoinpy library if not isinstance(trxData, str): - sent.append(trxFactory.createTransaction(trxData['sender'], trxData['number'])) + sent.append(factory.createTransaction(trxData['value']['transaction']['sender'], trxData['value']['transaction']['number'], community)) return sent def lastIssuances(self, community): @@ -89,7 +89,8 @@ class Account(object): if community in self.communities.communitiesList: issuancesData = community.ucoinRequest(ucoin.hdc.transactions.sender.Issuance(self.keyFingerprint())) for issuance in issuancesData: - issuances.append(trxFactory.createTransaction(issuance['sender'], issuance['number'])) + logging.debug(issuance) + issuances.append(factory.createTransaction(issuance['value']['transaction']['sender'], issuance['value']['transaction']['number'], community)) return issuances def issuedLastDividend(self, community): @@ -106,8 +107,8 @@ class Account(object): def issueDividend(self, community, coins): if community in self.communities.communitiesList: - ucoin.settings['gpg'] = gnupg.GPG() - issuance = ucoin.wrappers.transactions.Issue(self.keyFingerprint(), community.amendmentNumber(), coins) + logging.debug(coins) + issuance = ucoin.wrappers.transactions.Issue(self.keyFingerprint(), community.amendmentNumber(), coins, keyId=self.pgpKeyId) return issuance() def jsonify(self): diff --git a/src/cutecoin/models/coin/__init__.py b/src/cutecoin/models/coin/__init__.py index ade69e4bb50d4ee57b038f33c1868c2abd469f26..1cfc8c708307416954fe02d3b2c3dff47a9f8725 100644 --- a/src/cutecoin/models/coin/__init__.py +++ b/src/cutecoin/models/coin/__init__.py @@ -6,6 +6,7 @@ Created on 2 févr. 2014 import re import math +import logging class Coin(object): ''' @@ -21,17 +22,17 @@ class Coin(object): @classmethod def fromId(cls, coin_id): # Regex to parse the coin id - regex = "/^([A-Z\d]{40})-(\d+)-(\d)-(\d+)-((A|F|D)-\d+))$/" + regex = "^([A-Z\d]{40})-(\d+)-(\d)-(\d+)-((A|F|D)-\d+)$" m = re.search(regex, coin_id) - issuer = m.group(0) - number = int(m.group(1)) - base = int(m.group(2)) - power = int(m.group(3)) - origin = m.group(4) + issuer = m.group(1) + number = int(m.group(2)) + base = int(m.group(3)) + power = int(m.group(4)) + origin = m.group(5) return cls(issuer, number, base, power, origin) def value(self): - return math.pow(self.base, self.power) + return self.base*math.pow(10, self.power) def getId(self): return self.issuer + "-" \ diff --git a/src/cutecoin/models/transaction/__init__.py b/src/cutecoin/models/transaction/__init__.py index 5d69d5c28ae7c60e8ef0f453d5962c5d4ee4c7f4..6f5908b9d5aeef425a18bbbbac5e3106bbd92534 100644 --- a/src/cutecoin/models/transaction/__init__.py +++ b/src/cutecoin/models/transaction/__init__.py @@ -20,13 +20,13 @@ class Transaction(object): def value(self): value = 0 - trxData = self.community.ucoinRequest(ucoin.hdc.transactions.View(self.sender.pgpFingerprint + "-" + self.increment)) + trxData = self.community.ucoinRequest(ucoin.hdc.transactions.View(self.sender.fingerprint + "-" + str(self.increment))) for coin in trxData['transaction']['coins']: - value += Coin.fromId(coin[id]).value() + value += Coin.fromId(coin['id']).value() return value def currency(self): - trxData = self.community.ucoinRequest(ucoin.hdc.transactions.View(self.sender.pgpFingerprint + "-" + self.increment)) + trxData = self.community.ucoinRequest(ucoin.hdc.transactions.View(self.sender.fingerprint + "-" + str(self.increment))) currency = trxData['transaction']['currency'] return currency @@ -43,10 +43,10 @@ class Transfer(Transaction): super(Transfer).__init__() def getReceivedText(self): - return str(self.value) + " " + self.currency + " from " + self.sender.name + return str(self.value()) + " " + self.currency() + " from " + self.sender.name def getSentText(self): - return str(self.value) + " " + self.currency + " from " + self.recipient.name + return str(self.value()) + " " + self.currency() + " from " + self.recipient.name class Issuance(Transaction): @@ -57,10 +57,10 @@ class Issuance(Transaction): super(Issuance).__init__() def amendmentNumber(self): - self.community.ucoinRequest(ucoin.hdc.transactions.View(self.sender.pgpFingerprint + "-" + self.increment)) + self.community.ucoinRequest(ucoin.hdc.transactions.View(self.sender.fingerprint + "-" + str(self.increment))) def getText(self): - return str(self.value) + " " + self.currency + return str(self.value()) + " " + self.currency() diff --git a/src/cutecoin/models/transaction/factory.py b/src/cutecoin/models/transaction/factory.py index d36b11b2c5c525fd04ac494272542c2972211f4a..e0f335fe875694f84337a32c524e97aa30c4cf5c 100644 --- a/src/cutecoin/models/transaction/factory.py +++ b/src/cutecoin/models/transaction/factory.py @@ -11,7 +11,7 @@ from cutecoin.models.transaction import Transfer, Issuance #TODO: Passer par des factory + pythonic def createTransaction(senderFingerprint, increment, community): transactionId = senderFingerprint + "-" + str(increment) - ucoinTransactionView = ucoin.hdc.transactions.View(transactionId) + ucoinTransactionView = community.ucoinRequest(ucoin.hdc.transactions.View(transactionId)) ucoinTransaction = ucoinTransactionView['transaction'] transaction = None if ucoinTransaction['type'] == 'TRANSFER': diff --git a/src/cutecoin/models/transaction/issuancesListModel.py b/src/cutecoin/models/transaction/issuancesListModel.py index 59118d14ccdcb567ea4b95424ff16573d86f9953..d10ae4f3ad57907196c553c57139b1a616c230fc 100644 --- a/src/cutecoin/models/transaction/issuancesListModel.py +++ b/src/cutecoin/models/transaction/issuancesListModel.py @@ -24,7 +24,7 @@ class IssuancesListModel(QAbstractListModel): if role == Qt.DisplayRole: row=index.row() - value = self.issuances[row] + value = self.issuances[row].getText() return value def flags(self,index):