-
Notifications
You must be signed in to change notification settings - Fork 11.3k
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
Add a workload that randomly generates different transaction shapes #20402
Add a workload that randomly generates different transaction shapes #20402
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
3 Skipped Deployments
|
81819c7
to
151832b
Compare
151832b
to
f3ccdde
Compare
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.
looks great overall in terms of the PR itself! i am curious what our longer term story is for this framework vs. sui surfer, do we want to keep both of them or move towards combining? curious if you or Mark have opinions
@@ -558,7 +558,7 @@ mod test { | |||
let mut simulated_load_config = SimulatedLoadConfig::default(); | |||
{ | |||
let mut rng = thread_rng(); | |||
simulated_load_config.shared_counter_weight = if rng.gen_bool(0.5) { 5 } else { 50 }; | |||
simulated_load_config.shared_counter_weight = if rng.gen_bool(0.5) { 5 } else { 5 }; |
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.
iiuc this no longer varies?
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.
Oops. Changed back.
@@ -955,6 +956,7 @@ mod test { | |||
shared_deletion_weight: 1, | |||
shared_counter_hotness_factor: 50, | |||
randomness_weight: 1, | |||
randomized_transaction_weight: 1, |
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.
is this enough to get good coverage in all our simtests? how many of these run in a typical test?
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.
It's somewhere around 40~50 transactions in one run of test_simulated_load_shared_object_congestion_control
Thanks @aschran for the review! |
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.
Very cool! Thanks for adding this workload
266aba8
to
e56b3b8
Compare
e56b3b8
to
6cdfd9c
Compare
* Introduces GCP signer on `@mysten/signers` (#20473) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * revert(#20486): Add ConsensusV2 object support to `sui-indexer-alt` (#20546) ## Description Partial revert of #20486 (only the changes relevant to `sui-indexer-alt`), as the migrations associated with that change are taking too long to run on the production database. We will have to revisit how to set-up those migrations so that they run in a reasonable time. ## Test plan Local run of `sui-indexer-alt` + CI. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer alt] add collector tests (#20413) ## Description Added tests for indexer alt collector and also corrected a potential debug assert. ## Test plan Added tests. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [docs] Fix move examples on the tto page (#20549) ## Description Current examples and code will not compile in the current edition 2024. ## Test plan See for yourself. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * chore: update sui-sdk-types * config: rename 'rest' config to 'rpc' * storage: rename RestStateReader to RpcStateReader * core: rename rest_index to rpc_index * rpc-indexes: separate out trait for accessing indexed data * rest: move openapi tests to its own file * rest: move config into its own module * rest: move rest infra into a module * metrics: rename RestMetrics to RpcMetrics * rename RestService to RpcService * rename sui-rest-api crate to sui-rpc-api * rpc: add config for enabling new indexes instad of reusing the jsonrpc config flag * rpc: factor out logic for getting NodeInfo * rpc: factor out health check logic * rpc: factor out get_committee logic * rpc: remove support for protobuf from rest endpoints This patch removes support from the various rest endpoints where it was previously added. Instead, to support clients who want a binary format, a gRPC service will be added in a future patch. * rest: remove support for bcs response types from various endpoints Remove support for bcs response types from various endpoints, a few are kept due to existing clients, as support for a binary response type will be supported via a gRPC service that will be added in a future patch. * rpc: rename RestError to RpcServiceError * rest: mark ListCheckpoints unstable till bcs return type is removed * rpc: factor out get_object logic * rpc: factor out get_checkpoint logic * rpc: factor out get_transaction logic * rpc: factor out {execute, simulate}_transaction logic * rpc: introduce a get_full_checkpoint method on RpcService * rpc: introduce new protobuf definitions Introduces a new set of more fleshed out protobuf definitions for both core types (and conversions to/from sui-sdk-types and the protobuf types) as well as rpc request and response types. * rpc: add grpc server implementation Implement the sui.node.v2.Node gRPC service and serve it off the rpc endpoint. * rpc: convert core client to use gRPC * rpc: add proptests for converting between rust and protobuf types * Fix coverage workflow (#20548) ## Description Individual test failures seem to not affect coverage workflow. But the workflow can still fail when there are incomplete data. ## Test plan Passes with this PR: https://github.com/MystenLabs/sui/actions/runs/12238401025 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [move-ide] Regenerated test output (#20547) ## Description The output for `move-analyzer` tests changed (and needed to be updated) due to recent compiler changes but due to some issue with the CI test runner the "old" output was not reported as incorrect. This PR updates test output to reflect the current state of affairs. ## Test plan All tests must pass * update tuborepo workflow to allow secrets for PRs from forked repos (#20552) ## Description allow secrets for turborepo workflow for gcp + aws KMS e2e testing ## Test plan * once this is merged, create a pull-request from a forked repo to test turborepo action --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: if there is a security incident with these secrets, it should only compromise the following <img width="759" alt="image" src="https://github.com/user-attachments/assets/7073dc54-ded1-49fd-a2cc-4fc9ba1c92e7"> these secrets have been created to only allow limited operations for the designed AWS / GCP KMS keys (these keys and access policies only allow for using the designated test keys / keycahins. * [consensus] remove remaining imports from `narwhal/` (#20543) ## Description Remove remaining imports from `narwhal/`. - Use `sui` types instead of `narwhal` types. - Remove Narwhal specific NodeConfig fields. ## Test plan CI PT deployment with legacy validator configs --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Improve logs for lock conflicts (#20554) Log the conflicted object as well as transactions digests * Revert "update tuborepo workflow to allow secrets for PRs from forked repos" (#20555) Reverts MystenLabs/sui#20552 `pull_request_target` checks out target branch (i.e. `main`) which means tests aren't run on new code 🤦 Will also update to not run gcp / kms tests for all prs * Deepbook Ticker Endpoint (#20517) ## Description Deepbook Ticker Endpoint: /ticker All volumes are last 24 hour volume Example output: `{"DEEP_SUI":{"base_volume":9709100.0,"last_price":0.0184,"quote_volume":177605.1862,"isFrozen":0},"TYPUS_SUI":{"base_volume":430297.7,"last_price":0.01833,"isFrozen":0,"quote_volume":8493.539347},"SUI_USDC":{"base_volume":4805064.8,"isFrozen":0,"last_price":4.201,"quote_volume":19079955.3245},"BETH_USDC":{"isFrozen":0,"last_price":2700.0,"base_volume":0.0,"quote_volume":0.0},"WUSDC_USDC":{"last_price":1.0,"isFrozen":0,"quote_volume":2958711.879164,"base_volume":2958725.3},"NS_SUI":{"quote_volume":76370.840897,"base_volume":1079970.7,"last_price":0.0665,"isFrozen":0},"DEEP_USDC":{"quote_volume":2390833.2166,"base_volume":34107590.0,"isFrozen":0,"last_price":0.07713},"NS_USDC":{"quote_volume":610367.235184,"isFrozen":0,"last_price":0.27955,"base_volume":2215708.0},"WUSDT_USDC":{"base_volume":0.0,"quote_volume":0.0,"isFrozen":0,"last_price":1.04}}` More information here: https://docs.google.com/document/d/1S4urpzUnO2t7DmS_1dc4EL4tgnnbTObPYXvDeBnukCg/edit?tab=t.0#bookmark=kix.9r12wiruqkw4 ## Test plan How did you test the new or updated feature? Tested locally ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [x] Indexer: Deepbook Indexer - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [move] Fix formatting in disassembler + fix CI runner for Move (#20556) ## Description Fix CI runner for CI for Move (using `set -e` in `test.sh`). Fix formatting issues for enums in the disassembler. ## Test plan CI + ran Move tests locally (including failing tests to make sure the tests fail if any fail) --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Verify hex string is valid hex in (#20538) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Version Packages (#20537) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/bcs@1.2.0 ### Minor Changes - ad24b95: Verify hex string is valid hex in `fromHex` ## @mysten/signers@0.1.0 ### Minor Changes - 2349920: Introduces GCP KMS signer at `@mysten/signers/gcp` - e0885ca: renamed package to @mysten/signers and inlines aws4fetch ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/create-dapp@0.3.42 ### Patch Changes - @mysten/sui@1.16.1 - @mysten/dapp-kit@0.14.41 ## @mysten/dapp-kit@0.14.41 ### Patch Changes - @mysten/sui@1.16.1 - @mysten/wallet-standard@0.13.17 - @mysten/zksend@0.12.7 ## @mysten/deepbook@0.8.31 ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/deepbook-v3@0.12.17 ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/enoki@0.4.15 ### Patch Changes - @mysten/sui@1.16.1 - @mysten/zklogin@0.8.1 ## @mysten/graphql-transport@0.2.33 ### Patch Changes - Updated dependencies [ad24b95] - @mysten/bcs@1.2.0 - @mysten/sui@1.16.1 ## @mysten/kiosk@0.9.31 ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/suins-toolkit@0.5.31 ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/sui@1.16.1 ### Patch Changes - Updated dependencies [ad24b95] - @mysten/bcs@1.2.0 ## @mysten/wallet-standard@0.13.17 ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/zklogin@0.8.1 ### Patch Changes - @mysten/sui@1.16.1 ## @mysten/zksend@0.12.7 ### Patch Changes - @mysten/sui@1.16.1 - @mysten/wallet-standard@0.13.17 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Add Help View to Multisig Toolkit (#20521) ## Description Add Help View to multisig toolkit (updates/rebases: #20221 ) ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Ronny Roland <ronmilton@mystenlabs.com> * Fix bug in object_by_id_cache (#20450) Suppose that a reader thread is trying to cache an object that it just read, while a writer thread is trying to cache an object that it just wrote. The writer thread definitionally has the latest version. The reader thread may be out of date. While we previously took some care to not replace a new version with an old version, this did not take into account evictions, and so the following bug was possible: READER WRITER read object_by_id_cache (miss) read dirty set (miss) write to dirty read db (old version) write to cache (while holding dirty lock) cache entry is evicted write to cache There is no way for the reader to tell that the value it is caching is out of date, because the up to date entry is already gone from the cache. We fix this by requiring reader threads to obtain a ticket before they read from the dirty set and/or db. Tickets are expired by writers. Then, the above case looks like this: READER WRITER get ticket read cache (miss) read dirty (miss) write dirty read db (old version) expire ticket write cache (while holding dirty lock) cache eviction no write to cache (ticket expired) Any interleaving of the above either results in the reader seeing a recent version, or else having an expired ticket. * [easy][indexer] Remove last mentions of tx_recipients and tx_senders tables (#20289) ## Description These tables no longer exist in the indexer schema ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * also remove tx_recipients and tx_senders tables from Pruner on MVR (#20563) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer-alt] Add pruner pipeline for obj_info (#20539) ## Description This PR implements the obj_info_pruner pipeline. I refactored the obj_info pipeline so that these two pipelines could share the same process function logic. For obj_info_pruner, it look at every (obj_id, checkpoint) pair produced from the obj_info processing, and prune accordingly. Within each commit, it does sequential pruning which is less ideal, but hopefully if we have enough concurrent at the outer layer, this is not a huge problem. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [move-bytecode-template] Fixes large u64 serialization in mbt (#20559) ## Description Fixes an issue discovered with `u64` > `Number.MAX_SAFE_INTEGER` ## Test plan Deserializes `u64` module --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [formatter] minor patches to tree-sitter and qol improvements (#20532) ## Description - `mut` is now better parsed as `mut(param)` instead of `mut, param` - `abort` allows no expression after - `@1` address literals are now allowed - better handling of `imm_ref` and `mut_ref`, no more workarounds - qol improvements in `block` node printing - removes unused code - adds more tests for `borrow_expression`, `index_expression` and `literal`. ## Test plan Features tests, existing tests are not broken. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * remove zklogin sdk (#20561) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Version Packages (#20574) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/prettier-plugin-move@0.2.2 ### Patch Changes - 3e5cf29: abort + address improvements ## @mysten/enoki@0.4.16 ### Patch Changes - 69ee5cc: remove @mysten/zklogin dependency Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * [ts sdk] bug fix on names replacement (#20577) ## Description The plugin would replace things when it shouldn't! ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Version Packages (#20578) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/create-dapp@0.3.43 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 - @mysten/dapp-kit@0.14.42 ## @mysten/dapp-kit@0.14.42 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 - @mysten/wallet-standard@0.13.18 - @mysten/zksend@0.12.8 ## @mysten/deepbook@0.8.32 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/deepbook-v3@0.12.18 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/enoki@0.4.17 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/graphql-transport@0.2.34 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/kiosk@0.9.32 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/signers@0.1.1 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/suins-toolkit@0.5.32 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/sui@1.16.2 ### Patch Changes - 100207f: Fixes replacements on `namedPackagesPlugin` to only replace the package target if it is a mvr name. ## @mysten/wallet-standard@0.13.18 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 ## @mysten/zksend@0.12.8 ### Patch Changes - Updated dependencies [100207f] - @mysten/sui@1.16.2 - @mysten/wallet-standard@0.13.18 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Balance Manager Volume Endpoint in Pool Names (Deepbook Indexer) (#20558) ## Description Balance Manager Volume Endpoint in Pool Names: Endpoint 1: `/historical_volume_by_balance_manager_id/:pool_names/:balance_manager_id` Example Call: `/historical_volume_by_balance_manager_id/SUI_USDC,DEEP_USDC/0x47dcbbc8561fe3d52198336855f0983878152a12524749e054357ac2e3573d58` Example Response: `{"DEEP_USDC":[1938666151700,0],"SUI_USDC":[5934906021900,399057445200]} ` Endpoint 2: `/historical_volume_by_balance_manager_id_with_interval/:pool_names/:balance_manager_id` Example Call: `/historical_volume_by_balance_manager_id_with_interval/SUI_USDC,DEEP_USDC/0x47dcbbc8561fe3d52198336855f0983878152a12524749e054357ac2e3573d58` Example Response: `{"[1733698873, 1733702473]":{"SUI_USDC":[45030523600,200939800],"DEEP_USDC":[50335077700,0]},"[1733738473, 1733742073]":{"DEEP_USDC":[39217259100,0],"SUI_USDC":[140190847400,13227479100]},"[1733749273, 1733752873]":{"DEEP_USDC":[83160441100,0],"SUI_USDC":[252307783100,8810813500]}}` ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [x] Indexer: Deepbook Indexer - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * ci: add E2E test environment flags to turborepo workflow (#20570) ## Description Add environment flags to control AWS KMS, GCP KMS, and Signer E2E tests execution. Configure GCP auth step to run conditionally based on signer test flag. ## Test plan How did you test the new or updated feature? * test PR: https://github.com/MystenLabs/sui/pull/20571 should fail in https://github.com/MystenLabs/sui/actions/runs/12249701179/job/34171448529?pr=20571 * once this PR lands, and rebase test PR and verify sdk test job passes --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * grpc: properly configure a tls config on clients when https is requested * types: support decoding from both base64 as well as base58 * [indexer-alt] Fix bad rebase in obj_info_pruner (#20567) * [sdk][signers]: add e2e enable flag check (#20583) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer-alt] Log TPS and CPS in all pipelines (#20441) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * sdk: add passkey signer (#20443) ## Description corresponding sui change: https://github.com/MystenLabs/sui/blob/main/crates/sui-types/src/passkey_authenticator.rs spec follows: https://github.com/sui-foundation/sips/blob/main/sips/sip-9.md#signature-encoding https://github.com/sui-foundation/sips/blob/main/sips/sip-9.md#signature-verification ## Test plan unit tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: hayes-mysten <135670682+hayes-mysten@users.noreply.github.com> * decouple transactional test runner from indexer and graphql flavor (#20373) * Community request (#20586) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Updated action version (#20585) ## Description Updated action version ## Test plan 👀 * [move][move-2024] Match typing fix (#20584) ## Description This fixes a bug where some match arms' final type was computed based on the inner arm, instead of the expected output type. ## Test plan New tests past --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * indexer-alt: split out schema ## Description Pull out the indexer's schema and model types so that they can be used in the reader as well as the writer. ## Test plan CI * refactor(indexer-alt): factor out Db/DbArgs ## Description Pull out the `Db` and `DbArgs` types from `sui-indexer-alt-framework`, so that they can also be used in the reader implementation. They have been combined with the existing `TempDb`, and its crate has been renamed from `sui-temp-pg-db` to `sui-pg-db` to account for the fact that it's now holding something more general. ## Test plan CI * [indexer-alt] Add coin_balance_buckets pipeline (#20500) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer-alt] Add coin_balance_buckets_pruner (#20568) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer alt] rename a few structs to make their units more clear (#20419) ## Description While reading/testing this code I found that it can be tough to reason about limits of channels because each channel may have different units: checkpoints, batches, rows. So this PR made some struct names more explicit according to my understanding and added some comments to make channel limits more clear. ## Test plan Existing tests. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * callback: add support for callbacks on body chunks Add support for callbacks on body chunks. This also has the consequence that the callback handlers are now held until the response stream has concluded, meaning we'll be able to have a more accurate measurement of inflight requests than we previously did. * rpc: use full uri path for grpc request metrics When calculating the path to use for metrics, use the real path when the CONTENT_TYPE of the request is gRPC in order to get more granular metrics for gRPC services. For all other content types we'll continue to use axum::extract::MatchedPath. * rpc: use grpc-status code for 'status' label on metrics * rpc: properly handle the various content-type's that are considered gRPC Properly handle identifying gRPC traffic by performing a prefix comparision on a request's content-type header instead of a full equality check. * [docs] Deepbook indexer (#20427) ## Description Adds deepbook indexer content ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * rpc: introduce ResponseExt trait to assist in reading well known headers Introduce the ResponseExt trait to assist in reading well known headers that are set by Sui Node services. * rpc: convert Client error to be a tonic::Status Convert Client error type to be a tonic::Status. In addition, ensure that if http headers (which are wrapped in a tonic::metadata::MetadataMap) are received, that they are included in either the response or the error Status so that callers can retrieve header information even in the event of an error. * [Fix Doc] Update using-events.mdx (#20545) ## Description Add Typescript SDK queryEvents example. * [CLI] Fix dev inspect in sui client ptb (#20599) ## Description This PR fixes the `sui client ptb --dev-inspect` command to correctly display the result of the dev inspect. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [x] CLI: Fixed `sui client ptb --dev-inspect` to correctly display the result of the dev inspect. - [ ] Rust SDK: - [ ] REST API: * [docs][easy] Adding wormhole link to tutorial (#20598) ## Description Wormhole has published a great tutorial for Wormhole Connect X Sui. Adding a link to that tutorial. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * rest: remove responses with content-type of bcs * rest: remove GetFullCheckpoint endpoint Remove the GetFullCheckpoint endpoint from the experimental REST api as this functionality has migrated to the new gRPC api. * [mvr] Hardcode mainnet pkg (#20544) ## Description Move to mainnet constants! ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * chore: update futures-util * cargo-deny: allow Unicode-3.0 licensed dependencies * chore: update url * cargo-deny: allow RUSTSEC-2024-0421 while we wait for passkey-client to update * Version Packages (#20587) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/sui@1.17.0 ### Minor Changes - 20af12d: add passkey sdk ## @mysten/create-dapp@0.3.44 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 - @mysten/dapp-kit@0.14.43 ## @mysten/dapp-kit@0.14.43 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 - @mysten/wallet-standard@0.13.19 - @mysten/zksend@0.12.9 ## @mysten/deepbook@0.8.33 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/deepbook-v3@0.12.19 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/enoki@0.4.18 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/graphql-transport@0.2.35 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/kiosk@0.9.33 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/signers@0.1.2 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/suins-toolkit@0.5.33 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/wallet-standard@0.13.19 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 ## @mysten/zksend@0.12.9 ### Patch Changes - Updated dependencies [20af12d] - @mysten/sui@1.17.0 - @mysten/wallet-standard@0.13.19 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * [fix] faucet new rate limiter (#20591) ## Description Previous rate limiter is likely broken. This uses a better one with a per ip address strategy. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [kv store] add watermark table to bigtable (#20390) ## Description The PR adds a watermark table to BigTable. The internal workflow progress store now writes watermarks to both DynamoDB and BigTable. In the future, the DynamoDB progress store will be deprecated --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [RustSDK] Remove tx subscription example in the Rust SDK (#20610) ## Description Let's remove the example - first it is fairly basic, and second, WS is off on most nodes so people cannot run this example anymore. Should close #20607 ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * add mode to inclusion check (#20384) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * scripts: fix update_all_snapshots.sh * [move-compiler] Support for skipping function bodies during compilation (#20588) ## Description This PR adds the ability for the compiler to skip compiling function bodies for some files. This is particularly useful in the IDE setting where we can cache results of compilation of the entire package and re-compile only files changed by the user. The difference for larger codebases, for example Sui's Deepbook package, is significant and directly affects user experience. Currently, it takes over 1s to compile Deepbook package itself (dependencies are already cached), which means that the user has to wait over 1s for auto-completion request to provide completion hints: ![image](https://github.com/user-attachments/assets/c7de8950-ea11-48b1-b722-e3fce99bb5d0) With this compiler change (and additional changes to `move-analyzer` which will be landed in a separate PR), we get Deepbok's compilation time down to less than 200ms: ![image](https://github.com/user-attachments/assets/e9f47e45-544d-4c54-9716-afd1ef85319c) ## Test plan All existing tests must pass * New Token in Deepbook (#20622) ## Description DRF token in Deepbook ## Test plan How did you test the new or updated feature? Constant update only in SDK ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Version Packages (#20623) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/deepbook-v3@0.12.20 ### Patch Changes - 50d0edb: DRF token Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Add org support to suiop ci image command for image builds (#20611) ## Description Add org optional arg to build from other github orgs ## Test plan Built from another org successfully ``` suiop ci image query --repo-name another-repo Requested query for repo: tomato-contracts ╭────────────────────────┬───────────┬─────────────────────────┬─────────────────────╮ │ name │ status │ Start Time (Local Time) │ End Time │ ├────────────────────────┼───────────┼─────────────────────────┼─────────────────────┤ │ another-repo-pigyh │ Succeeded │ 2024-12-12 11:33:51 │ 2024-12-12 11:44:18 │ ╰────────────────────────┴───────────┴─────────────────────────┴─────────────────────╯ ``` --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Add backpressure to writeback cache (#20430) Implement back pressure for writeback cache Backpressure is initiated when: - There are too many pending transaction writes in memory, and - The certified checkpoint watermark is ahead of the executed watermark. The second condition is necessary to ensure that backpressure cannot halt a validator by making it unable to process consensus transactions that might be needed to construct the next checkpoint. When backpressure is in effect, the consensus handler will pause. * jsonrpc: introduce bcsEncoding tag to ease migration to base64 Inorder to ease the transition of SuiEvent.bcs and DynamicFieldInfo.bcsName to being encoded with base64, introduce a tag ("bcsEncoding") to indicate the encoding and gracefully default to base58 when the tag isn't present. * [consensus] remove narwhal (#20617) ## Description Goodbye Narwhal! There are some small cleanups that still need to be done in follow up PRs * [wallet] fix issue where we incorrectly compute the non-legacy zklogi… (#20628) …n address in the wallet ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [doc] fix: using-events graphql error (#20618) ## Description The GraphQL in [Query events with GraphQL](https://docs.sui.io/guides/developer/sui-101/using-events#query-events-with-graphql) has error ## Test plan 1. [crates/sui-graphql-rpc/examples/event_connection/event_connection.graphql](https://github.com/MystenLabs/sui/tree/main/crates/sui-graphql-rpc/examples/event_connection/event_connection.graphql) and [crates/sui-graphql-rpc/examples/event_connection/filter_by_sender.graphql](https://github.com/MystenLabs/sui/tree/main/crates/sui-graphql-rpc/examples/event_connection/filter_by_sender.graphql) throw the error ```json { "data": null, "errors": [ { "message": "Unknown field \"type\" on type \"Event\".", "locations": [ { "line": 18, "column": 7 } ] }, { "message": "Unknown field \"json\" on type \"Event\".", "locations": [ { "line": 25, "column": 7 } ] } ] } ``` need to be modified to ``` contents { type { repr } json } ``` 2. [crates/sui-graphql-rpc/examples/event_connection/filter_by_emitting_package_module_and_event_type.graphql](https://github.com/MystenLabs/sui/tree/main/crates/sui-graphql-rpc/examples/event_connection/filter_by_emitting_package_module_and_event_type.graphql) throw the error ```json { "data": null, "errors": [ { "message": "Filtering by both emitting module and event type is not supported", "locations": [ { "line": 2, "column": 3 } ], "path": [ "events" ], "extensions": { "code": "BAD_USER_INPUT" } } ] } ``` Read the [EventFilter.emittingModule doc](https://docs.sui.io/references/sui-api/sui-graphql/reference/types/inputs/event-filter#eventfilteremittingmodulestring-), it says `We currently do not support filtering by emitting module and event type at the same time so if both are provided in one filter, the query will error.`. So I think the doc need to delete the example `[Filter events by emitting package and type]` --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer-alt] Add total_committer_batches_failed metric (#20602) ## Description Adds a metric that tracks the number of failed commits. While we track the number of attempts and number of successes, they cannot be used to track number of errors, because any at moment, the delta can exist but they don't necessarily mean errors. So if we want to track error rate, we need a dedicated metric. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [indexer-alt] Use batch delete in consistent pruners (#20612) ## Description Instead of delete one by one, delete all in a single sql query. ## Test plan Tried locally. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [docs] Global pause for regulated coin update (#20603) ## Description Adds global pause documentation and updates to v2 naming. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * import legacy/non-legacy zklogin accounts (#20632) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: mamos <michael@mystenlabs.com> * [wallet] Always add legacy accounts (#20636) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Negative caching for point-read items such as transactions and effects (#20315) Add negative caching for effects and other point-read items. This dramatically reduces requests to the DB during test runs. * Add a workload that randomly generates different transaction shapes (#20402) ## Description Randomized transaction testing. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Add FanTV OIDC provider in prod environment. (#20606) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Deepbook Pool Constant (#20644) * Version Packages (#20645) * [mvr] add external dns lookup metric to track resolving mvr from non-mainnet graphql (#20633) ## Description To resolve the mvr table on testnet, we consult the mainnet graphql service. We previously observed some slowness around dns lookup, so this metric will help track whether the issue persists. Also added to `sui-graphql-rpc` crate. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [docs] Add bridge framework docs (#20619) ## Description Adds the bridge framework docs. Had to rename files to support duplicate name between folder and file. This is a docusaurus autogen issue. ## Test plan View the preview site References > Framework > Bridge https://sui-docs-git-fork-ronny-mysten-bridge-fw-sui-foundation.vercel.app/references/framework/bridge --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * fix update_all_snapshots.sh (#20630) --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * [docs] Update consensus (#20629) ## Description Adds some info to the consensus/mysticeti page ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * rpc: add support for grpc-reflection * rpc: add support for grpc-health service * config: add helper for retrieving rpc config * rpc: ensure strings are string types in proto files Update all proto fields that have their corresponding protocol type encoded as utf8 to `string` but were previously listed as `bytes`. This is a wire-format compatible change and is safe to make since all previous uses of these fields were as valid utf8 strings. * rpc: support requesting and sending UserSignatures encoded as bytes * rpc: use protox to build proto files Use protox to build proto files so that the fds' can have a deterministic serialized format for comparison in CI. * change all checkpoints.mainnet|testnet.sui.io references to gcp endpoint (#20634) * [tests] Fix expected failure type random selector (#20652) ## Description The change of this code block from `Ok(rand::random())` to a custom selector logic overlooked the fact that we must avoid re-selecting variant `0`, as variant `0` is the random variant, causing the code to hit an `unreachable` block meant to avoid infinte recursion. ## Test plan Re-run test --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * add build_mainnet for easy use sui-sdk (#20640) ## Description This PR adds a new function `build_mainnet` corresponding to the mainnet RPC node for the `SuiClientBuilder` type. ## Test plan How did you test the new or updated feature? ```rust let sui_mainnet = SuiClientBuilder::default().build_mainnet().await?; println!("Sui mainnet version: {}", sui_mainnet.api_version()); ``` --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [x] Rust SDK: Added a `build_mainnet` function to the `SuiClientBuilder`. - [ ] REST API: * jsonrpc: correctly serialize bcsName field Correctly serialize bcsName field which was unintentially changed to `bcs_name` in 8a992f0f7f (jsonrpc: introduce bcsEncoding tag to ease migration to base64, 2024-12-12) * snapshot restore: add option to reuse downloaded files (#20451) ## Description title, this can be problematic when a file is half-downloaded but useful when all file downloading is complete, which helps to speed up iteration over restore, as each time the .ref files download would take about 30min ## Test plan local run restorer and verify that it can reuse downloaded files first run ``` 104 out of 673 missing .ref files done ``` second run ``` 8 out of 569 missing .ref files done ``` --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: * Turn off randomized tx workload (#20660) Seems causing high error rate. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature?…
Description
Randomized transaction testing.
Test plan
How did you test the new or updated feature?
Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.