Example #1
0
def block(arg=None):
    """
    /blocks/            return N last blocks
    /blocks/head        return head
    /blocks/<int>       return block by number
    /blocks/<hex>       return block by hexhash
    """
    logger.debug('blocks/%s', arg)
    try:
        if arg is None:
            return blocks()
        elif arg == 'head':
            blk = chain_manager.head
        elif arg.isdigit():
            blk = chain_manager.get(
                chain_manager.index.get_block_by_number(int(arg)))
        else:
            try:
                h = arg.decode('hex')
            except TypeError:
                raise KeyError
            blk = chain_manager.get(h)
    except KeyError:
        return bottle.abort(404, 'Unknown Block  %s' % arg)
    return make_blocks_response([blk])
Example #2
0
def block(blockhash=None):
    logger.debug('blocks/%s', blockhash)
    blockhash = blockhash.decode('hex')
    if blockhash in chain_manager:
        return make_blocks_response(chain_manager.get(blockhash))
    else:
        return bottle.abort(404, 'No block with id %s' % blockhash)
Example #3
0
def block(blockhash=None):
    logger.debug('blocks/%s', blockhash)
    blockhash = blockhash.decode('hex')
    if blockhash in chain_manager:
        return make_blocks_response(chain_manager.get(blockhash))
    else:
        return bottle.abort(404, 'No block with id %s' % blockhash)
Example #4
0
def dump(txblkhash):
    """
    /dump/<hash>        return state dump after transaction or block
    """
    try:
        blk = chain_manager.get(txblkhash.decode('hex'))
    except:
        try: # index
            test_blk, tx = _get_block_before_tx(txblkhash)
        except (KeyError, TypeError):
            return bottle.abort(404, 'Unknown Transaction  %s' % txblkhash)
        processblock.apply_transaction(test_blk, tx)
        blk = test_blk
    # format
    return blk.to_dict(with_state=True)
Example #5
0
def block(arg=None):
    """
    /blocks/            return N last blocks
    /blocks/head        return head
    /blocks/<int>       return block by number
    /blocks/<hex>       return block by hexhash
    """
    logger.debug('blocks/%s', arg)
    try:
        if arg is None:
            return blocks()
        elif arg == 'head':
            blk = chain_manager.head
        elif arg.isdigit():
            blk = chain_manager.get(chain_manager.index.get_block_by_number(int(arg)))
        else:
            try:
                h = arg.decode('hex')
            except TypeError:
                raise KeyError
            blk = chain_manager.get(h)
    except KeyError:
        return bottle.abort(404, 'Unknown Block  %s' % arg)
    return make_blocks_response([blk])
Example #6
0
def dump(txblkhash):
    """
    /dump/<hash>        return state dump after transaction or block
    """
    try:
        blk = chain_manager.get(txblkhash.decode('hex'))
    except:
        try:  # index
            test_blk, tx, i = _get_block_before_tx(txblkhash)
        except (KeyError, TypeError):
            return bottle.abort(404, 'Unknown Transaction  %s' % txblkhash)
        processblock.apply_transaction(test_blk, tx)
        blk = test_blk
    # format
    return blk.to_dict(with_state=True, with_uncles=True)