Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Latest 25 internal transactions (View All)
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
UniswapV2Factory
Compiler Version
v0.5.16+commit.9c3226ce
ZkSolc Version
v1.3.13
Optimization Enabled:
Yes with Mode 3
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity =0.5.16; import './interfaces/IUniswapV2Factory.sol'; import './UniswapV2Pair.sol'; contract UniswapV2Factory is IUniswapV2Factory { address public feeTo; address public feeToSetter; mapping(address => mapping(address => address)) public getPair; address[] public allPairs; event PairCreated(address indexed token0, address indexed token1, address pair, uint); constructor(address _feeToSetter) public { feeToSetter = _feeToSetter; } function allPairsLength() external view returns (uint) { return allPairs.length; } function createPair(address tokenA, address tokenB) external returns (address pair) { require(tokenA != tokenB, 'UniswapV2: IDENTICAL_ADDRESSES'); (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); require(token0 != address(0), 'UniswapV2: ZERO_ADDRESS'); require(getPair[token0][token1] == address(0), 'UniswapV2: PAIR_EXISTS'); // single check is sufficient bytes memory bytecode = type(UniswapV2Pair).creationCode; bytes32 salt = keccak256(abi.encodePacked(token0, token1)); assembly { pair := create2(0, add(bytecode, 32), mload(bytecode), salt) } IUniswapV2Pair(pair).initialize(token0, token1); getPair[token0][token1] = pair; getPair[token1][token0] = pair; // populate mapping in the reverse direction allPairs.push(pair); emit PairCreated(token0, token1, pair, allPairs.length); } function setFeeTo(address _feeTo) external { require(msg.sender == feeToSetter, 'UniswapV2: FORBIDDEN'); feeTo = _feeTo; } function setFeeToSetter(address _feeToSetter) external { require(msg.sender == feeToSetter, 'UniswapV2: FORBIDDEN'); feeToSetter = _feeToSetter; } }
pragma solidity =0.5.16; import './interfaces/IUniswapV2Pair.sol'; import './UniswapV2ERC20.sol'; import './libraries/Math.sol'; import './libraries/UQ112x112.sol'; import './interfaces/IERC20.sol'; import './interfaces/IUniswapV2Factory.sol'; import './interfaces/IUniswapV2Callee.sol'; contract UniswapV2Pair is IUniswapV2Pair, UniswapV2ERC20 { using SafeMath for uint; using UQ112x112 for uint224; uint public constant MINIMUM_LIQUIDITY = 10**3; bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)'))); address public factory; address public token0; address public token1; uint112 private reserve0; // uses single storage slot, accessible via getReserves uint112 private reserve1; // uses single storage slot, accessible via getReserves uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves uint public price0CumulativeLast; uint public price1CumulativeLast; uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event uint private unlocked = 1; modifier lock() { require(unlocked == 1, 'UniswapV2: LOCKED'); unlocked = 0; _; unlocked = 1; } function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) { _reserve0 = reserve0; _reserve1 = reserve1; _blockTimestampLast = blockTimestampLast; } function _safeTransfer(address token, address to, uint value) private { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'UniswapV2: TRANSFER_FAILED'); } event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); constructor() public { factory = msg.sender; } // called once by the factory at time of deployment function initialize(address _token0, address _token1) external { require(msg.sender == factory, 'UniswapV2: FORBIDDEN'); // sufficient check token0 = _token0; token1 = _token1; } // update reserves and, on the first call per block, price accumulators function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private { require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'UniswapV2: OVERFLOW'); uint32 blockTimestamp = uint32(block.timestamp % 2**32); uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) { // * never overflows, and + overflow is desired price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed; price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed; } reserve0 = uint112(balance0); reserve1 = uint112(balance1); blockTimestampLast = blockTimestamp; emit Sync(reserve0, reserve1); } // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k) function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) { address feeTo = IUniswapV2Factory(factory).feeTo(); feeOn = feeTo != address(0); uint _kLast = kLast; // gas savings if (feeOn) { if (_kLast != 0) { uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1)); uint rootKLast = Math.sqrt(_kLast); if (rootK > rootKLast) { uint numerator = totalSupply.mul(rootK.sub(rootKLast)); uint denominator = rootK.mul(5).add(rootKLast); uint liquidity = numerator / denominator; if (liquidity > 0) _mint(feeTo, liquidity); } } } else if (_kLast != 0) { kLast = 0; } } // this low-level function should be called from a contract which performs important safety checks function mint(address to) external lock returns (uint liquidity) { (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings uint balance0 = IERC20(token0).balanceOf(address(this)); uint balance1 = IERC20(token1).balanceOf(address(this)); uint amount0 = balance0.sub(_reserve0); uint amount1 = balance1.sub(_reserve1); bool feeOn = _mintFee(_reserve0, _reserve1); uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee if (_totalSupply == 0) { liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY); _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens } else { liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1); } require(liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'); _mint(to, liquidity); _update(balance0, balance1, _reserve0, _reserve1); if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date emit Mint(msg.sender, amount0, amount1); } // this low-level function should be called from a contract which performs important safety checks function burn(address to) external lock returns (uint amount0, uint amount1) { (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings address _token0 = token0; // gas savings address _token1 = token1; // gas savings uint balance0 = IERC20(_token0).balanceOf(address(this)); uint balance1 = IERC20(_token1).balanceOf(address(this)); uint liquidity = balanceOf[address(this)]; bool feeOn = _mintFee(_reserve0, _reserve1); uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED'); _burn(address(this), liquidity); _safeTransfer(_token0, to, amount0); _safeTransfer(_token1, to, amount1); balance0 = IERC20(_token0).balanceOf(address(this)); balance1 = IERC20(_token1).balanceOf(address(this)); _update(balance0, balance1, _reserve0, _reserve1); if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date emit Burn(msg.sender, amount0, amount1, to); } // this low-level function should be called from a contract which performs important safety checks function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock { require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'); (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'); uint balance0; uint balance1; { // scope for _token{0,1}, avoids stack too deep errors address _token0 = token0; address _token1 = token1; require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO'); if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data); balance0 = IERC20(_token0).balanceOf(address(this)); balance1 = IERC20(_token1).balanceOf(address(this)); } uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0; uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0; require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'); { // scope for reserve{0,1}Adjusted, avoids stack too deep errors uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3)); uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3)); require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K'); } _update(balance0, balance1, _reserve0, _reserve1); emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to); } // force balances to match reserves function skim(address to) external lock { address _token0 = token0; // gas savings address _token1 = token1; // gas savings _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0)); _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1)); } // force reserves to match balances function sync() external lock { _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1); } }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity =0.5.16; import './interfaces/IUniswapV2ERC20.sol'; import './libraries/SafeMath.sol'; contract UniswapV2ERC20 is IUniswapV2ERC20 { using SafeMath for uint; string public constant name = 'Uniswap V2'; string public constant symbol = 'UNI-V2'; uint8 public constant decimals = 18; uint public totalSupply; mapping(address => uint) public balanceOf; mapping(address => mapping(address => uint)) public allowance; bytes32 public DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; mapping(address => uint) public nonces; event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); constructor() public { uint chainId; assembly { chainId := chainid } DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this) ) ); } function _mint(address to, uint value) internal { totalSupply = totalSupply.add(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(address(0), to, value); } function _burn(address from, uint value) internal { balanceOf[from] = balanceOf[from].sub(value); totalSupply = totalSupply.sub(value); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint value) private { balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function approve(address spender, uint value) external returns (bool) { _approve(msg.sender, spender, value); return true; } function transfer(address to, uint value) external returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint value) external returns (bool) { if (allowance[from][msg.sender] != uint(-1)) { allowance[from][msg.sender] = allowance[from][msg.sender].sub(value); } _transfer(from, to, value); return true; } function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, 'UniswapV2: EXPIRED'); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == owner, 'UniswapV2: INVALID_SIGNATURE'); _approve(owner, spender, value); } }
pragma solidity =0.5.16; // a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format)) // range: [0, 2**112 - 1] // resolution: 1 / 2**112 library UQ112x112 { uint224 constant Q112 = 2**112; // encode a uint112 as a UQ112x112 function encode(uint112 y) internal pure returns (uint224 z) { z = uint224(y) * Q112; // never overflows } // divide a UQ112x112 by a uint112, returning a UQ112x112 function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) { z = x / uint224(y); } }
pragma solidity >=0.5.0; interface IUniswapV2Callee { function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external; }
pragma solidity =0.5.16; // a library for performing various math operations library Math { function min(uint x, uint y) internal pure returns (uint z) { z = x < y ? x : y; } // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) function sqrt(uint y) internal pure returns (uint z) { if (y > 3) { z = y; uint x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } } }
pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; }
pragma solidity >=0.5.0; interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); }
pragma solidity =0.5.16; // a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math) library SafeMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, 'ds-math-add-overflow'); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, 'ds-math-sub-underflow'); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow'); } }
pragma solidity >=0.5.0; interface IUniswapV2ERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; }
{ "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi" ] } }, "isSystem": false, "forceEvmla": false }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeTo","type":"address"}],"name":"setFeeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"name":"setFeeToSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
3cda33510000000000000000000000000000000000000000000000000000000000000004010000c74a281416a507c463c6dab16ee3c352a01ac7be88172e88f075f0b3a600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f3d63166f0ca56c3c1a3508fce03ff0cf3fb691e
Deployed Bytecode
0x0003000000000002000600000000000200020000000103550000006001100270000000aa0010019d000100000000001f0000008001000039000000400010043f000000000100041600000001022001900000002b0000c13d000000000101004b000002780000c13d0000000002000031000000040120008c000002780000413d0000000201000367000000000401043b000000e003400270000000ae0440009c0000005b0000813d000000c10430009c00000000040000190000001b0000613d0000000104000039000000c20530009c000000950000c13d000000000104041a000000ab01100197000000400200043d0000000000120435000000400100043d00000000021200490000002002200039000000aa03000041000000aa0420009c0000000002038019000000aa0410009c000000000103801900000040011002100000006002200210000000000112019f000002a40001042e000000000101004b000002780000c13d0000000203000367000000400100043d00000000020000310000001f0420018f00000005052002720000003c0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000000340000413d000000000604004b0000004b0000613d0000000505500210000000000353034f00000000055100190000000304400210000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f00000000003504350000000003120019000000400030043f000000200220008c000002780000413d0000000001010433000000ab011001970000000102000039000000000302041a000000ac03300197000000000113019f000000000012041b000000200100003900000100001004430000012000000443000000ad01000041000002a40001042e000000af0430009c0000006f0000c13d000000240220008a000000200300008a000000000232004b000002780000813d0000000102000039000000000302041a000000ab043001970000000005000411000000000445004b000001010000c13d000000ac033001970000000401100370000000000101043b000000ab01100197000000000131019f000000000012041b0000000001000019000002a40001042e000000b00430009c000000b10000c13d000000440220008a000000400300008a000000000232004b000002780000813d0000002402100370000000000202043b000000ab022001970000000401100370000000000101043b000000ab01100197000000000321004b000001190000c13d000000400100043d0000004402100039000000bf03000041000000000032043500000024021000390000001e030000390000000000320435000000b5020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000006401100039000000aa03000041000000aa0410009c0000000001038019000000aa0420009c000000000203801900000040022002100000006001100210000000000121019f000002a500010430000000c30430009c000000db0000c13d000000240220008a000000200300008a000000000232004b000002780000813d0000000401100370000000000301043b0000000301000039000000000201041a000000000223004b000002780000813d0000000000100435000000aa010000410000000002000414000600000003001d000000aa0320009c0000000001024019000000c001100210000000c5011001c7000080100200003902a3029e0000040f00000006030000290000000102200190000002780000613d000000000101043b00000000043100190000001b0000013d000000b10430009c000000ed0000c13d000000440220008a000000400300008a000000000232004b000002780000813d0000002402100370000000000202043b000600000002001d0000000401100370000000000101043b0000000202000039000000200020043f000000ab011001970000000000100435000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b000000200010043f0000000601000029000000ab011001970000000000100435000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000401043b0000001b0000013d000000c40130009c000002780000c13d0000000301000039000000000101041a000000400200043d0000000000120435000000400100043d00000000021200490000002002200039000000aa03000041000000aa0420009c0000000002038019000000aa0410009c000000000103801900000040011002100000006002200210000000000112019f000002a40001042e000000b20330009c000002780000c13d000000240220008a000000200300008a000000000232004b000002780000813d0000000102000039000000000202041a000000ab022001970000000003000411000000000223004b000001010000c13d000000000200041a000000ac022001970000000401100370000000000101043b000000ab01100197000000000112019f000000000010041b0000006d0000013d000000400100043d0000004402100039000000c0030000410000000000320435000000240210003900000014030000390000000000320435000000b5020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000006401100039000000aa03000041000000aa0410009c0000000001038019000000aa0420009c000000000203801900000040022002100000006001100210000000000121019f000002a500010430000000000321004b000000000302001900000000030120190000000002014019000000000102004b000001370000c13d000000400100043d0000004402100039000000be030000410000000000320435000000240210003900000017030000390000000000320435000000b5020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000006401100039000000aa03000041000000aa0410009c0000000001038019000000aa0420009c000000000203801900000040022002100000006001100210000000000121019f000002a500010430000600000003001d000500000002001d00000000002004350000000201000039000400000001001d000000200010043f000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b00000006020000290000000000200435000000200010043f000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000400300043d000000000101043b000000000101041a000000ab01100198000001ac0000c13d0000004401300039000000b602000041000000000021043500000084010000390000000001130436000200000001001d000300000003001d000000c301300039000000200200008a000000000121016f000000400010043f00000005020000290000006002200210000000200310003900000000002304350000000602000029000000600220021000000034031000390000000000230435000000400200043d0000000003210049000000280330003900000000033204360000004801100039000000400010043f000000aa01000041000000aa0430009c000000000301801900000040033002100000000002020433000000aa0420009c00000000020180190000006002200210000000000232019f0000000003000414000000aa0430009c0000000001034019000000c001100210000000000121019f000000b7011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b000000030600002900000084026000390000000003060433000000840430008a00000000050004140000000000420435000000640260003900000060040000390000000000420435000000b8020000410000000204000029000000000024043500000024026000390000000000120435000000aa01000041000000aa0240009c000000000201001900000000020440190000004002200210000000aa0430009c00000000030180190000006003300210000000000223019f000000aa0350009c0000000001054019000000c001100210000000000121019f000000b7011001c7000080060200003902a302990000040f0000000102200190000001c30000613d000000000101043b000000ab0410019700000006020000290000000503000029000001c80000013d0000004401300039000000b4020000410000000000210435000000240130003900000016020000390000000000210435000000b5010000410000000000130435000000040130003900000020020000390000000000210435000000400100043d00000000021300490000006402200039000000aa03000041000000aa0420009c0000000002038019000000aa0410009c000000000103801900000040011002100000006002200210000000000112019f000002a5000104300000006001100270000100aa0010019d000000000400001900000006020000290000000503000029000000400500043d00000024015000390000000000210435000000b9010000410000000000150435000200000005001d00000004015000390000000000310435000000400100043d000100000001001d000000ba010000410000000000100439000300000004001d0000000400400443000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000bb011001c7000080020200003902a3029e0000040f0000000102200190000002780000613d000000000101043b000000000101004b000002780000613d00000000010004140000000302000029000000040220008c000002000000613d0000000202000029000000010500002900000000025200490000004402200039000000aa03000041000000aa0450009c000000000403001900000000040540190000004004400210000000aa0520009c00000000020380190000006002200210000000000242019f000000aa0410009c0000000001038019000000c001100210000000000121019f000000030200002902a302990000040f00000000030100190000006003300270000100aa0030019d000000aa0430019700000001022001900000027a0000613d000000050100002900000000001004350000000401000029000000200010043f000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b00000006020000290000000000200435000000200010043f000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b000000000201041a000000ac022001970000000303000029000000000232019f000000000021041b0000000401000029000000200010043f000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b00000005020000290000000000200435000000200010043f000000aa010000410000000002000414000000aa0320009c0000000001024019000000c001100210000000b3011001c7000080100200003902a3029e0000040f0000000102200190000002780000613d000000000101043b000000000201041a000000ac022001970000000305000029000000000252019f000000000021041b0000000303000039000000000103041a0000000102100039000000000023041b0000000000300435000000bc01100041000000000201041a000000ac02200197000000000252019f000000000021041b000000000103041a000000400200043d000000200420003900000000001404350000000000520435000000400100043d0000000002120049000000aa04000041000000aa0510009c000000000104801900000040011002100000004002200039000000aa0520009c00000000020480190000006002200210000000000112019f0000000002000414000000aa0520009c0000000002048019000000c002200210000000000121019f000000b7011001c70000800d02000039000000bd040000410000000505000029000000060600002902a302990000040f0000000101200190000002780000613d000000400100043d00000003020000290000000000210435000000400200043d00000000012100490000002001100039000000aa03000041000000aa0410009c0000000001038019000000aa0420009c000000000203801900000040022002100000006001100210000000000121019f000002a40001042e0000000001000019000002a5000104300000001f0340018f0000000502400272000002850000613d00000000040000190000000505400210000000000651034f000000000606043b00000000006504350000000104400039000000000524004b0000027e0000413d000000000403004b000002930000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000aa010000410000000102000031000000aa0320009c00000000010240190000006001100210000002a5000104300000029c002104210000000102000039000000000001042d0000000002000019000000000001042d000002a1002104230000000102000039000000000001042d0000000002000019000000000001042d000002a300000432000002a40001042e000002a5000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000a2e74af60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2e74af600000000000000000000000000000000000000000000000000000000c9c6539600000000000000000000000000000000000000000000000000000000e6a4390500000000000000000000000000000000000000000000000000000000f46901ed0200000000000000000000000000000000000040000000000000000000000000556e697377617056323a20504149525f4558495354530000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000100065f2f2a556816a482652f101ddda2947216a5720dd91a79c61709cbf2b802000000000000000000000000000000000000000000000000000000000000003cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f57485cc955000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9556e697377617056323a205a45524f5f41444452455353000000000000000000556e697377617056323a204944454e544943414c5f4144445245535345530000556e697377617056323a20464f5242494444454e00000000000000000000000000000000000000000000000000000000000000000000000000000000017e7e5800000000000000000000000000000000000000000000000000000000094b7415000000000000000000000000000000000000000000000000000000001e3dd18b00000000000000000000000000000000000000000000000000000000574f2ba3020000000000000000000000000000000000002000000000000000000000000067621b5c58c11ed7c89822385c45d648ee664368c19486c8e46936ee5e165f1a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f3d63166f0ca56c3c1a3508fce03ff0cf3fb691e
-----Decoded View---------------
Arg [0] : _feeToSetter (address): 0xf3d63166F0Ca56C3c1A3508FcE03Ff0Cf3Fb691e
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f3d63166f0ca56c3c1a3508fce03ff0cf3fb691e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.