Source code for microraiden.test.test_broke_proxy
from microraiden import Session
from microraiden.config import NETWORK_CFG
from microraiden.utils import create_signed_transaction
[docs]def test_cheating_client(
doggo_proxy,
web3,
session: Session,
wait_for_transaction,
http_doggo_url: str,
faucet_private_key: str,
faucet_address: str,
receiver_privkey: str,
receiver_address: str
):
balance = web3.eth.getBalance(doggo_proxy.channel_manager.receiver)
assert balance > 0
# remove all receiver's eth
tx = create_signed_transaction(
receiver_privkey,
web3,
faucet_address,
balance - NETWORK_CFG.GAS_PRICE * NETWORK_CFG.POT_GAS_LIMIT
)
tx_hash = web3.eth.sendRawTransaction(tx)
wait_for_transaction(tx_hash)
response = session.get(http_doggo_url)
# proxy is expected to return 502 - it has no funds
assert response.status_code == 502
tx = create_signed_transaction(
faucet_private_key,
web3,
receiver_address,
balance - NETWORK_CFG.GAS_PRICE * NETWORK_CFG.POT_GAS_LIMIT
)
tx_hash = web3.eth.sendRawTransaction(tx)
wait_for_transaction(tx_hash)
response = session.get(http_doggo_url)
# now it should proceed normally
assert response.status_code == 200