def handle(self, *args, **options): Crypton = CryptoAccount("BTC", "trade_stock") with open("/home/bogdan/crypton/my_accounts.csv") as f: L = f.readlines() Sum = 0 Dict = {} for address in L: addresses = address.replace("\n", "") Res = addresses.split(",") print "%s,%s,%s" % ( Res[0], Crypton.dumpprivkey(Res[0]), Res[1] ) if Dict.has_key(Res[0]): print "repeated " continue else: Dict[Res[0]] = 1 try: Bal = Balances.objects.get(account=Res[0]) Bal.balance = sato2Dec(Res[1]) Bal.save() except: Bal = Balances(account=Res[0], currency_id=2) Bal.balance = sato2Dec(Res[1]) Bal.save()
def check_btc_balance(): cursor = connection.cursor() cursor.execute("SELECT sum(balance) FROM main_accounts WHERE currency_id=2 AND balance>0 ") s = cursor.fetchone() * 1 if s == (None, ): s = Decimal("0.0") else: (s, ) = s cursor.execute("SELECT sum(amnt) FROM main_cryptotransfers WHERE status in " "('processing') AND currency_id=2 AND pub_date>='2015-05-08' ") s1 = cursor.fetchone() * 1 if s1 == (None, ): s1 = Decimal("0.0") else: (s1, ) = s1 Balance1 = 0 # Crypton = Wallet(CryptoSettings["BTC"]["host"], CryptoSettings["BTC"]["rpc_user"], CryptoSettings["BTC"]["rpc_pwd"]) Balance2 = sato2Dec(Crypton.get_balance()) print Balance2 print Balance1 print s print s1 print Balance1 + Balance2 print s1 + s Delta = Balance1 + Balance2 - s - s1 print "Delta is %s " % Delta return Delta >= 0
def handle(self, *args, **options): import blockchain blockchain.util.TIMEOUT = 60 Last = None CurrencyInstance = Currency.objects.get(title="BTC") AccountList = PoolAccounts.objects.filter(currency_id=2) OwnAccounts = {} print "get all addresses" for i in AccountList: if i.address == '' or i.address is None or i.user is None: continue OwnAccounts[i.address] = i.user while True: try: Last = VolatileConsts.objects.get(Name="last_btc_process_block") except: print "there is no previouse info" sys.exit(0) PrevValue = int(Last.Value) time.sleep(1) NewBlock = PrevValue + 1 LatestBlock = blockexplorer.get_latest_block() print "start process new block %i %i" % (NewBlock, LatestBlock.height) if LatestBlock.height == NewBlock or LatestBlock.height < NewBlock: print "there is uncofirmed block do nothing" sys.exit(0) # try: for Block in blockexplorer.get_block_height(NewBlock): for Trans in Block.transactions: for output in Trans.outputs: if OwnAccounts.has_key(output.address): if is_out(Trans.inputs, OwnAccounts): break else: Decimal = sato2Dec(output.value) try: TransObj = CryptoTransfers.objects.get(crypto_txid=Trans.hash) print "trans %s is existed to %s amnt %s %i" % ( TransObj.crypto_txid, TransObj.user.username, TransObj.amnt, TransObj.id) except CryptoTransfers.DoesNotExist: print "trans %s to save %s amnt %s" % (Trans.hash, output.address, Decimal) TransObj = CryptoTransfers(crypto_txid=Trans.hash, status="processing", amnt=Decimal, currency=CurrencyInstance, account=output.address, user=OwnAccounts[output.address], confirms=0 ) TransObj.sign_record(crypton.settings.CRYPTO_SALT) TransObj.save() Last.Value = NewBlock Last.save()
def get_in_acc(Trans, Address): Sum = 0 for i in Trans: if i["addr"] == Address : print "receive %i" % (i["value"]) Sum = Sum + i["value"] return sato2Dec(Sum)
def get_in_acc(Trans, Address): Sum = 0 for i in Trans: if i["addr"] == Address: print "receive %i" % (i["value"]) Sum = Sum + i["value"] return sato2Dec(Sum)
if LatestBlock.height == NewBlock: print "start process new block %i %i" % (NewBlock, LatestBlock.height) if LatestBlock.height == NewBlock or LatestBlock.height < NewBlock: print "there is uncofirmed block do nothing" sys.exit(0) # try: for Block in blockexplorer.get_block_height(NewBlock): print "block get" for Trans in Block.transactions: for output in Trans.outputs : if OwnAccounts.has_key( output.address): if is_out(Trans.inputs, OwnAccounts ): break else: Decimal = sato2Dec(output.value) try : TransObj = CryptoTransfers.objects.get(crypto_txid = Trans.hash) print "trans %s is existed to %s amnt %s" % (TransObj.crypto_txid, TransObj.user.username, TransObj.amnt) except CryptoTransfers.DoesNotExist: print "trans %s to save %s amnt %s" % (Trans.hash, output.address, Decimal) TransObj = CryptoTransfers(crypto_txid = Trans.hash, status="processing", amnt = Decimal, currency = CurrencyInstance , account = output.address, user = OwnAccounts[ output.address ], confirms = 0 ) TransObj.save()
def check_btc_balance(verbose=False): cursor = connection.cursor() cursor.execute( "SELECT sum(balance) FROM main_accounts WHERE currency_id=2 AND balance>0 " ) s = cursor.fetchone() * 1 if s == (None, ): s = Decimal("0.0") else: (s, ) = s main_account = Accounts.objects.get(id=13) blockchain.util.TIMEOUT = 300 cursor.execute( "SELECT sum(if(debit_credit='in',-1*amnt, amnt)) " "FROM main_cryptotransfers WHERE status in ('processing','created','processing2') AND currency_id=2 AND pub_date>='2015-05-08' " ) s1 = cursor.fetchone() * 1 if s1 == (None, ): s1 = Decimal("0.0") else: (s1, ) = s1 SERVICE_URL = settings.blockchaininfo_service (Balance1, Balance2, Balance3, Balance4, Balance5, Balance6, Balance8) = (0, 0, 0, 0, 0, 0, 0) Balance7 = 0 Balance9 = 0 Balance10 = 0 Balance11 = 0 Balancecold = sato2Dec(get_balance("1AMTTKEAav9aQDotyhNg4Z7YSUBYTTA6ds", 0)) Balancecold = sato2Dec(get_balance("19jHRHwuHnQQVajRrW976aCXYYdgij8r43", 0)) + Balancecold Balancecold = sato2Dec(get_balance("17iAu7iSSwo9VGeNn6826Lz1qLPq152xAW", 0)) + Balancecold Balancecold = sato2Dec(get_balance("15c3H6jhQys8b8M5vszx2s21UNDH3caz9P", 0)) + Balancecold Balancecold = sato2Dec(get_balance("19YxpMLUAdZoJpUBqwURcJzd2zs4knMvGV", 0)) + Balancecold Balance1 = sato2Dec(get_balance("167GWdfvG4JtkFErq4qBBLqKYFK26dhgDJ", 0)) + Balance1 Balance1 = sato2Dec(get_balance("1Q1woBCCGiuELYzVvS3hCgSs6pFKuqHNpt", 0)) + Balance1 Balance1 = sato2Dec(get_balance("19TaiL4j288Zgm1AQXUwMcyLup7vki54Fs", 0)) + Balance1 Balance1 = sato2Dec(get_balance("13EDdpizTP3grQQAnpCtSJNTTwkDkV9VeB", 0)) + Balance1 Balance1 = sato2Dec(get_balance("1AXKnEK3P1tiHEBAVpDzg4k3yXosR5oKL8", 0)) + Balance1 Balance1 = sato2Dec(get_balance("1GjthoqTvBq1N8KkKVEDHV9b8snmt2ehcS", 0)) + Balance1 Balance1 = sato2Dec(get_balance("1LvDnHktCL77r16eimv7Fr9d5xDieb1wFC", 0)) + Balance1 Balancecold = sato2Dec(get_balance("15jsdKn3L8ExQngY8HRRUz3prof8mAn8yr", 0)) + Balancecold HotWalletBalance = sato2Dec( get_balance("1LNYCGkXtJscvMHHucEfpxWMBnf33Ke18W", 0)) Crypton = Wallet("2b835907-d012-4552-830c-6116ab0178f2", "#Prikol13_", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton1 = Wallet("772bb645-48f5-4328-9c3d-3838202132d6", "xxx_21_34_Zb", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton2 = Wallet("ee23c1bd-d3dd-4661-aef5-8e342c7f5960", "xxx_21_34_Zb", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton3 = Wallet("e6202826-bb24-435c-8350-b4a942b4380b", "xxx_21_34_Zb", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton4 = Wallet("3ccaa767-770f-476f-a836-9db1c005055e", "_quenobi8610", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton5 = Wallet("caa19b23-198a-4aad-a9c0-3f80efe37118", "dirty_43_13", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton6 = Wallet("14ef48bb-4d71-4bc4-be34-75ba0978202f", "dirty_43_13", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton7 = Wallet("913d6442-fc77-4b7b-b5f8-af272e458897", "xxx_21_34_Zb", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") Crypton8 = Wallet("5432b01c-f67e-473e-aa4c-29cd9682b259", "xxx_21_34_Zb", service_url=SERVICE_URL, api_code="b720f286-9b3f-452c-b93c-969c8dd3967f") # Crypton9 = Wallet("a2ba7138-2bd3-4898-b68b-d0908d40bc4d", "xxx_21_34_Zb", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) # Crypton10 = Wallet("d8d5ce8a-6ff9-4f7e-80f3-08cac5788781", "xxx_21_34_Zb", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) # Crypton11 = Wallet("eb836197-285e-44ee-a8cf-5642a02e6250", "#Prikol13_", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) # Crypton12 = Wallet("c800e14e-95d4-4fcf-816b-696fbaaf5741", "xxx_21_34_Zb", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) Crypton13 = Wallet("e60c37e7-4375-44ea-b167-a63b453c14a1", "#Prikol13_", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) Crypton14 = Wallet("118344b4-5d26-4cfe-871a-0c3393ee5db0", "#Prikol13_", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) Crypton15 = Wallet("f252bb25-6b99-4e49-a5cf-41489eefb728", "#Prikol13_", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) Crypton16 = Wallet("5a778945-fbb4-4692-b448-fd5b513c008d", "#Prikol13_", api_code="b720f286-9b3f-452c-b93c-969c8dd3967f", service_url=SERVICE_URL) Balance2 = sato2Dec(Crypton.get_balance()) print "Balance of hot wallet 1 " + str(Balance2) Balance3 = sato2Dec(Crypton1.get_balance()) + sato2Dec( Crypton4.get_balance()) print "Balance of hot wallet 2 " + str(Balance3) Balance4 = sato2Dec(Crypton2.get_balance()) print "Balance of hot wallet 3 " + str(Balance4) Balance5 = sato2Dec(Crypton3.get_balance()) print "Balance of hot wallet 4 " + str(Balance5) Balance6 = sato2Dec(Crypton5.get_balance()) print "Balance of hot wallet 5 " + str(Balance6) Balance7 = sato2Dec(Crypton6.get_balance()) print "Balance of hot wallet 6 " + str(Balance7) Balance8 = sato2Dec(Crypton7.get_balance()) print "Balance of hot wallet 7 " + str(Balance8) Balance9 = sato2Dec(Crypton8.get_balance()) print "Balance of hot wallet 8 " + str(Balance9) Balance10 = sato2Dec(Crypton9.get_balance()) print "Balance of hot wallet 9 " + str(Balance10) Balance11 = sato2Dec(Crypton10.get_balance()) print "Balance of hot wallet 10 " + str(Balance11) Balance12 = sato2Dec(Crypton11.get_balance()) print "Balance of hot wallet 12 " + str(Balance12) Balance13 = sato2Dec(Crypton12.get_balance()) print "Balance of hot wallet 13 " + str(Balance13) Balance14 = sato2Dec(Crypton13.get_balance()) print "Balance of hot wallet 14 " + str(Balance14) Balance15 = sato2Dec(Crypton14.get_balance()) print "Balance of hot wallet 15 " + str(Balance15) Balance16 = sato2Dec(Crypton15.get_balance()) print "Balance of hot wallet 16 " + str(Balance16) Balance17 = sato2Dec(Crypton16.get_balance()) print "Balance of hot wallet 17 " + str(Balance17) Dismiss = Decimal("0.0") Crypton = CryptoAccount("BTC", "trade_stock") LChange = Crypton.listaddressgroupings() BalanceCore = Decimal(str(Crypton.getbalance())) if False: for adres in LChange[0]: if not adres[0] in ("1LNYCGkXtJscvMHHucEfpxWMBnf33Ke18W", "1CzLixrLpf6LRiiqH5jMZ7dD3GP2gDJ4xw", "1FLCVHDDwJmimjgch5s4CtjpbNn5pQ3mAi"): BalanceCore += Decimal(str(adres[1])) BalanceOnHots = BalanceCore + Balance11 + Balance10 + Balance1 + Balance2 + Balance3 + Balance4 + Balance5 + Balance6 + Balance7 + Balance8 + Balance9 + Balance12 + Balance13 + Balance14 + Balance15 + Balance16 + Balance17 print "our core wallet " + str(BalanceCore) print "Correction " + str(Dismiss) print "balance of cold wallet " + str(Balancecold) print "balance on hots wallet " + str(BalanceOnHots) print "balance of accounts " + str(s) print "main accounts balance " + str(main_account.balance) print "checking consistens %s" % (s + main_account.balance) print "balance of processing " + str(s1) print "sum on walletes " + str(Balancecold + BalanceOnHots) print "sum in system " + str(s1 + s) change_volitile_const("balance_corr_BTC", Dismiss) change_volitile_const("balance_out_BTC", str(Balancecold + BalanceOnHots)) Delta = Balancecold + BalanceOnHots - s - s1 + Dismiss print "Delta is %s " % Delta return Delta >= 0