Sponsored:   [Largest VC Funded] TEMCO, millions sold out in seconds. Join TEMCO's last presale at CoinBene!
Contract Overview | AION
Balance: 0 Ether
Ether Value: $0
Transactions: 129223 txns
Token Tracker: AION (AION)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x50b26685bc788e164d940f0a73770f4b9196b052at txn 0xe940b0c0de5a3f9b0fedd42b12c0ffb3f4f4a046a52beb3b4b4eab71c2dd62bc
Token Balance:
 Latest 25 transactions from a total of 129223 transactions
(+2 PendingTxns)

TxHash Age From To Value [TxFee]
0x69485bcdbbd459c4b88cd7245540695df64310bba09f83ff1264667c34dc5ba1(pending)0x216bcd81c042b9877cb25e651c0ee2873ed74769  IN  0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether(Pending)
0xd2efd0d9b3d1d323390eeb0a0eadeb4afb7d98611debda7f4ab15dd691fc117d(pending)0x00ba01d8e19fcc210540627e079c4b8c951b2d3b  IN  0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether(Pending)
0xedd20557b4bab3245e7f3a48723d0dd340811598f44fc95e9e253b4699d1e4201 hr 1 min ago0x1d063a67a0231d1524ee687aa990c08a8943d644  IN   AION0 Ether0.000686112
0xcd5047dbcf536ea0bb732cda0facf9511b4d11f46ff6f74299af5dfcdeaf13952 hrs 25 mins ago0x1d063a67a0231d1524ee687aa990c08a8943d644  IN   AION0 Ether0.000418644
0xea39b43f3bda9d597a03b6518e1c924135918240a4655ecd2cb483c4c8a660582 hrs 26 mins ago0x72ac54ce3c1ad88cd4b8db36467556d09cdba75e  IN   AION0 Ether0.000654864
0xc7fe28a6c13b1625c655d592467689df2b923daf52945e49b162faf9a839ba572 hrs 40 mins ago0x1d063a67a0231d1524ee687aa990c08a8943d644  IN   AION0 Ether0.000454363
0xc377e475e2237fc1c4a48588717604b6a5185e5152a962cbc3b93c3606d3af462 hrs 42 mins ago0xefe0862a40eb5417ec14cfd7090838c09aeb6c6d  IN   AION0 Ether0.000709436
0xa1bd30724ae96c6d7034e30555d5581d38d1c4078d44be6b2e7c3abe0db068c62 hrs 49 mins ago0x7dede2f1641f7a4682209174ac9d78c56f9a74c6  IN   AION0 Ether0.001629258
0xe084a06bbf48fff49d3081c8b3f75366af1c22f5fa3ccfaff6c70f192f7d4a532 hrs 58 mins ago0x530f3806d9ac376c0140a4bbb5a705bcf3a49460  IN   AION0 Ether0.001808018
0x9f0445d4020abbebf683ae73b05058e29a30030ecbf02df07e9062b7a3742de93 hrs ago0xc6dc8443651f047c3f88d114cd0c120ead06200b  IN   AION0 Ether0.005850702
0x1852391027594dd284be65bc89f02f7f6e010e6c241d57cef9add7b46556775a3 hrs 8 mins ago0x755f2fc9081e29f40f2dc139e2a843ffa7161aa5  IN   AION0 Ether0.002887038
0x1d33977ec90eda59aae1e9447b7124b5ebbe9ee8c305ae10822dce92de0e27b73 hrs 9 mins ago0xd4822822c7f9ed1c83be1dec9279dcfa6a0f90f3  IN   AION0 Ether0.002887038
0xb7ad55e0809c52386fb0fe38f002df723675ff37ddc53b5a66ef885fda92c4713 hrs 11 mins ago0x7b12c776f2e062614627d206dd4ea15be57d2121  IN   AION0 Ether0.002887038
0x7d5f42a2a8d9f7d9cf0e9fbc53b9ff9b599cd9a7c72493425f0fb120b78b21723 hrs 12 mins ago0xb4ca4b0f106ec0c4136e6a9fe42c14ce70dc340e  IN   AION0 Ether0.002887038
0x56df148c1ecce40731b5a252b5dad688f50becd2304e6eb0513c626b378ea0303 hrs 14 mins ago0xe0f3841a7478d08c8d892d93690c8f235f713c35  IN   AION0 Ether0.002887038
0x7b51fa3f9c9849b97d84530f46b125b0f95180fe00e22b9255b9dbcfe90b77aa6 hrs 31 mins ago0x1d063a67a0231d1524ee687aa990c08a8943d644  IN   AION0 Ether0.000383757
0xca7bce1203a6ae7f0c2d85c9c403385c0ebf1ffd6b5a6ad7fb3e11557cf739946 hrs 33 mins ago0x599503fb4de44fe701dcd4fd3859e76ee6bfa24b  IN   AION0 Ether0.000600292
0xed2b6fce8aa38b1cebdc12fa2b6df6e32716aac9dc95b62c419cc5b98b1e71096 hrs 42 mins ago0x1d063a67a0231d1524ee687aa990c08a8943d644  IN   AION0 Ether0.000384461
0xbcf06e633d87be21687f25a8fc3ac4b57b05529aaf019185924182eb1009aef46 hrs 43 mins ago0x94e6380e513520f2f5e355a61786224d73766852  IN   AION0 Ether0.000600292
0x59e6d8c1ea9a20cc644c2baefc74df47c461e3d2edafea3d6252bfb7162ba15a6 hrs 56 mins ago0xa6b242846acf1b077d032e47c753ab100684c0b1  IN   AION0 Ether0.001805394
0x34c7544da25f2a53dd474873f2813189074bcedd1ef20e14d7479ff340f3e97f7 hrs 5 mins ago0xb17623f72b2aaf68376d3d15e9efbe17eb40ecc0  IN   AION0 Ether0.001808018
0xcfbbe3a2be54c8df23969291f2c3b5d4c59f7cd46d3863d752dcdc84a59c4f1f7 hrs 7 mins ago0xb17623f72b2aaf68376d3d15e9efbe17eb40ecc0  IN   AION0 Ether0.001794898
0xef37d1565c58bd7fbd6ea3fde8b2396903338982b13f7bb6a9450c5edfc58d3d7 hrs 36 mins ago0x5582e9dfb2b9886ab4ea412f420fecb2384da935  IN   AION0 Ether0.00088743
0x957c84a941cc9dd8eb880823343f77d65af2d99c687f326137a3173612562af79 hrs 38 mins ago0x1d063a67a0231d1524ee687aa990c08a8943d644  IN   AION0 Ether0.00034887
0x522364f47bdd96471550d580398ef1c2fba94b6d87f34a84d82d3e757ba24c4b9 hrs 39 mins ago0x8778b9e79518a21b9c76edae937ff5d7f56b71e5  IN   AION0 Ether0.00054572
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Token
Compiler Text: v0.4.17+commit.bdeb9e52
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity >=0.4.10;

