[ { "inputs": [ { "internalType": "address", "name": "_borrowStratergy", "type": "address" }, { "internalType": "address", "name": "_underlying", "type": "address" }, { "internalType": "uint256", "name": "_debtLimit", "type": "uint256" }, { "internalType": "address", "name": "_borrowManager", "type": "address" }, { "internalType": "address", "name": "_treasury", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "BorrowManagerBorrowException", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxDeposit", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxRedeem", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxWithdraw", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InvalidZeroAddress", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "UnexpectedBorrowManager", "type": "error" }, { "inputs": [], "name": "UnexpectedCreditAccountException", "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": "borrowManager", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalborrowed", "type": "uint256" } ], "name": "Borrow", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LossIncurred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "borrowManager", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "repaidAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "profit", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "loss", "type": "uint256" } ], "name": "Repay", "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": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_borrowManager", "type": "address" } ], "name": "UpdateBorrowManager", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "changeBorrowRateStratergy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "debtLimit", "type": "uint256" } ], "name": "changeDebtLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "withdrawFee", "type": "uint256" } ], "name": "changeWithdrawFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "creditAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "creditLimit", "type": "uint256" } ], "name": "updateCreditLimit", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "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": "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": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "borrowCreditAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "borrowManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "borrowRateLatest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "borrowRateStratergy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timeDifference", "type": "uint256" } ], "name": "calcCumulativeIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "calcPoolUtilization", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "convertToAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "convertToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "creditAccounts", "outputs": [ { "internalType": "uint256", "name": "creditLimit", "type": "uint256" }, { "internalType": "uint256", "name": "borrowedAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cumulativeIndexLatest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "debtLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "ca", "type": "address" } ], "name": "getCreditAccount", "outputs": [ { "internalType": "uint256", "name": "creditLimit", "type": "uint256" }, { "internalType": "uint256", "name": "borrowedAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "interestDelta", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolTvl", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolTvlLatest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewDeposit", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "repaidAmount", "type": "uint256" }, { "internalType": "uint256", "name": "profit", "type": "uint256" }, { "internalType": "uint256", "name": "loss", "type": "uint256" } ], "name": "repayCreditAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_borrowManager", "type": "address" } ], "name": "setBorrowManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_borrowRateStratergy", "type": "address" } ], "name": "setBorrowRateStratergy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "caAddress", "type": "address" }, { "internalType": "uint256", "name": "creditLimit", "type": "uint256" } ], "name": "setCreditLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_debtLimit", "type": "uint256" } ], "name": "setDebtLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_withdrawalFee", "type": "uint256" } ], "name": "setWithdrawFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "timestampLatest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBorrowed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "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": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60e06040523480156200001157600080fd5b50604051620029ce380380620029ce83398101604081905262000034916200036c565b85828233806200005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000069816200012f565b506005620000788382620004ba565b506006620000878282620004ba565b5050506000806200009e836200014d60201b60201c565b9150915081620000b0576012620000b2565b805b60ff1660a05250506001600160a01b039081166080526007805460ff19169055600160085595861660c0525050600b80546001600160a01b0319908116968616969096179055600d92909255600a805485169184169190911790556b033b2e3c9fd0803ce8000000601255600980549093169116179055620005be565b600180546001600160a01b03191690556200014a8162000232565b50565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b03871691620001969162000586565b600060405180830381855afa9150503d8060008114620001d3576040519150601f19603f3d011682016040523d82523d6000602084013e620001d8565b606091505b5091509150818015620001ed57506020815110155b1562000225576000818060200190518101906200020b9190620005a4565b905060ff811162000223576001969095509350505050565b505b5060009485945092505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200029a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620002d2578181015183820152602001620002b8565b50506000910152565b600082601f830112620002ed57600080fd5b81516001600160401b03808211156200030a576200030a6200029f565b604051601f8301601f19908116603f011681019082821181831017156200033557620003356200029f565b816040528381528660208588010111156200034f57600080fd5b62000362846020830160208901620002b5565b9695505050505050565b600080600080600080600060e0888a0312156200038857600080fd5b620003938862000282565b9650620003a36020890162000282565b955060408801519450620003ba6060890162000282565b9350620003ca6080890162000282565b60a08901519093506001600160401b0380821115620003e857600080fd5b620003f68b838c01620002db565b935060c08a01519150808211156200040d57600080fd5b506200041c8a828b01620002db565b91505092959891949750929550565b600181811c908216806200044057607f821691505b6020821081036200046157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004b557600081815260208120601f850160051c81016020861015620004905750805b601f850160051c820191505b81811015620004b1578281556001016200049c565b5050505b505050565b81516001600160401b03811115620004d657620004d66200029f565b620004ee81620004e784546200042b565b8462000467565b602080601f8311600181146200052657600084156200050d5750858301515b600019600386901b1c1916600185901b178555620004b1565b600085815260208120601f198616915b82811015620005575788860151825594840194600190910190840162000536565b5085821015620005765787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516200059a818460208701620002b5565b9190910192915050565b600060208284031215620005b757600080fd5b5051919050565b60805160a05160c0516123bd62000611600039600081816105d701528181610a0401528181610bf4015281816118100152818161190a015261194801526000610bb8015260006104e701526123bd6000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80636f307dc3116101d3578063b460af9411610104578063d4c97bdc116100a2578063ddc6fee71161007c578063ddc6fee71461078b578063e30c397814610794578063ef8b30f7146106fd578063f2fde38b146107a557600080fd5b8063d4c97bdc14610736578063d905777e1461073f578063dd62ed3e1461075257600080fd5b8063c63d75b6116100de578063c63d75b614610527578063c6e6f592146106fd578063ce96cb7714610710578063cef29df21461072357600080fd5b8063b460af94146106c4578063b6ac642a146106d7578063ba087652146106ea57600080fd5b80638bc7e8c41161017157806395d89b411161014b57806395d89b41146106835780639d05866e1461068b578063a9059cbb1461069e578063b3d7f6b9146106b157600080fd5b80638bc7e8c4146106565780638da5cb5b1461065f57806394bf804d1461067057600080fd5b806379ba5097116101ad57806379ba50971461062a5780637d3bf3f314610632578063829057e31461063b57806389816e301461064e57600080fd5b80636f307dc3146105d257806370a08231146105f9578063715018a61461062257600080fd5b8063377df61f116102ad5780634cdad5061161024b5780635c975abb116102255780635c975abb1461059957806361d027b3146105a45780636415837b146105b75780636e553f65146105bf57600080fd5b80634cdad5061461056b5780634e9c63e61461057e5780635bb71e601461058657600080fd5b8063402d267d11610287578063402d267d1461052757806340e386911461053c57806349d5034d1461054f5780634c19386c1461056257600080fd5b8063377df61f146104dc57806338d52e0f146104e55780633b228b3e1461051f57600080fd5b806311eb9ed71161031a5780631c8fbb1d116102f45780631c8fbb1d1461048957806323b872dd1461049c57806327a9f149146104af578063313ce567146104c257600080fd5b806311eb9ed71461046357806318160ddd1461047857806318a1c4b61461048057600080fd5b806307a2d13a1161035657806307a2d13a146103e9578063084b0a97146103fc578063095ea7b31461042d5780630a28a4771461045057600080fd5b806301e1d1141461037d578063055ee9b51461039857806306fdde03146103d4575b600080fd5b6103856107b8565b6040519081526020015b60405180910390f35b6103bf6103a6366004611f43565b6013602052600090815260409020805460019091015482565b6040805192835260208301919091520161038f565b6103dc6107c7565b60405161038f9190611f84565b6103856103f7366004611fb7565b610859565b6103bf61040a366004611f43565b6001600160a01b0316600090815260136020526040902080546001909101549091565b61044061043b366004611fd0565b61086c565b604051901515815260200161038f565b61038561045e366004611fb7565b610884565b610476610471366004611fd0565b610899565b005b600454610385565b610385600d5481565b610476610497366004611f43565b610a86565b6104406104aa366004611ffc565b610b0c565b6104766104bd366004611f43565b610b32565b6104ca610bb0565b60405160ff909116815260200161038f565b610385600f5481565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161038f565b610385610bdc565b610385610535366004611f43565b5060001990565b61047661054a36600461203d565b610c67565b61047661055d366004611fd0565b610ec9565b610385600e5481565b610385610579366004611fb7565b610fcd565b610385610fe2565b610476610594366004611fb7565b611021565b60075460ff16610440565b600954610507906001600160a01b031681565b610385611065565b6103856105cd366004612078565b6110bf565b6105077f000000000000000000000000000000000000000000000000000000000000000081565b610385610607366004611f43565b6001600160a01b031660009081526002602052604090205490565b61047661111b565b61047661112f565b61038560125481565b600a54610507906001600160a01b031681565b610385611178565b610385600c5481565b6000546001600160a01b0316610507565b61038561067e366004612078565b61118f565b6103dc6111e0565b600b54610507906001600160a01b031681565b6104406106ac366004611fd0565b6111ef565b6103856106bf366004611fb7565b6111fd565b6103856106d23660046120a8565b61120a565b6104766106e5366004611fb7565b611281565b6103856106f83660046120a8565b6112d2565b61038561070b366004611fb7565b611338565b61038561071e366004611f43565b611345565b610385610731366004611fb7565b611383565b61038560105481565b61038561074d366004611f43565b6113e0565b6103856107603660046120ea565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61038560115481565b6001546001600160a01b0316610507565b6104766107b3366004611f43565b61140f565b60006107c2611178565b905090565b6060600580546107d690612118565b80601f016020809104026020016040519081016040528092919081815260200182805461080290612118565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b5050505050905090565b6000610866826000611480565b92915050565b60003361087a8185856114ba565b5060019392505050565b6000610866610892836114cc565b60016114f4565b6108a1611524565b6108a9611548565b3330806001600160a01b031663829057e36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090d9190612152565b6001600160a01b0316826001600160a01b03161461093e57604051632d9c339f60e01b815260040160405180910390fd5b6001600160a01b0384166000908152601360205260409020831580610972575080546001820154610970908690612185565b115b8061098b5750600d5484600e546109899190612185565b115b8061099c5750610999610bdc565b84115b156109ba576040516352832e2f60e11b815260040160405180910390fd5b6109c46000611572565b838160010160008282546109d89190612185565b9250508190555083600e60008282546109f19190612185565b90915550610a2b90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868661161e565b600e546040805186815260208101929092526001600160a01b0387169133917fc1561b330e73faa7d5d1ac03c968d8f359b0191ccdb9cc002cf7d8eb6ae038cb910160405180910390a3505050610a826001600855565b5050565b610a8e61167d565b806001600160a01b038116610ab65760405163f6b2911f60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040519081527f06ce031a54ea29646dca3ef0d4d2eb3561fadb3f078607934c0052ca93a0d74b906020015b60405180910390a15050565b600033610b1a8582856116aa565b610b25858585611722565b60019150505b9392505050565b610b3a61167d565b806001600160a01b038116610b625760405163f6b2911f60e01b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0384169081179091556040519081527f73c433d6051ed7d53b378e2ff6bbcd0ce68641404de691d357b67a1e721cab9190602001610b00565b60006107c2817f0000000000000000000000000000000000000000000000000000000000000000612198565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c291906121b1565b610c6f611524565b610c77611548565b3330806001600160a01b031663829057e36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb9190612152565b6001600160a01b0316826001600160a01b031614610d0c57604051632d9c339f60e01b815260040160405180910390fd5b6001600160a01b03861660009081526013602052604081206001810154909103610d495760405163282e719360e21b815260040160405180910390fd5b8415610d895784600f6000828254610d619190612185565b9091555050600954610d84906001600160a01b0316610d7f87611338565b611781565b610e2d565b8315610e2d576009546001600160a01b03166000610da686611338565b90506000610dc9836001600160a01b031660009081526002602052604090205490565b905080821115610e13577f808687aa5e9134596dd4fb3c6e28db644266e369674a5c9ca2646afadd97ed52610dfe82846121ca565b60405190815260200160405180910390a18091505b600954610e29906001600160a01b0316836117b7565b5050505b610e3684611572565b85600e6000828254610e4891906121ca565b9250508190555085816001016000828254610e6391906121ca565b909155505060408051878152602081018790529081018590526001600160a01b0388169033907fd6a068ae75f1025380f00b7a1476f705bae3c3644640cf62b857f8d02ace826e9060600160405180910390a3505050610ec36001600855565b50505050565b3330806001600160a01b031663829057e36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d9190612152565b6001600160a01b0316826001600160a01b031614610f5e57604051632d9c339f60e01b815260040160405180910390fd5b6001600160a01b03841660009081526013602052604090206001810154610f869085906117ed565b81556040518481526001600160a01b038616907fc6223c899c2d64650b9845b46f7db82c2d252ea6ef57a335c946ada0c779938e9060200160405180910390a25050505050565b6000610866610fdd836000611480565b6114cc565b600f546000901561101b57600f54610ff8610bdc565b600f5461100591906121ca565b611011906127106121dd565b6107c2919061220a565b50600090565b61102961167d565b600d8190556040518181527fea2a0f83800a29ead8af659f3c81dd9a1dcd4386562926c3618ffd156be4918e906020015b60405180910390a150565b6000806011544261107691906121ca565b90506b033b2e3c9fd0803ce80000006301e1338082601054600e5461109b91906121dd565b6110a591906121dd565b6110af919061220a565b6110b9919061220a565b91505090565b60006110c9611524565b6110d1611548565b816001600160a01b0381166110f95760405163f6b2911f60e01b815260040160405180910390fd5b61110284611338565b915061111033848685611803565b506108666001600855565b61112361167d565b61112d60006118c0565b565b60015433906001600160a01b0316811461116c5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b611175816118c0565b50565b6000611182611065565b600f546107c29190612185565b6000611199611524565b6111a1611548565b816001600160a01b0381166111c95760405163f6b2911f60e01b815260040160405180910390fd5b6111d2846111fd565b915061111033848487611803565b6060600680546107d690612118565b60003361087a818585611722565b6000610866826001611480565b6000611214611524565b61121c611548565b826001600160a01b0381166112445760405163f6b2911f60e01b815260040160405180910390fd5b600061124f86610884565b905061125c8160016114f4565b92506112753386868487611270828d6121ca565b6118d9565b5050610b2b6001600855565b61128961167d565b606481111561129c576064600c556112a2565b600c8190555b6040518181527fa893c9bec0c0a669586c71bc74ab35e8ca38d19858801d7377e51d3c386bc0fc9060200161105a565b60006112dc611524565b6112e4611548565b826001600160a01b03811661130c5760405163f6b2911f60e01b815260040160405180910390fd5b600061131786610fcd565b9050611324866000611480565b9250611275338686848a611270828a6121ca565b60006108668260006114f4565b6000610866610fdd611355610bdc565b61137e611377866001600160a01b031660009081526002602052604090205490565b6000611480565b6119f9565b6000806301e133808360105461139991906121dd565b6113a3919061220a565b6113b9906b033b2e3c9fd0803ce8000000612185565b90506b033b2e3c9fd0803ce8000000816012546113d691906121dd565b610b2b919061220a565b6001600160a01b0381166000908152600260205260408120546108669061137e611408610bdc565b60006114f4565b61141761167d565b600180546001600160a01b0383166001600160a01b031990911681179091556114486000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000610b2b61148d6107b8565b611498906001612185565b6114a46000600a612302565b6004546114b19190612185565b85919085611a08565b6114c78383836001611a59565b505050565b600c54600090612710906114e090826121ca565b6114ea90846121dd565b610866919061220a565b6000610b2b61150482600a612302565b6004546115119190612185565b6115196107b8565b6114b1906001612185565b60075460ff161561112d5760405163d93c066560e01b815260040160405180910390fd5b60026008540361156b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b8061157b611178565b61158591906121ca565b600f556011546115999061073190426121ca565b601255600b546001600160a01b0316638352f28d6115b5610fe2565b6040518263ffffffff1660e01b81526004016115d391815260200190565b602060405180830381865afa1580156115f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161491906121b1565b6010555042601155565b6040516001600160a01b038381166024830152604482018390526114c791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611b20565b6000546001600160a01b0316331461112d5760405163118cdaa760e01b8152336004820152602401611163565b6001600160a01b038381166000908152600360209081526040808320938616835292905220546000198114610ec3578181101561171357604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401611163565b610ec384848484036000611a59565b6001600160a01b03831661174c57604051634b637e8f60e11b815260006004820152602401611163565b6001600160a01b0382166117765760405163ec442f0560e01b815260006004820152602401611163565b6114c7838383611b83565b6001600160a01b0382166117ab5760405163ec442f0560e01b815260006004820152602401611163565b610a8260008383611b83565b6001600160a01b0382166117e157604051634b637e8f60e11b815260006004820152602401611163565b610a8282600083611b83565b60008183116117fc5781610b2b565b5090919050565b6118386001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611cad565b81600f600082825461184a9190612185565b9091555061185a90506000611572565b6118648382611781565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d784846040516118b2929190918252602082015260400190565b60405180910390a350505050565b600180546001600160a01b031916905561117581611ce6565b836001600160a01b0316866001600160a01b0316146118fd576118fd8487846116aa565b6119316001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868561161e565b801561197157600954611971906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168361161e565b61197b8184612185565b600f600082825461198c91906121ca565b9091555061199c905084836117b7565b6119a66000611572565b60408051848152602081018490526001600160a01b03808716929088169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4505050505050565b60008183106117fc5781610b2b565b600080611a16868686611d36565b9050611a2183611dfa565b8015611a3d575060008480611a3857611a386121f4565b868809115b15611a5057611a4d600182612185565b90505b95945050505050565b6001600160a01b038416611a835760405163e602df0560e01b815260006004820152602401611163565b6001600160a01b038316611aad57604051634a1406b160e11b815260006004820152602401611163565b6001600160a01b0380851660009081526003602090815260408083209387168352929052208290558015610ec357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516118b291815260200190565b6000611b356001600160a01b03841683611e27565b90508051600014158015611b5a575080806020019051810190611b589190612311565b155b156114c757604051635274afe760e01b81526001600160a01b0384166004820152602401611163565b6001600160a01b038316611bae578060046000828254611ba39190612185565b90915550611c209050565b6001600160a01b03831660009081526002602052604090205481811015611c015760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401611163565b6001600160a01b03841660009081526002602052604090209082900390555b6001600160a01b038216611c3c57600480548290039055611c5b565b6001600160a01b03821660009081526002602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ca091815260200190565b60405180910390a3505050565b6040516001600160a01b038481166024830152838116604483015260648201839052610ec39186918216906323b872dd9060840161164b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000838302816000198587098281108382030391505080600003611d6d57838281611d6357611d636121f4565b0492505050610b2b565b808411611d8d5760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60006002826003811115611e1057611e10612333565b611e1a9190612349565b60ff166001149050919050565b6060610b2b8383600084600080856001600160a01b03168486604051611e4d919061236b565b60006040518083038185875af1925050503d8060008114611e8a576040519150601f19603f3d011682016040523d82523d6000602084013e611e8f565b606091505b5091509150611e9f868383611ea9565b9695505050505050565b606082611ebe57611eb982611f05565b610b2b565b8151158015611ed557506001600160a01b0384163b155b15611efe57604051639996b31560e01b81526001600160a01b0385166004820152602401611163565b5080610b2b565b805115611f155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b038116811461117557600080fd5b600060208284031215611f5557600080fd5b8135610b2b81611f2e565b60005b83811015611f7b578181015183820152602001611f63565b50506000910152565b6020815260008251806020840152611fa3816040850160208701611f60565b601f01601f19169190910160400192915050565b600060208284031215611fc957600080fd5b5035919050565b60008060408385031215611fe357600080fd5b8235611fee81611f2e565b946020939093013593505050565b60008060006060848603121561201157600080fd5b833561201c81611f2e565b9250602084013561202c81611f2e565b929592945050506040919091013590565b6000806000806080858703121561205357600080fd5b843561205e81611f2e565b966020860135965060408601359560600135945092505050565b6000806040838503121561208b57600080fd5b82359150602083013561209d81611f2e565b809150509250929050565b6000806000606084860312156120bd57600080fd5b8335925060208401356120cf81611f2e565b915060408401356120df81611f2e565b809150509250925092565b600080604083850312156120fd57600080fd5b823561210881611f2e565b9150602083013561209d81611f2e565b600181811c9082168061212c57607f821691505b60208210810361214c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561216457600080fd5b8151610b2b81611f2e565b634e487b7160e01b600052601160045260246000fd5b808201808211156108665761086661216f565b60ff81811683821601908111156108665761086661216f565b6000602082840312156121c357600080fd5b5051919050565b818103818111156108665761086661216f565b80820281158282048414176108665761086661216f565b634e487b7160e01b600052601260045260246000fd5b600082612219576122196121f4565b500490565b600181815b8085111561225957816000190482111561223f5761223f61216f565b8085161561224c57918102915b93841c9390800290612223565b509250929050565b60008261227057506001610866565b8161227d57506000610866565b8160018114612293576002811461229d576122b9565b6001915050610866565b60ff8411156122ae576122ae61216f565b50506001821b610866565b5060208310610133831016604e8410600b84101617156122dc575081810a610866565b6122e6838361221e565b80600019048211156122fa576122fa61216f565b029392505050565b6000610b2b60ff841683612261565b60006020828403121561232357600080fd5b81518015158114610b2b57600080fd5b634e487b7160e01b600052602160045260246000fd5b600060ff83168061235c5761235c6121f4565b8060ff84160691505092915050565b6000825161237d818460208701611f60565b919091019291505056fea2646970667358221220bda18feec5be6a7e4e58c39ba82067b55b0c63f7955124a5b6d252ba22840d2164736f6c6343000814003300000000000000000000000084bf45eb55beca3a2400e560e55c43ebaae7bc97000000000000000000000000fff9976782d46cc05630d1f6ebab18b2324d6b140000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000456242d30dc1e6ee5831dec572d503709fc04776000000000000000000000000235755b2e4315f1de0787c8057ee9ed7ac0256e900000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000009616c6c6f6357455448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066157455448380000000000000000000000000000000000000000000000000000
0x00000000000000000000000084bf45eb55beca3a2400e560e55c43ebaae7bc97000000000000000000000000fff9976782d46cc05630d1f6ebab18b2324d6b140000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000456242d30dc1e6ee5831dec572d503709fc04776000000000000000000000000235755b2e4315f1de0787c8057ee9ed7ac0256e900000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000009616c6c6f6357455448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066157455448380000000000000000000000000000000000000000000000000000
----Decoded View------------Arg [0] : _borrowStratergy (address): 0x84bf45eB55BeCa3a2400e560e55c43eBaae7bc97Arg [1] : _underlying (address): 0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14Arg [2] : _debtLimit (uint256): 8000000000000000000Arg [3] : _borrowManager (address): 0x456242d30dC1E6eE5831dec572d503709fC04776Arg [4] : _treasury (address): 0x235755b2e4315F1de0787C8057Ee9Ed7ac0256E9Arg [5] : _name (string): allocWETHArg [6] : _symbol (string): aWETH8
----Encoded View------------Arg [0] : 0x00000000000000000000000084bf45eb55beca3a2400e560e55c43ebaae7bc97Arg [1] : 0x000000000000000000000000fff9976782d46cc05630d1f6ebab18b2324d6b14Arg [2] : 0x0000000000000000000000000000000000000000000000006f05b59d3b200000Arg [3] : 0x000000000000000000000000456242d30dc1e6ee5831dec572d503709fc04776Arg [4] : 0x000000000000000000000000235755b2e4315f1de0787c8057ee9ed7ac0256e9Arg [5] : 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009616c6c6f63574554480000000000000000000000000000000000000000000000Arg [6] : 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000066157455448380000000000000000000000000000000000000000000000000000