| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- //SPDX-License-Identifier: Unlicense
- pragma solidity ^0.7.6;
- pragma abicoder v2;
- import '@openzeppelin/contracts/token/ERC20/IERC20.sol';
- import '@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol';
- import './base/TransferHelper.sol';
- import './base/Address.sol';
- contract Flash {
- mapping(address => bool) private adminMap;
- mapping(address => mapping(address => uint256)) private approveMap;
- address private owner;
- constructor() {
- owner = msg.sender;
- adminMap[owner] = true;
- adminMap[address(this)] = true;
- }
- modifier onlyOwner() {
- require(msg.sender == owner || msg.sender == address(this), 'Not is owner.');
- _;
- }
- modifier onlyMaster() {
- require(adminMap[msg.sender], 'Not is master.');
- _;
- }
- function addAdmin(address _addr) public onlyOwner {
- adminMap[_addr] = true;
- }
- function approve(uint256 _volume, address _token, address _to) public onlyOwner {
- TransferHelper.safeApprove(_token, _to, _volume);
- approveMap[_to][_token] = _volume;
- }
- function withdraw(address _token) public onlyOwner {
- uint256 token_balance = IERC20(_token).balanceOf(address(this));
- TransferHelper.safeTransfer(_token, owner, token_balance);
- }
- struct FlashLoanParams {
- address pool;
- }
- function flashLoan(FlashLoanParams memory params) external pure returns (uint256 num){
- return 0;
- }
- }
|