github gear-tech/gear v1.6.0

latest release: build
11 hours ago

Release v1.6.0 changes

  • Crates versions bumped to "v1.6.0", runtime spec version bumped to 1600 (#4249);
  • Weights of extrinsic and WASM calls WERE updated (#4245), schedule version bumped to 1600 (#4249).

Important

πŸ“– With this release requirement to minimal stable rust version to compile gear crates (such as gstd) was bumped from v1.80 to v1.81 in order to fix panic info message parsing (#4098).

Tip

To update your stable compiler, run rustup update stable.

Update requirements

Name Character
JS clients 🟑 Recommended (calculate reply code)
Programs 🟑 Recommended (gtest code)
Node bin 🟑 Recommended (modules serialisation)

Userspace

πŸ“š gsdk and gclient now support voucher operations (#4129);

Tip

Usage example:

#[tokio::test]
async fn sample() -> Result<()> {
    // Creating gear api.
    let api = GearApi::dev().await?;

    // Issue voucher
    let (voucher_id, ..) = api.issue_voucher(/* voucher params */).await?;

    // Upload code with voucher
    let (code_id, _) = api
        .upload_code_with_voucher(voucher_id, WASM_BINARY)
        .await?;
}

πŸ“š subxt dependency bumped to v0.37.0 (#4151);


πŸ“š gear-wasm-builder now can check reentrancy of different versions of the same dependency gstd while building (#4159);

Tip

You can banned list with __GEAR_WASM_BUILDER_DENIED_DUPLICATE_CRATES env variable.


πŸ“š gear-wasm-builder::build() now returns paths to artefacts (#4209);


πŸ“š gsdk now based on builder pattern (#4225);

Tip

- Api::new_with_timeout(endpoint.as_deref(), timeout)

+ Api::builder()
+     .timeout(self.timeout())
+     .build(endpoint.as_deref())

πŸ“šgear-wasm-builder now builds WASMs with -Ctarget-cpu=mvp to match actual changes in executors, parsers and upcoming rust releases, solving problem of compiling with beta (#4247).

Runtime

πŸ“š Added governance-ruled option to split gas fees between block producers and treasury (#3652);


πŸ“š Modules serialisation on node side has been optimised (#4055);

Tip

This update will make computations easier for your machine.


πŸ“š Now reservations that were just created and unreserved free locked gas back to execution (#4165);


πŸ“š Previous pallet_gear_voucher::call_deprecated was totally removed from the runtime (#4168);


πŸ“šSyscalls that send input bytes now have more internal assertions and return error on out of bounds (#4186);


πŸ“š Serialisation of payload bytes of ReplyInfo type, returned from gear_calculateReplyForHandle rpc call, replaced with hex (#4238).

Important

This may broke your clients, make sure to support hex parsing.

Key feature

πŸ”₯πŸ“– gtest has received a significant update, matching it much closer to actual runtime:

  • It now uses real weights from runtime (#4148);
  • Block execution model refined with similar from runtime (#4119);

Tip

It's no longer execute message in place of its sending. You need to manually rotate blocks.

- let res = prog.send_bytes(from, b"Let's go!");
- assert!(!res.main_failed());

+ let mid = prog.send_bytes(from, b"Let's go!"); // send message
+ let res = system.run_next_block(); // run blocks to get run results 
+ assert!(res.succeed.contains(&mid)); // success assert 
  • Value and existential deposit management improved to match runtime (#4111);
  • Delayed sendings (dispatch stash), mailbox, waitlist, rent charging and message queue processing are also adjusted (#4157, #4193, #4194, #4200, #4207);
  • Reservations management now matches runtime (#4196);
  • Mocks bugs are fixed (#4220);
  • Usage panics are more user friendly (#4223).

Full Changelog: v1.5.0...v1.6.0

Don't miss a new gear release

NewReleases is sending notifications on new releases.