From dee108d1c3185ab413aa91d3face54a5b06df63e Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Thu, 22 May 2014 12:33:19 +0200 Subject: [PATCH] Wrappers only create HDC document --- ucoin/wrappers/transactions.py | 74 +++++++++++----------------------- 1 file changed, 23 insertions(+), 51 deletions(-) diff --git a/ucoin/wrappers/transactions.py b/ucoin/wrappers/transactions.py index f7878f0c..78eec453 100644 --- a/ucoin/wrappers/transactions.py +++ b/ucoin/wrappers/transactions.py @@ -24,15 +24,26 @@ logger = logging.getLogger("transactions") class Transaction(Wrapper): - def __init__(self, pgp_fingerprint, message='', keyid=None, peering=None, server=None, port=None): + def __init__(self, pgp_fingerprint, recipient, coins, message='', keyid=None, peering=None, server=None, port=None): super().__init__(server, port) self.keyid = keyid self.pgp_fingerprint = pgp_fingerprint self.message = message self.error = None self.peering = peering + self.recipient = recipient + self.coins = coins + self.coins.sort() def __call__(self): + tx = self.get_message() + txs = settings['gpg'].sign(tx, keyid=self.keyid, detach=True) + return (tx, txs) + + def get_context_data(self): + return {} + + def get_message(self): try: last_tx = hdc.transactions.sender.Last(count=1, pgp_fingerprint=self.pgp_fingerprint, server=self.server, port=self.port).get() @@ -55,6 +66,7 @@ class Transaction(Wrapper): context_data['previousHash'] = previous_hash context_data['message'] = self.message context_data['fingerprint'] = self.pgp_fingerprint + context_data['recipient'] = self.recipient context_data.update(self.get_context_data()) tx = """\ @@ -66,56 +78,6 @@ Number: %(number)d if last_tx: tx += "PreviousHash: %(previousHash)s\n" % context_data - try: - tx += self.get_message(context_data) - except ValueError as e: - self.error = e - return False - - tx += """\ -Comment: -%(message)s""" % context_data - - tx = tx.replace("\n", "\r\n") - print(self.keyid) - print(tx) - txs = settings['gpg'].sign(tx, keyid=self.keyid, detach=True) - print(txs) - print(tx) - return self.process(tx, txs) - - def get_context_data(self): - return {} - - def get_message(self, context_data, tx=''): - return tx - - def get_error(self): - return self.error - - def process(self, tx, txs): - try: - hdc.transactions.Process(self.server, self.port).post(transaction=tx, signature=txs) - except ValueError as e: - self.error = str(e) - else: - return True - - return False - - -class RawTransfer(Transaction): - def __init__(self, pgp_fingerprint, recipient, coins, message='', - keyid=None, server=None, port=None): - super().__init__(pgp_fingerprint, message, - keyid=keyid, server=server, port=port) - - self.recipient = recipient - self.coins = coins - self.coins.sort() - - def get_message(self, context_data, tx=''): - context_data['recipient'] = self.recipient tx += """\ Recipient: %(recipient)s @@ -132,3 +94,13 @@ Coins: return tx + tx += """\ +Comment: +%(message)s""" % context_data + + tx = tx.replace("\n", "\r\n") + return tx + + def get_error(self): + return self.error + -- GitLab