More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 762 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Tokens | 15345383 | 813 days ago | IN | 0 ETH | 0.00043932 | ||||
Transfer Tokens | 15345244 | 813 days ago | IN | 0 ETH | 0.00033912 | ||||
Transfer Tokens | 15345095 | 813 days ago | IN | 0 ETH | 0.00044147 | ||||
Transfer Tokens | 12768580 | 1219 days ago | IN | 0 ETH | 0.00091549 | ||||
Transfer Tokens | 11811249 | 1366 days ago | IN | 0 ETH | 0.00350016 | ||||
Transfer Tokens | 11456498 | 1421 days ago | IN | 0 ETH | 0.00261723 | ||||
Transfer | 11239342 | 1454 days ago | IN | 0 ETH | 0.00085158 | ||||
Transfer | 11140804 | 1469 days ago | IN | 0 ETH | 0.00091247 | ||||
Transfer | 11118923 | 1473 days ago | IN | 0 ETH | 0.00082644 | ||||
Transfer | 11080341 | 1479 days ago | IN | 0 ETH | 0.00200253 | ||||
0x8ee410e3 | 11080268 | 1479 days ago | IN | 0.255 ETH | 0.00590442 | ||||
0x8bfc3c5b | 10958652 | 1497 days ago | IN | 0.051 ETH | 0.01267375 | ||||
Transfer | 10956358 | 1498 days ago | IN | 0 ETH | 0.00604461 | ||||
0x8bfc3c5b | 10938886 | 1501 days ago | IN | 0.05 ETH | 0.0073634 | ||||
0x8bfc3c5b | 10938825 | 1501 days ago | IN | 0.15 ETH | 0.01390945 | ||||
Transfer Tokens | 10861723 | 1512 days ago | IN | 0 ETH | 0.00283797 | ||||
Transfer Tokens | 10731205 | 1532 days ago | IN | 0 ETH | 0.00479301 | ||||
Transfer Tokens | 10731164 | 1532 days ago | IN | 0 ETH | 0.00479119 | ||||
Transfer | 10722502 | 1534 days ago | IN | 0 ETH | 0.001743 | ||||
Transfer | 10722486 | 1534 days ago | IN | 0 ETH | 0.00215878 | ||||
Transfer | 10710985 | 1536 days ago | IN | 0 ETH | 0.0028849 | ||||
Transfer | 10694511 | 1538 days ago | IN | 0.123 ETH | 0.002436 | ||||
Transfer | 10694507 | 1538 days ago | IN | 0.123 ETH | 0.002436 | ||||
Transfer | 10691944 | 1538 days ago | IN | 0.132 ETH | 0.003213 | ||||
Transfer | 10691932 | 1538 days ago | IN | 0.129 ETH | 0.003213 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15345383 | 813 days ago | 8.6695315 ETH | ||||
15345244 | 813 days ago | 0.1 ETH | ||||
15345095 | 813 days ago | 0.1 ETH | ||||
12768580 | 1219 days ago | 0.21 ETH | ||||
11811249 | 1366 days ago | 1 ETH | ||||
11456498 | 1421 days ago | 0.7 ETH | ||||
11080341 | 1479 days ago | 0.1275 ETH | ||||
11080268 | 1479 days ago | 0.007395 ETH | ||||
11080268 | 1479 days ago | 0.0036975 ETH | ||||
11080268 | 1479 days ago | 0.0036975 ETH | ||||
10958652 | 1497 days ago | 0.001479 ETH | ||||
10958652 | 1497 days ago | 0.0007395 ETH | ||||
10958652 | 1497 days ago | 0.0007395 ETH | ||||
10956358 | 1498 days ago | 0.1 ETH | ||||
10938886 | 1501 days ago | 0.00145 ETH | ||||
10938886 | 1501 days ago | 0.000725 ETH | ||||
10938886 | 1501 days ago | 0.000725 ETH | ||||
10938825 | 1501 days ago | 0.00435 ETH | ||||
10938825 | 1501 days ago | 0.002175 ETH | ||||
10938825 | 1501 days ago | 0.002175 ETH | ||||
10861723 | 1512 days ago | 1.5 ETH | ||||
10731205 | 1532 days ago | 2.8 ETH | ||||
10731164 | 1532 days ago | 0.01 ETH | ||||
10710985 | 1536 days ago | 0.25 ETH | ||||
10667385 | 1542 days ago | 0.2 ETH |
Loading...
Loading
Contract Name:
Cube
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-02-29 */ pragma solidity ^0.5.16; /* Marketing plan cube, works on VOMER technology, terms of service 1 line 50% 2 line 20% bonus marketing up to 12 lines of 1%. rules 1 connection opens 1 line additionally. 12/12/12 */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } } contract ERC20 { uint public decimals; function allowance(address, address) public view returns (uint); function balanceOf(address) public view returns (uint); function approve(address, uint) public; function transfer(address, uint) public returns (bool); function transferFrom(address, address, uint) public returns (bool); } /** * @dev Collection of functions related to the address type, */ library Address { /** * @dev Returns true if `account` is a contract. * * This test is non-exhaustive, and there may be false-negatives: during the * execution of a contract's constructor, its address will be reported as * not containing a contract. * * > It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(ERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(ERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(ERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(ERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function callOptionalReturn(ERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } library UniversalERC20 { using SafeMath for uint256; using SafeERC20 for ERC20; ERC20 private constant ZERO_ADDRESS = ERC20(0x0000000000000000000000000000000000000000); ERC20 private constant ETH_ADDRESS = ERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); function universalTransfer(ERC20 token, address to, uint256 amount) internal { universalTransfer(token, to, amount, false); } function universalTransfer(ERC20 token, address to, uint256 amount, bool mayFail) internal returns(bool) { if (amount == 0) { return true; } if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { if (mayFail) { return address(uint160(to)).send(amount); } else { address(uint160(to)).transfer(amount); return true; } } else { token.safeTransfer(to, amount); return true; } } function universalApprove(ERC20 token, address to, uint256 amount) internal { if (token != ZERO_ADDRESS && token != ETH_ADDRESS) { token.safeApprove(to, amount); } } function universalTransferFrom(ERC20 token, address from, address to, uint256 amount) internal { if (amount == 0) { return; } if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { require(from == msg.sender && msg.value >= amount, "msg.value is zero"); if (to != address(this)) { address(uint160(to)).transfer(amount); } if (msg.value > amount) { msg.sender.transfer(uint256(msg.value).sub(amount)); } } else { token.safeTransferFrom(from, to, amount); } } function universalBalanceOf(ERC20 token, address who) internal view returns (uint256) { if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { return who.balance; } else { return token.balanceOf(who); } } } contract Ownable { address payable public owner = msg.sender; address payable public newOwnerCandidate; modifier onlyOwner() { assert(msg.sender == owner); _; } function changeOwnerCandidate(address payable newOwner) public onlyOwner { newOwnerCandidate = newOwner; } function acceptOwner() public { require(msg.sender == newOwnerCandidate); owner = newOwnerCandidate; } } contract Cube is Ownable { using SafeMath for uint256; using UniversalERC20 for ERC20; uint256 minAmountOfEthToBeEffectiveRefferal = 0.25 ether; function changeMinAmountOfEthToBeEffectiveRefferal(uint256 minAmount) onlyOwner public { minAmountOfEthToBeEffectiveRefferal = minAmount; } // Withdraw and lock funds uint256 public fundsLockedtoWithdraw; uint256 public dateUntilFundsLocked; function lockFunds(uint256 amount) public onlyOwner { // funds lock is active if (dateUntilFundsLocked > now) { require(amount > fundsLockedtoWithdraw); } fundsLockedtoWithdraw = amount; dateUntilFundsLocked = now + 30 days; } function bytesToAddress(bytes memory bys) private pure returns (address payable addr) { assembly { addr := mload(add(bys,20)) } } ERC20 private constant ZERO_ADDRESS = ERC20(0x0000000000000000000000000000000000000000); ERC20 private constant ETH_ADDRESS = ERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); // function for transfer any token from contract function transferTokens(ERC20 token, address target, uint256 amount) onlyOwner public { if (target == address(0x0)) target = owner; if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { if (dateUntilFundsLocked > now) require(address(this).balance.sub(amount) > fundsLockedtoWithdraw); } ERC20(token).universalTransfer(target, amount); } mapping(address => address) refList; struct UserData { uint256 invested; uint256[12] pendingReward; uint256 receivedReward; uint128 refUserCount; uint128 effectiveRefUserCount; uint256 createdAt; bool partnerRewardActivated; } mapping(address => UserData) users; function getRefByUser(address addr) view public returns (address) { return refList[addr]; } function getUserInfo(address addr) view public returns (uint256 invested, uint256[12] memory pendingReward, uint256 receivedReward, uint256 refUserCount, uint128 effectiveRefUserCount, uint256 createdAt, bool partnerRewardActivated) { invested = users[addr].invested; pendingReward = users[addr].pendingReward; receivedReward = users[addr].receivedReward; refUserCount = users[addr].refUserCount; effectiveRefUserCount = users[addr].effectiveRefUserCount; createdAt = users[addr].createdAt; partnerRewardActivated = users[addr].partnerRewardActivated; } function getLevelReward(uint8 level) pure internal returns(uint256 rewardLevel, uint128 minUsersRequired) { if (level == 0) return (50, 0); else if (level == 1) return (20, 0); else if (level < 12) return (1, level); else return (0,0); } event Reward(address indexed userAddress, uint256 amount); function withdrawReward() public { UserData storage user = users[msg.sender]; address payable userAddress = msg.sender; require(user.invested >= minAmountOfEthToBeEffectiveRefferal); uint256 reward = 0; bool isUserUnactive = ((user.createdAt > 0 && (block.timestamp - user.createdAt) >= 365 days) && (user.effectiveRefUserCount < 12)); for(uint8 i = 0; i < 12;i++) { // user can't get reward after level 2 if (i >= 2 && isUserUnactive) break; uint128 minUsersRequired; (, minUsersRequired) = getLevelReward(i); if (user.effectiveRefUserCount >= minUsersRequired) { if (user.pendingReward[i] > 0) { reward = reward.add(user.pendingReward[i]); user.pendingReward[i] = 0; } } else { break; } } emit Reward(msg.sender, reward); user.receivedReward = user.receivedReward.add(reward); userAddress.transfer(reward); } function isUnactiveUser(UserData memory user ) view internal returns (bool) { return (user.createdAt > 0 && (block.timestamp - user.createdAt) >= 365 days) && (user.effectiveRefUserCount < 12); } address payable addressSupportProject = 0x598f9A85483641F0A4c18d02cC1210f4C81eF1e0; address payable addressAdv = 0xbcA88515dBE20fa9F8FAB6718e8C1A40C876Cfd4; address payable addressRes = 0x2b192b50AfE554023A71762101e3aF044783Bf10; function () payable external { assert(msg.sender == tx.origin); // prevent bots to interact with contract if (msg.sender == owner) return; if (msg.value == 0) { withdrawReward(); return; } require(msg.value >= 0.01 ether); address payable ref; if (refList[msg.sender] != address(0)) { ref = address(uint160(refList[msg.sender])); } else { require(msg.data.length == 20); ref = bytesToAddress(msg.data); assert(ref != msg.sender); refList[msg.sender] = ref; } uint256 ethAmountRest = msg.value; UserData storage user = users[msg.sender]; // если новый пользователь - увеличиваем у партнёра кол-во привлечённых людей bool isNewUser = user.createdAt == 0; if (isNewUser) { users[ref].refUserCount++; user.createdAt = block.timestamp; } user.invested = user.invested.add(msg.value); if (!user.partnerRewardActivated && user.invested > minAmountOfEthToBeEffectiveRefferal) { user.partnerRewardActivated = true; users[ref].effectiveRefUserCount++; } for(uint8 i = 0;i < 12;i++) { uint256 rewardAmount; uint128 minUsersRequired; (rewardAmount, minUsersRequired) = getLevelReward(i); uint256 rewardForRef = msg.value * rewardAmount / 100; ethAmountRest = ethAmountRest.sub(rewardForRef); users[ref].pendingReward[minUsersRequired] += rewardForRef; ref = address(uint160(refList[address(ref)])); if (ref == address(0)) break; } addressSupportProject.transfer(ethAmountRest * 5 / 100); addressAdv.transfer(ethAmountRest * 5 / 100); addressRes.transfer(ethAmountRest * 10 / 100); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"changeMinAmountOfEthToBeEffectiveRefferal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"changeOwnerCandidate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dateUntilFundsLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsLockedtoWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRefByUser","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"uint256","name":"invested","type":"uint256"},{"internalType":"uint256[12]","name":"pendingReward","type":"uint256[12]"},{"internalType":"uint256","name":"receivedReward","type":"uint256"},{"internalType":"uint256","name":"refUserCount","type":"uint256"},{"internalType":"uint128","name":"effectiveRefUserCount","type":"uint128"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"bool","name":"partnerRewardActivated","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lockFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600080546001600160a01b031990811633179091556703782dace9d9000060025560078054821673598f9a85483641f0a4c18d02cc1210f4c81ef1e017905560088054821673bca88515dbe20fa9f8fab6718e8c1a40c876cfd417905560098054909116732b192b50afe554023a71762101e3af044783bf1017905534801561008c57600080fd5b50610f248061009c6000396000f3fe6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146105b4578063a64b6e5f146105c9578063c885bc581461060c578063d091b55014610621578063ebbc496514610636578063f8800fae1461064b576100a7565b80631a3e27c41461040b578063524b50e514610435578063561a01b8146104845780636386c1c7146104b757806389c3ef6c146105635780638c8f95fb1461058a575b3332146100b057fe5b6000546001600160a01b03163314156100c857610409565b346100da576100d5610660565b610409565b662386f26fc100003410156100ee57600080fd5b336000908152600560205260408120546001600160a01b03161561012b5750336000908152600560205260409020546001600160a01b03166101b6565b6014361461013857600080fd5b6101786000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061081a92505050565b90506001600160a01b03811633141561018d57fe5b33600090815260056020526040902080546001600160a01b0319166001600160a01b0383161790555b336000908152600660205260409020600f81015434919015801561021f576001600160a01b0384166000908152600660205260409020600e0180546001600160801b03808216600101166fffffffffffffffffffffffffffffffff1990911617905542600f8301555b8154610231903463ffffffff61082116565b8255601082015460ff1615801561024a57506002548254115b156102a15760108201805460ff191660019081179091556001600160a01b0385166000908152600660205260409020600e0180546001600160801b03600160801b8083048216909401811690930292169190911790555b60005b600c8160ff161015610343576000806102bc83610882565b90925090506064348302046102d187826108d7565b6001600160a01b038916600090815260066020526040902090975081906001016001600160801b038416600c811061030557fe5b01805490910190556001600160a01b03978816600090815260056020526040902054909716968761033857505050610343565b5050506001016102a4565b506007546040516001600160a01b03909116906064600586020480156108fc02916000818181858888f19350505050158015610383573d6000803e3d6000fd5b506008546040516001600160a01b03909116906064600586020480156108fc02916000818181858888f193505050501580156103c3573d6000803e3d6000fd5b506009546040516001600160a01b03909116906064600a86020480156108fc02916000818181858888f19350505050158015610403573d6000803e3d6000fd5b50505050505b005b34801561041757600080fd5b506104096004803603602081101561042e57600080fd5b5035610934565b34801561044157600080fd5b506104686004803603602081101561045857600080fd5b50356001600160a01b031661094d565b604080516001600160a01b039092168252519081900360200190f35b34801561049057600080fd5b50610409600480360360208110156104a757600080fd5b50356001600160a01b031661096b565b3480156104c357600080fd5b506104ea600480360360208110156104da57600080fd5b50356001600160a01b03166109a1565b604051878152602081018761018080838360005b838110156105165781810151838201526020016104fe565b50505050905001868152602001858152602001846001600160801b03166001600160801b031681526020018381526020018215151515815260200197505050505050505060405180910390f35b34801561056f57600080fd5b50610578610a5d565b60408051918252519081900360200190f35b34801561059657600080fd5b50610409600480360360208110156105ad57600080fd5b5035610a63565b3480156105c057600080fd5b50610468610a9d565b3480156105d557600080fd5b50610409600480360360608110156105ec57600080fd5b506001600160a01b03813581169160208101359091169060400135610aac565b34801561061857600080fd5b50610409610660565b34801561062d57600080fd5b50610468610b5a565b34801561064257600080fd5b50610409610b69565b34801561065757600080fd5b50610578610ba4565b3360008181526006602052604090206002548154919291101561068257600080fd5b600f8201546000908190158015906106a457506301e1338084600f0154420310155b80156106c55750600e840154600c600160801b9091046001600160801b0316105b905060005b600c8160ff16101561078c5760028160ff16101580156106e75750815b156106f15761078c565b60006106fc82610882565b600e8801549092506001600160801b03808416600160801b9092041610905061077d576000866001018360ff16600c811061073357fe5b015411156107785761075f866001018360ff16600c811061075057fe5b0154859063ffffffff61082116565b93506000866001018360ff16600c811061077557fe5b01555b610783565b5061078c565b506001016106ca565b5060408051838152905133917f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc9919081900360200190a2600d8401546107d8908363ffffffff61082116565b600d8501556040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610813573d6000803e3d6000fd5b5050505050565b6014015190565b60008282018381101561087b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008060ff831661089957506032905060006108d2565b8260ff16600114156108b157506014905060006108d2565b600c8360ff1610156108cb57506001905060ff82166108d2565b5060009050805b915091565b60008282111561092e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000546001600160a01b0316331461094857fe5b600255565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b0316331461097f57fe5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006109ab610ea6565b6001600160a01b03831660009081526006602052604080822080548251610180810190935294508291829182918291600101600c8282826020028201915b8154815260200190600101908083116109e9575050506001600160a01b03909a166000908152600660205260409020600d810154600e820154600f8301546010909301549b9d949c50909a6001600160801b038083169b50600160801b909204909116985090965060ff1694509092505050565b60035481565b6000546001600160a01b03163314610a7757fe5b426004541115610a8f576003548111610a8f57600080fd5b60035562278d004201600455565b6000546001600160a01b031681565b6000546001600160a01b03163314610ac057fe5b6001600160a01b038216610add576000546001600160a01b031691505b6001600160a01b0383161580610b0f57506001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b15610b3b57426004541115610b3b57600354610b31478363ffffffff6108d716565b11610b3b57600080fd5b610b556001600160a01b038416838363ffffffff610baa16565b505050565b6001546001600160a01b031681565b6001546001600160a01b03163314610b8057600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60045481565b610bb78383836000610bbd565b50505050565b600082610bcc57506001610c93565b6001600160a01b0385161580610bfe57506001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b15610c75578115610c35576040516001600160a01b0385169084156108fc029085906000818181858888f193505050509050610c93565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015610c6b573d6000803e3d6000fd5b5060019050610c93565b610c8f6001600160a01b038616858563ffffffff610c9b16565b5060015b949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610b55908490610cfa826001600160a01b0316610ea0565b610d4b576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610d895780518252601f199092019160209182019101610d6a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610deb576040519150601f19603f3d011682016040523d82523d6000602084013e610df0565b606091505b509150915081610e47576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610bb757808060200190516020811015610e6357600080fd5b5051610bb75760405162461bcd60e51b815260040180806020018281038252602a815260200180610ec6602a913960400191505060405180910390fd5b3b151590565b604051806101800160405280600c90602082028038833950919291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158205be074f2ca963a62766a10e2d8cd6a21ac9aa75f916efbb69a0bc044f5a10d7064736f6c63430005100032
Deployed Bytecode
0x6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146105b4578063a64b6e5f146105c9578063c885bc581461060c578063d091b55014610621578063ebbc496514610636578063f8800fae1461064b576100a7565b80631a3e27c41461040b578063524b50e514610435578063561a01b8146104845780636386c1c7146104b757806389c3ef6c146105635780638c8f95fb1461058a575b3332146100b057fe5b6000546001600160a01b03163314156100c857610409565b346100da576100d5610660565b610409565b662386f26fc100003410156100ee57600080fd5b336000908152600560205260408120546001600160a01b03161561012b5750336000908152600560205260409020546001600160a01b03166101b6565b6014361461013857600080fd5b6101786000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061081a92505050565b90506001600160a01b03811633141561018d57fe5b33600090815260056020526040902080546001600160a01b0319166001600160a01b0383161790555b336000908152600660205260409020600f81015434919015801561021f576001600160a01b0384166000908152600660205260409020600e0180546001600160801b03808216600101166fffffffffffffffffffffffffffffffff1990911617905542600f8301555b8154610231903463ffffffff61082116565b8255601082015460ff1615801561024a57506002548254115b156102a15760108201805460ff191660019081179091556001600160a01b0385166000908152600660205260409020600e0180546001600160801b03600160801b8083048216909401811690930292169190911790555b60005b600c8160ff161015610343576000806102bc83610882565b90925090506064348302046102d187826108d7565b6001600160a01b038916600090815260066020526040902090975081906001016001600160801b038416600c811061030557fe5b01805490910190556001600160a01b03978816600090815260056020526040902054909716968761033857505050610343565b5050506001016102a4565b506007546040516001600160a01b03909116906064600586020480156108fc02916000818181858888f19350505050158015610383573d6000803e3d6000fd5b506008546040516001600160a01b03909116906064600586020480156108fc02916000818181858888f193505050501580156103c3573d6000803e3d6000fd5b506009546040516001600160a01b03909116906064600a86020480156108fc02916000818181858888f19350505050158015610403573d6000803e3d6000fd5b50505050505b005b34801561041757600080fd5b506104096004803603602081101561042e57600080fd5b5035610934565b34801561044157600080fd5b506104686004803603602081101561045857600080fd5b50356001600160a01b031661094d565b604080516001600160a01b039092168252519081900360200190f35b34801561049057600080fd5b50610409600480360360208110156104a757600080fd5b50356001600160a01b031661096b565b3480156104c357600080fd5b506104ea600480360360208110156104da57600080fd5b50356001600160a01b03166109a1565b604051878152602081018761018080838360005b838110156105165781810151838201526020016104fe565b50505050905001868152602001858152602001846001600160801b03166001600160801b031681526020018381526020018215151515815260200197505050505050505060405180910390f35b34801561056f57600080fd5b50610578610a5d565b60408051918252519081900360200190f35b34801561059657600080fd5b50610409600480360360208110156105ad57600080fd5b5035610a63565b3480156105c057600080fd5b50610468610a9d565b3480156105d557600080fd5b50610409600480360360608110156105ec57600080fd5b506001600160a01b03813581169160208101359091169060400135610aac565b34801561061857600080fd5b50610409610660565b34801561062d57600080fd5b50610468610b5a565b34801561064257600080fd5b50610409610b69565b34801561065757600080fd5b50610578610ba4565b3360008181526006602052604090206002548154919291101561068257600080fd5b600f8201546000908190158015906106a457506301e1338084600f0154420310155b80156106c55750600e840154600c600160801b9091046001600160801b0316105b905060005b600c8160ff16101561078c5760028160ff16101580156106e75750815b156106f15761078c565b60006106fc82610882565b600e8801549092506001600160801b03808416600160801b9092041610905061077d576000866001018360ff16600c811061073357fe5b015411156107785761075f866001018360ff16600c811061075057fe5b0154859063ffffffff61082116565b93506000866001018360ff16600c811061077557fe5b01555b610783565b5061078c565b506001016106ca565b5060408051838152905133917f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc9919081900360200190a2600d8401546107d8908363ffffffff61082116565b600d8501556040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610813573d6000803e3d6000fd5b5050505050565b6014015190565b60008282018381101561087b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008060ff831661089957506032905060006108d2565b8260ff16600114156108b157506014905060006108d2565b600c8360ff1610156108cb57506001905060ff82166108d2565b5060009050805b915091565b60008282111561092e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000546001600160a01b0316331461094857fe5b600255565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b0316331461097f57fe5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006109ab610ea6565b6001600160a01b03831660009081526006602052604080822080548251610180810190935294508291829182918291600101600c8282826020028201915b8154815260200190600101908083116109e9575050506001600160a01b03909a166000908152600660205260409020600d810154600e820154600f8301546010909301549b9d949c50909a6001600160801b038083169b50600160801b909204909116985090965060ff1694509092505050565b60035481565b6000546001600160a01b03163314610a7757fe5b426004541115610a8f576003548111610a8f57600080fd5b60035562278d004201600455565b6000546001600160a01b031681565b6000546001600160a01b03163314610ac057fe5b6001600160a01b038216610add576000546001600160a01b031691505b6001600160a01b0383161580610b0f57506001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b15610b3b57426004541115610b3b57600354610b31478363ffffffff6108d716565b11610b3b57600080fd5b610b556001600160a01b038416838363ffffffff610baa16565b505050565b6001546001600160a01b031681565b6001546001600160a01b03163314610b8057600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60045481565b610bb78383836000610bbd565b50505050565b600082610bcc57506001610c93565b6001600160a01b0385161580610bfe57506001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b15610c75578115610c35576040516001600160a01b0385169084156108fc029085906000818181858888f193505050509050610c93565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015610c6b573d6000803e3d6000fd5b5060019050610c93565b610c8f6001600160a01b038616858563ffffffff610c9b16565b5060015b949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610b55908490610cfa826001600160a01b0316610ea0565b610d4b576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610d895780518252601f199092019160209182019101610d6a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610deb576040519150601f19603f3d011682016040523d82523d6000602084013e610df0565b606091505b509150915081610e47576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610bb757808060200190516020811015610e6357600080fd5b5051610bb75760405162461bcd60e51b815260040180806020018281038252602a815260200180610ec6602a913960400191505060405180910390fd5b3b151590565b604051806101800160405280600c90602082028038833950919291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158205be074f2ca963a62766a10e2d8cd6a21ac9aa75f916efbb69a0bc044f5a10d7064736f6c63430005100032
Deployed Bytecode Sourcemap
10871:6989:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15736:10;15750:9;15736:23;15729:31;;;;15841:5;;-1:-1:-1;;;;;15841:5:0;15827:10;:19;15823:32;;;15848:7;;15823:32;15880:9;15876:84;;15911:16;:14;:16::i;:::-;15942:7;;15876:84;16001:10;15988:9;:23;;15980:32;;;;;;16076:10;16034:19;16068;;;:7;:19;;;;;;-1:-1:-1;;;;;16068:19:0;:33;16064:316;;-1:-1:-1;16157:10:0;16149:19;;;;:7;:19;;;;;;-1:-1:-1;;;;;16149:19:0;16064:316;;;16230:2;16211:8;:21;16203:30;;;;;;16254:24;16269:8;;16254:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;16254:14:0;;-1:-1:-1;;;16254:24:0:i;:::-;16248:30;-1:-1:-1;;;;;;16300:17:0;;16307:10;16300:17;;16293:25;;;;16351:10;16343:19;;;;:7;:19;;;;;:25;;-1:-1:-1;;;;;;16343:25:0;-1:-1:-1;;;;;16343:25:0;;;;;16064:316;16494:10;16410:21;16488:17;;;:5;:17;;;;;16693:14;;;;16434:9;;16488:17;16693:19;16723:115;;;;-1:-1:-1;;;;;16754:10:0;;;;;;:5;:10;;;;;:23;;:25;;-1:-1:-1;;;;;16754:25:0;;;;;;-1:-1:-1;;16754:25:0;;;;;;16811:15;16794:14;;;:32;16723:115;16874:13;;:28;;16892:9;16874:28;:17;:28;:::i;:::-;16858:44;;16918:27;;;;;;16917:28;:83;;;;-1:-1:-1;16965:35:0;;16949:13;;:51;16917:83;16913:199;;;17017:27;;;:34;;-1:-1:-1;;17017:34:0;17047:4;17017:34;;;;;;-1:-1:-1;;;;;17066:10:0;;17017:27;17066:10;;;:5;:10;;;;;:32;;:34;;-1:-1:-1;;;;;;;;17066:34:0;;;;;;;;;;;;;;;;;;;;;16913:199;17146:7;17142:521;17162:2;17158:1;:6;;;17142:521;;;17185:20;17220:24;17294:17;17309:1;17294:14;:17::i;:::-;17259:52;;-1:-1:-1;17259:52:0;-1:-1:-1;17390:3:0;17363:9;:24;;:30;17424:31;:13;17363:30;17424:17;:31::i;:::-;-1:-1:-1;;;;;17472:10:0;;;;;;:5;:10;;;;;17408:47;;-1:-1:-1;17518:12:0;;17472:24;;-1:-1:-1;;;;;17472:42:0;;;;;;;;;;:58;;;;;;;-1:-1:-1;;;;;17585:21:0;;;17472:42;17585:21;;;:7;:21;;;;;;;;;;17627:17;17623:28;;17646:5;;;;;17623:28;-1:-1:-1;;;17165:3:0;;17142:521;;;-1:-1:-1;17683:21:0;;:55;;-1:-1:-1;;;;;17683:21:0;;;;17734:3;17730:1;17714:17;;:23;17683:55;;;;;;;;;17714:23;17683:21;:55;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;17749:10:0;;:44;;-1:-1:-1;;;;;17749:10:0;;;;17789:3;17785:1;17769:17;;:23;17749:44;;;;;;;;;17769:23;17749:10;:44;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;17804:10:0;;:45;;-1:-1:-1;;;;;17804:10:0;;;;17845:3;17840:2;17824:18;;:24;17804:45;;;;;;;;;17824:24;17804:10;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17804:45:0;15684:2173;;;;;10871:6989;11049:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11049:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11049:153:0;;:::i;12842:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12842:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12842:105:0;-1:-1:-1;;;;;12842:105:0;;:::i;:::-;;;;-1:-1:-1;;;;;12842:105:0;;;;;;;;;;;;;;10607:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10607:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10607:120:0;-1:-1:-1;;;;;10607:120:0;;:::i;12959:621::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12959:621:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12959:621:0;-1:-1:-1;;;;;12959:621:0;;:::i;:::-;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12959:621:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12959:621:0;-1:-1:-1;;;;;12959:621:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11246:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11246:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;11337:289;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11337:289:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11337:289:0;;:::i;10410:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10410:41:0;;;:::i;12061:405::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12061:405:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12061:405:0;;;;;;;;;;;;;;;;;:::i;14020:1179::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14020:1179:0;;;:::i;10458:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10458:40:0;;;:::i;10739:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10739:125:0;;;:::i;11289:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11289:35:0;;;:::i;14020:1179::-;14094:10;14064:21;14088:17;;;:5;:17;;;;;14202:35;;14185:13;;14088:17;;14094:10;14185:52;;14177:61;;;;;;14322:14;;;;14259;;;;14322:18;;;;:68;;;14382:8;14363:4;:14;;;14345:15;:32;14344:46;;14322:68;14321:107;;;;-1:-1:-1;14396:26:0;;;;14425:2;-1:-1:-1;;;14396:26:0;;;-1:-1:-1;;;;;14396:26:0;:31;14321:107;14298:131;-1:-1:-1;14454:7:0;14450:575;14471:2;14467:1;:6;;;14450:575;;;14555:1;14550;:6;;;;:24;;;;;14560:14;14550:24;14546:35;;;14576:5;;14546:35;14610:24;14672:17;14687:1;14672:14;:17::i;:::-;14722:26;;;;14649:40;;-1:-1:-1;;;;;;14722:46:0;;;-1:-1:-1;;;14722:26:0;;;;:46;;-1:-1:-1;14718:296:0;;14817:1;14793:4;:18;;14812:1;14793:21;;;;;;;;;;;:25;14789:164;;;14852:33;14863:4;:18;;14882:1;14863:21;;;;;;;;;;;14852:6;;:33;:10;:33;:::i;:::-;14843:42;;14932:1;14908:4;:18;;14927:1;14908:21;;;;;;;;;;:25;14789:164;14718:296;;;14993:5;;;14718:296;-1:-1:-1;14474:3:0;;14450:575;;;-1:-1:-1;15062:26:0;;;;;;;;15069:10;;15062:26;;;;;;;;;;15121:19;;;;:31;;15145:6;15121:31;:23;:31;:::i;:::-;15099:19;;;:53;15163:28;;-1:-1:-1;;;;;15163:20:0;;;:28;;;;;15184:6;;15163:28;;;;15184:6;15163:20;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15163:28:0;14020:1179;;;;:::o;11638:164::-;11779:2;11771:11;11765:18;;11744:50::o;503:181::-;561:7;593:5;;;617:6;;;;609:46;;;;;-1:-1:-1;;;609:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;675:1;503:181;-1:-1:-1;;;503:181:0:o;13592:346::-;13651:19;;13713:10;;;13709:221;;-1:-1:-1;13747:2:0;;-1:-1:-1;13751:1:0;13739:14;;13709:221;13774:5;:10;;13783:1;13774:10;13770:160;;;-1:-1:-1;13807:2:0;;-1:-1:-1;13811:1:0;13799:14;;13770:160;13842:2;13834:5;:10;;;13830:100;;;-1:-1:-1;13867:1:0;;-1:-1:-1;13859:17:0;;;;;13830:100;-1:-1:-1;13926:1:0;;-1:-1:-1;13926:1:0;13830:100;13592:346;;;:::o;959:184::-;1017:7;1050:1;1045;:6;;1037:49;;;;;-1:-1:-1;;;1037:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1109:5:0;;;959:184::o;11049:153::-;10569:5;;-1:-1:-1;;;;;10569:5:0;10555:10;:19;10548:27;;;;11147:35;:47;11049:153::o;12842:105::-;-1:-1:-1;;;;;12926:13:0;;;12899:7;12926:13;;;:7;:13;;;;;;;;12842:105::o;10607:120::-;10569:5;;-1:-1:-1;;;;;10569:5:0;10555:10;:19;10548:27;;;;10691:17;:28;;-1:-1:-1;;;;;;10691:28:0;-1:-1:-1;;;;;10691:28:0;;;;;;;;;;10607:120::o;12959:621::-;13015:16;13033:32;;:::i;:::-;-1:-1:-1;;;;;13214:11:0;;13067:22;13214:11;;;:5;:11;;;;;;:20;;13245:41;;;;;;;;13214:20;-1:-1:-1;13067:22:0;;;;;;;;13261:25;;13245:41;;13261:25;13245:41;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13314:11:0;;;;;;;:5;:11;;;;;:26;;;;13366:24;;;;13481:21;;;;13425:33;13538:34;;;;12959:621;;13245:41;;-1:-1:-1;13314:26:0;;-1:-1:-1;;;;;13366:24:0;;;;-1:-1:-1;;;;13425:33:0;;;;;;;-1:-1:-1;13481:21:0;;-1:-1:-1;13538:34:0;;;-1:-1:-1;12959:621:0;;-1:-1:-1;;;12959:621:0:o;11246:36::-;;;;:::o;11337:289::-;10569:5;;-1:-1:-1;;;;;10569:5:0;10555:10;:19;10548:27;;;;11460:3;11437:20;;:26;11433:98;;;11497:21;;11488:6;:30;11480:39;;;;;;11541:21;:30;11611:7;11605:3;:13;11582:20;:36;11337:289::o;10410:41::-;;;-1:-1:-1;;;;;10410:41:0;;:::o;12061:405::-;10569:5;;-1:-1:-1;;;;;10569:5:0;10555:10;:19;10548:27;;;;-1:-1:-1;;;;;12167:22:0;;12163:42;;12200:5;;-1:-1:-1;;;;;12200:5:0;;-1:-1:-1;12163:42:0;-1:-1:-1;;;;;12230:21:0;;;;:45;;-1:-1:-1;;;;;;12255:20:0;;11951:42;12255:20;12230:45;12226:176;;;12319:3;12296:20;;:26;12292:98;;;12368:21;;12332:33;:21;12358:6;12332:33;:25;:33;:::i;:::-;:57;12324:66;;;;;;12412:46;-1:-1:-1;;;;;12412:30:0;;12443:6;12451;12412:46;:30;:46;:::i;:::-;12061:405;;;:::o;10458:40::-;;;-1:-1:-1;;;;;10458:40:0;;:::o;10739:125::-;10802:17;;-1:-1:-1;;;;;10802:17:0;10788:10;:31;10780:40;;;;;;10839:17;;;10831:25;;-1:-1:-1;;;;;;10831:25:0;-1:-1:-1;;;;;10839:17:0;;;10831:25;;;;;;10739:125::o;11289:35::-;;;;:::o;8563:139::-;8651:43;8669:5;8676:2;8680:6;8688:5;8651:17;:43::i;:::-;;8563:139;;;:::o;8710:552::-;8809:4;8830:11;8826:55;;-1:-1:-1;8865:4:0;8858:11;;8826:55;-1:-1:-1;;;;;8897:21:0;;;;:45;;-1:-1:-1;;;;;;8922:20:0;;8511:42;8922:20;8897:45;8893:362;;;8963:7;8959:196;;;8998:33;;-1:-1:-1;;;;;8998:25:0;;;:33;;;;;9024:6;;8998:33;;;;9024:6;8998:25;:33;;;;;;;8991:40;;;;8959:196;9072:37;;-1:-1:-1;;;;;9072:29:0;;;:37;;;;;9102:6;;9072:37;;;;9102:6;9072:29;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9072:37:0;9135:4;9128:11;;;;8893:362;9187:30;-1:-1:-1;;;;;9187:18:0;;9206:2;9210:6;9187:30;:18;:30;:::i;:::-;-1:-1:-1;9239:4:0;8893:362;8710:552;;;;;;:::o;5166:175::-;5274:58;;;-1:-1:-1;;;;;5274:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5274:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;5248:85:0;;5267:5;;7758:27;7766:5;-1:-1:-1;;;;;7758:25:0;;:27::i;:::-;7750:71;;;;;-1:-1:-1;;;7750:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7895:12;7909:23;7944:5;-1:-1:-1;;;;;7936:19:0;7956:4;7936:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7936:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7894:67:0;;;;7980:7;7972:52;;;;;-1:-1:-1;;;7972:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8041:17;;:21;8037:224;;8183:10;8172:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8172:30:0;8164:85;;;;-1:-1:-1;;;8164:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4173:422;4540:20;4579:8;;;4173:422::o;10871:6989::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;10871:6989:0;;;-1:-1:-1;;10871:6989:0:o
Swarm Source
bzzr://5be074f2ca963a62766a10e2d8cd6a21ac9aa75f916efbb69a0bc044f5a10d70
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.