contracts/factory/src/query.rs paginate and DripFactory::streams_by_sender / streams_by_recipient explicitly do not bound limit ("callers should use a reasonable value"). A caller passing limit = u32::MAX makes the contract build a Vec<u64> up to the length of the sender's entire history in a single view call. Clamp limit to a hard maximum (e.g. 100) inside paginate.
Filed from a codebase review pass.
contracts/factory/src/query.rspaginateandDripFactory::streams_by_sender/streams_by_recipientexplicitly do not boundlimit("callers should use a reasonable value"). A caller passinglimit = u32::MAXmakes the contract build aVec<u64>up to the length of the sender's entire history in a single view call. Clamplimitto a hard maximum (e.g. 100) insidepaginate.Filed from a codebase review pass.