Asset Management
Core Asset States
Global Asset Tracking
uint128 internal _totalIdle; // Unallocated assets
uint128 internal _totalDebt; // Allocated assets
uint256 public sharePriceWaterMark; // High watermark for performance
// Cross-chain tracking
uint256 public totalpendingXChainInvests;
uint256 public totalPendingXChainDivests;Per-Vault Asset Tracking
/// @notice A struct describing the status of an underlying vault
/// @dev Contains data about a vault's chain ID, share price, oracle, and more
struct VaultData {
/// @dev The ID of the chain where the vault is deployed
uint64 chainId;
/// @dev The last reported share price of the vault
uint256 superformId;
/// @dev The oracle that provides the share price for the vault
ISharePriceOracle oracle;
/// @dev The number of decimals used in the ERC4626 shares
uint8 decimals;
/// @dev The total assets invested in the vault
uint128 totalDebt;
/// @dev The address of the vault
address vaultAddress;
}
mapping(uint256 => VaultData) public vaults;Asset Operations
Direct Asset Management
Cross-Chain Asset Management
NFT Position Management
Fee Management
Fee Structure
Fee Assessment
Asset Accounting
Total Assets Calculation
Share Price Updates
Asset Safety
Critical Invariants
Total Assets = Idle + Debt + Pending Investments
Share Price Monotonicity (never decreases under normal operation)
Fee Calculations Maintain Precision
Asset/Share Ratio Consistency
Cross-Chain Position Reconciliation
Balance Validation
Oracle Integration
Share Price Oracle
Hurdle Rate Oracle
Last updated