diff --git a/wrappers/transactions.py b/wrappers/transactions.py index 6efaeeae32b1d8e9788e85171a7b09d5c5803e65..f4cc1f5bec5d154a2015ffe0de1fa8ad08599c52 100644 --- a/wrappers/transactions.py +++ b/wrappers/transactions.py @@ -34,7 +34,7 @@ class Transaction(Wrapper): def __call__(self): try: - last_tx = hdc.transactions.sender.Last(self.pgp_fingerprint, self.server, self.port).get() + last_tx = hdc.transactions.sender.Last(self.pgp_fingerprint, server=self.server, port=self.port).get() except ValueError: last_tx = None @@ -118,7 +118,7 @@ Comment: class Transfer(Transaction): def __init__(self, pgp_fingerprint, recipient, coins, message='', keyid=None, server=None, port=None): - super().__init__('TRANSFER', pgp_fingerprint, message, keyid, server, port) + super().__init__('TRANSFER', pgp_fingerprint, message, keyid=keyid, server=server, port=port) self.recipient = recipient self.coins = coins @@ -135,12 +135,37 @@ Coins: for coin in self.coins.split(','): data = coin.split(':') issuer = data[0] + for number in data[1:]: context_data.update(hdc.coins.View(issuer, int(number), self.server, self.port).get()) tx += '%(id)s, %(transaction)s\n' % context_data + return tx + + +class RawTransfer(Transaction): + def __init__(self, pgp_fingerprint, recipient, coins, message='', keyid=None, server=None, port=None): + super().__init__('TRANSFER', pgp_fingerprint, message, keyid=keyid, server=server, port=port) + + self.recipient = recipient + self.coins = coins + + def get_message(self, context_data, tx=''): + context_data['recipient'] = self.recipient + + tx += """\ +Recipient: %(recipient)s +Type: %(type)s +Coins: +""" % context_data + + for coin in self.coins: + data = coin.split('-') + context_data.update(hdc.coins.View(data[0], int(data[1]), self.server, self.port).get()) + tx += '%(id)s, %(transaction)s\n' % context_data return tx + class MonoTransaction(Transaction): def get_next_coin_number(self, coins): number = 0 @@ -172,7 +197,7 @@ Coins: class Issue(MonoTransaction): def __init__(self, pgp_fingerprint, amendment, coins, message='', keyid=None, server=None, port=None): - super().__init__('ISSUANCE', pgp_fingerprint, message, keyid, server, port) + super().__init__('ISSUANCE', pgp_fingerprint, message, keyid=keyid, server=server, port=port) self.amendment = amendment self.coins = coins @@ -189,7 +214,7 @@ class Issue(MonoTransaction): class Fusion(MonoTransaction): def __init__(self, pgp_fingerprint, coins, message='', keyid=None, server=None, port=None): - super().__init__('FUSION', pgp_fingerprint, message, keyid, server, port) + super().__init__('FUSION', pgp_fingerprint, message, keyid=keyid, server=server, port=port) self.coins = coins @@ -206,7 +231,7 @@ class Fusion(MonoTransaction): class Divide(MonoTransaction): def __init__(self, pgp_fingerprint, old_coins, new_coins, message='', keyid=None, server=None, port=None): - super().__init__('DIVISION', pgp_fingerprint, message, keyid, server, port) + super().__init__('DIVISION', pgp_fingerprint, message, keyid=keyid, server=server, port=port) self.old_coins = old_coins self.new_coins = new_coins