diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py index 7ba205acc8397ca894c3f87e87dd7693cd7ba159..77fed99695ecdd3944b5c2537b6b5fa89874ed7d 100644 --- a/src/cutecoin/core/account.py +++ b/src/cutecoin/core/account.py @@ -24,6 +24,7 @@ from ..tools.exceptions import ContactAlreadyExists from ..core.net.api import bma as qtbma from ..core.net.api.bma import PROTOCOL_VERSION + def quantitative(units, community): """ Return quantitative value of units @@ -43,21 +44,7 @@ def relative(units, community): :param cutecoin.core.community.Community community: Community instance :return: float """ - # calculate ud(t+1) - ud_block = community.get_ud_block() - if ud_block: - ud = math.ceil( - max(community.dividend(), - float(0) if ud_block['membersCount'] == 0 else - community.parameters['c'] * community.monetary_mass / ud_block['membersCount'])) - - if ud == 0: - return float(0) - else: - relative_value = units / float(ud) - return relative_value - else: - return float(0) + return units / float(community.dividend) def quantitative_zerosum(units, community): @@ -68,8 +55,11 @@ def quantitative_zerosum(units, community): :param cutecoin.core.community.Community community: Community instance :return: int """ - # fixme: the value "community.nb_members" is not up to date, luckyly the good value is in "community.get_ud_block()['membersCount']" - average = community.monetary_mass / community.get_ud_block()['membersCount'] + ud_block = community.get_ud_block() + if ud_block and ud_block['membersCount'] > 0: + average = community.monetary_mass / ud_block['membersCount'] + else: + average = 0 return units - average @@ -81,15 +71,13 @@ def relative_zerosum(units, community): :param cutecoin.core.community.Community community: Community instance :return: float """ - # fixme: the value "community.nb_members" is not up to date, luckyly the good value is in "community.get_ud_block()['membersCount']" - median = community.monetary_mass / community.nb_members - # calculate ud(t+1) - ud = math.ceil( - max(community.dividend, - community.parameters['c'] * community.monetary_mass / community.get_ud_block()['membersCount']) - ) - relative_value = units / float(ud) - relative_median = median / ud + ud_block = community.get_ud_block() + if ud_block and ud_block['membersCount'] > 0: + median = community.monetary_mass / ud_block['membersCount'] + relative_value = units / float(community.dividend) + relative_median = median / community.dividend + else: + relative_median = 0 return relative_value - relative_median diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py index 367a97e2d06c6d44042166d0c154445821ee5b34..089a23bfb8b8fc62f7ad7776834bcbaae2320499 100644 --- a/src/cutecoin/core/community.py +++ b/src/cutecoin/core/community.py @@ -119,7 +119,7 @@ class Community(QObject): u = ord('\u24B6') + ord(letter) - ord('A') return chr(u) - #@property + @property def dividend(self): """ Get the last generated community universal dividend. @@ -147,7 +147,7 @@ class Community(QObject): if block: return math.ceil( max( - self.dividend(), + self.dividend, float(0) if block['membersCount'] == 0 else self.parameters['c'] * block['monetaryMass'] / block['membersCount'] ) diff --git a/src/cutecoin/gui/informations_tab.py b/src/cutecoin/gui/informations_tab.py index 163306776dbc6bea73e8677e7512fc0de85d2dad..efe63126feb738457d628de72a1f5d4338c294ff 100644 --- a/src/cutecoin/gui/informations_tab.py +++ b/src/cutecoin/gui/informations_tab.py @@ -150,8 +150,8 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): localized_mass_minus_1_per_member, self.tr('Monetary Mass per member M(t-1)/N(t) in'), self.get_referential_diff_name(), - float(0) if block_ud_minus_1['membersCount'] == 0 else - block_ud['dividend'] / (block_ud_minus_1['monetaryMass'] / block_ud_minus_1['membersCount']), + float(0) if block_ud['membersCount'] == 0 else + block_ud['dividend'] / (block_ud_minus_1['monetaryMass'] / block_ud['membersCount']), params['dt'] / 86400, self.tr('Actual growth c = UD(t)/[M(t-1)/N(t)]'), diff --git a/src/cutecoin/gui/transfer.py b/src/cutecoin/gui/transfer.py index 4b0ce6dc8c7a6b0a487a46a29b8545a1afc6401a..eb3a8cbdf54ff0925ae4145a9f55945b3c233860 100644 --- a/src/cutecoin/gui/transfer.py +++ b/src/cutecoin/gui/transfer.py @@ -35,7 +35,7 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): self.wallet = None self.community = self.account.communities[0] self.wallet = self.account.wallets[0] - self.dividend = self.community.dividend() + self.dividend = self.community.dividend regexp = QRegExp('^([ a-zA-Z0-9-_:/;*?\[\]\(\)\\\?!^+=@&~#{}|<>%.]{0,255})$') validator = QRegExpValidator(regexp) @@ -121,7 +121,7 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): def change_current_community(self, index): self.community = self.account.communities[index] - self.dividend = self.community.dividend() + self.dividend = self.community.dividend amount = self.wallet.value(self.community) ref_amount = self.account.units_to_ref(amount, self.community) ref_name = self.account.ref_name(self.community.currency)