More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 194 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 12298089 | 1335 days ago | IN | 0 ETH | 0.00408246 | ||||
Fund | 12298086 | 1335 days ago | IN | 0.005 ETH | 0.00498635 | ||||
Withdraw | 12298076 | 1335 days ago | IN | 0 ETH | 0.00293068 | ||||
Withdraw | 12298074 | 1335 days ago | IN | 0 ETH | 0.00427458 | ||||
Fund | 12298069 | 1335 days ago | IN | 0.005 ETH | 0.00864351 | ||||
Withdraw | 5574407 | 2417 days ago | IN | 0 ETH | 0.00003903 | ||||
Withdraw | 5574404 | 2417 days ago | IN | 0 ETH | 0.00004573 | ||||
Sell My Tokens | 5574393 | 2417 days ago | IN | 0 ETH | 0.00022 | ||||
Withdraw | 5574393 | 2417 days ago | IN | 0 ETH | 0.00009 | ||||
Sell My Tokens | 5574393 | 2417 days ago | IN | 0 ETH | 0.00003812 | ||||
Withdraw | 5574386 | 2417 days ago | IN | 0 ETH | 0.00004573 | ||||
Withdraw | 5556326 | 2420 days ago | IN | 0 ETH | 0.00036589 | ||||
Sell My Tokens | 5556302 | 2420 days ago | IN | 0 ETH | 0.00030499 | ||||
Withdraw | 5474258 | 2434 days ago | IN | 0 ETH | 0.00005031 | ||||
Sell My Tokens | 5474198 | 2434 days ago | IN | 0 ETH | 0.00004185 | ||||
Get Me Out Of He... | 5457986 | 2437 days ago | IN | 0 ETH | 0.00006225 | ||||
Withdraw | 5450360 | 2438 days ago | IN | 0 ETH | 0.00004573 | ||||
Sell My Tokens | 5450346 | 2438 days ago | IN | 0 ETH | 0.00003804 | ||||
Fund | 5436351 | 2440 days ago | IN | 0.01 ETH | 0.00006533 | ||||
Fund | 5434083 | 2441 days ago | IN | 0.004 ETH | 0.00005939 | ||||
Fund | 5433928 | 2441 days ago | IN | 0.005 ETH | 0.00005947 | ||||
Withdraw | 5428819 | 2442 days ago | IN | 0 ETH | 0.00004573 | ||||
Sell My Tokens | 5428816 | 2442 days ago | IN | 0 ETH | 0.00003804 | ||||
Withdraw | 5428736 | 2442 days ago | IN | 0 ETH | 0.00004573 | ||||
Fund | 5428472 | 2442 days ago | IN | 0.0025 ETH | 0.00004162 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12298089 | 1335 days ago | 0.00007519 ETH | ||||
12298074 | 1335 days ago | 0.00002874 ETH | ||||
5574404 | 2417 days ago | 0.00392515 ETH | ||||
5574386 | 2417 days ago | 0.00777531 ETH | ||||
5556326 | 2420 days ago | 0.0183164 ETH | ||||
5474258 | 2434 days ago | 0.01010913 ETH | ||||
5457986 | 2437 days ago | 0.01827767 ETH | ||||
5450360 | 2438 days ago | 0.00295161 ETH | ||||
5428819 | 2442 days ago | 0.00666374 ETH | ||||
5428736 | 2442 days ago | 0.00088762 ETH | ||||
5428409 | 2442 days ago | 0.00498861 ETH | ||||
5426829 | 2442 days ago | 0.00604396 ETH | ||||
5425576 | 2442 days ago | 0.22527885 ETH | ||||
5425330 | 2442 days ago | 0.01140022 ETH | ||||
5423412 | 2443 days ago | 0.12738566 ETH | ||||
5423330 | 2443 days ago | 0.02836759 ETH | ||||
5423291 | 2443 days ago | 0.02254313 ETH | ||||
5422869 | 2443 days ago | 5.33002021 ETH | ||||
5422782 | 2443 days ago | 0.01287028 ETH | ||||
5421588 | 2443 days ago | 0.8626825 ETH | ||||
5420940 | 2443 days ago | 0.01452407 ETH | ||||
5420830 | 2443 days ago | 1.09808823 ETH | ||||
5420762 | 2443 days ago | 0.04399276 ETH | ||||
5420728 | 2443 days ago | 0.12175646 ETH | ||||
5420257 | 2443 days ago | 0.00645073 ETH |
Loading...
Loading
Contract Name:
EthPyramid
Compiler Version
v0.4.20+commit.3155dd80
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-10 */ pragma solidity ^0.4.18; /* so much wow, free moniez */ contract EthPyramid { // scaleFactor is used to convert Ether into tokens and vice-versa: they're of different // orders of magnitude, hence the need to bridge between the two. uint256 constant scaleFactor = 0x10000000000000000; // 2^64 // CRR = 50% // CRR is Cash Reserve Ratio (in this case Crypto Reserve Ratio). // For more on this: check out https://en.wikipedia.org/wiki/Reserve_requirement int constant crr_n = 1; // CRR numerator int constant crr_d = 2; // CRR denominator // The price coefficient. Chosen such that at 1 token total supply // the amount in reserve is 0.5 ether and token price is 1 Ether. int constant price_coeff = -0x296ABF784A358468C; // Typical values that we have to declare. string constant public name = "Dogecoin"; string constant public symbol = "DOGE"; uint8 constant public decimals = 18; // Array between each address and their number of tokens. mapping(address => uint256) public tokenBalance; // Array between each address and how much Ether has been paid out to it. // Note that this is scaled by the scaleFactor variable. mapping(address => int256) public payouts; // Variable tracking how many tokens are in existence overall. uint256 public totalSupply; // Aggregate sum of all payouts. // Note that this is scaled by the scaleFactor variable. int256 totalPayouts; // Variable tracking how much Ether each token is currently worth. // Note that this is scaled by the scaleFactor variable. uint256 earningsPerToken; // Current contract balance in Ether uint256 public contractBalance; bool open = false; address admin = 0xD2E6B3BFE990fdede2380885d9d83Ca9364E717E; modifier OnlyOpen(){ require(open || (msg.sender==admin)); _; } function OpenContract(){ require(msg.sender==admin); open=true; } function EthPyramid() public {} // The following functions are used by the front-end for display purposes. // Returns the number of tokens currently held by _owner. function balanceOf(address _owner) public constant returns (uint256 balance) { return tokenBalance[_owner]; } // Withdraws all dividends held by the caller sending the transaction, updates // the requisite global variables, and transfers Ether back to the caller. function withdraw() public { // Retrieve the dividends associated with the address the request came from. var balance = dividends(msg.sender); // Update the payouts array, incrementing the request address by `balance`. payouts[msg.sender] += (int256) (balance * scaleFactor); // Increase the total amount that's been paid out to maintain invariance. totalPayouts += (int256) (balance * scaleFactor); // Send the dividends to the address that requested the withdraw. contractBalance = sub(contractBalance, balance); msg.sender.transfer(balance); } // Converts the Ether accrued as dividends back into EPY tokens without having to // withdraw it first. Saves on gas and potential price spike loss. function reinvestDividends() public { // Retrieve the dividends associated with the address the request came from. var balance = dividends(msg.sender); // Update the payouts array, incrementing the request address by `balance`. // Since this is essentially a shortcut to withdrawing and reinvesting, this step still holds. payouts[msg.sender] += (int256) (balance * scaleFactor); // Increase the total amount that's been paid out to maintain invariance. totalPayouts += (int256) (balance * scaleFactor); // Assign balance to a new variable. uint value_ = (uint) (balance); // If your dividends are worth less than 1 szabo, or more than a million Ether // (in which case, why are you even here), abort. if (value_ < 0.000001 ether || value_ > 1000000 ether) revert(); // msg.sender is the address of the caller. var sender = msg.sender; // A temporary reserve variable used for calculating the reward the holder gets for buying tokens. // (Yes, the buyer receives a part of the distribution as well!) var res = reserve() - balance; // 10% of the total Ether sent is used to pay existing holders. var fee = div(value_, 10); // The amount of Ether used to purchase new tokens for the caller. var numEther = value_ - fee; // The number of tokens which can be purchased for numEther. var numTokens = calculateDividendTokens(numEther, balance); // The buyer fee, scaled by the scaleFactor variable. var buyerFee = fee * scaleFactor; // Check that we have tokens in existence (this should always be true), or // else you're gonna have a bad time. if (totalSupply > 0) { // Compute the bonus co-efficient for all existing holders and the buyer. // The buyer receives part of the distribution for each token bought in the // same way they would have if they bought each token individually. var bonusCoEff = (scaleFactor - (res + numEther) * numTokens * scaleFactor / (totalSupply + numTokens) / numEther) * (uint)(crr_d) / (uint)(crr_d-crr_n); // The total reward to be distributed amongst the masses is the fee (in Ether) // multiplied by the bonus co-efficient. var holderReward = fee * bonusCoEff; buyerFee -= holderReward; // Fee is distributed to all existing token holders before the new tokens are purchased. // rewardPerShare is the amount gained per token thanks to this buy-in. var rewardPerShare = holderReward / totalSupply; // The Ether value per token is increased proportionally. earningsPerToken += rewardPerShare; } // Add the numTokens which were just created to the total supply. We're a crypto central bank! totalSupply = add(totalSupply, numTokens); // Assign the tokens to the balance of the buyer. tokenBalance[sender] = add(tokenBalance[sender], numTokens); // Update the payout array so that the buyer cannot claim dividends on previous purchases. // Also include the fee paid for entering the scheme. // First we compute how much was just paid out to the buyer... var payoutDiff = (int256) ((earningsPerToken * numTokens) - buyerFee); // Then we update the payouts array for the buyer with this amount... payouts[sender] += payoutDiff; // And then we finally add it to the variable tracking the total amount spent to maintain invariance. totalPayouts += payoutDiff; } // Sells your tokens for Ether. This Ether is assigned to the callers entry // in the tokenBalance array, and therefore is shown as a dividend. A second // call to withdraw() must be made to invoke the transfer of Ether back to your address. function sellMyTokens() public { var balance = balanceOf(msg.sender); sell(balance); } // The slam-the-button escape hatch. Sells the callers tokens for Ether, then immediately // invokes the withdraw() function, sending the resulting Ether to the callers address. function getMeOutOfHere() public { sellMyTokens(); withdraw(); } // Gatekeeper function to check if the amount of Ether being sent isn't either // too small or too large. If it passes, goes direct to buy(). function fund()payable public { // Don't allow for funding if the amount of Ether sent is less than 1 szabo. if (msg.value > 0.000001 ether) { contractBalance = add(contractBalance, msg.value); buy(); } else { revert(); } } // Function that returns the (dynamic) price of buying a finney worth of tokens. function buyPrice() public constant returns (uint) { return getTokensForEther(1 finney); } // Function that returns the (dynamic) price of selling a single token. function sellPrice() public constant returns (uint) { var eth = getEtherForTokens(1 finney); var fee = div(eth, 10); return eth - fee; } // Calculate the current dividends associated with the caller address. This is the net result // of multiplying the number of tokens held by their current value in Ether and subtracting the // Ether that has already been paid out. function dividends(address _owner) public constant returns (uint256 amount) { return (uint256) ((int256)(earningsPerToken * tokenBalance[_owner]) - payouts[_owner]) / scaleFactor; } // Version of withdraw that extracts the dividends and sends the Ether to the caller. // This is only used in the case when there is no transaction data, and that should be // quite rare unless interacting directly with the smart contract. function withdrawOld(address to) public { // Retrieve the dividends associated with the address the request came from. var balance = dividends(msg.sender); // Update the payouts array, incrementing the request address by `balance`. payouts[msg.sender] += (int256) (balance * scaleFactor); // Increase the total amount that's been paid out to maintain invariance. totalPayouts += (int256) (balance * scaleFactor); // Send the dividends to the address that requested the withdraw. contractBalance = sub(contractBalance, balance); to.transfer(balance); } // Internal balance function, used to calculate the dynamic reserve value. function balance() internal constant returns (uint256 amount) { // msg.value is the amount of Ether sent by the transaction. return contractBalance - msg.value; } function buy() OnlyOpen() internal { // Any transaction of less than 1 szabo is likely to be worth less than the gas used to send it. if (msg.value < 0.000001 ether || msg.value > 1000000 ether) revert(); // msg.sender is the address of the caller. var sender = msg.sender; // 10% of the total Ether sent is used to pay existing holders. var fee = div(msg.value, 10); // The amount of Ether used to purchase new tokens for the caller. var numEther = msg.value - fee; // The number of tokens which can be purchased for numEther. var numTokens = getTokensForEther(numEther); // The buyer fee, scaled by the scaleFactor variable. var buyerFee = fee * scaleFactor; // Check that we have tokens in existence (this should always be true), or // else you're gonna have a bad time. if (totalSupply > 0) { // Compute the bonus co-efficient for all existing holders and the buyer. // The buyer receives part of the distribution for each token bought in the // same way they would have if they bought each token individually. var bonusCoEff = (scaleFactor - (reserve() + numEther) * numTokens * scaleFactor / (totalSupply + numTokens) / numEther) * (uint)(crr_d) / (uint)(crr_d-crr_n); // The total reward to be distributed amongst the masses is the fee (in Ether) // multiplied by the bonus co-efficient. var holderReward = fee * bonusCoEff; buyerFee -= holderReward; // Fee is distributed to all existing token holders before the new tokens are purchased. // rewardPerShare is the amount gained per token thanks to this buy-in. var rewardPerShare = holderReward / totalSupply; // The Ether value per token is increased proportionally. earningsPerToken += rewardPerShare; } // Add the numTokens which were just created to the total supply. We're a crypto central bank! totalSupply = add(totalSupply, numTokens); // Assign the tokens to the balance of the buyer. tokenBalance[sender] = add(tokenBalance[sender], numTokens); // Update the payout array so that the buyer cannot claim dividends on previous purchases. // Also include the fee paid for entering the scheme. // First we compute how much was just paid out to the buyer... var payoutDiff = (int256) ((earningsPerToken * numTokens) - buyerFee); // Then we update the payouts array for the buyer with this amount... payouts[sender] += payoutDiff; // And then we finally add it to the variable tracking the total amount spent to maintain invariance. totalPayouts += payoutDiff; } // Sell function that takes tokens and converts them into Ether. Also comes with a 10% fee // to discouraging dumping, and means that if someone near the top sells, the fee distributed // will be *significant*. function sell(uint256 amount) internal { // Calculate the amount of Ether that the holders tokens sell for at the current sell price. var numEthersBeforeFee = getEtherForTokens(amount); // 10% of the resulting Ether is used to pay remaining holders. var fee = div(numEthersBeforeFee, 10); // Net Ether for the seller after the fee has been subtracted. var numEthers = numEthersBeforeFee - fee; // *Remove* the numTokens which were just sold from the total supply. We're /definitely/ a crypto central bank. totalSupply = sub(totalSupply, amount); // Remove the tokens from the balance of the buyer. tokenBalance[msg.sender] = sub(tokenBalance[msg.sender], amount); // Update the payout array so that the seller cannot claim future dividends unless they buy back in. // First we compute how much was just paid out to the seller... var payoutDiff = (int256) (earningsPerToken * amount + (numEthers * scaleFactor)); // We reduce the amount paid out to the seller (this effectively resets their payouts value to zero, // since they're selling all of their tokens). This makes sure the seller isn't disadvantaged if // they decide to buy back in. payouts[msg.sender] -= payoutDiff; // Decrease the total amount that's been paid out to maintain invariance. totalPayouts -= payoutDiff; // Check that we have tokens in existence (this is a bit of an irrelevant check since we're // selling tokens, but it guards against division by zero). if (totalSupply > 0) { // Scale the Ether taken as the selling fee by the scaleFactor variable. var etherFee = fee * scaleFactor; // Fee is distributed to all remaining token holders. // rewardPerShare is the amount gained per token thanks to this sell. var rewardPerShare = etherFee / totalSupply; // The Ether value per token is increased proportionally. earningsPerToken = add(earningsPerToken, rewardPerShare); } } // Dynamic value of Ether in reserve, according to the CRR requirement. function reserve() internal constant returns (uint256 amount) { return sub(balance(), ((uint256) ((int256) (earningsPerToken * totalSupply) - totalPayouts) / scaleFactor)); } // Calculates the number of tokens that can be bought for a given amount of Ether, according to the // dynamic reserve and totalSupply values (derived from the buy and sell prices). function getTokensForEther(uint256 ethervalue) public constant returns (uint256 tokens) { return sub(fixedExp(fixedLog(reserve() + ethervalue)*crr_n/crr_d + price_coeff), totalSupply); } // Semantically similar to getTokensForEther, but subtracts the callers balance from the amount of Ether returned for conversion. function calculateDividendTokens(uint256 ethervalue, uint256 subvalue) public constant returns (uint256 tokens) { return sub(fixedExp(fixedLog(reserve() - subvalue + ethervalue)*crr_n/crr_d + price_coeff), totalSupply); } // Converts a number tokens into an Ether value. function getEtherForTokens(uint256 tokens) public constant returns (uint256 ethervalue) { // How much reserve Ether do we have left in the contract? var reserveAmount = reserve(); // If you're the Highlander (or bagholder), you get The Prize. Everything left in the vault. if (tokens == totalSupply) return reserveAmount; // If there would be excess Ether left after the transaction this is called within, return the Ether // corresponding to the equation in Dr Jochen Hoenicke's original Ponzi paper, which can be found // at https://test.jochen-hoenicke.de/eth/ponzitoken/ in the third equation, with the CRR numerator // and denominator altered to 1 and 2 respectively. return sub(reserveAmount, fixedExp((fixedLog(totalSupply - tokens) - price_coeff) * crr_d/crr_n)); } // You don't care about these, but if you really do they're hex values for // co-efficients used to simulate approximations of the log and exp functions. int256 constant one = 0x10000000000000000; uint256 constant sqrt2 = 0x16a09e667f3bcc908; uint256 constant sqrtdot5 = 0x0b504f333f9de6484; int256 constant ln2 = 0x0b17217f7d1cf79ac; int256 constant ln2_64dot5 = 0x2cb53f09f05cc627c8; int256 constant c1 = 0x1ffffffffff9dac9b; int256 constant c3 = 0x0aaaaaaac16877908; int256 constant c5 = 0x0666664e5e9fa0c99; int256 constant c7 = 0x049254026a7630acf; int256 constant c9 = 0x038bd75ed37753d68; int256 constant c11 = 0x03284a0c14610924f; // The polynomial R = c1*x + c3*x^3 + ... + c11 * x^11 // approximates the function log(1+x)-log(1-x) // Hence R(s) = log((1+s)/(1-s)) = log(a) function fixedLog(uint256 a) internal pure returns (int256 log) { int32 scale = 0; while (a > sqrt2) { a /= 2; scale++; } while (a <= sqrtdot5) { a *= 2; scale--; } int256 s = (((int256)(a) - one) * one) / ((int256)(a) + one); var z = (s*s) / one; return scale * ln2 + (s*(c1 + (z*(c3 + (z*(c5 + (z*(c7 + (z*(c9 + (z*c11/one)) /one))/one))/one))/one))/one); } int256 constant c2 = 0x02aaaaaaaaa015db0; int256 constant c4 = -0x000b60b60808399d1; int256 constant c6 = 0x0000455956bccdd06; int256 constant c8 = -0x000001b893ad04b3a; // The polynomial R = 2 + c2*x^2 + c4*x^4 + ... // approximates the function x*(exp(x)+1)/(exp(x)-1) // Hence exp(x) = (R(x)+x)/(R(x)-x) function fixedExp(int256 a) internal pure returns (uint256 exp) { int256 scale = (a + (ln2_64dot5)) / ln2 - 64; a -= scale*ln2; int256 z = (a*a) / one; int256 R = ((int256)(2) * one) + (z*(c2 + (z*(c4 + (z*(c6 + (z*c8/one))/one))/one))/one); exp = (uint256) (((R + a) * one) / (R - a)); if (scale >= 0) exp <<= scale; else exp >>= -scale; return exp; } // The below are safemath implementations of the four arithmetic operators // designed to explicitly prevent over- and under-flows of integer values. 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; } 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; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } // This allows you to buy tokens by sending Ether directly to the smart contract // without including any transaction data (useful for, say, mobile wallet apps). function () payable public { // msg.value is the amount of Ether sent by the transaction. if (msg.value > 0) { fund(); } else { withdrawOld(msg.sender); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"withdrawOld","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"OpenContract","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":"ethervalue","type":"uint256"}],"name":"getTokensForEther","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payouts","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"dividends","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reinvestDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getMeOutOfHere","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"fund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"tokens","type":"uint256"}],"name":"getEtherForTokens","outputs":[{"name":"ethervalue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ethervalue","type":"uint256"},{"name":"subvalue","type":"uint256"}],"name":"calculateDividendTokens","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sellMyTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
60606040526000600660006101000a81548160ff02191690831515021790555073d2e6b3bfe990fdede2380885d9d83ca9364e717e600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550341561007f57600080fd5b6115378061008e6000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461013f57806318160ddd146101cd578063313ce567146101f657806339ffe67c146102255780633ccfd60b1461025e57806347c3114e146102735780634b7503341461028857806362dbf261146102b157806365bcfbe7146102e857806368306e431461033557806370a08231146103825780638620410b146103cf5780638b7afe2e146103f8578063957b2e561461042157806395d89b4114610436578063b1e35242146104c4578063b60d4288146104d9578063b9f308f2146104e3578063bda5c4501461051a578063e555c1a31461055a578063eedc966a1461056f575b60003411156101335761012e6105bc565b61013d565b61013c336105ef565b5b005b341561014a57600080fd5b6101526106c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610192578082015181840152602081019050610177565b50505050905090810190601f1680156101bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d857600080fd5b6101e06106fe565b6040518082815260200191505060405180910390f35b341561020157600080fd5b610209610704565b604051808260ff1660ff16815260200191505060405180910390f35b341561023057600080fd5b61025c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506105ef565b005b341561026957600080fd5b610271610709565b005b341561027e57600080fd5b6102866107de565b005b341561029357600080fd5b61029b610857565b6040518082815260200191505060405180910390f35b34156102bc57600080fd5b6102d26004808035906020019091905050610885565b6040518082815260200191505060405180910390f35b34156102f357600080fd5b61031f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108e4565b6040518082815260200191505060405180910390f35b341561034057600080fd5b61036c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108fc565b6040518082815260200191505060405180910390f35b341561038d57600080fd5b6103b9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061099d565b6040518082815260200191505060405180910390f35b34156103da57600080fd5b6103e26109e5565b6040518082815260200191505060405180910390f35b341561040357600080fd5b61040b6109fc565b6040518082815260200191505060405180910390f35b341561042c57600080fd5b610434610a02565b005b341561044157600080fd5b610449610c85565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048957808201518184015260208101905061046e565b50505050905090810190601f1680156104b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cf57600080fd5b6104d7610cbe565b005b6104e16105bc565b005b34156104ee57600080fd5b6105046004808035906020019091905050610cd0565b6040518082815260200191505060405180910390f35b341561052557600080fd5b6105446004808035906020019091908035906020019091905050610d47565b6040518082815260200191505060405180910390f35b341561056557600080fd5b61056d610da9565b005b341561057a57600080fd5b6105a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dc2565b6040518082815260200191505060405180910390f35b64e8d4a510003411156105e8576105d560055434610dda565b6005819055506105e3610df8565b6105ed565b600080fd5b565b60006105fa336108fc565b9050680100000000000000008102600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555068010000000000000000810260036000828254019250508190555061067b60055482611060565b6005819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156106c157600080fd5b5050565b6040805190810160405280600881526020017f446f6765636f696e00000000000000000000000000000000000000000000000081525081565b60025481565b601281565b6000610714336108fc565b9050680100000000000000008102600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555068010000000000000000810260036000828254019250508190555061079560055482611060565b6005819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156107db57600080fd5b50565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561083a57600080fd5b6001600660006101000a81548160ff021916908315150217905550565b600080600061086c66038d7ea4c68000610cd0565b915061087982600a611079565b90508082039250505090565b60006108dd6108d57ffffffffffffffffffffffffffffffffffffffffffffffffd6954087b5ca7b974600260016108c4876108be611094565b016110ca565b028115156108ce57fe5b0501611225565b600254611060565b9050919050565b60016020528060005260406000206000915090505481565b600068010000000000000000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600454020381151561099557fe5b049050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006109f766038d7ea4c68000610885565b905090565b60055481565b600080600080600080600080600080600080610a1d336108fc565b9b50680100000000000000008c02600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550680100000000000000008c026003600082825401925050819055508b9a5064e8d4a510008b1080610ab1575069d3c21bcecceda10000008b115b15610abb57600080fd5b3399508b610ac7611094565b039850610ad58b600a611079565b9750878b039650610ae6878d610d47565b9550680100000000000000008802945060006002541115610b755760016002036002888860025401680100000000000000008a8c8f010202811515610b2757fe5b04811515610b3157fe5b04680100000000000000000302811515610b4757fe5b0493508388029250828503945060025483811515610b6157fe5b049150816004600082825401925050819055505b610b8160025487610dda565b600281905550610bcf6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610dda565b6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866004540203905080600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600360008282540192505081905550505050505050505050505050565b6040805190810160405280600481526020017f444f47450000000000000000000000000000000000000000000000000000000081525081565b610cc6610da9565b610cce610709565b565b600080610cdb611094565b9050600254831415610cef57809150610d41565b610d3e81610d39600160027ffffffffffffffffffffffffffffffffffffffffffffffffd6954087b5ca7b974610d2889600254036110ca565b0302811515610d3357fe5b05611225565b611060565b91505b50919050565b6000610da1610d997ffffffffffffffffffffffffffffffffffffffffffffffffd6954087b5ca7b97460026001610d888888610d81611094565b03016110ca565b02811515610d9257fe5b0501611225565b600254611060565b905092915050565b6000610db43361099d565b9050610dbf81611387565b50565b60006020528060005260406000206000915090505481565b6000808284019050838110151515610dee57fe5b8091505092915050565b6000806000806000806000806000600660009054906101000a900460ff1680610e6e5750600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610e7957600080fd5b64e8d4a51000341080610e95575069d3c21bcecceda100000034115b15610e9f57600080fd5b339850610ead34600a611079565b97508734039650610ebd87610885565b9550680100000000000000008802945060006002541115610f535760016002036002888860025401680100000000000000008a8c610ef9611094565b010202811515610f0557fe5b04811515610f0f57fe5b04680100000000000000000302811515610f2557fe5b0493508388029250828503945060025483811515610f3f57fe5b049150816004600082825401925050819055505b610f5f60025487610dda565b600281905550610fad6000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610dda565b6000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866004540203905080600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600360008282540192505081905550505050505050505050565b600082821115151561106e57fe5b818303905092915050565b600080828481151561108757fe5b0490508091505092915050565b60006110c56110a16114ff565b6801000000000000000060035460025460045402038115156110bf57fe5b04611060565b905090565b600080600080600092505b68016a09e667f3bcc908851115611102576002858115156110f257fe5b04945082806001019350506110d5565b5b67b504f333f9de64848511151561112857600285029450828060019003935050611103565b680100000000000000008501680100000000000000008087030281151561114b57fe5b0591506801000000000000000082830281151561116457fe5b059050680100000000000000008068010000000000000000806801000000000000000080673284a0c14610924f870281151561119c57fe5b056738bd75ed37753d680186028115156111b257fe5b056749254026a7630acf0185028115156111c857fe5b0567666664e5e9fa0c990184028115156111de57fe5b0567aaaaaaac168779080183028115156111f457fe5b056801ffffffffff9dac9b01830281151561120b57fe5b0567b17217f7d1cf79ac8460030b02019350505050919050565b600080600080604067b17217f7d1cf79ac682cb53f09f05cc627c8870181151561124b57fe5b0503925067b17217f7d1cf79ac8302850394506801000000000000000085860281151561127457fe5b059150680100000000000000008068010000000000000000807fffffffffffffffffffffffffffffffffffffffffffffffffffffe476c52fb4c686028115156112b957fe5b05660455956bccdd060185028115156112ce57fe5b057fffffffffffffffffffffffffffffffffffffffffffffffffff49f49f7f7c662f0184028115156112fc57fe5b05672aaaaaaaaa015db001830281151561131257fe5b0568010000000000000000600202019050848103680100000000000000008683010281151561133d57fe5b059350600083121515611363578284600082121561135757fe5b9060020a02935061137c565b8260000384600082121561137357fe5b9060020a900493505b839350505050919050565b60008060008060008061139987610cd0565b95506113a686600a611079565b945084860393506113b960025488611060565b6002819055506114076000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488611060565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008402876004540201925082600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555082600360008282540392505081905550600060025411156114f6576801000000000000000085029150600254828115156114e057fe5b0490506114ef60045482610dda565b6004819055505b50505050505050565b600034600554039050905600a165627a7a7230582001c2e3cbe4f484e6a192a53d5f5f31fdf0c938d92582311f44a6539655b0df2b0029
Deployed Bytecode
0x60606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461013f57806318160ddd146101cd578063313ce567146101f657806339ffe67c146102255780633ccfd60b1461025e57806347c3114e146102735780634b7503341461028857806362dbf261146102b157806365bcfbe7146102e857806368306e431461033557806370a08231146103825780638620410b146103cf5780638b7afe2e146103f8578063957b2e561461042157806395d89b4114610436578063b1e35242146104c4578063b60d4288146104d9578063b9f308f2146104e3578063bda5c4501461051a578063e555c1a31461055a578063eedc966a1461056f575b60003411156101335761012e6105bc565b61013d565b61013c336105ef565b5b005b341561014a57600080fd5b6101526106c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610192578082015181840152602081019050610177565b50505050905090810190601f1680156101bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d857600080fd5b6101e06106fe565b6040518082815260200191505060405180910390f35b341561020157600080fd5b610209610704565b604051808260ff1660ff16815260200191505060405180910390f35b341561023057600080fd5b61025c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506105ef565b005b341561026957600080fd5b610271610709565b005b341561027e57600080fd5b6102866107de565b005b341561029357600080fd5b61029b610857565b6040518082815260200191505060405180910390f35b34156102bc57600080fd5b6102d26004808035906020019091905050610885565b6040518082815260200191505060405180910390f35b34156102f357600080fd5b61031f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108e4565b6040518082815260200191505060405180910390f35b341561034057600080fd5b61036c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108fc565b6040518082815260200191505060405180910390f35b341561038d57600080fd5b6103b9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061099d565b6040518082815260200191505060405180910390f35b34156103da57600080fd5b6103e26109e5565b6040518082815260200191505060405180910390f35b341561040357600080fd5b61040b6109fc565b6040518082815260200191505060405180910390f35b341561042c57600080fd5b610434610a02565b005b341561044157600080fd5b610449610c85565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048957808201518184015260208101905061046e565b50505050905090810190601f1680156104b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cf57600080fd5b6104d7610cbe565b005b6104e16105bc565b005b34156104ee57600080fd5b6105046004808035906020019091905050610cd0565b6040518082815260200191505060405180910390f35b341561052557600080fd5b6105446004808035906020019091908035906020019091905050610d47565b6040518082815260200191505060405180910390f35b341561056557600080fd5b61056d610da9565b005b341561057a57600080fd5b6105a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dc2565b6040518082815260200191505060405180910390f35b64e8d4a510003411156105e8576105d560055434610dda565b6005819055506105e3610df8565b6105ed565b600080fd5b565b60006105fa336108fc565b9050680100000000000000008102600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555068010000000000000000810260036000828254019250508190555061067b60055482611060565b6005819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156106c157600080fd5b5050565b6040805190810160405280600881526020017f446f6765636f696e00000000000000000000000000000000000000000000000081525081565b60025481565b601281565b6000610714336108fc565b9050680100000000000000008102600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555068010000000000000000810260036000828254019250508190555061079560055482611060565b6005819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156107db57600080fd5b50565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561083a57600080fd5b6001600660006101000a81548160ff021916908315150217905550565b600080600061086c66038d7ea4c68000610cd0565b915061087982600a611079565b90508082039250505090565b60006108dd6108d57ffffffffffffffffffffffffffffffffffffffffffffffffd6954087b5ca7b974600260016108c4876108be611094565b016110ca565b028115156108ce57fe5b0501611225565b600254611060565b9050919050565b60016020528060005260406000206000915090505481565b600068010000000000000000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600454020381151561099557fe5b049050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006109f766038d7ea4c68000610885565b905090565b60055481565b600080600080600080600080600080600080610a1d336108fc565b9b50680100000000000000008c02600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550680100000000000000008c026003600082825401925050819055508b9a5064e8d4a510008b1080610ab1575069d3c21bcecceda10000008b115b15610abb57600080fd5b3399508b610ac7611094565b039850610ad58b600a611079565b9750878b039650610ae6878d610d47565b9550680100000000000000008802945060006002541115610b755760016002036002888860025401680100000000000000008a8c8f010202811515610b2757fe5b04811515610b3157fe5b04680100000000000000000302811515610b4757fe5b0493508388029250828503945060025483811515610b6157fe5b049150816004600082825401925050819055505b610b8160025487610dda565b600281905550610bcf6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610dda565b6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866004540203905080600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600360008282540192505081905550505050505050505050505050565b6040805190810160405280600481526020017f444f47450000000000000000000000000000000000000000000000000000000081525081565b610cc6610da9565b610cce610709565b565b600080610cdb611094565b9050600254831415610cef57809150610d41565b610d3e81610d39600160027ffffffffffffffffffffffffffffffffffffffffffffffffd6954087b5ca7b974610d2889600254036110ca565b0302811515610d3357fe5b05611225565b611060565b91505b50919050565b6000610da1610d997ffffffffffffffffffffffffffffffffffffffffffffffffd6954087b5ca7b97460026001610d888888610d81611094565b03016110ca565b02811515610d9257fe5b0501611225565b600254611060565b905092915050565b6000610db43361099d565b9050610dbf81611387565b50565b60006020528060005260406000206000915090505481565b6000808284019050838110151515610dee57fe5b8091505092915050565b6000806000806000806000806000600660009054906101000a900460ff1680610e6e5750600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610e7957600080fd5b64e8d4a51000341080610e95575069d3c21bcecceda100000034115b15610e9f57600080fd5b339850610ead34600a611079565b97508734039650610ebd87610885565b9550680100000000000000008802945060006002541115610f535760016002036002888860025401680100000000000000008a8c610ef9611094565b010202811515610f0557fe5b04811515610f0f57fe5b04680100000000000000000302811515610f2557fe5b0493508388029250828503945060025483811515610f3f57fe5b049150816004600082825401925050819055505b610f5f60025487610dda565b600281905550610fad6000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610dda565b6000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866004540203905080600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600360008282540192505081905550505050505050505050565b600082821115151561106e57fe5b818303905092915050565b600080828481151561108757fe5b0490508091505092915050565b60006110c56110a16114ff565b6801000000000000000060035460025460045402038115156110bf57fe5b04611060565b905090565b600080600080600092505b68016a09e667f3bcc908851115611102576002858115156110f257fe5b04945082806001019350506110d5565b5b67b504f333f9de64848511151561112857600285029450828060019003935050611103565b680100000000000000008501680100000000000000008087030281151561114b57fe5b0591506801000000000000000082830281151561116457fe5b059050680100000000000000008068010000000000000000806801000000000000000080673284a0c14610924f870281151561119c57fe5b056738bd75ed37753d680186028115156111b257fe5b056749254026a7630acf0185028115156111c857fe5b0567666664e5e9fa0c990184028115156111de57fe5b0567aaaaaaac168779080183028115156111f457fe5b056801ffffffffff9dac9b01830281151561120b57fe5b0567b17217f7d1cf79ac8460030b02019350505050919050565b600080600080604067b17217f7d1cf79ac682cb53f09f05cc627c8870181151561124b57fe5b0503925067b17217f7d1cf79ac8302850394506801000000000000000085860281151561127457fe5b059150680100000000000000008068010000000000000000807fffffffffffffffffffffffffffffffffffffffffffffffffffffe476c52fb4c686028115156112b957fe5b05660455956bccdd060185028115156112ce57fe5b057fffffffffffffffffffffffffffffffffffffffffffffffffff49f49f7f7c662f0184028115156112fc57fe5b05672aaaaaaaaa015db001830281151561131257fe5b0568010000000000000000600202019050848103680100000000000000008683010281151561133d57fe5b059350600083121515611363578284600082121561135757fe5b9060020a02935061137c565b8260000384600082121561137357fe5b9060020a900493505b839350505050919050565b60008060008060008061139987610cd0565b95506113a686600a611079565b945084860393506113b960025488611060565b6002819055506114076000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488611060565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008402876004540201925082600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555082600360008282540392505081905550600060025411156114f6576801000000000000000085029150600254828115156114e057fe5b0490506114ef60045482610dda565b6004819055505b50505050505050565b600034600554039050905600a165627a7a7230582001c2e3cbe4f484e6a192a53d5f5f31fdf0c938d92582311f44a6539655b0df2b0029
Swarm Source
bzzr://01c2e3cbe4f484e6a192a53d5f5f31fdf0c938d92582311f44a6539655b0df2b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,650.54 | 0.1046 | $381.74 |
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.