26 lines
841 B
Solidity
26 lines
841 B
Solidity
pragma solidity ^0.5.11;
|
|
import "./UniswapETH.sol";
|
|
|
|
contract UniswapETHFactory {
|
|
|
|
event NewExchange(address indexed token, address indexed exchange);
|
|
|
|
uint256 public tokenCount;
|
|
mapping (address => address) public getExchange;
|
|
mapping (address => address) public getToken;
|
|
mapping (uint256 => address) public getTokenWithId;
|
|
|
|
function createExchange(address token) public returns (address) {
|
|
require(token != address(0), 'INVALID_INPUT');
|
|
require(getExchange[token] == address(0), 'EXCHANGE_EXISTS');
|
|
UniswapETH exchange = new UniswapETH(token);
|
|
getExchange[token] = address(exchange);
|
|
getToken[address(exchange)] = token;
|
|
uint256 tokenId = tokenCount + 1;
|
|
tokenCount = tokenId;
|
|
getTokenWithId[tokenId] = token;
|
|
emit NewExchange(token, address(exchange));
|
|
return address(exchange);
|
|
}
|
|
}
|