ETH Price: $3,419.50 (+3.74%)

Token

Vials of Goo (GOO)
 

Overview

Max Total Supply

299,106.741770709858 GOO

Holders

310

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 12 Decimals)

Balance
0.313964695853 GOO

Value
$0.00
0x778f7434956b899303708fa3c5fad85bf9d93e06
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GooToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-05
*/

pragma solidity ^0.4.25;

/**
 * 
 * World War Goo - Competitive Idle Game
 * 
 * https:/ethergoo.io
 * 
 */

interface ERC20 {
    function totalSupply() external constant returns (uint);
    function balanceOf(address tokenOwner) external constant returns (uint balance);
    function allowance(address tokenOwner, address spender) external constant returns (uint remaining);
    function transfer(address to, uint tokens) external returns (bool success);
    function approve(address spender, uint tokens) external returns (bool success);
    function approveAndCall(address spender, uint tokens, bytes data) external returns (bool success);
    function transferFrom(address from, address to, uint tokens) external returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

interface ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes data) external;
}

contract GooToken is ERC20 {
    using SafeMath for uint;
    using SafeMath224 for uint224;
    
    string public constant name  = "Vials of Goo";
    string public constant symbol = "GOO";
    uint8 public constant decimals = 12;
    uint224 public constant MAX_SUPPLY = 21000000 * (10 ** 12); // 21 million (to 12 szabo decimals)
    
    mapping(address => UserBalance) balances;
    mapping(address => mapping(address => uint256)) allowed;
    
    mapping(address => uint256) public gooProduction; // Store player's current goo production
    mapping(address => bool) operator;
    
    uint224 private totalGoo;
    uint256 public teamAllocation; // 10% reserve allocation towards exchange-listing negotiations, game costs, and ongoing community contests/aidrops
    address public owner; // Minor management of game
    bool public supplyCapHit; // No more production once we hit MAX_SUPPLY
    
    struct UserBalance {
        uint224 goo;
        uint32 lastGooSaveTime;
    }
    
    constructor() public {
        teamAllocation = MAX_SUPPLY / 10;
        owner = msg.sender;
    }
    
    function totalSupply() external view returns(uint) {
        return totalGoo;
    }
    
    function transfer(address to, uint256 tokens) external returns (bool) {
        updatePlayersGooInternal(msg.sender);
        
        require(tokens <= MAX_SUPPLY); // Prevent uint224 overflow
        uint224 amount = uint224(tokens); // Goo is uint224 but must comply to ERC20's uint256

        balances[msg.sender].goo = balances[msg.sender].goo.sub(amount);
        emit Transfer(msg.sender, to, amount);
        
        if (to == address(0)) { // Burn
            totalGoo -= amount;
        } else {
            balances[to].goo = balances[to].goo.add(amount);
        }
        return true;
    }
    
    function transferFrom(address from, address to, uint256 tokens) external returns (bool) {
        updatePlayersGooInternal(from);
        
        require(tokens <= MAX_SUPPLY); // Prevent uint224 overflow
        uint224 amount = uint224(tokens); // Goo is uint224 but must comply to ERC20's uint256
        
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);
        balances[from].goo = balances[from].goo.sub(amount);
        emit Transfer(from, to, amount);
        
        if (to == address(0)) { // Burn
            totalGoo -= amount;
        } else {
            balances[to].goo = balances[to].goo.add(amount);
        }
        return true;
    }
    
    function unlockAllocation(uint224 amount, address recipient) external {
        require(msg.sender == owner);
        teamAllocation = teamAllocation.sub(amount); // Hard limit
        
        totalGoo += amount;
        balances[recipient].goo = balances[recipient].goo.add(amount);
        emit Transfer(address(0), recipient, amount);
    }
    
    function setOperator(address gameContract, bool isOperator) external {
        require(msg.sender == owner);
        operator[gameContract] = isOperator;
    }
    
    function approve(address spender, uint256 tokens) external returns (bool) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }
    
    function approveAndCall(address spender, uint256 tokens, bytes data) external returns (bool) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }
    
    function allowance(address tokenOwner, address spender) external view returns (uint256) {
        return allowed[tokenOwner][spender];
    }

    function recoverAccidentalTokens(address tokenAddress, uint256 tokens) external {
        require(msg.sender == owner);
        require(tokenAddress != address(this)); // Not Goo
        ERC20(tokenAddress).transfer(owner, tokens);
    }
    
    function balanceOf(address player) public constant returns(uint256) {
        return balances[player].goo + balanceOfUnclaimedGoo(player);
    }
    
    function balanceOfUnclaimedGoo(address player) internal constant returns (uint224 gooGain) {
        if (supplyCapHit) return;
        
        uint32 lastSave = balances[player].lastGooSaveTime;
        if (lastSave > 0 && lastSave < block.timestamp) {
            gooGain = uint224(gooProduction[player] * (block.timestamp - lastSave));
        }
        
        if (totalGoo + gooGain >= MAX_SUPPLY) {
            gooGain = MAX_SUPPLY - totalGoo;
        }
    }
    
    function mintGoo(uint224 amount, address player) external {
        if (supplyCapHit) return;
        require(operator[msg.sender]);
        
        uint224 minted = amount;
        if (totalGoo.add(amount) >= MAX_SUPPLY) {
            supplyCapHit = true;
            minted = MAX_SUPPLY - totalGoo;
        }

        balances[player].goo += minted;
        totalGoo += minted;
        emit Transfer(address(0), player, minted);
    }
    
    function updatePlayersGoo(address player) external {
        require(operator[msg.sender]);
        updatePlayersGooInternal(player);
    }
    
    function updatePlayersGooInternal(address player) internal {
        uint224 gooGain = balanceOfUnclaimedGoo(player);
        
        UserBalance memory balance = balances[player];
        if (gooGain > 0) {
            totalGoo += gooGain;
            if (!supplyCapHit && totalGoo == MAX_SUPPLY) {
                supplyCapHit = true;
            }
            
            balance.goo += gooGain;
            emit Transfer(address(0), player, gooGain);
        }
        
        if (balance.lastGooSaveTime < block.timestamp) {
            balance.lastGooSaveTime = uint32(block.timestamp); 
            balances[player] = balance;
        }
    }
    
    function updatePlayersGooFromPurchase(address player, uint224 purchaseCost) external {
        require(operator[msg.sender]);
        uint224 unclaimedGoo = balanceOfUnclaimedGoo(player);
        
        UserBalance memory balance = balances[player];
        balance.lastGooSaveTime = uint32(block.timestamp); 
        
        if (purchaseCost > unclaimedGoo) {
            uint224 gooDecrease = purchaseCost - unclaimedGoo;
            totalGoo -= gooDecrease;
            balance.goo = balance.goo.sub(gooDecrease);
            emit Transfer(player, address(0), gooDecrease);
        } else {
            uint224 gooGain = unclaimedGoo - purchaseCost;
            totalGoo += gooGain;
            balance.goo += gooGain;
            if (!supplyCapHit && totalGoo == MAX_SUPPLY) {
                supplyCapHit = true;
            }
            emit Transfer(address(0), player, gooGain);
        }
        balances[player] = balance;
    }
    
    function increasePlayersGooProduction(address player, uint256 increase) external {
        require(operator[msg.sender]);
        gooProduction[player] += increase;
    }
    
    function decreasePlayersGooProduction(address player, uint256 decrease) external {
        require(operator[msg.sender]);
        gooProduction[player] -= decrease;
    }

}



















