Sponsored Link:   COVESTING - EU-based digital asset exchange. Aggregated liquidity. Algorithmic & Copy-trading features. 24/7 support. Get access!
 Latest 25 txns from a total Of 79123 transactions
View All

TxHash Age From To Value [TxFee]
0x0d5143367711ed4468d965f0c837b7d3fb11a2b63944f9ee0f23b6b63527871f10 mins ago0x230e3984b578bbecca2a968357de1f772ed8481c  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.000473292
0xa224b48e3d1c61fb6c9472649550d2ee0a3ed9485a74b4b3cdc8aad5422e00ce12 mins agoBinanceWallet_2  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.002248998
0x85494f596f72953da6d889e558ac2ab25313dd9b1b8cc0b933b67a5d0aa5510e23 mins ago0xbb72b029a3e5019b504e5a943b9cc445ad40c07d  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.0002639
0x4121af3af5b8f83d3206be645997a26a3cc226aabba3e82f52fe8acf073bea9137 mins ago0xc801ef01aff9b4222a41cb25d860bfcdbd3dba22  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00021985
0x02b79a3033da2fa8987d0132c58396df19f97d2dbb75f25dcdf5b786af702eef41 mins ago0xdcb1cc8a3433f312ce51302bb973aaa5575e5065  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00058196
0x4ca130061e2c95584f5233d8b882d7473b3c66ea4562dd4a7690474af8e643c845 mins ago0x81df87a117417b554a2ade4f7a425fcc4b2d919a  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.000708727228
0x6dafc18e4d0cd84aef9f76ada2ce665f316d8ca22e143a87803ff503223d359256 mins ago0x6f724817dc73bf14b7077f8c3a73d5624313a6db  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00026422
0xaf1b9d325220f82139a9b0c8d2467f89a59ed36ae3bbb96b80ed12ffee4e727758 mins agoBinanceWallet  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.002245734
0x716d3c5821e42454a7aed16e6bb9df99b2c88c3a5d6b0032dc2d010d63cedbf91 hr 4 mins ago0x735e93b521aaf24cc503204eeea557149433b617  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.000634128
0xfea12ec7a2ad12ad5446dbfd8320179e14d471bbd4caabef7f5111059e7243451 hr 12 mins ago0x5d07c99c89c96a4f201f56b98331160a1fd50528  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00058196
0x17e75bded99a8f9ccb2e98a63c0452ebf8078b9f181961da56213b6b91ae8b1e1 hr 25 mins ago0x6ab1116792e66fe930e5072dccf1f2fb9a3e7aa4  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00066147
0x8cd4dc39b96109412934c8916026ff04cd41c27db3bd6277c6432240d579d1dc1 hr 51 mins ago0x8ac93dcc140ed0a6fc876d1a386416cd62f1a6e8  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00058196
0x9fc6bc30ad0ab2c88c45981de7fc04001b6a170b4318100099fbfb030aba4ce61 hr 56 mins ago0x07ce9c179ca926754c64011b0454d344da1ecefe  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.0022049
0x4aed913caf44673764af0d9c5f27fedb0aad35c4beeae6938df77d5c85db337e2 hrs 11 mins ago0xd7c6d2fc3174ea7672f4bb6cb91ada1880731ea9  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00058196
0xfc76a5984bd403c2cf238ac729570811534581ceb118d425b0cae7d83b1a18dd2 hrs 17 mins agoBinanceWallet  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.003013998
0xd08e4710cdee69b2d8ccec6f9bc2882f48cef494bf4b11f2af54f1607f572f222 hrs 19 mins ago0x32e567e8b527d3194c60ea3c6a5c009d58a0b36d  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.002248998
0x8a9d12db10d2cfac50a6e678e66a0cca4ce55885cdd71ff4a6052bf03e2f89402 hrs 19 mins ago0x1d4dc26d4286ef0c1a08fd2f85219c3f254437a8  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00132294
0xe014c0ac676548545b08b75e0c7f59bbd5d0cd614a0833efb630714df20a7e732 hrs 22 mins ago0xc24db380d9580ed0f2a5404df8672595e9590289  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00058196
0x669a4f49f906d3443388e234c9d54d87a5c7d9b18d8bbc1b02c46e24ec425de72 hrs 25 mins agoBinanceWallet_3  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.002245734
0x9ebde7b0a70d5b6b11eecc84bf007d72e0181790212dfa6d3ec2344acb6f08af2 hrs 30 mins agoBinanceWallet_1  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00300747
0xd09b3923fcf7d1fc46460809e6690422e5ad9aec46214a39b06cd03fa5929f9b2 hrs 34 mins ago0xe175d8c356111f76a41afac3b9b90e1a10697d4c  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.001808018
0xa6dd079fa66c5c0f0b2999b5cd9ecee4cb740f9c020db72f821407fde21eb0552 hrs 45 mins agoBinanceWallet_3  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.002248998
0x9654c328356eff90e0f769048f1c309ccb9393a8b5005c7fedab857c2d4db0b53 hrs 4 mins ago0x913d53e1f056cad57e6b113235938adcd7c32f01  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00088196
0x7180a127ecf271c7bb22130db822588a77781fac134d1f7e8f8a371d9a12a7433 hrs 12 mins ago0x61f2b05dc4ac29b2e65a2292dff2801e90a264d3  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.00058196
0x444658370107236176d26bb1eaa9c0c4d3eff093c3fcdcf77d48f117dd52bec43 hrs 28 mins agoBinanceWallet_3  IN   0x4ceda7906a5ed2179785cd3a40a69ee8bc99c4660 Ether0.003013998
[ 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 ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: Token
Compiler Version: 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 txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.