Releases: MystenLabs/sui
devnet-0.24.0
Highlights
- The
sui client publish
command in the Sui Client CLI now verifies dependencies by default. This release deprecates the--verify-dependencies
flag, which is set for removal in the next major release. You can use the--skip-dependency-verification
flag to skip dependency verification. See #7632 for more information. - In Move Call transactions, you no longer need to specify their package parameter as an
ObjectRef
(ID, version, digest). Instead, specify just itsObjectID
. See #7597 for more information. - [Breaking changes] The two
devInspect
APIs are now merged into a single API. The new API allows for general transaction payloads, but does not require a gas coin (or other gas parameters). See #7372 for more information. - Bugfixes:
- TypeScript:
- Allow passing PureArg types directly in Move call #7765.
- Modify gas selection logic to take gas price into account #7916. Previously the gas selection algorithm selected coins with amount greater than the gas budget (gas price was always one). There is now a variable gas price, so the threshold is
gas budget * gas price
.
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.24.0
devnet-0.23.0
Highlights
- Reconfiguration, stake delegation, voting power, and staking rewards are active! Most of these have worked since v0.22.0, but we did not advertise this functionality. Here are the basics:
- Epoch changes occur every ~2.5 hours
- At each epoch change, pending staking and un-staking actions take effect, staking rewards are distributed, and validator voting power is recomputed. All stake-related
entry
functions live in the sui_system module, and the Sui wallet also supports staking and un-staking. - By convention, total validator voting power is always 10,000, and the quorum threshold is always 6,667. This means that individual voting powers can easily be interpreted as percentages (e.g., voting power 500 = 0.5%).
- Validator voting power is proportional to the stake, with one exception: voting power of individual voting power is capped at 1,000 (i.e., 10%) if possible. This will always be the case in a realistic Sui system, but in the 4-validator devnet we will clearly need at least one validator over the cap :).
- We introduced several new libraries for testing Move code:
- test_utils, which has helpful functions for asserting equality (you’ll see both values when the assertion fails!) and debug printing: (example:
test_utils::print(b”we here”)
) - test_random, which exposes a seeded pseudorandom number generator for creating test values of various types. This makes it easier to exercise a variety of different test inputs, or even write a mini-fuzzer(#7574) (we have some ideas on first-class fuzzing support in Move tests—stay tuned :)).
- test_utils, which has helpful functions for asserting equality (you’ll see both values when the assertion fails!) and debug printing: (example:
- Checkpoints now have a unix timestamp in the CheckpointSummary. This can be accessed along with other checkpoint fields via sui_getCheckpointSummary
- Epoch have epoch start unix time stamp, also accessible in Move smart contracts via the following function. This is an important step toward the long-awaited feature of fine-grained time access in Move, which is coming soon!
- New flag (
--with-unpublished-dependencies
) forsui client publish
andsui move build
to simplify set-up after wipes by enabling packages to be published even if they have unpublished dependencies, by bundling the modules in those dependencies into the package. #7426 - Add methods for the CoinRead endpoints #7507
- Fix websocket default port for DevNet #7637
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.23.0
devnet-0.22.0
Highlights
- Events are now emitted during staking operations and epoch changes. #7342 #7228
- Added dynamic field support to Sui CLI, users can now use
sui client dynamic-field <object id>
to view dynamic fields of an object. #7151 - A bug fix to allow optional move input via SuiJson. #7118
- Added an additional parameter to configure the epoch for dev-inspect. Expect more changes to this API endpoint. #7209
- Introduce Publisher module which acts as a proof of publishing. #7196
- Added toast messages/notifications for wallet. Sdk-ts fix FaucetResponse type. #7272
- Wallet adapters now notify dapps when wallet disconnects. #7258
- Added validator types,
getDelegatedStake
, andgetValidators
.#7389 - Enable staking and unstaking on the wallet. #7403
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.22.0
devnet-0.21.0
Highlights
sui_executeTransaction
now requires the client to be responsible to serializeflag || signature || pubkey
in one field and submit in thesignature
field. See #7185 for details.- Wallet keystore now only stores
flag || privkey
instead offlag || privkey || pubkey
. See #6989 for details. - Added
sui::vec_map::key
function to return a vec map’s keys in avector
. #7051 - Allow entry functions and module initializers to accept a
&TxContext
instead of&mut TxContext
if they only need to read from the context. #7043 WalletKit
moved into a core, framework-agnostic package. #6950- Objects that were created but never existed in storage (started off wrapped, and then deleted) no longer show up in the effects of the transaction that deleted them. #7174
std::vector::insert<Element>(&mut vector<T>, Element, u64)
added to the Move standard library.std::debug::print<T>(&T)
now has special-casing for printing ofstd:::ascii::string
.
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.21.0
devnet-0.20.0
Highlights
- New address and hex modules added to the sui package.
- A new sui client sub-command: verify-source which compiles a package and checks all its modules match their on-chain counterparts.
- A new dev-inspect transaction type for test calling any Move function without making state changes. Stay tuned for more detailed documentation.
- Coin APIs added to Rust SDK alongside other coin JSON-RPC API
- SuiJSON u64 inputs must be strings
- Fixes to wallet-kit UI
- Various fixes to the ID Leak verifier
- Added --bcs flag for sui client object
- Sui Framework and Stdlib no longer cost gas to load sui move now allows compilation of packages with non-0x0 self-addresses (but they will still fail to publish)
- The old node-sync/follower system was removed and all fullnodes will now rely on checkpoints for syncing
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.20.0
devnet-0.19.0
Highlights
Refactor node configs to remove local-only addresses from genesis, see #6629 for more details
Accepted user signature now needs to commit to an intent message instead of a BCS serialized transaction data with a type tag. See #6445 for details.
What's Changed
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.19.0
devnet-0.18.0
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.18.0
devnet-0.17.0
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.17.0
devnet-0.16.0
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.16.0