{
  "_format": "hh-sol-artifact-1",
  "contractName": "FlashloanLender",
  "sourceName": "contracts/FlashloanLender.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_joetroller",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "flashFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract ERC3156FlashBorrowerInterface",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "flashLoan",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "joetroller",
      "outputs": [
        {
          "internalType": "address payable",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "maxFlashLoan",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract JToken[]",
          "name": "jTokens",
          "type": "address[]"
        }
      ],
      "name": "removeUnderlyingMapping",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "underlyingToJToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract JToken[]",
          "name": "jTokens",
          "type": "address[]"
        }
      ],
      "name": "updateUnderlyingMapping",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162000cfd38038062000cfd833981810160405260408110156200003757600080fd5b508051602090910151600180546001600160a01b038085166001600160a01b0319928316179092556002805492841692909116919091179055620000836001600160e01b036200008b16565b5050620004c9565b6001546040805163b0772d0b60e01b815290516060926001600160a01b03169163b0772d0b916004808301926000929190829003018186803b158015620000d157600080fd5b505afa158015620000e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200011057600080fd5b81019080805160405193929190846401000000008211156200013157600080fd5b9083019060208201858111156200014757600080fd5b82518660208202830111640100000000821117156200016557600080fd5b82525081516020918201928201910280838360005b83811015620001945781810151838201526020016200017a565b50505050919091016040525050825192935060009150505b81811015620003d9576000838281518110620001c457fe5b6020026020010151905062000328816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200020c57600080fd5b505afa15801562000221573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200024b57600080fd5b81019080805160405193929190846401000000008211156200026c57600080fd5b9083019060208201858111156200028257600080fd5b82516401000000008111828201881017156200029d57600080fd5b82525081516020918201929091019080838360005b83811015620002cc578181015183820152602001620002b2565b50505050905090810190601f168015620002fa5780820380516001836020036101000a031916815260200191505b506040818101905260058152640c6e48aa8960db1b60208201529250506001600160e01b03620003de169050565b15620003355750620003d0565b6000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037157600080fd5b505afa15801562000386573d6000803e3d6000fd5b505050506040513d60208110156200039d57600080fd5b50516001600160a01b0390811660009081526020819052604090208054919093166001600160a01b031990911617909155505b600101620001ac565b505050565b6000816040516020018082805190602001908083835b60208310620004155780518252601f199092019160209182019101620003f4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310620004855780518252601f19909201916020918201910162000464565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b61082480620004d96000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639bb259381161005b5780639bb2593814610195578063d97af4f9146101bb578063d9d98ce41461022b578063df3e99351461025757610088565b80635cffe9de1461008d578063613255ab146101315780636330533c146101695780638da5cb5b1461018d575b600080fd5b61011d600480360360808110156100a357600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156100de57600080fd5b8201836020820111156100f057600080fd5b8035906020019184600183028401116401000000008311171561011257600080fd5b5090925090506102c7565b604080519115158252519081900360200190f35b6101576004803603602081101561014757600080fd5b50356001600160a01b03166103ea565b60408051918252519081900360200190f35b61017161047d565b604080516001600160a01b039092168252519081900360200190f35b61017161048c565b610171600480360360208110156101ab57600080fd5b50356001600160a01b031661049b565b61011d600480360360208110156101d157600080fd5b8101906020810181356401000000008111156101ec57600080fd5b8201836020820111156101fe57600080fd5b8035906020019184602083028401116401000000008311171561022057600080fd5b5090925090506104b6565b6101576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105da565b61011d6004803603602081101561026d57600080fd5b81019060208101813564010000000081111561028857600080fd5b82018360208201111561029a57600080fd5b803590602001918460208302840111640100000000831117156102bc57600080fd5b5090925090506106ab565b6001600160a01b03808516600090815260208190526040812054909116806103205760405162461bcd60e51b81526004018080602001828103825260348152602001806107bc6034913960400191505060405180910390fd5b604051632e7ff4ef60e11b81526001600160a01b03888116600483019081523360248401819052604484018990526080606485019081526084850188905292851693635cffe9de938c938b928b928b929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156103b357600080fd5b505af11580156103c7573d6000803e3d6000fd5b505050506040513d60208110156103dd57600080fd5b5051979650505050505050565b6001600160a01b0380821660009081526020819052604081205490911681811561047657816001600160a01b031663242c127c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561044757600080fd5b505afa15801561045b573d6000803e3d6000fd5b505050506040513d602081101561047157600080fd5b505190505b9392505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000602081905290815260409020546001600160a01b031681565b6002546000906001600160a01b03163314610504576040805162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b604482015290519081900360640190fd5b8160005b818110156105cf57600085858381811061051e57fe5b905060200201356001600160a01b031690506000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561056b57600080fd5b505afa15801561057f573d6000803e3d6000fd5b505050506040513d602081101561059557600080fd5b50516001600160a01b0390811660009081526020819052604090208054919093166001600160a01b03199091161790915550600101610508565b506001949350505050565b6001600160a01b03808316600090815260208190526040812054909116806106335760405162461bcd60e51b81526004018080602001828103825260348152602001806107bc6034913960400191505060405180910390fd5b806001600160a01b031663a7af467a846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561067757600080fd5b505afa15801561068b573d6000803e3d6000fd5b505050506040513d60208110156106a157600080fd5b5051949350505050565b6002546000906001600160a01b031633146106f9576040805162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b604482015290519081900360640190fd5b8160005b818110156105cf57600085858381811061071357fe5b905060200201356001600160a01b031690506000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561076057600080fd5b505afa158015610774573d6000803e3d6000fd5b505050506040513d602081101561078a57600080fd5b50516001600160a01b0316600090815260208190526040902080546001600160a01b031916905550506001016106fd56fe63616e6e6f742066696e64206a546f6b656e206f66207468697320756e6465726c79696e6720696e20746865206d617070696e67a265627a7a7231582012ca364b54f3e33c3eb011207b9979109114de10b990f30f37735f8e6114972864736f6c63430005100032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80639bb259381161005b5780639bb2593814610195578063d97af4f9146101bb578063d9d98ce41461022b578063df3e99351461025757610088565b80635cffe9de1461008d578063613255ab146101315780636330533c146101695780638da5cb5b1461018d575b600080fd5b61011d600480360360808110156100a357600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156100de57600080fd5b8201836020820111156100f057600080fd5b8035906020019184600183028401116401000000008311171561011257600080fd5b5090925090506102c7565b604080519115158252519081900360200190f35b6101576004803603602081101561014757600080fd5b50356001600160a01b03166103ea565b60408051918252519081900360200190f35b61017161047d565b604080516001600160a01b039092168252519081900360200190f35b61017161048c565b610171600480360360208110156101ab57600080fd5b50356001600160a01b031661049b565b61011d600480360360208110156101d157600080fd5b8101906020810181356401000000008111156101ec57600080fd5b8201836020820111156101fe57600080fd5b8035906020019184602083028401116401000000008311171561022057600080fd5b5090925090506104b6565b6101576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105da565b61011d6004803603602081101561026d57600080fd5b81019060208101813564010000000081111561028857600080fd5b82018360208201111561029a57600080fd5b803590602001918460208302840111640100000000831117156102bc57600080fd5b5090925090506106ab565b6001600160a01b03808516600090815260208190526040812054909116806103205760405162461bcd60e51b81526004018080602001828103825260348152602001806107bc6034913960400191505060405180910390fd5b604051632e7ff4ef60e11b81526001600160a01b03888116600483019081523360248401819052604484018990526080606485019081526084850188905292851693635cffe9de938c938b928b928b929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156103b357600080fd5b505af11580156103c7573d6000803e3d6000fd5b505050506040513d60208110156103dd57600080fd5b5051979650505050505050565b6001600160a01b0380821660009081526020819052604081205490911681811561047657816001600160a01b031663242c127c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561044757600080fd5b505afa15801561045b573d6000803e3d6000fd5b505050506040513d602081101561047157600080fd5b505190505b9392505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000602081905290815260409020546001600160a01b031681565b6002546000906001600160a01b03163314610504576040805162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b604482015290519081900360640190fd5b8160005b818110156105cf57600085858381811061051e57fe5b905060200201356001600160a01b031690506000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561056b57600080fd5b505afa15801561057f573d6000803e3d6000fd5b505050506040513d602081101561059557600080fd5b50516001600160a01b0390811660009081526020819052604090208054919093166001600160a01b03199091161790915550600101610508565b506001949350505050565b6001600160a01b03808316600090815260208190526040812054909116806106335760405162461bcd60e51b81526004018080602001828103825260348152602001806107bc6034913960400191505060405180910390fd5b806001600160a01b031663a7af467a846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561067757600080fd5b505afa15801561068b573d6000803e3d6000fd5b505050506040513d60208110156106a157600080fd5b5051949350505050565b6002546000906001600160a01b031633146106f9576040805162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b604482015290519081900360640190fd5b8160005b818110156105cf57600085858381811061071357fe5b905060200201356001600160a01b031690506000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561076057600080fd5b505afa158015610774573d6000803e3d6000fd5b505050506040513d602081101561078a57600080fd5b50516001600160a01b0316600090815260208190526040902080546001600160a01b031916905550506001016106fd56fe63616e6e6f742066696e64206a546f6b656e206f66207468697320756e6465726c79696e6720696e20746865206d617070696e67a265627a7a7231582012ca364b54f3e33c3eb011207b9979109114de10b990f30f37735f8e6114972864736f6c63430005100032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
