Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
def test_validate_minimal_contract_data_present_invalidates(contract_data):
    with pytest.raises(ValidationError):
        validate_minimal_contract_data_present(contract_data)
Ejemplo n.º 3
0
def test_validate_minimal_contract_data_present_validates(contract_data):
    assert validate_minimal_contract_data_present(contract_data) is None