testnet-v1.70.2
MystenLabs/suitestnet-v1.70.2Apr 21, 2026by ebmifa
AI Summary
Bumps the Sui protocol to version 121, introduces new math functions in the Move stdlib, and refactors the indexing framework traits.
Key Highlights
- Adds new Move stdlib math functions `mul_div` and `mul_div_ceil` for all integer types.
- Deprecates `divide_and_round_up` in favor of `div_ceil`.
- Refactors `Connection` trait into `ConcurrentConnection` and `SequentialConnection` subtraits.
Breaking Changes
- Removal of `SequentialStore::sequential_connect` method.
- Removal of `CheckpointData::Raw` raw variant.
New Features
- Implicitly formats fields using the `json` transform in Display v2.
- Treats all ingestion errors as transient (retryable).
- Added `IngestionClientTrait::latest_checkpoint_number()`.
Full Release Notes
## Protocol #### Sui Protocol Version in this release: `121` https://github.com/MystenLabs/sui/pull/26095: Shifts 120 to 121, and adds an additional check in 120 to enforce cleanliness around jumps. https://github.com/MystenLabs/sui/pull/23295: Adds the Move standard library function `std::u8::mul_div` Adds the Move standard library function `std::u8::mul_div_ceil` Adds the Move standard library function `std::u16::mul_div` Adds the Move standard library function `std::u16::mul_div_ceil` Adds the Move standard library function `std::u32::mul_div` Adds the Move standard library function `std::u32::mul_div_ceil` Adds the Move standard library function `std::u64::mul_div` Adds the Move standard library function `std::u64::mul_div_ceil` Adds the Move standard library function `std::u128::mul_div` Adds the Move standard library function `std::u128::mul_div_ceil` Adds the Move standard library function `std::u256::mul_div` Adds the Move standard library function `std::u256::mul_div_ceil` https://github.com/MystenLabs/sui/pull/26051: Deprecated `std::u8::divide_and_round_up` in favor of `std::u8::div_ceil`. Deprecated `std::u16::divide_and_round_up` in favor of `std::u16::div_ceil`. Deprecated `std::u32::divide_and_round_up` in favor of `std::u32::div_ceil`. Deprecated `std::u64::divide_and_round_up` in favor of `std::u64::div_ceil`. Deprecated `std::u128::divide_and_round_up` in favor of `std::u128::div_ceil`. Deprecated `std::u256::divide_and_round_up` in favor of `std::u256::div_ceil`. ## gRPC https://github.com/MystenLabs/sui/pull/26070: When `0x1::type_name::TypeName` Move values show up in structured outputs, it will show up as a simple string representation of the type, rather than an object with a `name` field. https://github.com/MystenLabs/sui/pull/26062: Display v2: Implicitly format fields using the `json` transform, if the `str` transform would not work for them. ## JSON-RPC https://github.com/MystenLabs/sui/pull/26070: When `0x1::type_name::TypeName` Move values show up in structured outputs, it will show up as a simple string representation of the type, rather than an object with a `name` field. https://github.com/MystenLabs/sui/pull/26062: Display v2: Implicitly format fields using the `json` transform, if the `str` transform would not work for them. ## GraphQL https://github.com/MystenLabs/sui/pull/26061: Bugfix in how GraphQL fetches Display v2 formats https://github.com/MystenLabs/sui/pull/26070: When `0x1::type_name::TypeName` Move values show up in structured outputs, it will show up as a simple string representation of the type, rather than an object with a `name` field. https://github.com/MystenLabs/sui/pull/26062: Display v2: Implicitly format fields using the `json` transform, if the `str` transform would not work for them. ## Indexing Framework https://github.com/MystenLabs/sui/pull/25881: Refactors `Connection` trait into `ConcurrentConnection`/`SequentialConnection` subtraits and `Store` trait into `ConcurrentStore`/`SequentialStore` subtraits. https://github.com/MystenLabs/sui/pull/26092: Removes `SequentialStore::sequential_connect` which was introduced in a recent refactoring but is not used. https://github.com/MystenLabs/sui/pull/26133: Implements `ConcurrentConnection` for `ObjectStoreConnection` to support backwards indexing. https://github.com/MystenLabs/sui/pull/26096: Remove `CheckpointData::Raw` raw variant. Treat all ingestion errors as transient (retryable). Populate `total_ingested_bytes` during gRPC ingestion. https://github.com/MystenLabs/sui/pull/26116: Added `IngestionClientTrait::latest_checkpoint_number()`, concurrent pipelines with pruning enabled now start indexing at `network tip - retention`. --- #### Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.70.2