Exemple #1
0
#Получение номера последнего обработанного блока
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()