Ejemplo n.º 1
0
 def on_receiving_btc_address_changed(self, txt):
     self.ids.receiving_btc_address_input.text = txt
     transaction_details = local_storage.read_transaction(
         self.transaction_id)
     transaction_details['buyer']['btc_address'] = txt
     local_storage.write_transaction(transaction_details['transaction_id'],
                                     transaction_details)
Ejemplo n.º 2
0
 def on_disable_transaction_button_clicked(self):
     transaction_id = self.ids.transactions_view.selected_item.ids.tr_id.text
     tr = local_storage.read_transaction(transaction_id)
     if not tr:
         return
     tr['void'] = True
     local_storage.write_transaction(transaction_id, tr)
     self.ids.transactions_view.populate()
Ejemplo n.º 3
0
 def on_receiving_btc_address_change_button_clicked(self):
     transaction_details = local_storage.read_transaction(
         self.transaction_id)
     if transaction_details.get('blockchain_status') == 'confirmed':
         return
     dlg = dialogs.BTCAddressDialog(
         btc_address=self.ids.receiving_btc_address_input.text,
         callback=self.on_receiving_btc_address_changed,
     )
     dlg.open()
Ejemplo n.º 4
0
 def on_pdf_file_button_clicked(self):
     cur_settings = local_storage.read_settings()
     transaction_details = local_storage.read_transaction(
         self.transaction_id)
     if transaction_details:
         buy_contract = render_pdf.build_pdf_contract(
             transaction_details=transaction_details,
             disclosure_statement=cur_settings.get('disclosure_statement')
             or '',
             pdf_filepath=os.path.join(
                 local_storage.contracts_dir(),
                 'transaction_{}.pdf'.format(self.transaction_id)),
         )
         system.open_system_explorer(buy_contract['filename'])
Ejemplo n.º 5
0
 def on_verify_button_clicked(self):
     transaction_details = local_storage.read_transaction(
         self.transaction_id)
     if transaction_details.get('blockchain_status') == 'confirmed':
         return
     cur_settings = local_storage.read_settings()
     self.ids.verify_button.disabled = True
     self.ids.verify_status_label.text = '[color=#505050]requesting transactions from btc.com ...[/color]'
     matching_transactions = btc_util.verify_contract(
         contract_details=transaction_details,
         price_precision_fixed_amount=float(
             cur_settings.get('price_precision_fixed_amount', '0.0')),
         price_precision_matching_percent=float(
             cur_settings.get('price_precision_matching_percent', '0.0')),
         time_matching_seconds_before=float(
             cur_settings.get('time_matching_seconds_before', '0.0')),
         time_matching_seconds_after=float(
             cur_settings.get('time_matching_seconds_after', '0.0')),
     )
     self.ids.verify_button.disabled = False
     st = ''
     if len(matching_transactions) == 0:
         st = '[color=#505050]did not found any matching transactions for BTC address %s[/color]' % transaction_details[
             'buyer']['btc_address']
     elif len(matching_transactions) > 1:
         st = '[color=#F05050]found multiple matching transactions for BTC address %s[/color]' % transaction_details[
             'buyer']['btc_address']
     else:
         st = '[color=#70a070]found corresponding transaction of %s BTC for address %s[/color]' % (
             transaction_details['btc_amount'],
             transaction_details['buyer']['btc_address'])
         transaction_details['blockchain_status'] = 'confirmed'
         transaction_details['blockchain_tx_info'] = matching_transactions[
             0]
         local_storage.write_transaction(
             transaction_details['transaction_id'], transaction_details)
     self.ids.verify_status_label.text = st
     self.populate_fields(transaction_details)
Ejemplo n.º 6
0
 def on_pre_enter(self, *args):
     if self.transaction_id is None:
         return
     tran_details = local_storage.read_transaction(self.transaction_id)
     self.populate_fields(tran_details)
Ejemplo n.º 7
0
 def on_explore_button_clicked(self):
     transaction_details = local_storage.read_transaction(
         self.transaction_id)
     system.open_webbrowser(
         url='https://www.blockchain.com/btc/address/' +
         transaction_details.get('buyer', {}).get('btc_address', ''), )
Ejemplo n.º 8
0
 def on_enter(self, *args):
     self.ids.verify_status_label.text = ''
     if self.transaction_id is None:
         return
     tran_details = local_storage.read_transaction(self.transaction_id)
     self.populate_fields(tran_details)