def get_contract_type(self, name: str, w3: Web3 = None) -> Contract: """ API to generate a contract factory class. """ current_w3 = None if w3 is not None: current_w3 = w3 else: current_w3 = self.w3 validate_contract_name(name) validate_w3_instance(current_w3) if name in self.package_data['contract_types']: contract_data = self.package_data['contract_types'][name] validate_minimal_contract_data_present(contract_data) contract_kwargs = generate_contract_factory_kwargs(contract_data) contract_factory = current_w3.eth.contract(**contract_kwargs) return contract_factory raise ValidationError( "Package does not have contract by name: {}.".format(name))
def test_validate_minimal_contract_data_present_invalidates(contract_data): with pytest.raises(ValidationError): validate_minimal_contract_data_present(contract_data)
def test_validate_minimal_contract_data_present_validates(contract_data): assert validate_minimal_contract_data_present(contract_data) is None