Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 11057691 | 1991 days ago | 0.1871502 ETH | ||||
| - | 11057691 | 1991 days ago | 0.1871502 ETH | ||||
| - | 11050672 | 1992 days ago | 0.2799067 ETH | ||||
| - | 11050672 | 1992 days ago | 0.2799067 ETH | ||||
| - | 11044162 | 1993 days ago | 0.231285 ETH | ||||
| - | 11044162 | 1993 days ago | 0.231285 ETH | ||||
| - | 11043989 | 1993 days ago | 0.1352313 ETH | ||||
| - | 11043989 | 1993 days ago | 0.1352313 ETH | ||||
| - | 11040266 | 1994 days ago | 0.1613545 ETH | ||||
| - | 11040266 | 1994 days ago | 0.1613545 ETH | ||||
| - | 11035569 | 1994 days ago | 0.2319985 ETH | ||||
| - | 11035569 | 1994 days ago | 0.2319985 ETH | ||||
| - | 11021188 | 1997 days ago | 0.18968364 ETH | ||||
| - | 11021188 | 1997 days ago | 0.18968364 ETH | ||||
| - | 11006321 | 1999 days ago | 0.176167 ETH | ||||
| - | 11006321 | 1999 days ago | 0.176167 ETH | ||||
| - | 10997882 | 2000 days ago | 0.14547447 ETH | ||||
| - | 10997882 | 2000 days ago | 0.14547447 ETH | ||||
| - | 10988691 | 2002 days ago | 0.28899733 ETH | ||||
| - | 10988691 | 2002 days ago | 0.28899733 ETH | ||||
| - | 10978949 | 2003 days ago | 0.31320954 ETH | ||||
| - | 10978949 | 2003 days ago | 0.31320954 ETH | ||||
| - | 10974594 | 2004 days ago | 4.46287 ETH | ||||
| - | 10974594 | 2004 days ago | 4.46287 ETH | ||||
| - | 10967323 | 2005 days ago | 0.2911345 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UniswapTokenSeller
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-03-10
*/
// Solidity Interface
pragma solidity ^0.5.11;
contract UniswapFactoryInterface {
// Public Variables
address public exchangeTemplate;
uint256 public tokenCount;
// Create Exchange
function createExchange(address token) external returns (address exchange);
// Get Exchange and Token Info
function getExchange(address token) external view returns (address exchange);
function getToken(address exchange) external view returns (address token);
function getTokenWithId(uint256 tokenId) external view returns (address token);
// Never use
function initializeFactory(address template) external;
}// Solidity Interface
contract UniswapExchangeInterface {
// Address of ERC20 token sold on this exchange
function tokenAddress() external view returns (address token);
// Address of Uniswap Factory
function factoryAddress() external view returns (address factory);
// Provide Liquidity
function addLiquidity(uint256 min_liquidity, uint256 max_tokens, uint256 deadline) external payable returns (uint256);
function removeLiquidity(uint256 amount, uint256 min_eth, uint256 min_tokens, uint256 deadline) external returns (uint256, uint256);
// Get Prices
function getEthToTokenInputPrice(uint256 eth_sold) external view returns (uint256 tokens_bought);
function getEthToTokenOutputPrice(uint256 tokens_bought) external view returns (uint256 eth_sold);
function getTokenToEthInputPrice(uint256 tokens_sold) external view returns (uint256 eth_bought);
function getTokenToEthOutputPrice(uint256 eth_bought) external view returns (uint256 tokens_sold);
// Trade ETH to ERC20
function ethToTokenSwapInput(uint256 min_tokens, uint256 deadline) external payable returns (uint256 tokens_bought);
function ethToTokenTransferInput(uint256 min_tokens, uint256 deadline, address recipient) external payable returns (uint256 tokens_bought);
function ethToTokenSwapOutput(uint256 tokens_bought, uint256 deadline) external payable returns (uint256 eth_sold);
function ethToTokenTransferOutput(uint256 tokens_bought, uint256 deadline, address recipient) external payable returns (uint256 eth_sold);
// Trade ERC20 to ETH
function tokenToEthSwapInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline) external returns (uint256 eth_bought);
function tokenToEthTransferInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline, address recipient) external returns (uint256 eth_bought);
function tokenToEthSwapOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline) external returns (uint256 tokens_sold);
function tokenToEthTransferOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline, address recipient) external returns (uint256 tokens_sold);
// Trade ERC20 to ERC20
function tokenToTokenSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address token_addr) external returns (uint256 tokens_bought);
function tokenToTokenTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address token_addr) external returns (uint256 tokens_bought);
function tokenToTokenSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address token_addr) external returns (uint256 tokens_sold);
function tokenToTokenTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address token_addr) external returns (uint256 tokens_sold);
// Trade ERC20 to Custom Pool
function tokenToExchangeSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address exchange_addr) external returns (uint256 tokens_bought);
function tokenToExchangeTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address exchange_addr) external returns (uint256 tokens_bought);
function tokenToExchangeSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address exchange_addr) external returns (uint256 tokens_sold);
function tokenToExchangeTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address exchange_addr) external returns (uint256 tokens_sold);
// ERC20 comaptibility for liquidity tokens
bytes32 public name;
bytes32 public symbol;
uint256 public decimals;
function transfer(address _to, uint256 _value) external returns (bool);
function transferFrom(address _from, address _to, uint256 value) external returns (bool);
function approve(address _spender, uint256 _value) external returns (bool);
function allowance(address _owner, address _spender) external view returns (uint256);
function balanceOf(address _owner) external view returns (uint256);
function totalSupply() external view returns (uint256);
// Never use
function setup(address token_addr) external;
}/*
Copyright 2017 Loopring Project Ltd (Loopring Foundation).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/*
Copyright 2017 Loopring Project Ltd (Loopring Foundation).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/// @title ITokenSeller
/// @dev Use this contract to sell tokenS for as many tokenB.
/// @author Daniel Wang - <daniel@loopring.org>
contract ITokenSeller
{
/// @dev Sells all tokenS for tokenB
/// @param tokenS The token or Ether (0x0) to sell.
/// @param tokenB The token to buy.
/// @return success True if success, false otherwise.
function sellToken(
address tokenS,
address tokenB
)
external
payable
returns (bool success);
}
/*
Copyright 2017 Loopring Project Ltd (Loopring Foundation).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/// @title ERC20 Token Interface
/// @dev see https://github.com/ethereum/EIPs/issues/20
/// @author Daniel Wang - <daniel@loopring.org>
contract ERC20
{
function totalSupply()
public
view
returns (uint);
function balanceOf(
address who
)
public
view
returns (uint);
function allowance(
address owner,
address spender
)
public
view
returns (uint);
function transfer(
address to,
uint value
)
public
returns (bool);
function transferFrom(
address from,
address to,
uint value
)
public
returns (bool);
function approve(
address spender,
uint value
)
public
returns (bool);
}
/*
Copyright 2017 Loopring Project Ltd (Loopring Foundation).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/// @title Utility Functions for uint
/// @author Daniel Wang - <daniel@loopring.org>
library MathUint
{
function mul(
uint a,
uint b
)
internal
pure
returns (uint c)
{
c = a * b;
require(a == 0 || c / a == b, "MUL_OVERFLOW");
}
function sub(
uint a,
uint b
)
internal
pure
returns (uint)
{
require(b <= a, "SUB_UNDERFLOW");
return a - b;
}
function add(
uint a,
uint b
)
internal
pure
returns (uint c)
{
c = a + b;
require(c >= a, "ADD_OVERFLOW");
}
function decodeFloat(
uint f
)
internal
pure
returns (uint value)
{
uint numBitsMantissa = 23;
uint exponent = f >> numBitsMantissa;
uint mantissa = f & ((1 << numBitsMantissa) - 1);
value = mantissa * (10 ** exponent);
}
}
/*
Copyright 2017 Loopring Project Ltd (Loopring Foundation).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/// @title ReentrancyGuard
/// @author Brecht Devos - <brecht@loopring.org>
/// @dev Exposes a modifier that guards a function against reentrancy
/// Changing the value of the same storage value multiple times in a transaction
/// is cheap (starting from Istanbul) so there is no need to minimize
/// the number of times the value is changed
contract ReentrancyGuard
{
//The default value must be 0 in order to work behind a proxy.
uint private _guardValue;
// Use this modifier on a function to prevent reentrancy
modifier nonReentrant()
{
// Check if the guard value has its original value
require(_guardValue == 0, "REENTRANCY");
// Set the value to something else
_guardValue = 1;
// Function body
_;
// Set the value back
_guardValue = 0;
}
}
/// @title An ITokenSeller that sells token on Uniswap.
/// @dev This contract will sell all tokens or Ether received to other tokens or Ether
// using the Uniswap contracts.
/// @author Daniel Wang - <daniel@loopring.org>
contract UniswapTokenSeller is ReentrancyGuard, ITokenSeller {
using MathUint for uint;
uint256 constant MAX_UINT = ~uint(0);
uint public constant MAX_SLIPPAGE_BIPS = 100; // 1 percent
address public uniswapFactoryAddress; // 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95 on live
address public recipient;
event TokenSold (
address indexed seller,
address indexed recipient,
address tokenS,
address tokenB,
uint amountS,
uint amountB,
uint8 slippage,
uint64 time
);
constructor(
address _uniswapFactoryAddress,
address _recipient
)
public
{
require(_uniswapFactoryAddress != address(0), "ZERO_ADDRESS");
uniswapFactoryAddress = _uniswapFactoryAddress;
recipient = _recipient;
}
function() external payable { }
function sellToken(
address tokenS,
address tokenB
)
external
payable
nonReentrant
returns (bool success)
{
require(tokenS != tokenB, "SAME_TOKEN");
// If `recipient` is set to non-zero, we send all purchased Ether/token to it.
address _recipient = recipient == address(0) ? msg.sender : recipient;
uint amountS; // amount to sell
uint amountB; // amount bought
uint8 slippage;
UniswapExchangeInterface exchange;
if (tokenS == address(0)) {
// Sell ETH to ERC20
amountS = address(this).balance;
require(amountS > 0, "ZERO_AMOUNT");
exchange = getUniswapExchange(tokenB);
slippage = getSlippage(
exchange.getEthToTokenInputPrice(amountS),
exchange.getEthToTokenInputPrice(amountS.mul(2))
);
amountB = exchange.ethToTokenTransferInput.value(amountS)(
1, // min_tokens_bought
MAX_UINT,
_recipient
);
} else {
// Selling ERC20 to ETH or other ERC20
amountS = ERC20(tokenS).balanceOf(address(this));
require(amountS > 0, "ZERO_AMOUNT");
exchange = getUniswapExchange(tokenS);
approveUniswapExchange(exchange, tokenS, amountS);
if (tokenB == address(0)) {
// Sell ERC20 to ETH
slippage = getSlippage(
exchange.getTokenToEthInputPrice(amountS),
exchange.getTokenToEthInputPrice(amountS.mul(2))
);
amountB = exchange.tokenToEthTransferInput(
amountS,
1, // min_eth_bought
MAX_UINT,
_recipient
);
} else {
// Sell ERC20 to ERC20
UniswapExchangeInterface exchangeB = getUniswapExchange(tokenB);
slippage = getSlippage(
exchangeB.getEthToTokenInputPrice(exchange.getTokenToEthInputPrice(amountS)),
exchangeB.getEthToTokenInputPrice(exchange.getTokenToEthInputPrice(amountS.mul(2)))
);
amountB = exchange.tokenToTokenTransferInput(
amountS,
1, // min_tokens_bought
1, // min_eth_bought
MAX_UINT,
_recipient,
tokenB
);
}
}
emit TokenSold(
msg.sender,
_recipient,
tokenS,
tokenB,
amountS,
amountB,
slippage,
uint64(now)
);
return true;
}
function getUniswapExchange(address token)
private
view
returns (UniswapExchangeInterface)
{
UniswapFactoryInterface factory = UniswapFactoryInterface(uniswapFactoryAddress);
return UniswapExchangeInterface(factory.getExchange(token));
}
function approveUniswapExchange(
UniswapExchangeInterface exchange,
address tokenS,
uint amountS
)
private
{
ERC20 token = ERC20(tokenS);
uint allowance = token.allowance(address(this), address(exchange));
if (allowance < amountS) {
require(
token.approve(address(exchange), MAX_UINT),
"APPROVAL_FAILURE"
);
}
}
function getSlippage(
uint amountB,
uint amountB2
)
private
pure
returns (uint8)
{
require(amountB > 0 && amountB2 > 0, "INVALID_PRICE");
uint slippageBips = amountB.mul(2).sub(amountB2).mul(10000) / amountB;
require(slippageBips <= MAX_SLIPPAGE_BIPS, "SLIPPAGE_TOO_LARGE");
return uint8(slippageBips);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_uniswapFactoryAddress","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"address","name":"tokenS","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountB","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"slippage","type":"uint8"},{"indexed":false,"internalType":"uint64","name":"time","type":"uint64"}],"name":"TokenSold","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"MAX_SLIPPAGE_BIPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenS","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"sellToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"uniswapFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50604051610d01380380610d018339818101604052604081101561003357600080fd5b5080516020909101516001600160a01b038216610086576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055610c40806100c16000396000f3fe60806040526004361061003f5760003560e01c80630362fe3a146100415780633655ac3c1461006857806366d003ac14610099578063dc42f971146100ae575b005b34801561004d57600080fd5b506100566100f0565b60408051918252519081900360200190f35b34801561007457600080fd5b5061007d6100f5565b604080516001600160a01b039092168252519081900360200190f35b3480156100a557600080fd5b5061007d610104565b6100dc600480360360408110156100c457600080fd5b506001600160a01b0381358116916020013516610113565b604080519115158252519081900360200190f35b606481565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000805415610156576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016000556001600160a01b0383811690831614156101a9576040805162461bcd60e51b815260206004820152600a60248201526929a0a6a2afaa27a5a2a760b11b604482015290519081900360640190fd5b6002546000906001600160a01b0316156101ce576002546001600160a01b03166101d0565b335b905060008080806001600160a01b0388166103c0574793506000841161022b576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b610234876108a1565b905061032e816001600160a01b031663cd7724c3866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d60208110156102a757600080fd5b50516001600160a01b03831663cd7724c36102c988600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fd57600080fd5b505afa158015610311573d6000803e3d6000fd5b505050506040513d602081101561032757600080fd5b5051610984565b6040805163ad65d76d60e01b81526001600482015260001960248201526001600160a01b03888116604483015291519294509083169163ad65d76d918791606480830192602092919082900301818588803b15801561038c57600080fd5b505af11580156103a0573d6000803e3d6000fd5b50505050506040513d60208110156103b757600080fd5b5051925061081d565b604080516370a0823160e01b815230600482015290516001600160a01b038a16916370a08231916024808301926020929190829003018186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d602081101561043057600080fd5b5051935083610474576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b61047d886108a1565b905061048a818986610a68565b6001600160a01b0387166105ba5761052b816001600160a01b03166395b68fe7866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104df57600080fd5b505afa1580156104f3573d6000803e3d6000fd5b505050506040513d602081101561050957600080fd5b50516001600160a01b0383166395b68fe76102c988600263ffffffff61092616565b60408051637237e03160e01b8152600481018790526001602482015260001960448201526001600160a01b038881166064830152915192945090831691637237e031916084808201926020929091908290030181600087803b15801561059057600080fd5b505af11580156105a4573d6000803e3d6000fd5b505050506040513d60208110156103b757600080fd5b60006105c5886108a1565b9050610779816001600160a01b031663cd7724c3846001600160a01b03166395b68fe7896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561061d57600080fd5b505afa158015610631573d6000803e3d6000fd5b505050506040513d602081101561064757600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d60208110156106b057600080fd5b50516001600160a01b038084169063cd7724c39086166395b68fe76106dc8b600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561071057600080fd5b505afa158015610724573d6000803e3d6000fd5b505050506040513d602081101561073a57600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b1580156102fd57600080fd5b6040805163f552d91b60e01b815260048101889052600160248201819052604482015260001960648201526001600160a01b0389811660848301528b811660a483015291519295509084169163f552d91b9160c4808201926020929091908290030181600087803b1580156107ed57600080fd5b505af1158015610801573d6000803e3d6000fd5b505050506040513d602081101561081757600080fd5b50519350505b604080516001600160a01b038a8116825289811660208301528183018790526060820186905260ff8516608083015267ffffffffffffffff421660a083015291519187169133917fe77887ce317fe4759be3a75828117567f0458304ab52611a2ff23c2ec3c1f2b1919081900360c00190a350506000805550600195945050505050565b600154604080516303795fb160e11b81526001600160a01b0384811660048301529151600093929092169182916306f2bf62916024808301926020929190829003018186803b1580156108f357600080fd5b505afa158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50519392505050565b81810282158061093e57508183828161093b57fe5b04145b61097e576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b92915050565b600080831180156109955750600082115b6109d6576040805162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f505249434560981b604482015290519081900360640190fd5b600083610a0c612710610a00866109f485600263ffffffff61092616565b9063ffffffff610bbe16565b9063ffffffff61092616565b81610a1357fe5b0490506064811115610a61576040805162461bcd60e51b8152602060048201526012602482015271534c4950504147455f544f4f5f4c4152474560701b604482015290519081900360640190fd5b9392505050565b60408051636eb1769f60e11b81523060048201526001600160a01b038581166024830152915184926000929084169163dd62ed3e91604480820192602092909190829003018186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d6020811015610ae757600080fd5b5051905082811015610bb7576040805163095ea7b360e01b81526001600160a01b038781166004830152600019602483015291519184169163095ea7b3916044808201926020929091908290030181600087803b158015610b4757600080fd5b505af1158015610b5b573d6000803e3d6000fd5b505050506040513d6020811015610b7157600080fd5b5051610bb7576040805162461bcd60e51b815260206004820152601060248201526f415050524f56414c5f4641494c55524560801b604482015290519081900360640190fd5b5050505050565b600082821115610c05576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b5090039056fea265627a7a72315820e80387ffc4c2fca8499dcf896e92d54820f794d690d2539502874af3b605646064736f6c63430005100032000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d950000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061003f5760003560e01c80630362fe3a146100415780633655ac3c1461006857806366d003ac14610099578063dc42f971146100ae575b005b34801561004d57600080fd5b506100566100f0565b60408051918252519081900360200190f35b34801561007457600080fd5b5061007d6100f5565b604080516001600160a01b039092168252519081900360200190f35b3480156100a557600080fd5b5061007d610104565b6100dc600480360360408110156100c457600080fd5b506001600160a01b0381358116916020013516610113565b604080519115158252519081900360200190f35b606481565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000805415610156576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016000556001600160a01b0383811690831614156101a9576040805162461bcd60e51b815260206004820152600a60248201526929a0a6a2afaa27a5a2a760b11b604482015290519081900360640190fd5b6002546000906001600160a01b0316156101ce576002546001600160a01b03166101d0565b335b905060008080806001600160a01b0388166103c0574793506000841161022b576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b610234876108a1565b905061032e816001600160a01b031663cd7724c3866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d60208110156102a757600080fd5b50516001600160a01b03831663cd7724c36102c988600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fd57600080fd5b505afa158015610311573d6000803e3d6000fd5b505050506040513d602081101561032757600080fd5b5051610984565b6040805163ad65d76d60e01b81526001600482015260001960248201526001600160a01b03888116604483015291519294509083169163ad65d76d918791606480830192602092919082900301818588803b15801561038c57600080fd5b505af11580156103a0573d6000803e3d6000fd5b50505050506040513d60208110156103b757600080fd5b5051925061081d565b604080516370a0823160e01b815230600482015290516001600160a01b038a16916370a08231916024808301926020929190829003018186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d602081101561043057600080fd5b5051935083610474576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b61047d886108a1565b905061048a818986610a68565b6001600160a01b0387166105ba5761052b816001600160a01b03166395b68fe7866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104df57600080fd5b505afa1580156104f3573d6000803e3d6000fd5b505050506040513d602081101561050957600080fd5b50516001600160a01b0383166395b68fe76102c988600263ffffffff61092616565b60408051637237e03160e01b8152600481018790526001602482015260001960448201526001600160a01b038881166064830152915192945090831691637237e031916084808201926020929091908290030181600087803b15801561059057600080fd5b505af11580156105a4573d6000803e3d6000fd5b505050506040513d60208110156103b757600080fd5b60006105c5886108a1565b9050610779816001600160a01b031663cd7724c3846001600160a01b03166395b68fe7896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561061d57600080fd5b505afa158015610631573d6000803e3d6000fd5b505050506040513d602081101561064757600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d60208110156106b057600080fd5b50516001600160a01b038084169063cd7724c39086166395b68fe76106dc8b600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561071057600080fd5b505afa158015610724573d6000803e3d6000fd5b505050506040513d602081101561073a57600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b1580156102fd57600080fd5b6040805163f552d91b60e01b815260048101889052600160248201819052604482015260001960648201526001600160a01b0389811660848301528b811660a483015291519295509084169163f552d91b9160c4808201926020929091908290030181600087803b1580156107ed57600080fd5b505af1158015610801573d6000803e3d6000fd5b505050506040513d602081101561081757600080fd5b50519350505b604080516001600160a01b038a8116825289811660208301528183018790526060820186905260ff8516608083015267ffffffffffffffff421660a083015291519187169133917fe77887ce317fe4759be3a75828117567f0458304ab52611a2ff23c2ec3c1f2b1919081900360c00190a350506000805550600195945050505050565b600154604080516303795fb160e11b81526001600160a01b0384811660048301529151600093929092169182916306f2bf62916024808301926020929190829003018186803b1580156108f357600080fd5b505afa158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50519392505050565b81810282158061093e57508183828161093b57fe5b04145b61097e576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b92915050565b600080831180156109955750600082115b6109d6576040805162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f505249434560981b604482015290519081900360640190fd5b600083610a0c612710610a00866109f485600263ffffffff61092616565b9063ffffffff610bbe16565b9063ffffffff61092616565b81610a1357fe5b0490506064811115610a61576040805162461bcd60e51b8152602060048201526012602482015271534c4950504147455f544f4f5f4c4152474560701b604482015290519081900360640190fd5b9392505050565b60408051636eb1769f60e11b81523060048201526001600160a01b038581166024830152915184926000929084169163dd62ed3e91604480820192602092909190829003018186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d6020811015610ae757600080fd5b5051905082811015610bb7576040805163095ea7b360e01b81526001600160a01b038781166004830152600019602483015291519184169163095ea7b3916044808201926020929091908290030181600087803b158015610b4757600080fd5b505af1158015610b5b573d6000803e3d6000fd5b505050506040513d6020811015610b7157600080fd5b5051610bb7576040805162461bcd60e51b815260206004820152601060248201526f415050524f56414c5f4641494c55524560801b604482015290519081900360640190fd5b5050505050565b600082821115610c05576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b5090039056fea265627a7a72315820e80387ffc4c2fca8499dcf896e92d54820f794d690d2539502874af3b605646064736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d950000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _uniswapFactoryAddress (address): 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95
Arg [1] : _recipient (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d95
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
11921:5079:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12066:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12066:47:0;;;:::i;:::-;;;;;;;;;;;;;;;;12133:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12133:36:0;;;:::i;:::-;;;;-1:-1:-1;;;;;12133:36:0;;;;;;;;;;;;;;12230:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12230:24:0;;;:::i;12895:2917::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12895:2917:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12066:47;12110:3;12066:47;:::o;12133:36::-;;;-1:-1:-1;;;;;12133:36:0;;:::o;12230:24::-;;;-1:-1:-1;;;;;12230:24:0;;:::o;12895:2917::-;13050:12;11460:11;;:16;11452:39;;;;;-1:-1:-1;;;11452:39:0;;;;;;;;;;;;-1:-1:-1;;;11452:39:0;;;;;;;;;;;;;;;11562:1;11548:11;:15;-1:-1:-1;;;;;13088:16:0;;;;;;;;13080:39;;;;;-1:-1:-1;;;13080:39:0;;;;;;;;;;;;-1:-1:-1;;;13080:39:0;;;;;;;;;;;;;;;13241:9;;13220:18;;-1:-1:-1;;;;;13241:9:0;:23;:48;;13280:9;;-1:-1:-1;;;;;13280:9:0;13241:48;;;13267:10;13241:48;13220:69;-1:-1:-1;13300:13:0;;;;-1:-1:-1;;;;;13458:20:0;;13454:2104;;13539:21;13529:31;;13593:1;13583:7;:11;13575:35;;;;;-1:-1:-1;;;13575:35:0;;;;;;;;;;;;-1:-1:-1;;;13575:35:0;;;;;;;;;;;;;;;13636:26;13655:6;13636:18;:26::i;:::-;13625:37;;13690:153;13720:8;-1:-1:-1;;;;;13720:32:0;;13753:7;13720:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13720:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13720:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13720:41:0;-1:-1:-1;;;;;13780:32:0;;;13813:14;:7;13825:1;13813:14;:11;:14;:::i;:::-;13780:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13780:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13780:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13780:48:0;13690:11;:153::i;:::-;13870:160;;;-1:-1:-1;;;13870:160:0;;13936:1;13870:160;;;;-1:-1:-1;;13870:160:0;;;;-1:-1:-1;;;;;13870:160:0;;;;;;;;;13679:164;;-1:-1:-1;13870:32:0;;;;;;13909:7;;13870:160;;;;;;;;;;;;;;13909:7;13870:32;:160;;;5:2:-1;;;;30:1;27;20:12;5:2;13870:160:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13870:160:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13870:160:0;;-1:-1:-1;13454:2104:0;;;14125:38;;;-1:-1:-1;;;14125:38:0;;14157:4;14125:38;;;;;;-1:-1:-1;;;;;14125:23:0;;;;;:38;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;14125:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14125:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14125:38:0;;-1:-1:-1;14186:11:0;14178:35;;;;;-1:-1:-1;;;14178:35:0;;;;;;;;;;;;-1:-1:-1;;;14178:35:0;;;;;;;;;;;;;;;14239:26;14258:6;14239:18;:26::i;:::-;14228:37;;14282:49;14305:8;14315:6;14323:7;14282:22;:49::i;:::-;-1:-1:-1;;;;;14352:20:0;;14348:1199;;14442:165;14476:8;-1:-1:-1;;;;;14476:32:0;;14509:7;14476:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14476:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14476:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14476:41:0;-1:-1:-1;;;;;14540:32:0;;;14573:14;:7;14585:1;14573:14;:11;:14;:::i;14442:165::-;14638:188;;;-1:-1:-1;;;14638:188:0;;;;;;;;14723:1;14638:188;;;;-1:-1:-1;;14638:188:0;;;;-1:-1:-1;;;;;14638:188:0;;;;;;;;;14431:176;;-1:-1:-1;14638:32:0;;;;;;:188;;;;;;;;;;;;;;;12057:1;14638:32;:188;;;5:2:-1;;;;30:1;27;20:12;5:2;14638:188:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14638:188:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;14348:1199:0;14907:34;14944:26;14963:6;14944:18;:26::i;:::-;14907:63;;15000:235;15034:9;-1:-1:-1;;;;;15034:33:0;;15068:8;-1:-1:-1;;;;;15068:32:0;;15101:7;15068:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15068:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15068:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15068:41:0;15034:76;;;-1:-1:-1;;;;;;15034:76:0;;;;;;;;;;;;;;;;;;;;15068:41;;15034:76;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;15034:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15034:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15034:76:0;-1:-1:-1;;;;;15133:33:0;;;;;;15167:32;;;15200:14;:7;15212:1;15200:14;:11;:14;:::i;:::-;15167:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15167:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15167:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15167:48:0;15133:83;;;-1:-1:-1;;;;;;15133:83:0;;;;;;;;;;;;;;;;;;;;15167:48;;15133:83;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;15000:235:0;15266:265;;;-1:-1:-1;;;15266:265:0;;;;;;;;15353:1;15266:265;;;;;;;;;;-1:-1:-1;;15266:265:0;;;;-1:-1:-1;;;;;15266:265:0;;;;;;;;;;;;;;;;14989:246;;-1:-1:-1;15266:34:0;;;;;;:265;;;;;;;;;;;;;;;12057:1;15266:34;:265;;;5:2:-1;;;;30:1;27;20:12;5:2;15266:265:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15266:265:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15266:265:0;;-1:-1:-1;;14348:1199:0;15575:205;;;-1:-1:-1;;;;;15575:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15765:3;15575:205;;;;;;;;;;;15599:10;;15575:205;;;;;;;;;;-1:-1:-1;;11661:1:0;11647:15;;-1:-1:-1;15800:4:0;;12895:2917;-1:-1:-1;;;;;12895:2917:0:o;15820:292::-;16012:21;;16077:26;;;-1:-1:-1;;;16077:26:0;;-1:-1:-1;;;;;16077:26:0;;;;;;;;;15912:24;;16012:21;;;;;;;16077:19;;:26;;;;;;;;;;;;;;16012:21;16077:26;;;5:2:-1;;;;30:1;27;20:12;5:2;16077:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16077:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16077:26:0;;15820:292;-1:-1:-1;;;15820:292:0:o;9232:205::-;9368:5;;;9392:6;;;:20;;;9411:1;9406;9402;:5;;;;;;:10;9392:20;9384:45;;;;;-1:-1:-1;;;9384:45:0;;;;;;;;;;;;-1:-1:-1;;;9384:45:0;;;;;;;;;;;;;;;9232:205;;;;:::o;16593:404::-;16721:5;16762:1;16752:7;:11;:27;;;;;16778:1;16767:8;:12;16752:27;16744:53;;;;;-1:-1:-1;;;16744:53:0;;;;;;;;;;;;-1:-1:-1;;;16744:53:0;;;;;;;;;;;;;;;16808:17;16870:7;16828:39;16861:5;16828:28;16847:8;16828:14;16870:7;16840:1;16828:14;:11;:14;:::i;:::-;:18;:28;:18;:28;:::i;:::-;:32;:39;:32;:39;:::i;:::-;:49;;;;;;16808:69;;12110:3;16896:12;:33;;16888:64;;;;;-1:-1:-1;;;16888:64:0;;;;;;;;;;;;-1:-1:-1;;;16888:64:0;;;;;;;;;;;;;;;16976:12;16593:404;-1:-1:-1;;;16593:404:0:o;16120:465::-;16346:49;;;-1:-1:-1;;;16346:49:0;;16370:4;16346:49;;;;-1:-1:-1;;;;;16346:49:0;;;;;;;;;16311:6;;16291:11;;16346:15;;;;;;:49;;;;;;;;;;;;;;;:15;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;16346:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16346:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16346:49:0;;-1:-1:-1;16410:19:0;;;16406:172;;;16472:42;;;-1:-1:-1;;;16472:42:0;;-1:-1:-1;;;;;16472:42:0;;;;;;;-1:-1:-1;;16472:42:0;;;;;;:13;;;;;;:42;;;;;;;;;;;;;;;12057:1;16472:13;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;16472:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16472:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16472:42:0;16446:120;;;;;-1:-1:-1;;;16446:120:0;;;;;;;;;;;;-1:-1:-1;;;16446:120:0;;;;;;;;;;;;;;;16120:465;;;;;:::o;9445:193::-;9553:4;9588:1;9583;:6;;9575:32;;;;;-1:-1:-1;;;9575:32:0;;;;;;;;;;;;-1:-1:-1;;;9575:32:0;;;;;;;;;;;;;;;-1:-1:-1;9625:5:0;;;9445:193::o
Swarm Source
bzzr://e80387ffc4c2fca8499dcf896e92d54820f794d690d2539502874af3b6056460
Loading...
Loading
Loading...
Loading
Net Worth in USD
$1.76
Net Worth in ETH
0.000884
Token Allocations
ANY
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BSC | 100.00% | $1.76 | 1 | $1.76 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.