# Asset Min Balance Adjustments
## Steps to reproduce the proposal
1. Find all `sufficient` assets. I used Apps UI, queries `assets.asset` and `foreignAssets.asset` and then searched for `isSufficient: true`.

2. For each sufficient asset, generate an `assets.forceAssetStatus` call, keeping everything the same and only changing the `minBalance`. The encoded call is what you will pass to the `Transact` instruction on the Relay Chain.

3. Get the weight info. You can use the runtime RPC `transactionPaymentCallApi.queryCallInfo` to get the weight. The `requireWeightAtMost` parameter in the `Transact` instruction must be greater than this.

4. Do the same thing, but for the DOT/KSM metadata. Note that `isFrozen` in `forceAssetStatus` refers to whether assets in the class are transferrable, and `isFrozen` in `forceSetMetadata` refers to whether the owner can update the metadata or not. In this case, the owner is Kusama governance itself, so it's OK.

5. Generate the XCM program on the Relay Chain. The destination is Asset Hub and the message needs an `UnpaidExecution` instruction in the first position. Batches don't work over XCM (yet), so each call needs to be in its own `Transact` instruction. Only Root can update asset status, so the origin kind is `Superuser`. This all comes out to [this call](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-rpc.dwellir.com#/extrinsics/decode/0x630003000100a10f03142f0000060202ca9a3b017d39023215e51400636bf89804bbac561be9ce382a3fde401e3b217364e71d010516f8adcafbfbf6007cfeb645d5dc994a3ddff1d4118516b2ca36d165b99df15e81ac11de7664dece003725f662547df65c08722ac955b7f668b265f63ad5bc8ce4afb5d7eab938e85e0045fd34d372d89f1934e14f99fb3a7a977df9779763d265ce7a450af4d6df8a15c24504000100060202ca9a3b017d39023215011f00d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d2c24504000100060202ca9a3b017d410235150201090300b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb602286bee0100060202ca9a3b017d4c351302010903184b7573616d610c4b534d0c00).
6. Choose the enactment block number. I chose 500 blocks _after_ the v1,001,000 runtime upgrades enact. This is because the parachains upgrade 1 hour (600 blocks) after someone submits the authorized upgrade. This enactment time will mean that the asset min balances update about 10 minutes before the runtime upgrade and will preserve all existing wallet/XCM fee assumptions.
## Generate submission calls
7. Generate the actual proposal, referendum, and Fellowship whitelisting instructions with `opengov-cli`.
- Kusama:
- All submitted [here](https://kusama.subscan.io/extrinsic/21475726-3)
```
➜ opengov-cli git:(master) ./target/release/opengov-cli submit-referendum \
> --proposal "0x630003000100a10f03142f0000060202ca9a3b017d2d0232152000d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c1419c0100060202ca9a3b017d31023215011f00bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9891010100060202ca9a3b017d41023515020109020095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef9396977588025a62020100060202ca9a3b017d5435130201090220506f6c6b61646f740c444f540a00" \
> --network kusama \
> --track whitelistedcaller \
> --at 21570500
Submit the preimage for the Fellowship referendum:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.dwellir.com#/extrinsics/decode/0x2000882c0061d979a456211fa7ac15e884803e16b4acbbc0749270aa81c29498d88c139113
Open a Fellowship referendum to whitelist the call:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.dwellir.com#/extrinsics/decode/0x17002b0f023fec415fbac3d72d0c8dc7c8493a0f24089c901230870d63028c8ea850862d0622000000010a000000
Submit the preimage for the public referendum:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.dwellir.com#/extrinsics/decode/0x2000c9072c03630003000100a10f03142f0000060202ca9a3b017d2d0232152000d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c1419c0100060202ca9a3b017d31023215011f00bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9891010100060202ca9a3b017d41023515020109020095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef9396977588025a62020100060202ca9a3b017d5435130201090220506f6c6b61646f740c444f540a00
Open a public referendum to dispatch the call:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.dwellir.com#/extrinsics/decode/0x15002b0d02ded2d8341eb8424006c817a2b6dd6fc79100409333e0f5692ad982eda686b04bf201000000c4234901
Batch to submit on Kusama Relay Chain:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.dwellir.com#/extrinsics/decode/0x1804102000882c0061d979a456211fa7ac15e884803e16b4acbbc0749270aa81c29498d88c13911317002b0f023fec415fbac3d72d0c8dc7c8493a0f24089c901230870d63028c8ea850862d0622000000010a0000002000c9072c03630003000100a10f03142f0000060202ca9a3b017d2d0232152000d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c100d1bc4259aeb77874ee7ca72a9763d6385763068b56bf47fcabd0d854311ab7c1419c0100060202ca9a3b017d31023215011f00bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9800bedc347f3f82efd08668b0f24ec43b05c1551c86f0936a9f1734a5550ee27d9891010100060202ca9a3b017d41023515020109020095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef93969775880095e1c5aaf6b481c95e1e94cb272418f78b120b058cee7d87d847ef9396977588025a62020100060202ca9a3b017d5435130201090220506f6c6b61646f740c444f540a0015002b0d02ded2d8341eb8424006c817a2b6dd6fc79100409333e0f5692ad982eda686b04bf201000000c4234901
```
- Polkadot:
- [Relay preimage and referendum](https://polkadot.subscan.io/extrinsic/19095540-2)
- [Fellowship preimage](https://collectives.statescan.io/#/extrinsics/2995362-2)
- [Fellowship referendum](https://collectives.statescan.io/#/extrinsics/2995482-2)
```
➜ opengov-cli git:(master) ./target/release/opengov-cli submit-referendum \
> --proposal "0x630003000100a10f03142f0000060202ca9a3b017d39023215e51400636bf89804bbac561be9ce382a3fde401e3b217364e71d010516f8adcafbfbf6007cfeb645d5dc994a3ddff1d4118516b2ca36d165b99df15e81ac11de7664dece003725f662547df65c08722ac955b7f668b265f63ad5bc8ce4afb5d7eab938e85e0045fd34d372d89f1934e14f99fb3a7a977df9779763d265ce7a450af4d6df8a15c24504000100060202ca9a3b017d39023215011f00d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d2c24504000100060202ca9a3b017d410235150201090300b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb602286bee0100060202ca9a3b017d4c351302010903184b7573616d610c4b534d0c00" \
> --network polkadot \
> --track whitelistedcaller \
> --at 19452500
Submit the preimage for the Fellowship referendum:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/extrinsics/decode/0x2b00d41f0003010003082f0000060342d4336c216f88170096883bca33c2df40c4c6ec6e4709dec50c9af7a8430101b12817d2d741e4faf1
Open a Fellowship referendum to whitelist the call:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/extrinsics/decode/0x3d003e020277e681308b6ff2060b3b0378208adb7c0f115def3751f7973df2de238375259c35000000010a000000
Submit the preimage for the public referendum:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-rpc.dwellir.com#/extrinsics/decode/0x0a00d5071703630003000100a10f03142f0000060202ca9a3b017d39023215e51400636bf89804bbac561be9ce382a3fde401e3b217364e71d010516f8adcafbfbf6007cfeb645d5dc994a3ddff1d4118516b2ca36d165b99df15e81ac11de7664dece003725f662547df65c08722ac955b7f668b265f63ad5bc8ce4afb5d7eab938e85e0045fd34d372d89f1934e14f99fb3a7a977df9779763d265ce7a450af4d6df8a15c24504000100060202ca9a3b017d39023215011f00d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d2c24504000100060202ca9a3b017d410235150201090300b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb602286bee0100060202ca9a3b017d4c351302010903184b7573616d610c4b534d0c00
Open a public referendum to dispatch the call:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-rpc.dwellir.com#/extrinsics/decode/0x1500160d02bcc0a3f16bd5f421893fab9346dfc9efb9818968d52b5c8c846303d2960d864bf50100000054d22801
Batch to submit on Polkadot Relay Chain:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-rpc.dwellir.com#/extrinsics/decode/0x1a04080a00d5071703630003000100a10f03142f0000060202ca9a3b017d39023215e51400636bf89804bbac561be9ce382a3fde401e3b217364e71d010516f8adcafbfbf6007cfeb645d5dc994a3ddff1d4118516b2ca36d165b99df15e81ac11de7664dece003725f662547df65c08722ac955b7f668b265f63ad5bc8ce4afb5d7eab938e85e0045fd34d372d89f1934e14f99fb3a7a977df9779763d265ce7a450af4d6df8a15c24504000100060202ca9a3b017d39023215011f00d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d200d8e5d105e214d8c57e5819fb6d820883f44a617a78a7a6237cb9627ec73a26d2c24504000100060202ca9a3b017d410235150201090300b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb600b0a515ef5ef6d725a227223c279f000bda1f19ddcfd011ff5132b82ea651dbb602286bee0100060202ca9a3b017d4c351302010903184b7573616d610c4b534d0c001500160d02bcc0a3f16bd5f421893fab9346dfc9efb9818968d52b5c8c846303d2960d864bf50100000054d22801
Batch to submit on Polkadot Collectives Chain:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/extrinsics/decode/0x2804082b00d41f0003010003082f0000060342d4336c216f88170096883bca33c2df40c4c6ec6e4709dec50c9af7a8430101b12817d2d741e4faf13d003e020277e681308b6ff2060b3b0378208adb7c0f115def3751f7973df2de238375259c35000000010a000000
```