def get_context_data(self, *args, **kwargs): context = super(SendBitcoinsCreateView, self).get_context_data(*args, **kwargs) context['wallet'] = Wallet.objects.get( profile=self.request.user.profile) wallet = context['wallet'] # try: address_info = get_address_overview(wallet.receiving_address, coin_symbol=settings.COIN) # Obtengo el balance de la respuesta de Blockcypher luego de comision de wallet.balance = get_bitcoins(float(address_info['balance'])) wallet.save() # Muestra la clave privad desencriptada # context['priv'] = get_desencrypted_priv(wallet.private) # except: # messages.success(self.request, _(f'Could not get the balance')) return context
def get_context_data(self, *args, **kwargs): context = super(TransactionsListView, self).get_context_data(*args, **kwargs) context['wallet'] = Wallet.objects.get( profile=self.request.user.profile) wallet = context['wallet'] address_full = get_address_full(address=wallet.receiving_address, txn_limit=50, coin_symbol=settings.COIN) transactions = address_full['txs'] context['transactions'] = get_full_transactions( transactions, addrs=wallet.receiving_address) context['unconfirmed'] = get_bitcoins( address_full['unconfirmed_balance']) context['final_n_tx'] = address_full['final_n_tx'] context['unconfirmed_n'] = address_full['unconfirmed_n_tx'] paginator = Paginator(context['transactions'], 10) page = self.request.GET.get('page') context['transactions'] = paginator.get_page(page) return context
def form_valid(self, form): temp = form.cleaned_data['amount'] amount = get_satoshis(temp) to_wallet = form.cleaned_data['to_wallet'] description = form.cleaned_data['description'] context = self.get_context_data() wallet = context['wallet'] priv = get_desencrypted_priv(wallet.private) # get_desencrypted_priv(wallet.private) # try: tx = simple_spend(from_privkey=priv, to_address=to_wallet, to_satoshis=int(amount), coin_symbol=settings.COIN, api_key=settings.BLOCKCYPHER_TOKEN) if tx: instance = form.save(commit=False) address_info = get_address_overview(wallet.receiving_address, coin_symbol=settings.COIN) instance.wallet = wallet instance.amount = get_bitcoins(amount) instance.to_wallet = to_wallet instance.description = description instance.tx_ref = tx instance.save() wallet.balance = get_bitcoins(float(address_info['balance'])) wallet.save() messages.success(self.request, _(f'Congrats')) # except Exception as e: # if e == 'Build Unsigned TX Error': # messages.error(self.request, _("Transaccion invalida.")) # messages.error(self.request, _("Algo extraño ha sucedido. Por favor chequea los datos")) return HttpResponseRedirect(reverse('wallets:send'))
def form_valid(self, form): temp = form.cleaned_data['amount'] amount = get_satoshis(temp) to_wallet = form.cleaned_data['to_wallet'] description = form.cleaned_data['description'] context = self.get_context_data() wallet = context['wallet'] priv = get_desencrypted_priv(wallet.private) # get_desencrypted_priv(wallet.private) try: tx = simple_spend(from_privkey=priv, to_address=to_wallet, to_satoshis=int(amount), coin_symbol=settings.COIN, api_key=settings.BLOCKCYPHER_TOKEN) if tx: instance = form.save(commit=False) address_info = get_address_overview(wallet.receiving_address, coin_symbol=settings.COIN) print(tx) instance.wallet = wallet instance.amount = get_bitcoins(amount) instance.to_wallet = to_wallet instance.description = description # instance.tx_ref = tx['tx_ref'] instance.save() wallet.balance = get_bitcoins(float(address_info['balance'])) wallet.save() messages.success(self.request, _(f'Congrats')) except Exception as e: messages.error(self.request, e) return HttpResponseRedirect(reverse('wallets:send'))