code: func NewNonceCache(capacity int, cacheTTL int, timeProvider timetools.TimeProvider) (*NonceCache, error) {
  	c, err := ttlmap.NewMapWithProvider(capacity, timeProvider)
  	if err != nil {
  		return nil, err
  	}
  
  	return &NonceCache{
  		cache:        c,
  		cacheTTL:     cacheTTL,
  		timeProvider: timeProvider,
  	}, nil
  }
docs: // Return a new NonceCache. Allows you to control cache capacity, ttl, as well as the TimeProvider.