From acd1b32277355a3a42e81da41866634962beb694 Mon Sep 17 00:00:00 2001 From: owen05 Date: Sat, 13 Feb 2021 11:33:52 +0800 Subject: [PATCH] add dodorecharge --- contracts/DODOToken/DODORecharge.sol | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 contracts/DODOToken/DODORecharge.sol diff --git a/contracts/DODOToken/DODORecharge.sol b/contracts/DODOToken/DODORecharge.sol new file mode 100644 index 0000000..f344536 --- /dev/null +++ b/contracts/DODOToken/DODORecharge.sol @@ -0,0 +1,40 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +pragma solidity ^0.6.9; + +import {SafeERC20} from "../lib/SafeERC20.sol"; +import {IERC20} from "../intf/IERC20.sol"; +import {InitializableOwnable} from "../lib/InitializableOwnable.sol"; +import {IDODOApproveProxy} from "../SmartRoute/DODOApproveProxy.sol"; + + +contract DODORecharge is InitializableOwnable { + using SafeERC20 for IERC20; + + address immutable _DODO_TOKEN_; + address immutable _DODO_APPROVE_PROXY_; + + event DeductionDODO(address user,uint256 _amount); + + constructor(address dodoAddress, address dodoApproveProxy) public { + _DODO_TOKEN_ = dodoAddress; + _DODO_APPROVE_PROXY_ = dodoApproveProxy; + } + + function deductionDODO(uint256 amount) external { + IDODOApproveProxy(_DODO_APPROVE_PROXY_).claimTokens(_DODO_TOKEN_, msg.sender, address(this), amount); + emit DeductionDODO(msg.sender, amount); + } + + // ============ Owner Functions ============ + function claimToken(address token) public onlyOwner { + uint256 balance = IERC20(token).balanceOf(address(this)); + require(balance>0,"no enough token can claim"); + IERC20(token).safeTransfer(_OWNER_, balance); + } +} \ No newline at end of file