code: async def add_config(self, name: str, genesis: str = None) -> None:
          
  
          LOGGER.debug('NodePoolManager.__init__ >>> name: %s, genesis: %s', name, genesis)
  
          if name in await self.list():
              LOGGER.debug('NodePoolManager.add_config: <!< Node pool %s configuration already present', name)
              raise ExtantPool('Node pool {} configuration already present'.format(name))
  
          genesis_tmp = None
          path_gen = realpath(expanduser(expandvars(genesis)))
          try:
              if not isfile(path_gen):
                  genesis_tmp = NamedTemporaryFile(mode='w+b', buffering=0, delete=False)
                  with genesis_tmp:
                      genesis_tmp.write(genesis.encode())
              await pool.create_pool_ledger_config(
                  name,
                  json.dumps({
                      'genesis_txn': path_gen if isfile(path_gen) else genesis_tmp.name
                  }))
          finally:
              if genesis_tmp:
                  remove(genesis_tmp.name)
  
          LOGGER.debug('NodePoolManager.__init__ <<<')
docs: Given pool name and genesis transaction path or data, add node pool configuration to indy home directory.
          Raise ExtantPool if node pool configuration on input name already exists.
  
          :param name: pool name
          :param genesis: genesis transaction path or raw data