## Description
CP the following PRs into 1.25:
https://github.com/MystenLabs/sui/pull/17639
https://github.com/MystenLabs/sui/pull/17656
https://github.com/MystenLabs/sui/pull/17761
https://github.com/MystenLabs/sui/pull/17803
https://github.com/MystenLabs/sui/pull/17655
https://github.com/MystenLabs/sui/pull/17831
## 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: