def METHOD_NAME(w3, c, assert_tx_failed):
    a0, a1, a2, a3 = w3.eth.accounts[:4]
    # Only the company can authorize payments
    assert_tx_failed(lambda: c.payBill(a2, 1, transact={"from": a1}))
    # A company can only pay someone if it has the money
    assert_tx_failed(lambda: c.payBill(a2, 1, transact={"from": a0}))
    # If it has the money, it can pay someone
    test_value = int(c.totalShares() * c.price())
    c.buyStock(transact={"from": a1, "value": test_value})
    c.payBill(a2, test_value, transact={"from": a0})
    # Until it runs out of money
    assert_tx_failed(lambda: c.payBill(a3, 1, transact={"from": a0}))
    # Then no stockholders can sell their stock either
    assert_tx_failed(lambda: c.sellStock(1, transact={"from": a1}))