{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ILendingPoolAddressesProvider","name":"addressesProvider","type":"address"},{"internalType":"contract IUniswapV2Router02","name":"uniswapRouter","type":"address"},{"internalType":"address","name":"wethAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"fromAsset","type":"address"},{"indexed":false,"internalType":"address","name":"toAsset","type":"address"},{"indexed":false,"internalType":"uint256","name":"fromAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receivedAmount","type":"uint256"}],"name":"Swapped","type":"event"},{"inputs":[],"name":"ADDRESSES_PROVIDER","outputs":[{"internalType":"contract ILendingPoolAddressesProvider","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FLASHLOAN_PREMIUM_TOTAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LENDING_POOL","outputs":[{"internalType":"contract ILendingPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SLIPPAGE_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE","outputs":[{"internalType":"contract IPriceOracleGetter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256[]","name":"premiums","type":"uint256[]"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"executeOperation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address","name":"reserveIn","type":"address"},{"internalType":"address","name":"reserveOut","type":"address"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"reserveIn","type":"address"},{"internalType":"address","name":"reserveOut","type":"address"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWitelistedAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"collateralAsset","type":"address"},{"internalType":"address","name":"debtAsset","type":"address"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"internalType":"uint256","name":"debtRepayAmount","type":"uint256"},{"internalType":"uint256","name":"rateMode","type":"uint256"},{"internalType":"bool","name":"useEthPath","type":"bool"},{"internalType":"bool","name":"useATokenAsFrom","type":"bool"},{"internalType":"bool","name":"useATokenAsTo","type":"bool"},{"internalType":"bool","name":"useFlashloan","type":"bool"}],"internalType":"struct AAutoRepay.RepayParams","name":"repayParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IBaseUniswapAdapter.PermitSignature","name":"permitSignature","type":"tuple"}],"name":"increaseHealthFactor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"removeFromWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minHealthFactor","type":"uint256"},{"internalType":"uint256","name":"maxHealthFactor","type":"uint256"}],"name":"setMinMaxHealthFactor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfos","outputs":[{"internalType":"uint256","name":"minHealthFactor","type":"uint256"},{"internalType":"uint256","name":"maxHealthFactor","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"whitelistAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"executeOperation(address[],uint256[],uint256[],address,bytes)":{"details":"Uses the received funds from the flash loan to repay a debt on the protocol on behalf of the user. Then pulls the collateral from the user and swaps it to the debt asset to repay the flash loan. The user should give this contract allowance to pull the ATokens in order to withdraw the underlying asset, swap it and repay the flash loan. Supports only one asset on the flash loan.","params":{"amounts":"Amount of the debt to be repaid","assets":"Address of debt asset","params":"Additional variadic field to include extra params. Expected parameters:   address collateralAsset Address of the reserve to be swapped   uint256 collateralAmount Amount of reserve to be swapped   uint256 rateMode Rate modes of the debt to be repaid   uint256 permitAmount Amount for the permit signature   uint256 deadline Deadline for the permit signature   uint8 v V param for the permit signature   bytes32 r R param for the permit signature   bytes32 s S param for the permit signature","premiums":"Fee of the flash loan"}},"getAmountsIn(uint256,address,address)":{"details":"Returns the minimum input asset amount required to buy the given output asset amount and the prices","params":{"amountOut":"Amount of reserveOut","reserveIn":"Address of the asset to be swap from","reserveOut":"Address of the asset to be swap to"},"returns":{"_0":"uint256 Amount in of the reserveIn","_1":"uint256 The price of in amount denominated in the reserveOut currency (18 decimals)","_2":"uint256 In amount of reserveIn value denominated in USD (8 decimals)","_3":"uint256 Out amount of reserveOut value denominated in USD (8 decimals)"}},"getAmountsOut(uint256,address,address)":{"details":"Given an input asset amount, returns the maximum output amount of the other asset and the prices","params":{"amountIn":"Amount of reserveIn","reserveIn":"Address of the asset to be swap from","reserveOut":"Address of the asset to be swap to"},"returns":{"_0":"uint256 Amount out of the reserveOut","_1":"uint256 The price of out amount denominated in the reserveIn currency (18 decimals)","_2":"uint256 In amount of reserveIn value denominated in USD (8 decimals)","_3":"uint256 Out amount of reserveOut value denominated in USD (8 decimals)"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"rescueTokens(address)":{"details":"Emergency rescue for token stucked on this contract, as failsafe mechanism - Funds should never remain in this contract more time than during transactions - Only callable by the owner*"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"contracts/AutoRepay.sol":"AAutoRepay"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"contracts/AutoRepay.sol":{"keccak256":"0xc35286c431d30ff084f26e3f05c8edbb9f2707d2d276e0986bcd0ad6a2cdbca4","license":"agpl-3.0","urls":["bzz-raw://8361bf2b6701b37af25ffd12a0dfed81b83e8843d3e706b04056fe5caed569d1","dweb:/ipfs/QmWRKTM6KsdSBNkkD6rm6gvFbSsFK1Urd5XEL7XNGK4p2K"]}},"version":1}