message: [packages] add sanity checks for package vs mempool limits
diff: @@ -61,6 +61,16 @@ static const unsigned int DEFAULT_ANCESTOR_SIZE_LIMIT = 101;
  static const unsigned int DEFAULT_DESCENDANT_LIMIT = 25;
  /** Default for -limitdescendantsize, maximum kilobytes of in-mempool descendants */
  static const unsigned int DEFAULT_DESCENDANT_SIZE_LIMIT = 101;
  +
  +// If a package is submitted, it must be within the mempool's ancestor/descendant limits. Since a
  +// submitted package must be child-with-unconfirmed-parents (all of the transactions are an ancestor
  +// of the child), package limits are ultimately bounded by mempool package limits. Ensure that the
  +// defaults reflect this constraint.
  +static_assert(DEFAULT_DESCENDANT_LIMIT >= MAX_PACKAGE_COUNT);
  +static_assert(DEFAULT_ANCESTOR_LIMIT >= MAX_PACKAGE_COUNT);
  +static_assert(DEFAULT_ANCESTOR_SIZE_LIMIT >= MAX_PACKAGE_SIZE);
  +static_assert(DEFAULT_DESCENDANT_SIZE_LIMIT >= MAX_PACKAGE_SIZE);
  +
  /** Default for -mempoolexpiry, expiration time for mempool transactions in hours */
  static const unsigned int DEFAULT_MEMPOOL_EXPIRY = 336;
  /** Maximum number of dedicated script-checking threads allowed */
  