Commit db6959d
committed
feat(standards): pay the transaction fee in guarded and smart multisig auth
Port of #3786 to next. Both components run estimate_fee, the sponsorship
payment, resolve_payment_info, assert_fee_bound (2/1, native fee asset) and
pay_estimated_fee between multisig::resolve_auth_args and the summary, and
pass the number of notes the payment created to guardian::verify_signature
and multisig_smart::auth_tx, whose note restrictions exclude them.
tx_policy::assert_no_output_notes reads the verified count itself.
Adaptations to next: the conversion info comes from resolve_auth_args
(MultisigAuthArgs) rather than load_conversion_info, so the auth args no
longer double as the summary salt; multisig_smart::auth_tx takes
(num_own_output_notes, block_number, SALT); the fee asset is read via
tx::get_fee_asset_id; the sponsorship wrapper dropped in the fee-split port
is spelled out at the call sites; pay_fee reads the fee asset once via an
estimate_fee_for_asset helper. Tests build MultisigAuthArgs, share the
multisig fixture and signing helpers, and drop the salt-binding assertions.
Cost tables and bench-tx.json regenerated.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkQzFtRjyDwQ7iVtRbsHsn1 parent 7b089db commit db6959d
23 files changed
Lines changed: 1860 additions & 453 deletions
File tree
- bin/bench-transaction
- crates
- miden-agglayer/src/costs
- miden-standards
- asm
- components/auth
- guarded_multisig
- multisig_smart
- standards
- auth
- multisig_smart
- fee
- src
- account/auth
- multisig_smart
- note/costs
- miden-testing/tests/auth
- fee_payment
- docs/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
0 commit comments