Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 3,186 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Exit | 22275728 | 348 days ago | IN | 0 ETH | 0.00008133 | ||||
| Exit | 21790931 | 415 days ago | IN | 0 ETH | 0.00009314 | ||||
| Withdraw | 10973563 | 2004 days ago | IN | 0 ETH | 0.00262396 | ||||
| Withdraw | 10529494 | 2073 days ago | IN | 0 ETH | 0.00355792 | ||||
| Sell | 10529471 | 2073 days ago | IN | 0 ETH | 0.00307352 | ||||
| Withdraw | 10387947 | 2094 days ago | IN | 0 ETH | 0.00146764 | ||||
| Exit | 9593619 | 2217 days ago | IN | 0 ETH | 0.00004581 | ||||
| Sell | 9593610 | 2217 days ago | IN | 0 ETH | 0.0000384 | ||||
| Exit | 9477798 | 2235 days ago | IN | 0 ETH | 0.00006388 | ||||
| Withdraw | 9386818 | 2249 days ago | IN | 0 ETH | 0.00004447 | ||||
| Withdraw | 9259837 | 2269 days ago | IN | 0 ETH | 0.00004447 | ||||
| Reinvest | 9190646 | 2280 days ago | IN | 0 ETH | 0.00008441 | ||||
| Withdraw | 9156478 | 2287 days ago | IN | 0 ETH | 0.00004447 | ||||
| Sell | 9156464 | 2287 days ago | IN | 0 ETH | 0.00005873 | ||||
| Sell | 9156443 | 2287 days ago | IN | 0 ETH | 0.00005338 | ||||
| Sell | 9156398 | 2287 days ago | IN | 0 ETH | 0.00005872 | ||||
| Sell | 9156380 | 2287 days ago | IN | 0 ETH | 0.00005872 | ||||
| Sell | 9156315 | 2287 days ago | IN | 0 ETH | 0.00005338 | ||||
| Withdraw | 9113046 | 2295 days ago | IN | 0 ETH | 0.00008894 | ||||
| Withdraw | 9023238 | 2311 days ago | IN | 0 ETH | 0.00026089 | ||||
| Withdraw | 9008607 | 2314 days ago | IN | 0 ETH | 0.00008696 | ||||
| Exit | 9004731 | 2315 days ago | IN | 0 ETH | 0.00027342 | ||||
| Withdraw | 8972210 | 2320 days ago | IN | 0 ETH | 0.00004348 | ||||
| Withdraw | 8958514 | 2322 days ago | IN | 0 ETH | 0.00008696 | ||||
| Reinvest | 8955004 | 2323 days ago | IN | 0 ETH | 0.0000911 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 22275728 | 348 days ago | 0.00351792 ETH | ||||
| Transfer | 21790931 | 415 days ago | 0.00809498 ETH | ||||
| - | 10973563 | 2004 days ago | 0.03076471 ETH | ||||
| - | 10529494 | 2073 days ago | 1.1038221 ETH | ||||
| - | 10387947 | 2094 days ago | 0.00005885 ETH | ||||
| - | 9593619 | 2217 days ago | 0.02519214 ETH | ||||
| - | 9477798 | 2235 days ago | 0.01829773 ETH | ||||
| - | 9386818 | 2249 days ago | 0.00987288 ETH | ||||
| - | 9259837 | 2269 days ago | 0.00071203 ETH | ||||
| - | 9156478 | 2287 days ago | 0.34231267 ETH | ||||
| - | 9113046 | 2295 days ago | 0.00067972 ETH | ||||
| - | 9023238 | 2311 days ago | 0.01404241 ETH | ||||
| - | 9008607 | 2314 days ago | 0.00129377 ETH | ||||
| - | 9004731 | 2315 days ago | 0.29316643 ETH | ||||
| - | 8972210 | 2320 days ago | 0.00061857 ETH | ||||
| - | 8958514 | 2322 days ago | 0.00108342 ETH | ||||
| - | 8952760 | 2323 days ago | 0.04666431 ETH | ||||
| - | 8940206 | 2325 days ago | 0.00031355 ETH | ||||
| - | 8932148 | 2327 days ago | 0.17420867 ETH | ||||
| - | 8887753 | 2334 days ago | 0.00263013 ETH | ||||
| - | 8875158 | 2336 days ago | 0.07230928 ETH | ||||
| - | 8873811 | 2336 days ago | 0.07141436 ETH | ||||
| - | 8871097 | 2337 days ago | 0.09102422 ETH | ||||
| - | 8870409 | 2337 days ago | 0.01671076 ETH | ||||
| - | 8867822 | 2337 days ago | 0.0015833 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
RedChipMain
Compiler Version
v0.4.20+commit.3155dd80
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-10-04
*/
/*
______ _ _____ _ _ ______ _
| ___ \ | | / __ \ | (_) | ___| | |
| |_/ /___ __| | | / \/ |__ _ _ __ | |_ _ _ _ __ __| |
| // _ \/ _` | | | | '_ \| | '_ \ | _| | | | '_ \ / _` |
| |\ \ __/ (_| | | \__/\ | | | | |_) | | | | |_| | | | | (_| |
\_| \_\___|\__,_| \____/_| |_|_| .__/ \_| \__,_|_| |_|\__,_|
| |
|_|
* https://redchip.fund/
* https://redchip.fund/exchange
*
* https://discord.gg/Nmcax6V
*
* ====================================*
*
* 25% Dividends:
* - Distributed to RED tokenholders proportional to the total RED circulating supply
*
* Real Masternode Referrals:
* - Receive 7.5% of the total transaction (30% of the 25% generated dividends)
*
* The original autonomous pyramid, improved:
* - Fully Decentralized Earnings Platform. Transparent, Open source Ethereum code
* - More stable than ever, having withstood severe test and mainnet abuse and attack attempts
* - Audited, tested, and approved by known community security specialists and veteran solidity experts
* - Testnet iterations have been deployed; with not a single point of failure found
*
* Still, no guarantees are given.
* Please be careful and doublecheck when interacting with the contract
*
*/
pragma solidity ^0.4.20;
/*
* Main Net Version
*/
contract RedChipMain {
/*=================================
= 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[(_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 = "Red Chip Fund";
string public symbol = "RED";
uint8 constant public decimals = 18;
uint8 constant internal dividendFee_ = 4;
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(address => 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 RedChipMain()
public
{
// add administrators here
administrators[msg.sender] = true;
// add the ambassadors here.
ambassadors_[msg.sender] = 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 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(address _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":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":true,"inputs":[{"name":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"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":"address"},{"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
60606040526040805190810160405280600d81526020017f52656420436869702046756e640000000000000000000000000000000000000081525060009080519060200190620000519291906200018e565b506040805190810160405280600381526020017f5245440000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200018e565b50670de0b6b3a764000060025560006008556001600b60006101000a81548160ff0219169083151502179055503415620000d857600080fd5b6001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200023d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001d157805160ff191683800117855562000202565b8280016001018555821562000202579182015b8281111562000201578251825591602001919060010190620001e4565b5b50905062000211919062000215565b5090565b6200023a91905b80821115620002365760008160009055506001016200021c565b5090565b90565b612307806200024d6000396000f30060606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b5780633ccfd60b1461033a5780634b7503341461034f57806356d399e814610378578063688abbf7146103a15780636b2f4632146103da57806370a082311461040357806376be1585146104505780638328b610146104a15780638620410b146104c457806387c95058146104ed578063949e8acd1461053157806395d89b411461055a578063a8e04f34146105e8578063a9059cbb146105fd578063b84c824614610657578063c47f0027146106b4578063e4849b3214610711578063e9fad8ee14610734578063f088d54714610749578063fdb5a03e1461078b575b6101693460006107a0565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061109f565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc611141565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111df565b6040518082815260200191505060405180910390f35b341561028957600080fd5b610291611217565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c86004808035906020019091905050611221565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f161126a565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e61127d565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61034d611282565b005b341561035a57600080fd5b61036261141f565b6040518082815260200191505060405180910390f35b341561038357600080fd5b61038b61147d565b6040518082815260200191505060405180910390f35b34156103ac57600080fd5b6103c460048080351515906020019091905050611483565b6040518082815260200191505060405180910390f35b34156103e557600080fd5b6103ed6114ef565b6040518082815260200191505060405180910390f35b341561040e57600080fd5b61043a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150e565b6040518082815260200191505060405180910390f35b341561045b57600080fd5b610487600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611557565b604051808215151515815260200191505060405180910390f35b34156104ac57600080fd5b6104c26004808035906020019091905050611577565b005b34156104cf57600080fd5b6104d76115df565b6040518082815260200191505060405180910390f35b34156104f857600080fd5b61052f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061163d565b005b341561053c57600080fd5b6105446116f6565b6040518082815260200191505060405180910390f35b341561056557600080fd5b61056d61170b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ad578082015181840152602081019050610592565b50505050905090810190601f1680156105da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105f357600080fd5b6105fb6117a9565b005b341561060857600080fd5b61063d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611824565b604051808215151515815260200191505060405180910390f35b341561066257600080fd5b6106b2600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b56565b005b34156106bf57600080fd5b61070f600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bce565b005b341561071c57600080fd5b6107326004808035906020019091905050611c46565b005b341561073f57600080fd5b610747611e74565b005b610775600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611edb565b6040518082815260200191505060405180910390f35b341561079657600080fd5b61079e611eed565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107e15750671bc16d674ec80000826107dd6114ef565b0311155b15610ccf5760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561088f5750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561089a57600080fd5b6108e3600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612061565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109378d600460ff1661207f565b985061094489600361207f565b9750610950898961209a565b965061095c8d8a61209a565b9550610967866120b3565b94506801000000000000000087029350600085118015610993575060085461099186600854612061565b115b151561099e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610a0757508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a545750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610aea57610aa2600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612061565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b05565b610af48789612061565b965068010000000000000000870293505b60006008541115610b7057610b1c60085486612061565b600881905550600854680100000000000000008802811515610b3a57fe5b04600960008282540192505081905550600854680100000000000000008802811515610b6257fe5b048502840384039350610b78565b846008819055505b610bc1600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612061565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a5061108f565b6000600b60006101000a81548160ff021916908315150217905550339950610cfb8d600460ff1661207f565b9850610d0889600361207f565b9750610d14898961209a565b9650610d208d8a61209a565b9550610d2b866120b3565b94506801000000000000000087029350600085118015610d575750600854610d5586600854612061565b115b1515610d6257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610dcb57508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610e185750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610eae57610e66600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612061565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ec9565b610eb88789612061565b965068010000000000000000870293505b60006008541115610f3457610ee060085486612061565b600881905550600854680100000000000000008802811515610efe57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f2657fe5b048502840384039350610f3c565b846008819055505b610f85600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612061565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561113957fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d75780601f106111ac576101008083540402835291602001916111d7565b820191906000526020600020905b8154815290600101906020018083116111ba57829003601f168201915b505050505081565b6000806000806111f385600460ff1661207f565b92506111ff858461209a565b915061120a826120b3565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561123857600080fd5b61124185612140565b925061125183600460ff1661207f565b915061125d838361209a565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b60008060006112916001611483565b11151561129d57600080fd5b3391506112aa6000611483565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113cd57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611444576402540be40064174876e800039350611477565b611455670de0b6b3a7640000612140565b925061146583600460ff1661207f565b9150611471838361209a565b90508093505b50505090565b60025481565b6000803390508261149c576114978161109f565b6114e7565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e58261109f565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156115d457600080fd5b816002819055505050565b60008060008060006008541415611604576402540be40064174876e800019350611637565b611615670de0b6b3a7640000612140565b925061162583600460ff1661207f565b91506116318383612061565b90508093505b50505090565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561169a57600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117058161150e565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117a15780601f10611776576101008083540402835291602001916117a1565b820191906000526020600020905b81548152906001019060200180831161178457829003601f168201915b505050505081565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180657600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b6000806000806000806118356116f6565b11151561184157600080fd5b339350600b60009054906101000a900460ff161580156118a05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118ab57600080fd5b60006118b76001611483565b11156118c6576118c5611282565b5b6118d486600460ff1661207f565b92506118e0868461209a565b91506118eb83612140565b90506118f96008548461209a565b600881905550611948600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761209a565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d4600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612061565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611add600954600854680100000000000000008402811515611ad757fe5b04612061565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bb357600080fd5b8160019080519060200190611bc9929190612236565b505050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c2b57600080fd5b8160009080519060200190611c41929190612236565b505050565b6000806000806000806000611c596116f6565b111515611c6557600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611cb657600080fd5b869450611cc285612140565b9350611cd284600460ff1661207f565b9250611cde848461209a565b9150611cec6008548661209a565b600881905550611d3b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661209a565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611e1557611e0e600954600854680100000000000000008602811515611e0857fe5b04612061565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611ecf57611ece81611c46565b5b611ed7611282565b5050565b6000611ee734836107a0565b50919050565b600080600080611efd6001611483565b111515611f0957600080fd5b611f136000611483565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120048360006107a0565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561207557fe5b8091505092915050565b600080828481151561208d57fe5b0490508091505092915050565b60008282111515156120a857fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be400612129612123600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016121eb565b8561209a565b81151561213257fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a76400006121d4670de0b6b3a764000085036402540be400670de0b6b3a76400008681151561219257fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038115156121bd57fe5b046402540be400028115156121ce57fe5b0461209a565b8115156121dd57fe5b049050809350505050919050565b6000806002600184018115156121fd57fe5b0490508291505b8181101561223057809150600281828581151561221d57fe5b040181151561222857fe5b049050612204565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227757805160ff19168380011785556122a5565b828001600101855582156122a5579182015b828111156122a4578251825591602001919060010190612289565b5b5090506122b291906122b6565b5090565b6122d891905b808211156122d45760008160009055506001016122bc565b5090565b905600a165627a7a72305820c81194af077f34e3c9234126befa56521e3e0b404f120bba330677f79f24bcfd0029
Deployed Bytecode
0x60606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b5780633ccfd60b1461033a5780634b7503341461034f57806356d399e814610378578063688abbf7146103a15780636b2f4632146103da57806370a082311461040357806376be1585146104505780638328b610146104a15780638620410b146104c457806387c95058146104ed578063949e8acd1461053157806395d89b411461055a578063a8e04f34146105e8578063a9059cbb146105fd578063b84c824614610657578063c47f0027146106b4578063e4849b3214610711578063e9fad8ee14610734578063f088d54714610749578063fdb5a03e1461078b575b6101693460006107a0565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061109f565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc611141565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111df565b6040518082815260200191505060405180910390f35b341561028957600080fd5b610291611217565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c86004808035906020019091905050611221565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f161126a565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e61127d565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61034d611282565b005b341561035a57600080fd5b61036261141f565b6040518082815260200191505060405180910390f35b341561038357600080fd5b61038b61147d565b6040518082815260200191505060405180910390f35b34156103ac57600080fd5b6103c460048080351515906020019091905050611483565b6040518082815260200191505060405180910390f35b34156103e557600080fd5b6103ed6114ef565b6040518082815260200191505060405180910390f35b341561040e57600080fd5b61043a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150e565b6040518082815260200191505060405180910390f35b341561045b57600080fd5b610487600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611557565b604051808215151515815260200191505060405180910390f35b34156104ac57600080fd5b6104c26004808035906020019091905050611577565b005b34156104cf57600080fd5b6104d76115df565b6040518082815260200191505060405180910390f35b34156104f857600080fd5b61052f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061163d565b005b341561053c57600080fd5b6105446116f6565b6040518082815260200191505060405180910390f35b341561056557600080fd5b61056d61170b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ad578082015181840152602081019050610592565b50505050905090810190601f1680156105da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105f357600080fd5b6105fb6117a9565b005b341561060857600080fd5b61063d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611824565b604051808215151515815260200191505060405180910390f35b341561066257600080fd5b6106b2600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b56565b005b34156106bf57600080fd5b61070f600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bce565b005b341561071c57600080fd5b6107326004808035906020019091905050611c46565b005b341561073f57600080fd5b610747611e74565b005b610775600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611edb565b6040518082815260200191505060405180910390f35b341561079657600080fd5b61079e611eed565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107e15750671bc16d674ec80000826107dd6114ef565b0311155b15610ccf5760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561088f5750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561089a57600080fd5b6108e3600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612061565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109378d600460ff1661207f565b985061094489600361207f565b9750610950898961209a565b965061095c8d8a61209a565b9550610967866120b3565b94506801000000000000000087029350600085118015610993575060085461099186600854612061565b115b151561099e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610a0757508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a545750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610aea57610aa2600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612061565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b05565b610af48789612061565b965068010000000000000000870293505b60006008541115610b7057610b1c60085486612061565b600881905550600854680100000000000000008802811515610b3a57fe5b04600960008282540192505081905550600854680100000000000000008802811515610b6257fe5b048502840384039350610b78565b846008819055505b610bc1600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612061565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a5061108f565b6000600b60006101000a81548160ff021916908315150217905550339950610cfb8d600460ff1661207f565b9850610d0889600361207f565b9750610d14898961209a565b9650610d208d8a61209a565b9550610d2b866120b3565b94506801000000000000000087029350600085118015610d575750600854610d5586600854612061565b115b1515610d6257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610dcb57508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610e185750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610eae57610e66600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489612061565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ec9565b610eb88789612061565b965068010000000000000000870293505b60006008541115610f3457610ee060085486612061565b600881905550600854680100000000000000008802811515610efe57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f2657fe5b048502840384039350610f3c565b846008819055505b610f85600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612061565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561113957fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d75780601f106111ac576101008083540402835291602001916111d7565b820191906000526020600020905b8154815290600101906020018083116111ba57829003601f168201915b505050505081565b6000806000806111f385600460ff1661207f565b92506111ff858461209a565b915061120a826120b3565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561123857600080fd5b61124185612140565b925061125183600460ff1661207f565b915061125d838361209a565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b60008060006112916001611483565b11151561129d57600080fd5b3391506112aa6000611483565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113cd57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611444576402540be40064174876e800039350611477565b611455670de0b6b3a7640000612140565b925061146583600460ff1661207f565b9150611471838361209a565b90508093505b50505090565b60025481565b6000803390508261149c576114978161109f565b6114e7565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e58261109f565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156115d457600080fd5b816002819055505050565b60008060008060006008541415611604576402540be40064174876e800019350611637565b611615670de0b6b3a7640000612140565b925061162583600460ff1661207f565b91506116318383612061565b90508093505b50505090565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561169a57600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117058161150e565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117a15780601f10611776576101008083540402835291602001916117a1565b820191906000526020600020905b81548152906001019060200180831161178457829003601f168201915b505050505081565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180657600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b6000806000806000806118356116f6565b11151561184157600080fd5b339350600b60009054906101000a900460ff161580156118a05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118ab57600080fd5b60006118b76001611483565b11156118c6576118c5611282565b5b6118d486600460ff1661207f565b92506118e0868461209a565b91506118eb83612140565b90506118f96008548461209a565b600881905550611948600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761209a565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d4600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612061565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611add600954600854680100000000000000008402811515611ad757fe5b04612061565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bb357600080fd5b8160019080519060200190611bc9929190612236565b505050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c2b57600080fd5b8160009080519060200190611c41929190612236565b505050565b6000806000806000806000611c596116f6565b111515611c6557600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611cb657600080fd5b869450611cc285612140565b9350611cd284600460ff1661207f565b9250611cde848461209a565b9150611cec6008548661209a565b600881905550611d3b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661209a565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611e1557611e0e600954600854680100000000000000008602811515611e0857fe5b04612061565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611ecf57611ece81611c46565b5b611ed7611282565b5050565b6000611ee734836107a0565b50919050565b600080600080611efd6001611483565b111515611f0957600080fd5b611f136000611483565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120048360006107a0565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561207557fe5b8091505092915050565b600080828481151561208d57fe5b0490508091505092915050565b60008282111515156120a857fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be400612129612123600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016121eb565b8561209a565b81151561213257fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a76400006121d4670de0b6b3a764000085036402540be400670de0b6b3a76400008681151561219257fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038115156121bd57fe5b046402540be400028115156121ce57fe5b0461209a565b8115156121dd57fe5b049050809350505050919050565b6000806002600184018115156121fd57fe5b0490508291505b8181101561223057809150600281828581151561221d57fe5b040181151561222857fe5b049050612204565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227757805160ff19168380011785556122a5565b828001600101855582156122a5579182015b828111156122a4578251825591602001919060010190612289565b5b5090506122b291906122b6565b5090565b6122d891905b808211156122d45760008160009055506001016122bc565b5090565b905600a165627a7a72305820c81194af077f34e3c9234126befa56521e3e0b404f120bba330677f79f24bcfd0029
Deployed Bytecode Sourcemap
1482:22828:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7222:30;7237:9;7248:3;7222:14;:30::i;:::-;;1482:22828;15565:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4744:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4744:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17190:398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14162:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17710:414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6212:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4822:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8574:678;;;;;;;;;;;;;;15901:543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5156:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14907:310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13963:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15305:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6003:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13236:161;;;;;;;;;;;;;;;;;;;;;;;;;;16527:542;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12961:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14363:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4787:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12746:123;;;;;;;;;;;;;;10763:1782;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13647:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13466:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9320:1300;;;;;;;;;;;;;;;;;;;;;;;;;;8181:320;;;;;;;;;;;;;;6828:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:767;;;;;;;;;;;;;;18292:3444;18442:7;18490:24;18538:27;18624:22;18696:18;18777:22;18865:23;18935:12;21423:22;18388:17;2661:24;2688:10;2661:37;;2825:15;;;;;;;;;;;:86;;;;;5401:9;2871:17;2846:22;:20;:22::i;:::-;:42;2845:64;;2825:86;2821:907;;;3047:4;3013:38;;:12;:30;3026:16;3013:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:250;;;;;5340:9;3219:17;3171:27;:45;3199:16;3171:45;;;;;;;;;;;;;;;;:65;3170:93;;3013:250;2927:369;;;;;;;;3423:78;3436:27;:45;3464:16;3436:45;;;;;;;;;;;;;;;;3483:17;3423:12;:78::i;:::-;3375:27;:45;3403:16;3375:45;;;;;;;;;;;;;;;:126;;;;18517:10;18490:37;;18568:45;18581:17;4903:1;18568:45;;:12;:45::i;:::-;18538:75;;18649:36;18662:19;18683:1;18649:12;:36::i;:::-;18624:61;;18717:49;18730:19;18751:14;18717:12;:49::i;:::-;18696:70;;18802:52;18815:17;18834:19;18802:12;:52::i;:::-;18777:77;;18891:33;18909:14;18891:17;:33::i;:::-;18865:59;;5092:5;18950:10;:22;18935:37;;19344:1;19326:15;:19;:82;;;;;19395:12;;19350:42;19363:15;19379:12;;19350;:42::i;:::-;:57;19326:82;19318:91;;;;;;;;19557:42;19542:57;;:11;:57;;;;:136;;;;;19662:16;19647:31;;:11;:31;;;;19542:136;:345;;;;;19869:18;;19833:19;:32;19853:11;19833:32;;;;;;;;;;;;;;;;:54;;19542:345;19480:809;;;19983:59;19996:16;:29;20013:11;19996:29;;;;;;;;;;;;;;;;20027:14;19983:12;:59::i;:::-;19951:16;:29;19968:11;19951:29;;;;;;;;;;;;;;;:91;;;;19480:809;;;20193:40;20206:10;20218:14;20193:12;:40::i;:::-;20180:53;;5092:5;20255:10;:22;20248:29;;19480:809;20378:1;20363:12;;:16;20360:671;;;20463:43;20476:12;;20490:15;20463:12;:43::i;:::-;20448:12;:58;;;;20694:12;;5092:5;20668:10;:22;:39;;;;;;;;20648:15;;:60;;;;;;;;;;;20891:12;;5092:5;20865:10;:22;:39;;;;;;;;20846:15;:59;20840:4;:66;20832:4;:75;20825:82;;20360:671;;;21004:15;20989:12;:30;;;;20360:671;21167:68;21180:19;:37;21200:16;21180:37;;;;;;;;;;;;;;;;21219:15;21167:12;:68::i;:::-;21127:19;:37;21147:16;21127:37;;;;;;;;;;;;;;;:108;;;;21496:4;21477:15;21459;;:33;21458:42;21423:78;;21544:15;21512:10;:28;21523:16;21512:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;21673:11;21603:82;;21619:16;21603:82;;;21637:17;21656:15;21603:82;;;;;;;;;;;;;;;;;;;;;;;;21713:15;21706:22;;2821:907;;;3691:5;3673:15;;:23;;;;;;;;;;;;;;;;;;18517:10;18490:37;;18568:45;18581:17;4903:1;18568:45;;:12;:45::i;:::-;18538:75;;18649:36;18662:19;18683:1;18649:12;:36::i;:::-;18624:61;;18717:49;18730:19;18751:14;18717:12;:49::i;:::-;18696:70;;18802:52;18815:17;18834:19;18802:12;:52::i;:::-;18777:77;;18891:33;18909:14;18891:17;:33::i;:::-;18865:59;;5092:5;18950:10;:22;18935:37;;19344:1;19326:15;:19;:82;;;;;19395:12;;19350:42;19363:15;19379:12;;19350;:42::i;:::-;:57;19326:82;19318:91;;;;;;;;19557:42;19542:57;;:11;:57;;;;:136;;;;;19662:16;19647:31;;:11;:31;;;;19542:136;:345;;;;;19869:18;;19833:19;:32;19853:11;19833:32;;;;;;;;;;;;;;;;:54;;19542:345;19480:809;;;19983:59;19996:16;:29;20013:11;19996:29;;;;;;;;;;;;;;;;20027:14;19983:12;:59::i;:::-;19951:16;:29;19968:11;19951:29;;;;;;;;;;;;;;;:91;;;;19480:809;;;20193:40;20206:10;20218:14;20193:12;:40::i;:::-;20180:53;;5092:5;20255:10;:22;20248:29;;19480:809;20378:1;20363:12;;:16;20360:671;;;20463:43;20476:12;;20490:15;20463:12;:43::i;:::-;20448:12;:58;;;;20694:12;;5092:5;20668:10;:22;:39;;;;;;;;20648:15;;:60;;;;;;;;;;;20891:12;;5092:5;20865:10;:22;:39;;;;;;;;20846:15;:59;20840:4;:66;20832:4;:75;20825:82;;20360:671;;;21004:15;20989:12;:30;;;;20360:671;21167:68;21180:19;:37;21200:16;21180:37;;;;;;;;;;;;;;;;21219:15;21167:12;:68::i;:::-;21127:19;:37;21147:16;21127:37;;;;;;;;;;;;;;;:108;;;;21496:4;21477:15;21459;;:33;21458:42;21423:78;;21544:15;21512:10;:28;21523:16;21512:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;21673:11;21603:82;;21619:16;21603:82;;;21637:17;21656:15;21603:82;;;;;;;;;;;;;;;;;;;;;;;;21713:15;21706:22;;2821:907;18292:3444;;;;;;;;;;;;;;:::o;15565:254::-;15659:7;5092:5;15770:10;:28;15781:16;15770:28;;;;;;;;;;;;;;;;15729:19;:37;15749:16;15729:37;;;;;;;;;;;;;;;;15711:15;;:55;15702:96;15691:120;;;;;;;;15684:127;;15565:254;;;:::o;4744:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17190:398::-;17299:7;17324:18;17400:22;17478:23;17345:44;17358:16;4903:1;17345:44;;:12;:44::i;:::-;17324:65;;17425:42;17438:16;17456:10;17425:12;:42::i;:::-;17400:67;;17504:33;17522:14;17504:17;:33::i;:::-;17478:59;;17565:15;17558:22;;17190:398;;;;;;:::o;14162:122::-;14232:7;14264:12;;14257:19;;14162:122;:::o;17710:414::-;17818:7;17892:17;17955:18;18024:22;17868:12;;17851:13;:29;;17843:38;;;;;;;;17912:32;17930:13;17912:17;:32::i;:::-;17892:52;;17976:37;17989:9;4903:1;17976:37;;:12;:37::i;:::-;17955:58;;18049:35;18062:9;18073:10;18049:12;:35::i;:::-;18024:60;;18102:14;18095:21;;17710:414;;;;;;:::o;6212:34::-;;;;;;;;;;;;;:::o;4822:35::-;4855:2;4822:35;:::o;8574:678::-;8676:24;8724:18;1856:1;1836:17;1848:4;1836:11;:17::i;:::-;:21;1828:30;;;;;;;;8703:10;8676:37;;8745:18;8757:5;8745:11;:18::i;:::-;8724:39;;5092:5;8899:10;:22;8856:10;:28;8867:16;8856:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;8984:16;:34;9001:16;8984:34;;;;;;;;;;;;;;;;8970:48;;;;9066:1;9029:16;:34;9046:16;9029:34;;;;;;;;;;;;;;;:38;;;;9123:16;:25;;:37;9149:10;9123:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9215:16;9204:40;;;9233:10;9204:40;;;;;;;;;;;;;;;;;;8574:678;;:::o;15901:543::-;15972:7;16196:17;16254:18;16329:22;16096:1;16080:12;;:17;16077:360;;;5031:16;4958:15;16120:43;16113:50;;;;16077:360;16216:23;16234:4;16216:17;:23::i;:::-;16196:43;;16275:39;16288:9;4903:1;16275:39;;:12;:39::i;:::-;16254:60;;16354:35;16367:9;16378:10;16354:12;:35::i;:::-;16329:60;;16411:14;16404:21;;15901:543;;;;;:::o;5156:40::-;;;;:::o;14907:310::-;15006:7;15031:24;15058:10;15031:37;;15086:21;:122;;15179:29;15191:16;15179:11;:29::i;:::-;15086:122;;;15142:16;:34;15159:16;15142:34;;;;;;;;;;;;;;;;15110:29;15122:16;15110:11;:29::i;:::-;:66;15086:122;15079:129;;14907:310;;;;:::o;13963:128::-;14042:4;14071;:12;;;14064:19;;13963:128;:::o;15305:169::-;15397:7;15429:19;:37;15449:16;15429:37;;;;;;;;;;;;;;;;15422:44;;15305:169;;;:::o;6003:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;13236:161::-;2300:24;2327:10;2300:37;;2356:14;:34;2372:16;2356:34;;;;;;;;;;;;;;;;;;;;;;;;;2348:43;;;;;;;;13374:15;13353:18;:36;;;;13236:161;;:::o;16527:542::-;16597:7;16821:17;16879:18;16954:22;16721:1;16705:12;;:17;16702:360;;;5031:16;4958:15;16745:43;16738:50;;;;16702:360;16841:23;16859:4;16841:17;:23::i;:::-;16821:43;;16900:39;16913:9;4903:1;16900:39;;:12;:39::i;:::-;16879:60;;16979:35;16992:9;17003:10;16979:12;:35::i;:::-;16954:60;;17036:14;17029:21;;16527:542;;;;;:::o;12961:167::-;2300:24;2327:10;2300:37;;2356:14;:34;2372:16;2356:34;;;;;;;;;;;;;;;;;;;;;;;;;2348:43;;;;;;;;13113:7;13083:14;:27;13098:11;13083:27;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;12961:167;;;:::o;14363:182::-;14430:7;14455:24;14482:10;14455:37;;14510:27;14520:16;14510:9;:27::i;:::-;14503:34;;14363:182;;:::o;4787:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12746:123::-;2300:24;2327:10;2300:37;;2356:14;:34;2372:16;2356:34;;;;;;;;;;;;;;;;;;;;;;;;;2348:43;;;;;;;;12856:5;12838:15;;:23;;;;;;;;;;;;;;;;;;12746:123;:::o;10763:1782::-;10885:4;10925:24;11467:17;11541:20;11615:18;1723:1;1710:10;:8;:10::i;:::-;:14;1702:23;;;;;;;;10952:10;10925:37;;11154:15;;;;;;;;;;;11153:16;:76;;;;;11192:19;:37;11212:16;11192:37;;;;;;;;;;;;;;;;11173:15;:56;;11153:76;11145:85;;;;;;;;11327:1;11307:17;11319:4;11307:11;:17::i;:::-;:21;11304:36;;;11330:10;:8;:10::i;:::-;11304:36;11487:43;11500:15;4903:1;11487:43;;:12;:43::i;:::-;11467:63;;11564:40;11577:15;11594:9;11564:12;:40::i;:::-;11541:63;;11636:28;11654:9;11636:17;:28::i;:::-;11615:49;;11726:37;11739:12;;11753:9;11726:12;:37::i;:::-;11711:12;:52;;;;11844:68;11857:19;:37;11877:16;11857:37;;;;;;;;;;;;;;;;11896:15;11844:12;:68::i;:::-;11804:19;:37;11824:16;11804:37;;;;;;;;;;;;;;;:108;;;;11957:59;11970:19;:31;11990:10;11970:31;;;;;;;;;;;;;;;;12003:12;11957;:59::i;:::-;11923:19;:31;11943:10;11923:31;;;;;;;;;;;;;;;:93;;;;12134:15;12116;;:33;12074:10;:28;12085:16;12074:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;12215:12;12197:15;;:30;12161:10;:22;12172:10;12161:22;;;;;;;;;;;;;;;;:67;;;;;;;;;;;12312:70;12325:15;;12369:12;;5092:5;12343:10;:22;12342:39;;;;;;;;12312:12;:70::i;:::-;12294:15;:88;;;;12453:10;12426:52;;12435:16;12426:52;;;12465:12;12426:52;;;;;;;;;;;;;;;;;;12524:4;12517:11;;10763:1782;;;;;;;;:::o;13647:120::-;2300:24;2327:10;2300:37;;2356:14;:34;2372:16;2356:34;;;;;;;;;;;;;;;;;;;;;;;;;2348:43;;;;;;;;13752:7;13743:6;:16;;;;;;;;;;;;:::i;:::-;;13647:120;;:::o;13466:112::-;2300:24;2327:10;2300:37;;2356:14;:34;2372:16;2356:34;;;;;;;;;;;;;;;;;;;;;;;;;2348:43;;;;;;;;13565:5;13558:4;:12;;;;;;;;;;;;:::i;:::-;;13466:112;;:::o;9320:1300::-;9440:24;9597:15;9641:17;9698:18;9767:22;10100;1723:1;1710:10;:8;:10::i;:::-;:14;1702:23;;;;;;;;9467:10;9440:37;;9548:19;:37;9568:16;9548:37;;;;;;;;;;;;;;;;9529:15;:56;;9521:65;;;;;;;;9615:15;9597:33;;9661:26;9679:7;9661:17;:26::i;:::-;9641:46;;9719:37;9732:9;4903:1;9719:37;;:12;:37::i;:::-;9698:58;;9792:35;9805:9;9816:10;9792:12;:35::i;:::-;9767:60;;9896:35;9909:12;;9923:7;9896:12;:35::i;:::-;9881:12;:50;;;;9982:60;9995:19;:37;10015:16;9995:37;;;;;;;;;;;;;;;;10034:7;9982:12;:60::i;:::-;9942:19;:37;9962:16;9942:37;;;;;;;;;;;;;;;:100;;;;5092:5;10164:14;:26;10153:7;10135:15;;:25;:56;10100:92;;10235:15;10203:10;:28;10214:16;10203:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;10340:1;10325:12;;:16;10321:194;;;10433:70;10446:15;;10490:12;;5092:5;10464:10;:22;10463:39;;;;;;;;10433:12;:70::i;:::-;10415:15;:88;;;;10321:194;10570:16;10558:54;;;10588:7;10597:14;10558:54;;;;;;;;;;;;;;;;;;;;;;;;9320:1300;;;;;;;:::o;8181:320::-;8284:24;8332:15;8311:10;8284:37;;8350:19;:37;8370:16;8350:37;;;;;;;;;;;;;;;;8332:55;;8411:1;8401:7;:11;8398:29;;;8414:13;8419:7;8414:4;:13::i;:::-;8398:29;8483:10;:8;:10::i;:::-;8181:320;;:::o;6828:155::-;6912:7;6937:38;6952:9;6963:11;6937:14;:38::i;:::-;;6828:155;;;:::o;7344:767::-;7451:18;7596:24;7957:15;1856:1;1836:17;1848:4;1836:11;:17::i;:::-;:21;1828:30;;;;;;;;7472:18;7484:5;7472:11;:18::i;:::-;7451:39;;7623:10;7596:37;;5092:5;7687:10;:22;7644:10;:28;7655:16;7644:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;7777:16;:34;7794:16;7777:34;;;;;;;;;;;;;;;;7763:48;;;;7859:1;7822:16;:34;7839:16;7822:34;;;;;;;;;;;;;;;:38;;;;7975:31;7990:10;8002:3;7975:14;:31::i;:::-;7957:49;;8065:16;8050:53;;;8083:10;8095:7;8050:53;;;;;;;;;;;;;;;;;;;;;;;;7344:767;;;:::o;25422:147::-;25480:7;25500:9;25516:1;25512;:5;25500:17;;25540:1;25535;:6;;25528:14;;;;;;25560:1;25553:8;;25422:147;;;;;:::o;24810:288::-;24868:7;24967:9;24983:1;24979;:5;;;;;;;;24967:17;;25089:1;25082:8;;24810:288;;;;;:::o;25224:123::-;25282:7;25314:1;25309;:6;;25302:14;;;;;;25338:1;25334;:5;25327:12;;25224:123;;;;:::o;22032:976::-;22127:7;22152:26;22217:23;22202:4;4958:15;22181:25;22152:54;;22940:12;;5031:16;22332:555;22368:457;22785:12;;22766:18;5031:16;22739:1;:26;:45;:58;22674:1;22660:12;;:15;22656:1;5031:16;22630:27;22629:47;22561:4;22549:9;:16;22542:4;5031:16;22517:29;22514:1;:33;:52;22450:1;22430:18;:21;22429:138;:248;:369;22368:4;:457::i;:::-;22850:18;22332:12;:555::i;:::-;22269:658;;;;;;;;22254:699;22217:736;;22985:15;22978:22;;22032:976;;;;;:::o;23275:722::-;23368:7;23395:15;23440:20;23495:22;23424:4;23414:7;:14;23395:34;;23479:4;23464:12;;:19;23440:44;;23952:4;23584:357;23847:4;23837:7;:14;5031:16;23756:4;23743:12;:17;;;;;;;;5031:16;23717:44;4958:15;23696:66;23665:147;23638:214;23925:1;23918:4;23909:7;23907:1;23898:7;:10;:18;23897:25;;;;;;;;5031:16;23873:50;23872:54;;;;;;;;23584:12;:357::i;:::-;:372;;;;;;;;23495:462;;23975:14;23968:21;;23275:722;;;;;;:::o;24109:198::-;24154:6;24173;24192:1;24187;24183;:5;24182:11;;;;;;;;24173:20;;24208:1;24204:5;;24220:80;24231:1;24227;:5;24220:80;;;24253:1;24249:5;;24287:1;24282;24278;24274;:5;;;;;;;;:9;24273:15;;;;;;;;24269:19;;24220:80;;;24109:198;;;;:::o;1482:22828::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://c81194af077f34e3c9234126befa56521e3e0b404f120bba330677f79f24bcfd
Loading...
Loading
Loading...
Loading
Net Worth in USD
$4,338.67
Net Worth in ETH
2.175882
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1,995.84 | 2.1739 | $4,338.67 |
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.