def gen_tx(accounts, info, args): utc_datetime = datetime.utcnow() + timedelta(seconds=10) actions = [] for acc in accounts: if acc == "b1": continue actions.append(newaccount(acc[CSV_EOS_ACCOUNT], acc[CSV_EOS_ADDR])) actions.append(buyrambytes(acc[CSV_EOS_ACCOUNT], 8)) total = asset2int(acc[CSV_EOS_BALANCE]) #TODO: ??? net = total / 2 cpu = total - net actions.append( delegatebw(acc[CSV_EOS_ACCOUNT], int2asset(net, args.core_symbol), int2asset(cpu, args.core_symbol))) tx = """ { "max_net_usage_words": 0, "max_cpu_usage_ms": 0, "delay_sec": 0, "context_free_actions": [], "expiration": "%s", "ref_block_num": %s, "ref_block_prefix": %s, "delay_sec": 0, "actions": [%s] } """ % (utc_datetime.strftime("%Y-%m-%dT%H:%M:%S"), info['ref_block_num'], info['ref_block_prefix'], ','.join(actions)) return tx
def dashboard_report_premio(): data = dashboard_data_paydb() data["premio_stage_balance"] = utils.int2asset( data["premio_stage_balance"]) data["total_balance"] = utils.int2asset(data["total_balance"]) data["claimable_rewards"] = utils.int2asset(data["claimable_rewards"]) return report_dashboard_premio(data["premio_stage_balance"], data["premio_stage_account"], data["total_balance"], data["claimable_rewards"])
def dashboard_general(): if SERVER_MODE == SERVER_MODE_WAVES: data = dashboard_data_waves() data["asset_balance"] = utils.int2asset(data["asset_balance"]) data["waves_balance"] = from_int_to_user_friendly(data["waves_balance"], 10**8) data["master_asset_balance"] = utils.int2asset(data["master_asset_balance"]) data["master_waves_balance"] = from_int_to_user_friendly(data["master_waves_balance"], 10**8) return render_template("reporting/dashboard_waves.html", data=data) data = dashboard_data_paydb() data["premio_stage_balance"] = utils.int2asset(data["premio_stage_balance"]) data["total_balance"] = utils.int2asset(data["total_balance"]) data["claimable_rewards"] = utils.int2asset(data["claimable_rewards"]) return report_dashboard_premio(data["premio_stage_balance"], data["premio_stage_account"], data["total_balance"], data["claimable_rewards"])
def download_user_balance(): users = User.query.all() users_balances = [] for account_user in users: user = User.from_email(db.session, account_user.email) if user: balance = paydb_core.user_balance_from_user(db.session, user) balance = utils.int2asset(balance) email_balance = {'user': user.email, 'balance': balance} users_balances.append(email_balance) sorted_users_balances = sorted(users_balances, key=lambda k: float(k['balance']), reverse=True) csv = [] csv.append(str('User') + ',' + str('Balance') + '\n') for user_balance in sorted_users_balances: csv.append( str(user_balance['user']) + ',' + str(user_balance['balance']) + '\n') return Response(csv, mimetype="text/csv", headers={ "Content-disposition": "attachment; filename=user_balance.csv" })
def total_lifetime(table1, table2): result = table1.query.join(table2, table1.id==table2.reward_proposal_id)\ .with_entities(func.sum(table2.amount)).scalar() if not result: result = 0 result = utils.int2asset(result) return result
def unclaimed_lifetime(table1, table2): result = table1.query.join(table2, table1.id==table2.reward_proposal_id)\ .filter(table2.status != 'sent_funds').with_entities(func.sum(table2.amount)).scalar() if not result: result = 0 result = utils.int2asset(result) return result
def report_user_balance(): ### User queries users = User.query.all() user_count = User.query.count() user_count_today = user_counting(User, TODAY(), TOMORROW()) user_count_yesterday = user_counting(User, YESTERDAY(), TODAY()) user_count_weekly = user_counting(User, MONDAY(), NEXT_MONDAY()) user_count_monthly = user_counting(User, FIRST_DAY_CURRENT_MONTH(), FIRST_DAY_NEXT_MONTH()) user_count_yearly = user_counting(User, FIRST_DAY_CURRENT_YEAR(), FIRST_DAY_NEXT_YEAR()) users_balances = [] for account_user in users: user = User.from_email(db.session, account_user.email) if user: balance = paydb_core.user_balance_from_user(db.session, user) balance = utils.int2asset(balance) email_balance = {'user': user.email, 'balance': balance} users_balances.append(email_balance) sorted_users_balances = sorted(users_balances, key=lambda k: float(k['balance']), reverse=True) return render_template("reporting/dashboard_user_balance.html", user_count=user_count, users_balances=sorted_users_balances[:10], user_count_today=user_count_today, user_count_yesterday=user_count_yesterday, user_count_weekly=user_count_weekly, user_count_monthly=user_count_monthly, user_count_yearly=user_count_yearly, user_count_lifetime=user_count)
def total_proposal_payment(table1, table2, start_date, end_date): result = table1.query.join(table2, table1.id==table2.reward_proposal_id)\ .filter(and_(table1.date_authorized >= str(start_date),\ table1.date_authorized < str(end_date))).with_entities(func.sum(table2.amount)).scalar() if not result: result = 0 result = utils.int2asset(result) return result
def validate_EOS_token(snapshot, balances, args): step('Verifying EOS token') symbol = args.core_symbol key = name_to_string(symbol2int(symbol), False) sym = str(symbol2int(symbol)) eos_token = snapshot['tables']['eosio.token'][key]['stat'][sym]['data'] ok = True if asset2int(eos_token['max_supply']) != 100000000000000: if ok: warning() ok = False print "> EOS max supply != 10000M (%s)" % eos_token['max_supply'] # Calc supply: def EOS_for_N_buys_of_8k_ram(N): return int(round(10000.0 * float((10**6) * N / ((2**23) - N)))) # 163928 number of registered accounts in final snapshot expected_supply = 10000000000000 + EOS_for_N_buys_of_8k_ram(163928) if abs(asset2int(eos_token['supply']) - expected_supply) > 20000: if ok: warning() ok = False print "> EOS supply %s != %s" % (eos_token['max_supply'], int2asset(expected_supply, "EOS")) tokens = 0 code = snapshot['tables']['eosio.token'] for s in code: if 'stat' in code[s]: tokens += 1 if tokens != 1: if ok: warning() ok = False print "> more than one token found in eosio.token" if ok: success() return True
def int2asset(num): return utils.int2asset(num)
def format_amount(self, context, model, name): amount = int2asset(model.amount) html = ''' {amount} {asset} '''.format(amount=amount, asset=app.config["ASSET_NAME"]) return Markup(html)