def test_setup_proxies_all_addresses_are_given(): """ Test that startup for proxies works fine if all addresses are given and routing is local """ chain_id = ChainID(5) config = RaidenConfig(chain_id=chain_id, environment_type=Environment.DEVELOPMENT) contracts = load_deployed_contracts_data(config, chain_id) proxy_manager = MockProxyManager(node_address=make_address()) deployed_addresses = load_deployment_addresses_from_contracts(contracts) with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): raiden_bundle = raiden_bundle_from_contracts_deployment( proxy_manager=proxy_manager, token_network_registry_address=deployed_addresses. token_network_registry_address, secret_registry_address=deployed_addresses.secret_registry_address, ) services_bundle = services_bundle_from_contracts_deployment( config=config, proxy_manager=proxy_manager, deployed_addresses=deployed_addresses, routing_mode=RoutingMode.LOCAL, pathfinding_service_address="my-pfs", enable_monitoring=True, ) assert raiden_bundle assert services_bundle assert raiden_bundle.token_network_registry assert raiden_bundle.secret_registry assert services_bundle.user_deposit assert not services_bundle.service_registry
def test_setup_proxies_no_service_registry_and_no_pfs_address_but_requesting_pfs( environment_type): """ Test that if pfs routing mode is requested and no address or service registry is given then the client exits with an error message """ chain_id = ChainID(5) config = RaidenConfig( chain_id=chain_id, environment_type=environment_type, services=ServiceConfig(pathfinding_max_fee=100, pathfinding_iou_timeout=500, pathfinding_max_paths=5), ) contracts = load_deployed_contracts_data(config, chain_id) proxy_manager = MockProxyManager(node_address=make_address()) with pytest.raises(RaidenError): deployed_addresses = load_deployment_addresses_from_contracts( contracts) with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): services_bundle_from_contracts_deployment( config=config, proxy_manager=proxy_manager, deployed_addresses=deployed_addresses, routing_mode=RoutingMode.PFS, pathfinding_service_address=None, enable_monitoring=False, )
def test_setup_proxies_no_service_registry_and_no_pfs_address_but_requesting_pfs(environment_type): """ Test that if pfs routing mode is requested and no address or service registry is given then the client exits with an error message """ network_id = 42 config = { "environment_type": environment_type, "chain_id": network_id, "services": dict( pathfinding_max_fee=100, pathfinding_iou_timeout=500, pathfinding_max_paths=5 ), } contracts = {} proxy_manager = MockProxyManager(node_address=make_address()) with pytest.raises(SystemExit): with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): setup_proxies_or_exit( config=config, tokennetwork_registry_contract_address=make_token_network_registry_address(), secret_registry_contract_address=make_address(), user_deposit_contract_address=make_address(), service_registry_contract_address=None, proxy_manager=proxy_manager, contracts=contracts, routing_mode=RoutingMode.PFS, pathfinding_service_address=None, )
def test_setup_proxies_raiden_addresses_are_given(): """ Test that startup for proxies works fine if only raiden addresses are given """ chain_id = ChainID(5) config = RaidenConfig(chain_id=chain_id, environment_type=Environment.DEVELOPMENT) contracts = load_deployed_contracts_data(config, chain_id) proxy_manager = MockProxyManager(node_address=make_address()) deployed_addresses = load_deployment_addresses_from_contracts(contracts) raiden_bundle = raiden_bundle_from_contracts_deployment( proxy_manager=proxy_manager, token_network_registry_address=deployed_addresses. token_network_registry_address, secret_registry_address=deployed_addresses.secret_registry_address, ) services_bundle = services_bundle_from_contracts_deployment( config=config, proxy_manager=proxy_manager, deployed_addresses=deployed_addresses, routing_mode=RoutingMode.LOCAL, pathfinding_service_address=None, enable_monitoring=False, ) assert raiden_bundle assert services_bundle assert raiden_bundle.token_network_registry assert raiden_bundle.secret_registry assert services_bundle.user_deposit assert not services_bundle.service_registry
def test_setup_proxies_no_service_registry_but_pfs(): """ Test that if no service registry is provided but a manual pfs address is given then startup still works Regression test for https://github.com/raiden-network/raiden/issues/3740 """ network_id = 42 config = { "environment_type": Environment.DEVELOPMENT, "chain_id": network_id, "services": dict( pathfinding_max_fee=100, pathfinding_iou_timeout=500, pathfinding_max_paths=5 ), } contracts = {} proxy_manager = MockProxyManager(node_address=make_address()) with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): proxies = setup_proxies_or_exit( config=config, tokennetwork_registry_contract_address=token_network_registry_address_test_default, secret_registry_contract_address=make_address(), user_deposit_contract_address=make_address(), service_registry_contract_address=None, proxy_manager=proxy_manager, contracts=contracts, routing_mode=RoutingMode.PFS, pathfinding_service_address="my-pfs", ) assert proxies
def test_setup_proxies_all_addresses_are_known(): """ Test that startup for proxies works fine if all addresses are given and routing is basic """ network_id = 42 config = {"environment_type": Environment.DEVELOPMENT, "chain_id": network_id, "services": {}} contracts = setup_contracts_or_exit(config, network_id) proxy_manager = MockProxyManager(node_address=make_address()) with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): proxies = setup_proxies_or_exit( config=config, tokennetwork_registry_contract_address=None, secret_registry_contract_address=None, user_deposit_contract_address=None, service_registry_contract_address=None, proxy_manager=proxy_manager, contracts=contracts, routing_mode=RoutingMode.LOCAL, pathfinding_service_address="my-pfs", ) assert proxies assert proxies.token_network_registry assert proxies.secret_registry assert proxies.user_deposit assert proxies.service_registry
def test_setup_proxies_raiden_addresses_are_given(): """ Test that startup for proxies works fine if only raiden addresses are given """ network_id = 42 config = {"environment_type": Environment.DEVELOPMENT, "chain_id": network_id, "services": {}} contracts = {} proxy_manager = MockProxyManager(node_address=make_address()) proxies = setup_proxies_or_exit( config=config, tokennetwork_registry_contract_address=token_network_registry_address_test_default, secret_registry_contract_address=make_address(), user_deposit_contract_address=None, service_registry_contract_address=None, proxy_manager=proxy_manager, contracts=contracts, routing_mode=RoutingMode.LOCAL, pathfinding_service_address=None, ) assert proxies assert proxies.token_network_registry assert proxies.secret_registry assert not proxies.user_deposit assert not proxies.service_registry
def test_setup_proxies_no_service_registry_but_pfs() -> None: """ Test that if no service registry is provided but a manual pfs address is given then startup still works Regression test for https://github.com/raiden-network/raiden/issues/3740 """ chain_id = ChainID(5) config = RaidenConfig( chain_id=chain_id, environment_type=Environment.DEVELOPMENT, services=ServiceConfig( pathfinding_max_fee=TokenAmount(100), pathfinding_iou_timeout=BlockTimeout(500), pathfinding_max_paths=5, ), ) config.transport.available_servers = ["http://matrix.example.com"] contracts = load_deployed_contracts_data(config, chain_id) proxy_manager = MockProxyManager(node_address=make_address()) PFS_INFO = PFSInfo( url="my-pfs", price=TokenAmount(12), chain_id=ChainID(5), token_network_registry_address=TokenNetworkRegistryAddress( to_canonical_address(contracts[CONTRACT_TOKEN_NETWORK_REGISTRY]["address"]) ), user_deposit_address=user_deposit_address_test_default, confirmed_block_number=BlockNumber(1), payment_address=pfs_payment_address_default, message="This is your favorite pathfinding service", operator="John Doe", version="0.0.3", matrix_server="http://matrix.example.com", matrix_room_id="!room-id:matrix.example.com", ) deployed_addresses = load_deployment_addresses_from_contracts(contracts) with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): services_bundle = services_bundle_from_contracts_deployment( config=config, proxy_manager=proxy_manager, # type: ignore deployed_addresses=deployed_addresses, routing_mode=RoutingMode.PFS, pathfinding_service_address="my-pfs", enable_monitoring=True, ) assert services_bundle
def test_setup_proxies_all_addresses_are_known(): """ Test that startup for proxies works fine if all addresses are given and routing is basic """ chain_id = ChainID(5) config = RaidenConfig(chain_id=chain_id, environment_type=Environment.DEVELOPMENT) config.transport.available_servers = ["http://matrix.example.com"] contracts = load_deployed_contracts_data(config, chain_id) proxy_manager = MockProxyManager(node_address=make_address()) PFS_INFO = PFSInfo( url="my-pfs", price=TokenAmount(12), chain_id=ChainID(5), token_network_registry_address=to_canonical_address( contracts[CONTRACT_TOKEN_NETWORK_REGISTRY]["address"]), user_deposit_address=user_deposit_address_test_default, payment_address=pfs_payment_address_default, confirmed_block_number=BlockNumber(1), message="This is your favorite pathfinding service", operator="John Doe", version="0.0.3", matrix_server="http://matrix.example.com", matrix_room_id="!room-id:matrix.example.com", ) deployed_addresses = load_deployment_addresses_from_contracts(contracts) with patch.object(pathfinding, "get_pfs_info", return_value=PFS_INFO): raiden_bundle = raiden_bundle_from_contracts_deployment( proxy_manager=proxy_manager, token_network_registry_address=deployed_addresses. token_network_registry_address, secret_registry_address=deployed_addresses.secret_registry_address, ) services_bundle = services_bundle_from_contracts_deployment( config=config, proxy_manager=proxy_manager, deployed_addresses=deployed_addresses, routing_mode=RoutingMode.PFS, pathfinding_service_address="my-pfs", enable_monitoring=False, ) assert raiden_bundle assert services_bundle assert raiden_bundle.token_network_registry assert raiden_bundle.secret_registry assert services_bundle.user_deposit assert services_bundle.service_registry