Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
BoringCryptoDashboardV2
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 5000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint256); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function owner() external view returns (address); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IShibaSwapPoolNames { function logos(uint256) external view returns(string memory); function names(uint256) external view returns(string memory); function setPoolInfo(uint256 pid, string memory logo, string memory name) external; } interface IBoneToken is IERC20{ function delegates(address who) external view returns(address); function getCurrentVotes(address who) external view returns(uint256); function nonces(address who) external view returns(uint256); } interface ITopDog { function BONUS_MULTIPLIER() external view returns (uint256); function bonusEndBlock() external view returns (uint256); function devaddr() external view returns (address); function migrator() external view returns (address); function owner() external view returns (address); function startBlock() external view returns (uint256); function bone() external view returns (address); function bonePerBlock() external view returns (uint256); function totalAllocPoint() external view returns (uint256); function poolLength() external view returns (uint256); function poolInfo(uint256 nr) external view returns (address, uint256, uint256, uint256); function userInfo(uint256 nr, address who) external view returns (uint256, uint256); function pendingBone(uint256 nr, address who) external view returns (uint256); } interface IFactory { function allPairsLength() external view returns (uint256); function allPairs(uint256 i) external view returns (address); function getPair(address token0, address token1) external view returns (address); function feeTo() external view returns (address); function feeToSetter() external view returns (address); } interface IPair is IERC20 { function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112, uint112, uint32); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); uint256 c = a / b; return c; } } contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = msg.sender; owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } modifier onlyOwner() { require(owner == msg.sender, "Ownable: caller is not the owner"); _; } } contract BoringCryptoTokenScanner { using SafeMath for uint256; struct Balance { address token; uint256 balance; } struct BalanceFull { address token; uint256 balance; uint256 rate; } struct TokenInfo { address token; uint256 decimals; string name; string symbol; } function getTokenInfo(address[] calldata addresses) public view returns(TokenInfo[] memory) { TokenInfo[] memory infos = new TokenInfo[](addresses.length); for (uint256 i = 0; i < addresses.length; i++) { IERC20 token = IERC20(addresses[i]); infos[i].token = address(token); infos[i].name = token.name(); infos[i].symbol = token.symbol(); infos[i].decimals = token.decimals(); } return infos; } function findBalances(address who, address[] calldata addresses) public view returns(Balance[] memory) { uint256 balanceCount; for (uint256 i = 0; i < addresses.length; i++) { if (IERC20(addresses[i]).balanceOf(who) > 0) { balanceCount++; } } Balance[] memory balances = new Balance[](balanceCount); balanceCount = 0; for (uint256 i = 0; i < addresses.length; i++) { IERC20 token = IERC20(addresses[i]); uint256 balance = token.balanceOf(who); if (balance > 0) { balances[balanceCount].token = address(token); balances[balanceCount].balance = token.balanceOf(who); balanceCount++; } } return balances; } function getBalances(address who, address[] calldata addresses, IFactory factory, address currency) public view returns(BalanceFull[] memory) { BalanceFull[] memory balances = new BalanceFull[](addresses.length); for (uint256 i = 0; i < addresses.length; i++) { IERC20 token = IERC20(addresses[i]); balances[i].token = address(token); balances[i].balance = token.balanceOf(who); IPair pair = IPair(factory.getPair(addresses[i], currency)); if(address(pair) != address(0)) { uint256 reserveCurrency; uint256 reserveToken; if (pair.token0() == currency) { (reserveCurrency, reserveToken,) = pair.getReserves(); } else { (reserveToken, reserveCurrency,) = pair.getReserves(); } balances[i].rate = reserveToken * 1e18 / reserveCurrency; } } return balances; } struct Factory { IFactory factory; uint256 allPairsLength; address feeTo; address feeToSetter; } function getFactoryInfo(IFactory[] calldata addresses) public view returns(Factory[] memory) { Factory[] memory factories = new Factory[](addresses.length); for (uint256 i = 0; i < addresses.length; i++) { IFactory factory = addresses[i]; factories[i].factory = factory; factories[i].allPairsLength = factory.allPairsLength(); factories[i].feeTo = factory.feeTo(); factories[i].feeToSetter = factory.feeToSetter(); } return factories; } struct Pair { address token; address token0; address token1; } function getPairs(IFactory factory, uint256 fromID, uint256 toID) public view returns(Pair[] memory) { if (toID == 0){ toID = factory.allPairsLength(); } Pair[] memory pairs = new Pair[](toID - fromID); for(uint256 id = fromID; id < toID; id++) { address token = factory.allPairs(id); uint256 i = id - fromID; pairs[i].token = token; pairs[i].token0 = IPair(token).token0(); pairs[i].token1 = IPair(token).token1(); } return pairs; } function findPairs(address who, IFactory factory, uint256 fromID, uint256 toID) public view returns(Pair[] memory) { if (toID == 0){ toID = factory.allPairsLength(); } uint256 pairCount; for(uint256 id = fromID; id < toID; id++) { address token = factory.allPairs(id); if (IERC20(token).balanceOf(who) > 0) { pairCount++; } } Pair[] memory pairs = new Pair[](pairCount); pairCount = 0; for(uint256 id = fromID; id < toID; id++) { address token = factory.allPairs(id); uint256 balance = IERC20(token).balanceOf(who); if (balance > 0) { pairs[pairCount].token = token; pairs[pairCount].token0 = IPair(token).token0(); pairs[pairCount].token1 = IPair(token).token1(); pairCount++; } } return pairs; } struct PairFull { address token; address token0; address token1; uint256 reserve0; uint256 reserve1; uint256 totalSupply; uint256 balance; } function getPairsFull(address who, address[] calldata addresses) public view returns(PairFull[] memory) { PairFull[] memory pairs = new PairFull[](addresses.length); for (uint256 i = 0; i < addresses.length; i++) { address token = addresses[i]; pairs[i].token = token; pairs[i].token0 = IPair(token).token0(); pairs[i].token1 = IPair(token).token1(); (uint256 reserve0, uint256 reserve1,) = IPair(token).getReserves(); pairs[i].reserve0 = reserve0; pairs[i].reserve1 = reserve1; pairs[i].balance = IERC20(token).balanceOf(who); pairs[i].totalSupply = IERC20(token).totalSupply(); } return pairs; } } contract BoringCryptoDashboardV2 { using SafeMath for uint256; ITopDog topdog; address uniFactory; address sushiFactory; address shibaFactory; address weth; constructor( address _topdog, address _uniFactory, address _sushiFactory, address _shibaFactory, address _weth ) public { topdog = ITopDog(_topdog); uniFactory = _uniFactory; sushiFactory = _sushiFactory; shibaFactory = _shibaFactory; weth = _weth; } struct PairFull { address token; address token0; address token1; uint256 reserve0; uint256 reserve1; uint256 totalSupply; uint256 balance; } function getPairsFull(address who, address[] calldata addresses) public view returns(PairFull[] memory) { PairFull[] memory pairs = new PairFull[](addresses.length); for (uint256 i = 0; i < addresses.length; i++) { address token = addresses[i]; pairs[i].token = token; pairs[i].token0 = IPair(token).token0(); pairs[i].token1 = IPair(token).token1(); (uint256 reserve0, uint256 reserve1,) = IPair(token).getReserves(); pairs[i].reserve0 = reserve0; pairs[i].reserve1 = reserve1; pairs[i].balance = IERC20(token).balanceOf(who); pairs[i].totalSupply = IERC20(token).totalSupply(); } return pairs; } struct PoolsInfo { uint256 totalAllocPoint; uint256 poolLength; } struct PoolInfo { uint256 pid; IPair lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. SUSHIs to distribute per block. address token0; address token1; } function getPools(uint256[] calldata pids) public view returns(PoolsInfo memory, PoolInfo[] memory) { PoolsInfo memory info; info.totalAllocPoint = topdog.totalAllocPoint(); uint256 poolLength = topdog.poolLength(); info.poolLength = poolLength; PoolInfo[] memory pools = new PoolInfo[](pids.length); for (uint256 i = 0; i < pids.length; i++) { pools[i].pid = pids[i]; (address lpToken, uint256 allocPoint,,) = topdog.poolInfo(pids[i]); IPair uniV2 = IPair(lpToken); pools[i].lpToken = uniV2; pools[i].allocPoint = allocPoint; pools[i].token0 = uniV2.token0(); pools[i].token1 = uniV2.token1(); } return (info, pools); } function findPools(address who, uint256[] calldata pids) public view returns(PoolInfo[] memory) { uint256 count; for (uint256 i = 0; i < pids.length; i++) { (uint256 balance,) = topdog.userInfo(pids[i], who); if (balance > 0) { count++; } } PoolInfo[] memory pools = new PoolInfo[](count); count = 0; for (uint256 i = 0; i < pids.length; i++) { (uint256 balance,) = topdog.userInfo(pids[i], who); if (balance > 0) { pools[count].pid = pids[i]; (address lpToken, uint256 allocPoint,,) = topdog.poolInfo(pids[i]); IPair uniV2 = IPair(lpToken); pools[count].lpToken = uniV2; pools[count].allocPoint = allocPoint; pools[count].token0 = uniV2.token0(); pools[count].token1 = uniV2.token1(); count++; } } return pools; } function getETHRate(address token) public view returns(uint256) { uint256 eth_rate = 1e18; if (token != weth) { IPair pairUniV2; IPair pairSushi; IPair pairShiba; pairUniV2 = IPair(IFactory(uniFactory).getPair(token, weth)); pairSushi = IPair(IFactory(sushiFactory).getPair(token, weth)); pairShiba = IPair(IFactory(shibaFactory).getPair(token, weth)); if (address(pairUniV2) == address(0) && address(pairSushi) == address(0) && address(pairShiba) == address(0)) { return 0; } uint112 reserve0UniV2; uint112 reserve1UniV2; uint112 reserve0Sushi; uint112 reserve1Sushi; uint112 reserve0Shiba; uint112 reserve1Shiba; if (address(pairUniV2) != address(0)) { (reserve0UniV2, reserve1UniV2,) = pairUniV2.getReserves(); } if (address(pairSushi) != address(0)) { (reserve0Sushi, reserve1Sushi,) = pairSushi.getReserves(); } if (address(pairShiba) != address(0)) { (reserve0Shiba, reserve1Shiba,) = pairShiba.getReserves(); } if (address(pairShiba) == address(0) || reserve0UniV2 > reserve0Shiba || reserve1UniV2 > reserve1Shiba) { // return uni rate if (pairUniV2.token0() == weth) { eth_rate = uint256(reserve1UniV2).mul(1e18).div(reserve0UniV2); } else { eth_rate = uint256(reserve0UniV2).mul(1e18).div(reserve1UniV2); } } else if (reserve0Sushi > reserve0Shiba || reserve1Sushi > reserve1Shiba) { if (pairSushi.token0() == weth) { eth_rate = uint256(reserve1Sushi).mul(1e18).div(reserve0Sushi); } else { eth_rate = uint256(reserve0Sushi).mul(1e18).div(reserve1Sushi); } } else { if (pairShiba.token0() == weth) { eth_rate = uint256(reserve1Shiba).mul(1e18).div(reserve0Shiba); } else { eth_rate = uint256(reserve0Shiba).mul(1e18).div(reserve1Shiba); } } } return eth_rate; } struct UserPoolInfo { uint256 pid; uint256 balance; // Balance of pool tokens uint256 totalSupply; // Token staked lp tokens uint256 lpBalance; // Balance of lp tokens not staked uint256 lpTotalSupply; // TotalSupply of lp tokens uint256 lpAllowance; // LP tokens approved for TopDog uint256 reserve0; uint256 reserve1; uint256 token0rate; uint256 token1rate; uint256 rewardDebt; uint256 pending; // Pending BONE } function pollPools(address who, uint256[] calldata pids) public view returns(UserPoolInfo[] memory) { UserPoolInfo[] memory pools = new UserPoolInfo[](pids.length); for (uint256 i = 0; i < pids.length; i++) { (uint256 amount,) = topdog.userInfo(pids[i], who); pools[i].balance = amount; pools[i].pending = topdog.pendingBone(pids[i], who); (address lpToken,,,) = topdog.poolInfo(pids[i]); pools[i].pid = pids[i]; IPair uniV2 = IPair(lpToken); pools[i].totalSupply = uniV2.balanceOf(address(topdog)); pools[i].lpAllowance = uniV2.allowance(who, address(topdog)); pools[i].lpBalance = uniV2.balanceOf(who); pools[i].lpTotalSupply = uniV2.totalSupply(); pools[i].token0rate = getETHRate(uniV2.token0()); pools[i].token1rate = getETHRate(uniV2.token1()); (uint112 reserve0, uint112 reserve1,) = uniV2.getReserves(); pools[i].reserve0 = reserve0; pools[i].reserve1 = reserve1; } return pools; } }
{ "optimizer": { "enabled": true, "runs": 5000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_topdog","type":"address"},{"internalType":"address","name":"_uniFactory","type":"address"},{"internalType":"address","name":"_sushiFactory","type":"address"},{"internalType":"address","name":"_shibaFactory","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"findPools","outputs":[{"components":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"contract IPair","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"internalType":"struct BoringCryptoDashboardV2.PoolInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getETHRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"getPairsFull","outputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint256","name":"reserve0","type":"uint256"},{"internalType":"uint256","name":"reserve1","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"internalType":"struct BoringCryptoDashboardV2.PairFull[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"getPools","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocPoint","type":"uint256"},{"internalType":"uint256","name":"poolLength","type":"uint256"}],"internalType":"struct BoringCryptoDashboardV2.PoolsInfo","name":"","type":"tuple"},{"components":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"contract IPair","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"internalType":"struct BoringCryptoDashboardV2.PoolInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"pollPools","outputs":[{"components":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"lpBalance","type":"uint256"},{"internalType":"uint256","name":"lpTotalSupply","type":"uint256"},{"internalType":"uint256","name":"lpAllowance","type":"uint256"},{"internalType":"uint256","name":"reserve0","type":"uint256"},{"internalType":"uint256","name":"reserve1","type":"uint256"},{"internalType":"uint256","name":"token0rate","type":"uint256"},{"internalType":"uint256","name":"token1rate","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"pending","type":"uint256"}],"internalType":"struct BoringCryptoDashboardV2.UserPoolInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200232f3803806200232f833981016040819052620000349162000097565b600080546001600160a01b03199081166001600160a01b039788161790915560018054821695871695909517909455600280548516938616939093179092556003805484169185169190911790556004805490921692169190911790556200012f565b600080600080600060a08688031215620000af578081fd5b8551620000bc8162000116565b6020870151909550620000cf8162000116565b6040870151909450620000e28162000116565b6060870151909350620000f58162000116565b6080870151909250620001088162000116565b809150509295509295909350565b6001600160a01b03811681146200012c57600080fd5b50565b6121f0806200013f6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635ec54659116100505780635ec54659146100b65780635f2bf94f146100d6578063ac6091f8146100f657610067565b80632952dde81461006c5780633009f41414610096575b600080fd5b61007f61007a366004611e75565b610116565b60405161008d92919061213a565b60405180910390f35b6100a96100a4366004611e23565b61051c565b60405161008d919061208e565b6100c96100c4366004611d98565b610c21565b60405161008d9190612166565b6100e96100e4366004611dd0565b6113c7565b60405161008d9190611fe4565b610109610104366004611e23565b6117db565b60405161008d9190612074565b61011e611c55565b6060610128611c55565b60008054906101000a90046001600160a01b03166001600160a01b03166317caf6f16040518163ffffffff1660e01b815260040160206040518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190611f09565b815260008054604080517f081e3eda00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169163081e3eda91600480820192602092909190829003018186803b15801561020d57600080fd5b505afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611f09565b60208301819052905060608567ffffffffffffffff8111801561026757600080fd5b506040519080825280602002602001820160405280156102a157816020015b61028e611c6f565b8152602001906001900390816102865790505b50905060005b8681101561050c578787828181106102bb57fe5b905060200201358282815181106102ce57fe5b6020908102919091010151526000805481906001600160a01b0316631526fe278b8b868181106102fa57fe5b905060200201356040518263ffffffff1660e01b815260040161031d9190612166565b60806040518083038186803b15801561033557600080fd5b505afa158015610349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d9190611e37565b50509150915060008290508085858151811061038557fe5b6020026020010151602001906001600160a01b031690816001600160a01b031681525050818585815181106103b657fe5b60200260200101516040018181525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ff57600080fd5b505afa158015610413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104379190611db4565b85858151811061044357fe5b6020026020010151606001906001600160a01b031690816001600160a01b031681525050806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a057600080fd5b505afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d89190611db4565b8585815181106104e457fe5b60209081029190910101516001600160a01b03919091166080909101525050506001016102a7565b50919350909150505b9250929050565b6060808267ffffffffffffffff8111801561053657600080fd5b5060405190808252806020026020018201604052801561057057816020015b61055d611c9d565b8152602001906001900390816105555790505b50905060005b83811015610c1857600080546001600160a01b03166393f1a40b87878581811061059c57fe5b90506020020135896040518363ffffffff1660e01b81526004016105c192919061216f565b604080518083038186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611f21565b5090508083838151811061062057fe5b60209081029190910181015101526000546001600160a01b03166374849c5387878581811061064b57fe5b90506020020135896040518363ffffffff1660e01b815260040161067092919061216f565b60206040518083038186803b15801561068857600080fd5b505afa15801561069c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c09190611f09565b8383815181106106cc57fe5b60209081029190910101516101600152600080546001600160a01b0316631526fe278888868181106106fa57fe5b905060200201356040518263ffffffff1660e01b815260040161071d9190612166565b60806040518083038186803b15801561073557600080fd5b505afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d9190611e37565b505050905086868481811061077e57fe5b9050602002013584848151811061079157fe5b6020908102919091010151526000546040517f70a0823100000000000000000000000000000000000000000000000000000000815282916001600160a01b03808416926370a08231926107e8921690600401611fb6565b60206040518083038186803b15801561080057600080fd5b505afa158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190611f09565b85858151811061084457fe5b602090810291909101015160409081019190915260005490517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b038084169263dd62ed3e926108a2928e921690600401611fca565b60206040518083038186803b1580156108ba57600080fd5b505afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f29190611f09565b8585815181106108fe57fe5b602090810291909101015160a001526040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038216906370a0823190610952908c90600401611fb6565b60206040518083038186803b15801561096a57600080fd5b505afa15801561097e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a29190611f09565b8585815181106109ae57fe5b60200260200101516060018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f757600080fd5b505afa158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f9190611f09565b858581518110610a3b57fe5b60200260200101516080018181525050610abf816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8757600080fd5b505afa158015610a9b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c49190611db4565b858581518110610acb57fe5b6020026020010151610100018181525050610b18816001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8757600080fd5b858581518110610b2457fe5b6020026020010151610120018181525050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610b7157600080fd5b505afa158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba99190611eb5565b5091509150816dffffffffffffffffffffffffffff16878781518110610bcb57fe5b602002602001015160c0018181525050806dffffffffffffffffffffffffffff16878781518110610bf857fe5b602090810291909101015160e00152505060019093019250610576915050565b50949350505050565b600454600090670de0b6b3a7640000906001600160a01b038481169116146113bf57600154600480546040517fe6a43905000000000000000000000000000000000000000000000000000000008152600093849384936001600160a01b039283169363e6a4390593610c99938c939091169101611fca565b60206040518083038186803b158015610cb157600080fd5b505afa158015610cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce99190611db4565b600254600480546040517fe6a439050000000000000000000000000000000000000000000000000000000081529396506001600160a01b039283169363e6a4390593610d3b938c939091169101611fca565b60206040518083038186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8b9190611db4565b600354600480546040517fe6a439050000000000000000000000000000000000000000000000000000000081529395506001600160a01b039283169363e6a4390593610ddd938c939091169101611fca565b60206040518083038186803b158015610df557600080fd5b505afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190611db4565b90506001600160a01b038316158015610e4d57506001600160a01b038216155b8015610e6057506001600160a01b038116155b15610e725760009450505050506113c2565b600080808080806001600160a01b03891615610f0057886001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610ec157600080fd5b505afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef99190611eb5565b5090965094505b6001600160a01b03881615610f8757876001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610f4857600080fd5b505afa158015610f5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f809190611eb5565b5090945092505b6001600160a01b0387161561100e57866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610fcf57600080fd5b505afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110079190611eb5565b5090925090505b6001600160a01b03871615806110435750816dffffffffffffffffffffffffffff16866dffffffffffffffffffffffffffff16115b8061106d5750806dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16115b1561117a57600460009054906101000a90046001600160a01b03166001600160a01b0316896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111029190611db4565b6001600160a01b03161415611148576111416dffffffffffffffffffffffffffff8088169061113b908816670de0b6b3a7640000611c03565b90611c33565b9950611175565b6111726dffffffffffffffffffffffffffff8087169061113b908916670de0b6b3a7640000611c03565b99505b6113b5565b816dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff1611806111c75750806dffffffffffffffffffffffffffff16836dffffffffffffffffffffffffffff16115b156112bf57600460009054906101000a90046001600160a01b03166001600160a01b0316886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561122457600080fd5b505afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c9190611db4565b6001600160a01b03161415611295576111416dffffffffffffffffffffffffffff8086169061113b908616670de0b6b3a7640000611c03565b6111726dffffffffffffffffffffffffffff8085169061113b908716670de0b6b3a7640000611c03565b600460009054906101000a90046001600160a01b03166001600160a01b0316876001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561131757600080fd5b505afa15801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f9190611db4565b6001600160a01b03161415611388576111726dffffffffffffffffffffffffffff8084169061113b908416670de0b6b3a7640000611c03565b6113b26dffffffffffffffffffffffffffff8083169061113b908516670de0b6b3a7640000611c03565b99505b5050505050505050505b90505b919050565b6060808267ffffffffffffffff811180156113e157600080fd5b5060405190808252806020026020018201604052801561141b57816020015b611408611cfe565b8152602001906001900390816114005790505b50905060005b83811015610c1857600085858381811061143757fe5b905060200201602081019061144c9190611d98565b90508083838151811061145b57fe5b6020026020010151600001906001600160a01b031690816001600160a01b031681525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b857600080fd5b505afa1580156114cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f09190611db4565b8383815181106114fc57fe5b6020026020010151602001906001600160a01b031690816001600160a01b031681525050806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190611db4565b83838151811061159d57fe5b6020026020010151604001906001600160a01b031690816001600160a01b031681525050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156115fd57600080fd5b505afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190611eb5565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508185858151811061166757fe5b602002602001015160600181815250508085858151811061168457fe5b6020908102919091010151608001526040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038416906370a08231906116d8908c90600401611fb6565b60206040518083038186803b1580156116f057600080fd5b505afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117289190611f09565b85858151811061173457fe5b602002602001015160c0018181525050826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190611f09565b8585815181106117c157fe5b602090810291909101015160a00152505050600101611421565b60606000805b8381101561189457600080546001600160a01b03166393f1a40b87878581811061180757fe5b90506020020135896040518363ffffffff1660e01b815260040161182c92919061216f565b604080518083038186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190611f21565b509050801561188b576001909201915b506001016117e1565b5060608167ffffffffffffffff811180156118ae57600080fd5b506040519080825280602002602001820160405280156118e857816020015b6118d5611c6f565b8152602001906001900390816118cd5790505b5090506000915060005b84811015611bf957600080546001600160a01b03166393f1a40b88888581811061191857fe5b905060200201358a6040518363ffffffff1660e01b815260040161193d92919061216f565b604080518083038186803b15801561195457600080fd5b505afa158015611968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198c9190611f21565b5090508015611bf0578686838181106119a157fe5b905060200201358385815181106119b457fe5b6020908102919091010151526000805481906001600160a01b0316631526fe278a8a878181106119e057fe5b905060200201356040518263ffffffff1660e01b8152600401611a039190612166565b60806040518083038186803b158015611a1b57600080fd5b505afa158015611a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a539190611e37565b505091509150600082905080868881518110611a6b57fe5b6020026020010151602001906001600160a01b031690816001600160a01b03168152505081868881518110611a9c57fe5b60200260200101516040018181525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611ae557600080fd5b505afa158015611af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1d9190611db4565b868881518110611b2957fe5b6020026020010151606001906001600160a01b031690816001600160a01b031681525050806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b8657600080fd5b505afa158015611b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbe9190611db4565b868881518110611bca57fe5b60209081029190910101516001600160a01b039091166080909101525050600190940193505b506001016118f2565b5095945050505050565b600082611c1257506000611c2d565b82820282848281611c1f57fe5b0414611c2a57600080fd5b90505b92915050565b6000808211611c4157600080fd5b6000828481611c4c57fe5b04949350505050565b604051806040016040528060008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b60008083601f840112611d67578182fd5b50813567ffffffffffffffff811115611d7e578182fd5b602083019150836020808302850101111561051557600080fd5b600060208284031215611da9578081fd5b8135611c2a81612186565b600060208284031215611dc5578081fd5b8151611c2a81612186565b600080600060408486031215611de4578182fd5b8335611def81612186565b9250602084013567ffffffffffffffff811115611e0a578283fd5b611e1686828701611d56565b9497909650939450505050565b600080600060408486031215611de4578283fd5b60008060008060808587031215611e4c578081fd5b8451611e5781612186565b60208601516040870151606090970151919890975090945092505050565b60008060208385031215611e87578182fd5b823567ffffffffffffffff811115611e9d578283fd5b611ea985828601611d56565b90969095509350505050565b600080600060608486031215611ec9578283fd5b8351611ed48161219e565b6020850151909350611ee58161219e565b604085015190925063ffffffff81168114611efe578182fd5b809150509250925092565b600060208284031215611f1a578081fd5b5051919050565b60008060408385031215611f33578182fd5b505080516020909101519092909150565b6000815180845260208085019450808401835b83811015611fab57815180518852838101516001600160a01b03908116858a0152604080830151908a01526060808301518216908a0152608091820151169088015260a09096019590820190600101611f57565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561206757815180516001600160a01b03908116865287820151811688870152868201511686860152606080820151908601526080808201519086015260a0808201519086015260c0908101519085015260e09093019290850190600101612001565b5091979650505050505050565b6000602082526120876020830184611f44565b9392505050565b602080825282518282018190526000919060409081850190868401855b828110156120675781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e08082015190860152610100808201519086015261012080820151908601526101408082015190860152610160908101519085015261018090930192908501906001016120ab565b600083518252602084015160208301526060604083015261215e6060830184611f44565b949350505050565b90815260200190565b9182526001600160a01b0316602082015260400190565b6001600160a01b038116811461219b57600080fd5b50565b6dffffffffffffffffffffffffffff8116811461219b57600080fdfea2646970667358221220b4466203d2107fd188378cdef161e0e8234c9134893326087c38ad6d7e768c9d64736f6c634300060c003300000000000000000000000094235659cf8b805b2c658f9ea2d6d6ddbb17c8d70000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac000000000000000000000000115934131916c8b277dd010ee02de363c09d037c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100675760003560e01c80635ec54659116100505780635ec54659146100b65780635f2bf94f146100d6578063ac6091f8146100f657610067565b80632952dde81461006c5780633009f41414610096575b600080fd5b61007f61007a366004611e75565b610116565b60405161008d92919061213a565b60405180910390f35b6100a96100a4366004611e23565b61051c565b60405161008d919061208e565b6100c96100c4366004611d98565b610c21565b60405161008d9190612166565b6100e96100e4366004611dd0565b6113c7565b60405161008d9190611fe4565b610109610104366004611e23565b6117db565b60405161008d9190612074565b61011e611c55565b6060610128611c55565b60008054906101000a90046001600160a01b03166001600160a01b03166317caf6f16040518163ffffffff1660e01b815260040160206040518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190611f09565b815260008054604080517f081e3eda00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169163081e3eda91600480820192602092909190829003018186803b15801561020d57600080fd5b505afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611f09565b60208301819052905060608567ffffffffffffffff8111801561026757600080fd5b506040519080825280602002602001820160405280156102a157816020015b61028e611c6f565b8152602001906001900390816102865790505b50905060005b8681101561050c578787828181106102bb57fe5b905060200201358282815181106102ce57fe5b6020908102919091010151526000805481906001600160a01b0316631526fe278b8b868181106102fa57fe5b905060200201356040518263ffffffff1660e01b815260040161031d9190612166565b60806040518083038186803b15801561033557600080fd5b505afa158015610349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d9190611e37565b50509150915060008290508085858151811061038557fe5b6020026020010151602001906001600160a01b031690816001600160a01b031681525050818585815181106103b657fe5b60200260200101516040018181525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ff57600080fd5b505afa158015610413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104379190611db4565b85858151811061044357fe5b6020026020010151606001906001600160a01b031690816001600160a01b031681525050806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a057600080fd5b505afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d89190611db4565b8585815181106104e457fe5b60209081029190910101516001600160a01b03919091166080909101525050506001016102a7565b50919350909150505b9250929050565b6060808267ffffffffffffffff8111801561053657600080fd5b5060405190808252806020026020018201604052801561057057816020015b61055d611c9d565b8152602001906001900390816105555790505b50905060005b83811015610c1857600080546001600160a01b03166393f1a40b87878581811061059c57fe5b90506020020135896040518363ffffffff1660e01b81526004016105c192919061216f565b604080518083038186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611f21565b5090508083838151811061062057fe5b60209081029190910181015101526000546001600160a01b03166374849c5387878581811061064b57fe5b90506020020135896040518363ffffffff1660e01b815260040161067092919061216f565b60206040518083038186803b15801561068857600080fd5b505afa15801561069c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c09190611f09565b8383815181106106cc57fe5b60209081029190910101516101600152600080546001600160a01b0316631526fe278888868181106106fa57fe5b905060200201356040518263ffffffff1660e01b815260040161071d9190612166565b60806040518083038186803b15801561073557600080fd5b505afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d9190611e37565b505050905086868481811061077e57fe5b9050602002013584848151811061079157fe5b6020908102919091010151526000546040517f70a0823100000000000000000000000000000000000000000000000000000000815282916001600160a01b03808416926370a08231926107e8921690600401611fb6565b60206040518083038186803b15801561080057600080fd5b505afa158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190611f09565b85858151811061084457fe5b602090810291909101015160409081019190915260005490517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b038084169263dd62ed3e926108a2928e921690600401611fca565b60206040518083038186803b1580156108ba57600080fd5b505afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f29190611f09565b8585815181106108fe57fe5b602090810291909101015160a001526040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038216906370a0823190610952908c90600401611fb6565b60206040518083038186803b15801561096a57600080fd5b505afa15801561097e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a29190611f09565b8585815181106109ae57fe5b60200260200101516060018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f757600080fd5b505afa158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f9190611f09565b858581518110610a3b57fe5b60200260200101516080018181525050610abf816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8757600080fd5b505afa158015610a9b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c49190611db4565b858581518110610acb57fe5b6020026020010151610100018181525050610b18816001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8757600080fd5b858581518110610b2457fe5b6020026020010151610120018181525050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610b7157600080fd5b505afa158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba99190611eb5565b5091509150816dffffffffffffffffffffffffffff16878781518110610bcb57fe5b602002602001015160c0018181525050806dffffffffffffffffffffffffffff16878781518110610bf857fe5b602090810291909101015160e00152505060019093019250610576915050565b50949350505050565b600454600090670de0b6b3a7640000906001600160a01b038481169116146113bf57600154600480546040517fe6a43905000000000000000000000000000000000000000000000000000000008152600093849384936001600160a01b039283169363e6a4390593610c99938c939091169101611fca565b60206040518083038186803b158015610cb157600080fd5b505afa158015610cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce99190611db4565b600254600480546040517fe6a439050000000000000000000000000000000000000000000000000000000081529396506001600160a01b039283169363e6a4390593610d3b938c939091169101611fca565b60206040518083038186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8b9190611db4565b600354600480546040517fe6a439050000000000000000000000000000000000000000000000000000000081529395506001600160a01b039283169363e6a4390593610ddd938c939091169101611fca565b60206040518083038186803b158015610df557600080fd5b505afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190611db4565b90506001600160a01b038316158015610e4d57506001600160a01b038216155b8015610e6057506001600160a01b038116155b15610e725760009450505050506113c2565b600080808080806001600160a01b03891615610f0057886001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610ec157600080fd5b505afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef99190611eb5565b5090965094505b6001600160a01b03881615610f8757876001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610f4857600080fd5b505afa158015610f5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f809190611eb5565b5090945092505b6001600160a01b0387161561100e57866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610fcf57600080fd5b505afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110079190611eb5565b5090925090505b6001600160a01b03871615806110435750816dffffffffffffffffffffffffffff16866dffffffffffffffffffffffffffff16115b8061106d5750806dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16115b1561117a57600460009054906101000a90046001600160a01b03166001600160a01b0316896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111029190611db4565b6001600160a01b03161415611148576111416dffffffffffffffffffffffffffff8088169061113b908816670de0b6b3a7640000611c03565b90611c33565b9950611175565b6111726dffffffffffffffffffffffffffff8087169061113b908916670de0b6b3a7640000611c03565b99505b6113b5565b816dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff1611806111c75750806dffffffffffffffffffffffffffff16836dffffffffffffffffffffffffffff16115b156112bf57600460009054906101000a90046001600160a01b03166001600160a01b0316886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561122457600080fd5b505afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c9190611db4565b6001600160a01b03161415611295576111416dffffffffffffffffffffffffffff8086169061113b908616670de0b6b3a7640000611c03565b6111726dffffffffffffffffffffffffffff8085169061113b908716670de0b6b3a7640000611c03565b600460009054906101000a90046001600160a01b03166001600160a01b0316876001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561131757600080fd5b505afa15801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f9190611db4565b6001600160a01b03161415611388576111726dffffffffffffffffffffffffffff8084169061113b908416670de0b6b3a7640000611c03565b6113b26dffffffffffffffffffffffffffff8083169061113b908516670de0b6b3a7640000611c03565b99505b5050505050505050505b90505b919050565b6060808267ffffffffffffffff811180156113e157600080fd5b5060405190808252806020026020018201604052801561141b57816020015b611408611cfe565b8152602001906001900390816114005790505b50905060005b83811015610c1857600085858381811061143757fe5b905060200201602081019061144c9190611d98565b90508083838151811061145b57fe5b6020026020010151600001906001600160a01b031690816001600160a01b031681525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b857600080fd5b505afa1580156114cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f09190611db4565b8383815181106114fc57fe5b6020026020010151602001906001600160a01b031690816001600160a01b031681525050806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190611db4565b83838151811061159d57fe5b6020026020010151604001906001600160a01b031690816001600160a01b031681525050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156115fd57600080fd5b505afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190611eb5565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508185858151811061166757fe5b602002602001015160600181815250508085858151811061168457fe5b6020908102919091010151608001526040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038416906370a08231906116d8908c90600401611fb6565b60206040518083038186803b1580156116f057600080fd5b505afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117289190611f09565b85858151811061173457fe5b602002602001015160c0018181525050826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190611f09565b8585815181106117c157fe5b602090810291909101015160a00152505050600101611421565b60606000805b8381101561189457600080546001600160a01b03166393f1a40b87878581811061180757fe5b90506020020135896040518363ffffffff1660e01b815260040161182c92919061216f565b604080518083038186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190611f21565b509050801561188b576001909201915b506001016117e1565b5060608167ffffffffffffffff811180156118ae57600080fd5b506040519080825280602002602001820160405280156118e857816020015b6118d5611c6f565b8152602001906001900390816118cd5790505b5090506000915060005b84811015611bf957600080546001600160a01b03166393f1a40b88888581811061191857fe5b905060200201358a6040518363ffffffff1660e01b815260040161193d92919061216f565b604080518083038186803b15801561195457600080fd5b505afa158015611968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198c9190611f21565b5090508015611bf0578686838181106119a157fe5b905060200201358385815181106119b457fe5b6020908102919091010151526000805481906001600160a01b0316631526fe278a8a878181106119e057fe5b905060200201356040518263ffffffff1660e01b8152600401611a039190612166565b60806040518083038186803b158015611a1b57600080fd5b505afa158015611a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a539190611e37565b505091509150600082905080868881518110611a6b57fe5b6020026020010151602001906001600160a01b031690816001600160a01b03168152505081868881518110611a9c57fe5b60200260200101516040018181525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611ae557600080fd5b505afa158015611af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1d9190611db4565b868881518110611b2957fe5b6020026020010151606001906001600160a01b031690816001600160a01b031681525050806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b8657600080fd5b505afa158015611b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbe9190611db4565b868881518110611bca57fe5b60209081029190910101516001600160a01b039091166080909101525050600190940193505b506001016118f2565b5095945050505050565b600082611c1257506000611c2d565b82820282848281611c1f57fe5b0414611c2a57600080fd5b90505b92915050565b6000808211611c4157600080fd5b6000828481611c4c57fe5b04949350505050565b604051806040016040528060008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b60008083601f840112611d67578182fd5b50813567ffffffffffffffff811115611d7e578182fd5b602083019150836020808302850101111561051557600080fd5b600060208284031215611da9578081fd5b8135611c2a81612186565b600060208284031215611dc5578081fd5b8151611c2a81612186565b600080600060408486031215611de4578182fd5b8335611def81612186565b9250602084013567ffffffffffffffff811115611e0a578283fd5b611e1686828701611d56565b9497909650939450505050565b600080600060408486031215611de4578283fd5b60008060008060808587031215611e4c578081fd5b8451611e5781612186565b60208601516040870151606090970151919890975090945092505050565b60008060208385031215611e87578182fd5b823567ffffffffffffffff811115611e9d578283fd5b611ea985828601611d56565b90969095509350505050565b600080600060608486031215611ec9578283fd5b8351611ed48161219e565b6020850151909350611ee58161219e565b604085015190925063ffffffff81168114611efe578182fd5b809150509250925092565b600060208284031215611f1a578081fd5b5051919050565b60008060408385031215611f33578182fd5b505080516020909101519092909150565b6000815180845260208085019450808401835b83811015611fab57815180518852838101516001600160a01b03908116858a0152604080830151908a01526060808301518216908a0152608091820151169088015260a09096019590820190600101611f57565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561206757815180516001600160a01b03908116865287820151811688870152868201511686860152606080820151908601526080808201519086015260a0808201519086015260c0908101519085015260e09093019290850190600101612001565b5091979650505050505050565b6000602082526120876020830184611f44565b9392505050565b602080825282518282018190526000919060409081850190868401855b828110156120675781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e08082015190860152610100808201519086015261012080820151908601526101408082015190860152610160908101519085015261018090930192908501906001016120ab565b600083518252602084015160208301526060604083015261215e6060830184611f44565b949350505050565b90815260200190565b9182526001600160a01b0316602082015260400190565b6001600160a01b038116811461219b57600080fd5b50565b6dffffffffffffffffffffffffffff8116811461219b57600080fdfea2646970667358221220b4466203d2107fd188378cdef161e0e8234c9134893326087c38ad6d7e768c9d64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000094235659cf8b805b2c658f9ea2d6d6ddbb17c8d70000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac000000000000000000000000115934131916c8b277dd010ee02de363c09d037c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
-----Decoded View---------------
Arg [0] : _topdog (address): 0x94235659cF8b805B2c658f9ea2D6d6DDbb17C8d7
Arg [1] : _uniFactory (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [2] : _sushiFactory (address): 0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac
Arg [3] : _shibaFactory (address): 0x115934131916C8b277DD010Ee02de363c09d037c
Arg [4] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000094235659cf8b805b2c658f9ea2d6d6ddbb17c8d7
Arg [1] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [2] : 000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac
Arg [3] : 000000000000000000000000115934131916c8b277dd010ee02de363c09d037c
Arg [4] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.