Contract 0x9469D013805bFfB7D3DEBe5E7839237e535ec483 8

Darwinia Network Token Contract 
 
 
Txn Hash
Method
Block
From
To
Value
0xb19f4651c6003c32c655e41f588c4f557ed8e2f45c94509e0f2b629854ab309cTransfer(pending)2022-11-27 2:45:183 days 18 hrs ago0xde7ec10a7ddf3a38f3de02d09fb154acea9775d6 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x9a6b28393aef7b7a064448ebb745733b51a6647951a4fc45024aea3b6333c622Transfer(pending)2022-11-27 2:35:283 days 18 hrs ago0x62864b7920250913073a6f1fe84cb66efc88a898 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x982c90ddb282864db80ab977d145563e74f0ca2cb064dbb1bc4aa88af2f480b4Transfer(pending)2022-11-27 2:29:153 days 18 hrs ago0xa711583a049f63c72fbe33e9ff561d5ae6c83d40 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xc64d28f50d39af6a20911d897427759d0727d5ba6eef2a3c82632b812c5084f9Transfer(pending)2022-11-27 2:28:243 days 18 hrs ago0xff77c7b0d626c0d654faaea05f6eae1d5750207d IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xb51bb5b30426e42c9680bd0fc907f83081a150bfe440ec1d1c3fb45aaa265895Transfer(pending)2022-11-27 2:28:093 days 18 hrs ago0x4507642f833073d024f717d969860f3f2a327868 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xca9ac1427113f6e7f6f0e89523473e233d468073f2e1227dedce62c528cedde3Transfer(pending)2022-11-27 2:28:013 days 18 hrs ago0xe613827e7f2a5a0f43962127b50f6be16953c159 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x716b82ff2540008c5f48ce87ecaba83dd1dc3685564d69ef266ed71b38fd283cTransfer(pending)2022-11-27 2:25:073 days 18 hrs ago0x130af68719be922c83969bad1d7cf9e7ba262b28 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x40f1d6d144c065a0ce2439a33737ada00884c162780dd557c0c711f654fc558fTransfer(pending)2022-11-27 2:25:033 days 18 hrs ago0x824d813db30c83e44b7fbbdb705f2dc1d2d47594 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x0f3a1acfe1433c9995be0e3cd807af628dc82bed3dba97bdbcb5762fd6aaf6bfTransfer(pending)2022-11-27 2:24:493 days 18 hrs ago0x88a8831c2c32894bd40686922046c6488e6e68e5 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x2b2a5fd88093ee02a651c8d003c1c4d2de8a624f35378720bdfd057b26b6d9f8Transfer(pending)2022-11-27 2:23:303 days 18 hrs ago0x3032c3782f24f55ebfe69c1486419e6f500e085f IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x38c4dbeee1f695b35d9f7b1c701582f6612a194b6d96504477a15679417ef835Transfer(pending)2022-11-27 2:22:013 days 18 hrs ago0x2a78ddb759ac00eb60540921949ba7d4a0c44b98 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x4bad4664ed176b2ad298134dd684aece01f143caac34cbeb6c718f67333824d0Transfer(pending)2022-11-27 2:18:263 days 18 hrs ago0xd4c1df578a83495ad629089369f29072631a4586 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xb8eddf3e7d314e5cc5cc6a7e91b66b55f501bef08dd14f784f934613df828e3eTransfer(pending)2022-11-27 2:18:263 days 18 hrs ago0xd124382f219d915f0eda513004d03c0d493a705e IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xeb84a7c3dea3a7e1cf83039517bb09dceb9183231fb0170efc01ca9f05f17581Transfer(pending)2022-11-27 2:14:273 days 18 hrs ago0x46bed9f084febb5a54345b5dbac9dd322fd81eab IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xc6dbb51365de794d3dc519a267335be5a40189830bc5f0a0a8a8f80f3c5b90a2Transfer(pending)2022-11-27 2:11:153 days 18 hrs ago0x87eec59158adc4ca00f480eb629fc2ab496166a7 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x990b7d589bcfdc927135ebefe0dd172b5a06770659179089b1b6423c8c38ec57Transfer(pending)2022-11-27 2:08:293 days 18 hrs ago0x0886ba25aa039eef8799ab9a4b933395d6dfb77e IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xd2395c2deef2fc17a03295f89eb7c0c40587373fbed622b649a950ee51e97010Transfer(pending)2022-11-27 2:07:253 days 18 hrs ago0xa7529e8a87ba008ce87f34e0feeab524a6cdfb95 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x5901e73ea694e223df907473c47e3ab41bd3182263aecd72bcac46281995e8ceTransfer(pending)2022-11-27 2:03:553 days 19 hrs ago0xf940d04481a58ac5c9a7f9e44c292499f70cfda4 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x768f0ba9ccb16c4eb42d7f848fd08f87e70cedcaba89adc5092f4330826470cbTransfer(pending)2022-11-27 2:02:153 days 19 hrs ago0xaa754b06abfb4e98f21e8572ce197f9da514b373 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x638f6dc7704947875730c60844f8db9b12443f93d42e9b12c3a637b9933b45e9Transfer(pending)2022-11-27 2:01:503 days 19 hrs ago0x4ace4e7a802ab77866b4cd4ddc98f75e17326e85 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x788c4da673758e1b7cf1ccea587b51c023857b203b33a7efcea5f370fba90509Transfer(pending)2022-11-27 2:00:583 days 19 hrs ago0x5dfed2dec82370827a25b0aee0621c708a281f2c IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x4aa5f27d3c089c8260ff0c52eda69f429e40d17ac1ec918f3e23b90764c519aaTransfer(pending)2022-11-27 2:00:033 days 19 hrs ago0xd403ac55de19d82796e0ec336ed8a7dd662efdb2 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x78756537a0b22dbf635f20516a2314286e226ca01b516385aa00b6c32f58a401Transfer(pending)2022-11-27 1:58:573 days 19 hrs ago0x2c5b4bf6888633ff6a65398e522f96b6a5107828 IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0xf1f0d995d3552b461533c2d243645bfad67144ff8ecb13e3d72bdbd94ec6a67bTransfer(pending)2022-11-27 1:57:103 days 19 hrs ago0x4917eb11973267232201c7ede1ec837f7ed6b90c IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
0x9b15912c578bbb1a998328abf0f4fff3e80691028490a3e9589c6deb48a247a1Transfer(pending)2022-11-27 1:54:283 days 19 hrs ago0x8316073460620a3b7582740f87fc115d5060496d IN Darwinia Network Native: RING Token0 Ether(Pending)(Pending)
[ Download CSV Export 

OVERVIEW

Darwinia Network provides game developers the scalability, cross-chain interoperability, and NFT identifiability, with seamless integrations to Polkadot, bridges to all major blockchains, and on-chain RNG services

View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RING

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-03
*/

pragma solidity ^0.4.23;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }

        emit LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);

        _;
    }
}

