Skip to content
Snippets Groups Projects
Commit efc94d06 authored by inso's avatar inso
Browse files

Issuance transactions are now available !

parent a61aff46
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -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):
......
......@@ -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 + "-" \
......
......@@ -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()
......
......@@ -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':
......
......@@ -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):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment