Highlights
-
#12857
The protocol version is bumped to19
Adds thestore
ability to theStakedSui
object. With thestore
ability, stake objects can be transferred freely and wrapped in other objects, making it possible to implement liquid staking derivatives. To make staking more atomically composable with other on-chain actions, we also added a new PTB-friendly staking functionrequest_add_stake_non_entry
that stakes SUI tokens with a given validator and returns theStakedSui
object as the return value. Public getters are added for active validators' addresses and the pool token exchange rate of each validator's staking pool. These additions allow developers to better interact with the staking module in their contract. These changes result from the proposal SIP-6. Please refer to the SIP for more details and motivation around the changes. -
#13099
The number of events emitted has been increased from256
to1024
, and there is now an explicit limit (65536000
bytes**)** on the total size of all events emitted in a PTB. This new limit is backward compatible with previous limits, so old transactions should work. -
#13029
When building Move code, additional linter warnings related to implementing a custom transfer/share/freeze functions might appear. These functions are created to enforce a custom transfer/share/freeze policy if you implement them to work with instances of a type with thestore
ability results in an unenforceable policy (these type instances can be transferred/shared/frozen using public variants of transfer/share/freeze functions). -
#13012
Developers can now selectively suppress linter warnings. Linter warnings now feature an additional message describing how they can be suppressed. For example, a message could be "This warning can be suppressed with#[lint_allow(share_owned)]
applied to themodule
ormodule
member (const
,fun
, orstruct
)" which would allow suppressing warnings related to potentially attempting to share already owned object to be suppressed with the#[lint_allow(share_owned)]
annotation. -
#12968
When you run Move unit tests, warnings no longer prevent tests from running. Compilation results print only once for eachsui move test
command. -
#12771
This release adds a new filter, TransactionKindIn, to thequeryTransactionBlocks
RPC endpoint. The filter accepts a list of TransactionKind and returns a page of transaction blocks that match ANY input TransactionKind. Note that this is now supported only by the indexer, but not supported by Sui Full nodes directly. -
#12822
When building Move code, additional linter warnings related to transferring objects to the transaction sender may appear. The goal of this linter is to encourage developers to return objects from functions rather than transferring them to the transaction sender in order to increase the composability of functions in programmable transaction blocks by allowing callers to directly use the returned object.
Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.6.0