def test_deploy_script_raiden_0_37_0( deployer_0_37_0: ContractDeployer, ) -> None: """Checks that `verify_deployment_data` works fine with older contracts.""" data = deployer_0_37_0.deploy_raiden_contracts( max_num_of_token_networks=1, reuse_secret_registry_from_deploy_file=None, settle_timeout_min=DEPLOY_SETTLE_TIMEOUT_MIN, settle_timeout_max=DEPLOY_SETTLE_TIMEOUT_MAX, ) deployer_0_37_0.verify_deployment_data(deployment_data=data)
def test_deploy_script_raiden(web3: Web3, deployer: ContractDeployer, deployed_raiden_info: DeployedContracts) -> None: """ Run raiden contracts deployment function and tamper with deployed_contracts_info This checks if deploy_raiden_contracts() works correctly in the happy case, to make sure no code dependencies have been changed, affecting the deployment script. This does not check however that the cli command works correctly. This also tampers with deployed_contracts_info to make sure an error is raised in verify_deployed_contracts() """ deployed_contracts_info = deployed_raiden_info deployer.verify_deployment_data(deployment_data=deployed_contracts_info) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts_version"] = "0.0.0" with pytest.raises(RuntimeError): deployer.verify_deployment_data( deployment_data=deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["chain_id"] = 0 with pytest.raises(RuntimeError): deployer.verify_deployment_data( deployment_data=deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_SECRET_REGISTRY][ "address"] = EMPTY_ADDRESS with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_SECRET_REGISTRY][ "address"] = EMPTY_ADDRESS with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_TOKEN_NETWORK_REGISTRY][ "address"] = EMPTY_ADDRESS with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_SECRET_REGISTRY][ "block_number"] = 0 with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_SECRET_REGISTRY][ "block_number"] = 0 with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_TOKEN_NETWORK_REGISTRY][ "block_number"] = 0 with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_TOKEN_NETWORK_REGISTRY][ "gas_cost"] = 0 with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts"][CONTRACT_TOKEN_NETWORK_REGISTRY][ "address"] = EMPTY_ADDRESS with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) deployed_contracts_info_fail = deepcopy(deployed_contracts_info) deployed_contracts_info_fail["contracts_version"] = "0.4.0" with pytest.raises(RuntimeError): deployer.verify_deployment_data(deployed_contracts_info_fail) # check that it fails if sender has no eth deployer = ContractDeployer(web3=web3, private_key=get_random_privkey(), gas_limit=GAS_LIMIT, gas_price=1, wait=10) with pytest.raises(ValidationError): deployer.deploy_raiden_contracts(1)