示例#1
0
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
示例#2
0
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"])
示例#4
0
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"
                    })
示例#5
0
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
示例#6
0
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
示例#7
0
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)
示例#8
0
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
示例#9
0
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
示例#10
0
def int2asset(num):
    return utils.int2asset(num)
示例#11
0
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)