Esempio n. 1
0
def search_page():
    try:
        page = int(request.args.get('page', 1))
    except Exception as e:
        page = 1

    query = request.args.get('query', '')
    if len(query) == 0:
        return redirect('/')

    if re.match('^[a-f0-9]{64}$', query, re.IGNORECASE):
        return redirect('/txs/{}'.format(query))

    if re.match('^[0-9]+$', query):
        return redirect('/blocks/{}'.format(query))

    if validate_address(query):
        return redirect('/addrs/{}'.format(query))

    per_page = 25
    names, page_count, result_count = Name.search_by_name(query,
                                                          page=page,
                                                          per_page=per_page)

    return render_template(
        'blockchain/search.j2',
        title='Search',
        names=names,
        page_count=page_count,
        result_count=result_count,
        per_page=per_page,
        page=page,
    ), 200
Esempio n. 2
0
def domains_page():
    popular_names, _, _ = PopularNames.latest(page=1, per_page=30)
    return render_template(
        'blockchain/domains.j2',
        title='Domains',
        block_height=Block.max_height(),
        ending_soon=Name.ending_soon(),
        popular_names=popular_names,
    )
Esempio n. 3
0
def home_page():
    block_height = Block.max_height()
    txs, _, _ = Tx.all()
    info = InfoTick.latest()
    return render_template('blockchain/home.j2',
                           title='Home',
                           block_height=block_height,
                           latest_price=PriceTick.latest(),
                           txs=txs,
                           ending_soon=Name.ending_soon(),
                           entity_counts=EntityCounts.latest(),
                           mempool_count=MempoolTx.count(),
                           info=info)
Esempio n. 4
0
def name_page(name):
    if not valid_name(name):
        return None, 404

    name_info = Name.find_by_name(name, inc_views=True)
    if name_info is None:
        return None, 404

    block_height = Block.max_height()

    if name_info.status['status'] == 'CLOSED':
        return render_template('blockchain/name_closed.j2',
                               title='{}/'.format(name),
                               name=name_info,
                               block_height=block_height)

    return render_template(
        'blockchain/name_auction.j2',
        title='{}/'.format(name),
        height=Block.max_height(),
        name=name_info,
    )
Esempio n. 5
0
def index_claim(out):
    name = bytes.fromhex(out.covenant_items[2]).decode('utf-8')
    db.session.add(Name(hash=out.covenant_items[0], name=name))
Esempio n. 6
0
def index_open(out):
    name = bytes.fromhex(out.covenant_items[2]).decode('utf-8')
    stored_name = Name.find_by_name(name)
    if stored_name is None:
        db.session.add(Name(hash=out.covenant_items[0], name=name))