<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _verify_deployed_contract( self, deployment_data: DeployedContracts, contract_name: str, ) -> Contract: """ Verify deployment info against the chain Verifies: - the runtime bytecode - precompiled data against the chain - information stored in deployment_*.json against the chain, except for the constructor arguments, which have to be checked separately. Returns: (onchain_instance, constructor_arguments) """

        contracts = deployment_data['contracts']

        contract_address = contracts[contract_name]['address']
        contract_instance = self.web3.eth.contract(
            abi=self.contract_manager.get_contract_abi(contract_name),
            address=contract_address,
        )

        # Check that the deployed bytecode matches the precompiled data
        blockchain_bytecode = self.web3.eth.getCode(contract_address).hex()
        compiled_bytecode = self.contract_manager.get_runtime_hexcode(contract_name)
        assert blockchain_bytecode == compiled_bytecode

        print(
            f'{contract_name} at {contract_address} '
            f'matches the compiled data from contracts.json',
        )

        # Check blockchain transaction hash & block information
        receipt = self.web3.eth.getTransactionReceipt(
            contracts[contract_name]['transaction_hash'],
        )
        assert receipt['blockNumber'] == contracts[contract_name]['block_number'], (
            f'We have block_number {contracts[contract_name]["block_number"]} in the deployment '
            f'info, but {receipt["blockNumber"]} in the transaction receipt from web3.'
        )
        assert receipt['gasUsed'] == contracts[contract_name]['gas_cost'], (
            f'We have gasUsed {contracts[contract_name]["gas_cost"]} in the deployment info, '
            f'but {receipt["gasUsed"]} in the transaction receipt from web3.'
        )
        assert receipt['contractAddress'] == contracts[contract_name]['address'], (
            f'We have contractAddress {contracts[contract_name]["address"]} in the deployment info'
            f' but {receipt["contractAddress"]} in the transaction receipt from web3.'
        )

        # Check the contract version
        version = contract_instance.functions.contract_version().call()
        assert version == deployment_data['contracts_version'], \
            f'got {version} expected {deployment_data["contracts_version"]}.' \
            f'contract_manager has contracts_version {self.contract_manager.contracts_version}'

        return contract_instance, contracts[contract_name]['constructor_arguments']