Contracts

CollateralVault

Holds tokenized stocks on behalf of borrowers. Per-asset, per-user accounting. Withdrawals must succeed against the LendingPool's solvency check.

solidity
interface ICollateralVault {
    function deposit(address asset, uint256 amount) external;
    function withdraw(address asset, uint256 amount) external;

    function balanceOf(address user, address asset) external view returns (uint256);
    function collateralValueUSDG(address user) external view returns (uint256);

    event Deposit(address indexed user, address indexed asset, uint256 amount);
    event Withdraw(address indexed user, address indexed asset, uint256 amount);
}