library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}




library SafeMath224 {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint224 a, uint224 b) internal pure returns (uint224) {
    if (a == 0) {
      return 0;
    }
    uint224 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint224 a, uint224 b) internal pure returns (uint224) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint224 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint224 a, uint224 b) internal pure returns (uint224) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint224 a, uint224 b) internal pure returns (uint224) {
    uint224 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"recoverAccidentalTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"supplyCapHit","outputs":[{"name":"","type":"bool"}],"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":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","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":"MAX_SUPPLY","outputs":[{"name":"","type":"uint224"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"gooProduction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint224"},{"name":"player","type":"address"}],"name":"mintGoo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"gameContract","type":"address"},{"name":"isOperator","type":"bool"}],"name":"setOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"player","type":"address"}],"name":"balanceOf","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"player","type":"address"},{"name":"increase","type":"uint256"}],"name":"increasePlayersGooProduction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"player","type":"address"},{"name":"decrease","type":"uint256"}],"name":"decreasePlayersGooProduction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"player","type":"address"}],"name":"updatePlayersGoo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"player","type":"address"},{"name":"purchaseCost","type":"uint224"}],"name":"updatePlayersGooFromPurchase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint224"},{"name":"recipient","type":"address"}],"name":"unlockAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"}]

608060405234801561001057600080fd5b50671d24b2dfac52000060055560068054600160a060020a031916331790556113698061003e6000396000f3006080604052600436106101195763ffffffff60e060020a60003504166302b45474811461011e57806306fdde0314610144578063095ea7b3146101ce5780630a4bbb681461020657806318160ddd1461021b57806323b872dd14610242578063313ce5671461026c57806332cb6b0c1461029757806333958b30146102c85780634f03f17c146102e9578063558a7297146103165780636816521a1461033c57806370a08231146103515780638da5cb5b1461037257806395d89b41146103a3578063a732f9ac146103b8578063a9059cbb146103dc578063add1dcfa14610400578063b5967e1614610424578063bb002ba814610445578063cae9ca5114610472578063dd62ed3e146104a3578063f7b04ba5146104ca575b600080fd5b34801561012a57600080fd5b50610142600160a060020a03600435166024356104f7565b005b34801561015057600080fd5b506101596105c3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019357818101518382015260200161017b565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101f2600160a060020a03600435166024356105fa565b604080519115158252519081900360200190f35b34801561021257600080fd5b506101f2610660565b34801561022757600080fd5b50610230610670565b60408051918252519081900360200190f35b34801561024e57600080fd5b506101f2600160a060020a036004358116906024351660443561067f565b34801561027857600080fd5b50610281610831565b6040805160ff9092168252519081900360200190f35b3480156102a357600080fd5b506102ac610836565b60408051600160e060020a039092168252519081900360200190f35b3480156102d457600080fd5b50610230600160a060020a0360043516610843565b3480156102f557600080fd5b50610142600160e060020a0360043516600160a060020a0360243516610855565b34801561032257600080fd5b50610142600160a060020a03600435166024351515610977565b34801561034857600080fd5b506102306109b9565b34801561035d57600080fd5b50610230600160a060020a03600435166109bf565b34801561037e57600080fd5b506103876109fa565b60408051600160a060020a039092168252519081900360200190f35b3480156103af57600080fd5b50610159610a09565b3480156103c457600080fd5b50610142600160a060020a0360043516602435610a40565b3480156103e857600080fd5b506101f2600160a060020a0360043516602435610a80565b34801561040c57600080fd5b50610142600160a060020a0360043516602435610bce565b34801561043057600080fd5b50610142600160a060020a0360043516610c0f565b34801561045157600080fd5b50610142600160a060020a0360043516600160e060020a0360243516610c39565b34801561047e57600080fd5b506101f260048035600160a060020a0316906024803591604435918201910135610e4d565b3480156104af57600080fd5b50610230600160a060020a0360043581169060243516610f65565b3480156104d657600080fd5b50610142600160e060020a0360043516600160a060020a0360243516610f90565b600654600160a060020a0316331461050e57600080fd5b600160a060020a03821630141561052457600080fd5b600654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519184169163a9059cbb916044808201926020929091908290030181600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506040513d60208110156105bd57600080fd5b50505050565b60408051808201909152600c81527f5669616c73206f6620476f6f0000000000000000000000000000000000000000602082015281565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60065460a060020a900460ff1681565b600454600160e060020a031690565b60008061068b85611067565b6801236efcbcbb3400008311156106a157600080fd5b50600160a060020a038416600090815260016020908152604080832033845290915290205482906106e190600160e060020a03831663ffffffff6111f616565b600160a060020a038616600081815260016020908152604080832033845282528083209490945591815290819052205461072a90600160e060020a03168263ffffffff61120816565b600160a060020a03868116600081815260208181526040918290208054600160e060020a031916600160e060020a0396871617905581519486168552905192881693919260008051602061131e8339815191529281900390910190a3600160a060020a03841615156107bd5760048054600160e060020a0380821684900316600160e060020a0319909116179055610826565b600160a060020a0384166000908152602081905260409020546107ef90600160e060020a03168263ffffffff61122016565b600160a060020a03851660009081526020819052604090208054600160e060020a031916600160e060020a03929092169190911790555b506001949350505050565b600c81565b6801236efcbcbb34000081565b60026020526000908152604090205481565b60065460009060a060020a900460ff161561086f57610972565b3360009081526003602052604090205460ff16151561088d57600080fd5b5060045482906801236efcbcbb340000906108b790600160e060020a03168363ffffffff61122016565b600160e060020a03161061090257506006805474ff0000000000000000000000000000000000000000191660a060020a179055600454600160e060020a03166801236efcbcbb340000035b600160a060020a0382166000818152602081815260408083208054600160e060020a0380821688018116600160e060020a0319928316179092556004805480841689018416921691909117905581519086168152905160008051602061131e833981519152929181900390910190a35b505050565b600654600160a060020a0316331461098e57600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b60055481565b60006109ca82611242565b600160a060020a038316600090815260208190526040902054600160e060020a0390811691909101169050919050565b600654600160a060020a031681565b60408051808201909152600381527f474f4f0000000000000000000000000000000000000000000000000000000000602082015281565b3360009081526003602052604090205460ff161515610a5e57600080fd5b600160a060020a03909116600090815260026020526040902080549091019055565b600080610a8c33611067565b6801236efcbcbb340000831115610aa257600080fd5b50336000908152602081905260409020548290610ace90600160e060020a03168263ffffffff61120816565b33600081815260208181526040918290208054600160e060020a031916600160e060020a03958616179055815193851684529051600160a060020a0388169360008051602061131e83398151915292908290030190a3600160a060020a0384161515610b5b5760048054600160e060020a0380821684900316600160e060020a0319909116179055610bc4565b600160a060020a038416600090815260208190526040902054610b8d90600160e060020a03168263ffffffff61122016565b600160a060020a03851660009081526020819052604090208054600160e060020a031916600160e060020a03929092169190911790555b5060019392505050565b3360009081526003602052604090205460ff161515610bec57600080fd5b600160a060020a0390911660009081526002602052604090208054919091039055565b3360009081526003602052604090205460ff161515610c2d57600080fd5b610c3681611067565b50565b6000610c43611306565b33600090815260036020526040812054819060ff161515610c6357600080fd5b610c6c86611242565b600160a060020a03871660009081526020818152604091829020825180840190935254600160e060020a0390811683524263ffffffff169183019190915291955093508085169086161115610d365760048054600160e060020a03198116868803600160e060020a039283168190038316919091179092558451919350610cf4911683611208565b600160e060020a03908116845260408051918416825251600091600160a060020a0389169160008051602061131e8339815191529181900360200190a3610df6565b5060048054600160e060020a03198116868603600160e060020a0392831681018316919091179092558351820116835260065460a060020a900460ff16158015610d935750600454600160e060020a03166801236efcbcbb340000145b15610dbd576006805474ff0000000000000000000000000000000000000000191660a060020a1790555b60408051600160e060020a03831681529051600160a060020a0388169160009160008051602061131e8339815191529181900360200190a35b5050600160a060020a0390931660009081526020818152604090912084518154929095015163ffffffff1660e060020a02600160e060020a03958616600160e060020a031990931692909217909416179092555050565b336000818152600160209081526040808320600160a060020a038916808552908352818420889055815188815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a40184848082843782019150509650505050505050600060405180830381600087803b158015610f4257600080fd5b505af1158015610f56573d6000803e3d6000fd5b50600198975050505050505050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600654600160a060020a03163314610fa757600080fd5b600554610fc390600160e060020a03841663ffffffff6111f616565b60055560048054600160e060020a03198116600160e060020a039182168501821617909155600160a060020a03821660009081526020819052604090205461100c911683611220565b600160a060020a0382166000818152602081815260408083208054600160e060020a031916600160e060020a0396871617905580519487168552519293919260008051602061131e8339815191529281900390910190a35050565b6000611071611306565b61107a83611242565b600160a060020a038416600090815260208181526040808320815180830190925254600160e060020a03808216835260e060020a90910463ffffffff169282019290925292945091925090831611156111885760048054600160e060020a03808216850116600160e060020a031990911617905560065460ff60a060020a9091041615801561111c5750600454600160e060020a03166801236efcbcbb340000145b15611146576006805474ff0000000000000000000000000000000000000000191660a060020a1790555b8051600160e060020a039083018116825260408051918416825251600160a060020a0385169160009160008051602061131e8339815191529181900360200190a35b42816020015163ffffffff1610156109725763ffffffff4281166020808401918252600160a060020a0386166000908152908190526040902083518154925190931660e060020a02600160e060020a03938416600160e060020a031990931692909217909216179055505050565b60008282111561120257fe5b50900390565b6000600160e060020a03808416908316111561120257fe5b6000828201600160e060020a03808516908216101561123b57fe5b9392505050565b600654600090819060a060020a900460ff161561125e57611300565b50600160a060020a03821660009081526020819052604081205460e060020a900463ffffffff1690811180156112995750428163ffffffff16105b156112c457600160a060020a03831660009081526002602052604090205463ffffffff821642030291505b6004546801236efcbcbb340000600160e060020a0391821684019091161061130057600454600160e060020a03166801236efcbcbb3400000391505b50919050565b6040805180820190915260008082526020820152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582002546b010375af22cef683c3c44e5aff942583d7506e17ddbc79e0483e8085190029

