Added event and code refactoring

This commit is contained in:
Thrilok Kumar 2020-09-15 04:07:02 +05:30
parent 09b011abe4
commit 136771e320

View File

@ -1,18 +1,8 @@
pragma solidity ^0.6.0; pragma solidity ^0.6.0;
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
// import files from common directory // import files from common directory
import { TokenInterface , MemoryInterface, EventInterface} from "../common/interfaces.sol"; import { TokenInterface , MemoryInterface, EventInterface} from "../common/interfaces.sol";
import { Stores } from "../common/stores.sol"; import { Stores } from "../common/stores.sol";
import { DSMath } from "../common/math.sol";
/**
* @title ConnectBasic.
* @dev Connector to deposit/withdraw assets.
*/
interface AccountInterface { interface AccountInterface {
function enable(address) external; function enable(address) external;
@ -23,9 +13,8 @@ interface DydxFlashInterface {
function initiateFlashLoan(address _token, uint256 _amount, bytes calldata data) external; function initiateFlashLoan(address _token, uint256 _amount, bytes calldata data) external;
} }
contract BasicResolver is Stores { contract FlashLoanResolver is Stores {
event LogDydxFlashLoan(address indexed token, uint256 tokenAmt);
using SafeERC20 for IERC20;
/** /**
* @dev Return ethereum address * @dev Return ethereum address
@ -39,7 +28,7 @@ contract BasicResolver is Stores {
} }
/** /**
* @dev Deposit Assets To Smart Account. * @dev Borrow Flashloan and Cast spells.
* @param token Token Address. * @param token Token Address.
* @param tokenAmt Token Amount. * @param tokenAmt Token Amount.
* @param data targets & data for cast. * @param data targets & data for cast.
@ -52,11 +41,17 @@ contract BasicResolver is Stores {
DydxFlashInterface(getDydxLoanAddr()).initiateFlashLoan(_token, tokenAmt, data); DydxFlashInterface(getDydxLoanAddr()).initiateFlashLoan(_token, tokenAmt, data);
AccountInterface(address(this)).disable(getDydxLoanAddr()); AccountInterface(address(this)).disable(getDydxLoanAddr());
emit LogDydxFlashLoan(token, tokenAmt);
bytes32 _eventCode = keccak256("LogDydxFlashLoan(address,uint256)");
bytes memory _eventParam = abi.encode(token, tokenAmt);
(uint _type, uint _id) = connectorID();
EventInterface(getEventAddr()).emitEvent(_type, _id, _eventCode, _eventParam);
} }
} }
contract ConnectBasic is BasicResolver { contract ConnectDydxFlashLoan is FlashLoanResolver {
string public constant name = "dydx-flashloan-v1"; string public constant name = "dydx-flashloan-v1";
} }