added uniswap in bin

This commit is contained in:
Samyak Jain 2019-07-01 05:48:22 +05:30
parent a6e57c359a
commit 884e73ef45

34
contracts/Bin/uni.sol Normal file
View File

@ -0,0 +1,34 @@
pragma solidity ^0.5.7;
interface UniswapExchange {
function ethToTokenSwapInput(uint minTokens, uint deadline) external payable returns (uint tokenBought);
function tokenToEthSwapInput(uint tokenSold, uint minEth, uint deadline) external returns (uint ethBought);
}
interface TokenInterface {
function transfer(address, uint) external returns (bool);
function approve(address, uint) external;
function transferFrom(address, address, uint) external returns (bool);
}
contract Swap {
address public daiAddr = 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359;
address public daiExchange = 0x09cabEC1eAd1c0Ba254B09efb3EE13841712bE14;
function ethToDai() public payable {
uint destAmt = UniswapExchange(daiExchange).ethToTokenSwapInput.value(msg.value)(1, block.timestamp + 1);
require(TokenInterface(daiAddr).transfer(msg.sender, destAmt));
}
function daiToEth(uint daiAmt) public {
require(TokenInterface(daiAddr).transferFrom(msg.sender, address(this), daiAmt));
TokenInterface(daiAddr).approve(daiExchange, daiAmt);
uint destAmt = UniswapExchange(daiExchange).tokenToEthSwapInput(daiAmt, 1, block.timestamp + 1);
msg.sender.transfer(destAmt);
}
function() external payable {}
}