CP45 (RU): Runtime Upgrade 1018 + Add CFG and DOT to Asset Registry

Proposal type: CP3
Author: k/f
Proposal on Github: cps/CP45.md at main · centrifuge/cps · GitHub
Date proposed: 2023-04-17

A public proposal (Democracy Proposal 1) has just been submitted for this upgrade with the pre-image hash:
0x4a62cc6dc8f4e771ff071c4f26b413b06014f14d84a21f0c87cd5e5e7d3ff2a4

List of content of this Runtime Upgrade

We are excited to announce the inclusion of Pools in the Centrifuge runtime, a significant enhancement to our platform. As a result, investors will now have the opportunity to invest in RWA Pools on the purpose-built Centrifuge chain, which operates under the robust security umbrella of Polkadot. This new feature complements the existing Tinlake on Ethereum, expanding investment options for our valued users.

  • Add pallets for PoolRegistry, PoolSystem, Permissions, Investments and InterestAccrual (PR #1233)
  • Refactor pallet-loans to allow better scalability in loans. Instead of choosing between fixed loan types, they can now be composed with different valuations/restrictions/schedules—improvements in the written-off systems and a lot of simplifications to reason easier about loans as a borrower (PR #1180)
  • Significantly improved interest rate accrual and NAV update efficiency (PR #1157)
  • Added new proxy type PermissionManagement which will be used for adding new investors by onboarding API (PR #1197)

Release Notes: Release Centrifuge 1018 & Altair 1026 Release · centrifuge/centrifuge-chain · GitHub

Full Changelog: Comparing v0.10.24...release-v0.10.26 · centrifuge/centrifuge-chain · GitHub

Asset Registry Update

When we first added XCM to our runtimes (first Altair and later Centrifuge), the first token we supported was Acala’s AUSD and for that we just added AUSD as a hardcoded variant of our CurrencyId enum type. That type enumerates all the currency ids that the Centrifuge chain knows about or is able to handle. Later, improving our XCM setup, we introduced the ORML asset registry for two purposes:

  1. So that we could support new tokens through XCM by simply registering them in the asset registry instead of hardcoding them in the CurrencyId type and thus not require runtime upgrades to support new tokens.
  2. So that we had a standardised way of querying metadata for all tokens that Centrifuge handles, i.e, both native tokens like CFG and Tranche tokens, as well as “foreign” tokens like AUSD, USDC, etc. This motion is now a step into cleaning up that first legacy, “hardcoding”-based approach; we do that by dropping those hardcoded currency variants (AUSD and KSM (the latter only applicable on Altair)) and have them registered as Currency::ForeignAsset(<asset_id>) in the asset registry instead. The next step will be to migrate all balances that are now under CurrencyId::AUSD and CurrencyId::KSM to CurrencyId::ForeignAsset(<aUSD_asset_id>) and CurrencyId::ForeignAsset(<ksm_asset_id>), respectively.

For more context, please check Issue #886.

The corresponding preimage hash is 0x6de31686f6a4fbf1584f91e45961862f44e5a692b23a122bc29e26c5e2275d60

Governance process for this proposal

  1. Public proposal
  2. Referendum vote open for 50,400 blocks (~7 days)
  3. If referendum succeeds: Enactment after 57,600 blocks (~8 days)

See the Public Proposal on SubSquare here.

Democracy Proposal 1 has become a public referendum (Referendum 32) that all CFG token holders can vote on.

The referendum is open until block #2822400 (26th April ~07:08 CET).

:ballot_box: You can vote on SubSquare here.

Referendum 32 has passed with SuperMajorityApprove.

Thank you for voting.