{
    "abi": [
        {
            "type": "function",
            "name": "BOOTSTRAP_PERIOD",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "CCR",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "DEBT_GAS_COMPENSATION",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "DECIMAL_PRECISION",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "L_collateral",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "L_debt",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "MAX_INTEREST_RATE_IN_BPS",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "MCR",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "PERCENT_DIVISOR",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "SATOSHI_CORE",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract ISatoshiCore"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "SUNSETTING_INTEREST_RATE",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "activeInterestIndex",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "addCollateralSurplus",
            "inputs": [
                { "name": "borrower", "type": "address", "internalType": "address" },
                { "name": "collSurplus", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "applyPendingRewards",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "coll", "type": "uint256", "internalType": "uint256" },
                { "name": "debt", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "baseRate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "borrowerOperations",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract IBorrowerOperations"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "borrowingFeeFloor",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "claimCollateral",
            "inputs": [
                { "name": "_receiver", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "claimReward",
            "inputs": [
                { "name": "receiver", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "claimStartTime",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint32", "internalType": "uint32" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "claimableReward",
            "inputs": [
                { "name": "account", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "closeTrove",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" },
                { "name": "_receiver", "type": "address", "internalType": "address" },
                { "name": "collAmount", "type": "uint256", "internalType": "uint256" },
                { "name": "debtAmount", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "closeTroveByLiquidation",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "collateralToken",
            "inputs": [],
            "outputs": [
                { "name": "", "type": "address", "internalType": "contract IERC20" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "collectInterests",
            "inputs": [],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "communityIssuance",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract ICommunityIssuance"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "debtToken",
            "inputs": [],
            "outputs": [
                { "name": "", "type": "address", "internalType": "contract IDebtToken" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "decayBaseRateAndGetBorrowingFee",
            "inputs": [
                { "name": "_debt", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "decreaseDebtAndSendCollateral",
            "inputs": [
                { "name": "account", "type": "address", "internalType": "address" },
                { "name": "debt", "type": "uint256", "internalType": "uint256" },
                { "name": "coll", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "defaultedCollateral",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "defaultedDebt",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "factory",
            "inputs": [],
            "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "fetchPrice",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "finalizeLiquidation",
            "inputs": [
                { "name": "_liquidator", "type": "address", "internalType": "address" },
                { "name": "_debt", "type": "uint256", "internalType": "uint256" },
                { "name": "_coll", "type": "uint256", "internalType": "uint256" },
                {
                    "name": "_collSurplus",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_debtGasComp",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                { "name": "_collGasComp", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "gasPool",
            "inputs": [],
            "outputs": [
                { "name": "", "type": "address", "internalType": "contract IGasPool" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getBorrowingFee",
            "inputs": [
                { "name": "_debt", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getBorrowingFeeWithDecay",
            "inputs": [
                { "name": "_debt", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getBorrowingRate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getBorrowingRateWithDecay",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getCurrentICR",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" },
                { "name": "_price", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getEntireDebtAndColl",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "debt", "type": "uint256", "internalType": "uint256" },
                { "name": "coll", "type": "uint256", "internalType": "uint256" },
                {
                    "name": "pendingDebtReward",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "pendingCollateralReward",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getEntireSystemBalances",
            "inputs": [],
            "outputs": [
                { "name": "", "type": "uint256", "internalType": "uint256" },
                { "name": "", "type": "uint256", "internalType": "uint256" },
                { "name": "", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "getEntireSystemColl",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getEntireSystemDebt",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getNominalICR",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getPendingCollAndDebtRewards",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "", "type": "uint256", "internalType": "uint256" },
                { "name": "", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getRedemptionFeeWithDecay",
            "inputs": [
                {
                    "name": "_collateralDrawn",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getRedemptionRate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getRedemptionRateWithDecay",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTotalActiveCollateral",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTotalActiveDebt",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTroveCollAndDebt",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "coll", "type": "uint256", "internalType": "uint256" },
                { "name": "debt", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTroveFromTroveOwnersArray",
            "inputs": [
                { "name": "_index", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTroveOwnersCount",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTroveStake",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "getTroveStatus",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "guardian",
            "inputs": [],
            "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "hasPendingRewards",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "initialize",
            "inputs": [
                {
                    "name": "_satoshiCore",
                    "type": "address",
                    "internalType": "contract ISatoshiCore"
                },
                {
                    "name": "_gasPool",
                    "type": "address",
                    "internalType": "contract IGasPool"
                },
                {
                    "name": "_debtToken",
                    "type": "address",
                    "internalType": "contract IDebtToken"
                },
                {
                    "name": "_borrowerOperations",
                    "type": "address",
                    "internalType": "contract IBorrowerOperations"
                },
                {
                    "name": "_liquidationManager",
                    "type": "address",
                    "internalType": "contract ILiquidationManager"
                },
                {
                    "name": "_priceFeedAggregator",
                    "type": "address",
                    "internalType": "contract IPriceFeedAggregator"
                },
                {
                    "name": "_communityIssuance",
                    "type": "address",
                    "internalType": "contract ICommunityIssuance"
                },
                {
                    "name": "_gasCompensation",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "interestPayable",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "interestRate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "isClaimStart",
            "inputs": [],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "lastActiveIndexUpdate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "lastCollateralError_Redistribution",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "lastDebtError_Redistribution",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "lastFeeOperationTime",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "lastUpdate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "liquidationManager",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract ILiquidationManager"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "maxBorrowingFee",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "maxRedemptionFee",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "maxSystemDebt",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "minuteDecayFactor",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "movePendingTroveRewardsToActiveBalances",
            "inputs": [
                { "name": "_debt", "type": "uint256", "internalType": "uint256" },
                { "name": "_collateral", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "openTrove",
            "inputs": [
                { "name": "_borrower", "type": "address", "internalType": "address" },
                {
                    "name": "_collateralAmount",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_compositeDebt",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                { "name": "NICR", "type": "uint256", "internalType": "uint256" },
                { "name": "_upperHint", "type": "address", "internalType": "address" },
                { "name": "_lowerHint", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "stake", "type": "uint256", "internalType": "uint256" },
                { "name": "arrayIndex", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "owner",
            "inputs": [],
            "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "paused",
            "inputs": [],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "priceFeedAggregator",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract IPriceFeedAggregator"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "redeemCollateral",
            "inputs": [
                { "name": "_debtAmount", "type": "uint256", "internalType": "uint256" },
                {
                    "name": "_firstRedemptionHint",
                    "type": "address",
                    "internalType": "address"
                },
                {
                    "name": "_upperPartialRedemptionHint",
                    "type": "address",
                    "internalType": "address"
                },
                {
                    "name": "_lowerPartialRedemptionHint",
                    "type": "address",
                    "internalType": "address"
                },
                {
                    "name": "_partialRedemptionHintNICR",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_maxIterations",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_maxFeePercentage",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "redemptionFeeFloor",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "rewardIntegral",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "rewardIntegralFor",
            "inputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "rewardRate",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "rewardSnapshots",
            "inputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "outputs": [
                { "name": "collateral", "type": "uint256", "internalType": "uint256" },
                { "name": "debt", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "setClaimStartTime",
            "inputs": [
                {
                    "name": "_claimStartTime",
                    "type": "uint32",
                    "internalType": "uint32"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setConfig",
            "inputs": [
                {
                    "name": "_sortedTroves",
                    "type": "address",
                    "internalType": "contract ISortedTroves"
                },
                {
                    "name": "_collateralToken",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setParameters",
            "inputs": [
                {
                    "name": "_minuteDecayFactor",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_redemptionFeeFloor",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_maxRedemptionFee",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_borrowingFeeFloor",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_maxBorrowingFee",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_interestRateInBPS",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                {
                    "name": "_maxSystemDebt",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                { "name": "_MCR", "type": "uint256", "internalType": "uint256" },
                { "name": "_rewardRate", "type": "uint128", "internalType": "uint128" },
                {
                    "name": "_claimStartTime",
                    "type": "uint32",
                    "internalType": "uint32"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setPaused",
            "inputs": [{ "name": "_paused", "type": "bool", "internalType": "bool" }],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setRewardRate",
            "inputs": [
                {
                    "name": "_newRewardRate",
                    "type": "uint128",
                    "internalType": "uint128"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "sortedTroves",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract ISortedTroves"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "startSunset",
            "inputs": [],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "sunsetting",
            "inputs": [],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "surplusBalances",
            "inputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "systemDeploymentTime",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "totalCollateralSnapshot",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "totalStakes",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "totalStakesSnapshot",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "troves",
            "inputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "outputs": [
                { "name": "debt", "type": "uint256", "internalType": "uint256" },
                { "name": "coll", "type": "uint256", "internalType": "uint256" },
                { "name": "stake", "type": "uint256", "internalType": "uint256" },
                { "name": "status", "type": "uint8", "internalType": "enum Status" },
                { "name": "arrayIndex", "type": "uint128", "internalType": "uint128" },
                {
                    "name": "activeInterestIndex",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "updateBalances",
            "inputs": [],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "updateTroveFromAdjustment",
            "inputs": [
                { "name": "_isDebtIncrease", "type": "bool", "internalType": "bool" },
                { "name": "_debtChange", "type": "uint256", "internalType": "uint256" },
                {
                    "name": "_netDebtChange",
                    "type": "uint256",
                    "internalType": "uint256"
                },
                { "name": "_isCollIncrease", "type": "bool", "internalType": "bool" },
                { "name": "_collChange", "type": "uint256", "internalType": "uint256" },
                { "name": "_upperHint", "type": "address", "internalType": "address" },
                { "name": "_lowerHint", "type": "address", "internalType": "address" },
                { "name": "_borrower", "type": "address", "internalType": "address" },
                { "name": "_receiver", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "", "type": "uint256", "internalType": "uint256" },
                { "name": "", "type": "uint256", "internalType": "uint256" },
                { "name": "", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "event",
            "name": "BaseRateUpdated",
            "inputs": [
                {
                    "name": "_baseRate",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "ClaimStartTimeSet",
            "inputs": [
                {
                    "name": "_startTime",
                    "type": "uint32",
                    "indexed": false,
                    "internalType": "uint32"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "CollateralSent",
            "inputs": [
                {
                    "name": "_to",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                },
                {
                    "name": "_amount",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "Initialized",
            "inputs": [
                {
                    "name": "version",
                    "type": "uint8",
                    "indexed": false,
                    "internalType": "uint8"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "InterestCollected",
            "inputs": [
                {
                    "name": "_troveManager",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                },
                {
                    "name": "_amount",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "LTermsUpdated",
            "inputs": [
                {
                    "name": "_L_collateral",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_L_debt",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "LastFeeOpTimeUpdated",
            "inputs": [
                {
                    "name": "_lastFeeOpTime",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "Redemption",
            "inputs": [
                {
                    "name": "_attemptedDebtAmount",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_actualDebtAmount",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_collateralSent",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_collateralFee",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "RewardClaimed",
            "inputs": [
                {
                    "name": "account",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "recipient",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "claimed",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetConfig",
            "inputs": [
                {
                    "name": "_sortedTroves",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                },
                {
                    "name": "_collateralToken",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                },
                {
                    "name": "systemDeploymentTime",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "sunsetting",
                    "type": "bool",
                    "indexed": false,
                    "internalType": "bool"
                },
                {
                    "name": "activeInterestIndex",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "lastActiveIndexUpdate",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SystemSnapshotsUpdated",
            "inputs": [
                {
                    "name": "_totalStakesSnapshot",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_totalCollateralSnapshot",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "TotalStakesUpdated",
            "inputs": [
                {
                    "name": "_newTotalStakes",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "TroveIndexUpdated",
            "inputs": [
                {
                    "name": "_borrower",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                },
                {
                    "name": "_newIndex",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "TroveSnapshotsUpdated",
            "inputs": [
                {
                    "name": "_L_collateral",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_L_debt",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "TroveUpdated",
            "inputs": [
                {
                    "name": "_borrower",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "_debt",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_coll",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_stake",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "_operation",
                    "type": "uint8",
                    "indexed": false,
                    "internalType": "enum TroveManagerOperation"
                }
            ],
            "anonymous": false
        },
        { "type": "error", "name": "InvalidSatoshiCore", "inputs": [] }
    ]
}
