-
Notifications
You must be signed in to change notification settings - Fork 128
Test: code simplifications #2481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
Changes from 3 commits
12973d0
0b09cdf
011b03f
f4cb0fb
b5abc76
bf5a12e
08b163c
16f2f19
ad8c0e8
0b14fb5
571d052
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -42,13 +42,14 @@ | |
| * [BREAKING][rust] `Client::remove_address` and `Store::remove_address` return `bool` instead of `()`, reporting whether the address was tracked. When it wasn't, `Client::remove_address` now leaves the derived note tag in place instead of running its cleanup. | ||
| * [BREAKING][type][rust] Added the `TransactionRequestError::ForeignProcedureInputsTooLong` variant ([#2187](https://github.com/0xMiden/rust-sdk/pull/2187)). | ||
| * [BREAKING][behavior][store] The `output_notes` table gained a nullable `script_root` column referencing `notes_scripts`, and note scripts are fully normalized: an output note's state blob no longer embeds the script, which is stored once in `notes_scripts` and joined back in on read. All tables are now `STRICT`, and the `tags` table stores its rows keyed by a `(tag, source)` primary key (`WITHOUT ROWID`) instead of carrying a separate unique index. This changes the schema fingerprint, so opening a database created before this change fails with `SchemaHashMismatch` and existing stores must be recreated. | ||
| * [BREAKING][removal][test] Loose helper functions in `miden_client::testing::common` are now methods on `TestClient`. `TestClient::keystore()` exposes the client's keystore, so `ClientConfig::into_client` and `into_unsynced_client` return just the `TestClient` instead of a client/keystore pair ([#2477](https://github.com/0xMiden/rust-sdk/issues/2477)). | ||
| * [BREAKING][param][store] Settings are split into a client-owned and a user-owned scope. `Store::set_setting`, `Store::get_setting`, `Store::remove_setting`, `Store::list_setting_keys` and `Store::apply_settings_mutations` take a `SettingScope` as their first argument, and implementations must persist it so the same key name in each scope addresses a different entry. The `Client` methods are unchanged and always operate on `SettingScope::User` ([#2456](https://github.com/0xMiden/rust-sdk/pull/2456)). | ||
| * [BREAKING][behavior][rust] `Client::list_setting_keys` returns only the user's keys. The client's own entries, such as the note transport cursor and the cached RPC limits, no longer appear in the listing and can no longer be read or overwritten through the `Client` settings API ([#2456](https://github.com/0xMiden/rust-sdk/pull/2456)). | ||
| * [BREAKING][behavior][store] The SQLite `settings` table now carries a `scope` column with `(scope, name)` as its primary key. This changes the schema fingerprint, so opening a database created before this change fails with `SchemaDrift` and existing stores must be recreated ([#2456](https://github.com/0xMiden/rust-sdk/pull/2456)). | ||
|
|
||
| ### Fixes | ||
|
|
||
| * [FIX][test] The integration tests now run against a fee-charging chain. The testing node's genesis charges a fee by default (`MIDEN_VERIFICATION_BASE_FEE`, default `500`), generates the native fee faucet itself so the accounts it deploys can be seeded with that asset, and pre-funds a pool of basic wallets the suite draws from via a new `--funders` argument (`MIDEN_FUNDER_ACCOUNTS_DIR`). Accounts created by the `miden_client::testing::common` helpers are funded and deployed automatically, and `miden_client::testing::fee::deploy_account` does the same for accounts a test builds itself. The AggLayer accounts are consequently always part of genesis (the `AGGLAYER_GENESIS` env var and the `start-node-agglayer` target are gone) and the AggLayer tests load them from `AGGLAYER_ACCOUNTS_DIR` ([#2446](https://github.com/0xMiden/rust-sdk/issues/2446)). | ||
| * [FIX][test] The integration tests now run against a fee-charging chain. The testing node's genesis charges a fee by default (`MIDEN_VERIFICATION_BASE_FEE`, default `500`), generates the native fee faucet itself so the accounts it deploys can be seeded with that asset, and pre-funds a pool of basic wallets the suite draws from via a new `--funders` argument (`MIDEN_FUNDER_ACCOUNTS_DIR`). A path naming no `.mac` file leaves the run without funders, which is all a fee-free genesis needs, since it declares no wallets for the path to hold. Accounts created by the `miden_client::testing::common` helpers are funded and deployed automatically, and `miden_client::testing::fee::deploy_account` does the same for accounts a test builds itself. The AggLayer accounts are consequently always part of genesis (the `AGGLAYER_GENESIS` env var and the `start-node-agglayer` target are gone) and the AggLayer tests load them from `AGGLAYER_ACCOUNTS_DIR` ([#2446](https://github.com/0xMiden/rust-sdk/issues/2446)). | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: should this change be included in a separate entry instead of modifying the existing one?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Splitted in two in f4cb0fb |
||
| * [FIX][test] The AggLayer genesis accounts now declare their zero-fee policy in the faucet the generated genesis charges fees in, rather than the mock chain's. A network account settles its fee against the faucet its own policy names, so the bridge's and faucet's network transactions could not be executed and their notes sat unconsumed, failing `agglayer_update_ger` and `agglayer_note_reader_reads_consumed_notes` ([#2446](https://github.com/0xMiden/rust-sdk/issues/2446)). | ||
| * [FIX][rust] An empty auth argument no longer suppresses the fee conversion info the client attaches, and an account whose auth component reads that argument as a caller-chosen salt (`AuthMultisig`, `AuthGuardedMultisig`) is now rejected with `TransactionRequestError::FeeConversionInfoRequired` instead of failing inside the VM, unless the request declares a salt with `TransactionRequestBuilder::fee_conversion_salt`. Accounts carrying an auth component the client cannot classify are left alone rather than panicking ([#2446](https://github.com/0xMiden/rust-sdk/issues/2446)). | ||
| * [FIX][rust] Note screening on a fee-charging chain no longer reports notes with a custom script as unconsumable. Screening runs the full transaction kernel, auth procedure included, so `fee::pay_fee` aborted when a non-zero fee met auth args carrying no conversion info, and the note was dropped from the sync. Screening now commits the same native conversion info the execution path attaches, drawn from one shared source so the two cannot disagree. Standard notes were unaffected: their consumability is answered without executing anything ([#2446](https://github.com/0xMiden/rust-sdk/issues/2446)). | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should include the PR link here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, done in f4cb0fb