Deployed Bytecode

0x6080604052600436106101195763ffffffff60e060020a60003504166302b45474811461011e57806306fdde0314610144578063095ea7b3146101ce5780630a4bbb681461020657806318160ddd1461021b57806323b872dd14610242578063313ce5671461026c57806332cb6b0c1461029757806333958b30146102c85780634f03f17c146102e9578063558a7297146103165780636816521a1461033c57806370a08231146103515780638da5cb5b1461037257806395d89b41146103a3578063a732f9ac146103b8578063a9059cbb146103dc578063add1dcfa14610400578063b5967e1614610424578063bb002ba814610445578063cae9ca5114610472578063dd62ed3e146104a3578063f7b04ba5146104ca575b600080fd5b34801561012a57600080fd5b50610142600160a060020a03600435166024356104f7565b005b34801561015057600080fd5b506101596105c3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019357818101518382015260200161017b565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101f2600160a060020a03600435166024356105fa565b604080519115158252519081900360200190f35b34801561021257600080fd5b506101f2610660565b34801561022757600080fd5b50610230610670565b60408051918252519081900360200190f35b34801561024e57600080fd5b506101f2600160a060020a036004358116906024351660443561067f565b34801561027857600080fd5b50610281610831565b6040805160ff9092168252519081900360200190f35b3480156102a357600080fd5b506102ac610836565b60408051600160e060020a039092168252519081900360200190f35b3480156102d457600080fd5b50610230600160a060020a0360043516610843565b3480156102f557600080fd5b50610142600160e060020a0360043516600160a060020a0360243516610855565b34801561032257600080fd5b50610142600160a060020a03600435166024351515610977565b34801561034857600080fd5b506102306109b9565b34801561035d57600080fd5b50610230600160a060020a03600435166109bf565b34801561037e57600080fd5b506103876109fa565b60408051600160a060020a039092168252519081900360200190f35b3480156103af57600080fd5b50610159610a09565b3480156103c457600080fd5b50610142600160a060020a0360043516602435610a40565b3480156103e857600080fd5b506101f2600160a060020a0360043516602435610a80565b34801561040c57600080fd5b50610142600160a060020a0360043516602435610bce565b34801561043057600080fd5b50610142600160a060020a0360043516610c0f565b34801561045157600080fd5b50610142600160a060020a0360043516600160e060020a0360243516610c39565b34801561047e57600080fd5b506101f260048035600160a060020a0316906024803591604435918201910135610e4d565b3480156104af57600080fd5b50610230600160a060020a0360043581169060243516610f65565b3480156104d657600080fd5b50610142600160e060020a0360043516600160a060020a0360243516610f90565b600654600160a060020a0316331461050e57600080fd5b600160a060020a03821630141561052457600080fd5b600654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519184169163a9059cbb916044808201926020929091908290030181600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506040513d60208110156105bd57600080fd5b50505050565b60408051808201909152600c81527f5669616c73206f6620476f6f0000000000000000000000000000000000000000602082015281565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60065460a060020a900460ff1681565b600454600160e060020a031690565b60008061068b85611067565b6801236efcbcbb3400008311156106a157600080fd5b50600160a060020a038416600090815260016020908152604080832033845290915290205482906106e190600160e060020a03831663ffffffff6111f616565b600160a060020a038616600081815260016020908152604080832033845282528083209490945591815290819052205461072a90600160e060020a03168263ffffffff61120816565b600160a060020a03868116600081815260208181526040918290208054600160e060020a031916600160e060020a0396871617905581519486168552905192881693919260008051602061131e8339815191529281900390910190a3600160a060020a03841615156107bd5760048054600160e060020a0380821684900316600160e060020a0319909116179055610826565b600160a060020a0384166000908152602081905260409020546107ef90600160e060020a03168263ffffffff61122016565b600160a060020a03851660009081526020819052604090208054600160e060020a031916600160e060020a03929092169190911790555b506001949350505050565b600c81565b6801236efcbcbb34000081565b60026020526000908152604090205481565b60065460009060a060020a900460ff161561086f57610972565b3360009081526003602052604090205460ff16151561088d57600080fd5b5060045482906801236efcbcbb340000906108b790600160e060020a03168363ffffffff61122016565b600160e060020a03161061090257506006805474ff0000000000000000000000000000000000000000191660a060020a179055600454600160e060020a03166801236efcbcbb340000035b600160a060020a0382166000818152602081815260408083208054600160e060020a0380821688018116600160e060020a0319928316179092556004805480841689018416921691909117905581519086168152905160008051602061131e833981519152929181900390910190a35b505050565b600654600160a060020a0316331461098e57600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b60055481565b60006109ca82611242565b600160a060020a038316600090815260208190526040902054600160e060020a0390811691909101169050919050565b600654600160a060020a031681565b60408051808201909152600381527f474f4f0000000000000000000000000000000000000000000000000000000000602082015281565b3360009081526003602052604090205460ff161515610a5e57600080fd5b600160a060020a03909116600090815260026020526040902080549091019055565b600080610a8c33611067565b6801236efcbcbb340000831115610aa257600080fd5b50336000908152602081905260409020548290610ace90600160e060020a03168263ffffffff61120816565b33600081815260208181526040918290208054600160e060020a031916600160e060020a03958616179055815193851684529051600160a060020a0388169360008051602061131e83398151915292908290030190a3600160a060020a0384161515610b5b5760048054600160e060020a0380821684900316600160e060020a0319909116179055610bc4565b600160a060020a038416600090815260208190526040902054610b8d90600160e060020a03168263ffffffff61122016565b600160a060020a03851660009081526020819052604090208054600160e060020a031916600160e060020a03929092169190911790555b5060019392505050565b3360009081526003602052604090205460ff161515610bec57600080fd5b600160a060020a0390911660009081526002602052604090208054919091039055565b3360009081526003602052604090205460ff161515610c2d57600080fd5b610c3681611067565b50565b6000610c43611306565b33600090815260036020526040812054819060ff161515610c6357600080fd5b610c6c86611242565b600160a060020a03871660009081526020818152604091829020825180840190935254600160e060020a0390811683524263ffffffff169183019190915291955093508085169086161115610d365760048054600160e060020a03198116868803600160e060020a039283168190038316919091179092558451919350610cf4911683611208565b600160e060020a03908116845260408051918416825251600091600160a060020a0389169160008051602061131e8339815191529181900360200190a3610df6565b5060048054600160e060020a03198116868603600160e060020a0392831681018316919091179092558351820116835260065460a060020a900460ff16158015610d935750600454600160e060020a03166801236efcbcbb340000145b15610dbd576006805474ff0000000000000000000000000000000000000000191660a060020a1790555b60408051600160e060020a03831681529051600160a060020a0388169160009160008051602061131e8339815191529181900360200190a35b5050600160a060020a0390931660009081526020818152604090912084518154929095015163ffffffff1660e060020a02600160e060020a03958616600160e060020a031990931692909217909416179092555050565b336000818152600160209081526040808320600160a060020a038916808552908352818420889055815188815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a40184848082843782019150509650505050505050600060405180830381600087803b158015610f4257600080fd5b505af1158015610f56573d6000803e3d6000fd5b50600198975050505050505050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600654600160a060020a03163314610fa757600080fd5b600554610fc390600160e060020a03841663ffffffff6111f616565b60055560048054600160e060020a03198116600160e060020a039182168501821617909155600160a060020a03821660009081526020819052604090205461100c911683611220565b600160a060020a0382166000818152602081815260408083208054600160e060020a031916600160e060020a0396871617905580519487168552519293919260008051602061131e8339815191529281900390910190a35050565b6000611071611306565b61107a83611242565b600160a060020a038416600090815260208181526040808320815180830190925254600160e060020a03808216835260e060020a90910463ffffffff169282019290925292945091925090831611156111885760048054600160e060020a03808216850116600160e060020a031990911617905560065460ff60a060020a9091041615801561111c5750600454600160e060020a03166801236efcbcbb340000145b15611146576006805474ff0000000000000000000000000000000000000000191660a060020a1790555b8051600160e060020a039083018116825260408051918416825251600160a060020a0385169160009160008051602061131e8339815191529181900360200190a35b42816020015163ffffffff1610156109725763ffffffff4281166020808401918252600160a060020a0386166000908152908190526040902083518154925190931660e060020a02600160e060020a03938416600160e060020a031990931692909217909216179055505050565b60008282111561120257fe5b50900390565b6000600160e060020a03808416908316111561120257fe5b6000828201600160e060020a03808516908216101561123b57fe5b9392505050565b600654600090819060a060020a900460ff161561125e57611300565b50600160a060020a03821660009081526020819052604081205460e060020a900463ffffffff1690811180156112995750428163ffffffff16105b156112c457600160a060020a03831660009081526002602052604090205463ffffffff821642030291505b6004546801236efcbcbb340000600160e060020a0391821684019091161061130057600454600160e060020a03166801236efcbcbb3400000391505b50919050565b6040805180820190915260008082526020820152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582002546b010375af22cef683c3c44e5aff942583d7506e17ddbc79e0483e8085190029

Swarm Source

bzzr://02546b010375af22cef683c3c44e5aff942583d7506e17ddbc79e0483e808519
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.