paritytech / polkadot-sdk

The Parity Polkadot Blockchain SDK
https://polkadot.com/
1.89k stars 696 forks source link

Unable to register parathread despite having sufficient transferable balance #5781

Open ltfschoen opened 1 month ago

ltfschoen commented 1 month ago

Is there an existing issue?

Experiencing problems? Have you tried our Stack Exchange first?

Description of bug

An account with >= 1200 KSM of "transferable" balance that had already reserved 40 KSM reserve deposit to reserve ParaID 3353, got a LiquidityRestrictions error when they tried to "register parathread" in Polkadot.js against ParaId 3353 by uploading the adder-collator genesis wasm validation function and genesis state files (that they build with the latest Polkadot SDK), which requires a reserve deposit of 1,088.5999 KSM.

They were able to solve the problem by simply deregistering that ParaID 3353, then transferring 1200 KSM to a different account, and repeating the process of reserving 40 KSM reserve deposit to reserve the next ParaID 3354 and then "register parathread" in Polkadot.js against ParaId 3354 by uploading the same adder-collator genesis wasm validation function and genesis state files (that they build with the latest Polkadot SDK), which requires a reserve deposit of 1,088.5999 KSM.

Steps to reproduce

The account mentioned here https://substrate.stackexchange.com/questions/11588/how-to-calculate-required-reserved-deposit-to-register-a-parachain-on-kusama-w/11608#11608 on the Kusama relay chain had followed these instructions https://wiki.polkadot.network/docs/learn-guides-coretime-parachains, it already had "reserved" 1,088.5999 KSM (which included 1,088.5999 KSM reserve deposit from registering that ParaID 3352 as a parathread and uploading its genesis wasm validation function and genesis state files), it also had 1,680 KSM "bonded" and "locked" that was bonded in staking as a nominator, and it also had 1,500 KSM still locked in a conviction vote on a Polkadot referendum.

It then wanted to register another ParaID, so it reserved a further 40 KSM reserve deposit to reserve the next ParaID 3353, which increased its "reserved" balance to 1,128.5999 KSM, but even though their account still had a "transferable" balance >=1200 KSM, when they tried to "register parathread" in Polkadot.js against ParaId 3353 with a further reserve deposit of 1,088.5999 KSM they got a LiquidityRestrictions error in extrinsic kusama.subscan.io/extrinsic/24878313-2.

To solve the problem, they had to deregister that ParaID 3353 so their 40 KSM was returned, then they transferred 1200 KSM to this new account https://kusama.subscan.io/account/HCvCtyEPs5qp1gqCRyExjPhjtGnbMv2QccirUNVycmByB6e, where they were successfully able to reserved 40 KSM reserve deposit to reserve the next ParaID 3354 (since 3353 couldn't be used again) and then "register parathread" in Polkadot.js against ParaId 3354 with a further reserve deposit of 1,088.5999 KSM and uploaded the same adder-collator genesis wasm validation function and genesis state files (that they build with the latest Polkadot SDK as before, and then waited ~1.5 hrs for it to be onboarded.