contract DSStop is DSNote, DSAuth {

    bool public stopped;

    modifier stoppable {
        require(!stopped);
        _;
    }
    function stop() public auth note {
        stopped = true;
    }
    function start() public auth note {
        stopped = false;
    }

}

contract ERC20Events {
    event Approval(address indexed src, address indexed guy, uint wad);
    event Transfer(address indexed src, address indexed dst, uint wad);
}

contract ERC20 is ERC20Events {
    function totalSupply() public view returns (uint);
    function balanceOf(address guy) public view returns (uint);
    function allowance(address src, address guy) public view returns (uint);

    function approve(address guy, uint wad) public returns (bool);
    function transfer(address dst, uint wad) public returns (bool);
    function transferFrom(
        address src, address dst, uint wad
    ) public returns (bool);
}

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}


contract DSTokenBase is ERC20, DSMath {
    uint256                                            _supply;
    mapping (address => uint256)                       _balances;
    mapping (address => mapping (address => uint256))  _approvals;

    constructor(uint supply) public {
        _balances[msg.sender] = supply;
        _supply = supply;
    }

    function totalSupply() public view returns (uint) {
        return _supply;
    }
    function balanceOf(address src) public view returns (uint) {
        return _balances[src];
    }
    function allowance(address src, address guy) public view returns (uint) {
        return _approvals[src][guy];
    }

    function transfer(address dst, uint wad) public returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {
        if (src != msg.sender) {
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function approve(address guy, uint wad) public returns (bool) {
        _approvals[msg.sender][guy] = wad;

        emit Approval(msg.sender, guy, wad);

        return true;
    }
}

contract DSToken is DSTokenBase(0), DSStop {

    bytes32  public  symbol;
    uint256  public  decimals = 18; // standard token precision. override to customize

    constructor(bytes32 symbol_) public {
        symbol = symbol_;
    }

    event Mint(address indexed guy, uint wad);
    event Burn(address indexed guy, uint wad);

    function approve(address guy) public stoppable returns (bool) {
        return super.approve(guy, uint(-1));
    }

    function approve(address guy, uint wad) public stoppable returns (bool) {
        return super.approve(guy, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        stoppable
        returns (bool)
    {
        if (src != msg.sender && _approvals[src][msg.sender] != uint(-1)) {
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function push(address dst, uint wad) public {
        transferFrom(msg.sender, dst, wad);
    }
    function pull(address src, uint wad) public {
        transferFrom(src, msg.sender, wad);
    }
    function move(address src, address dst, uint wad) public {
        transferFrom(src, dst, wad);
    }

    function mint(uint wad) public {
        mint(msg.sender, wad);
    }
    function burn(uint wad) public {
        burn(msg.sender, wad);
    }
    function mint(address guy, uint wad) public auth stoppable {
        _balances[guy] = add(_balances[guy], wad);
        _supply = add(_supply, wad);
        emit Mint(guy, wad);
    }
    function burn(address guy, uint wad) public auth stoppable {
        if (guy != msg.sender && _approvals[guy][msg.sender] != uint(-1)) {
            _approvals[guy][msg.sender] = sub(_approvals[guy][msg.sender], wad);
        }

        _balances[guy] = sub(_balances[guy], wad);
        _supply = sub(_supply, wad);
        emit Burn(guy, wad);
    }

    // Optional token name
    bytes32   public  name = "";

    function setName(bytes32 name_) public auth {
        name = name_;
    }
}

/// @title ERC223ReceivingContract - Standard contract implementation for compatibility with ERC223 tokens.
interface ERC223ReceivingContract {

    /// @dev Function that is called when a user or another contract wants to transfer funds.
    /// @param _from Transaction initiator, analogue of msg.sender
    /// @param _value Number of tokens to transfer.
    /// @param _data Data containig a function signature and/or parameters
    function tokenFallback(address _from, uint256 _value, bytes _data) public;
}

/// @dev The token controller contract must implement these functions
contract TokenController {
    /// @notice Called when `_owner` sends ether to the MiniMe Token contract
    /// @param _owner The address that sent the ether to create tokens
    /// @return True if the ether is accepted, false if it throws
    function proxyPayment(address _owner, bytes4 sig, bytes data) payable public returns (bool);

    /// @notice Notifies the controller about a token transfer allowing the
    ///  controller to react if desired
    /// @param _from The origin of the transfer
    /// @param _to The destination of the transfer
    /// @param _amount The amount of the transfer
    /// @return False if the controller does not authorize the transfer
    function onTransfer(address _from, address _to, uint _amount) public returns (bool);

    /// @notice Notifies the controller about an approval allowing the
    ///  controller to react if desired
    /// @param _owner The address that calls `approve()`
    /// @param _spender The spender in the `approve()` call
    /// @param _amount The amount in the `approve()` call
    /// @return False if the controller does not authorize the approval
    function onApprove(address _owner, address _spender, uint _amount) public returns (bool);
}

interface ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 _amount, address _token, bytes _data) public;
}

interface ERC223 {
    function transfer(address to, uint amount, bytes data) public returns (bool ok);

    function transferFrom(address from, address to, uint256 amount, bytes data) public returns (bool ok);

    event ERC223Transfer(address indexed from, address indexed to, uint amount, bytes data);
}

contract ISmartToken {
    function transferOwnership(address _newOwner) public;
    function acceptOwnership() public;

    function disableTransfers(bool _disable) public;
    function issue(address _to, uint256 _amount) public;
    function destroy(address _from, uint256 _amount) public;
}

contract RING is DSToken("RING"), ERC223, ISmartToken {
    address public newOwner;
    bool public transfersEnabled = true;    // true if transfer/transferFrom are enabled, false if not

    uint256 public cap;

    address public controller;

    // allows execution only when transfers aren't disabled
    modifier transfersAllowed {
        assert(transfersEnabled);
        _;
    }

    constructor() public {
        setName("Evolution Land Global Token");
        controller = msg.sender;
    }

//////////
// IOwned Methods
//////////

    /**
        @dev allows transferring the contract ownership
        the new owner still needs to accept the transfer
        can only be called by the contract owner
        @param _newOwner    new contract owner
    */
    function transferOwnership(address _newOwner) public auth {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    /**
        @dev used by a new owner to accept an ownership transfer
    */
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        owner = newOwner;
        newOwner = address(0);
    }

//////////
// SmartToken Methods
//////////
    /**
        @dev disables/enables transfers
        can only be called by the contract owner
        @param _disable    true to disable transfers, false to enable them
    */
    function disableTransfers(bool _disable) public auth {
        transfersEnabled = !_disable;
    }

    function issue(address _to, uint256 _amount) public auth stoppable {
        mint(_to, _amount);
    }

    function destroy(address _from, uint256 _amount) public auth stoppable {
        // do not require allowance

        _balances[_from] = sub(_balances[_from], _amount);
        _supply = sub(_supply, _amount);
        emit Burn(_from, _amount);
        emit Transfer(_from, 0, _amount);
    }

//////////
// Cap Methods
//////////
    function changeCap(uint256 _newCap) public auth {
        require(_newCap >= _supply);

        cap = _newCap;
    }

//////////
// Controller Methods
//////////
    /// @notice Changes the controller of the contract
    /// @param _newController The new controller of the contract
    function changeController(address _newController) auth {
        controller = _newController;
    }

    /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it
    ///  is approved by `_from`
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function transferFrom(address _from, address _to, uint256 _amount
    ) public transfersAllowed returns (bool success) {
        // Alerts the token controller of the transfer
        if (isContract(controller)) {
            if (!TokenController(controller).onTransfer(_from, _to, _amount))
               revert();
        }

        success = super.transferFrom(_from, _to, _amount);
    }

    /*
     * ERC 223
     * Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload.
     */
    function transferFrom(address _from, address _to, uint256 _amount, bytes _data)
        public transfersAllowed
        returns (bool success)
    {
        // Alerts the token controller of the transfer
        if (isContract(controller)) {
            if (!TokenController(controller).onTransfer(_from, _to, _amount))
               revert();
        }

        require(super.transferFrom(_from, _to, _amount));

        if (isContract(_to)) {
            ERC223ReceivingContract receiver = ERC223ReceivingContract(_to);
            receiver.tokenFallback(_from, _amount, _data);
        }

        emit ERC223Transfer(_from, _to, _amount, _data);

        return true;
    }

    /*
     * ERC 223
     * Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload.
     * https://github.com/ethereum/EIPs/issues/223
     * function transfer(address _to, uint256 _value, bytes _data) public returns (bool success);
     */
    /// @notice Send `_value` tokens to `_to` from `msg.sender` and trigger
    /// tokenFallback if sender is a contract.
    /// @dev Function that is called when a user or another contract wants to transfer funds.
    /// @param _to Address of token receiver.
    /// @param _amount Number of tokens to transfer.
    /// @param _data Data to be sent to tokenFallback
    /// @return Returns success of function call.
    function transfer(
        address _to,
        uint256 _amount,
        bytes _data)
        public
        returns (bool success)
    {
        return transferFrom(msg.sender, _to, _amount, _data);
    }

    /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
    ///  its behalf. This is a modified version of the ERC20 approve function
    ///  to be a little bit safer
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the approval was successful
    function approve(address _spender, uint256 _amount) returns (bool success) {
        // Alerts the token controller of the approve function call
        if (isContract(controller)) {
            if (!TokenController(controller).onApprove(msg.sender, _spender, _amount))
                revert();
        }
        
        return super.approve(_spender, _amount);
    }

    function mint(address _guy, uint _wad) auth stoppable {
        require(add(_supply, _wad) <= cap);

        super.mint(_guy, _wad);

        emit Transfer(0, _guy, _wad);
    }
    function burn(address _guy, uint _wad) auth stoppable {
        super.burn(_guy, _wad);

        emit Transfer(_guy, 0, _wad);
    }

    /// @notice `msg.sender` approves `_spender` to send `_amount` tokens on
    ///  its behalf, and then a function is triggered in the contract that is
    ///  being approved, `_spender`. This allows users to use their tokens to
    ///  interact with contracts in one function call instead of two
    /// @param _spender The address of the contract able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the function call was successful
    function approveAndCall(address _spender, uint256 _amount, bytes _extraData
    ) returns (bool success) {
        if (!approve(_spender, _amount)) revert();

        ApproveAndCallFallBack(_spender).receiveApproval(
            msg.sender,
            _amount,
            this,
            _extraData
        );

        return true;
    }

    /// @dev Internal function to determine if an address is a contract
    /// @param _addr The address being queried
    /// @return True if `_addr` is a contract
    function isContract(address _addr) constant internal returns(bool) {
        uint size;
        if (_addr == 0) return false;
        assembly {
            size := extcodesize(_addr)
        }
        return size>0;
    }

    /// @notice The fallback function: If the contract's controller has not been
    ///  set to 0, then the `proxyPayment` method is called which relays the
    ///  ether and creates tokens as described in the token controller contract
    function ()  payable {
        if (isContract(controller)) {
            if (! TokenController(controller).proxyPayment.value(msg.value)(msg.sender, msg.sig, msg.data))
                revert();
        } else {
            revert();
        }
    }

//////////
// Safety Methods
//////////

    /// @notice This method can be used by the owner to extract mistakenly
    ///  sent tokens to this contract.
    /// @param _token The address of the token contract that you want to recover
    ///  set to 0 in case you want to extract ether.
    function claimTokens(address _token) public auth {
        if (_token == 0x0) {
            address(msg.sender).transfer(address(this).balance);
            return;
        }

        ERC20 token = ERC20(_token);
        uint balance = token.balanceOf(this);
        token.transfer(address(msg.sender), balance);

        emit ClaimedTokens(_token, address(msg.sender), balance);
    }

    function withdrawTokens(ERC20 _token, address _to, uint256 _amount) public auth
    {
        assert(_token.transfer(_to, _amount));
    }

////////////////
// Events
////////////////

    event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount);
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_disable","type":"bool"}],"name":"disableTransfers","outputs":[],"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":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newController","type":"address"}],"name":"changeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_guy","type":"address"},{"name":"_wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name_","type":"bytes32"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCap","type":"uint256"}],"name":"changeCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_guy","type":"address"},{"name":"_wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"push","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"guy","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"pull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"ERC223Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Transfer","type":"event"}]

6080604052601260065560006007556008805460a060020a60ff021916740100000000000000000000000000000000000000001790553480156200004257600080fd5b503360008181526001602052604080822082905581805560048054600160a060020a03191684179055517f52494e470000000000000000000000000000000000000000000000000000000092917fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9491a2600555620000e97f45766f6c7574696f6e204c616e6420476c6f62616c20546f6b656e000000000064010000000062000101810204565b600a8054600160a060020a0319163317905562000272565b6200013a337fffffffff00000000000000000000000000000000000000000000000000000000600035166401000000006200014b810204565b15156200014657600080fd5b600755565b6000600160a060020a03831630141562000168575060016200026c565b600454600160a060020a038481169116141562000188575060016200026c565b600354600160a060020a03161515620001a4575060006200026c565b600354604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301523060248301527fffffffff00000000000000000000000000000000000000000000000000000000861660448301529151919092169163b70096139160648083019260209291908290030181600087803b1580156200023b57600080fd5b505af115801562000250573d6000803e3d6000fd5b505050506040513d60208110156200026757600080fd5b505190505b92915050565b611e0880620002826000396000f3006080604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102f657806307da68f51461031d578063095ea7b31461033257806313af40351461036a5780631608f18f1461038b57806318160ddd146103a557806323b872dd146103ba578063313ce567146103e4578063355274ea146103f95780633cebb8231461040e57806340c10f191461042f57806342966c68146104535780635ac801fe1461046b5780635e35359e1461048357806370a08231146104ad57806375f12b21146104ce57806379ba5097146104e35780637a9e5e4b146104f8578063800edb9d14610519578063867904b4146105315780638da5cb5b1461055557806395d89b41146105865780639dc29fac1461059b578063a0712d68146105bf578063a24835d1146105d7578063a9059cbb146105fb578063ab67aa581461061f578063b753a98c1461068e578063bb35783b146106b2578063be45fd62146106dc578063be9a655514610745578063bef97c871461075a578063bf7e214f1461076f578063cae9ca5114610784578063d4ee1d90146107ed578063daea85c514610802578063dd62ed3e14610823578063df8de3e71461084a578063f2d5d56b1461086b578063f2fde38b1461088f578063f77c4791146108b0575b600a5461020d90600160a060020a03166108c5565b156102ef57600a546040517f4a6a225e000000000000000000000000000000000000000000000000000000008152336004820181815260008035600160e060020a031916602485018190526060604486019081523660648701819052600160a060020a0390971696634a6a225e963496959394939192906084018484808284378201915050955050505050506020604051808303818588803b1580156102b257600080fd5b505af11580156102c6573d6000803e3d6000fd5b50505050506040513d60208110156102dd57600080fd5b505115156102ea57600080fd5b6102f4565b600080fd5b005b34801561030257600080fd5b5061030b6108f2565b60408051918252519081900360200190f35b34801561032957600080fd5b506102f46108f8565b34801561033e57600080fd5b50610356600160a060020a0360043516602435610992565b604080519115158252519081900360200190f35b34801561037657600080fd5b506102f4600160a060020a0360043516610a6e565b34801561039757600080fd5b506102f46004351515610aec565b3480156103b157600080fd5b5061030b610b39565b3480156103c657600080fd5b50610356600160a060020a0360043581169060243516604435610b3f565b3480156103f057600080fd5b5061030b610c32565b34801561040557600080fd5b5061030b610c38565b34801561041a57600080fd5b506102f4600160a060020a0360043516610c3e565b34801561043b57600080fd5b506102f4600160a060020a0360043516602435610c8e565b34801561045f57600080fd5b506102f4600435610d1d565b34801561047757600080fd5b506102f4600435610d2a565b34801561048f57600080fd5b506102f4600160a060020a0360043581169060243516604435610d50565b3480156104b957600080fd5b5061030b600160a060020a0360043516610e26565b3480156104da57600080fd5b50610356610e41565b3480156104ef57600080fd5b506102f4610e51565b34801561050457600080fd5b506102f4600160a060020a0360043516610e9c565b34801561052557600080fd5b506102f4600435610f1a565b34801561053d57600080fd5b506102f4600160a060020a0360043516602435610f4f565b34801561056157600080fd5b5061056a610f95565b60408051600160a060020a039092168252519081900360200190f35b34801561059257600080fd5b5061030b610fa4565b3480156105a757600080fd5b506102f4600160a060020a0360043516602435610faa565b3480156105cb57600080fd5b506102f460043561101f565b3480156105e357600080fd5b506102f4600160a060020a0360043516602435611029565b34801561060757600080fd5b50610356600160a060020a0360043516602435611120565b34801561062b57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261035694600160a060020a03813581169560248035909216956044359536956084940191819084018382808284375094975061112d9650505050505050565b34801561069a57600080fd5b506102f4600160a060020a03600435166024356113e6565b3480156106be57600080fd5b506102f4600160a060020a03600435811690602435166044356113f1565b3480156106e857600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610356948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506114029650505050505050565b34801561075157600080fd5b506102f4611410565b34801561076657600080fd5b506103566114a4565b34801561077b57600080fd5b5061056a6114b4565b34801561079057600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610356948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506114c39650505050505050565b3480156107f957600080fd5b5061056a6115de565b34801561080e57600080fd5b50610356600160a060020a03600435166115ed565b34801561082f57600080fd5b5061030b600160a060020a0360043581169060243516611613565b34801561085657600080fd5b506102f4600160a060020a036004351661163e565b34801561087757600080fd5b506102f4600160a060020a0360043516602435611812565b34801561089b57600080fd5b506102f4600160a060020a036004351661181d565b3480156108bc57600080fd5b5061056a611888565b600080600160a060020a03831615156108e157600091506108ec565b823b90506000811191505b50919050565b60075481565b61090e33600035600160e060020a031916611897565b151561091957600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506004805474ff0000000000000000000000000000000000000000191660a060020a179055565b600a546000906109aa90600160a060020a03166108c5565b15610a5b57600a54604080517fda682aeb000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169163da682aeb9160648083019260209291908290030181600087803b158015610a2457600080fd5b505af1158015610a38573d6000803e3d6000fd5b505050506040513d6020811015610a4e57600080fd5b50511515610a5b57600080fd5b610a65838361199b565b90505b92915050565b610a8433600035600160e060020a031916611897565b1515610a8f57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b610b0233600035600160e060020a031916611897565b1515610b0d57600080fd5b6008805474ff00000000000000000000000000000000000000001916911560a060020a02919091179055565b60005490565b60085460009060a060020a900460ff161515610b5757fe5b600a54610b6c90600160a060020a03166108c5565b15610c1f57600a54604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015286811660248301526044820186905291519190921691634a3931499160648083019260209291908290030181600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050506040513d6020811015610c1257600080fd5b50511515610c1f57600080fd5b610c2a8484846119bf565b949350505050565b60065481565b60095481565b610c5433600035600160e060020a031916611897565b1515610c5f57600080fd5b600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610ca433600035600160e060020a031916611897565b1515610caf57600080fd5b60045460a060020a900460ff1615610cc657600080fd5b600954610cd560005483611b10565b1115610ce057600080fd5b610cea8282611b20565b604080518281529051600160a060020a03841691600091600080516020611dbd8339815191529181900360200190a35050565b610d273382610faa565b50565b610d4033600035600160e060020a031916611897565b1515610d4b57600080fd5b600755565b610d6633600035600160e060020a031916611897565b1515610d7157600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610ded57600080fd5b505af1158015610e01573d6000803e3d6000fd5b505050506040513d6020811015610e1757600080fd5b50511515610e2157fe5b505050565b600160a060020a031660009081526001602052604090205490565b60045460a060020a900460ff1681565b600854600160a060020a03163314610e6857600080fd5b600880546004805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610eb233600035600160e060020a031916611897565b1515610ebd57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada490600090a250565b610f3033600035600160e060020a031916611897565b1515610f3b57600080fd5b600054811015610f4a57600080fd5b600955565b610f6533600035600160e060020a031916611897565b1515610f7057600080fd5b60045460a060020a900460ff1615610f8757600080fd5b610f918282610c8e565b5050565b600454600160a060020a031681565b60055481565b610fc033600035600160e060020a031916611897565b1515610fcb57600080fd5b60045460a060020a900460ff1615610fe257600080fd5b610fec8282611be8565b604080518281529051600091600160a060020a03851691600080516020611dbd8339815191529181900360200190a35050565b610d273382610c8e565b61103f33600035600160e060020a031916611897565b151561104a57600080fd5b60045460a060020a900460ff161561106157600080fd5b600160a060020a0382166000908152600160205260409020546110849082611d46565b600160a060020a038316600090815260016020526040812091909155546110ab9082611d46565b600055604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611dbd8339815191529181900360200190a35050565b6000610a65338484610b3f565b600854600090819060a060020a900460ff16151561114757fe5b600a5461115c90600160a060020a03166108c5565b1561120f57600a54604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921691634a3931499160648083019260209291908290030181600087803b1580156111d857600080fd5b505af11580156111ec573d6000803e3d6000fd5b505050506040513d602081101561120257600080fd5b5051151561120f57600080fd5b61121a8686866119bf565b151561122557600080fd5b61122e856108c5565b1561132557506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483019081526024830186905260606044840190815285516064850152855188949385169363c0ee0b8a938b938a938a9360840190602085019080838360005b838110156112be5781810151838201526020016112a6565b50505050905090810190601f1680156112eb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561130c57600080fd5b505af1158015611320573d6000803e3d6000fd5b505050505b84600160a060020a031686600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd186866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561139f578181015183820152602001611387565b50505050905090810190601f1680156113cc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a350600195945050505050565b610e21338383610b3f565b6113fc838383610b3f565b50505050565b6000610c2a3385858561112d565b61142633600035600160e060020a031916611897565b151561143157600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506004805474ff000000000000000000000000000000000000000019169055565b60085460a060020a900460ff1681565b600354600160a060020a031681565b60006114cf8484610992565b15156114da57600080fd5b6040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561156d578181015183820152602001611555565b50505050905090810190601f16801561159a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b506001979650505050505050565b600854600160a060020a031681565b60045460009060a060020a900460ff161561160757600080fd5b610a6882600019611d56565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008061165733600035600160e060020a031916611897565b151561166257600080fd5b600160a060020a03831615156116a5576040513390303180156108fc02916000818181858888f1935050505015801561169f573d6000803e3d6000fd5b50610e21565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561170957600080fd5b505af115801561171d573d6000803e3d6000fd5b505050506040513d602081101561173357600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051919250600160a060020a0384169163a9059cbb916044808201926020929091908290030181600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b505050506040513d60208110156117cb57600080fd5b50506040805182815290513391600160a060020a038616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360200190a3505050565b610e21823383610b3f565b61183333600035600160e060020a031916611897565b151561183e57600080fd5b600454600160a060020a038281169116141561185957600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a54600160a060020a031681565b6000600160a060020a0383163014156118b257506001610a68565b600454600160a060020a03848116911614156118d057506001610a68565b600354600160a060020a031615156118ea57506000610a68565b600354604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152306024830152600160e060020a0319861660448301529151919092169163b70096139160648083019260209291908290030181600087803b15801561196857600080fd5b505af115801561197c573d6000803e3d6000fd5b505050506040513d602081101561199257600080fd5b50519050610a68565b60045460009060a060020a900460ff16156119b557600080fd5b610a658383611d56565b60045460009060a060020a900460ff16156119d957600080fd5b600160a060020a0384163314801590611a175750600160a060020a038416600090815260026020908152604080832033845290915290205460001914155b15611a6f57600160a060020a0384166000908152600260209081526040808320338452909152902054611a4a9083611d46565b600160a060020a03851660009081526002602090815260408083203384529091529020555b600160a060020a038416600090815260016020526040902054611a929083611d46565b600160a060020a038086166000908152600160205260408082209390935590851681522054611ac19083611b10565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919392881692600080516020611dbd83398151915292918290030190a35060019392505050565b80820182811015610a6857600080fd5b611b3633600035600160e060020a031916611897565b1515611b4157600080fd5b60045460a060020a900460ff1615611b5857600080fd5b600160a060020a038216600090815260016020526040902054611b7b9082611b10565b600160a060020a03831660009081526001602052604081209190915554611ba29082611b10565b600055604080518281529051600160a060020a038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b611bfe33600035600160e060020a031916611897565b1515611c0957600080fd5b60045460a060020a900460ff1615611c2057600080fd5b600160a060020a0382163314801590611c5e5750600160a060020a038216600090815260026020908152604080832033845290915290205460001914155b15611cb657600160a060020a0382166000908152600260209081526040808320338452909152902054611c919082611d46565b600160a060020a03831660009081526002602090815260408083203384529091529020555b600160a060020a038216600090815260016020526040902054611cd99082611d46565b600160a060020a03831660009081526001602052604081209190915554611d009082611d46565b600055604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b80820382811115610a6857600080fd5b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820491b340ae599d480b79db9398841b3df0bdb37f28d8943dd8ade73066c9a66b70029

Swarm Source

bzzr://491b340ae599d480b79db9398841b3df0bdb37f28d8943dd8ade73066c9a66b7
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.