Client v0.10.36: Centrifuge 1025 & Altair 1034
Centrifuge 1025 - Release Notes Highlights
This release is packed with new features and a few breaking changes. Most notably, the definition of the NAV has changed. So far, the NAV represented the so called assets under management (abbreviated by AUM) which are represented by the evaluation of existing loans:
- NAV := NAV(Loans)
With the introduction of Pool Fees, the definition of the NAV needs to be extended due to the reducing effect which the sum of pending pool fees have on the pool valuation, i.e. they represent the negative part. Please note that the Pool Fees NAV does not include disbursement amounts which can be paid during epoch execution because these already reduce the reserve.
+ NAV := min(PoolReserve + NAV(Loans) - NAV(PoolFees), 0)
Please replace any existing reserve and NAV query with the new runtime API added in #1703:
let { navAum, navFees, reserve, total: navTotal } =
await api.call.poolsApi.nav(poolId)
Please note that runtime API metadata is not included in the v14 metadata such that you need to add type and runtime API call decorations manually.
Features and breaking changes
- Add Pool Fees (#1633, #1706, #1718)
- Replace external oracle implementation with internal one called Oracles V2 (#1629, #1661, #1670, #1671, #1672)
- Loans
- Orderbook
- Liquidity Pools:
- Add remarks pallet: Enables attaching remarks to transactions (#1659)
- [BREAKING] Block Rewards: Replace absolute treasury inflation with relative one (#1740)
- Transfer Allowlist:
- Add ERC-20 precompile for CFG balance to enable CFG bridging with Axelar ITS (#1731)
Runtime API
We have both extended existing as well as added new runtime API:
- Pool Fees: Emulate epoch closing and pool fees update (#1728)
- Pool Nav: Emulate epoch closing and return Loans NAV (assets under management), Pool Fees NAV, altered reserve as well as total NAV (#1703)
- Loans API: Emulate portfolio update with custom prices (#1748)
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : centrifuge-runtime v0.10.25
GIT commit : 544ce02
GIT tag : v0.10.36
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-07T08:33:20Z
== Compressed
🏋️ Runtime size: 1.819 MB (1,906,886 bytes)
🗜 Compressed: Yes, 78.50%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1025 (centrifuge-1.tx2.au1)
🗳️ system.setCode hash: 0x210cdf71ee5c5fbea3dc5090c596a992b148030474121b481a856433eb5720f3
🗳️ Blake2-256 hash: 0xb7f74401c52ee8634ad28fe91e8a6b1debb802d4d2058fdda184a6f2746477f6
📦 IPFS: https://www.ipfs.io/ipfs/QmS3GDmbGKvcmSd7ca1AN9B34BW3DuDEDQ1iSLXgkjktpG
Altair 1034 - Release Notes Highlights
The Altair system has not received an update for an extended period, and we apologize for any inconvenience this may have caused. This recent update aligns Altair's runtime environment with that of the Centrifuge runtime, ensuring that all modifications mentioned previously, as well as those introduced in subsequent releases, are now incorporated into Altair:
- Centrifuge Client v0.10.35 & Centrifuge 1024
- Centrifuge Client v0.10.34 & Centrifuge 1023
- Centrifuge Client v0.10.31 & Centrifuge 1020
❗️It's crucial to acknowledge that version 0.10.35 of the Centrifuge Client, which was not previously activated for Altair, introduced several breaking changes that could potentially disrupt existing workflows for node operators ❗️
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : altair-runtime v0.10.34
GIT commit : 544ce02
GIT tag : v0.10.36
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-07T08:29:48Z
== Compressed
🏋️ Runtime size: 1.803 MB (1,890,899 bytes)
🗜 Compressed: Yes, 78.53%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: altair-1034 (altair-1.tx2.au1)
🗳️ system.setCode hash: 0xe8d9302f2f7b632f0a4a69e2e0e86a873a868720179386d22ea34def5ed4a05a
🗳️ Blake2-256 hash: 0xbdc0f7db3f0a8e3c3a55e34108383461b06930409d0f135db1983aeb70265150
📦 IPFS: https://www.ipfs.io/ipfs/QmW6n8h2Fii3QDHMBmbKY51eny5M5PrcLqsnbWDshWgAup
Mutual
Exhaustive list of all changes
- Release centrifuge 1024 client 1035 by @mustermeiszer in #1607
- Split concern for pool benchmark helper by @lemunozm in #1645
- Fix Docker workflow triggers by @gpmayorga in #1646
- Update docker test image name by @cdamian in #1644
- integration-tests: Use the generic framework for development LP tests by @cdamian in #1643
- Node crate to folder by @lemunozm in #1632
- Substitute mock-accountant macro by a mock builder pallet by @lemunozm in #1652
- Loans: Expand
TransferDebt
event with more info by @lemunozm in #1653 - Remove dependency warnings due to
codec
aliases in workspace dependencies by @lemunozm in #1655 - Fix: LP accounting by @mustermeiszer in #1657
- Oracle V2 implementation by @lemunozm in #1629
- Loans: Integration with OracleV2 by @lemunozm in #1658
- Oracles: Protect from configuring with duplicated feeders by @lemunozm in #1661
- Integration tests for proxies by @lemunozm in #1662
- chore(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0 by @dependabot in #1669
- chore(deps): bump actions/configure-pages from 3 to 4 by @dependabot in #1665
- chore(deps): bump actions/deploy-pages from 2 to 4 by @dependabot in #1668
- Oracles: Time validation by a max age threshold by @lemunozm in #1670
- Rename from
pallet-oracle-data-collection
topallet-oracle-collection
by @lemunozm in #1671 - chore(deps): bump docker/metadata-action from 5.0.0 to 5.4.0 by @dependabot in #1666
- remarks: Add remarks pallet by @cdamian in #1659
- liquidity-pools: Ensure only pool admins can allow investment currencies by @cdamian in #1681
- remarks: Add pool ID to loan variant by @cdamian in #1682
- chore(deps): bump google-github-actions/setup-gcloud from 1.1.1 to 2.0.1 by @dependabot in #1667
- Oracles: Move feeders to collection level by @lemunozm in #1672
- liquidity-pools: Add support for
DisallowInvestmentCurrency
message by @cdamian in #1686 - Development 1037 by @mustermeiszer in #1688
- Fix Rust docs broken in main branch by @gpmayorga in #1684
- Loans: add
increase_debt()
extrinsic by @lemunozm in #1691 - Minor Docker enhancements by @gpmayorga in #1660
- feat: Add Pool Fees by @wischli in #1633
- Fix: Limitations of Transfer Allowlist by @mustermeiszer in #1693
- Fix: pool-registry test compilation by @lemunozm in #1701
- FI v2: refactor without states by @lemunozm in #1698
- fix: foreign investment amount by @wischli in #1705
- Fix: transfer filters by @mustermeiszer in #1702
- refactor: assign pool fee id during propose by @wischli in #1706
- feat: add NAV runtime API by @wischli in #1703
- lp-gateway: Add queue for outbound messages by @cdamian in #1696
- Gha-upgrades by @gpmayorga in #1716
- migration: remove claims pallet by @wischli in #1707
- OrderBook: Add market prices using Oracles by @lemunozm in #1674
- feat: defensive negative balance sheet, expose pool id in fees events by @wischli in #1718
- Add asset_registry mock by @lemunozm in #1721
- Add typed balances to FI and OrderBook. by @lemunozm in #1719
- pool fees: explicit handling of zero amounts by @wischli in #1722
- Refactor: Use workspace dependencies by @lemunozm in #1725
- feat: add PoolFees RtApi & AccruedFees event by @wischli in #1728
- Remove nft, nft-sales & migration pallets by @lemunozm in #1730
- Precompile for balances ERC-20 by @lemunozm in #1731
- Refactor: Extract swapping part from FI into
pallet-swaps
by @lemunozm in #1724 - Feat:
Pallet-Token-Mux
by @mustermeiszer in #1713 - Cleaning: Repo organization before Polkadot 1.1.0 by @lemunozm in #1737
- Cleaning: Remove
TradingPair
by @lemunozm in #1741 - feat: relative treasury inflation by @wischli in #1740
- Feat: allow borrow automation by @mustermeiszer in #1733
- misc: Clean-up and minors pre 1025 by @mustermeiszer in #1742
- Fix: FI swap correclty with asymmetric ratios by @lemunozm in #1746
- Fix: storage version mismatch + burn-unburned decoding issue by @wischli in #1747
- Loans: linear accrual on settlement price by @lemunozm in #1739
- Feat: Enhance Error Resolution EVM by @mustermeiszer and @cdamian in #1758
Docker Image: docker pull centrifugeio/centrifuge-chain:main-544ce02-2024-03-07
Full Changelog: v0.10.35...v0.10.36