<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _register_token_network_without_limits( self, token_registry_abi: Dict, token_registry_address: str, token_address: str, channel_participant_deposit_limit: Optional[int], token_network_deposit_limit: Optional[int], ):
 """Register token with a TokenNetworkRegistry contract with a contracts-version that doesn't require deposit limits in the TokenNetwork constructor. """

        if channel_participant_deposit_limit:
            raise ValueError(
                'contracts_version below 0.9.0 does not expect '
                'channel_participant_deposit_limit',
            )
        if token_network_deposit_limit:
            raise ValueError(
                'contracts_version below 0.9.0 does not expect token_network_deposit_limit',
            )
        token_network_registry = self.web3.eth.contract(
            abi=token_registry_abi,
            address=token_registry_address,
        )

        version_from_onchain = token_network_registry.functions.contract_version().call()
        if version_from_onchain != self.contract_manager.version_string:
            raise RuntimeError(
                f'got {version_from_onchain} from the chain, expected '
                f'{self.contract_manager.version_string} in the deployment data',
            )

        command = token_network_registry.functions.createERC20TokenNetwork(
            token_address,
        )
        self.transact(command)

        token_network_address = token_network_registry.functions.token_to_token_networks(
            token_address,
        ).call()
        token_network_address = to_checksum_address(token_network_address)
        LOG.debug(f'TokenNetwork address: {token_network_address}')
        return token_network_address