3.52.0-Mainnet API Changes
API changes for runtime users
pallet-balancesExtrinsics
transfer > transferAllowDeath/transferKeepAlive
pallet-stakingExtrinsics
If a validator has more than
maxExposurePageSizenominators (512 in our case) thenpayoutStakerswill need to be called multiple times to repay all of the nominators. The extrinsic only pays out the top one page (512) nominators at a time.Alternatively, if you know which page your nominator stash belongs to, you can perform
payoutStakersByPageand specify the page (0, 1, 2, etc) to pay out specific nominators that belong to that page. This can be used to avoid paying transaction fees while unintentionally paying out other accounts.
Storage Calls
erasstakers > erasStakersPagedUse the old API for eras up to the runtime upgrade, and the new api for eras after iterasStakersClipped > erasStakersOverviewUse the old API for eras up to the runtime upgrade, and the new api for eras after itclaimedRewardsinside theledgerstorage item has been deprecated and changed tolegacyClaimedRewards. It will only reflect the rewards claimed before the runtime upgrade. Users should use the newstaking.claimedRewardsstorage call to get the history of claimed paged rewards by era and validator
Storage Constants
maxNominatorRewardedPerValidator > maxExposurePageSize
pallet-nomination-poolsAdded the ability to configure who can claim commission from nomination pools.
Previously, only the pool's root role was allowed to call
claim_commission. This was limiting for use cases where pools wanted to allow third-party bots, external accounts, or anyone to claim commission on their behalf. This change allows pool operators to configure this behavior.A new
claim_permissionfield has been added to theCommissionstruct insideBondedPool.If
claim_permissionis set to:Permissionless: anyone can callclaim_commissionAccount(some_account): only the specified account can callclaim_commissionNone: falls back to current behavior (only the pool's root can call it)
This change introduces a migration to extend existing pools with the new optional field. All existing pools will default to
None, preserving the current behavior unless explicitly updated.To enable permissionless claiming or delegate it to another account, the pool's root role must update the
claim_permissionfield accordingly. This could be done by:Extrinsics >
nominationPools>setCommissionClaimPermissionprovide
pool_idand enableCommissionClaimPermissionoption, and set it either toPermissionlessor specify anAccountthat will have the permission to withdraw commissions
No action is required unless the pools want to change this behavior.
Last updated