Пример #1
0
    async def admin_rewards(request, visa: str, block_num=None):
        admin = get_admin_from_visa(request, visa)

        cur_block_num = PowWork.get_latest_block_num()

        blocks_list = utils.block_num_to_list(block_num)
        rewards = []
        for block_num in blocks_list:
            if block_num is None:
                block_num = cur_block_num
            if block_num > cur_block_num:
                continue

            block_rewards = PowResult.rewards_by_miners(block_num)
            for r in block_rewards:
                r["date"] = utils.date_format(r["date"])
                r["date_time"] = utils.iso_format(r["date_time"])

            work = PowWork.get_one(block_num=block_num)

            rewards.append({
                "block_num": block_num,
                "date": utils.date_format(work and work.start_time),
                "count": PowWork.count(block_num=block_num),
                "rewards": block_rewards,
            })

        return rewards
Пример #2
0
    async def stats_hashrate(request, block_num=None, wallet_address=None, worker_name=None):
        blocks = utils.block_num_to_list(block_num)

        return [
            hashrate_stats(block_num, wallet_address, worker_name)
            for block_num in blocks
        ]
Пример #3
0
    async def admin_export_rewards(request):
        data = await request.post()
        visa = data.get("visa")
        block_num = data.get("block_num", "")

        admin = admin_api.get_admin_from_visa(request, visa)

        block_list = utils.block_num_to_list(block_num)
        blocks_rewards = admin_api.get_rewards(block_list)

        buf = io.StringIO()
        header = [
            "block_num", "date_time", "miner_wallet", "rewards", "finished",
            "verified"
        ]
        writer = csv.DictWriter(buf, header, extrasaction="ignore")
        writer.writeheader()
        for block in blocks_rewards:
            for reward in block["rewards"]:
                writer.writerow(reward)

        return web.Response(
            headers={"Content-Disposition": "Attachment;filename=rewards.csv"},
            body=buf.getvalue())
Пример #4
0
    async def admin_rewards(request, visa: str, block_num=None):
        admin = get_admin_from_visa(request, visa)

        blocks_list = utils.block_num_to_list(block_num)

        return get_rewards(blocks_list)