Credit Accounts
Discovering Markets
import {IAddressProviderV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IAddressProviderV3.sol";
import {IContractsRegister} from "@gearbox-protocol/core-v3/contracts/interfaces/IContractsRegister.sol";
import {ICreditManagerV3} from "@gearbox-protocol/core-v3/contracts/interfaces/ICreditManagerV3.sol";
IAddressProviderV3 ap = IAddressProviderV3(ADDRESS_PROVIDER);
address cr = ap.getAddressOrRevert("CONTRACTS_REGISTER", 3_10);
// Get all credit managers
address[] memory allCMs = IContractsRegister(cr).getCreditManagers();function findUSDCCreditManagers(address addressProvider, address usdc)
external view returns (address[] memory facades)
{
IAddressProviderV3 ap = IAddressProviderV3(addressProvider);
address cr = ap.getAddressOrRevert("CONTRACTS_REGISTER", 3_10);
address[] memory allCMs = IContractsRegister(cr).getCreditManagers();
uint256 count;
for (uint256 i = 0; i < allCMs.length; i++) {
if (ICreditManagerV3(allCMs[i]).underlying() == usdc) count++;
}
facades = new address[](count);
uint256 j;
for (uint256 i = 0; i < allCMs.length; i++) {
ICreditManagerV3 cm = ICreditManagerV3(allCMs[i]);
if (cm.underlying() == usdc) {
facades[j++] = cm.creditFacade();
}
}
}Opening a Credit Account
Debt Limits
Managing Active Positions
Adding Collateral
Increasing Debt
Executing Swaps via Adapters
Withdrawing Collateral
Monitoring Account Health
CollateralDebtData Structure
Closing Positions
Configuration and Limits
Debt Limits
Liquidation Thresholds
Forbidden Tokens
Collateral Tokens
Fee Configuration
Complete Example
Last updated
