All Developer News

v4.2.0

SDK/CLI

v4.2 checks vault fuses against the on-chain Fuse Whitelist, reports Compound V3 lending health and supports the Compound V3 Institutional USDC market. It applies to Python, CLI and MCP users on 4.1.

New

1. Fuse Whitelist check

Now: validate_vault and preflight_execute warn about each fuse that is not active on the chain’s Fuse Whitelist. The warning names the active fuse of the same type, or the active fuses of the same market and role.

Usage: the check runs by default. fuse_whitelist=False turns it off. A failed registry or RPC read is reported as a warning.

2. Fuse Whitelist listing

Now: the fuse_whitelist module reads the fuses a chain’s Fuse Whitelist lists for a market, with the state of each fuse.

Usage: fusion fuse whitelist from the CLI, or the fuse_whitelist MCP tool.

3. Compound V3 lending health

Before: Compound V3 debt was missing from lending health. Market 2 had no row and reported is_complete=True.

Now: each Compound V3 market reports LTV and the health factor against the liquidation limit, over every collateral the Comet lists. A vault with no debt gets no row.

Usage: the rows appear in the lending_health field of fusion vault info and of the validate_vault result. The WETH Comet prices in ETH and has empty USD fields.

4. Compound V3 Institutional USDC market

Now: market 57, the Compound V3 Institutional USDC market (ciUSDCv3) on Ethereum, has a substrate decoder, CompoundV3BorrowFuse, CompoundV3ClaimFuse and CompoundV3Reader.collateral_balance_of.

Usage: a new example takes a WETH vault on market 57 through collateral, borrow, partial repay, full repay and withdrawal, with NAV checked at each step.

Fixes

1. Provider keys in error messages

Before: provider URLs carry API keys. A refused or unreachable provider printed the URL with its key in CLI and MCP error text.

Now: error text shows only the scheme and host of a URL. An invalid config file reports fields and reasons without values.

Impact: CLI output and MCP tool errors carry no provider keys.

2. Text read from contracts

Before: name(), symbol(), description() and revert reasons were passed on as the contract returned them.

Now: control, format and private-use characters are stripped, line breaks become spaces and the length is capped.

Impact: contract text stays on one line. The wording itself is still untrusted.

3. Morpho debt with no collateral

Before: a Morpho position with debt and no collateral, or a zero oracle price, had no health factor. The CLI printed “OK (no debt)”.

Now: the position is critical, with a health factor of 0. Euler debt that its oracle values at zero is reported as unreadable.

Impact: validation reports these positions as a risk.

4. Compound V3 position with a failing feed

Before: a broken price feed for an asset the account does not hold could turn a critical position into an unknown one.

Now: prices are read only for collateral the account holds. Debt against a zero liquidation limit has a health factor of 0.

Impact: critical Compound V3 rows stay critical in validation.

5. Agent guide on fuses

Before: the guide named ipor-abi as the place to look up fuses. Agents redeployed fuses that already existed.

Now: the guide points to the chain’s Fuse Whitelist and the fuse’s active state.

Impact: agents following the guide look up whitelisted fuses.


Upgrade with pip install -U ipor-fusion. Full changelog: v4.2.0 on GitHub.

These notes describe changes to the IPOR Fusion SDK. They are not operational or financial advice. Operators are responsible for testing changes against their own vaults and configuration before use.