From 8fb0a404d4cf1e284158320abd51ca40a6ba7b2c Mon Sep 17 00:00:00 2001 From: inso <insomniak.fr@gmaiL.com> Date: Thu, 17 Mar 2016 20:58:40 +0100 Subject: [PATCH] Fix transaction builder algorithm --- src/sakia/core/wallet.py | 8 ++++---- src/sakia/tests/unit/core/test_wallet.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/sakia/core/wallet.py b/src/sakia/core/wallet.py index cbe23f9d..fa73835d 100644 --- a/src/sakia/core/wallet.py +++ b/src/sakia/core/wallet.py @@ -175,18 +175,18 @@ class Wallet(QObject): :return: The list of inputs to use in the transaction document """ - value = 0 amount, amount_base = reduce_base(amount, 0) cache = self.caches[community.currency] current_base = amount_base - sources = [] - buf_sources = list(cache.available_sources) while current_base >= 0: + value = 0 + sources = [] + buf_sources = list(cache.available_sources) for s in [src for src in cache.available_sources if src['base'] == current_base]: value += s['amount'] * pow(10, s['base']) sources.append(s) buf_sources.remove(s) - if value >= amount: + if value >= amount * pow(10, amount_base): overhead = value - int(amount) overhead, overhead_max_base = reduce_base(overhead, 0) if overhead_max_base >= current_base: diff --git a/src/sakia/tests/unit/core/test_wallet.py b/src/sakia/tests/unit/core/test_wallet.py index 787efe25..875ea588 100644 --- a/src/sakia/tests/unit/core/test_wallet.py +++ b/src/sakia/tests/unit/core/test_wallet.py @@ -72,8 +72,8 @@ class TestWallet(unittest.TestCase, QuamashTest): self.assertEqual(tx.inputs[1].source, "D") self.assertEqual(tx.inputs[1].index, 4) self.assertEqual(len(tx.outputs), 1) - self.assertEqual(tx.outputs[0].amount, 1) - self.assertEqual(tx.outputs[0].base, 2) + self.assertEqual(tx.outputs[0].amount, 100) + self.assertEqual(tx.outputs[0].base, 0) self.assertEqual(pypeg2.compose(tx.outputs[0].conditions, output.Condition), "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)") self.assertEqual(len(tx.unlocks), 2) @@ -94,5 +94,5 @@ Unlocks: 0:SIG(0) 1:SIG(0) Outputs: -1:2:SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn) +100:0:SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn) Comment:""" + " \n") -- GitLab