Welcome to the April edition of the Substrate developer newsletter - the best place to discover the latest news from the Substrate and Polkadot community. We cover everything, from upcoming events and newly released learning material to technical updates for developers building with Substrate and FRAME.
Don’t forget, the newsletter is open to community contributions, so if there’s any news you’d like to see featured, don’t hesitate: make a PR to the next edition here.
In this edition, we’re experimenting with a new way to provide a digest of the latest updates to Substrate. If you have any feedback, please let us know by opening an issue – we welcome your input.
Here are note-worthy runtime PRs in the Substrate repo merged between 2023-04-01 and 2023-04-30.
This PR fixes a bug in the calculation of the return value of the fungible
and fungibles
set_balance
default implementation.
RemovePallet
migration utility structThis PR adds a migration utility struct that allows easily removing pallet storage on the next runtime upgrade, useful for things like removing Gov V1 pallet storage after the switch to OpenGov.
This PR introduces proc-macro-warning to emit a warning when using a hard-coded weight on a non-dev-mode pallet (https://github.com/paritytech/substrate/pull/13774).
In cases where dev
mode is not possible and you explicitly want to ignore this warning; wrap it in curly brackets like {1}
.
This PR adds a Freeze
and Thaw
event to the Balances pallet. Each respective event is emitted whenever some balance is frozen or thawed.
This PR adds the ability to do sr25519 (schnorrkel) signature verification as part of the Contract pallet’s core API.
This PR adds a couple of new pallet parts: FreezeReason
, HoldReason
, LockId
and SlashReason
. The corresponding aggregate enums RuntimeFreezeReason
, RuntimeHoldReason
, RuntimeLockId
and RuntimeSlashReason
are also generated by construct_runtime
. This is primarily used in pallets that wish to provide a reason for freezing funds, holding funds, locking funds and/or slashing funds in them. #[pallet::composite_enum]
is also added as an attribute to put on top of an enum declared in a pallet module.
This PR is part of the first round of cleanups to get completely rid of 1D weights.
Fixes an inconsistent function naming for BalanceConversion
trait: The fn to_asset_balance
does not align with generics InBalance
and OutBalance
as to_asset_balance
implies OutBalance
to never be the native one.
This PR collects the runtime API information for the metadata V15 and exposes the metadata under metadata_at_version(u32::MAX)
.
Here are note-worthy node PRs in the Substrate repo merged between 2023-04-01 and 2023-04-30.
We should not panic on an invalid header pointer and instead return an error. It is possible that the application modifies the header pointer illegally, but then we should return an error instead of panicking.
Resolves https://github.com/paritytech/substrate/issues/10130
This removes the deprecated batch verification. This was actually never really activated. Nevertheless, we need to keep the host functions around to support old runtimes which may import these host functions. However, we do not give access to these functions anymore. This means that any new runtime can not call them anymore. The host function implementations we keep will not do batch verification and will instead fall back to the always existing option of directly verifying the passed signature. finish_batch_verification
will return the combined result of all the batch verify calls.
try-runtime follow-chain
, try-runtime upgrade tuple tests, cli test utilsThis PR fixes a bug with follow-chain
and refactors existing node CLI test utility functions so that they may be used by other packages.
This implements transactional support for ProofRecorder
. A transaction can be started with start_transaction
and then later committed or rolled back. This is important for block producers to not include data from transactions that didn’t make it to the block, because they e.g. panicked or similar.
This PR adds the builder
style apis to create runtime executor and deprecates the old new
api for executor.
Go to Polkadiff for a full list of merged PRs into Substrate and Polkadot since the last Polkadot release and be sure to read the last Polkadot Release Analysis reports on the Polkadot forum. In this section, we go over updates to various core tools developed by Parity for the ecosystem.
A Rust library to submit extrinsics (transactions) to a Substrate node via RPC.
This release contains significant changes including: unifying the encoding and decoding of static and dynamic types, new CLI functionality and improvements to DispatchError
.
Sidecar is a REST service that makes it easy to interact with blockchain nodes built using Substrate’s FRAME framework.
Notable changes include fixes for updates to Polkadot-JS and a bug fix related to /blocks/head
.
Cargo Contract is a the setup and deployment tool for developing Wasm based smart contracts via ink!
Notable updates include adding the new info
command which exports the build output in JSON format.
Parity’s ink! to write smart contracts.
New features include the ability to make calls to pallets in E2E testing and adding a default attribute to constructors and messages.
Have a look at all the open roles in the ecosystem on the Substrate Job Board.
Got ideas for content you’d like to see in future newsletters? Make a PR to the next edition here – we’d love to include them. ❤️
Previous editions of this newsletter are available in the public archive rendered on this web page as well as on Polkaverse. Join us there to comment, emote or provide feedback on our newsletters – all using a decentralised social media space built with Substrate and IPFS.