docs: def get_nonrentrant_counter(self, key):
          """
          Nonrentrant locks use a prefix with a counter to minimise deployment cost of a contract.
          """
          prefix = NONRENTRANT_STORAGE_OFFSET
  
          if key in self._nonrentrant_keys:
              return self._nonrentrant_keys[key]
          else:
              counter = prefix + self._nonrentrant_counter
              self._nonrentrant_keys[key] = counter
              self._nonrentrant_counter += 1
              return counter