Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 67 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Exit | 10646700 | 2022 days ago | IN | 0 ETH | 0.01515444 | ||||
| Sell | 10646304 | 2022 days ago | IN | 0 ETH | 0.0100575 | ||||
| Withdraw | 10645740 | 2022 days ago | IN | 0 ETH | 0.00689083 | ||||
| Sell | 10645740 | 2022 days ago | IN | 0 ETH | 0.00820692 | ||||
| Withdraw | 10645593 | 2022 days ago | IN | 0 ETH | 0.00965563 | ||||
| Sell | 10644952 | 2022 days ago | IN | 0 ETH | 0.00780462 | ||||
| Withdraw | 10644952 | 2022 days ago | IN | 0 ETH | 0.00653702 | ||||
| Withdraw | 10643943 | 2022 days ago | IN | 0 ETH | 0.00903268 | ||||
| Sell | 10643932 | 2022 days ago | IN | 0 ETH | 0.008046 | ||||
| Withdraw | 10643218 | 2023 days ago | IN | 0 ETH | 0.00800928 | ||||
| Withdraw | 10642339 | 2023 days ago | IN | 0 ETH | 0.00485222 | ||||
| Buy | 10642107 | 2023 days ago | IN | 0.5 ETH | 0.01661154 | ||||
| Withdraw | 10641465 | 2023 days ago | IN | 0 ETH | 0.00578448 | ||||
| Sell | 10641370 | 2023 days ago | IN | 0 ETH | 0.0052299 | ||||
| Withdraw | 10641220 | 2023 days ago | IN | 0 ETH | 0.00560649 | ||||
| Exit | 10641197 | 2023 days ago | IN | 0 ETH | 0.00845174 | ||||
| Sell | 10641181 | 2023 days ago | IN | 0 ETH | 0.00507049 | ||||
| Exit | 10641158 | 2023 days ago | IN | 0 ETH | 0.00808636 | ||||
| Exit | 10641143 | 2023 days ago | IN | 0 ETH | 0.00638287 | ||||
| Exit | 10641139 | 2023 days ago | IN | 0 ETH | 0.01600627 | ||||
| Exit | 10641137 | 2023 days ago | IN | 0 ETH | 0.00760717 | ||||
| Exit | 10641133 | 2023 days ago | IN | 0 ETH | 0.01353717 | ||||
| Sell | 10641132 | 2023 days ago | IN | 0 ETH | 0.0054032 | ||||
| Sell | 10641129 | 2023 days ago | IN | 0 ETH | 0.00540863 | ||||
| Sell | 10641125 | 2023 days ago | IN | 0 ETH | 0.01209799 |
Latest 23 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 10646700 | 2022 days ago | 1.25784418 ETH | ||||
| - | 10645740 | 2022 days ago | 0.35549873 ETH | ||||
| - | 10645593 | 2022 days ago | 0.15746437 ETH | ||||
| - | 10644952 | 2022 days ago | 0.24778332 ETH | ||||
| - | 10643943 | 2022 days ago | 0.64101859 ETH | ||||
| - | 10643218 | 2023 days ago | 2.19025699 ETH | ||||
| - | 10642339 | 2023 days ago | 0.8891223 ETH | ||||
| - | 10641465 | 2023 days ago | 0.33964211 ETH | ||||
| - | 10641220 | 2023 days ago | 2.49750368 ETH | ||||
| - | 10641197 | 2023 days ago | 1.38858933 ETH | ||||
| - | 10641158 | 2023 days ago | 3.31869185 ETH | ||||
| - | 10641143 | 2023 days ago | 0.24353925 ETH | ||||
| - | 10641139 | 2023 days ago | 5.40332201 ETH | ||||
| - | 10641137 | 2023 days ago | 1.38482946 ETH | ||||
| - | 10641133 | 2023 days ago | 14.1567574 ETH | ||||
| - | 10640758 | 2023 days ago | 2.77597595 ETH | ||||
| - | 10640703 | 2023 days ago | 0.05353843 ETH | ||||
| - | 10640688 | 2023 days ago | 1.72082496 ETH | ||||
| - | 10640629 | 2023 days ago | 0.65721565 ETH | ||||
| - | 10640166 | 2023 days ago | 0.0720529 ETH | ||||
| - | 10640150 | 2023 days ago | 2.14714595 ETH | ||||
| - | 10640071 | 2023 days ago | 0.90223501 ETH | ||||
| - | 10640069 | 2023 days ago | 1.21824027 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UniStake
Compiler Version
v0.4.20+commit.3155dd80
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-08-11
*/
pragma solidity ^0.4.20;
/*
* Main Net Version
* UI at https://unistake.fund
*/
contract UniStake {
/*=================================
= MODIFIERS =
=================================*/
// only people with tokens
modifier onlyBagholders() {
require(myTokens() > 0);
_;
}
// only people with profits
modifier onlyStronghands() {
require(myDividends(true) > 0);
_;
}
// administrators can:
// -> change the name of the contract
// -> change the name of the token
// -> change the PoS difficulty (How many tokens it costs to hold a masternode, in case it gets crazy high later)
// they CANNOT:
// -> take funds
// -> disable withdrawals
// -> kill the contract
// -> change the price of tokens
modifier onlyAdministrator(){
address _customerAddress = msg.sender;
require(administrators[keccak256(_customerAddress)]);
_;
}
// ensures that the first tokens in the contract will be equally distributed
// meaning, no divine dump will be ever possible
// result: healthy longevity.
modifier antiEarlyWhale(uint256 _amountOfEthereum){
address _customerAddress = msg.sender;
// are we still in the vulnerable phase?
// if so, enact anti early whale protocol
if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){
require(
// is the customer in the ambassador list?
ambassadors_[_customerAddress] == true &&
// does the customer purchase exceed the max ambassador quota?
(ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_
);
// updated the accumulated quota
ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum);
// execute
_;
} else {
// in case the ether count drops low, the ambassador phase won't reinitiate
onlyAmbassadors = false;
_;
}
}
/*==============================
= EVENTS =
==============================*/
event onTokenPurchase(
address indexed customerAddress,
uint256 incomingEthereum,
uint256 tokensMinted,
address indexed referredBy
);
event onTokenSell(
address indexed customerAddress,
uint256 tokensBurned,
uint256 ethereumEarned
);
event onReinvestment(
address indexed customerAddress,
uint256 ethereumReinvested,
uint256 tokensMinted
);
event onWithdraw(
address indexed customerAddress,
uint256 ethereumWithdrawn
);
// ERC20
event Transfer(
address indexed from,
address indexed to,
uint256 tokens
);
/*=====================================
= CONFIGURABLES =
=====================================*/
string public name = "UniStake";
string public symbol = "STAKE";
uint8 constant public decimals = 18;
uint8 constant internal dividendFee_ = 5;
uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
uint256 constant internal magnitude = 2**64;
// proof of stake (defaults at 100 tokens)
uint256 public stakingRequirement = 1e18;
// ambassador program
mapping(address => bool) internal ambassadors_;
uint256 constant internal ambassadorMaxPurchase_ = 1.0 ether;
uint256 constant internal ambassadorQuota_ = 2.0 ether;
/*================================
= DATASETS =
================================*/
// amount of shares for each address (scaled number)
mapping(address => uint256) internal tokenBalanceLedger_;
mapping(address => uint256) internal referralBalance_;
mapping(address => int256) internal payoutsTo_;
mapping(address => uint256) internal ambassadorAccumulatedQuota_;
uint256 internal tokenSupply_ = 0;
uint256 internal profitPerShare_;
// administrator list (see above on what they can do)
mapping(bytes32 => bool) public administrators;
// when this is set to true, only ambassadors can purchase tokens (this prevents a whale premine, it ensures a fairly distributed upper pyramid)
bool public onlyAmbassadors = true;
/*=======================================
= PUBLIC FUNCTIONS =
=======================================*/
/*
* -- APPLICATION ENTRY POINTS --
*/
function UniStake()
public
{
// add administrators here
administrators[keccak256(0xdeadf096d2697013dd98b3dB44B1831816e9A921)] = true;
// add the ambassadors here.
ambassadors_[0xdeadf096d2697013dd98b3dB44B1831816e9A921] = true;
ambassadors_[0xFCd6AD49134A0755923c096382e5fc3b80Cb21b5] = true;
}
/**
* Converts all incoming ethereum to tokens for the caller, and passes down the referral addy (if any)
*/
function buy(address _referredBy)
public
payable
returns(uint256)
{
purchaseTokens(msg.value, _referredBy);
}
/**
* Fallback function to handle ethereum that was send straight to the contract
* Unfortunately we cannot use a referral address this way.
*/
function()
payable
public
{
purchaseTokens(msg.value, 0x0);
}
/**
* Converts all of caller's dividends to tokens.
*/
function reinvest()
onlyStronghands()
public
{
// fetch dividends
uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code
// pay out the dividends virtually
address _customerAddress = msg.sender;
payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
// retrieve ref. bonus
_dividends += referralBalance_[_customerAddress];
referralBalance_[_customerAddress] = 0;
// dispatch a buy order with the virtualized "withdrawn dividends"
uint256 _tokens = purchaseTokens(_dividends, 0x0);
// fire event
onReinvestment(_customerAddress, _dividends, _tokens);
}
/**
* Alias of sell() and withdraw().
*/
function exit()
public
{
// get token count for caller & sell them all
address _customerAddress = msg.sender;
uint256 _tokens = tokenBalanceLedger_[_customerAddress];
if(_tokens > 0) sell(_tokens);
// lambo delivery service
withdraw();
}
/**
* Withdraws all of the callers earnings.
*/
function withdraw()
onlyStronghands()
public
{
// setup data
address _customerAddress = msg.sender;
uint256 _dividends = myDividends(false); // get ref. bonus later in the code
// update dividend tracker
payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
// add ref. bonus
_dividends += referralBalance_[_customerAddress];
referralBalance_[_customerAddress] = 0;
// lambo delivery service
_customerAddress.transfer(_dividends);
// fire event
onWithdraw(_customerAddress, _dividends);
}
/**
* Liquifies tokens to ethereum.
*/
function sell(uint256 _amountOfTokens)
onlyBagholders()
public
{
// setup data
address _customerAddress = msg.sender;
// russian hackers BTFO
require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
uint256 _tokens = _amountOfTokens;
uint256 _ethereum = tokensToEthereum_(_tokens);
uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
// burn the sold tokens
tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
// update dividends tracker
int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
payoutsTo_[_customerAddress] -= _updatedPayouts;
// dividing by zero is a bad idea
if (tokenSupply_ > 0) {
// update the amount of dividends per token
profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
}
// fire event
onTokenSell(_customerAddress, _tokens, _taxedEthereum);
Transfer(_customerAddress, 0x0, _tokens);
}
/**
* Transfer tokens from the caller to a new holder.
* Remember, there's a 10% fee here as well.
*/
function transfer(address _toAddress, uint256 _amountOfTokens)
onlyBagholders()
public
returns(bool)
{
// setup
address _customerAddress = msg.sender;
// make sure we have the requested tokens
// also disables transfers until ambassador phase is over
// ( we dont want whale premines )
require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
// withdraw all outstanding dividends first
if(myDividends(true) > 0) withdraw();
// liquify 10% of the tokens that are transfered
// these are dispersed to shareholders
uint256 _tokenFee = SafeMath.div(_amountOfTokens, dividendFee_);
uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
uint256 _dividends = tokensToEthereum_(_tokenFee);
// burn the fee tokens
tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);
// exchange tokens
tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
// update dividend trackers
payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
// disperse dividends among holders
profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
// fire event
Transfer(_customerAddress, _toAddress, _taxedTokens);
// ERC20
return true;
}
/*---------- ADMINISTRATOR ONLY FUNCTIONS ----------*/
/**
* In case the amassador quota is not met, the administrator can manually disable the ambassador phase.
*/
function disableInitialStage()
onlyAdministrator()
public
{
onlyAmbassadors = false;
}
/**
* In case one of us dies, we need to replace ourselves.
*/
function setAdministrator(bytes32 _identifier, bool _status)
onlyAdministrator()
public
{
administrators[_identifier] = _status;
}
/**
* Precautionary measures in case we need to adjust the masternode rate.
*/
function setStakingRequirement(uint256 _amountOfTokens)
onlyAdministrator()
public
{
stakingRequirement = _amountOfTokens;
}
/**
* If we want to rebrand, we can.
*/
function setName(string _name)
onlyAdministrator()
public
{
name = _name;
}
/**
* If we want to rebrand, we can.
*/
function setSymbol(string _symbol)
onlyAdministrator()
public
{
symbol = _symbol;
}
/*---------- HELPERS AND CALCULATORS ----------*/
/**
* Method to view the current Ethereum stored in the contract
* Example: totalEthereumBalance()
*/
function totalEthereumBalance()
public
view
returns(uint)
{
return this.balance;
}
/**
* Retrieve the total token supply.
*/
function totalSupply()
public
view
returns(uint256)
{
return tokenSupply_;
}
/**
* Retrieve the tokens owned by the caller.
*/
function myTokens()
public
view
returns(uint256)
{
address _customerAddress = msg.sender;
return balanceOf(_customerAddress);
}
/**
* Retrieve the dividends owned by the caller.
* If `_includeReferralBonus` is to to 1/true, the referral bonus will be included in the calculations.
* The reason for this, is that in the frontend, we will want to get the total divs (global + ref)
* But in the internal calculations, we want them separate.
*/
function myDividends(bool _includeReferralBonus)
public
view
returns(uint256)
{
address _customerAddress = msg.sender;
return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
}
/**
* Retrieve the token balance of any single address.
*/
function balanceOf(address _customerAddress)
view
public
returns(uint256)
{
return tokenBalanceLedger_[_customerAddress];
}
/**
* Retrieve the dividend balance of any single address.
*/
function dividendsOf(address _customerAddress)
view
public
returns(uint256)
{
return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
}
/**
* Return the buy price of 1 individual token.
*/
function sellPrice()
public
view
returns(uint256)
{
// our calculation relies on the token supply, so we need supply. Doh.
if(tokenSupply_ == 0){
return tokenPriceInitial_ - tokenPriceIncremental_;
} else {
uint256 _ethereum = tokensToEthereum_(1e18);
uint256 _dividends = SafeMath.div(_ethereum, dividendFee_ );
uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
return _taxedEthereum;
}
}
/**
* Return the sell price of 1 individual token.
*/
function buyPrice()
public
view
returns(uint256)
{
// our calculation relies on the token supply, so we need supply. Doh.
if(tokenSupply_ == 0){
return tokenPriceInitial_ + tokenPriceIncremental_;
} else {
uint256 _ethereum = tokensToEthereum_(1e18);
uint256 _dividends = SafeMath.div(_ethereum, dividendFee_ );
uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);
return _taxedEthereum;
}
}
/**
* Function for the frontend to dynamically retrieve the price scaling of buy orders.
*/
function calculateTokensReceived(uint256 _ethereumToSpend)
public
view
returns(uint256)
{
uint256 _dividends = SafeMath.div(_ethereumToSpend, dividendFee_);
uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
return _amountOfTokens;
}
/**
* Function for the frontend to dynamically retrieve the price scaling of sell orders.
*/
function calculateEthereumReceived(uint256 _tokensToSell)
public
view
returns(uint256)
{
require(_tokensToSell <= tokenSupply_);
uint256 _ethereum = tokensToEthereum_(_tokensToSell);
uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
return _taxedEthereum;
}
/*==========================================
= INTERNAL FUNCTIONS =
==========================================*/
function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
antiEarlyWhale(_incomingEthereum)
internal
returns(uint256)
{
// data setup
address _customerAddress = msg.sender;
uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
uint256 _fee = _dividends * magnitude;
// no point in continuing execution if OP is a poorfag russian hacker
// prevents overflow in the case that the pyramid somehow magically starts being used by everyone in the world
// (or hackers)
// and yes we know that the safemath function automatically rules out the "greater then" equasion.
require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
// is the user referred by a masternode?
if(
// is this a referred purchase?
_referredBy != 0x0000000000000000000000000000000000000000 &&
// no cheating!
_referredBy != _customerAddress &&
// does the referrer have at least X whole tokens?
// i.e is the referrer a godly chad masternode
tokenBalanceLedger_[_referredBy] >= stakingRequirement
){
// wealth redistribution
referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
} else {
// no ref purchase
// add the referral bonus back to the global dividends cake
_dividends = SafeMath.add(_dividends, _referralBonus);
_fee = _dividends * magnitude;
}
// we can't give people infinite ethereum
if(tokenSupply_ > 0){
// add tokens to the pool
tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
// take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
profitPerShare_ += (_dividends * magnitude / (tokenSupply_));
// calculate the amount of tokens the customer receives over his purchase
_fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
} else {
// add tokens to the pool
tokenSupply_ = _amountOfTokens;
}
// update circulating supply & the ledger address for the customer
tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
// Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
//really i know you think you do but you don't
int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
payoutsTo_[_customerAddress] += _updatedPayouts;
// fire event
onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy);
return _amountOfTokens;
}
/**
* Calculate Token price based on an amount of incoming ethereum
* It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
* Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
*/
function ethereumToTokens_(uint256 _ethereum)
internal
view
returns(uint256)
{
uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
uint256 _tokensReceived =
(
(
// underflow attempts BTFO
SafeMath.sub(
(sqrt
(
(_tokenPriceInitial**2)
+
(2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
+
(((tokenPriceIncremental_)**2)*(tokenSupply_**2))
+
(2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
)
), _tokenPriceInitial
)
)/(tokenPriceIncremental_)
)-(tokenSupply_)
;
return _tokensReceived;
}
/**
* Calculate token sell value.
* It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
* Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
*/
function tokensToEthereum_(uint256 _tokens)
internal
view
returns(uint256)
{
uint256 tokens_ = (_tokens + 1e18);
uint256 _tokenSupply = (tokenSupply_ + 1e18);
uint256 _etherReceived =
(
// underflow attempts BTFO
SafeMath.sub(
(
(
(
tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18))
)-tokenPriceIncremental_
)*(tokens_ - 1e18)
),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2
)
/1e18);
return _etherReceived;
}
//This is where all your gas goes, sorry
//Not sorry, you probably only paid 1 gwei
function sqrt(uint x) internal pure returns (uint y) {
uint z = (x + 1) / 2;
y = x;
while (z < y) {
y = z;
z = (x / z + z) / 2;
}
}
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]Contract Creation Code
60606040526040805190810160405280600881526020017f556e695374616b6500000000000000000000000000000000000000000000000081525060009080519060200190620000519291906200024e565b506040805190810160405280600581526020017f5354414b45000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200024e565b50670de0b6b3a764000060025560006008556001600b60006101000a81548160ff0219169083151502179055503415620000d857600080fd5b6001600a600073deadf096d2697013dd98b3db44b1831816e9a921604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073deadf096d2697013dd98b3db44b1831816e9a92173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073fcd6ad49134a0755923c096382e5fc3b80cb21b573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002fd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029157805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c1578251825591602001919060010190620002a4565b5b509050620002d19190620002d5565b5090565b620002fa91905b80821115620002f6576000816000905550600101620002dc565b5090565b90565b6123eb806200030d6000396000f30060606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b578063392efb521461033a5780633ccfd60b146103795780634b7503341461038e57806356d399e8146103b7578063688abbf7146103e05780636b2f46321461041957806370a08231146104425780638328b6101461048f5780638620410b146104b257806389135ae9146104db578063949e8acd1461050d57806395d89b4114610536578063a8e04f34146105c4578063a9059cbb146105d9578063b84c824614610633578063c47f002714610690578063e4849b32146106ed578063e9fad8ee14610710578063f088d54714610725578063fdb5a03e14610767575b61016934600061077c565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107b565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc61111d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111bb565b6040518082815260200191505060405180910390f35b341561028957600080fd5b6102916111f3565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c860048080359060200190919050506111fd565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f1611246565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e611259565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61035f60048080356000191690602001909190505061125e565b604051808215151515815260200191505060405180910390f35b341561038457600080fd5b61038c61127e565b005b341561039957600080fd5b6103a161141b565b6040518082815260200191505060405180910390f35b34156103c257600080fd5b6103ca611479565b6040518082815260200191505060405180910390f35b34156103eb57600080fd5b6104036004808035151590602001909190505061147f565b6040518082815260200191505060405180910390f35b341561042457600080fd5b61042c6114eb565b6040518082815260200191505060405180910390f35b341561044d57600080fd5b610479600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150a565b6040518082815260200191505060405180910390f35b341561049a57600080fd5b6104b06004808035906020019091905050611553565b005b34156104bd57600080fd5b6104c56115e7565b6040518082815260200191505060405180910390f35b34156104e657600080fd5b61050b6004808035600019169060200190919080351515906020019091905050611645565b005b341561051857600080fd5b610520611706565b6040518082815260200191505060405180910390f35b341561054157600080fd5b61054961171b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058957808201518184015260208101905061056e565b50505050905090810190601f1680156105b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105cf57600080fd5b6105d76117b9565b005b34156105e457600080fd5b610619600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611860565b604051808215151515815260200191505060405180910390f35b341561063e57600080fd5b61068e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b92565b005b341561069b57600080fd5b6106eb600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c36565b005b34156106f857600080fd5b61070e6004808035906020019091905050611cda565b005b341561071b57600080fd5b610723611f58565b005b610751600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fbf565b6040518082815260200191505060405180910390f35b341561077257600080fd5b61077a611fd1565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107bd5750671bc16d674ec80000826107b96114eb565b0311155b15610cab5760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561086b5750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561087657600080fd5b6108bf600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612145565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109138d600560ff16612163565b9850610920896003612163565b975061092c898961217e565b96506109388d8a61217e565b955061094386612197565b9450680100000000000000008702935060008511801561096f575060085461096d86600854612145565b115b151561097a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16141580156109e357508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a305750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610ac657610a7e600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612145565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ae1565b610ad08789612145565b965068010000000000000000870293505b60006008541115610b4c57610af860085486612145565b600881905550600854680100000000000000008802811515610b1657fe5b04600960008282540192505081905550600854680100000000000000008802811515610b3e57fe5b048502840384039350610b54565b846008819055505b610b9d600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612145565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a5061106b565b6000600b60006101000a81548160ff021916908315150217905550339950610cd78d600560ff16612163565b9850610ce4896003612163565b9750610cf0898961217e565b9650610cfc8d8a61217e565b9550610d0786612197565b94506801000000000000000087029350600085118015610d335750600854610d3186600854612145565b115b1515610d3e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610da757508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610df45750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610e8a57610e42600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612145565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ea5565b610e948789612145565b965068010000000000000000870293505b60006008541115610f1057610ebc60085486612145565b600881905550600854680100000000000000008802811515610eda57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f0257fe5b048502840384039350610f18565b846008819055505b610f61600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612145565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561111557fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b35780601f10611188576101008083540402835291602001916111b3565b820191906000526020600020905b81548152906001019060200180831161119657829003601f168201915b505050505081565b6000806000806111cf85600560ff16612163565b92506111db858461217e565b91506111e682612197565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561121457600080fd5b61121d85612224565b925061122d83600560ff16612163565b9150611239838361217e565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600061128d600161147f565b11151561129957600080fd5b3391506112a6600061147f565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113c957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611440576402540be40064174876e800039350611473565b611451670de0b6b3a7640000612224565b925061146183600560ff16612163565b915061146d838361217e565b90508093505b50505090565b60025481565b60008033905082611498576114938161107b565b6114e3565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e18261107b565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156115dc57600080fd5b816002819055505050565b6000806000806000600854141561160c576402540be40064174876e80001935061163f565b61161d670de0b6b3a7640000612224565b925061162d83600560ff16612163565b91506116398383612145565b90508093505b50505090565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156116ce57600080fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117158161150a565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117b15780601f10611786576101008083540402835291602001916117b1565b820191906000526020600020905b81548152906001019060200180831161179457829003601f168201915b505050505081565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561184257600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b600080600080600080611871611706565b11151561187d57600080fd5b339350600b60009054906101000a900460ff161580156118dc5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118e757600080fd5b60006118f3600161147f565b11156119025761190161127e565b5b61191086600560ff16612163565b925061191c868461217e565b915061192783612224565b90506119356008548461217e565b600881905550611984600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761217e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a10600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612145565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611b19600954600854680100000000000000008402811515611b1357fe5b04612145565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611c1b57600080fd5b8160019080519060200190611c3192919061231a565b505050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611cbf57600080fd5b8160009080519060200190611cd592919061231a565b505050565b6000806000806000806000611ced611706565b111515611cf957600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611d4a57600080fd5b869450611d5685612224565b9350611d6684600560ff16612163565b9250611d72848461217e565b9150611d806008548661217e565b600881905550611dcf600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661217e565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611ea957611ea2600954600854680100000000000000008602811515611e9c57fe5b04612145565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a260008673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611fb357611fb281611cda565b5b611fbb61127e565b5050565b6000611fcb348361077c565b50919050565b600080600080611fe1600161147f565b111515611fed57600080fd5b611ff7600061147f565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e883600061077c565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561215957fe5b8091505092915050565b600080828481151561217157fe5b0490508091505092915050565b600082821115151561218c57fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be40061220d612207600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016122cf565b8561217e565b81151561221657fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a76400006122b8670de0b6b3a764000085036402540be400670de0b6b3a76400008681151561227657fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038115156122a157fe5b046402540be400028115156122b257fe5b0461217e565b8115156122c157fe5b049050809350505050919050565b6000806002600184018115156122e157fe5b0490508291505b8181101561231457809150600281828581151561230157fe5b040181151561230c57fe5b0490506122e8565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061235b57805160ff1916838001178555612389565b82800160010185558215612389579182015b8281111561238857825182559160200191906001019061236d565b5b509050612396919061239a565b5090565b6123bc91905b808211156123b85760008160009055506001016123a0565b5090565b905600a165627a7a72305820c8c32f15ae6ed4f4169443575459251e921e3a767ce6e1b5e38530ca734440350029
Deployed Bytecode
0x60606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b578063392efb521461033a5780633ccfd60b146103795780634b7503341461038e57806356d399e8146103b7578063688abbf7146103e05780636b2f46321461041957806370a08231146104425780638328b6101461048f5780638620410b146104b257806389135ae9146104db578063949e8acd1461050d57806395d89b4114610536578063a8e04f34146105c4578063a9059cbb146105d9578063b84c824614610633578063c47f002714610690578063e4849b32146106ed578063e9fad8ee14610710578063f088d54714610725578063fdb5a03e14610767575b61016934600061077c565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107b565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc61111d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111bb565b6040518082815260200191505060405180910390f35b341561028957600080fd5b6102916111f3565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c860048080359060200190919050506111fd565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f1611246565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e611259565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61035f60048080356000191690602001909190505061125e565b604051808215151515815260200191505060405180910390f35b341561038457600080fd5b61038c61127e565b005b341561039957600080fd5b6103a161141b565b6040518082815260200191505060405180910390f35b34156103c257600080fd5b6103ca611479565b6040518082815260200191505060405180910390f35b34156103eb57600080fd5b6104036004808035151590602001909190505061147f565b6040518082815260200191505060405180910390f35b341561042457600080fd5b61042c6114eb565b6040518082815260200191505060405180910390f35b341561044d57600080fd5b610479600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150a565b6040518082815260200191505060405180910390f35b341561049a57600080fd5b6104b06004808035906020019091905050611553565b005b34156104bd57600080fd5b6104c56115e7565b6040518082815260200191505060405180910390f35b34156104e657600080fd5b61050b6004808035600019169060200190919080351515906020019091905050611645565b005b341561051857600080fd5b610520611706565b6040518082815260200191505060405180910390f35b341561054157600080fd5b61054961171b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058957808201518184015260208101905061056e565b50505050905090810190601f1680156105b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105cf57600080fd5b6105d76117b9565b005b34156105e457600080fd5b610619600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611860565b604051808215151515815260200191505060405180910390f35b341561063e57600080fd5b61068e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b92565b005b341561069b57600080fd5b6106eb600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c36565b005b34156106f857600080fd5b61070e6004808035906020019091905050611cda565b005b341561071b57600080fd5b610723611f58565b005b610751600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fbf565b6040518082815260200191505060405180910390f35b341561077257600080fd5b61077a611fd1565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107bd5750671bc16d674ec80000826107b96114eb565b0311155b15610cab5760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561086b5750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561087657600080fd5b6108bf600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612145565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109138d600560ff16612163565b9850610920896003612163565b975061092c898961217e565b96506109388d8a61217e565b955061094386612197565b9450680100000000000000008702935060008511801561096f575060085461096d86600854612145565b115b151561097a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16141580156109e357508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a305750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610ac657610a7e600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612145565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ae1565b610ad08789612145565b965068010000000000000000870293505b60006008541115610b4c57610af860085486612145565b600881905550600854680100000000000000008802811515610b1657fe5b04600960008282540192505081905550600854680100000000000000008802811515610b3e57fe5b048502840384039350610b54565b846008819055505b610b9d600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612145565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a5061106b565b6000600b60006101000a81548160ff021916908315150217905550339950610cd78d600560ff16612163565b9850610ce4896003612163565b9750610cf0898961217e565b9650610cfc8d8a61217e565b9550610d0786612197565b94506801000000000000000087029350600085118015610d335750600854610d3186600854612145565b115b1515610d3e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610da757508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610df45750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610e8a57610e42600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612145565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ea5565b610e948789612145565b965068010000000000000000870293505b60006008541115610f1057610ebc60085486612145565b600881905550600854680100000000000000008802811515610eda57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f0257fe5b048502840384039350610f18565b846008819055505b610f61600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612145565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561111557fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b35780601f10611188576101008083540402835291602001916111b3565b820191906000526020600020905b81548152906001019060200180831161119657829003601f168201915b505050505081565b6000806000806111cf85600560ff16612163565b92506111db858461217e565b91506111e682612197565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561121457600080fd5b61121d85612224565b925061122d83600560ff16612163565b9150611239838361217e565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600061128d600161147f565b11151561129957600080fd5b3391506112a6600061147f565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113c957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611440576402540be40064174876e800039350611473565b611451670de0b6b3a7640000612224565b925061146183600560ff16612163565b915061146d838361217e565b90508093505b50505090565b60025481565b60008033905082611498576114938161107b565b6114e3565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e18261107b565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156115dc57600080fd5b816002819055505050565b6000806000806000600854141561160c576402540be40064174876e80001935061163f565b61161d670de0b6b3a7640000612224565b925061162d83600560ff16612163565b91506116398383612145565b90508093505b50505090565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156116ce57600080fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117158161150a565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117b15780601f10611786576101008083540402835291602001916117b1565b820191906000526020600020905b81548152906001019060200180831161179457829003601f168201915b505050505081565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561184257600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b600080600080600080611871611706565b11151561187d57600080fd5b339350600b60009054906101000a900460ff161580156118dc5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118e757600080fd5b60006118f3600161147f565b11156119025761190161127e565b5b61191086600560ff16612163565b925061191c868461217e565b915061192783612224565b90506119356008548461217e565b600881905550611984600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761217e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a10600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612145565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611b19600954600854680100000000000000008402811515611b1357fe5b04612145565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611c1b57600080fd5b8160019080519060200190611c3192919061231a565b505050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611cbf57600080fd5b8160009080519060200190611cd592919061231a565b505050565b6000806000806000806000611ced611706565b111515611cf957600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611d4a57600080fd5b869450611d5685612224565b9350611d6684600560ff16612163565b9250611d72848461217e565b9150611d806008548661217e565b600881905550611dcf600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661217e565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611ea957611ea2600954600854680100000000000000008602811515611e9c57fe5b04612145565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a260008673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611fb357611fb281611cda565b5b611fbb61127e565b5050565b6000611fcb348361077c565b50919050565b600080600080611fe1600161147f565b111515611fed57600080fd5b611ff7600061147f565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e883600061077c565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561215957fe5b8091505092915050565b600080828481151561217157fe5b0490508091505092915050565b600082821115151561218c57fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be40061220d612207600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016122cf565b8561217e565b81151561221657fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a76400006122b8670de0b6b3a764000085036402540be400670de0b6b3a76400008681151561227657fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038115156122a157fe5b046402540be400028115156122b257fe5b0461217e565b8115156122c157fe5b049050809350505050919050565b6000806002600184018115156122e157fe5b0490508291505b8181101561231457809150600281828581151561230157fe5b040181151561230c57fe5b0490506122e8565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061235b57805160ff1916838001178555612389565b82800160010185558215612389579182015b8281111561238857825182559160200191906001019061236d565b5b509050612396919061239a565b5090565b6123bc91905b808211156123b85760008160009055506001016123a0565b5090565b905600a165627a7a72305820c8c32f15ae6ed4f4169443575459251e921e3a767ce6e1b5e38530ca734440350029
Deployed Bytecode Sourcemap
89:23038:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5978:30;5993:9;6004:3;5978:14;:30::i;:::-;;89:23038;14382:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3357:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3357:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16007:398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12979:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16527:414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4822:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4613:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7330:678;;;;;;;;;;;;;;14718:543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3766:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13724:310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12780:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14122:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12053:161;;;;;;;;;;;;;;;;;;;;;;;;;;15344:542;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11778:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13180:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3395:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3395:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11563:123;;;;;;;;;;;;;;9580:1782;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12464:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12283:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8076:1361;;;;;;;;;;;;;;;;;;;;;;;;;;6937:320;;;;;;;;;;;;;;5584:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6100:767;;;;;;;;;;;;;;17109:3444;17259:7;17307:24;17355:27;17441:22;17513:18;17594:22;17682:23;17752:12;20240:22;17205:17;1274:24;1301:10;1274:37;;1438:15;;;;;;;;;;;:86;;;;;4011:9;1484:17;1459:22;:20;:22::i;:::-;:42;1458:64;;1438:86;1434:907;;;1660:4;1626:38;;:12;:30;1639:16;1626:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:250;;;;;3950:9;1832:17;1784:27;:45;1812:16;1784:45;;;;;;;;;;;;;;;;:65;1783:93;;1626:250;1540:369;;;;;;;;2036:78;2049:27;:45;2077:16;2049:45;;;;;;;;;;;;;;;;2096:17;2036:12;:78::i;:::-;1988:27;:45;2016:16;1988:45;;;;;;;;;;;;;;;:126;;;;17334:10;17307:37;;17385:45;17398:17;3513:1;17385:45;;:12;:45::i;:::-;17355:75;;17466:36;17479:19;17500:1;17466:12;:36::i;:::-;17441:61;;17534:49;17547:19;17568:14;17534:12;:49::i;:::-;17513:70;;17619:52;17632:17;17651:19;17619:12;:52::i;:::-;17594:77;;17708:33;17726:14;17708:17;:33::i;:::-;17682:59;;3702:5;17767:10;:22;17752:37;;18161:1;18143:15;:19;:82;;;;;18212:12;;18167:42;18180:15;18196:12;;18167;:42::i;:::-;:57;18143:82;18135:91;;;;;;;;18374:42;18359:57;;:11;:57;;;;:136;;;;;18479:16;18464:31;;:11;:31;;;;18359:136;:345;;;;;18686:18;;18650:19;:32;18670:11;18650:32;;;;;;;;;;;;;;;;:54;;18359:345;18297:809;;;18800:59;18813:16;:29;18830:11;18813:29;;;;;;;;;;;;;;;;18844:14;18800:12;:59::i;:::-;18768:16;:29;18785:11;18768:29;;;;;;;;;;;;;;;:91;;;;18297:809;;;19010:40;19023:10;19035:14;19010:12;:40::i;:::-;18997:53;;3702:5;19072:10;:22;19065:29;;18297:809;19195:1;19180:12;;:16;19177:671;;;19280:43;19293:12;;19307:15;19280:12;:43::i;:::-;19265:12;:58;;;;19511:12;;3702:5;19485:10;:22;:39;;;;;;;;19465:15;;:60;;;;;;;;;;;19708:12;;3702:5;19682:10;:22;:39;;;;;;;;19663:15;:59;19657:4;:66;19649:4;:75;19642:82;;19177:671;;;19821:15;19806:12;:30;;;;19177:671;19984:68;19997:19;:37;20017:16;19997:37;;;;;;;;;;;;;;;;20036:15;19984:12;:68::i;:::-;19944:19;:37;19964:16;19944:37;;;;;;;;;;;;;;;:108;;;;20313:4;20294:15;20276;;:33;20275:42;20240:78;;20361:15;20329:10;:28;20340:16;20329:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;20490:11;20420:82;;20436:16;20420:82;;;20454:17;20473:15;20420:82;;;;;;;;;;;;;;;;;;;;;;;;20530:15;20523:22;;1434:907;;;2304:5;2286:15;;:23;;;;;;;;;;;;;;;;;;17334:10;17307:37;;17385:45;17398:17;3513:1;17385:45;;:12;:45::i;:::-;17355:75;;17466:36;17479:19;17500:1;17466:12;:36::i;:::-;17441:61;;17534:49;17547:19;17568:14;17534:12;:49::i;:::-;17513:70;;17619:52;17632:17;17651:19;17619:12;:52::i;:::-;17594:77;;17708:33;17726:14;17708:17;:33::i;:::-;17682:59;;3702:5;17767:10;:22;17752:37;;18161:1;18143:15;:19;:82;;;;;18212:12;;18167:42;18180:15;18196:12;;18167;:42::i;:::-;:57;18143:82;18135:91;;;;;;;;18374:42;18359:57;;:11;:57;;;;:136;;;;;18479:16;18464:31;;:11;:31;;;;18359:136;:345;;;;;18686:18;;18650:19;:32;18670:11;18650:32;;;;;;;;;;;;;;;;:54;;18359:345;18297:809;;;18800:59;18813:16;:29;18830:11;18813:29;;;;;;;;;;;;;;;;18844:14;18800:12;:59::i;:::-;18768:16;:29;18785:11;18768:29;;;;;;;;;;;;;;;:91;;;;18297:809;;;19010:40;19023:10;19035:14;19010:12;:40::i;:::-;18997:53;;3702:5;19072:10;:22;19065:29;;18297:809;19195:1;19180:12;;:16;19177:671;;;19280:43;19293:12;;19307:15;19280:12;:43::i;:::-;19265:12;:58;;;;19511:12;;3702:5;19485:10;:22;:39;;;;;;;;19465:15;;:60;;;;;;;;;;;19708:12;;3702:5;19682:10;:22;:39;;;;;;;;19663:15;:59;19657:4;:66;19649:4;:75;19642:82;;19177:671;;;19821:15;19806:12;:30;;;;19177:671;19984:68;19997:19;:37;20017:16;19997:37;;;;;;;;;;;;;;;;20036:15;19984:12;:68::i;:::-;19944:19;:37;19964:16;19944:37;;;;;;;;;;;;;;;:108;;;;20313:4;20294:15;20276;;:33;20275:42;20240:78;;20361:15;20329:10;:28;20340:16;20329:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;20490:11;20420:82;;20436:16;20420:82;;;20454:17;20473:15;20420:82;;;;;;;;;;;;;;;;;;;;;;;;20530:15;20523:22;;1434:907;17109:3444;;;;;;;;;;;;;;:::o;14382:254::-;14476:7;3702:5;14587:10;:28;14598:16;14587:28;;;;;;;;;;;;;;;;14546:19;:37;14566:16;14546:37;;;;;;;;;;;;;;;;14528:15;;:55;14519:96;14508:120;;;;;;;;14501:127;;14382:254;;;:::o;3357:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16007:398::-;16116:7;16141:18;16217:22;16295:23;16162:44;16175:16;3513:1;16162:44;;:12;:44::i;:::-;16141:65;;16242:42;16255:16;16273:10;16242:12;:42::i;:::-;16217:67;;16321:33;16339:14;16321:17;:33::i;:::-;16295:59;;16382:15;16375:22;;16007:398;;;;;;:::o;12979:122::-;13049:7;13081:12;;13074:19;;12979:122;:::o;16527:414::-;16635:7;16709:17;16772:18;16841:22;16685:12;;16668:13;:29;;16660:38;;;;;;;;16729:32;16747:13;16729:17;:32::i;:::-;16709:52;;16793:37;16806:9;3513:1;16793:37;;:12;:37::i;:::-;16772:58;;16866:35;16879:9;16890:10;16866:12;:35::i;:::-;16841:60;;16919:14;16912:21;;16527:414;;;;;;:::o;4822:34::-;;;;;;;;;;;;;:::o;3432:35::-;3465:2;3432:35;:::o;4613:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;7330:678::-;7432:24;7480:18;460:1;440:17;452:4;440:11;:17::i;:::-;:21;432:30;;;;;;;;7459:10;7432:37;;7501:18;7513:5;7501:11;:18::i;:::-;7480:39;;3702:5;7655:10;:22;7612:10;:28;7623:16;7612:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;7740:16;:34;7757:16;7740:34;;;;;;;;;;;;;;;;7726:48;;;;7822:1;7785:16;:34;7802:16;7785:34;;;;;;;;;;;;;;;:38;;;;7879:16;:25;;:37;7905:10;7879:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7971:16;7960:40;;;7989:10;7960:40;;;;;;;;;;;;;;;;;;7330:678;;:::o;14718:543::-;14789:7;15013:17;15071:18;15146:22;14913:1;14897:12;;:17;14894:360;;;3641:16;3568:15;14937:43;14930:50;;;;14894:360;15033:23;15051:4;15033:17;:23::i;:::-;15013:43;;15092:39;15105:9;3513:1;15092:39;;:12;:39::i;:::-;15071:60;;15171:35;15184:9;15195:10;15171:12;:35::i;:::-;15146:60;;15228:14;15221:21;;14718:543;;;;;:::o;3766:40::-;;;;:::o;13724:310::-;13823:7;13848:24;13875:10;13848:37;;13903:21;:122;;13996:29;14008:16;13996:11;:29::i;:::-;13903:122;;;13959:16;:34;13976:16;13959:34;;;;;;;;;;;;;;;;13927:29;13939:16;13927:11;:29::i;:::-;:66;13903:122;13896:129;;13724:310;;;;:::o;12780:128::-;12859:4;12888;:12;;;12881:19;;12780:128;:::o;14122:169::-;14214:7;14246:19;:37;14266:16;14246:37;;;;;;;;;;;;;;;;14239:44;;14122:169;;;:::o;12053:161::-;904:24;931:10;904:37;;960:14;:43;985:16;975:27;;;;;;;;;;;;;;;;;;;;;;;;960:43;;;;;;;;;;;;;;;;;;;;;;;;;;;952:52;;;;;;;;12191:15;12170:18;:36;;;;12053:161;;:::o;15344:542::-;15414:7;15638:17;15696:18;15771:22;15538:1;15522:12;;:17;15519:360;;;3641:16;3568:15;15562:43;15555:50;;;;15519:360;15658:23;15676:4;15658:17;:23::i;:::-;15638:43;;15717:39;15730:9;3513:1;15717:39;;:12;:39::i;:::-;15696:60;;15796:35;15809:9;15820:10;15796:12;:35::i;:::-;15771:60;;15853:14;15846:21;;15344:542;;;;;:::o;11778:167::-;904:24;931:10;904:37;;960:14;:43;985:16;975:27;;;;;;;;;;;;;;;;;;;;;;;;960:43;;;;;;;;;;;;;;;;;;;;;;;;;;;952:52;;;;;;;;11930:7;11900:14;:27;11915:11;11900:27;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;11778:167;;;:::o;13180:182::-;13247:7;13272:24;13299:10;13272:37;;13327:27;13337:16;13327:9;:27::i;:::-;13320:34;;13180:182;;:::o;3395:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11563:123::-;904:24;931:10;904:37;;960:14;:43;985:16;975:27;;;;;;;;;;;;;;;;;;;;;;;;960:43;;;;;;;;;;;;;;;;;;;;;;;;;;;952:52;;;;;;;;11673:5;11655:15;;:23;;;;;;;;;;;;;;;;;;11563:123;:::o;9580:1782::-;9702:4;9742:24;10284:17;10358:20;10432:18;327:1;314:10;:8;:10::i;:::-;:14;306:23;;;;;;;;9769:10;9742:37;;9971:15;;;;;;;;;;;9970:16;:76;;;;;10009:19;:37;10029:16;10009:37;;;;;;;;;;;;;;;;9990:15;:56;;9970:76;9962:85;;;;;;;;10144:1;10124:17;10136:4;10124:11;:17::i;:::-;:21;10121:36;;;10147:10;:8;:10::i;:::-;10121:36;10304:43;10317:15;3513:1;10304:43;;:12;:43::i;:::-;10284:63;;10381:40;10394:15;10411:9;10381:12;:40::i;:::-;10358:63;;10453:28;10471:9;10453:17;:28::i;:::-;10432:49;;10543:37;10556:12;;10570:9;10543:12;:37::i;:::-;10528:12;:52;;;;10661:68;10674:19;:37;10694:16;10674:37;;;;;;;;;;;;;;;;10713:15;10661:12;:68::i;:::-;10621:19;:37;10641:16;10621:37;;;;;;;;;;;;;;;:108;;;;10774:59;10787:19;:31;10807:10;10787:31;;;;;;;;;;;;;;;;10820:12;10774;:59::i;:::-;10740:19;:31;10760:10;10740:31;;;;;;;;;;;;;;;:93;;;;10951:15;10933;;:33;10891:10;:28;10902:16;10891:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;11032:12;11014:15;;:30;10978:10;:22;10989:10;10978:22;;;;;;;;;;;;;;;;:67;;;;;;;;;;;11129:70;11142:15;;11186:12;;3702:5;11160:10;:22;11159:39;;;;;;;;11129:12;:70::i;:::-;11111:15;:88;;;;11270:10;11243:52;;11252:16;11243:52;;;11282:12;11243:52;;;;;;;;;;;;;;;;;;11341:4;11334:11;;9580:1782;;;;;;;;:::o;12464:120::-;904:24;931:10;904:37;;960:14;:43;985:16;975:27;;;;;;;;;;;;;;;;;;;;;;;;960:43;;;;;;;;;;;;;;;;;;;;;;;;;;;952:52;;;;;;;;12569:7;12560:6;:16;;;;;;;;;;;;:::i;:::-;;12464:120;;:::o;12283:112::-;904:24;931:10;904:37;;960:14;:43;985:16;975:27;;;;;;;;;;;;;;;;;;;;;;;;960:43;;;;;;;;;;;;;;;;;;;;;;;;;;;952:52;;;;;;;;12382:5;12375:4;:12;;;;;;;;;;;;:::i;:::-;;12283:112;;:::o;8076:1361::-;8196:24;8353:15;8397:17;8454:18;8523:22;8856;327:1;314:10;:8;:10::i;:::-;:14;306:23;;;;;;;;8223:10;8196:37;;8304:19;:37;8324:16;8304:37;;;;;;;;;;;;;;;;8285:15;:56;;8277:65;;;;;;;;8371:15;8353:33;;8417:26;8435:7;8417:17;:26::i;:::-;8397:46;;8475:37;8488:9;3513:1;8475:37;;:12;:37::i;:::-;8454:58;;8548:35;8561:9;8572:10;8548:12;:35::i;:::-;8523:60;;8652:35;8665:12;;8679:7;8652:12;:35::i;:::-;8637:12;:50;;;;8738:60;8751:19;:37;8771:16;8751:37;;;;;;;;;;;;;;;;8790:7;8738:12;:60::i;:::-;8698:19;:37;8718:16;8698:37;;;;;;;;;;;;;;;:100;;;;3702:5;8920:14;:26;8909:7;8891:15;;:25;:56;8856:92;;8991:15;8959:10;:28;8970:16;8959:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;9096:1;9081:12;;:16;9077:194;;;9189:70;9202:15;;9246:12;;3702:5;9220:10;:22;9219:39;;;;;;;;9189:12;:70::i;:::-;9171:15;:88;;;;9077:194;9326:16;9314:54;;;9344:7;9353:14;9314:54;;;;;;;;;;;;;;;;;;;;;;;;9416:3;9398:16;9389:40;;;9421:7;9389:40;;;;;;;;;;;;;;;;;;8076:1361;;;;;;;:::o;6937:320::-;7040:24;7088:15;7067:10;7040:37;;7106:19;:37;7126:16;7106:37;;;;;;;;;;;;;;;;7088:55;;7167:1;7157:7;:11;7154:29;;;7170:13;7175:7;7170:4;:13::i;:::-;7154:29;7239:10;:8;:10::i;:::-;6937:320;;:::o;5584:155::-;5668:7;5693:38;5708:9;5719:11;5693:14;:38::i;:::-;;5584:155;;;:::o;6100:767::-;6207:18;6352:24;6713:15;460:1;440:17;452:4;440:11;:17::i;:::-;:21;432:30;;;;;;;;6228:18;6240:5;6228:11;:18::i;:::-;6207:39;;6379:10;6352:37;;3702:5;6443:10;:22;6400:10;:28;6411:16;6400:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;6533:16;:34;6550:16;6533:34;;;;;;;;;;;;;;;;6519:48;;;;6615:1;6578:16;:34;6595:16;6578:34;;;;;;;;;;;;;;;:38;;;;6731:31;6746:10;6758:3;6731:14;:31::i;:::-;6713:49;;6821:16;6806:53;;;6839:10;6851:7;6806:53;;;;;;;;;;;;;;;;;;;;;;;;6100:767;;;:::o;24239:147::-;24297:7;24317:9;24333:1;24329;:5;24317:17;;24357:1;24352;:6;;24345:14;;;;;;24377:1;24370:8;;24239:147;;;;;:::o;23627:288::-;23685:7;23784:9;23800:1;23796;:5;;;;;;;;23784:17;;23906:1;23899:8;;23627:288;;;;;:::o;24041:123::-;24099:7;24131:1;24126;:6;;24119:14;;;;;;24155:1;24151;:5;24144:12;;24041:123;;;;:::o;20849:976::-;20944:7;20969:26;21034:23;21019:4;3568:15;20998:25;20969:54;;21757:12;;3641:16;21149:555;21185:457;21602:12;;21583:18;3641:16;21556:1;:26;:45;:58;21491:1;21477:12;;:15;21473:1;3641:16;21447:27;21446:47;21378:4;21366:9;:16;21359:4;3641:16;21334:29;21331:1;:33;:52;21267:1;21247:18;:21;21246:138;:248;:369;21185:4;:457::i;:::-;21667:18;21149:12;:555::i;:::-;21086:658;;;;;;;;21071:699;21034:736;;21802:15;21795:22;;20849:976;;;;;:::o;22092:722::-;22185:7;22212:15;22257:20;22312:22;22241:4;22231:7;:14;22212:34;;22296:4;22281:12;;:19;22257:44;;22769:4;22401:357;22664:4;22654:7;:14;3641:16;22573:4;22560:12;:17;;;;;;;;3641:16;22534:44;3568:15;22513:66;22482:147;22455:214;22742:1;22735:4;22726:7;22724:1;22715:7;:10;:18;22714:25;;;;;;;;3641:16;22690:50;22689:54;;;;;;;;22401:12;:357::i;:::-;:372;;;;;;;;22312:462;;22792:14;22785:21;;22092:722;;;;;;:::o;22926:198::-;22971:6;22990;23009:1;23004;23000;:5;22999:11;;;;;;;;22990:20;;23025:1;23021:5;;23037:80;23048:1;23044;:5;23037:80;;;23070:1;23066:5;;23104:1;23099;23095;23091;:5;;;;;;;;:9;23090:15;;;;;;;;23086:19;;23037:80;;;22926:198;;;;:::o;89:23038::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://c8c32f15ae6ed4f4169443575459251e921e3a767ce6e1b5e38530ca73444035
Loading...
Loading
Loading...
Loading
Net Worth in USD
$1,286.74
Net Worth in ETH
0.680907
Token Allocations
ETH
100.00%
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1,889.74 | 0.6809 | $1,286.74 |
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.