diff --git a/res/ui/addAccountDialog.ui b/res/ui/addAccountDialog.ui index 87f25ce73bd7c55cac5124e82103b93141765b42..94999db1151e6d10106ceccd581ed20a4f667f54 100644 --- a/res/ui/addAccountDialog.ui +++ b/res/ui/addAccountDialog.ui @@ -47,7 +47,7 @@ </widget> </item> <item> - <widget class="QComboBox" name="pgpkeyList"/> + <widget class="QComboBox" name="gpgKeysList"/> </item> </layout> </item> @@ -149,5 +149,6 @@ </connections> <slots> <slot>openAddCommunityDialog()</slot> + <slot>keyChanged(int)</slot> </slots> </ui> diff --git a/src/cutecoin/gui/addAccountDialog.py b/src/cutecoin/gui/addAccountDialog.py index 027b244f85612c6ec81770e9dc3e0154b1fe1f77..00c2caec9ba2ed66a4bdc2f8de8a16f7d0502cbb 100644 --- a/src/cutecoin/gui/addAccountDialog.py +++ b/src/cutecoin/gui/addAccountDialog.py @@ -29,7 +29,6 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog): self.dialog = AddCommunityDialog(self) self.mainWindow = mainWindow - self.buttonBox.accepted.connect(self.mainWindow.actionAddAccount) self.setData() @@ -38,15 +37,23 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog): gpg = gnupg.GPG() availableKeys = gpg.list_keys(True) for key in availableKeys: - self.pgpkeyList.addItem(key['uids'][0]) + self.gpgKeysList.addItem(key['uids'][0]) - self.account = Account(self.pgpkeyList.currentText(), "", Communities()) + self.account = Account(availableKeys[0]['keyid'], "", Communities()) + self.gpgKeysList.setEnabled() + self.gpgKeysList.currentIndexChanged[int].connect(self.keyChanged) def openAddCommunityDialog(self): self.dialog.setAccount(self.account) self.dialog.exec_() def actionAddCommunity(self): + self.gpgKeysList.setDisabled() + self.gpgKeysList.disconnect() self.communitiesList.setModel(CommunitiesListModel(self.account)) + def keyChanged(self, keyIndex): + gpg = gnupg.GPG() + availableKeys = gpg.list_keys(True) + self.account.gpgKey = availableKeys[keyIndex]['keyid'] diff --git a/src/cutecoin/gui/mainWindow.py b/src/cutecoin/gui/mainWindow.py index 9c32dabb46edba9c2b40b2452520dadf74c69349..1c3bb62a5d4c45620380e7ffebfac09a0823c9f7 100644 --- a/src/cutecoin/gui/mainWindow.py +++ b/src/cutecoin/gui/mainWindow.py @@ -50,4 +50,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.walletContent.setModel(WalletListModel(self.core.currentAccount.wallets.walletsList[0])) for community in self.core.currentAccount.communities.communitiesList: self.communitiesTab.addPage(CommunityTabWidget(community), community.name()) + #TODO: self.transactionsReceived.setModel() + #TODO: self.transactionsSent.setModel() + diff --git a/src/cutecoin/models/account/__init__.py b/src/cutecoin/models/account/__init__.py index cee00161ae4a42d7407473d7ca3b21b28faa3307..5234def89646bf559473d18d7341c45fedb5472c 100644 --- a/src/cutecoin/models/account/__init__.py +++ b/src/cutecoin/models/account/__init__.py @@ -13,11 +13,11 @@ class Account(object): classdocs ''' - def __init__(self, pgpKey, name, communities): + def __init__(self, gpgKey, name, communities): ''' Constructor ''' - self.pgpKey = pgpKey + self.gpgKey = gpgKey self.name = name self.communities = communities self.wallets = Wallets() @@ -34,8 +34,10 @@ class Account(object): def keyFingerprint(self): gpg = gnupg.GPG() availableKeys = gpg.list_keys() + print(self.gpgKey) for k in availableKeys: - if k['keyid'] == self.pgpKey: + print(k) + if k['keyid'] == self.gpgKey: return k['fingerprint'] return "" diff --git a/src/cutecoin/models/account/communities/__init__.py b/src/cutecoin/models/account/communities/__init__.py index b632aa4f1c65bd59e6f486c38cf93ebb2fe16296..56097ebe66ae93cfefadd40f4bb4ec2e8b4aa202 100644 --- a/src/cutecoin/models/account/communities/__init__.py +++ b/src/cutecoin/models/account/communities/__init__.py @@ -26,8 +26,9 @@ class Communities(object): community = Community(mainNode) self.members = community.ucoinRequest(lambda:ucoin.hdc.amendments.view.Members(community.currentAmendmentId()).get) - #TODO: Check membership + print(accountFingerprint) for member in self.members: + print(member) if member['value'] == accountFingerprint: self.communitiesList.append(community) return community diff --git a/src/cutecoin/models/community/__init__.py b/src/cutecoin/models/community/__init__.py index cdfcd33187cc79bdbd3a98a18c02bac25543c990..69db60d1e9d20902d014f83bc1a793c5eb877bf7 100644 --- a/src/cutecoin/models/community/__init__.py +++ b/src/cutecoin/models/community/__init__.py @@ -43,8 +43,9 @@ class Community(object): def currentAmendmentId(self): currentAmendment = self.ucoinRequest(lambda:ucoin.hdc.amendments.Current().get) - currentAmendmentHash = hashlib.sha1(json.dumps(currentAmendment).encode('utf-8')).hexdigest() + currentAmendmentHash = hashlib.sha1(currentAmendment['raw'].encode('utf-8')).hexdigest().upper() amendmentId = str(currentAmendment["number"]) + "-" + currentAmendmentHash + #TODO: Distinct debug logging and info logging for a -d parameter print("Amendment : " + amendmentId) return amendmentId diff --git a/src/cutecoin/models/transaction/__init__.py b/src/cutecoin/models/transaction/__init__.py index 7b9496a1eb90baf8eb7f7955352812b83fbca68c..49d71cbba4c843cf04719b375e44093f21ea98bd 100644 --- a/src/cutecoin/models/transaction/__init__.py +++ b/src/cutecoin/models/transaction/__init__.py @@ -10,11 +10,12 @@ class Transaction(object): ''' - def __init__(self, value, sender, receiver, currency): + def __init__(self, senderFingerprint, increment): ''' Constructor ''' - self.value = value - self.sender = sender - self.receiver = receiver - self.currency = currency + self.senderFingerprint = senderFingerprint + self.increment = increment + + def transactionID(self): + return self.senderFingerprint + "-" + self.increment