More Info
Private Name Tags
ContractCreator
Latest 24 from a total of 24 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Token | 10892371 | 1559 days ago | IN | 0 ETH | 0.00430548 | ||||
Claim Admin | 10892340 | 1560 days ago | IN | 0 ETH | 0.00210447 | ||||
Transfer Admin | 10879259 | 1562 days ago | IN | 0 ETH | 0.0322063 | ||||
Claim Admin | 10879246 | 1562 days ago | IN | 0 ETH | 0.016791 | ||||
Withdraw Ether | 7398619 | 2110 days ago | IN | 0 ETH | 0.00050299 | ||||
Withdraw Ether | 7398603 | 2110 days ago | IN | 0 ETH | 0.00049915 | ||||
Withdraw Ether | 7369056 | 2114 days ago | IN | 0 ETH | 0.00050011 | ||||
Withdraw Ether | 7369046 | 2114 days ago | IN | 0 ETH | 0.00050011 | ||||
Withdraw Ether | 7369023 | 2114 days ago | IN | 0 ETH | 0.00049915 | ||||
Withdraw Ether | 7322333 | 2121 days ago | IN | 0 ETH | 0.00033301 | ||||
Withdraw Ether | 7322324 | 2121 days ago | IN | 0 ETH | 0.00033341 | ||||
List Token | 7295324 | 2126 days ago | IN | 0 ETH | 0.00101503 | ||||
Set Fee | 7212016 | 2144 days ago | IN | 0 ETH | 0.00043322 | ||||
Set Fee | 7142904 | 2159 days ago | IN | 0 ETH | 0.00014129 | ||||
List Token | 7100057 | 2167 days ago | IN | 0 ETH | 0.00094928 | ||||
Transfer Admin | 7099813 | 2167 days ago | IN | 0 ETH | 0.00045457 | ||||
Set Kyber Networ... | 7099772 | 2167 days ago | IN | 0 ETH | 0.00030099 | ||||
Add Alerter | 7099762 | 2167 days ago | IN | 0 ETH | 0.00086926 | ||||
Set Kyber Networ... | 7098382 | 2167 days ago | IN | 0 ETH | 0.00030099 | ||||
Trade | 7098243 | 2167 days ago | IN | 0 ETH | 0.00081473 | ||||
Trade | 7098224 | 2167 days ago | IN | 0 ETH | 0.00042731 | ||||
Trade | 7098203 | 2167 days ago | IN | 0.01 ETH | 0.00106042 | ||||
Set Kyber Networ... | 7098195 | 2167 days ago | IN | 0 ETH | 0.00030099 | ||||
List Token | 7098192 | 2167 days ago | IN | 0 ETH | 0.00094928 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
7398807 | 2110 days ago | 0.03499756 ETH | ||||
7398807 | 2110 days ago | 0.03508527 ETH | ||||
7398737 | 2110 days ago | 0.1668146 ETH | ||||
7398737 | 2110 days ago | 0.16723268 ETH | ||||
7398619 | 2110 days ago | 87.7395731 ETH | ||||
7398609 | 2110 days ago | 0.149625 ETH | ||||
7398609 | 2110 days ago | 0.15 ETH | ||||
7398603 | 2110 days ago | 0.01 ETH | ||||
7398530 | 2110 days ago | 10.9725 ETH | ||||
7398530 | 2110 days ago | 11 ETH | ||||
7398520 | 2110 days ago | 1.40269342 ETH | ||||
7398520 | 2110 days ago | 1.40620894 ETH | ||||
7398448 | 2110 days ago | 0.8961212 ETH | ||||
7398448 | 2110 days ago | 0.89836712 ETH | ||||
7398445 | 2110 days ago | 2.29699882 ETH | ||||
7398445 | 2110 days ago | 2.30275571 ETH | ||||
7398444 | 2110 days ago | 0.63209029 ETH | ||||
7398444 | 2110 days ago | 0.63367448 ETH | ||||
7398411 | 2110 days ago | 0.00351097 ETH | ||||
7398411 | 2110 days ago | 0.00351977 ETH | ||||
7398409 | 2110 days ago | 1.2290448 ETH | ||||
7398409 | 2110 days ago | 1.23212511 ETH | ||||
7398142 | 2110 days ago | 2.99993856 ETH | ||||
7398142 | 2110 days ago | 3.0074572 ETH | ||||
7398136 | 2110 days ago | 0.07199285 ETH |
Loading...
Loading
Contract Name:
KyberUniswapReserve
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-01-20 */ pragma solidity 0.4.18; // File: contracts/ERC20Interface.sol // https://github.com/ethereum/EIPs/issues/20 interface ERC20 { function totalSupply() public view returns (uint supply); function balanceOf(address _owner) public view returns (uint balance); function transfer(address _to, uint _value) public returns (bool success); function transferFrom(address _from, address _to, uint _value) public returns (bool success); function approve(address _spender, uint _value) public returns (bool success); function allowance(address _owner, address _spender) public view returns (uint remaining); function decimals() public view returns(uint digits); event Approval(address indexed _owner, address indexed _spender, uint _value); } // File: contracts/PermissionGroups.sol contract PermissionGroups { address public admin; address public pendingAdmin; mapping(address=>bool) internal operators; mapping(address=>bool) internal alerters; address[] internal operatorsGroup; address[] internal alertersGroup; uint constant internal MAX_GROUP_SIZE = 50; function PermissionGroups() public { admin = msg.sender; } modifier onlyAdmin() { require(msg.sender == admin); _; } modifier onlyOperator() { require(operators[msg.sender]); _; } modifier onlyAlerter() { require(alerters[msg.sender]); _; } function getOperators () external view returns(address[]) { return operatorsGroup; } function getAlerters () external view returns(address[]) { return alertersGroup; } event TransferAdminPending(address pendingAdmin); /** * @dev Allows the current admin to set the pendingAdmin address. * @param newAdmin The address to transfer ownership to. */ function transferAdmin(address newAdmin) public onlyAdmin { require(newAdmin != address(0)); TransferAdminPending(pendingAdmin); pendingAdmin = newAdmin; } /** * @dev Allows the current admin to set the admin in one tx. Useful initial deployment. * @param newAdmin The address to transfer ownership to. */ function transferAdminQuickly(address newAdmin) public onlyAdmin { require(newAdmin != address(0)); TransferAdminPending(newAdmin); AdminClaimed(newAdmin, admin); admin = newAdmin; } event AdminClaimed( address newAdmin, address previousAdmin); /** * @dev Allows the pendingAdmin address to finalize the change admin process. */ function claimAdmin() public { require(pendingAdmin == msg.sender); AdminClaimed(pendingAdmin, admin); admin = pendingAdmin; pendingAdmin = address(0); } event AlerterAdded (address newAlerter, bool isAdd); function addAlerter(address newAlerter) public onlyAdmin { require(!alerters[newAlerter]); // prevent duplicates. require(alertersGroup.length < MAX_GROUP_SIZE); AlerterAdded(newAlerter, true); alerters[newAlerter] = true; alertersGroup.push(newAlerter); } function removeAlerter (address alerter) public onlyAdmin { require(alerters[alerter]); alerters[alerter] = false; for (uint i = 0; i < alertersGroup.length; ++i) { if (alertersGroup[i] == alerter) { alertersGroup[i] = alertersGroup[alertersGroup.length - 1]; alertersGroup.length--; AlerterAdded(alerter, false); break; } } } event OperatorAdded(address newOperator, bool isAdd); function addOperator(address newOperator) public onlyAdmin { require(!operators[newOperator]); // prevent duplicates. require(operatorsGroup.length < MAX_GROUP_SIZE); OperatorAdded(newOperator, true); operators[newOperator] = true; operatorsGroup.push(newOperator); } function removeOperator (address operator) public onlyAdmin { require(operators[operator]); operators[operator] = false; for (uint i = 0; i < operatorsGroup.length; ++i) { if (operatorsGroup[i] == operator) { operatorsGroup[i] = operatorsGroup[operatorsGroup.length - 1]; operatorsGroup.length -= 1; OperatorAdded(operator, false); break; } } } } // File: contracts/Withdrawable.sol /** * @title Contracts that should be able to recover tokens or ethers * @author Ilan Doron * @dev This allows to recover any tokens or Ethers received in a contract. * This will prevent any accidental loss of tokens. */ contract Withdrawable is PermissionGroups { event TokenWithdraw(ERC20 token, uint amount, address sendTo); /** * @dev Withdraw all ERC20 compatible tokens * @param token ERC20 The address of the token contract */ function withdrawToken(ERC20 token, uint amount, address sendTo) external onlyAdmin { require(token.transfer(sendTo, amount)); TokenWithdraw(token, amount, sendTo); } event EtherWithdraw(uint amount, address sendTo); /** * @dev Withdraw Ethers */ function withdrawEther(uint amount, address sendTo) external onlyAdmin { sendTo.transfer(amount); EtherWithdraw(amount, sendTo); } } // File: contracts/KyberReserveInterface.sol /// @title Kyber Reserve contract interface KyberReserveInterface { function trade( ERC20 srcToken, uint srcAmount, ERC20 destToken, address destAddress, uint conversionRate, bool validate ) public payable returns(bool); function getConversionRate(ERC20 src, ERC20 dest, uint srcQty, uint blockNumber) public view returns(uint); } // File: contracts/Utils.sol /// @title Kyber constants contract contract Utils { ERC20 constant internal ETH_TOKEN_ADDRESS = ERC20(0x00eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee); uint constant internal PRECISION = (10**18); uint constant internal MAX_QTY = (10**28); // 10B tokens uint constant internal MAX_RATE = (PRECISION * 10**6); // up to 1M tokens per ETH uint constant internal MAX_DECIMALS = 18; uint constant internal ETH_DECIMALS = 18; mapping(address=>uint) internal decimals; function setDecimals(ERC20 token) internal { if (token == ETH_TOKEN_ADDRESS) decimals[token] = ETH_DECIMALS; else decimals[token] = token.decimals(); } function getDecimals(ERC20 token) internal view returns(uint) { if (token == ETH_TOKEN_ADDRESS) return ETH_DECIMALS; // save storage access uint tokenDecimals = decimals[token]; // technically, there might be token with decimals 0 // moreover, very possible that old tokens have decimals 0 // these tokens will just have higher gas fees. if(tokenDecimals == 0) return token.decimals(); return tokenDecimals; } function calcDstQty(uint srcQty, uint srcDecimals, uint dstDecimals, uint rate) internal pure returns(uint) { require(srcQty <= MAX_QTY); require(rate <= MAX_RATE); if (dstDecimals >= srcDecimals) { require((dstDecimals - srcDecimals) <= MAX_DECIMALS); return (srcQty * rate * (10**(dstDecimals - srcDecimals))) / PRECISION; } else { require((srcDecimals - dstDecimals) <= MAX_DECIMALS); return (srcQty * rate) / (PRECISION * (10**(srcDecimals - dstDecimals))); } } function calcSrcQty(uint dstQty, uint srcDecimals, uint dstDecimals, uint rate) internal pure returns(uint) { require(dstQty <= MAX_QTY); require(rate <= MAX_RATE); //source quantity is rounded up. to avoid dest quantity being too low. uint numerator; uint denominator; if (srcDecimals >= dstDecimals) { require((srcDecimals - dstDecimals) <= MAX_DECIMALS); numerator = (PRECISION * dstQty * (10**(srcDecimals - dstDecimals))); denominator = rate; } else { require((dstDecimals - srcDecimals) <= MAX_DECIMALS); numerator = (PRECISION * dstQty); denominator = (rate * (10**(dstDecimals - srcDecimals))); } return (numerator + denominator - 1) / denominator; //avoid rounding down errors } } // File: contracts/Utils2.sol contract Utils2 is Utils { /// @dev get the balance of a user. /// @param token The token type /// @return The balance function getBalance(ERC20 token, address user) public view returns(uint) { if (token == ETH_TOKEN_ADDRESS) return user.balance; else return token.balanceOf(user); } function getDecimalsSafe(ERC20 token) internal returns(uint) { if (decimals[token] == 0) { setDecimals(token); } return decimals[token]; } function calcDestAmount(ERC20 src, ERC20 dest, uint srcAmount, uint rate) internal view returns(uint) { return calcDstQty(srcAmount, getDecimals(src), getDecimals(dest), rate); } function calcSrcAmount(ERC20 src, ERC20 dest, uint destAmount, uint rate) internal view returns(uint) { return calcSrcQty(destAmount, getDecimals(src), getDecimals(dest), rate); } function calcRateFromQty(uint srcAmount, uint destAmount, uint srcDecimals, uint dstDecimals) internal pure returns(uint) { require(srcAmount <= MAX_QTY); require(destAmount <= MAX_QTY); if (dstDecimals >= srcDecimals) { require((dstDecimals - srcDecimals) <= MAX_DECIMALS); return (destAmount * PRECISION / ((10 ** (dstDecimals - srcDecimals)) * srcAmount)); } else { require((srcDecimals - dstDecimals) <= MAX_DECIMALS); return (destAmount * PRECISION * (10 ** (srcDecimals - dstDecimals)) / srcAmount); } } } // File: contracts/uniswap/KyberUniswapReserve.sol interface UniswapExchange { function ethToTokenSwapInput( uint256 min_tokens, uint256 deadline ) external payable returns (uint256 tokens_bought); function tokenToEthSwapInput( uint256 tokens_sold, uint256 min_eth, uint256 deadline ) external returns (uint256 eth_bought); function getEthToTokenInputPrice( uint256 eth_sold ) external view returns (uint256 tokens_bought); function getTokenToEthInputPrice( uint256 tokens_sold ) external view returns (uint256 eth_bought); } interface UniswapFactory { function getExchange(address token) external view returns (address exchange); } contract KyberUniswapReserve is KyberReserveInterface, Withdrawable, Utils2 { // Parts per 10000 uint public constant DEFAULT_FEE_BPS = 25; UniswapFactory public uniswapFactory; address public kyberNetwork; uint public feeBps = DEFAULT_FEE_BPS; // Uniswap exchange contract for every listed token // token -> exchange mapping (address => address) public tokenExchange; bool public tradeEnabled = true; /** Constructor */ function KyberUniswapReserve( UniswapFactory _uniswapFactory, address _admin, address _kyberNetwork ) public { require(address(_uniswapFactory) != 0); require(_admin != 0); require(_kyberNetwork != 0); uniswapFactory = _uniswapFactory; admin = _admin; kyberNetwork = _kyberNetwork; } function() public payable { // anyone can deposit ether } /** Returns dest quantity / source quantity. */ function getConversionRate( ERC20 src, ERC20 dest, uint srcQty, uint blockNumber ) public view returns(uint) { // This makes the UNUSED warning go away. blockNumber; require(isValidTokens(src, dest)); if (!tradeEnabled) return 0; ERC20 token; if (src == ETH_TOKEN_ADDRESS) { token = dest; } else if (dest == ETH_TOKEN_ADDRESS) { token = src; } else { // Should never arrive here - isValidTokens requires one side to be ETH revert(); } UniswapExchange exchange = UniswapExchange(tokenExchange[token]); uint convertedQuantity; if (src == ETH_TOKEN_ADDRESS) { uint quantity = srcQty * (10000 - feeBps) / 10000; convertedQuantity = exchange.getEthToTokenInputPrice(quantity); } else { convertedQuantity = exchange.getTokenToEthInputPrice(srcQty); convertedQuantity = convertedQuantity * (10000 - feeBps) / 10000; } return calcRateFromQty( srcQty, /* srcAmount */ convertedQuantity, /* destAmount */ getDecimals(src), /* srcDecimals */ getDecimals(dest) /* dstDecimals */ ); } event TradeExecute( address indexed sender, address src, uint srcAmount, address destToken, uint destAmount, address destAddress ); /** conversionRate: expected conversion rate should be >= this value. */ function trade( ERC20 srcToken, uint srcAmount, ERC20 destToken, address destAddress, uint conversionRate, bool validate ) public payable returns(bool) { // Not using this variable that is part of the interface. validate; require(tradeEnabled); require(msg.sender == kyberNetwork); require(isValidTokens(srcToken, destToken)); uint expectedConversionRate = getConversionRate( srcToken, destToken, srcAmount, 0 /* blockNumber */ ); require(expectedConversionRate >= conversionRate); uint destAmount; UniswapExchange exchange; if (srcToken == ETH_TOKEN_ADDRESS) { require(srcAmount == msg.value); // Fees in ETH uint quantity = srcAmount * (10000 - feeBps) / 10000; exchange = UniswapExchange(tokenExchange[destToken]); destAmount = exchange.ethToTokenSwapInput.value(quantity)( 1, /* min_tokens: uniswap requires it to be > 0 */ 2 ** 255 /* deadline */ ); require(destToken.transfer(destAddress, destAmount)); } else { require(msg.value == 0); require(srcToken.transferFrom(msg.sender, address(this), srcAmount)); exchange = UniswapExchange(tokenExchange[srcToken]); destAmount = exchange.tokenToEthSwapInput( srcAmount, 1, /* min_eth: uniswap requires it to be > 0 */ 2 ** 255 /* deadline */ ); // Fees in ETH destAmount = destAmount * (10000 - feeBps) / 10000; destAddress.transfer(destAmount); } TradeExecute( msg.sender, /* sender */ srcToken, /* src */ srcAmount, /* srcAmount */ destToken, /* destToken */ destAmount, /* destAmount */ destAddress /* destAddress */ ); return true; } event FeeUpdated( uint bps ); function setFee( uint bps ) public onlyAdmin { require(bps <= 10000); feeBps = bps; FeeUpdated(bps); } event TokenListed( ERC20 token, UniswapExchange exchange ); function listToken(ERC20 token) public onlyAdmin { require(address(token) != 0); UniswapExchange uniswapExchange = UniswapExchange( uniswapFactory.getExchange(token) ); tokenExchange[token] = uniswapExchange; setDecimals(token); require(token.approve(uniswapExchange, 2**255)); TokenListed(token, uniswapExchange); } event TokenDelisted(ERC20 token); function delistToken(ERC20 token) public onlyAdmin { require(tokenExchange[token] != 0); tokenExchange[token] = 0; TokenDelisted(token); } function isValidTokens( ERC20 src, ERC20 dest ) public view returns(bool) { return ( (src == ETH_TOKEN_ADDRESS && tokenExchange[dest] != 0) || (tokenExchange[src] != 0 && dest == ETH_TOKEN_ADDRESS) ); } event TradeEnabled( bool enable ); function enableTrade() public onlyAdmin returns(bool) { tradeEnabled = true; TradeEnabled(true); return true; } function disableTrade() public onlyAlerter returns(bool) { tradeEnabled = false; TradeEnabled(false); return true; } event KyberNetworkSet( address kyberNetwork ); function setKyberNetwork( address _kyberNetwork ) public onlyAdmin { require(_kyberNetwork != 0); kyberNetwork = _kyberNetwork; KyberNetworkSet(kyberNetwork); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"enableTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"alerter","type":"address"}],"name":"removeAlerter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenExchange","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"listToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeBps","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOperators","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEFAULT_FEE_BPS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"},{"name":"sendTo","type":"address"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAlerter","type":"address"}],"name":"addAlerter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kyberNetwork","type":"address"}],"name":"setKyberNetwork","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bps","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"srcToken","type":"address"},{"name":"srcAmount","type":"uint256"},{"name":"destToken","type":"address"},{"name":"destAddress","type":"address"},{"name":"conversionRate","type":"uint256"},{"name":"validate","type":"bool"}],"name":"trade","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"transferAdminQuickly","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"dest","type":"address"}],"name":"isValidTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAlerters","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"dest","type":"address"},{"name":"srcQty","type":"uint256"},{"name":"blockNumber","type":"uint256"}],"name":"getConversionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"delistToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kyberNetwork","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"sendTo","type":"address"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"},{"name":"user","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tradeEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_uniswapFactory","type":"address"},{"name":"_admin","type":"address"},{"name":"_kyberNetwork","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"src","type":"address"},{"indexed":false,"name":"srcAmount","type":"uint256"},{"indexed":false,"name":"destToken","type":"address"},{"indexed":false,"name":"destAmount","type":"uint256"},{"indexed":false,"name":"destAddress","type":"address"}],"name":"TradeExecute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bps","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"exchange","type":"address"}],"name":"TokenListed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"TokenDelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"enable","type":"bool"}],"name":"TradeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"kyberNetwork","type":"address"}],"name":"KyberNetworkSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"sendTo","type":"address"}],"name":"TokenWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"sendTo","type":"address"}],"name":"EtherWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pendingAdmin","type":"address"}],"name":"TransferAdminPending","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAdmin","type":"address"},{"indexed":false,"name":"previousAdmin","type":"address"}],"name":"AdminClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAlerter","type":"address"},{"indexed":false,"name":"isAdd","type":"bool"}],"name":"AlerterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOperator","type":"address"},{"indexed":false,"name":"isAdd","type":"bool"}],"name":"OperatorAdded","type":"event"}]
Contract Creation Code
60606040526019600955600b805460ff19166001179055341561002157600080fd5b604051606080611d3483398101604052808051919060200180519190602001805160008054600160a060020a03191633600160a060020a039081169190911790915590925084161515905061007557600080fd5b600160a060020a038216151561008a57600080fd5b600160a060020a038116151561009f57600080fd5b60078054600160a060020a03948516600160a060020a031991821617909155600080549385169382169390931790925560088054919093169116179055611c49806100eb6000396000f30060606040526004361061015a5763ffffffff60e060020a60003504166299d386811461015c57806301a12fd3146101835780630dd94b96146101a25780631fc1e25f146101dd57806324a9d853146101fc578063267822471461022157806327a099d81461023457806333d8262c1461029a5780633ccdbb28146102ad578063408ee7fe146102d657806354a325a6146102f55780636940030f1461031457806369fe0e2d146103275780636cf698111461033d57806375829def1461036957806377f50f97146103885780637acc86781461039b5780637be98598146103ba5780637c423f54146103df5780637cd44272146103f25780638bdb2afa1461041d5780639870d7fe14610430578063abffc9ac1461044f578063ac8a584a1461046e578063b78b842d1461048d578063ce56c454146104a0578063d4fac45d146104c2578063d621e813146104e7578063f851a440146104fa575b005b341561016757600080fd5b61016f61050d565b604051901515815260200160405180910390f35b341561018e57600080fd5b61015a600160a060020a0360043516610575565b34156101ad57600080fd5b6101c1600160a060020a03600435166106e5565b604051600160a060020a03909116815260200160405180910390f35b34156101e857600080fd5b61015a600160a060020a0360043516610700565b341561020757600080fd5b61020f6108af565b60405190815260200160405180910390f35b341561022c57600080fd5b6101c16108b5565b341561023f57600080fd5b6102476108c4565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561028657808201518382015260200161026e565b505050509050019250505060405180910390f35b34156102a557600080fd5b61020f61092c565b34156102b857600080fd5b61015a600160a060020a036004358116906024359060443516610931565b34156102e157600080fd5b61015a600160a060020a0360043516610a28565b341561030057600080fd5b61015a600160a060020a0360043516610b24565b341561031f57600080fd5b61016f610bb6565b341561033257600080fd5b61015a600435610c23565b61016f600160a060020a03600435811690602435906044358116906064351660843560a4351515610c88565b341561037457600080fd5b61015a600160a060020a0360043516611035565b341561039357600080fd5b61015a6110d0565b34156103a657600080fd5b61015a600160a060020a036004351661116a565b34156103c557600080fd5b61016f600160a060020a036004358116906024351661124c565b34156103ea57600080fd5b6102476112e7565b34156103fd57600080fd5b61020f600160a060020a036004358116906024351660443560643561134d565b341561042857600080fd5b6101c161153b565b341561043b57600080fd5b61015a600160a060020a036004351661154a565b341561045a57600080fd5b61015a600160a060020a036004351661161a565b341561047957600080fd5b61015a600160a060020a03600435166116c3565b341561049857600080fd5b6101c161182f565b34156104ab57600080fd5b61015a600435600160a060020a036024351661183e565b34156104cd57600080fd5b61020f600160a060020a03600435811690602435166118d1565b34156104f257600080fd5b61016f611982565b341561050557600080fd5b6101c161198b565b6000805433600160a060020a0390811691161461052957600080fd5b600b805460ff191660019081179091557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e73590604051901515815260200160405180910390a15060015b90565b6000805433600160a060020a0390811691161461059157600080fd5b600160a060020a03821660009081526003602052604090205460ff1615156105b857600080fd5b50600160a060020a0381166000908152600360205260408120805460ff191690555b6005548110156106e15781600160a060020a03166005828154811015156105fd57fe5b600091825260209091200154600160a060020a031614156106d95760058054600019810190811061062a57fe5b60009182526020909120015460058054600160a060020a03909216918390811061065057fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580549061068c906000198301611bc4565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051600160a060020a039092168252151560208201526040908101905180910390a16106e1565b6001016105da565b5050565b600a60205260009081526040902054600160a060020a031681565b6000805433600160a060020a0390811691161461071c57600080fd5b600160a060020a038216151561073157600080fd5b600754600160a060020a03166306f2bf628360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561078a57600080fd5b6102c65a03f1151561079b57600080fd5b5050506040518051600160a060020a038481166000908152600a602052604090208054600160a060020a03191691831691909117905591506107de90508261199a565b81600160a060020a031663095ea7b38260ff60020a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083f57600080fd5b6102c65a03f1151561085057600080fd5b50505060405180519050151561086557600080fd5b7f99d2b755eb38920131acb332adf086ea38d15009f223c21f3aa978d6ab2347868282604051600160a060020a039283168152911660208201526040908101905180910390a15050565b60095481565b600154600160a060020a031681565b6108cc611bed565b600480548060200260200160405190810160405280929190818152602001828054801561092257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610904575b5050505050905090565b601981565b60005433600160a060020a0390811691161461094c57600080fd5b82600160a060020a031663a9059cbb828460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156109a957600080fd5b6102c65a03f115156109ba57600080fd5b5050506040518051905015156109cf57600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a03908116911614610a4357600080fd5b600160a060020a03811660009081526003602052604090205460ff1615610a6957600080fd5b60055460329010610a7957600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600360205260409020805460ff191660019081179091556005805490918101610af88382611bc4565b5060009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610b3f57600080fd5b600160a060020a0381161515610b5457600080fd5b60088054600160a060020a031916600160a060020a0383811691909117918290557f38622430bb6defd4452b087e8d0b4a6d1c4d35c179c2d7d875d4abb272b9d88b9116604051600160a060020a03909116815260200160405180910390a150565b600160a060020a03331660009081526003602052604081205460ff161515610bdd57600080fd5b600b805460ff191690557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e7356000604051901515815260200160405180910390a150600190565b60005433600160a060020a03908116911614610c3e57600080fd5b612710811115610c4d57600080fd5b60098190557f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c768160405190815260200160405180910390a150565b600b54600090819081908190819060ff161515610ca457600080fd5b60085433600160a060020a03908116911614610cbf57600080fd5b610cc98b8a61124c565b1515610cd457600080fd5b610ce18b8a8c600061134d565b935086841015610cf057600080fd5b600160a060020a038b1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610e4757348a14610d2157600080fd5b5050600954600160a060020a038881166000908152600a602052604080822054909216926127109081038c020491839163f39b5b9b91849160019160ff60020a9190516020015260405160e060020a63ffffffff8616028152600481019290925260248201526044016020604051808303818588803b1515610da257600080fd5b6125ee5a03f11515610db357600080fd5b505050506040518051935050600160a060020a03891663a9059cbb898560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e1c57600080fd5b6102c65a03f11515610e2d57600080fd5b505050604051805190501515610e4257600080fd5b610fb7565b3415610e5257600080fd5b8a600160a060020a03166323b872dd33308d60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610ebc57600080fd5b6102c65a03f11515610ecd57600080fd5b505050604051805190501515610ee257600080fd5b600160a060020a03808c166000908152600a602052604080822054909216935083916395e3c50b918d9160019160ff60020a91516020015260405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b1515610f5d57600080fd5b6102c65a03f11515610f6e57600080fd5b505050604051805160095461271090810390910204935050600160a060020a0388166108fc84150284604051600060405180830381858888f193505050501515610fb757600080fd5b33600160a060020a03167fea9415385bae08fe9f6dc457b02577166790cde83bb18cc340aac6cb81b824de8c8c8c878d604051600160a060020a039586168152602081019490945291841660408085019190915260608401919091529216608082015260a001905180910390a25060019a9950505050505050505050565b60005433600160a060020a0390811691161461105057600080fd5b600160a060020a038116151561106557600080fd5b6001547f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4090600160a060020a0316604051600160a060020a03909116815260200160405180910390a160018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a039081169116146110eb57600080fd5b6001546000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60005433600160a060020a0390811691161461118557600080fd5b600160a060020a038116151561119a57600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051600160a060020a03909116815260200160405180910390a16000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed908290600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a160008054600160a060020a031916600160a060020a0392909216919091179055565b6000600160a060020a03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156112935750600160a060020a038083166000908152600a60205260409020541615155b806112de5750600160a060020a038084166000908152600a602052604090205416158015906112de5750600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b90505b92915050565b6112ef611bed565b600580548060200260200160405190810160405280929190818152602001828054801561092257602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610904575050505050905090565b600080600080600061135f898961124c565b151561136a57600080fd5b600b5460ff16151561137f576000945061152f565b600160a060020a03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156113ac578793506113de565b600160a060020a03881673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156113d9578893506113de565b600080fd5b600160a060020a038085166000908152600a602052604090205481169350891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156114975750600954612710908103870204600160a060020a03831663cd7724c38260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561147557600080fd5b6102c65a03f1151561148657600080fd5b505050604051805190509150611510565b82600160a060020a03166395b68fe78860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156114e657600080fd5b6102c65a03f115156114f757600080fd5b5050506040518051600954612710908103909102049250505b61152c878361151e8c611a5d565b6115278c611a5d565b611b21565b94505b50505050949350505050565b600754600160a060020a031681565b60005433600160a060020a0390811691161461156557600080fd5b600160a060020a03811660009081526002602052604090205460ff161561158b57600080fd5b6004546032901061159b57600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600260205260409020805460ff191660019081179091556004805490918101610af88382611bc4565b60005433600160a060020a0390811691161461163557600080fd5b600160a060020a038082166000908152600a602052604090205416151561165b57600080fd5b600160a060020a0381166000908152600a6020526040908190208054600160a060020a03191690557f6621c4efc5efa31320394260425b7d14cbb9d7e3754b2c98c04af66b1cbf315b90829051600160a060020a03909116815260200160405180910390a150565b6000805433600160a060020a039081169116146116df57600080fd5b600160a060020a03821660009081526002602052604090205460ff16151561170657600080fd5b50600160a060020a0381166000908152600260205260408120805460ff191690555b6004548110156106e15781600160a060020a031660048281548110151561174b57fe5b600091825260209091200154600160a060020a031614156118275760048054600019810190811061177857fe5b60009182526020909120015460048054600160a060020a03909216918390811061179e57fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790556004805460001901906117da9082611bc4565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051600160a060020a039092168252151560208201526040908101905180910390a16106e1565b600101611728565b600854600160a060020a031681565b60005433600160a060020a0390811691161461185957600080fd5b600160a060020a03811682156108fc0283604051600060405180830381858888f19350505050151561188a57600080fd5b7fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051918252600160a060020a031660208201526040908101905180910390a15050565b6000600160a060020a03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156119095750600160a060020a038116316112e1565b82600160a060020a03166370a082318360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561196057600080fd5b6102c65a03f1151561197157600080fd5b5050506040518051905090506112e1565b600b5460ff1681565b600054600160a060020a031681565b600160a060020a03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156119e057600160a060020a038116600090815260066020526040902060129055611a5a565b80600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a2657600080fd5b6102c65a03f11515611a3757600080fd5b5050506040518051600160a060020a038316600090815260066020526040902055505b50565b600080600160a060020a03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611a8e5760129150611b1b565b50600160a060020a038216600090815260066020526040902054801515611b175782600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611af557600080fd5b6102c65a03f11515611b0657600080fd5b505050604051805190509150611b1b565b8091505b50919050565b60006b204fce5e3e25026110000000851115611b3c57600080fd5b6b204fce5e3e25026110000000841115611b5557600080fd5b828210611b905760128383031115611b6c57600080fd5b84838303600a0a02670de0b6b3a76400008502811515611b8857fe5b049050611bbc565b60128284031115611ba057600080fd5b84828403600a0a670de0b6b3a7640000860202811515611b8857fe5b949350505050565b815481835581811511611be857600083815260209020611be8918101908301611bff565b505050565b60206040519081016040526000815290565b61057291905b80821115611c195760008155600101611c05565b50905600a165627a7a72305820eb8b3f7bc41e7750516728d944b272aae042b54ec58492bd307c01096ac6fb5b0029000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d950000000000000000000000002259099897afaf3813fef3284b91d2b227b66ad400000000000000000000000065897adcba42dcca5dd162c647b1cc3e31238490
Deployed Bytecode
0x60606040526004361061015a5763ffffffff60e060020a60003504166299d386811461015c57806301a12fd3146101835780630dd94b96146101a25780631fc1e25f146101dd57806324a9d853146101fc578063267822471461022157806327a099d81461023457806333d8262c1461029a5780633ccdbb28146102ad578063408ee7fe146102d657806354a325a6146102f55780636940030f1461031457806369fe0e2d146103275780636cf698111461033d57806375829def1461036957806377f50f97146103885780637acc86781461039b5780637be98598146103ba5780637c423f54146103df5780637cd44272146103f25780638bdb2afa1461041d5780639870d7fe14610430578063abffc9ac1461044f578063ac8a584a1461046e578063b78b842d1461048d578063ce56c454146104a0578063d4fac45d146104c2578063d621e813146104e7578063f851a440146104fa575b005b341561016757600080fd5b61016f61050d565b604051901515815260200160405180910390f35b341561018e57600080fd5b61015a600160a060020a0360043516610575565b34156101ad57600080fd5b6101c1600160a060020a03600435166106e5565b604051600160a060020a03909116815260200160405180910390f35b34156101e857600080fd5b61015a600160a060020a0360043516610700565b341561020757600080fd5b61020f6108af565b60405190815260200160405180910390f35b341561022c57600080fd5b6101c16108b5565b341561023f57600080fd5b6102476108c4565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561028657808201518382015260200161026e565b505050509050019250505060405180910390f35b34156102a557600080fd5b61020f61092c565b34156102b857600080fd5b61015a600160a060020a036004358116906024359060443516610931565b34156102e157600080fd5b61015a600160a060020a0360043516610a28565b341561030057600080fd5b61015a600160a060020a0360043516610b24565b341561031f57600080fd5b61016f610bb6565b341561033257600080fd5b61015a600435610c23565b61016f600160a060020a03600435811690602435906044358116906064351660843560a4351515610c88565b341561037457600080fd5b61015a600160a060020a0360043516611035565b341561039357600080fd5b61015a6110d0565b34156103a657600080fd5b61015a600160a060020a036004351661116a565b34156103c557600080fd5b61016f600160a060020a036004358116906024351661124c565b34156103ea57600080fd5b6102476112e7565b34156103fd57600080fd5b61020f600160a060020a036004358116906024351660443560643561134d565b341561042857600080fd5b6101c161153b565b341561043b57600080fd5b61015a600160a060020a036004351661154a565b341561045a57600080fd5b61015a600160a060020a036004351661161a565b341561047957600080fd5b61015a600160a060020a03600435166116c3565b341561049857600080fd5b6101c161182f565b34156104ab57600080fd5b61015a600435600160a060020a036024351661183e565b34156104cd57600080fd5b61020f600160a060020a03600435811690602435166118d1565b34156104f257600080fd5b61016f611982565b341561050557600080fd5b6101c161198b565b6000805433600160a060020a0390811691161461052957600080fd5b600b805460ff191660019081179091557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e73590604051901515815260200160405180910390a15060015b90565b6000805433600160a060020a0390811691161461059157600080fd5b600160a060020a03821660009081526003602052604090205460ff1615156105b857600080fd5b50600160a060020a0381166000908152600360205260408120805460ff191690555b6005548110156106e15781600160a060020a03166005828154811015156105fd57fe5b600091825260209091200154600160a060020a031614156106d95760058054600019810190811061062a57fe5b60009182526020909120015460058054600160a060020a03909216918390811061065057fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580549061068c906000198301611bc4565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051600160a060020a039092168252151560208201526040908101905180910390a16106e1565b6001016105da565b5050565b600a60205260009081526040902054600160a060020a031681565b6000805433600160a060020a0390811691161461071c57600080fd5b600160a060020a038216151561073157600080fd5b600754600160a060020a03166306f2bf628360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561078a57600080fd5b6102c65a03f1151561079b57600080fd5b5050506040518051600160a060020a038481166000908152600a602052604090208054600160a060020a03191691831691909117905591506107de90508261199a565b81600160a060020a031663095ea7b38260ff60020a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083f57600080fd5b6102c65a03f1151561085057600080fd5b50505060405180519050151561086557600080fd5b7f99d2b755eb38920131acb332adf086ea38d15009f223c21f3aa978d6ab2347868282604051600160a060020a039283168152911660208201526040908101905180910390a15050565b60095481565b600154600160a060020a031681565b6108cc611bed565b600480548060200260200160405190810160405280929190818152602001828054801561092257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610904575b5050505050905090565b601981565b60005433600160a060020a0390811691161461094c57600080fd5b82600160a060020a031663a9059cbb828460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156109a957600080fd5b6102c65a03f115156109ba57600080fd5b5050506040518051905015156109cf57600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a03908116911614610a4357600080fd5b600160a060020a03811660009081526003602052604090205460ff1615610a6957600080fd5b60055460329010610a7957600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600360205260409020805460ff191660019081179091556005805490918101610af88382611bc4565b5060009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610b3f57600080fd5b600160a060020a0381161515610b5457600080fd5b60088054600160a060020a031916600160a060020a0383811691909117918290557f38622430bb6defd4452b087e8d0b4a6d1c4d35c179c2d7d875d4abb272b9d88b9116604051600160a060020a03909116815260200160405180910390a150565b600160a060020a03331660009081526003602052604081205460ff161515610bdd57600080fd5b600b805460ff191690557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e7356000604051901515815260200160405180910390a150600190565b60005433600160a060020a03908116911614610c3e57600080fd5b612710811115610c4d57600080fd5b60098190557f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c768160405190815260200160405180910390a150565b600b54600090819081908190819060ff161515610ca457600080fd5b60085433600160a060020a03908116911614610cbf57600080fd5b610cc98b8a61124c565b1515610cd457600080fd5b610ce18b8a8c600061134d565b935086841015610cf057600080fd5b600160a060020a038b1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610e4757348a14610d2157600080fd5b5050600954600160a060020a038881166000908152600a602052604080822054909216926127109081038c020491839163f39b5b9b91849160019160ff60020a9190516020015260405160e060020a63ffffffff8616028152600481019290925260248201526044016020604051808303818588803b1515610da257600080fd5b6125ee5a03f11515610db357600080fd5b505050506040518051935050600160a060020a03891663a9059cbb898560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e1c57600080fd5b6102c65a03f11515610e2d57600080fd5b505050604051805190501515610e4257600080fd5b610fb7565b3415610e5257600080fd5b8a600160a060020a03166323b872dd33308d60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610ebc57600080fd5b6102c65a03f11515610ecd57600080fd5b505050604051805190501515610ee257600080fd5b600160a060020a03808c166000908152600a602052604080822054909216935083916395e3c50b918d9160019160ff60020a91516020015260405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b1515610f5d57600080fd5b6102c65a03f11515610f6e57600080fd5b505050604051805160095461271090810390910204935050600160a060020a0388166108fc84150284604051600060405180830381858888f193505050501515610fb757600080fd5b33600160a060020a03167fea9415385bae08fe9f6dc457b02577166790cde83bb18cc340aac6cb81b824de8c8c8c878d604051600160a060020a039586168152602081019490945291841660408085019190915260608401919091529216608082015260a001905180910390a25060019a9950505050505050505050565b60005433600160a060020a0390811691161461105057600080fd5b600160a060020a038116151561106557600080fd5b6001547f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4090600160a060020a0316604051600160a060020a03909116815260200160405180910390a160018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a039081169116146110eb57600080fd5b6001546000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60005433600160a060020a0390811691161461118557600080fd5b600160a060020a038116151561119a57600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051600160a060020a03909116815260200160405180910390a16000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed908290600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a160008054600160a060020a031916600160a060020a0392909216919091179055565b6000600160a060020a03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156112935750600160a060020a038083166000908152600a60205260409020541615155b806112de5750600160a060020a038084166000908152600a602052604090205416158015906112de5750600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b90505b92915050565b6112ef611bed565b600580548060200260200160405190810160405280929190818152602001828054801561092257602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610904575050505050905090565b600080600080600061135f898961124c565b151561136a57600080fd5b600b5460ff16151561137f576000945061152f565b600160a060020a03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156113ac578793506113de565b600160a060020a03881673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156113d9578893506113de565b600080fd5b600160a060020a038085166000908152600a602052604090205481169350891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156114975750600954612710908103870204600160a060020a03831663cd7724c38260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561147557600080fd5b6102c65a03f1151561148657600080fd5b505050604051805190509150611510565b82600160a060020a03166395b68fe78860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156114e657600080fd5b6102c65a03f115156114f757600080fd5b5050506040518051600954612710908103909102049250505b61152c878361151e8c611a5d565b6115278c611a5d565b611b21565b94505b50505050949350505050565b600754600160a060020a031681565b60005433600160a060020a0390811691161461156557600080fd5b600160a060020a03811660009081526002602052604090205460ff161561158b57600080fd5b6004546032901061159b57600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600260205260409020805460ff191660019081179091556004805490918101610af88382611bc4565b60005433600160a060020a0390811691161461163557600080fd5b600160a060020a038082166000908152600a602052604090205416151561165b57600080fd5b600160a060020a0381166000908152600a6020526040908190208054600160a060020a03191690557f6621c4efc5efa31320394260425b7d14cbb9d7e3754b2c98c04af66b1cbf315b90829051600160a060020a03909116815260200160405180910390a150565b6000805433600160a060020a039081169116146116df57600080fd5b600160a060020a03821660009081526002602052604090205460ff16151561170657600080fd5b50600160a060020a0381166000908152600260205260408120805460ff191690555b6004548110156106e15781600160a060020a031660048281548110151561174b57fe5b600091825260209091200154600160a060020a031614156118275760048054600019810190811061177857fe5b60009182526020909120015460048054600160a060020a03909216918390811061179e57fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790556004805460001901906117da9082611bc4565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051600160a060020a039092168252151560208201526040908101905180910390a16106e1565b600101611728565b600854600160a060020a031681565b60005433600160a060020a0390811691161461185957600080fd5b600160a060020a03811682156108fc0283604051600060405180830381858888f19350505050151561188a57600080fd5b7fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051918252600160a060020a031660208201526040908101905180910390a15050565b6000600160a060020a03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156119095750600160a060020a038116316112e1565b82600160a060020a03166370a082318360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561196057600080fd5b6102c65a03f1151561197157600080fd5b5050506040518051905090506112e1565b600b5460ff1681565b600054600160a060020a031681565b600160a060020a03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156119e057600160a060020a038116600090815260066020526040902060129055611a5a565b80600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a2657600080fd5b6102c65a03f11515611a3757600080fd5b5050506040518051600160a060020a038316600090815260066020526040902055505b50565b600080600160a060020a03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611a8e5760129150611b1b565b50600160a060020a038216600090815260066020526040902054801515611b175782600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611af557600080fd5b6102c65a03f11515611b0657600080fd5b505050604051805190509150611b1b565b8091505b50919050565b60006b204fce5e3e25026110000000851115611b3c57600080fd5b6b204fce5e3e25026110000000841115611b5557600080fd5b828210611b905760128383031115611b6c57600080fd5b84838303600a0a02670de0b6b3a76400008502811515611b8857fe5b049050611bbc565b60128284031115611ba057600080fd5b84828403600a0a670de0b6b3a7640000860202811515611b8857fe5b949350505050565b815481835581811511611be857600083815260209020611be8918101908301611bff565b505050565b60206040519081016040526000815290565b61057291905b80821115611c195760008155600101611c05565b50905600a165627a7a72305820eb8b3f7bc41e7750516728d944b272aae042b54ec58492bd307c01096ac6fb5b0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d950000000000000000000000002259099897afaf3813fef3284b91d2b227b66ad400000000000000000000000065897adcba42dcca5dd162c647b1cc3e31238490
-----Decoded View---------------
Arg [0] : _uniswapFactory (address): 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95
Arg [1] : _admin (address): 0x2259099897AfAf3813fef3284b91D2B227b66AD4
Arg [2] : _kyberNetwork (address): 0x65897aDCBa42dcCA5DD162c647b1cC3E31238490
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d95
Arg [1] : 0000000000000000000000002259099897afaf3813fef3284b91d2b227b66ad4
Arg [2] : 00000000000000000000000065897adcba42dcca5dd162c647b1cc3e31238490
Swarm Source
bzzr://eb8b3f7bc41e7750516728d944b272aae042b54ec58492bd307c01096ac6fb5b
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.