示例#1
0
def read_distribution():
    supply = Address.select(fn.SUM(Address.balance)).execute()[0].sum

    res = {}
    sq = Address.select(Address.balance).order_by(Address.balance.desc()).limit(25)
    q = Address.select(fn.SUM(sq.c.balance)).from_(sq)

    res['0_24'] = {
        'percent': (q[0].sum / supply) * 100,
        'total': q[0].sum
    }
    sq = Address.select(Address.balance).order_by(Address.balance.desc()).offset(25).limit(25)
    q = Address.select(fn.SUM(sq.c.balance)).from_(sq)
    res['25_49'] = {
        'percent': (q[0].sum / supply) * 100,
        'total': q[0].sum
    }
    sq = Address.select(Address.balance).order_by(Address.balance.desc()).offset(50).limit(25)
    q = Address.select(fn.SUM(sq.c.balance)).from_(sq)
    res['50_99'] = {
        'percent': (q[0].sum / supply) * 100,
        'total': q[0].sum
    }
    sq = Address.select(Address.balance).order_by(Address.balance.desc()).offset(100)
    q = Address.select(fn.SUM(sq.c.balance)).from_(sq)
    res['remain'] = {
        'percent': (q[0].sum / supply) * 100,
        'total': q[0].sum
    }

    return res
示例#2
0
def read_richlist(order=None):
    q = Address.select()
    if order == 'sent':
        q = q.order_by(Address.sent.desc())
    elif order == 'received':
        q = q.order_by(Address.received.desc())
    else:
        q = q.order_by(Address.balance.desc())
    res = q.limit(100)
    return list(map(lambda addr : addr.to_dict(), res))
示例#3
0
def read_misc():
    supply = Address.select(fn.SUM(Address.balance)).execute()[0].sum

    return {
        'supply': int(supply),
    }