pub fn shielding_many_transparent_utxos<DSF>(dsf: DSF, cache: impl TestCache)where
DSF: DataStoreFactory,Available on crate feature
transparent-inputs and (crate features test-dependencies) only.Expand description
Regression test for PRO-291: shielding a transparent balance composed of many P2PKH
UTXOs must not fail with ChangeRequired due to fee disagreement between the proposal
and builder layers.
At 150 P2PKH inputs the proposal-time fee computation (which uses
STANDARD_P2PKH = 150 bytes per input) starts to diverge from the builder-time
fee computation (which historically used the actual serialized size, 149 bytes per
input) due to the ceildiv(t_in_total_size, 150) term in the ZIP 317 fee formula.
The discrepancy grows by one logical action (5000 zats) for every additional 150
inputs.