{
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_debtCeiling",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_liquidationRatio",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_stabilityFeeRate",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "_adapter",
                    "type": "address"
                }
            ],
            "name": "LogInitCollateralPoolId",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "_messageSender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_positionDebtCeiling",
                    "type": "uint256"
                }
            ],
            "name": "LogPositionDebtCeiling",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "_adapter",
                    "type": "address"
                }
            ],
            "name": "LogSetAdapter",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_closeFactorBps",
                    "type": "uint256"
                }
            ],
            "name": "LogSetCloseFactorBps",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_debtAccumulatedRate",
                    "type": "uint256"
                }
            ],
            "name": "LogSetDebtAccumulatedRate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_debtCeiling",
                    "type": "uint256"
                }
            ],
            "name": "LogSetDebtCeiling",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_debtFloor",
                    "type": "uint256"
                }
            ],
            "name": "LogSetDebtFloor",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_data",
                    "type": "uint256"
                }
            ],
            "name": "LogSetLiquidationRatio",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_liquidatorIncentiveBps",
                    "type": "uint256"
                }
            ],
            "name": "LogSetLiquidatorIncentiveBps",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "_priceFeed",
                    "type": "address"
                }
            ],
            "name": "LogSetPriceFeed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_priceWithSafetyMargin",
                    "type": "uint256"
                }
            ],
            "name": "LogSetPriceWithSafetyMargin",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_data",
                    "type": "uint256"
                }
            ],
            "name": "LogSetStabilityFeeRate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "strategy",
                    "type": "address"
                }
            ],
            "name": "LogSetStrategy",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_totalDebtShare",
                    "type": "uint256"
                }
            ],
            "name": "LogSetTotalDebtShare",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "_caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "_treasuryFeeBps",
                    "type": "uint256"
                }
            ],
            "name": "LogSetTreasuryFeesBps",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "accessControlConfig",
            "outputs": [
                {
                    "internalType": "contract IAccessControlConfig",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_accessControlConfig",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_debtCeiling",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_debtFloor",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_positionDebtCeiling",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_priceFeed",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_liquidationRatio",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_stabilityFeeRate",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_adapter",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_closeFactorBps",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_liquidatorIncentiveBps",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_treasuryFeesBps",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_strategy",
                    "type": "address"
                }
            ],
            "name": "initCollateralPool",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_priceWithSafetyMargin",
                    "type": "uint256"
                }
            ],
            "name": "setPriceWithSafetyMargin",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_debtCeiling",
                    "type": "uint256"
                }
            ],
            "name": "setDebtCeiling",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_debtFloor",
                    "type": "uint256"
                }
            ],
            "name": "setDebtFloor",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_positionDebtCeiling",
                    "type": "uint256"
                }
            ],
            "name": "setPositionDebtCeiling",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_poolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_priceFeed",
                    "type": "address"
                }
            ],
            "name": "setPriceFeed",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_poolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_liquidationRatio",
                    "type": "uint256"
                }
            ],
            "name": "setLiquidationRatio",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPool",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_stabilityFeeRate",
                    "type": "uint256"
                }
            ],
            "name": "setStabilityFeeRate",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_adapter",
                    "type": "address"
                }
            ],
            "name": "setAdapter",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_closeFactorBps",
                    "type": "uint256"
                }
            ],
            "name": "setCloseFactorBps",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_liquidatorIncentiveBps",
                    "type": "uint256"
                }
            ],
            "name": "setLiquidatorIncentiveBps",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_treasuryFeesBps",
                    "type": "uint256"
                }
            ],
            "name": "setTreasuryFeesBps",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_totalDebtShare",
                    "type": "uint256"
                }
            ],
            "name": "setTotalDebtShare",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "_debtAccumulatedRate",
                    "type": "uint256"
                }
            ],
            "name": "setDebtAccumulatedRate",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_strategy",
                    "type": "address"
                }
            ],
            "name": "setStrategy",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "updateLastAccumulationTime",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "collateralPools",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "totalDebtShare",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "debtAccumulatedRate",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "priceWithSafetyMargin",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "debtCeiling",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "debtFloor",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "priceFeed",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "liquidationRatio",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "stabilityFeeRate",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "lastAccumulationTime",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "adapter",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "closeFactorBps",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "liquidatorIncentiveBps",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "treasuryFeesBps",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "strategy",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "positionDebtCeiling",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct ICollateralPoolConfig.CollateralPool",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getTotalDebtShare",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getDebtAccumulatedRate",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getPriceWithSafetyMargin",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getDebtCeiling",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getPositionDebtCeiling",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getDebtFloor",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getPriceFeed",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getLiquidationRatio",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getStabilityFeeRate",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getLastAccumulationTime",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getAdapter",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getCloseFactorBps",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getLiquidatorIncentiveBps",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getTreasuryFeesBps",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getStrategy",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_collateralPoolId",
                    "type": "bytes32"
                }
            ],
            "name": "getCollateralPoolInfo",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "debtAccumulatedRate",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "totalDebtShare",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "debtCeiling",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "priceWithSafetyMargin",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "debtFloor",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "positionDebtCeiling",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct ICollateralPoolConfig.CollateralPoolInfo",
                    "name": "_info",
                    "type": "tuple"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        }
    ]
}
