def do_list(args, config):
    url = config.get('DEFAULT', 'url')
    key_file = config.get('DEFAULT', 'key_file')

    client = SegClient(base_url=url, keyfile=key_file)
    state = client.get_state()

    fmt = "%-15s %-15s %-15s %s %s"
    print fmt % ('GAME', 'PLAYER', 'ADDRESS', 'GUESS', 'RESULT')
    for name in state:
        if 'Player' in state[name]:
            player = state[name]['Player']
        else:
            player = ''
        address = state[name]['Address']
        guess = state[name]['Guess']
        result = state[name]['Result']
        print fmt % (name, player, address, guess, result)
def do_guess(args, config):
    address = args.address
    balance = float(args.balance)

    url = config.get('DEFAULT', 'url')
    key_file = config.get('DEFAULT', 'key_file')

    # First, get the latest block from Ethereum.  We need this since
    # we specify the block when constructing the transaction, so we
    # can get deterministic results.
    block = get_ethereum_block_number()

    client = SegClient(base_url=url, keyfile=key_file)
    client.guess(address=address, balance=balance, block=block)

    if args.wait:
        client.wait_for_commit()