// from Zeppelin
contract SafeMath {
    function safeMul(uint a, uint b) internal returns (uint) {
        uint c = a * b;
        require(a == 0 || c / a == b);
        return c;
    }

    function safeSub(uint a, uint b) internal returns (uint) {
        require(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b) internal returns (uint) {
        uint c = a + b;
        require(c>=a && c>=b);
        return c;
    }
}

contract Owned {
    address public owner;
    address newOwner;

    function Owned() {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function changeOwner(address _newOwner) onlyOwner {
        newOwner = _newOwner;
    }

    function acceptOwnership() {
        if (msg.sender == newOwner) {
            owner = newOwner;
        }
    }
}

contract IToken {
    function transfer(address _to, uint _value) returns (bool);
    function balanceOf(address owner) returns(uint);
}

// In case someone accidentally sends token to one of these contracts,
// add a way to get them back out.
contract TokenReceivable is Owned {
    function claimTokens(address _token, address _to) onlyOwner returns (bool) {
        IToken token = IToken(_token);
        return token.transfer(_to, token.balanceOf(this));
    }
}

contract EventDefinitions {
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    event Burn(address indexed from, bytes32 indexed to, uint value);
    event Claimed(address indexed claimer, uint value);
}

contract Pausable is Owned {
    bool public paused;

    function pause() onlyOwner {
        paused = true;
    }

    function unpause() onlyOwner {
        paused = false;
    }

    modifier notPaused() {
        require(!paused);
        _;
    }
}

contract Finalizable is Owned {
    bool public finalized;

    function finalize() onlyOwner {
        finalized = true;
    }

    modifier notFinalized() {
        require(!finalized);
        _;
    }
}

contract Ledger is Owned, SafeMath, Finalizable {
    Controller public controller;
    mapping(address => uint) public balanceOf;
    mapping (address => mapping (address => uint)) public allowance;
    uint public totalSupply;
    uint public mintingNonce;
    bool public mintingStopped;

    /**
     * Used for updating the contract with proofs. Note that the logic
     * for guarding against unwanted actions happens in the controller. We only
     * specify onlyController here.
     * @notice: not yet used
     */
    mapping(uint256 => bytes32) public proofs;

    /**
     * If bridge delivers currency back from the other network, it may be that we
     * want to lock it until the user is able to "claim" it. This mapping would store the
     * state of the unclaimed currency.
     * @notice: not yet used
     */
    mapping(address => uint256) public locked;

    /**
     * As a precautionary measure, we may want to include a structure to store necessary
     * data should we find that we require additional information.
     * @notice: not yet used
     */
    mapping(bytes32 => bytes32) public metadata;

    /**
     * Set by the controller to indicate where the transfers should go to on a burn
     */
    address public burnAddress;

    /**
     * Mapping allowing us to identify the bridge nodes, in the current setup
     * manipulation of this mapping is only accessible by the parameter.
     */
    mapping(address => bool) public bridgeNodes;

    // functions below this line are onlyOwner

    function Ledger() {
    }

    function setController(address _controller) onlyOwner notFinalized {
        controller = Controller(_controller);
    }

    /**
     * @dev         To be called once minting is complete, disables minting.  
     */
    function stopMinting() onlyOwner {
        mintingStopped = true;
    }

    /**
     * @dev         Used to mint a batch of currency at once.
     * 
     * @notice      This gives us a maximum of 2^96 tokens per user.
     * @notice      Expected packed structure is [ADDR(20) | VALUE(12)].
     *
     * @param       nonce   The minting nonce, an incorrect nonce is rejected.
     * @param       bits    An array of packed bytes of address, value mappings.  
     *
     */
    function multiMint(uint nonce, uint256[] bits) onlyOwner {
        require(!mintingStopped);
        if (nonce != mintingNonce) return;
        mintingNonce += 1;
        uint256 lomask = (1 << 96) - 1;
        uint created = 0;
        for (uint i=0; i<bits.length; i++) {
            address a = address(bits[i]>>96);
            uint value = bits[i]&lomask;
            balanceOf[a] = balanceOf[a] + value;
            controller.ledgerTransfer(0, a, value);
            created += value;
        }
        totalSupply += created;
    }

    // functions below this line are onlyController

    modifier onlyController() {
        require(msg.sender == address(controller));
        _;
    }

    function transfer(address _from, address _to, uint _value) onlyController returns (bool success) {
        if (balanceOf[_from] < _value) return false;

        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        return true;
    }

    function transferFrom(address _spender, address _from, address _to, uint _value) onlyController returns (bool success) {
        if (balanceOf[_from] < _value) return false;

        var allowed = allowance[_from][_spender];
        if (allowed < _value) return false;

        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        allowance[_from][_spender] = safeSub(allowed, _value);
        return true;
    }

    function approve(address _owner, address _spender, uint _value) onlyController returns (bool success) {
        // require user to set to zero before resetting to nonzero
        if ((_value != 0) && (allowance[_owner][_spender] != 0)) {
            return false;
        }

        allowance[_owner][_spender] = _value;
        return true;
    }

    function increaseApproval (address _owner, address _spender, uint _addedValue) onlyController returns (bool success) {
        uint oldValue = allowance[_owner][_spender];
        allowance[_owner][_spender] = safeAdd(oldValue, _addedValue);
        return true;
    }

    function decreaseApproval (address _owner, address _spender, uint _subtractedValue) onlyController returns (bool success) {
        uint oldValue = allowance[_owner][_spender];
        if (_subtractedValue > oldValue) {
            allowance[_owner][_spender] = 0;
        } else {
            allowance[_owner][_spender] = safeSub(oldValue, _subtractedValue);
        }
        return true;
    }

    function setProof(uint256 _key, bytes32 _proof) onlyController {
        proofs[_key] = _proof;
    }

    function setLocked(address _key, uint256 _value) onlyController {
        locked[_key] = _value;
    }

    function setMetadata(bytes32 _key, bytes32 _value) onlyController {
        metadata[_key] = _value;
    }

    /**
     * Burn related functionality
     */

    /**
     * @dev        sets the burn address to the new value
     *
     * @param      _address  The address
     *
     */
    function setBurnAddress(address _address) onlyController {
        burnAddress = _address;
    }

    function setBridgeNode(address _address, bool enabled) onlyController {
        bridgeNodes[_address] = enabled;
    }
}

contract ControllerEventDefinitions {
    /**
     * An internal burn event, emitted by the controller contract
     * which the bridges could be listening to.
     */
    event ControllerBurn(address indexed from, bytes32 indexed to, uint value);
}

/**
 * @title Controller for business logic between the ERC20 API and State
 *
 * Controller is responsible for the business logic that sits in between
 * the Ledger (model) and the Token (view). Presently, adherence to this model
 * is not strict, but we expect future functionality (Burning, Claiming) to adhere
 * to this model more closely.
 * 
 * The controller must be linked to a Token and Ledger to become functional.
 * 
 */
contract Controller is Owned, Finalizable, ControllerEventDefinitions {
    Ledger public ledger;
    Token public token;
    address public burnAddress;

    function Controller() {
    }

    // functions below this line are onlyOwner


    function setToken(address _token) onlyOwner {
        token = Token(_token);
    }

    function setLedger(address _ledger) onlyOwner {
        ledger = Ledger(_ledger);
    }

    /**
     * @dev         Sets the burn address burn values get moved to. Only call
     *              after token and ledger contracts have been hooked up. Ensures
     *              that all three values are set atomically.
     *             
     * @notice      New Functionality
     *
     * @param       _address    desired address
     *
     */
    function setBurnAddress(address _address) onlyOwner {
        burnAddress = _address;
        ledger.setBurnAddress(_address);
        token.setBurnAddress(_address);
    }

    modifier onlyToken() {
        require(msg.sender == address(token));
        _;
    }

    modifier onlyLedger() {
        require(msg.sender == address(ledger));
        _;
    }

    function totalSupply() constant returns (uint) {
        return ledger.totalSupply();
    }

    function balanceOf(address _a) constant returns (uint) {
        return ledger.balanceOf(_a);
    }

    function allowance(address _owner, address _spender) constant returns (uint) {
        return ledger.allowance(_owner, _spender);
    }

    // functions below this line are onlyLedger

    // let the ledger send transfer events (the most obvious case
    // is when we mint directly to the ledger and need the Transfer()
    // events to appear in the token)
    function ledgerTransfer(address from, address to, uint val) onlyLedger {
        token.controllerTransfer(from, to, val);
    }

    // functions below this line are onlyToken

    function transfer(address _from, address _to, uint _value) onlyToken returns (bool success) {
        return ledger.transfer(_from, _to, _value);
    }

    function transferFrom(address _spender, address _from, address _to, uint _value) onlyToken returns (bool success) {
        return ledger.transferFrom(_spender, _from, _to, _value);
    }

    function approve(address _owner, address _spender, uint _value) onlyToken returns (bool success) {
        return ledger.approve(_owner, _spender, _value);
    }

    function increaseApproval (address _owner, address _spender, uint _addedValue) onlyToken returns (bool success) {
        return ledger.increaseApproval(_owner, _spender, _addedValue);
    }

    function decreaseApproval (address _owner, address _spender, uint _subtractedValue) onlyToken returns (bool success) {
        return ledger.decreaseApproval(_owner, _spender, _subtractedValue);
    }

    /**
     * End Original Contract
     * Below is new functionality
     */

    /**
     * @dev        Enables burning on the token contract
     */
    function enableBurning() onlyOwner {
        token.enableBurning();
    }

    /**
     * @dev        Disables burning on the token contract
     */
    function disableBurning() onlyOwner {
        token.disableBurning();
    }

    // public functions

    /**
     * @dev         
     *
     * @param       _from       account the value is burned from
     * @param       _to         the address receiving the value
     * @param       _amount     the value amount
     * 
     * @return      success     operation successful or not.
     */ 
    function burn(address _from, bytes32 _to, uint _amount) onlyToken returns (bool success) {
        if (ledger.transfer(_from, burnAddress, _amount)) {
            ControllerBurn(_from, _to, _amount);
            token.controllerBurn(_from, _to, _amount);
            return true;
        }
        return false;
    }

    /**
     * @dev         Implementation for claim mechanism. Note that this mechanism has not yet
     *              been implemented. This function is only here for future expansion capabilities.
     *              Presently, just returns false to indicate failure.
     *              
     * @notice      Only one of claimByProof() or claim() will potentially be activated in the future.
     *              Depending on the functionality required and route selected. 
     *
     * @param       _claimer    The individual claiming the tokens (also the recipient of said tokens).
     * @param       data        The input data required to release the tokens.
     * @param       success     The proofs associated with the data, to indicate the legitimacy of said data.
     * @param       number      The block number the proofs and data correspond to.
     *
     * @return      success     operation successful or not.
     * 
     */
    function claimByProof(address _claimer, bytes32[] data, bytes32[] proofs, uint256 number)
        onlyToken
        returns (bool success) {
        return false;
    }

    /**
     * @dev         Implementation for an alternative claim mechanism, in which the participant
     *              is not required to confirm through proofs. Note that this mechanism has not
     *              yet been implemented.
     *              
     * @notice      Only one of claimByProof() or claim() will potentially be activated in the future.
     *              Depending on the functionality required and route selected.
     * 
     * @param       _claimer    The individual claiming the tokens (also the recipient of said tokens).
     * 
     * @return      success     operation successful or not.
     */
    function claim(address _claimer) onlyToken returns (bool success) {
        return false;
    }
}

contract Token is Finalizable, TokenReceivable, SafeMath, EventDefinitions, Pausable {
    // Set these appropriately before you deploy
    string constant public name = "AION";
    uint8 constant public decimals = 8;
    string constant public symbol = "AION";
    Controller public controller;
    string public motd;
    event Motd(string message);

    address public burnAddress; //@ATTENTION: set this to a correct value
    bool public burnable = false;

    // functions below this line are onlyOwner

    // set "message of the day"
    function setMotd(string _m) onlyOwner {
        motd = _m;
        Motd(_m);
    }

    function setController(address _c) onlyOwner notFinalized {
        controller = Controller(_c);
    }

    // functions below this line are public

    function balanceOf(address a) constant returns (uint) {
        return controller.balanceOf(a);
    }

    function totalSupply() constant returns (uint) {
        return controller.totalSupply();
    }

    function allowance(address _owner, address _spender) constant returns (uint) {
        return controller.allowance(_owner, _spender);
    }

    function transfer(address _to, uint _value) notPaused returns (bool success) {
        if (controller.transfer(msg.sender, _to, _value)) {
            Transfer(msg.sender, _to, _value);
            return true;
        }
        return false;
    }

    function transferFrom(address _from, address _to, uint _value) notPaused returns (bool success) {
        if (controller.transferFrom(msg.sender, _from, _to, _value)) {
            Transfer(_from, _to, _value);
            return true;
        }
        return false;
    }

    function approve(address _spender, uint _value) notPaused returns (bool success) {
        // promote safe user behavior
        if (controller.approve(msg.sender, _spender, _value)) {
            Approval(msg.sender, _spender, _value);
            return true;
        }
        return false;
    }

    function increaseApproval (address _spender, uint _addedValue) notPaused returns (bool success) {
        if (controller.increaseApproval(msg.sender, _spender, _addedValue)) {
            uint newval = controller.allowance(msg.sender, _spender);
            Approval(msg.sender, _spender, newval);
            return true;
        }
        return false;
    }

    function decreaseApproval (address _spender, uint _subtractedValue) notPaused returns (bool success) {
        if (controller.decreaseApproval(msg.sender, _spender, _subtractedValue)) {
            uint newval = controller.allowance(msg.sender, _spender);
            Approval(msg.sender, _spender, newval);
            return true;
        }
        return false;
    }

    // modifier onlyPayloadSize(uint numwords) {
    //     assert(msg.data.length >= numwords * 32 + 4);
    //     _;
    // }

    // functions below this line are onlyController

    modifier onlyController() {
        assert(msg.sender == address(controller));
        _;
    }

    // In the future, when the controller supports multiple token
    // heads, allow the controller to reconstitute the transfer and
    // approval history.

    function controllerTransfer(address _from, address _to, uint _value) onlyController {
        Transfer(_from, _to, _value);
    }

    function controllerApprove(address _owner, address _spender, uint _value) onlyController {
        Approval(_owner, _spender, _value);
    }

    /**
     * @dev        Burn event possibly called by the controller on a burn. This is
     *             the public facing event that anyone can track, the bridges listen
     *             to an alternative event emitted by the controller.
     *
     * @param      _from   address that coins are burned from
     * @param      _to     address (on other network) that coins are received by
     * @param      _value  amount of value to be burned
     *
     * @return     { description_of_the_return_value }
     */
    function controllerBurn(address _from, bytes32 _to, uint256 _value) onlyController {
        Burn(_from, _to, _value);
    }

    function controllerClaim(address _claimer, uint256 _value) onlyController {
        Claimed(_claimer, _value);
    }

    /**
     * @dev        Sets the burn address to a new value
     *
     * @param      _address  The address
     *
     */
    function setBurnAddress(address _address) onlyController {
        burnAddress = _address;
    }

    /**
     * @dev         Enables burning through burnable bool
     *
     */
    function enableBurning() onlyController {
        burnable = true;
    }

    /**
     * @dev         Disables burning through burnable bool
     *
     */
    function disableBurning() onlyController {
        burnable = false;
    }

    /**
     * @dev         Indicates that burning is enabled
     */
    modifier burnEnabled() {
        require(burnable == true);
        _;
    }

    /**
     * @dev         burn function, changed from original implementation. Public facing API
     *              indicating who the token holder wants to burn currency to and the amount.
     *
     * @param       _amount  The amount
     *
     */
    function burn(bytes32 _to, uint _amount) notPaused burnEnabled returns (bool success) {
        return controller.burn(msg.sender, _to, _amount);
    }

    /**
     * @dev         claim (quantumReceive) allows the user to "prove" some an ICT to the contract
     *              thereby thereby releasing the tokens into their account
     * 
     */
    function claimByProof(bytes32[] data, bytes32[] proofs, uint256 number) notPaused burnEnabled returns (bool success) {
        return controller.claimByProof(msg.sender, data, proofs, number);
    }

    /**
     * @dev         Simplified version of claim, just requires user to call to claim.
     *              No proof is needed, which version is chosen depends on our bridging model.
     *
     * @return      
     */
    function claim() notPaused burnEnabled returns (bool success) {
        return controller.claim(msg.sender);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes32[]"},{"name":"proofs","type":"bytes32[]"},{"name":"number","type":"uint256"}],"name":"claimByProof","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setBurnAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"motd","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_m","type":"string"}],"name":"setMotd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"}],"name":"claimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableBurning","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"bytes32"},{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_claimer","type":"address"},{"name":"_value","type":"uint256"}],"name":"controllerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"controllerApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_c","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableBurning","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"controllerTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"controllerBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"message","type":"string"}],"name":"Motd","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":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"bytes32"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"claimer","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Claimed","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526004805460a060020a60ff021916905560008054600160a060020a033316600160a060020a0319909116179055611746806100406000396000f300606060405236156101a65763ffffffff60e060020a60003504166306fdde0381146101ab578063095ea7b31461023557806318160ddd1461026b57806323b872dd14610290578063313ce567146102b8578063384d0b12146102e15780633f4ba83a146103725780634b0e7216146103875780634bb278f3146103a65780634e71d92d146103b95780635aab4ac8146103cc5780635c975abb146103df5780635fe59b9d146103f2578063661884631461044357806369ffa08a1461046557806370a082311461048a57806370d5ae05146104a95780637581a8e6146104d857806379ba5097146104eb5780637a408454146104fe57806380906b13146105175780638456cb59146105395780638da5cb5b1461054c5780638e339b661461055f57806392eefe9b1461058757806395d89b41146101ab57806398603cca146105a65780639b504387146105b9578063a07c7ce4146105e1578063a6f9dae1146105f4578063a9059cbb14610613578063b3f05b9714610635578063d73dd62314610648578063dd62ed3e1461066a578063eb81e95a1461068f578063f77c4791146106b4575b600080fd5b34156101b657600080fd5b6101be6106c7565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fa5780820151838201526020016101e2565b50505050905090810190601f1680156102275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561024057600080fd5b610257600160a060020a03600435166024356106fe565b604051901515815260200160405180910390f35b341561027657600080fd5b61027e6107fd565b60405190815260200160405180910390f35b341561029b57600080fd5b610257600160a060020a0360043581169060243516604435610867565b34156102c357600080fd5b6102cb61096e565b60405160ff909116815260200160405180910390f35b34156102ec57600080fd5b610257600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650509335935061097392505050565b341561037d57600080fd5b610385610ac3565b005b341561039257600080fd5b610385600160a060020a0360043516610aff565b34156103b157600080fd5b610385610b46565b34156103c457600080fd5b610257610b87565b34156103d757600080fd5b6101be610c15565b34156103ea57600080fd5b610257610cb3565b34156103fd57600080fd5b61038560046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cc395505050505050565b341561044e57600080fd5b610257600160a060020a0360043516602435610d8d565b341561047057600080fd5b610257600160a060020a0360043581169060243516610f0f565b341561049557600080fd5b61027e600160a060020a0360043516610ff4565b34156104b457600080fd5b6104bc61106f565b604051600160a060020a03909116815260200160405180910390f35b34156104e357600080fd5b61038561107e565b34156104f657600080fd5b6103856110bc565b341561050957600080fd5b610257600435602435611105565b341561052257600080fd5b610385600160a060020a03600435166024356111c3565b341561054457600080fd5b61038561121c565b341561055757600080fd5b6104bc61125e565b341561056a57600080fd5b610385600160a060020a036004358116906024351660443561126d565b341561059257600080fd5b610385600160a060020a03600435166112d1565b34156105b157600080fd5b610385611332565b34156105c457600080fd5b610385600160a060020a036004358116906024351660443561136a565b34156105ec57600080fd5b6102576113ce565b34156105ff57600080fd5b610385600160a060020a03600435166113de565b341561061e57600080fd5b610257600160a060020a0360043516602435611428565b341561064057600080fd5b61025761151d565b341561065357600080fd5b610257600160a060020a036004351660243561152d565b341561067557600080fd5b61027e600160a060020a03600435811690602435166115b5565b341561069a57600080fd5b610385600160a060020a0360043516602435604435611618565b34156106bf57600080fd5b6104bc611673565b60408051908101604052600481527f41494f4e00000000000000000000000000000000000000000000000000000000602082015281565b60015460009060a860020a900460ff161561071857600080fd5b600254600160a060020a031663e1f21c6733858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561078457600080fd5b6102c65a03f1151561079557600080fd5b50505060405180519050156107f35782600160a060020a031633600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405190815260200160405180910390a35060016107f7565b5060005b92915050565b600254600090600160a060020a03166318160ddd82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561084757600080fd5b6102c65a03f1151561085857600080fd5b50505060405180519150505b90565b60015460009060a860020a900460ff161561088157600080fd5b600254600160a060020a03166315dacbea3386868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b15156108f457600080fd5b6102c65a03f1151561090557600080fd5b50505060405180519050156109635782600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a3506001610967565b5060005b9392505050565b600881565b60015460009060a860020a900460ff161561098d57600080fd5b60045460a060020a900460ff1615156001146109a857600080fd5b600254600160a060020a0316635513a2ac338686866000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610a3a578082015183820152602001610a22565b50505050905001838103825285818151815260200191508051906020019060200280838360005b83811015610a79578082015183820152602001610a61565b505050509050019650505050505050602060405180830381600087803b1515610aa157600080fd5b6102c65a03f11515610ab257600080fd5b505050604051805195945050505050565b60005433600160a060020a03908116911614610ade57600080fd5b6001805475ff00000000000000000000000000000000000000000019169055565b60025433600160a060020a03908116911614610b1757fe5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610b6157600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a179055565b60015460009060a860020a900460ff1615610ba157600080fd5b60045460a060020a900460ff161515600114610bbc57600080fd5b600254600160a060020a0316631e83409a3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561084757600080fd5b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cab5780601f10610c8057610100808354040283529160200191610cab565b820191906000526020600020905b815481529060010190602001808311610c8e57829003601f168201915b505050505081565b60015460a860020a900460ff1681565b60005433600160a060020a03908116911614610cde57600080fd5b6003818051610cf1929160200190611682565b507f6e7666d68b6b7c619b2fe5a2c3dd0564bf3e02b0508b217d7a28ce5805583eab8160405160208082528190810183818151815260200191508051906020019080838360005b83811015610d50578082015183820152602001610d38565b50505050905090810190601f168015610d7d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b600154600090819060a860020a900460ff1615610da957600080fd5b600254600160a060020a031663f019c26733868660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610e1557600080fd5b6102c65a03f11515610e2657600080fd5b5050506040518051905015610f0357600254600160a060020a031663dd62ed3e338660006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610e9657600080fd5b6102c65a03f11515610ea757600080fd5b50505060405180519050905083600160a060020a031633600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a360019150610f08565b600091505b5092915050565b60008054819033600160a060020a03908116911614610f2d57600080fd5b5082600160a060020a03811663a9059cbb84826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f8d57600080fd5b6102c65a03f11515610f9e57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610aa157600080fd5b600254600090600160a060020a03166370a0823183836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561104f57600080fd5b6102c65a03f1151561106057600080fd5b50505060405180519392505050565b600454600160a060020a031681565b60025433600160a060020a0390811691161461109657fe5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60015433600160a060020a0390811691161415611103576001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b60015460009060a860020a900460ff161561111f57600080fd5b60045460a060020a900460ff16151560011461113a57600080fd5b600254600160a060020a0316634460fb6d33858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156111a257600080fd5b6102c65a03f115156111b357600080fd5b5050506040518051949350505050565b60025433600160a060020a039081169116146111db57fe5b81600160a060020a03167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8260405190815260200160405180910390a25050565b60005433600160a060020a0390811691161461123757600080fd5b6001805475ff000000000000000000000000000000000000000000191660a860020a179055565b600054600160a060020a031681565b60025433600160a060020a0390811691161461128557fe5b81600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a3505050565b60005433600160a060020a039081169116146112ec57600080fd5b60015460a060020a900460ff161561130357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025433600160a060020a0390811691161461134a57fe5b6004805474ff000000000000000000000000000000000000000019169055565b60025433600160a060020a0390811691161461138257fe5b81600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b60045460a060020a900460ff1681565b60005433600160a060020a039081169116146113f957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015460009060a860020a900460ff161561144257600080fd5b600254600160a060020a031663beabacc833858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156114ae57600080fd5b6102c65a03f115156114bf57600080fd5b50505060405180519050156107f35782600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060016107f7565b60015460a060020a900460ff1681565b600154600090819060a860020a900460ff161561154957600080fd5b600254600160a060020a031663bcdd612133868660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610e1557600080fd5b600254600090600160a060020a031663dd62ed3e8484846040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156111a257600080fd5b60025433600160a060020a0390811691161461163057fe5b81600160a060020a0384167fc3599666213715dfabdf658c56a97b9adfad2cd9689690c70c79b20bc61940c98360405190815260200160405180910390a3505050565b600254600160a060020a031681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106116c357805160ff19168380011785556116f0565b828001600101855582156116f0579182015b828111156116f05782518255916020019190600101906116d5565b506116fc929150611700565b5090565b61086491905b808211156116fc57600081556001016117065600a165627a7a7230582018201e55ea53905fd7e862bf4ae6c4216d3a320fa385b80bcc301cbd25c770820029

   Swarm Source:
bzzr://18201e55ea53905fd7e862bf4ae6c4216d3a320fa385b80bcc301cbd25c77082

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.