Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 272 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Dig For Tokens | 6711820 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711820 | 2665 days ago | IN | 0 ETH | 0.00037694 | ||||
| Dig For Tokens | 6711818 | 2665 days ago | IN | 0 ETH | 0.00009348 | ||||
| Dig For Tokens | 6711818 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711816 | 2665 days ago | IN | 0 ETH | 0.00009348 | ||||
| Dig For Tokens | 6711814 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711809 | 2665 days ago | IN | 0 ETH | 0.00052504 | ||||
| Dig For Tokens | 6711807 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711807 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711807 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711807 | 2665 days ago | IN | 0 ETH | 0.00037617 | ||||
| Dig For Tokens | 6711805 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711805 | 2665 days ago | IN | 0 ETH | 0.00037668 | ||||
| Dig For Tokens | 6711803 | 2665 days ago | IN | 0 ETH | 0.00037642 | ||||
| Dig For Tokens | 6711803 | 2665 days ago | IN | 0 ETH | 0.00065704 | ||||
| Dig For Tokens | 6711801 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711801 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711799 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711799 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711797 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711794 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711794 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711791 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711791 | 2665 days ago | IN | 0 ETH | 0.00047085 | ||||
| Dig For Tokens | 6711791 | 2665 days ago | IN | 0 ETH | 0.00047085 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5357214 | 2894 days ago | 0.011 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x77f07B48...1D9d7E3b4 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
ScavengerHuntTokenWatch
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-11-04
*/
pragma solidity ^0.4.18;
contract owned {
address public owner;
function owned() public {
owner = msg.sender;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function transferOwnership(address newOwner) onlyOwner public {
owner = newOwner;
}
}
interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }
contract TokenERC20 {
// Public variables of the token
string public name;
string public symbol;
//Disable Decimal usage
//uint8 public decimals = 0;
// 18 decimals is the strongly suggested default, avoid changing it
uint256 public totalSupply;
// This creates an array with all balances
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) private allowance;
// This generates a public event on the blockchain that will notify clients
event Transfer(address indexed from, address indexed to, uint256 value);
// This notifies clients about the amount burnt
event Burn(address indexed from, uint256 value);
/**
* Constrctor function
*
* Initializes contract with initial supply tokens to the creator of the contract
*/
function TokenERC20(
uint256 initialSupply,
string tokenName,
string tokenSymbol
) public {
//totalSupply = initialSupply * 10 ** uint256(decimals); // Update total supply with the decimal amount
totalSupply = initialSupply;
//balanceOf[msg.sender] = totalSupply; // Give the creator all initial tokens
name = tokenName; // Set the name for display purposes
symbol = tokenSymbol; // Set the symbol for display purposes
}
/**
* Internal transfer, only can be called by this contract
*/
function _transfer(address _from, address _to, uint _value) internal {
// Prevent transfer to 0x0 address. Use burn() instead
require(_to != 0x0);
// Check if the sender has enough
require(balanceOf[_from] >= _value);
// Check for overflows
require(balanceOf[_to] + _value > balanceOf[_to]);
// Save this for an assertion in the future
uint previousBalances = balanceOf[_from] + balanceOf[_to];
// Subtract from the sender
balanceOf[_from] -= _value;
// Add the same to the recipient
balanceOf[_to] += _value;
Transfer(_from, _to, _value);
// Asserts are used to use static analysis to find bugs in your code. They should never fail
assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
}
/**
* Transfer tokens
*
* Send `_value` tokens to `_to` from your account
*
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transfer(address _to, uint256 _value) public {
_transfer(msg.sender, _to, _value);
}
/**
* Transfer tokens from other address
*
* Send `_value` tokens to `_to` in behalf of `_from`
*
* @param _from The address of the sender
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(_value <= allowance[_from][msg.sender]); // Check allowance
allowance[_from][msg.sender] -= _value;
_transfer(_from, _to, _value);
return true;
}
/**
* Set allowance for other address
*
* Allows `_spender` to spend no more than `_value` tokens in your behalf
*
* @param _spender The address authorized to spend
* @param _value the max amount they can spend
*/
function approve(address _spender, uint256 _value) internal
returns (bool success) {
allowance[msg.sender][_spender] = _value;
return true;
}
/**
* Set allowance for other address and notify
*
* Allows `_spender` to spend no more than `_value` tokens in your behalf, and then ping the contract about it
*
* @param _spender The address authorized to spend
* @param _value the max amount they can spend
* @param _extraData some extra information to send to the approved contract
*/
function approveAndCall(address _spender, uint256 _value, bytes _extraData)
internal
returns (bool success) {
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
}
/**
* Destroy tokens
*
* Remove `_value` tokens from the system irreversibly
*
* @param _value the amount of money to burn
*/
function burn(uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value); // Check if the sender has enough
balanceOf[msg.sender] -= _value; // Subtract from the sender
totalSupply -= _value; // Updates totalSupply
Burn(msg.sender, _value);
return true;
}
}
/******************************************/
/* ADVANCED TOKEN STARTS HERE */
/******************************************/
contract MyAdvancedToken is owned, TokenERC20 {
uint256 public sellPrice;
uint256 public buyPrice;
mapping (address => bool) public frozenAccount;
/* This generates a public event on the blockchain that will notify clients */
event FrozenFunds(address target, bool frozen);
/* Initializes contract with initial supply tokens to the creator of the contract */
function MyAdvancedToken(
uint256 initialSupply,
string tokenName,
string tokenSymbol
) TokenERC20(initialSupply, tokenName, tokenSymbol) public {}
/* Internal transfer, only can be called by this contract */
function _transfer(address _from, address _to, uint _value) internal {
require (_to != 0x0); // Prevent transfer to 0x0 address. Use burn() instead
require (balanceOf[_from] >= _value); // Check if the sender has enough
require (balanceOf[_to] + _value > balanceOf[_to]); // Check for overflows
require(!frozenAccount[_from]); // Check if sender is frozen
require(!frozenAccount[_to]); // Check if recipient is frozen
balanceOf[_from] -= _value; // Subtract from the sender
balanceOf[_to] += _value; // Add the same to the recipient
Transfer(_from, _to, _value);
}
/// @notice Create `mintedAmount` tokens and send it to `target`
/// @param target Address to receive the tokens
/// @param mintedAmount the amount of tokens it will receive
function mintToken(address target, uint256 mintedAmount) internal {
//Convert to eth value
//mintedAmount = mintedAmount * 10 ** uint256(decimals);
balanceOf[target] += mintedAmount;
totalSupply += mintedAmount;
//Transfer(0, this, mintedAmount);
Transfer(this, target, mintedAmount);
}
/// @notice `freeze? Prevent | Allow` `target` from sending & receiving tokens
/// @param target Address to be frozen
/// @param freeze either to freeze it or not
function freezeAccount(address target, bool freeze) onlyOwner public {
frozenAccount[target] = freeze;
FrozenFunds(target, freeze);
}
/// @notice Allow users to buy tokens for `newBuyPrice` eth and sell tokens for `newSellPrice` eth
/// @param newSellPrice Price the users can sell to the contract
/// @param newBuyPrice Price users can buy from the contract
function setPrices(uint256 newSellPrice, uint256 newBuyPrice) onlyOwner public {
sellPrice = newSellPrice;
buyPrice = newBuyPrice;
}
/* //Don't allow buying this way
/// @notice Buy tokens from contract by sending ether
function buy() payable public {
uint amount = msg.value / buyPrice; // calculates the amount
_transfer(this, msg.sender, amount); // makes the transfers
}
*/
/// @notice Sell `amount` tokens to contract
/// @param amount amount of tokens to be sold
function sell(uint256 amount) public {
require(this.balance >= amount * sellPrice); // checks if the contract has enough ether to buy
_transfer(msg.sender, this, amount); // makes the transfers
if (sellPrice>0) {
msg.sender.transfer(amount * sellPrice); // sends ether to the seller. It's important to do this last to avoid recursion attacks
}
totalSupply -= amount;
}
function getBalance(address target) view public returns (uint256){
return balanceOf[target];
}
/**
* Destroy tokens from other account
*
* Remove `_value` tokens from the system irreversibly on behalf of `_from`.
*
* @param _from the address of the sender
* @param _value the amount of money to burn
*/
function burnFrom(address _from, uint256 _value) onlyOwner public returns (bool success) {
require(balanceOf[_from] >= _value); // Check if the targeted balance is enough
balanceOf[_from] -= _value; // Subtract from the targeted balance
totalSupply -= _value; // Update totalSupply
Burn(_from, _value);
return true;
}
}
interface token {
function transfer(address receiver, uint amount) public;
}
contract ScavengerHuntTokenWatch is MyAdvancedToken {
uint public crowdsaleDeadline;
uint public tokensDistributed;
uint public totalHunters;
uint public maxDailyRewards;
string public scavengerHuntTokenName;
string public scavengerHuntTokenSymbol;
//Allow to stop being anonymous
mapping (address => bytes32) public registeredNames;
// 1 = Digged, No Reward
// >1 X = Digged, Got Reward
mapping (bytes32 => mapping (bytes32 => uint)) public GPSDigs;
//Address of the person that got the reward
mapping (bytes32 => mapping (bytes32 => address)) public GPSActivityAddress;
//Maximize the daily reward
mapping (address => mapping(uint => uint256) ) public dailyRewardCount;
//Private
uint256 digHashBase;
bool crowdsaleClosed = false;
event FundTransfer(address backer, uint amountEhter, uint amountScavengerHuntTokens, bool isContribution);
event ShareLocation(address owner, uint ScavengerHuntTokenAmount, uint PercentageOfTotal, bytes32 GPSLatitude, bytes32 GPSLongitude);
event ShareMessage(address recipient, string Message, string TokenName);
event SaleEnded(address owner, uint totalTokensDistributed,uint totalHunters);
event SharePersonalMessage(address Sender, string MyPersonalMessage, bytes32 GPSLatitude, bytes32 GPSLongitude);
event NameClaimed(address owner, string Name, bytes32 GPSLatitude, bytes32 GPSLongitude);
event HunterRewarded(address owner, uint ScavengerHuntTokenAmount, uint PercentageOfTotal, bytes32 GPSLatitude, bytes32 GPSLongitude);
modifier afterDeadline() { if (now >= crowdsaleDeadline) _; }
/**
* Check if deadline was met, so close the sale of tokens
*/
function checkDeadlinePassed() afterDeadline public {
SaleEnded(owner, tokensDistributed,totalHunters);
crowdsaleClosed = true;
}
/**
* Constrctor function
*
* Setup the owner
*/
function ScavengerHuntTokenWatch (
address ifSuccessfulSendTo,
uint durationInMinutes,
uint weiCostOfEachToken,
uint initialSupply,
string tokenName,
string tokenSymbol,
uint256 adigHashBase,
uint aMaxDailyRewards
) MyAdvancedToken(initialSupply, tokenName, tokenSymbol) public {
owner=msg.sender;
scavengerHuntTokenName = tokenName;
scavengerHuntTokenSymbol = tokenSymbol;
//Make sure we can get these tokens
setPrices(0,weiCostOfEachToken * 1 wei);
digHashBase = adigHashBase;
maxDailyRewards = aMaxDailyRewards;
crowdsaleDeadline = now + durationInMinutes * 1 minutes;
tokensDistributed = initialSupply;
FundTransfer(ifSuccessfulSendTo, 0, tokensDistributed, true);
//Now change the owner to the actual user
owner = ifSuccessfulSendTo;
totalHunters=1;
balanceOf[owner] = initialSupply;
}
function destroySHT(address _from, uint256 _value) internal {
require(balanceOf[_from] >= _value); // Check if the targeted balance is enough
balanceOf[_from] -= _value; // Subtract from the targeted balance
totalSupply -= _value; // Update totalSupply
if(balanceOf[_from]==0) {
totalHunters--;
}
}
function extendCrowdsalePeriod (uint durationInMinutes) onlyOwner public {
crowdsaleDeadline = now + durationInMinutes * 1 minutes;
crowdsaleClosed = false;
ShareMessage(msg.sender,"The crowdsale is extended for token ->",scavengerHuntTokenName );
}
function setMaxDailyRewards(uint aMaxDailyRewards) onlyOwner public {
maxDailyRewards = aMaxDailyRewards;
ShareMessage(msg.sender,"The maximum of daily reward is now updated for token ->",scavengerHuntTokenName );
}
//We also allow the calling of the buying function too.
function buyScavengerHuntToken() payable public {
//Only allow buying in, when crowdsale is open.
if (crowdsaleClosed) {
ShareMessage(msg.sender,"Sorry: The crowdsale has ended. You cannot buy anymore ->",scavengerHuntTokenName );
}
require(!crowdsaleClosed);
uint amountEth = msg.value;
uint amountSht = amountEth / buyPrice;
//Mint a token for each payer
mintScavengerToken(msg.sender, amountSht);
FundTransfer(msg.sender, amountEth, amountSht, true);
//And check if fundraiser is closed:
checkDeadlinePassed();
}
function buyScavengerHuntTokenWithLocationSharing(bytes32 GPSLatitude, bytes32 GPSLongitude) payable public {
buyScavengerHuntToken();
ShareLocation(msg.sender, balanceOf[msg.sender],getPercentageComplete(msg.sender), GPSLatitude, GPSLongitude);
}
/**
* Fallback function
*
* The function without name is the default function that is called whenever anyone sends funds to a contract
*/
function () payable public {
buyScavengerHuntToken();
}
/// @notice Create `mintedAmount` tokens and send it to `target`
/// @param target Address to receive the tokens
/// @param mintedAmount the amount of tokens it will receive
function mintScavengerToken(address target, uint256 mintedAmount) private {
if(balanceOf[target]==0) {
//New hunter!
totalHunters++;
}else {}
balanceOf[target] += mintedAmount;
totalSupply += mintedAmount;
Transfer(this, target, mintedAmount);
tokensDistributed += mintedAmount;
}
/// @notice Create `mintedAmount` tokens and send it to `target`
/// @param target Address to receive the tokens
/// @param mintedAmount the amount of tokens it will receive
function mintExtraScavengerHuntTokens(address target, uint256 mintedAmount) onlyOwner public {
mintScavengerToken(target, mintedAmount);
}
function shareScavengerHuntTokenLocation(bytes32 GPSLatitude, bytes32 GPSLongitude) public {
//Only call this if you actually have tokens!
require(balanceOf[msg.sender] > 0);
ShareLocation(msg.sender, balanceOf[msg.sender],getPercentageComplete(msg.sender), GPSLatitude, GPSLongitude);
}
function sharePersonalScavengerHuntTokenMessage(string MyPersonalMessage, bytes32 GPSLatitude, bytes32 GPSLongitude) public {
//Only call this if you actually have tokens!
require(balanceOf[msg.sender] >=1);
SharePersonalMessage(msg.sender, MyPersonalMessage, GPSLatitude, GPSLongitude);
//Personal messages cost 1 token!
destroySHT(msg.sender, 1);
}
function claimName(string MyName, bytes32 GPSLatitude, bytes32 GPSLongitude) public {
//Only call this if you actually have tokens!
require(bytes(MyName).length < 32);
require(balanceOf[msg.sender] >= 10);
registeredNames[msg.sender]=getStringAsKey(MyName);
NameClaimed(msg.sender, MyName, GPSLatitude, GPSLongitude);
//Claiming your name costs 10 tokens!
destroySHT(msg.sender, 10);
}
function transferScavengerHuntToken(address to, uint SHTokenAmount,bytes32 GPSLatitude, bytes32 GPSLongitude) public {
//Share the transfer with the new total
if(balanceOf[to]==0) {
totalHunters++;
}
//Call the internal transfer method
_transfer(msg.sender, to, SHTokenAmount);
ShareLocation(to, balanceOf[to], getPercentageComplete(to), "unknown", "unknown");
ShareLocation(msg.sender, balanceOf[msg.sender], getPercentageComplete(msg.sender), GPSLatitude, GPSLongitude);
if(balanceOf[msg.sender]==0) {
totalHunters--;
}
}
function returnEtherumToOwner(uint amount) onlyOwner public {
if (owner.send(amount)) {
FundTransfer(owner, amount,0, false);
}
}
//Date and time library
uint constant DAY_IN_SECONDS = 86400;
uint constant YEAR_IN_SECONDS = 31536000;
uint constant LEAP_YEAR_IN_SECONDS = 31622400;
uint constant HOUR_IN_SECONDS = 3600;
uint constant MINUTE_IN_SECONDS = 60;
uint16 constant ORIGIN_YEAR = 1970;
function leapYearsBefore(uint year) internal pure returns (uint) {
year -= 1;
return year / 4 - year / 100 + year / 400;
}
function isLeapYear(uint16 year) internal pure returns (bool) {
if (year % 4 != 0) {
return false;
}
if (year % 100 != 0) {
return true;
}
if (year % 400 != 0) {
return false;
}
return true;
}
function getDaysInMonth(uint8 month, uint16 year) internal pure returns (uint8) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
return 31;
}
else if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
}
else if (isLeapYear(year)) {
return 29;
}
else {
return 28;
}
}
function getToday() public view returns (uint) {
uint16 year;
uint8 month;
uint8 day;
uint secondsAccountedFor = 0;
uint buf;
uint8 i;
uint timestamp=now;
// Year
year = getYear(timestamp);
buf = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);
secondsAccountedFor += LEAP_YEAR_IN_SECONDS * buf;
secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - buf);
// Month
uint secondsInMonth;
for (i = 1; i <= 12; i++) {
secondsInMonth = DAY_IN_SECONDS * getDaysInMonth(i, year);
if (secondsInMonth + secondsAccountedFor > timestamp) {
month = i;
break;
}
secondsAccountedFor += secondsInMonth;
}
// Day
for (i = 1; i <= getDaysInMonth(month, year); i++) {
if (DAY_IN_SECONDS + secondsAccountedFor > timestamp) {
day = i;
break;
}
secondsAccountedFor += DAY_IN_SECONDS;
}
//20170106
uint endDate = uint(year) * 10000;
if (month<10) {
endDate += uint(month)*100;
} else {
endDate += uint(month)*10;
}
endDate += uint(day);
return endDate;
}
function getYear(uint timestamp) internal pure returns (uint16) {
uint secondsAccountedFor = 0;
uint16 year;
uint numLeapYears;
// Year
year = uint16(ORIGIN_YEAR + timestamp / YEAR_IN_SECONDS);
numLeapYears = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);
secondsAccountedFor += LEAP_YEAR_IN_SECONDS * numLeapYears;
secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - numLeapYears);
while (secondsAccountedFor > timestamp) {
if (isLeapYear(uint16(year - 1))) {
secondsAccountedFor -= LEAP_YEAR_IN_SECONDS;
}
else {
secondsAccountedFor -= YEAR_IN_SECONDS;
}
year -= 1;
}
return year;
}
function hashSeriesNumber(bytes32 series, uint256 number) internal pure returns (bytes32){
return keccak256(number, series);
}
function digRewardCheck(uint hash, uint modulo,uint reward,bytes32 GPSLatitude, bytes32 GPSLongitude) internal returns (uint256) {
if (hash % modulo == 0) {
//Reward a 50 tokens
mintScavengerToken(msg.sender, reward);
dailyRewardCount[msg.sender][getToday()]++;
GPSDigs[GPSLatitude][GPSLongitude]=reward;
GPSActivityAddress[GPSLatitude][GPSLongitude]=msg.sender;
HunterRewarded(msg.sender, reward,getPercentageComplete(msg.sender), GPSLatitude, GPSLongitude);
return reward;
}
else {
return 0;
}
}
function digForTokens(bytes32 GPSLatitude, bytes32 GPSLongitude) payable public returns(uint256) {
//Only call this if you actually have tokens!
require(balanceOf[msg.sender] > 1);
//Only once digging is allowed!
require(GPSDigs[GPSLatitude][GPSLongitude] == 0);
//You can only win that much per day
require( dailyRewardCount[msg.sender][getToday()] <= maxDailyRewards);
//Diggin costs 1 tokens!
destroySHT(msg.sender, 1);
uint hash = uint(hashSeriesNumber(GPSLatitude,digHashBase));
hash += uint(hashSeriesNumber(GPSLongitude,digHashBase));
uint awarded = digRewardCheck(hash, 100000000,100000,GPSLatitude,GPSLongitude);
if (awarded>0) {
return awarded;
}
awarded = digRewardCheck(hash, 100000,1000,GPSLatitude,GPSLongitude);
if (awarded>0) {
return awarded;
}
awarded = digRewardCheck(hash, 10000,500,GPSLatitude,GPSLongitude);
if (awarded>0) {
return awarded;
}
awarded = digRewardCheck(hash, 1000,200,GPSLatitude,GPSLongitude);
if (awarded>0) {
return awarded;
}
awarded = digRewardCheck(hash, 100,50,GPSLatitude,GPSLongitude);
if (awarded>0) {
return awarded;
}
awarded = digRewardCheck(hash, 10,3,GPSLatitude,GPSLongitude);
if (awarded>0) {
return awarded;
}
//You've got nothing!
GPSDigs[GPSLatitude][GPSLongitude]=1;
GPSActivityAddress[GPSLatitude][GPSLongitude]=msg.sender;
HunterRewarded(msg.sender, 0,getPercentageComplete(msg.sender), GPSLatitude, GPSLongitude);
return 0;
}
function getPercentageComplete(address ScavengerHuntTokenOwner) view public returns (uint256){
//Since there are no decimals, just create some of our own
uint256 myBalance = balanceOf[ScavengerHuntTokenOwner]*100000.0;
uint256 myTotalSupply = totalSupply;
uint256 myResult = myBalance / myTotalSupply;
return myResult;
}
function getStringAsKey(string key) pure public returns (bytes32 ret) {
require(bytes(key).length < 32);
assembly {
ret := mload(add(key, 32))
}
}
function getKeyAsString(bytes32 x) pure public returns (string) {
bytes memory bytesString = new bytes(32);
uint charCount = 0;
for (uint j = 0; j < 32; j++) {
byte char = byte(bytes32(uint(x) * 2 ** (8 * j)));
if (char != 0) {
bytesString[charCount] = char;
charCount++;
}
}
bytes memory bytesStringTrimmed = new bytes(charCount);
for (j = 0; j < charCount; j++) {
bytesStringTrimmed[j] = bytesString[j];
}
return string(bytesStringTrimmed);
}
modifier aftercrowdsaleDeadline() { if (now >= crowdsaleDeadline) _; }
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"newSellPrice","type":"uint256"},{"name":"newBuyPrice","type":"uint256"}],"name":"setPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"bytes32"}],"name":"getKeyAsString","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"MyName","type":"string"},{"name":"GPSLatitude","type":"bytes32"},{"name":"GPSLongitude","type":"bytes32"}],"name":"claimName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensDistributed","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":false,"inputs":[{"name":"GPSLatitude","type":"bytes32"},{"name":"GPSLongitude","type":"bytes32"}],"name":"shareScavengerHuntTokenLocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"MyPersonalMessage","type":"string"},{"name":"GPSLatitude","type":"bytes32"},{"name":"GPSLongitude","type":"bytes32"}],"name":"sharePersonalScavengerHuntTokenMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleDeadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mintExtraScavengerHuntTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyScavengerHuntToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"bytes32"}],"name":"GPSActivityAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"GPSLatitude","type":"bytes32"},{"name":"GPSLongitude","type":"bytes32"}],"name":"digForTokens","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"scavengerHuntTokenSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalHunters","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"checkDeadlinePassed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"returnEtherumToOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"durationInMinutes","type":"uint256"}],"name":"extendCrowdsalePeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ScavengerHuntTokenOwner","type":"address"}],"name":"getPercentageComplete","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"GPSLatitude","type":"bytes32"},{"name":"GPSLongitude","type":"bytes32"}],"name":"buyScavengerHuntTokenWithLocationSharing","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"dailyRewardCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxDailyRewards","outputs":[{"name":"","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"registeredNames","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"bytes32"}],"name":"GPSDigs","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":"aMaxDailyRewards","type":"uint256"}],"name":"setMaxDailyRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"SHTokenAmount","type":"uint256"},{"name":"GPSLatitude","type":"bytes32"},{"name":"GPSLongitude","type":"bytes32"}],"name":"transferScavengerHuntToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"key","type":"string"}],"name":"getStringAsKey","outputs":[{"name":"ret","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"scavengerHuntTokenName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"target","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"ifSuccessfulSendTo","type":"address"},{"name":"durationInMinutes","type":"uint256"},{"name":"weiCostOfEachToken","type":"uint256"},{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"},{"name":"adigHashBase","type":"uint256"},{"name":"aMaxDailyRewards","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"backer","type":"address"},{"indexed":false,"name":"amountEhter","type":"uint256"},{"indexed":false,"name":"amountScavengerHuntTokens","type":"uint256"},{"indexed":false,"name":"isContribution","type":"bool"}],"name":"FundTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"ScavengerHuntTokenAmount","type":"uint256"},{"indexed":false,"name":"PercentageOfTotal","type":"uint256"},{"indexed":false,"name":"GPSLatitude","type":"bytes32"},{"indexed":false,"name":"GPSLongitude","type":"bytes32"}],"name":"ShareLocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"Message","type":"string"},{"indexed":false,"name":"TokenName","type":"string"}],"name":"ShareMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"totalTokensDistributed","type":"uint256"},{"indexed":false,"name":"totalHunters","type":"uint256"}],"name":"SaleEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"Sender","type":"address"},{"indexed":false,"name":"MyPersonalMessage","type":"string"},{"indexed":false,"name":"GPSLatitude","type":"bytes32"},{"indexed":false,"name":"GPSLongitude","type":"bytes32"}],"name":"SharePersonalMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"Name","type":"string"},{"indexed":false,"name":"GPSLatitude","type":"bytes32"},{"indexed":false,"name":"GPSLongitude","type":"bytes32"}],"name":"NameClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"ScavengerHuntTokenAmount","type":"uint256"},{"indexed":false,"name":"PercentageOfTotal","type":"uint256"},{"indexed":false,"name":"GPSLatitude","type":"bytes32"},{"indexed":false,"name":"GPSLongitude","type":"bytes32"}],"name":"HunterRewarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}]Contract Creation Code
0x60606040526014805460ff1916905534156200001a57600080fd5b604051620024d9380380620024d983398101604052808051919060200180519190602001805191906020018051919060200180518201919060200180518201919060200180519190602001805160008054600160a060020a03191633600160a060020a03161790556003879055915085905084848282826001828051620000a692916020019062000205565b506002818051620000bc92916020019062000205565b505060008054600160a060020a03191633600160a060020a031617905550600d93508792508291505051620000f692916020019062000205565b50600e8380516200010c92916020019062000205565b506200012860008764010000000062000955620001de82021704565b6013829055600c81905542603c880201600955600a8590557f8026fe2448be156ffb855f15d0f3dd2dd9f894e691b4cc72bce178af3393c3b5886000876001604051600160a060020a039094168452602084019290925260408084019190915290151560608301526080909101905180910390a1505060008054600160a060020a031916600160a060020a03978816178082556001600b5590961686525050600460205260409093209290925550620002aa9050565b60005433600160a060020a03908116911614620001fa57600080fd5b600691909155600755565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024857805160ff191683800117855562000278565b8280016001018555821562000278579182015b82811115620002785782518255916020019190600101906200025b565b50620002869291506200028a565b5090565b620002a791905b8082111562000286576000815560010162000291565b90565b61221f80620002ba6000396000f30060606040526004361061020e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305fefda7811461021857806306fdde031461023157806308f3b208146102bb5780630e3d2122146102d1578063152e84a71461032957806318160ddd1461034e5780631da9a6b2146103615780631e5eb4ee1461037a57806323b872dd146103d25780632c4bca2c1461040e57806330fcdebd1461042157806337cecde41461020e5780633b3df417146104435780633b81e317146104785780633d49bc2c1461048657806342966c68146104995780634992f1b1146104af5780634b750334146104c257806352464d1c146104d5578063563abf1d146104e857806363235d24146104fe578063643e1b4f14610514578063669edcdc1461053357806370a082311461054157806379cc67901461056057806383fd5f2c14610582578063840233bb146105a45780638620410b146105b75780638da5cb5b146105ca57806393b45253146105dd5780639439e3fe146105fc57806395d89b41146106155780639f6cbc9714610628578063a0dc48141461063e578063a4f3fa1014610666578063a9059cbb14610679578063b414d4b61461069b578063c599fad8146106ba578063e4849b321461070b578063e724529c14610721578063f0bbe91614610745578063f2fde38b14610758578063f8b2cb4f14610777575b610216610796565b005b341561022357600080fd5b610216600435602435610955565b341561023c57600080fd5b61024461097b565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c657600080fd5b610244600435610a19565b34156102dc57600080fd5b61021660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610bc992505050565b341561033457600080fd5b61033c610cf2565b60405190815260200160405180910390f35b341561035957600080fd5b61033c610cf8565b341561036c57600080fd5b610216600435602435610cfe565b341561038557600080fd5b61021660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610da792505050565b34156103dd57600080fd5b6103fa600160a060020a0360043581169060243516604435610e94565b604051901515815260200160405180910390f35b341561041957600080fd5b61033c610f0b565b341561042c57600080fd5b610216600160a060020a0360043516602435610f11565b341561044e57600080fd5b61045c600435602435610f36565b604051600160a060020a03909116815260200160405180910390f35b61033c600435602435610f5c565b341561049157600080fd5b6102446111bd565b34156104a457600080fd5b6103fa600435611228565b34156104ba57600080fd5b61033c6112b4565b34156104cd57600080fd5b61033c6112ba565b34156104e057600080fd5b6102166112c0565b34156104f357600080fd5b610216600435611344565b341561050957600080fd5b6102166004356113fa565b341561051f57600080fd5b61033c600160a060020a0360043516611545565b61021660043560243561157f565b341561054c57600080fd5b61033c600160a060020a0360043516611587565b341561056b57600080fd5b6103fa600160a060020a0360043516602435611599565b341561058d57600080fd5b61033c600160a060020a0360043516602435611642565b34156105af57600080fd5b61033c61165f565b34156105c257600080fd5b61033c611665565b34156105d557600080fd5b61045c61166b565b34156105e857600080fd5b61033c600160a060020a036004351661167a565b341561060757600080fd5b61033c60043560243561168c565b341561062057600080fd5b6102446116a9565b341561063357600080fd5b610216600435611714565b341561064957600080fd5b610216600160a060020a0360043516602435604435606435611813565b341561067157600080fd5b61033c611999565b341561068457600080fd5b610216600160a060020a0360043516602435611ab3565b34156106a657600080fd5b6103fa600160a060020a0360043516611abe565b34156106c557600080fd5b61033c60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ad395505050505050565b341561071657600080fd5b610216600435611aee565b341561072c57600080fd5b610216600160a060020a03600435166024351515611b62565b341561075057600080fd5b610244611bee565b341561076357600080fd5b610216600160a060020a0360043516611c59565b341561078257600080fd5b61033c600160a060020a0360043516611ca3565b601454600090819060ff16156108c1577ff30bb22888434f4aa3caabec12635210a572f0326e3776000dfd07df166f84e833600d604051600160a060020a03831681526060602082018181526039918301919091527f536f7272793a205468652063726f776473616c652068617320656e6465642e2060808301527f596f752063616e6e6f742062757920616e796d6f7265202d3e0000000000000060a083015260c0604083018181528454600260001961010060018416150201909116049184018290529060e0840190859080156108b05780601f10610885576101008083540402835291602001916108b0565b820191906000526020600020905b81548152906001019060200180831161089357829003601f168201915b505094505050505060405180910390a15b60145460ff16156108d157600080fd5b349150600754828115156108e157fe5b0490506108ee3382611cbe565b7f8026fe2448be156ffb855f15d0f3dd2dd9f894e691b4cc72bce178af3393c3b53383836001604051600160a060020a039094168452602084019290925260408084019190915290151560608301526080909101905180910390a16109516112c0565b5050565b60005433600160a060020a0390811691161461097057600080fd5b600691909155600755565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b820191906000526020600020905b8154815290600101906020018083116109f457829003601f168201915b505050505081565b610a216121e1565b610a296121e1565b6000806000610a366121e1565b6020604051805910610a455750595b818152601f19601f83011681016020016040529050945060009350600092505b6020831015610af0576008830260020a870291507fff00000000000000000000000000000000000000000000000000000000000000821615610ae55781858581518110610aae57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909301925b600190920191610a65565b83604051805910610afe5750595b818152601f19601f830116810160200160405290509050600092505b83831015610bbf57848381518110610b2e57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002818481518110610b8457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190920191610b1a565b9695505050505050565b6020835110610bd757600080fd5b600160a060020a033316600090815260046020526040902054600a901015610bfe57600080fd5b610c0783611ad3565b33600160a060020a0381166000908152600f602052604090819020929092557ff5ba39e02b6623d9199fb584db1d18659ccd7c5160102b14d238148f7b4dccd99185908590859051600160a060020a0385168152604081018390526060810182905260806020820181815290820185818151815260200191508051906020019080838360005b83811015610ca5578082015183820152602001610c8d565b50505050905090810190601f168015610cd25780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1610ced33600a611d54565b505050565b600a5481565b60035481565b600160a060020a03331660009081526004602052604081205411610d2157600080fd5b33600160a060020a0381166000908152600460205260409020547f67f3b292a2a9969609a74f1554be02dc80c63eea2f9e412cba441d08ef76bba79190610d6782611545565b8585604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a15050565b600160a060020a0333166000908152600460205260409020546001901015610dce57600080fd5b7fcb3595811d147ae189bddf894f6f690feffd0302d7611f50f12a86f1022e043433848484604051600160a060020a0385168152604081018390526060810182905260806020820181815290820185818151815260200191508051906020019080838360005b83811015610e4c578082015183820152602001610e34565b50505050905090810190601f168015610e795780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1610ced336001611d54565b600160a060020a03808416600090815260056020908152604080832033909416835292905290812054821115610ec957600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522080548390039055610f01848484611db7565b5060019392505050565b60095481565b60005433600160a060020a03908116911614610f2c57600080fd5b6109518282611cbe565b6011602090815260009283526040808420909152908252902054600160a060020a031681565b600160a060020a0333166000908152600460205260408120548190819060019011610f8657600080fd5b600085815260106020908152604080832087845290915290205415610faa57600080fd5b600c54600160a060020a033316600090815260126020526040812090610fce611999565b81526020019081526020016000205411151515610fea57600080fd5b610ff5336001611d54565b61100185601354611ece565b60019004915061101384601354611ece565b919091019061102c826305f5e100620186a08888611ef1565b9050600081111561103f578092506111b5565b61105182620186a06103e88888611ef1565b90506000811115611064578092506111b5565b611075826127106101f48888611ef1565b90506000811115611088578092506111b5565b611098826103e860c88888611ef1565b905060008111156110ab578092506111b5565b6110ba82606460328888611ef1565b905060008111156110cd578092506111b5565b6110dc82600a60038888611ef1565b905060008111156110ef578092506111b5565b6000858152601060209081526040808320878452825280832060019055878352601182528083208784529091528120805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a038116919091179091557f499125a449bbbdab7ea02a2d18015c7aca5b9b3ad3f04660c224b6d84a2696999161117482611545565b8888604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1600092505b505092915050565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b600160a060020a0333166000908152600460205260408120548290101561124e57600080fd5b600160a060020a03331660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a25060015b919050565b600b5481565b60065481565b600954421061134257600054600a54600b547ff763a771d96757391a5336bd1c92609108208aeb3cfc50c8e12561f156f9f87892600160a060020a031691906040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a16014805460ff191660011790555b565b60005433600160a060020a0390811691161461135f57600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f19350505050156113f757600080547f8026fe2448be156ffb855f15d0f3dd2dd9f894e691b4cc72bce178af3393c3b591600160a060020a0390911690839080604051600160a060020a039094168452602084019290925260408084019190915290151560608301526080909101905180910390a15b50565b60005433600160a060020a0390811691161461141557600080fd5b42603c8202016009556014805460ff191690557ff30bb22888434f4aa3caabec12635210a572f0326e3776000dfd07df166f84e833600d604051600160a060020a03831681526060602082018181526026918301919091527f5468652063726f776473616c6520697320657874656e64656420666f7220746f60808301527f6b656e202d3e000000000000000000000000000000000000000000000000000060a083015260c0604083018181528454600260001961010060018416150201909116049184018290529060e0840190859080156115325780601f1061150757610100808354040283529160200191611532565b820191906000526020600020905b81548152906001019060200180831161151557829003601f168201915b505094505050505060405180910390a150565b600160a060020a038116600090815260046020526040812054600354620186a09091029082818381151561157557fe5b0495945050505050565b610d21610796565b60046020526000908152604090205481565b6000805433600160a060020a039081169116146115b557600080fd5b600160a060020a038316600090815260046020526040902054829010156115db57600080fd5b600160a060020a03831660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a25060015b92915050565b601260209081526000928352604080842090915290825290205481565b600c5481565b60075481565b600054600160a060020a031681565b600f6020526000908152604090205481565b601060209081526000928352604080842090915290825290205481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b60005433600160a060020a0390811691161461172f57600080fd5b600c8190557ff30bb22888434f4aa3caabec12635210a572f0326e3776000dfd07df166f84e833600d604051600160a060020a03831681526060602082018181526037918301919091527f546865206d6178696d756d206f66206461696c7920726577617264206973206e60808301527f6f77207570646174656420666f7220746f6b656e202d3e00000000000000000060a083015260c0604083018181528454600260001961010060018416150201909116049184018290529060e0840190859080156115325780601f1061150757610100808354040283529160200191611532565b600160a060020a038416600090815260046020526040902054151561183c57600b805460010190555b611847338585611db7565b600160a060020a0384166000908152600460205260409020547f67f3b292a2a9969609a74f1554be02dc80c63eea2f9e412cba441d08ef76bba790859061188d82611545565b604051600160a060020a03909316835260208301919091526040808301919091527f756e6b6e6f776e0000000000000000000000000000000000000000000000000060608301819052608083015260a0909101905180910390a133600160a060020a0381166000908152600460205260409020547f67f3b292a2a9969609a74f1554be02dc80c63eea2f9e412cba441d08ef76bba7919061192d82611545565b8585604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1600160a060020a033316600090815260046020526040902054151561199357600b80546000190190555b50505050565b60008080808080804281806119ad8361201a565b98506119ba6107b26120aa565b6119c78a61ffff166120aa565b039450846301e285000286019550846107b28a0361ffff16036301e133800286019550600193505b600c60ff851611611a2f57611a04848a6120c5565b60ff1662015180029150828683011115611a2057839750611a2f565b948101946001909301926119ef565b600193505b611a3e888a6120c5565b60ff168460ff16111515611a7557828662015180011115611a6157839650611a75565b620151809590950194600190930192611a34565b5061271061ffff891602600a60ff89161015611a9857606460ff89160201611aa1565b600a60ff891602015b60ff8716019850505050505050505090565b610951338383611db7565b60086020526000908152604090205460ff1681565b60006020825110611ae357600080fd5b602082015192915050565b6006548102600160a060020a033016311015611b0957600080fd5b611b14333083611db7565b60006006541115611b565733600160a060020a03166108fc60065483029081150290604051600060405180830381858888f193505050501515611b5657600080fd5b60038054919091039055565b60005433600160a060020a03908116911614611b7d57600080fd5b600160a060020a03821660009081526008602052604090819020805460ff19168315151790557f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b60005433600160a060020a03908116911614611c7457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526004602052604090205490565b600160a060020a0382166000908152600460205260409020541515611ce757600b805460010190555b600160a060020a0380831660008181526004602052604090819020805485019055600380548501905590913016907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3600a8054909101905550565b600160a060020a03821660009081526004602052604090205481901015611d7a57600080fd5b600160a060020a03821660009081526004602052604090208054829003815560038054839003905554151561095157600b80546000190190555050565b600160a060020a0382161515611dcc57600080fd5b600160a060020a03831660009081526004602052604090205481901015611df257600080fd5b600160a060020a03821660009081526004602052604090205481810111611e1857600080fd5b600160a060020a03831660009081526008602052604090205460ff1615611e3e57600080fd5b600160a060020a03821660009081526008602052604090205460ff1615611e6457600080fd5b600160a060020a038084166000818152600460205260408082208054869003905592851680825290839020805485019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b600081836040519182526020820152604090810190518091039020905092915050565b60008486811515611efe57fe5b06151561200d57611f0f3385611cbe565b600160a060020a033316600090815260126020526040812090611f30611999565b81526020808201929092526040908101600090812080546001019055858152601083528181208582528352818120879055858152601183528181208582529092529020805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a038116919091179091557f499125a449bbbdab7ea02a2d18015c7aca5b9b3ad3f04660c224b6d84a2696999085611fca82611545565b8686604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a15082612011565b5060005b95945050505050565b6000806107b26301e1338084048101908290612035906120aa565b6120428361ffff166120aa565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b848311156120a25761207a6001830361218b565b1561208d576301e2850083039250612097565b6301e13380830392505b600182039150612066565b509392505050565b60001901600061019082046064830460048404030192915050565b60008260ff16600114806120dc57508260ff166003145b806120ea57508260ff166005145b806120f857508260ff166007145b8061210657508260ff166008145b8061211457508260ff16600a145b8061212257508260ff16600c145b1561212f5750601f61163c565b8260ff166004148061214457508260ff166006145b8061215257508260ff166009145b8061216057508260ff16600b145b1561216d5750601e61163c565b6121768261218b565b156121835750601d61163c565b50601c61163c565b6000600461ffff83160661ffff16156121a6575060006112af565b606461ffff83160661ffff16156121bf575060016112af565b61019061ffff83160661ffff16156121d9575060006112af565b506001919050565b602060405190810160405260008152905600a165627a7a7230582031a9fafcaea25160f0c30581543e7adb62f6d0ab3550b8986cfbbae463d0ce80002900000000000000000000000089cd946c08d547282580a3ec6fb2f32ab9093ec300000000000000000000000000000000000000000000000000000000000378bb000000000000000000000000000000000000000000000000000009184e72a000000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000002994a5fa7270c393e848b9fe987813485a0472757eeeed20cbef934e0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001353636176656e67657248756e74546f6b656e330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348543100000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60606040526004361061020e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305fefda7811461021857806306fdde031461023157806308f3b208146102bb5780630e3d2122146102d1578063152e84a71461032957806318160ddd1461034e5780631da9a6b2146103615780631e5eb4ee1461037a57806323b872dd146103d25780632c4bca2c1461040e57806330fcdebd1461042157806337cecde41461020e5780633b3df417146104435780633b81e317146104785780633d49bc2c1461048657806342966c68146104995780634992f1b1146104af5780634b750334146104c257806352464d1c146104d5578063563abf1d146104e857806363235d24146104fe578063643e1b4f14610514578063669edcdc1461053357806370a082311461054157806379cc67901461056057806383fd5f2c14610582578063840233bb146105a45780638620410b146105b75780638da5cb5b146105ca57806393b45253146105dd5780639439e3fe146105fc57806395d89b41146106155780639f6cbc9714610628578063a0dc48141461063e578063a4f3fa1014610666578063a9059cbb14610679578063b414d4b61461069b578063c599fad8146106ba578063e4849b321461070b578063e724529c14610721578063f0bbe91614610745578063f2fde38b14610758578063f8b2cb4f14610777575b610216610796565b005b341561022357600080fd5b610216600435602435610955565b341561023c57600080fd5b61024461097b565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c657600080fd5b610244600435610a19565b34156102dc57600080fd5b61021660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610bc992505050565b341561033457600080fd5b61033c610cf2565b60405190815260200160405180910390f35b341561035957600080fd5b61033c610cf8565b341561036c57600080fd5b610216600435602435610cfe565b341561038557600080fd5b61021660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610da792505050565b34156103dd57600080fd5b6103fa600160a060020a0360043581169060243516604435610e94565b604051901515815260200160405180910390f35b341561041957600080fd5b61033c610f0b565b341561042c57600080fd5b610216600160a060020a0360043516602435610f11565b341561044e57600080fd5b61045c600435602435610f36565b604051600160a060020a03909116815260200160405180910390f35b61033c600435602435610f5c565b341561049157600080fd5b6102446111bd565b34156104a457600080fd5b6103fa600435611228565b34156104ba57600080fd5b61033c6112b4565b34156104cd57600080fd5b61033c6112ba565b34156104e057600080fd5b6102166112c0565b34156104f357600080fd5b610216600435611344565b341561050957600080fd5b6102166004356113fa565b341561051f57600080fd5b61033c600160a060020a0360043516611545565b61021660043560243561157f565b341561054c57600080fd5b61033c600160a060020a0360043516611587565b341561056b57600080fd5b6103fa600160a060020a0360043516602435611599565b341561058d57600080fd5b61033c600160a060020a0360043516602435611642565b34156105af57600080fd5b61033c61165f565b34156105c257600080fd5b61033c611665565b34156105d557600080fd5b61045c61166b565b34156105e857600080fd5b61033c600160a060020a036004351661167a565b341561060757600080fd5b61033c60043560243561168c565b341561062057600080fd5b6102446116a9565b341561063357600080fd5b610216600435611714565b341561064957600080fd5b610216600160a060020a0360043516602435604435606435611813565b341561067157600080fd5b61033c611999565b341561068457600080fd5b610216600160a060020a0360043516602435611ab3565b34156106a657600080fd5b6103fa600160a060020a0360043516611abe565b34156106c557600080fd5b61033c60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ad395505050505050565b341561071657600080fd5b610216600435611aee565b341561072c57600080fd5b610216600160a060020a03600435166024351515611b62565b341561075057600080fd5b610244611bee565b341561076357600080fd5b610216600160a060020a0360043516611c59565b341561078257600080fd5b61033c600160a060020a0360043516611ca3565b601454600090819060ff16156108c1577ff30bb22888434f4aa3caabec12635210a572f0326e3776000dfd07df166f84e833600d604051600160a060020a03831681526060602082018181526039918301919091527f536f7272793a205468652063726f776473616c652068617320656e6465642e2060808301527f596f752063616e6e6f742062757920616e796d6f7265202d3e0000000000000060a083015260c0604083018181528454600260001961010060018416150201909116049184018290529060e0840190859080156108b05780601f10610885576101008083540402835291602001916108b0565b820191906000526020600020905b81548152906001019060200180831161089357829003601f168201915b505094505050505060405180910390a15b60145460ff16156108d157600080fd5b349150600754828115156108e157fe5b0490506108ee3382611cbe565b7f8026fe2448be156ffb855f15d0f3dd2dd9f894e691b4cc72bce178af3393c3b53383836001604051600160a060020a039094168452602084019290925260408084019190915290151560608301526080909101905180910390a16109516112c0565b5050565b60005433600160a060020a0390811691161461097057600080fd5b600691909155600755565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b820191906000526020600020905b8154815290600101906020018083116109f457829003601f168201915b505050505081565b610a216121e1565b610a296121e1565b6000806000610a366121e1565b6020604051805910610a455750595b818152601f19601f83011681016020016040529050945060009350600092505b6020831015610af0576008830260020a870291507fff00000000000000000000000000000000000000000000000000000000000000821615610ae55781858581518110610aae57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909301925b600190920191610a65565b83604051805910610afe5750595b818152601f19601f830116810160200160405290509050600092505b83831015610bbf57848381518110610b2e57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002818481518110610b8457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190920191610b1a565b9695505050505050565b6020835110610bd757600080fd5b600160a060020a033316600090815260046020526040902054600a901015610bfe57600080fd5b610c0783611ad3565b33600160a060020a0381166000908152600f602052604090819020929092557ff5ba39e02b6623d9199fb584db1d18659ccd7c5160102b14d238148f7b4dccd99185908590859051600160a060020a0385168152604081018390526060810182905260806020820181815290820185818151815260200191508051906020019080838360005b83811015610ca5578082015183820152602001610c8d565b50505050905090810190601f168015610cd25780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1610ced33600a611d54565b505050565b600a5481565b60035481565b600160a060020a03331660009081526004602052604081205411610d2157600080fd5b33600160a060020a0381166000908152600460205260409020547f67f3b292a2a9969609a74f1554be02dc80c63eea2f9e412cba441d08ef76bba79190610d6782611545565b8585604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a15050565b600160a060020a0333166000908152600460205260409020546001901015610dce57600080fd5b7fcb3595811d147ae189bddf894f6f690feffd0302d7611f50f12a86f1022e043433848484604051600160a060020a0385168152604081018390526060810182905260806020820181815290820185818151815260200191508051906020019080838360005b83811015610e4c578082015183820152602001610e34565b50505050905090810190601f168015610e795780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1610ced336001611d54565b600160a060020a03808416600090815260056020908152604080832033909416835292905290812054821115610ec957600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522080548390039055610f01848484611db7565b5060019392505050565b60095481565b60005433600160a060020a03908116911614610f2c57600080fd5b6109518282611cbe565b6011602090815260009283526040808420909152908252902054600160a060020a031681565b600160a060020a0333166000908152600460205260408120548190819060019011610f8657600080fd5b600085815260106020908152604080832087845290915290205415610faa57600080fd5b600c54600160a060020a033316600090815260126020526040812090610fce611999565b81526020019081526020016000205411151515610fea57600080fd5b610ff5336001611d54565b61100185601354611ece565b60019004915061101384601354611ece565b919091019061102c826305f5e100620186a08888611ef1565b9050600081111561103f578092506111b5565b61105182620186a06103e88888611ef1565b90506000811115611064578092506111b5565b611075826127106101f48888611ef1565b90506000811115611088578092506111b5565b611098826103e860c88888611ef1565b905060008111156110ab578092506111b5565b6110ba82606460328888611ef1565b905060008111156110cd578092506111b5565b6110dc82600a60038888611ef1565b905060008111156110ef578092506111b5565b6000858152601060209081526040808320878452825280832060019055878352601182528083208784529091528120805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a038116919091179091557f499125a449bbbdab7ea02a2d18015c7aca5b9b3ad3f04660c224b6d84a2696999161117482611545565b8888604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1600092505b505092915050565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b600160a060020a0333166000908152600460205260408120548290101561124e57600080fd5b600160a060020a03331660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a25060015b919050565b600b5481565b60065481565b600954421061134257600054600a54600b547ff763a771d96757391a5336bd1c92609108208aeb3cfc50c8e12561f156f9f87892600160a060020a031691906040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a16014805460ff191660011790555b565b60005433600160a060020a0390811691161461135f57600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f19350505050156113f757600080547f8026fe2448be156ffb855f15d0f3dd2dd9f894e691b4cc72bce178af3393c3b591600160a060020a0390911690839080604051600160a060020a039094168452602084019290925260408084019190915290151560608301526080909101905180910390a15b50565b60005433600160a060020a0390811691161461141557600080fd5b42603c8202016009556014805460ff191690557ff30bb22888434f4aa3caabec12635210a572f0326e3776000dfd07df166f84e833600d604051600160a060020a03831681526060602082018181526026918301919091527f5468652063726f776473616c6520697320657874656e64656420666f7220746f60808301527f6b656e202d3e000000000000000000000000000000000000000000000000000060a083015260c0604083018181528454600260001961010060018416150201909116049184018290529060e0840190859080156115325780601f1061150757610100808354040283529160200191611532565b820191906000526020600020905b81548152906001019060200180831161151557829003601f168201915b505094505050505060405180910390a150565b600160a060020a038116600090815260046020526040812054600354620186a09091029082818381151561157557fe5b0495945050505050565b610d21610796565b60046020526000908152604090205481565b6000805433600160a060020a039081169116146115b557600080fd5b600160a060020a038316600090815260046020526040902054829010156115db57600080fd5b600160a060020a03831660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a25060015b92915050565b601260209081526000928352604080842090915290825290205481565b600c5481565b60075481565b600054600160a060020a031681565b600f6020526000908152604090205481565b601060209081526000928352604080842090915290825290205481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b60005433600160a060020a0390811691161461172f57600080fd5b600c8190557ff30bb22888434f4aa3caabec12635210a572f0326e3776000dfd07df166f84e833600d604051600160a060020a03831681526060602082018181526037918301919091527f546865206d6178696d756d206f66206461696c7920726577617264206973206e60808301527f6f77207570646174656420666f7220746f6b656e202d3e00000000000000000060a083015260c0604083018181528454600260001961010060018416150201909116049184018290529060e0840190859080156115325780601f1061150757610100808354040283529160200191611532565b600160a060020a038416600090815260046020526040902054151561183c57600b805460010190555b611847338585611db7565b600160a060020a0384166000908152600460205260409020547f67f3b292a2a9969609a74f1554be02dc80c63eea2f9e412cba441d08ef76bba790859061188d82611545565b604051600160a060020a03909316835260208301919091526040808301919091527f756e6b6e6f776e0000000000000000000000000000000000000000000000000060608301819052608083015260a0909101905180910390a133600160a060020a0381166000908152600460205260409020547f67f3b292a2a9969609a74f1554be02dc80c63eea2f9e412cba441d08ef76bba7919061192d82611545565b8585604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1600160a060020a033316600090815260046020526040902054151561199357600b80546000190190555b50505050565b60008080808080804281806119ad8361201a565b98506119ba6107b26120aa565b6119c78a61ffff166120aa565b039450846301e285000286019550846107b28a0361ffff16036301e133800286019550600193505b600c60ff851611611a2f57611a04848a6120c5565b60ff1662015180029150828683011115611a2057839750611a2f565b948101946001909301926119ef565b600193505b611a3e888a6120c5565b60ff168460ff16111515611a7557828662015180011115611a6157839650611a75565b620151809590950194600190930192611a34565b5061271061ffff891602600a60ff89161015611a9857606460ff89160201611aa1565b600a60ff891602015b60ff8716019850505050505050505090565b610951338383611db7565b60086020526000908152604090205460ff1681565b60006020825110611ae357600080fd5b602082015192915050565b6006548102600160a060020a033016311015611b0957600080fd5b611b14333083611db7565b60006006541115611b565733600160a060020a03166108fc60065483029081150290604051600060405180830381858888f193505050501515611b5657600080fd5b60038054919091039055565b60005433600160a060020a03908116911614611b7d57600080fd5b600160a060020a03821660009081526008602052604090819020805460ff19168315151790557f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a115780601f106109e657610100808354040283529160200191610a11565b60005433600160a060020a03908116911614611c7457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526004602052604090205490565b600160a060020a0382166000908152600460205260409020541515611ce757600b805460010190555b600160a060020a0380831660008181526004602052604090819020805485019055600380548501905590913016907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3600a8054909101905550565b600160a060020a03821660009081526004602052604090205481901015611d7a57600080fd5b600160a060020a03821660009081526004602052604090208054829003815560038054839003905554151561095157600b80546000190190555050565b600160a060020a0382161515611dcc57600080fd5b600160a060020a03831660009081526004602052604090205481901015611df257600080fd5b600160a060020a03821660009081526004602052604090205481810111611e1857600080fd5b600160a060020a03831660009081526008602052604090205460ff1615611e3e57600080fd5b600160a060020a03821660009081526008602052604090205460ff1615611e6457600080fd5b600160a060020a038084166000818152600460205260408082208054869003905592851680825290839020805485019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b600081836040519182526020820152604090810190518091039020905092915050565b60008486811515611efe57fe5b06151561200d57611f0f3385611cbe565b600160a060020a033316600090815260126020526040812090611f30611999565b81526020808201929092526040908101600090812080546001019055858152601083528181208582528352818120879055858152601183528181208582529092529020805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a038116919091179091557f499125a449bbbdab7ea02a2d18015c7aca5b9b3ad3f04660c224b6d84a2696999085611fca82611545565b8686604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a15082612011565b5060005b95945050505050565b6000806107b26301e1338084048101908290612035906120aa565b6120428361ffff166120aa565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b848311156120a25761207a6001830361218b565b1561208d576301e2850083039250612097565b6301e13380830392505b600182039150612066565b509392505050565b60001901600061019082046064830460048404030192915050565b60008260ff16600114806120dc57508260ff166003145b806120ea57508260ff166005145b806120f857508260ff166007145b8061210657508260ff166008145b8061211457508260ff16600a145b8061212257508260ff16600c145b1561212f5750601f61163c565b8260ff166004148061214457508260ff166006145b8061215257508260ff166009145b8061216057508260ff16600b145b1561216d5750601e61163c565b6121768261218b565b156121835750601d61163c565b50601c61163c565b6000600461ffff83160661ffff16156121a6575060006112af565b606461ffff83160661ffff16156121bf575060016112af565b61019061ffff83160661ffff16156121d9575060006112af565b506001919050565b602060405190810160405260008152905600a165627a7a7230582031a9fafcaea25160f0c30581543e7adb62f6d0ab3550b8986cfbbae463d0ce800029
Swarm Source
bzzr://31a9fafcaea25160f0c30581543e7adb62f6d0ab3550b8986cfbbae463d0ce80
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.