Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,230 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 5537757 | 2817 days ago | IN | 0 ETH | 0.00014774 | ||||
| Transfer | 5489408 | 2825 days ago | IN | 0 ETH | 0.00014748 | ||||
| Transfer | 5452630 | 2832 days ago | IN | 0 ETH | 0.00003693 | ||||
| Mint | 5395684 | 2841 days ago | IN | 0 ETH | 0.00108744 | ||||
| Mint | 5389932 | 2842 days ago | IN | 0 ETH | 0.00108488 | ||||
| Mint | 5389926 | 2842 days ago | IN | 0 ETH | 0.00008155 | ||||
| Transfer | 5387686 | 2843 days ago | IN | 0 ETH | 0.00147744 | ||||
| Approve | 5386560 | 2843 days ago | IN | 0 ETH | 0.00009083 | ||||
| Transfer | 5383811 | 2843 days ago | IN | 0 ETH | 0.00147744 | ||||
| Mint | 5383419 | 2843 days ago | IN | 0 ETH | 0.00008136 | ||||
| Mint | 5383402 | 2843 days ago | IN | 0 ETH | 0.00008155 | ||||
| Mint | 5383388 | 2843 days ago | IN | 0 ETH | 0.00027186 | ||||
| Mint | 5383359 | 2843 days ago | IN | 0 ETH | 0.00027186 | ||||
| Mint | 5382349 | 2844 days ago | IN | 0 ETH | 0.00027186 | ||||
| Mint | 5382237 | 2844 days ago | IN | 0 ETH | 0.00027122 | ||||
| Mint | 5382145 | 2844 days ago | IN | 0 ETH | 0.00054372 | ||||
| Mint | 5382124 | 2844 days ago | IN | 0 ETH | 0.00005437 | ||||
| Mint | 5382067 | 2844 days ago | IN | 0 ETH | 0.00013593 | ||||
| Mint | 5382055 | 2844 days ago | IN | 0 ETH | 0.00013561 | ||||
| Mint | 5382035 | 2844 days ago | IN | 0 ETH | 0.00013593 | ||||
| Mint | 5382035 | 2844 days ago | IN | 0 ETH | 0.00013593 | ||||
| Mint | 5382016 | 2844 days ago | IN | 0 ETH | 0.00013593 | ||||
| Mint | 5381991 | 2844 days ago | IN | 0 ETH | 0.00013593 | ||||
| Mint | 5381927 | 2844 days ago | IN | 0 ETH | 0.00040779 | ||||
| Mint | 5381879 | 2844 days ago | IN | 0 ETH | 0.00040587 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PoWAdvCoinToken
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-03-27
*/
pragma solidity ^0.4.18;
// ----------------------------------------------------------------------------
// 'PoWAdv Token' contract
// Mineable ERC20 Token using Proof Of Work
//
// Symbol : POWA
// Name : PoWAdv Token
// Total supply: 100,000,000.00
// Decimals : 8
//
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library SafeMath {
function add(uint a, uint b) internal pure returns (uint c) {
c = a + b;
require(c >= a);
}
function sub(uint a, uint b) internal pure returns (uint c) {
require(b <= a);
c = a - b;
}
function mul(uint a, uint b) internal pure returns (uint c) {
c = a * b;
require(a == 0 || c / a == b);
}
function div(uint a, uint b) internal pure returns (uint c) {
require(b > 0);
c = a / b;
}
}
library ExtendedMath {
//return the smaller of the two inputs (a or b)
function limitLessThan(uint a, uint b) internal pure returns (uint c) {
if(a > b) return b;
return a;
}
}
// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
function totalSupply() public constant returns (uint);
function balanceOf(address tokenOwner) public constant returns (uint balance);
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
contract ApproveAndCallFallBack {
function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}
// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
address public owner;
address public newOwner;
event OwnershipTransferred(address indexed _from, address indexed _to);
function Owned() public {
owner = msg.sender;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function transferOwnership(address _newOwner) public onlyOwner {
newOwner = _newOwner;
}
function acceptOwnership() public {
require(msg.sender == newOwner);
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
newOwner = address(0);
}
}
// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and an
// initial fixed supply
// ----------------------------------------------------------------------------
contract PoWAdvCoinToken is ERC20Interface, Owned {
using SafeMath for uint;
using ExtendedMath for uint;
string public symbol;
string public name;
uint8 public decimals;
uint public _totalSupply;
uint public latestDifficultyPeriodStarted;
uint public firstValidBlockNumber;
uint public epochCount; //number of 'blocks' mined
uint public _BLOCKS_PER_READJUSTMENT = 16;
// avg ETH block period is ~10sec this is 60 roughly block per 10min
uint public _TARGET_EPOCH_PER_PEDIOD = _BLOCKS_PER_READJUSTMENT * 60;
uint public _BLOCK_REWARD = (250 * 10**uint(8));
//a little number
uint public _MINIMUM_TARGET = 2**16;
//a big number is easier ; just find a solution that is smaller
uint public _MAXIMUM_TARGET = 2**234;
uint public miningTarget;
bytes32 public challengeNumber; //generate a new one when a new reward is minted
bool locked = false;
mapping(bytes32 => bytes32) solutionForChallenge;
uint public tokensMinted;
mapping(address => uint) balances;
mapping(address => mapping(address => uint)) allowed;
event Mint(address indexed from, uint reward_amount, uint epochCount, bytes32 newChallengeNumber);
// ------------------------------------------------------------------------
// Constructor
// ------------------------------------------------------------------------
function PoWAdvCoinToken() public onlyOwner {
symbol = "POWA";
name = "PoWAdv Token";
decimals = 8;
_totalSupply = 100000000 * 10**uint(decimals);
if(locked)
revert();
locked = true;
tokensMinted = 0;
miningTarget = _MAXIMUM_TARGET;
latestDifficultyPeriodStarted = block.number;
firstValidBlockNumber = 5349511;
_startNewMiningEpoch();
// Sum of tokens mined before hard fork, will be distributed manually
epochCount = 3071;
balances[owner] = epochCount * _BLOCK_REWARD;
tokensMinted = epochCount * _BLOCK_REWARD;
}
function mint(uint256 nonce, bytes32 challenge_digest) public returns (bool success) {
require(block.number > firstValidBlockNumber);
//the PoW must contain work that includes a recent ethereum block hash (challenge number) and the msg.sender's address to prevent MITM attacks
bytes32 digest = keccak256(challengeNumber, msg.sender, nonce);
//the challenge digest must match the expected
if (digest != challenge_digest)
revert();
//the digest must be smaller than the target
if(uint256(digest) > discountedMiningTarget(msg.sender))
revert();
//only allow one reward for each challenge
bytes32 solution = solutionForChallenge[challengeNumber];
solutionForChallenge[challengeNumber] = digest;
if(solution != 0x0)
revert(); //prevent the same answer from awarding twice
uint reward_amount = _BLOCK_REWARD;
balances[msg.sender] = balances[msg.sender].add(reward_amount);
tokensMinted = tokensMinted.add(reward_amount);
assert(tokensMinted <= _totalSupply);
_startNewMiningEpoch();
emit Mint(msg.sender, reward_amount, epochCount, challengeNumber);
return true;
}
//a new 'block' to be mined
function _startNewMiningEpoch() internal {
epochCount = epochCount.add(1);
//every so often, readjust difficulty. Dont readjust when deploying
if(epochCount % _BLOCKS_PER_READJUSTMENT == 0)
_reAdjustDifficulty();
//make the latest ethereum block hash a part of the next challenge for PoW to prevent pre-mining future blocks
//do this last since this is a protection mechanism in the mint() function
challengeNumber = block.blockhash(block.number - 1);
}
function _reAdjustDifficulty() internal {
uint ethBlocksSinceLastDifficultyPeriod = block.number - latestDifficultyPeriodStarted;
//we want miners to spend 10 minutes to mine each 'block', about 60 ethereum blocks = one POWA epoch
uint targetEthBlocksPerDiffPeriod = _TARGET_EPOCH_PER_PEDIOD; //should be X times slower than ethereum
//if there were less eth blocks passed in time than expected
if(ethBlocksSinceLastDifficultyPeriod < targetEthBlocksPerDiffPeriod)
{
uint excess_block_pct = (targetEthBlocksPerDiffPeriod.mul(100)).div(ethBlocksSinceLastDifficultyPeriod);
uint excess_block_pct_extra = excess_block_pct.sub(100).limitLessThan(1000);
//make it harder
miningTarget = miningTarget.sub(miningTarget.div(2000).mul(excess_block_pct_extra)); //by up to 50 %
}else{
uint shortage_block_pct = (ethBlocksSinceLastDifficultyPeriod.mul(100)).div(targetEthBlocksPerDiffPeriod);
uint shortage_block_pct_extra = shortage_block_pct.sub(100).limitLessThan(1000); //always between 0 and 1000
//make it easier
miningTarget = miningTarget.add(miningTarget.div(2000).mul(shortage_block_pct_extra)); //by up to 50 %
}
latestDifficultyPeriodStarted = block.number;
if(miningTarget < _MINIMUM_TARGET) //very difficult
{
miningTarget = _MINIMUM_TARGET;
}
if(miningTarget > _MAXIMUM_TARGET) //very easy
{
miningTarget = _MAXIMUM_TARGET;
}
}
//this is a recent ethereum block hash, used to prevent pre-mining future blocks
function getChallengeNumber() public constant returns (bytes32) {
return challengeNumber;
}
//the number of zeroes the digest of the PoW solution requires. Auto adjusts
function getMiningDifficulty() public constant returns (uint) {
return _MAXIMUM_TARGET.div(miningTarget);
}
function getMiningTarget() public constant returns (uint) {
return miningTarget;
}
function discountedMiningTarget(address solver) public constant returns (uint256 discountedDiff) {
// the number of coins owned
uint256 minerBalance = uint256(balanceOf(solver));
if(minerBalance <= 2 * _BLOCK_REWARD)
return getMiningTarget();
// the number of full block rewards owned
uint256 minerDiscount = uint256(minerBalance.div(_BLOCK_REWARD));
discountedDiff = miningTarget.mul(minerDiscount.mul(minerDiscount));
if(discountedDiff > _MAXIMUM_TARGET) //very easy
discountedDiff = _MAXIMUM_TARGET;
return discountedDiff;
}
function discountedMiningDifficulty(address solver) public constant returns (uint256 discountedDiff) {
return _MAXIMUM_TARGET.div(discountedMiningTarget(solver));
}
// ------------------------------------------------------------------------
// Total supply
// ------------------------------------------------------------------------
function totalSupply() public constant returns (uint) {
return _totalSupply - balances[address(0)];
}
// ------------------------------------------------------------------------
// Get the token balance for account `tokenOwner`
// ------------------------------------------------------------------------
function balanceOf(address tokenOwner) public constant returns (uint balance) {
return balances[tokenOwner];
}
// ------------------------------------------------------------------------
// Transfer the balance from token owner's account to `to` account
// - Owner's account must have sufficient balance to transfer
// - 0 value transfers are not allowed
// ------------------------------------------------------------------------
function transfer(address to, uint tokens) public returns (bool success) {
require(to != 0);
balances[msg.sender] = balances[msg.sender].sub(tokens);
balances[to] = balances[to].add(tokens);
emit Transfer(msg.sender, to, tokens);
return true;
}
// ------------------------------------------------------------------------
// Token owner can approve for `spender` to transferFrom(...) `tokens`
// from the token owner's account
//
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// recommends that there are no checks for the approval double-spend attack
// as this should be implemented in user interfaces
// ------------------------------------------------------------------------
function approve(address spender, uint tokens) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender, spender, tokens);
return true;
}
// ------------------------------------------------------------------------
// Transfer `tokens` from the `from` account to the `to` account
//
// The calling account must already have sufficient tokens approve(...)-d
// for spending from the `from` account and
// - From account must have sufficient balance to transfer
// - Spender must have sufficient allowance to transfer
// - 0 value transfers are allowed
// ------------------------------------------------------------------------
function transferFrom(address from, address to, uint tokens) public returns (bool success) {
balances[from] = balances[from].sub(tokens);
allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
balances[to] = balances[to].add(tokens);
emit Transfer(from, to, tokens);
return true;
}
// ------------------------------------------------------------------------
// Returns the amount of tokens approved by the owner that can be
// transferred to the spender's account
// ------------------------------------------------------------------------
function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {
return allowed[tokenOwner][spender];
}
// ------------------------------------------------------------------------
// Token owner can approve for `spender` to transferFrom(...) `tokens`
// from the token owner's account. The `spender` contract function
// `receiveApproval(...)` is then executed
// ------------------------------------------------------------------------
function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender, spender, tokens);
ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
return true;
}
// ------------------------------------------------------------------------
// Don't accept ETH
// ------------------------------------------------------------------------
function () public payable {
revert();
}
// ------------------------------------------------------------------------
// Owner can transfer out any accidentally sent ERC20 tokens
// ------------------------------------------------------------------------
function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
return ERC20Interface(tokenAddress).transfer(owner, tokens);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDifficulty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"solver","type":"address"}],"name":"discountedMiningTarget","outputs":[{"name":"discountedDiff","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningTarget","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":"getChallengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_BLOCK_REWARD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"epochCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_MAXIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"miningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"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":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_TARGET_EPOCH_PER_PEDIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_BLOCKS_PER_READJUSTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstValidBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"solver","type":"address"}],"name":"discountedMiningDifficulty","outputs":[{"name":"discountedDiff","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"latestDifficultyPeriodStarted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_MINIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","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":"from","type":"address"},{"indexed":false,"name":"reward_amount","type":"uint256"},{"indexed":false,"name":"epochCount","type":"uint256"},{"indexed":false,"name":"newChallengeNumber","type":"bytes32"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
6060604052601060098190556103c0600a556405d21dba00600b5562010000600c557d040000000000000000000000000000000000000000000000000000000000600d55805460ff1916905534156200005757600080fd5b60008054600160a060020a03338116600160a060020a031990921682179283905591909116146200008757600080fd5b60408051908101604052600481527f504f57410000000000000000000000000000000000000000000000000000000060208201526002908051620000d092916020019062000460565b5060408051908101604052600c81527f506f5741647620546f6b656e0000000000000000000000000000000000000000602082015260039080516200011a92916020019062000460565b506004805460ff1916600817908190556305f5e10060ff918216600a0a0260055560105416156200014a57600080fd5b6010805460ff191660011790556000601255600d54600e55436006556251a0876007556200018564010000000062000f21620001bc82021704565b610bff6008818155600b805460008054600160a060020a031681526013602052604090209302909255905490540260125562000505565b600854620001da90600164010000000062000f116200021882021704565b600881905560095490811515620001ed57fe5b0615156200020d576200020d64010000000062000f9b6200022f82021704565b600019430140600f55565b818101828110156200022957600080fd5b92915050565b600654600a544391909103906000808080848610156200031f576200027e866200026987606464010000000062000f61620003e582021704565b9064010000000062000ef06200040d82021704565b9350620002b76103e8620002a286606464010000000062000f866200043082021704565b90640100000000620010d06200044682021704565b925062000316620002fe84620002e96107d0600e546200040d6401000000000262000ef0179091906401000000009004565b9064010000000062000f61620003e582021704565b600e549064010000000062000f866200043082021704565b600e55620003b1565b6200033f856200026988606464010000000062000f61620003e582021704565b9150620003636103e8620002a284606464010000000062000f866200043082021704565b9050620003ad6200039582620002e96107d0600e546200040d6401000000000262000ef0179091906401000000009004565b600e549064010000000062000f116200021882021704565b600e555b43600655600c54600e541015620003c957600c54600e555b600d54600e541115620003dd57600d54600e555b505050505050565b818102821580620004015750818382811515620003fe57fe5b04145b15156200022957600080fd5b60008082116200041c57600080fd5b81838115156200042857fe5b049392505050565b6000828211156200044057600080fd5b50900390565b6000818311156200045957508062000229565b5090919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a357805160ff1916838001178555620004d3565b82800160010185558215620004d3579182015b82811115620004d3578251825591602001919060010190620004b6565b50620004e1929150620004e5565b5090565b6200050291905b80821115620004e15760008155600101620004ec565b90565b61111480620005156000396000f3006060604052600436106101875763ffffffff60e060020a60003504166306fdde03811461018c578063095ea7b31461021657806317da485f1461024c5780631801fbe51461027157806318160ddd1461028a578063185a62841461029d57806323b872dd146102bc578063313ce567146102e457806332e997081461030d5780633eaaf86b146103205780634ef37628146103335780635e4b587b146103465780636de9f32b1461035957806370a082311461036c57806379ba50971461038b578063829965cc146103a057806387a2a9d6146103b35780638a769d35146103c65780638ae0368b146103d95780638da5cb5b146103ec57806395d89b411461041b578063a9059cbb1461042e578063b1483eee14610450578063b5ade81b14610463578063b7dc8a3214610476578063bbfbe6b614610489578063cae9ca51146104a8578063cb9ae7071461050d578063d4ee1d9014610520578063dc39d06d14610533578063dc6e9cf914610555578063dd62ed3e14610568578063f2fde38b1461058d575b600080fd5b341561019757600080fd5b61019f6105ac565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101db5780820151838201526020016101c3565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022157600080fd5b610238600160a060020a036004351660243561064a565b604051901515815260200160405180910390f35b341561025757600080fd5b61025f6106b7565b60405190815260200160405180910390f35b341561027c57600080fd5b6102386004356024356106d5565b341561029557600080fd5b61025f610841565b34156102a857600080fd5b61025f600160a060020a0360043516610873565b34156102c757600080fd5b610238600160a060020a03600435811690602435166044356108f0565b34156102ef57600080fd5b6102f7610a03565b60405160ff909116815260200160405180910390f35b341561031857600080fd5b61025f610a0c565b341561032b57600080fd5b61025f610a12565b341561033e57600080fd5b61025f610a18565b341561035157600080fd5b61025f610a1e565b341561036457600080fd5b61025f610a24565b341561037757600080fd5b61025f600160a060020a0360043516610a2a565b341561039657600080fd5b61039e610a45565b005b34156103ab57600080fd5b61025f610ad3565b34156103be57600080fd5b61025f610ad9565b34156103d157600080fd5b61025f610adf565b34156103e457600080fd5b61025f610ae5565b34156103f757600080fd5b6103ff610aeb565b604051600160a060020a03909116815260200160405180910390f35b341561042657600080fd5b61019f610afa565b341561043957600080fd5b610238600160a060020a0360043516602435610b65565b341561045b57600080fd5b61025f610c3b565b341561046e57600080fd5b61025f610c41565b341561048157600080fd5b61025f610c47565b341561049457600080fd5b61025f600160a060020a0360043516610c4d565b34156104b357600080fd5b61023860048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610c6a95505050505050565b341561051857600080fd5b61025f610dcd565b341561052b57600080fd5b6103ff610dd3565b341561053e57600080fd5b610238600160a060020a0360043516602435610de2565b341561056057600080fd5b61025f610e75565b341561057357600080fd5b61025f600160a060020a0360043581169060243516610e7b565b341561059857600080fd5b61039e600160a060020a0360043516610ea6565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106425780601f1061061757610100808354040283529160200191610642565b820191906000526020600020905b81548152906001019060200180831161062557829003601f168201915b505050505081565b600160a060020a03338116600081815260146020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60006106d0600e54600d54610ef090919063ffffffff16565b905090565b600080600080600754431115156106eb57600080fd5b600f543387604051928352600160a060020a03919091166c010000000000000000000000000260208301526034820152605401604051908190039020925084831461073557600080fd5b61073e33610873565b83111561074a57600080fd5b600f5460009081526011602052604090208054908490559150811561076e57600080fd5b50600b54600160a060020a03331660009081526013602052604090205461079b908263ffffffff610f1116565b600160a060020a0333166000908152601360205260409020556012546107c7908263ffffffff610f1116565b60128190556005549011156107d857fe5b6107e0610f21565b33600160a060020a03167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600854600f5460405192835260208301919091526040808301919091526060909101905180910390a250600195945050505050565b6000805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c546005540390565b600080600061088184610a2a565b600b54909250600202821161089f57610898610a0c565b92506108e9565b600b546108b390839063ffffffff610ef016565b90506108d76108c8828063ffffffff610f6116565b600e549063ffffffff610f6116565b9250600d548311156108e957600d5492505b5050919050565b600160a060020a038316600090815260136020526040812054610919908363ffffffff610f8616565b600160a060020a038086166000908152601360209081526040808320949094556014815283822033909316825291909152205461095c908363ffffffff610f8616565b600160a060020a03808616600090815260146020908152604080832033851684528252808320949094559186168152601390915220546109a2908363ffffffff610f1116565b600160a060020a03808516600081815260136020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60045460ff1681565b600e5490565b60055481565b600f5490565b600b5481565b60125481565b600160a060020a031660009081526013602052604090205490565b60015433600160a060020a03908116911614610a6057600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60085481565b600d5481565b600e5481565b600f5481565b600054600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106425780601f1061061757610100808354040283529160200191610642565b6000600160a060020a0383161515610b7c57600080fd5b600160a060020a033316600090815260136020526040902054610ba5908363ffffffff610f8616565b600160a060020a033381166000908152601360205260408082209390935590851681522054610bda908363ffffffff610f1116565b600160a060020a0380851660008181526013602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600a5481565b60095481565b60075481565b60006106b1610c5b83610873565b600d549063ffffffff610ef016565b600160a060020a03338116600081815260146020908152604080832094881680845294909152808220869055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d65578082015183820152602001610d4d565b50505050905090810190601f168015610d925780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515610db357600080fd5b5af11515610dc057600080fd5b5060019695505050505050565b60065481565b600154600160a060020a031681565b6000805433600160a060020a03908116911614610dfe57600080fd5b600054600160a060020a038085169163a9059cbb91168460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e5857600080fd5b5af11515610e6557600080fd5b5050506040518051949350505050565b600c5481565b600160a060020a03918216600090815260146020908152604080832093909416825291909152205490565b60005433600160a060020a03908116911614610ec157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000808211610efe57600080fd5b8183811515610f0957fe5b049392505050565b818101828110156106b157600080fd5b600854610f3590600163ffffffff610f1116565b600881905560095490811515610f4757fe5b061515610f5657610f56610f9b565b600019430140600f55565b818102821580610f7b5750818382811515610f7857fe5b04145b15156106b157600080fd5b600082821115610f9557600080fd5b50900390565b600654600a5443919091039060008080808486101561103d57610fd586610fc987606463ffffffff610f6116565b9063ffffffff610ef016565b9350610ffa6103e8610fee86606463ffffffff610f8616565b9063ffffffff6110d016565b92506110356110268461101a6107d0600e54610ef090919063ffffffff16565b9063ffffffff610f6116565b600e549063ffffffff610f8616565b600e5561109e565b61105285610fc988606463ffffffff610f6116565b915061106b6103e8610fee84606463ffffffff610f8616565b905061109a61108b8261101a6107d0600e54610ef090919063ffffffff16565b600e549063ffffffff610f1116565b600e555b43600655600c54600e5410156110b557600c54600e555b600d54600e5411156110c857600d54600e555b505050505050565b6000818311156110e15750806106b1565b50909190505600a165627a7a72305820c4ff3c36a186cbd33b2e942b7a1cfb84e5d4297fac0dc43d1c8b5cf8659eca1f0029
Deployed Bytecode
0x6060604052600436106101875763ffffffff60e060020a60003504166306fdde03811461018c578063095ea7b31461021657806317da485f1461024c5780631801fbe51461027157806318160ddd1461028a578063185a62841461029d57806323b872dd146102bc578063313ce567146102e457806332e997081461030d5780633eaaf86b146103205780634ef37628146103335780635e4b587b146103465780636de9f32b1461035957806370a082311461036c57806379ba50971461038b578063829965cc146103a057806387a2a9d6146103b35780638a769d35146103c65780638ae0368b146103d95780638da5cb5b146103ec57806395d89b411461041b578063a9059cbb1461042e578063b1483eee14610450578063b5ade81b14610463578063b7dc8a3214610476578063bbfbe6b614610489578063cae9ca51146104a8578063cb9ae7071461050d578063d4ee1d9014610520578063dc39d06d14610533578063dc6e9cf914610555578063dd62ed3e14610568578063f2fde38b1461058d575b600080fd5b341561019757600080fd5b61019f6105ac565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101db5780820151838201526020016101c3565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022157600080fd5b610238600160a060020a036004351660243561064a565b604051901515815260200160405180910390f35b341561025757600080fd5b61025f6106b7565b60405190815260200160405180910390f35b341561027c57600080fd5b6102386004356024356106d5565b341561029557600080fd5b61025f610841565b34156102a857600080fd5b61025f600160a060020a0360043516610873565b34156102c757600080fd5b610238600160a060020a03600435811690602435166044356108f0565b34156102ef57600080fd5b6102f7610a03565b60405160ff909116815260200160405180910390f35b341561031857600080fd5b61025f610a0c565b341561032b57600080fd5b61025f610a12565b341561033e57600080fd5b61025f610a18565b341561035157600080fd5b61025f610a1e565b341561036457600080fd5b61025f610a24565b341561037757600080fd5b61025f600160a060020a0360043516610a2a565b341561039657600080fd5b61039e610a45565b005b34156103ab57600080fd5b61025f610ad3565b34156103be57600080fd5b61025f610ad9565b34156103d157600080fd5b61025f610adf565b34156103e457600080fd5b61025f610ae5565b34156103f757600080fd5b6103ff610aeb565b604051600160a060020a03909116815260200160405180910390f35b341561042657600080fd5b61019f610afa565b341561043957600080fd5b610238600160a060020a0360043516602435610b65565b341561045b57600080fd5b61025f610c3b565b341561046e57600080fd5b61025f610c41565b341561048157600080fd5b61025f610c47565b341561049457600080fd5b61025f600160a060020a0360043516610c4d565b34156104b357600080fd5b61023860048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610c6a95505050505050565b341561051857600080fd5b61025f610dcd565b341561052b57600080fd5b6103ff610dd3565b341561053e57600080fd5b610238600160a060020a0360043516602435610de2565b341561056057600080fd5b61025f610e75565b341561057357600080fd5b61025f600160a060020a0360043581169060243516610e7b565b341561059857600080fd5b61039e600160a060020a0360043516610ea6565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106425780601f1061061757610100808354040283529160200191610642565b820191906000526020600020905b81548152906001019060200180831161062557829003601f168201915b505050505081565b600160a060020a03338116600081815260146020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60006106d0600e54600d54610ef090919063ffffffff16565b905090565b600080600080600754431115156106eb57600080fd5b600f543387604051928352600160a060020a03919091166c010000000000000000000000000260208301526034820152605401604051908190039020925084831461073557600080fd5b61073e33610873565b83111561074a57600080fd5b600f5460009081526011602052604090208054908490559150811561076e57600080fd5b50600b54600160a060020a03331660009081526013602052604090205461079b908263ffffffff610f1116565b600160a060020a0333166000908152601360205260409020556012546107c7908263ffffffff610f1116565b60128190556005549011156107d857fe5b6107e0610f21565b33600160a060020a03167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600854600f5460405192835260208301919091526040808301919091526060909101905180910390a250600195945050505050565b6000805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c546005540390565b600080600061088184610a2a565b600b54909250600202821161089f57610898610a0c565b92506108e9565b600b546108b390839063ffffffff610ef016565b90506108d76108c8828063ffffffff610f6116565b600e549063ffffffff610f6116565b9250600d548311156108e957600d5492505b5050919050565b600160a060020a038316600090815260136020526040812054610919908363ffffffff610f8616565b600160a060020a038086166000908152601360209081526040808320949094556014815283822033909316825291909152205461095c908363ffffffff610f8616565b600160a060020a03808616600090815260146020908152604080832033851684528252808320949094559186168152601390915220546109a2908363ffffffff610f1116565b600160a060020a03808516600081815260136020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60045460ff1681565b600e5490565b60055481565b600f5490565b600b5481565b60125481565b600160a060020a031660009081526013602052604090205490565b60015433600160a060020a03908116911614610a6057600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60085481565b600d5481565b600e5481565b600f5481565b600054600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106425780601f1061061757610100808354040283529160200191610642565b6000600160a060020a0383161515610b7c57600080fd5b600160a060020a033316600090815260136020526040902054610ba5908363ffffffff610f8616565b600160a060020a033381166000908152601360205260408082209390935590851681522054610bda908363ffffffff610f1116565b600160a060020a0380851660008181526013602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600a5481565b60095481565b60075481565b60006106b1610c5b83610873565b600d549063ffffffff610ef016565b600160a060020a03338116600081815260146020908152604080832094881680845294909152808220869055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d65578082015183820152602001610d4d565b50505050905090810190601f168015610d925780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515610db357600080fd5b5af11515610dc057600080fd5b5060019695505050505050565b60065481565b600154600160a060020a031681565b6000805433600160a060020a03908116911614610dfe57600080fd5b600054600160a060020a038085169163a9059cbb91168460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e5857600080fd5b5af11515610e6557600080fd5b5050506040518051949350505050565b600c5481565b600160a060020a03918216600090815260146020908152604080832093909416825291909152205490565b60005433600160a060020a03908116911614610ec157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000808211610efe57600080fd5b8183811515610f0957fe5b049392505050565b818101828110156106b157600080fd5b600854610f3590600163ffffffff610f1116565b600881905560095490811515610f4757fe5b061515610f5657610f56610f9b565b600019430140600f55565b818102821580610f7b5750818382811515610f7857fe5b04145b15156106b157600080fd5b600082821115610f9557600080fd5b50900390565b600654600a5443919091039060008080808486101561103d57610fd586610fc987606463ffffffff610f6116565b9063ffffffff610ef016565b9350610ffa6103e8610fee86606463ffffffff610f8616565b9063ffffffff6110d016565b92506110356110268461101a6107d0600e54610ef090919063ffffffff16565b9063ffffffff610f6116565b600e549063ffffffff610f8616565b600e5561109e565b61105285610fc988606463ffffffff610f6116565b915061106b6103e8610fee84606463ffffffff610f8616565b905061109a61108b8261101a6107d0600e54610ef090919063ffffffff16565b600e549063ffffffff610f1116565b600e555b43600655600c54600e5410156110b557600c54600e555b600d54600e5411156110c857600d54600e555b505050505050565b6000818311156110e15750806106b1565b50909190505600a165627a7a72305820c4ff3c36a186cbd33b2e942b7a1cfb84e5d4297fac0dc43d1c8b5cf8659eca1f0029
Swarm Source
bzzr://c4ff3c36a186cbd33b2e942b7a1cfb84e5d4297fac0dc43d1c8b5cf8659eca1f
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.