Source Code
Latest 25 from a total of 762 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Tokens | 15345383 | 1298 days ago | IN | 0 ETH | 0.00043932 | ||||
| Transfer Tokens | 15345244 | 1298 days ago | IN | 0 ETH | 0.00033912 | ||||
| Transfer Tokens | 15345095 | 1299 days ago | IN | 0 ETH | 0.00044147 | ||||
| Transfer Tokens | 12768580 | 1704 days ago | IN | 0 ETH | 0.00091549 | ||||
| Transfer Tokens | 11811249 | 1852 days ago | IN | 0 ETH | 0.00350016 | ||||
| Transfer Tokens | 11456498 | 1907 days ago | IN | 0 ETH | 0.00261723 | ||||
| Transfer | 11239342 | 1940 days ago | IN | 0 ETH | 0.00085158 | ||||
| Transfer | 11140804 | 1955 days ago | IN | 0 ETH | 0.00091247 | ||||
| Transfer | 11118923 | 1958 days ago | IN | 0 ETH | 0.00082644 | ||||
| Transfer | 11080341 | 1964 days ago | IN | 0 ETH | 0.00200253 | ||||
| 0x8ee410e3 | 11080268 | 1964 days ago | IN | 0.255 ETH | 0.00590442 | ||||
| 0x8bfc3c5b | 10958652 | 1983 days ago | IN | 0.051 ETH | 0.01267375 | ||||
| Transfer | 10956358 | 1984 days ago | IN | 0 ETH | 0.00604461 | ||||
| 0x8bfc3c5b | 10938886 | 1986 days ago | IN | 0.05 ETH | 0.0073634 | ||||
| 0x8bfc3c5b | 10938825 | 1986 days ago | IN | 0.15 ETH | 0.01390945 | ||||
| Transfer Tokens | 10861723 | 1998 days ago | IN | 0 ETH | 0.00283797 | ||||
| Transfer Tokens | 10731205 | 2018 days ago | IN | 0 ETH | 0.00479301 | ||||
| Transfer Tokens | 10731164 | 2018 days ago | IN | 0 ETH | 0.00479119 | ||||
| Transfer | 10722502 | 2019 days ago | IN | 0 ETH | 0.001743 | ||||
| Transfer | 10722486 | 2019 days ago | IN | 0 ETH | 0.00215878 | ||||
| Transfer | 10710985 | 2021 days ago | IN | 0 ETH | 0.0028849 | ||||
| Transfer | 10694511 | 2024 days ago | IN | 0.123 ETH | 0.002436 | ||||
| Transfer | 10694507 | 2024 days ago | IN | 0.123 ETH | 0.002436 | ||||
| Transfer | 10691944 | 2024 days ago | IN | 0.132 ETH | 0.003213 | ||||
| Transfer | 10691932 | 2024 days ago | IN | 0.129 ETH | 0.003213 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 15345383 | 1298 days ago | 8.6695315 ETH | ||||
| Transfer | 15345244 | 1298 days ago | 0.1 ETH | ||||
| Transfer | 15345095 | 1299 days ago | 0.1 ETH | ||||
| - | 12768580 | 1704 days ago | 0.21 ETH | ||||
| - | 11811249 | 1852 days ago | 1 ETH | ||||
| - | 11456498 | 1907 days ago | 0.7 ETH | ||||
| - | 11080341 | 1964 days ago | 0.1275 ETH | ||||
| - | 11080268 | 1964 days ago | 0.007395 ETH | ||||
| - | 11080268 | 1964 days ago | 0.0036975 ETH | ||||
| - | 11080268 | 1964 days ago | 0.0036975 ETH | ||||
| - | 10958652 | 1983 days ago | 0.001479 ETH | ||||
| - | 10958652 | 1983 days ago | 0.0007395 ETH | ||||
| - | 10958652 | 1983 days ago | 0.0007395 ETH | ||||
| - | 10956358 | 1984 days ago | 0.1 ETH | ||||
| - | 10938886 | 1986 days ago | 0.00145 ETH | ||||
| - | 10938886 | 1986 days ago | 0.000725 ETH | ||||
| - | 10938886 | 1986 days ago | 0.000725 ETH | ||||
| - | 10938825 | 1986 days ago | 0.00435 ETH | ||||
| - | 10938825 | 1986 days ago | 0.002175 ETH | ||||
| - | 10938825 | 1986 days ago | 0.002175 ETH | ||||
| - | 10861723 | 1998 days ago | 1.5 ETH | ||||
| - | 10731205 | 2018 days ago | 2.8 ETH | ||||
| - | 10731164 | 2018 days ago | 0.01 ETH | ||||
| - | 10710985 | 2021 days ago | 0.25 ETH | ||||
| - | 10667385 | 2028 days ago | 0.2 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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
Contract ABI
API[{"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
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.