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
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 ]
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())
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)