def crypto_currency_withdraw_submit(Req): Dict = {"use_f2a": False} if Req.session.has_key("use_f2a"): Dict["use_f2a"] = Req.session["use_f2a"] Form = CurrencyTransferForm(data=Req.POST, user=Req.user) getcontext().prec = settings.TRANS_PREC if Form.is_valid(): # Save Key = generate_key("currency_withdraw") Amnt = Decimal(Form.cleaned_data["amnt"]) - Form.comission transfer = CryptoTransfers(account=Form.cleaned_data["wallet"], currency=Form.currency_instance, amnt=Amnt, pub_date=datetime.datetime.now(), comission=Form.comission, user=Req.user, confirm_key=Key, debit_credit="out") transfer.save() #if settings.DEBUG is False: send_mail(_(u'Подтверждение вывода ') + settings.BASE_HOST, confirm_crypto_withdraw_email(Form.cleaned_data, Key), [Req.user.email], fail_silently=False) return redirect("/finance/confirm_withdraw_msg") else: t = loader.get_template("simple_form.html") Dict["form"] = Form.as_p() CurrencyIn = Currency.objects.get(title=Form.cleaned_data["currency"]) Dict["currency"] = Form.cleaned_data["currency"] TradePair = TradePairs.objects.get(currency_on=CurrencyIn, currency_from=CurrencyIn) Dict["common_help_text"] = settings.attention_be_aware_crypto % ( str(TradePair.min_trade_base) ) Dict["action"] = "/finance/crypto_currency_withdraw_submit" Dict["action_title"] = settings.withdraw_transfer Dict["pin_load"] = not Dict["use_f2a"] return tmpl_context(Req, t, Dict)
def process_block_info(Time): user_system = User.objects.get(id=1) CurrencyInstance = Currency.objects.get(title="BTC") getcontext().prec = crypton.settings.TRANS_PREC LastBlock = get_last_block() print "current block height is %i " % (LastBlock) AccountList = Accounts.objects.filter( currency=CurrencyInstance).order_by('balance') OwnAccounts = {} for i in AccountList: OwnAccounts[i.reference] = i MissTranses = [ "b7985ff9ae2c031d2a1a2aa2864036dff423e4a7e226f20ae6a05b8d10f12162", "e362eff1219e019a5891d288d3fbd6121ae127e3149f5566d8d3aebd71bd418e", "2f0d76ce32f5e182ebd0793dbd8000ea4e70b56c14462b4a32dd1bcb83621c32", "ffd420f3b20d516e44039cbae5a92d894258cadf7b6223ebd8b77e7b7bdcbc2e", "f661f7282a0280c0a8a73938c2726a9da8ab95f3ad17bd1fb8abccd76e510782", "5281dc88bed3f694e9968446d9003b68aa45bc4a6822f256a1d2c0d01c57fd29", "9c7d126f79f6e956c8de771fe585b3f6159f5df40fbccf1c3c33cdca0e853095" ] ForAccount = "1KRgYSAChvP5UFUQBQfqAHih2kEYW1CThD" for Trans in MissTranses: time.sleep(1) print "process adress %s" % (Trans) trans = None trans = get_trans(Trans) Txid = trans["hash"] if trans["time"] < Time: print "this trans is old" continue print str(trans) try: Confirmations = LastBlock - trans["block_height"] + 1 except: continue if is_out(trans["inputs"], OwnAccounts): print "it is out trans for us %s" % (Txid) continue try: Decimal = get_in_acc(trans["out"], ForAccount) except: print "get error during processing the %s" % trans continue if Decimal == 0: print "it is out trans for %s " % (ForAccount) continue print "confirmations %i" % (Confirmations) print " amount of %s" % (Decimal) TransObj = None try: TransObj = CryptoTransfers.objects.get(crypto_txid=Trans, account=ForAccount) print "trans %s is existed to %s amnt %s %i" % ( TransObj.crypto_txid, TransObj.user.username, TransObj.amnt, TransObj.id) print "it's not a missed trans" continue except CryptoTransfers.DoesNotExist: suffix = ForAccount[:-10] print "trans %s to save %s amnt %s" % (Trans.hash, output.address, Decimal) TransObj = CryptoTransfers(crypto_txid=Trans + "_" + suffix, status="processing", amnt=Decimal, currency=CurrencyInstance, account=ForAccount, user=OwnAccounts[ForAccount], confirms=0) TransObj.save() print "#%i receive %s to %s amount of %s" % ( Trans.id, Txid, Trans.user.username, Trans.amnt) print "this trans is %s" % (Trans.status) continue if Trans.status == "processing" or Trans.status == "created": print "update confirmations" Trans.status = "processing" Trans.confirms = Confirmations Trans.save() if Confirmations >= CryptoSettings["BTC"][ "min_confirmation"] and Trans.status != "processed": Trans.confirms = Confirmations crypton_in(Trans, user_system) Trans.status = "processed" Trans.save()