pub fn create_proposed_transactions<DbT, ParamsT, InputsErrT, FeeRuleT, ChangeErrT, N>(
wallet_db: &mut DbT,
params: &ParamsT,
spend_prover: &impl SpendProver,
output_prover: &impl OutputProver,
spending_keys: &SpendingKeys,
ovk_policy: OvkPolicy,
proposal: &Proposal<FeeRuleT, N>,
) -> Result<NonEmpty<TxId>, CreateErrT<DbT, InputsErrT, FeeRuleT, ChangeErrT, N>>Expand description
Construct, prove, and sign a transaction or series of transactions using the inputs supplied by the given proposal, and persist it to the wallet database.
Returns the database identifier for each newly constructed transaction, or an error if an error occurs in transaction construction, proving, or signing.
When evaluating multi-step proposals, only transparent outputs of any given step may be spent in later steps; attempting to spend a shielded note (including change) output by an earlier step is not supported, because the ultimate positions of those notes in the global note commitment tree cannot be known until the transaction that produces those notes is mined, and therefore the required spend proofs for such notes cannot be constructed.