#Получение номера последнего обработанного блока try: last_block_num = int(redis.get('viz_last_block_num')) except: exchange.send_alert('Ошибка чтения из базы данных. Скрипт остановлен.') sys.exit('Ошибка чтения из базы данных. Скрипт остановлен.') #Публикация настроек из файла в блокчейн exchange.post_status() exchange.post_new_rate(exchange.viz_balance, exchange.usdt_balance) #Получение и обработка новых блоков каждые 3 секунды one_minute = three_minute = datetime.timestamp(datetime.now()) while (True): block_num = viz.get_dynamic_global_properties()['head_block_number'] while (last_block_num < block_num): last_block_num += 1 block = viz.get_block(last_block_num) for tr in block['transactions']: for op in tr['operations']: #Обработка входящих транзакций в БЧ VIZ if op[0] == 'transfer': op[1]['memo'] = op[1]['memo'].strip() #Обмен полученных VIZ на USDT if (op[1]['to'] == exchange.sett['viz_wallet']['login'] and len(op[1]['memo']) > 0): #Адрес кошелька пользователя для перевода USDT eth_wallet = op[1]['memo'].strip().lower() if re.fullmatch('0x[0-9a-f]{40}', eth_wallet): #Количество полученных от пользователя VIZ viz_amount = decimal.Decimal( float(op[1]['amount'][0:-4])).quantize( decimal.Decimal(
# -*- coding: utf-8 -*- import json from pprint import pprint from tvizbase.api import Api print('connect') b4 = Api() print('try call') block = 3058791 tx = b4.get_block(block) pprint(tx) input()