/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Contract, Signer, utils } from "ethers"; import type { Provider } from "@ethersproject/providers"; import type { ILendingPoolAbi, ILendingPoolAbiInterface, } from "../ILendingPoolAbi"; const _abi = [ { inputs: [], name: "ClearingIsPending", type: "error", }, { inputs: [ { internalType: "uint256", name: "drawAmount", type: "uint256", }, { internalType: "uint256", name: "availableAmount", type: "uint256", }, ], name: "DrawAmountCantBeGreaterThanAvailableAmount", type: "error", }, { inputs: [ { internalType: "uint256", name: "feesOwedAmount", type: "uint256", }, ], name: "FeesOwedAmountIsGreaterThanZero", type: "error", }, { inputs: [], name: "LendingPoolIsNotStopped", type: "error", }, { inputs: [], name: "LendingPoolIsStopped", type: "error", }, { inputs: [ { internalType: "uint256", name: "reportedLossAmount", type: "uint256", }, { internalType: "uint256", name: "maxLossAmount", type: "uint256", }, ], name: "LossAmountCantBeGreaterThanMaxLossAmount", type: "error", }, { inputs: [ { internalType: "uint256", name: "reportedLossAmount", type: "uint256", }, ], name: "LossAmountShouldBeGreaterThanZero", type: "error", }, { inputs: [ { internalType: "uint256", name: "lossId", type: "uint256", }, ], name: "LossIdNotValid", type: "error", }, { inputs: [ { internalType: "string", name: "reason", type: "string", }, ], name: "PoolConfigurationIsIncorrect", type: "error", }, { inputs: [ { internalType: "uint256", name: "repayAmount", type: "uint256", }, { internalType: "uint256", name: "owedAmount", type: "uint256", }, ], name: "RepayAmountCantBeGreaterThanOwedAmount", type: "error", }, { inputs: [ { internalType: "uint256", name: "userOwedAmount", type: "uint256", }, ], name: "UserOwedAmountIsGreaterThanZero", type: "error", }, { inputs: [ { internalType: "uint256", name: "withdrawAmount", type: "uint256", }, { internalType: "uint256", name: "firstLostCapital", type: "uint256", }, ], name: "WithdrawAmountCantBeGreaterThanFirstLostCapital", type: "error", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "spender", type: "address", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "Approval", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address", }, { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "DepositAccepted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "epoch", type: "uint256", }, { indexed: false, internalType: "uint256", name: "feesIncreasedAmount", type: "uint256", }, ], name: "FeesOwedIncreased", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "amountAdded", type: "uint256", }, ], name: "FirstLossCapitalAdded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "lossId", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "FirstLossCapitalLossReported", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "amountWithdrawn", type: "uint256", }, ], name: "FirstLossCapitalWithdrawn", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "FundsDrawn", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address", }, { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "ImmediateWithdrawal", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: true, internalType: "uint256", name: "epoch", type: "uint256", }, { indexed: false, internalType: "uint256", name: "interestAmount", type: "uint256", }, ], name: "InterestApplied", type: "event", }, { anonymous: false, inputs: [], name: "LendingPoolStopped", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "LossReported", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "amountForUsers", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amountForFees", type: "uint256", }, ], name: "OwedFundsRepaid", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "feesPaid", type: "uint256", }, ], name: "PaidFees", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: true, internalType: "uint256", name: "applicableEpoch", type: "uint256", }, { indexed: false, internalType: "uint256", name: "arrayIndex", type: "uint256", }, ], name: "RemovedTrancheInterestRateUpdate", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "from", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "Transfer", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "desiredDrawAmount", type: "uint256", }, ], name: "UpdatedDesiredDrawAmount", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "drawRecipient", type: "address", }, ], name: "UpdatedDrawRecipient", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "UpdatedMaximumDepositAmount", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "UpdatedMinimumDepositAmount", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "percentage", type: "uint256", }, ], name: "UpdatedMinimumExcessLiquidityPercentage", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "percentage", type: "uint256", }, ], name: "UpdatedTargetExcessLiquidityPercentage", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256[]", name: "ratios", type: "uint256[]", }, ], name: "UpdatedTrancheDesiredRatios", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: true, internalType: "uint256", name: "applicableEpoch", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newInterestRate", type: "uint256", }, ], name: "UpdatedTrancheInterestRate", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "epochDelay", type: "uint256", }, ], name: "UpdatedTrancheInterestRateChangeEpochDelay", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address", }, { indexed: true, internalType: "address", name: "tranche", type: "address", }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256", }, { indexed: false, internalType: "uint256", name: "assetAmount", type: "uint256", }, ], name: "WithdrawalAccepted", type: "event", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "address", name: "user", type: "address", }, { internalType: "uint256", name: "acceptedAmount", type: "uint256", }, ], name: "acceptDeposit", outputs: [ { internalType: "uint256", name: "trancheShares", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "address", name: "user", type: "address", }, { internalType: "uint256", name: "acceptedShares", type: "uint256", }, ], name: "acceptWithdrawal", outputs: [ { internalType: "uint256", name: "assetAmount", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "spender", type: "address", }, ], name: "allowance", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "epoch", type: "uint256", }, ], name: "applyInterests", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "approve", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "availableFunds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "calculateMaximumLossAmount", outputs: [ { internalType: "uint256", name: "maximumLossAmount", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "user", type: "address", }, { internalType: "address", name: "tranche", type: "address", }, { internalType: "uint256", name: "lossId", type: "uint256", }, ], name: "claimRepaidLoss", outputs: [ { internalType: "uint256", name: "claimedAmount", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "depositFirstLossCapital", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "drawFunds", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "feesOwedAmount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "address", name: "user", type: "address", }, { internalType: "uint256", name: "sharesToWithdraw", type: "uint256", }, ], name: "forceImmediateWithdrawal", outputs: [ { internalType: "uint256", name: "assetAmount", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "getClearingConfig", outputs: [ { components: [ { internalType: "uint256", name: "drawAmount", type: "uint256", }, { internalType: "uint256[]", name: "trancheDesiredRatios", type: "uint256[]", }, { internalType: "uint256", name: "maxExcessPercentage", type: "uint256", }, { internalType: "uint256", name: "minExcessPercentage", type: "uint256", }, ], internalType: "struct ClearingConfiguration", name: "clearingConfig", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getLendingPoolInfo", outputs: [ { components: [ { internalType: "address[]", name: "trancheAddresses", type: "address[]", }, { internalType: "address", name: "pendingPool", type: "address", }, ], internalType: "struct LendingPoolInfo", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, ], name: "isLendingPoolTranche", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "lendingPoolTrancheCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "lendingPoolTranches", outputs: [ { internalType: "address[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pendingPool", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "poolConfiguration", outputs: [ { components: [ { components: [ { internalType: "uint256", name: "ratio", type: "uint256", }, { internalType: "uint256", name: "interestRate", type: "uint256", }, { internalType: "uint256", name: "minDepositAmount", type: "uint256", }, { internalType: "uint256", name: "maxDepositAmount", type: "uint256", }, ], internalType: "struct TrancheConfig[]", name: "tranches", type: "tuple[]", }, { internalType: "address", name: "drawRecipient", type: "address", }, { internalType: "uint256", name: "desiredDrawAmount", type: "uint256", }, { internalType: "uint256", name: "trancheInterestChangeEpochDelay", type: "uint256", }, { internalType: "uint256", name: "targetExcessLiquidityPercentage", type: "uint256", }, { internalType: "uint256", name: "minimumExcessLiquidityPercentage", type: "uint256", }, ], internalType: "struct PoolConfiguration", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "uint256", name: "lossId", type: "uint256", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "repayLoss", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "repayOwedFunds", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "lossAmount", type: "uint256", }, { internalType: "bool", name: "doMintLossTokens", type: "bool", }, ], name: "reportLoss", outputs: [ { internalType: "uint256", name: "appliedLoss", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "stop", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, ], name: "trancheConfigurationDepositLimits", outputs: [ { internalType: "uint256", name: "minDepositAmount", type: "uint256", }, { internalType: "uint256", name: "maxDepositAmount", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, ], name: "trancheIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "transfer", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "transferFrom", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "desiredDrawAmount", type: "uint256", }, ], name: "updateDesiredDrawAmount", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "drawRecipient", type: "address", }, ], name: "updateDrawRecipient", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "uint256", name: "maximumDepositAmount", type: "uint256", }, ], name: "updateMaximumDepositAmount", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "uint256", name: "minimumDepositAmount", type: "uint256", }, ], name: "updateMinimumDepositAmount", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "minimumExcessLiquidityPercentage", type: "uint256", }, ], name: "updateMinimumExcessLiquidityPercentage", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "targetExcessLiquidityPercentage", type: "uint256", }, ], name: "updateTargetExcessLiquidityPercentage", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256[]", name: "ratios", type: "uint256[]", }, ], name: "updateTrancheDesiredRatios", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "tranche", type: "address", }, { internalType: "uint256", name: "interestRate", type: "uint256", }, ], name: "updateTrancheInterestRate", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "epochDelay", type: "uint256", }, ], name: "updateTrancheInterestRateChangeEpochDelay", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "user", type: "address", }, ], name: "userBalance", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "userOwedAmount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { components: [ { internalType: "uint256", name: "drawAmount", type: "uint256", }, { internalType: "uint256[]", name: "trancheDesiredRatios", type: "uint256[]", }, { internalType: "uint256", name: "maxExcessPercentage", type: "uint256", }, { internalType: "uint256", name: "minExcessPercentage", type: "uint256", }, ], internalType: "struct ClearingConfiguration", name: "clearingConfig", type: "tuple", }, ], name: "verifyClearingConfig", outputs: [], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "withdrawAmount", type: "uint256", }, { internalType: "address", name: "withdrawAddress", type: "address", }, ], name: "withdrawFirstLossCapital", outputs: [], stateMutability: "nonpayable", type: "function", }, ] as const; export class ILendingPoolAbi__factory { static readonly abi = _abi; static createInterface(): ILendingPoolAbiInterface { return new utils.Interface(_abi) as ILendingPoolAbiInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): ILendingPoolAbi { return new Contract(address, _abi, signerOrProvider) as ILendingPoolAbi; } }