What's Changed
#12915:
The protocol version is bumped to version 20
Adds the Kiosk Extensions API and a new sui::kiosk_extension
module in the Sui Framework.
You can use the API to build custom Kiosk applications to extend the capabilities of the base Kiosk. Beyond simple practices of exposing the &mut UID
, the Kiosk Extensions API provides enhanced functionality and guarantees to Kiosk extensions, including:
- Isolated storage for each extension that belongs to the extension.
- Ability to request permissions to
place
orlock
andplace
items into a user's kiosk. - Ability to disable/turn off an extension at any time (with owner permissions) while retaining access to its storage.
- Ability to remove extensions that don't contain any data.
This update also changes access to the UID:
kiosk::uid_mut
is now disabled by default.kiosk::uid
is always available for reads.kiosk.allow_extensions
is set to false by default.
Improved getters:
kiosk::kiosk_owner_cap_for
- allows reading theKioskOwnerCap.for
field
#13294:
Enables a narwhal_new_leader_election_schedule
flag for the new Narwhal leader schedule algorithm, which provides enhanced fault tolerance and sets the bad node stake threshold value. This flag is available for all networks, except Mainnet.
#13112:
When building Move code, new compiler warnings that point to unused function type parameters might appear.
#13267:
The source verification failure warning from package publish and upgrade CLI commands has improved formatting and suggests ways to fix the issue or silence the warning.
#13086:
When building Move code new compiler warnings may appear pointing towards unused struct fields
#13213:
When the order_price
and order_quantity
are small enough that there is a rounding down of
the balance, a custodian that tries to cancel their limit order leaves a single MIST in their locked_balances
.
To resolve this, Sui rounds up to fully remove the locked balance from the account.
#13196:
This PR modifies the CLI keytool
as follows:
- Adds support for
json
output. Use the--json
flag when invoking anykeytool
command (such askeytool list --json
). - Changes the default output to the terminal to formatted tables with headers to improve consistency across different commands. Use
--json
if you need to parse/pipe output data. - Removes the following seven commands, which you can replace by calls to the
base64
andxxd
utilities:
Base64PubKeyToAddress
BytesToBase64
Base64ToBytes
Base64ToHex -> input | base64 -d | xxd -p
BytesToHex
HexToBase64 -> input | xxd -r -p | base64
HexToBytes
#13144:
When building Move code, additional linter warnings related to structs containing fields of type sui::coin::Coin
may appear. The goal of this linter is to encourage developers to use fields of type sui::balance::Balance
instead as this solution is more space-efficient.
#13090:
With Deepbook, instead of emitting a single event per request to cancel, Sui now emits one large CancelOrders
event at the end of the order matching loop, as well as at the end of cancel_all_orders
.
This change is motivated by the fact that one can have MoveAborts
that occur because there is an emitted event limit on transaction execution. An example error is https://suiexplorer.com/txblock/Ck3g7SJMCVDEgHXHP9jMAU4EDzHQGXkstxqwPiQ2CxgR?network=testnet
MovePrimitiveRuntimeError(MoveLocationOpt(Some(MoveLocation { module: ModuleId { address: 0000000000000000000000000000000000000000000000000000000000000002, name: Identifier("event") }, function: 0, instruction: 0, function_name: Some("emit") }))) in command 0
#13127:
If you used the new linters introduced in PR #12650, you might have seen warnings for the Sui standard library. This update suppresses those warnings.
#13365:
The Move compiler will no longer show warnings present in dependencies. This can be overridden via the compiler flag --dependencies-are-root
.
Full Changelog: https://github.com/MystenLabs/sui/commits/mainnet-v1.7.0