viz.custom( 'vizplus_bitshares_info', # ID custom'а [ 'vizplus_bitshares_info', # название типа данных, может отличаться от ID { 'time_utc': str(datetime.utcnow()), 'average_bid_price': str( decimal.Decimal(parser.average_bid_price).quantize( decimal.Decimal('1.' + '0' * settings['price_precision']))), 'average_ask_price': str( decimal.Decimal(parser.average_ask_price).quantize( decimal.Decimal('1.' + '0' * settings['price_precision']))), #'average_history_price': str(decimal.Decimal( # parser.average_history_price #).quantize(decimal.Decimal('1.' + '0'*settings['price_precision']))), 'quote': parser.sett['quote'], 'base': parser.sett['base'], 'additional_assets': parser.sett['additional_assets'], 'usdt_assets': parser.sett['usdt_assets'], 'base_depth': parser.sett['base_depth'], #'history_depth': parser.sett['history_depth'] } ], settings['viz_account']['login'], settings['viz_account']['key'])
viz.custom( settings['viz_custom_name'], # ID custom'а [ 'exchanger_data', # название типа данных { 'datetime': str(datetime.utcnow()), 'viz_balance': str(viz_balance), 'viz_limit_min': str(settings['viz_limit_min']), 'viz_limit_max': str(settings['viz_limit_max']), 'buy_viz_limit_min': str(buy_viz_limit_min), 'buy_viz_limit_max': str(buy_viz_limit_max), 'usdt_balance': str(usdt_balance), 'usdt_limit_min': str(settings['usdt_limit_min']), 'usdt_limit_max': str(settings['usdt_limit_max']), 'buy_usdt_limit_min': str(buy_usdt_limit_min), 'buy_usdt_limit_max': str(buy_usdt_limit_max), 'rate': str(rate), 'exchange_ratio': str( decimal.Decimal(settings['exchange_ratio']).quantize( decimal.Decimal('1.00'))), 'usdt_fee': str(settings['usdt_fee']), 'eth_wallet_cost': str(settings['eth_wallet_cost']), 'viz_wallet': settings['viz_wallet']['login'], 'viz_wallet_cold': settings['viz_wallet_cold']['login'], 'eth_wallet': settings['eth_wallet']['login'], 'eth_wallet_cold': settings['eth_wallet_cold']['login'], 'bird_account': settings['bird_account']['login'] } ], settings['rate_account']['login'], settings['rate_account']['key'])
receiver = 'committee' #Calculating percentage of the award award_percent = round(settings['award_percent'] * 100 * settings['award_base'] / account['SHARES']) #Sending award in the blockchain res = viz.award(settings['viz_account']['login'], receiver, award_percent, settings['viz_account']['key']) if res == False: sys.exit() #Saving the last operation block number in the json file settings['last_block_num'] = res['block_num'] with open(os.path.dirname(__file__) + '/settings.json', 'w') as sett_file: json.dump(settings, sett_file) #Getting current award size from the virtual operations ops = viz.get_ops_in_block(int(res['block_num'])) for op in ops: op = op['op'] if (op[0] == 'receive_award' and op[1]['initiator'] == settings['viz_account']['login'] and op[1]['receiver'] == receiver): award_size = round( float(op[1]['shares'].split()[0]) * (100 / settings['award_percent']) / settings['award_base'], 6) #Sending new custom operation in the blockchain viz.custom('award_informer', [ 'award_informer', { 'time_utc': str(datetime.utcnow()), 'award_on_capital': award_size } ], settings['viz_account']['login'], settings['viz_account']['key'])
# -*- coding: utf-8 -*- import json from pprint import pprint from tvizbase.api import Api print('connect') b4 = Api() print('try call') id = 'viz_contract' payload = {"app": 'thallid', "spell": 'fireball', "damage": 100} account = 'ksantoprotein' wif = '5...' tx = b4.custom(id, payload, account, wif) pprint(tx) input()