code: def get_contract_dict_by_name(contract_name):
          
  
          network_name = Keeper.get_network_name(Keeper.get_network_id()).lower()
          artifacts_path = ConfigProvider.get_config().keeper_path
  
          # file_name = '{}.{}.json'.format(contract_name, network_name)
          # path = os.path.join(keeper.artifacts_path, file_name)
          path = ContractHandler._get_contract_file_path(
              artifacts_path, contract_name, network_name)
          if not (path and os.path.exists(path)):
              path = ContractHandler._get_contract_file_path(
                  artifacts_path, contract_name, network_name.lower())
  
          if not (path and os.path.exists(path)):
              path = ContractHandler._get_contract_file_path(
                  artifacts_path, contract_name, Keeper.DEFAULT_NETWORK_NAME)
  
          if not (path and os.path.exists(path)):
              raise FileNotFoundError(
                  f'Keeper contract {contract_name} file '
                  f'not found in {artifacts_path} '
                  f'using network name {network_name}'
              )
  
          with open(path) as f:
              contract_dict = json.loads(f.read())
              return contract_dict
docs: Retrieve the Contract instance for a given contract name.
  
          :param contract_name: str
          :return: the smart contract's definition from the json abi file, dict