Sponsored:   Ubex.com: Top ratings from all agencies. Big partnerships. 70% hard cap reached. Join us!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 4 txns
Token Contract: FanChain (FANZ)
 Latest 4 txns

TxHash Age From To Value [TxFee]
0x13a5e68bf32b99d63f8a08082d6f42d0e873fa7d3988180449efa40827e1c7355 days 22 hrs ago0xf0f41b3fd923038871cb9bc8f37b857a50a1ecb7  IN   0xa22160bea244f00bef5a0b1ca85977b005716fec0 Ether0.00061
0x6ef0a11e75e1a2c285b1040330e463b2d7a7b711da7e66df2d2f3a27ed9f779932 days 16 hrs ago0x7ddf115b8eef3058944a3373025fb507effad012  IN   0xa22160bea244f00bef5a0b1ca85977b005716fec0 Ether0.00030471
0x380359031ea3e1c95d8e86439e45af07c3acea81fbcdb296aa7b2d9661943a9634 days 15 hrs ago0x7ddf115b8eef3058944a3373025fb507effad012  IN   0xa22160bea244f00bef5a0b1ca85977b005716fec0 Ether0.00066729
0xd2a69634d81f3b4bb5d57d5e46713436160188a8adf92d0238cc8975bb6e705b37 days 7 hrs ago0x7ddf115b8eef3058944a3373025fb507effad012  IN    Contract Creation0 Ether0.03151526
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified (Exact match)
Contract Name: FanCoin
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.21;

// File: deploy/contracts/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error.
 * Note, the div and mul methods were removed as they are not currently needed
 */
library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

// File: deploy/contracts/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
    uint256 public totalSupply;
    string public name;
    string public symbol;
    uint8 public decimals;

    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: deploy/contracts/Stampable.sol

contract Stampable is ERC20 {
    using SafeMath for uint256;

    // A struct that represents a particular token balance
    struct TokenBalance {
        uint256 amount;
        uint index;
    }

    // A struct that represents a particular address balance
    struct AddressBalance {
        mapping (uint256 => TokenBalance) tokens;
        uint256[] tokenIndex;
    }

    // A mapping of address to balances
    mapping (address => AddressBalance) balances;

    // The total number of tokens owned per address
    mapping (address => uint256) ownershipCount;

    // Whitelist for addresses allowed to stamp tokens
    mapping (address => bool) public stampingWhitelist;

    /**
    * Modifier for only whitelisted addresses
    */
    modifier onlyStampingWhitelisted() {
        require(stampingWhitelist[msg.sender]);
        _;
    }

    // Event for token stamping
    event TokenStamp (address indexed from, uint256 tokenStamped, uint256 stamp, uint256 amt);

    /**
    * @dev Function to stamp a token in the msg.sender's wallet
    * @param _tokenToStamp uint256 The tokenId of theirs to stamp (0 for unstamped tokens)
    * @param _stamp uint256 The new stamp to apply
    * @param _amt uint256 The quantity of tokens to stamp
    */
    function stampToken (uint256 _tokenToStamp, uint256 _stamp, uint256 _amt)
        onlyStampingWhitelisted
        public returns (bool) {
        require(_amt <= balances[msg.sender].tokens[_tokenToStamp].amount);

        // Subtract balance of 0th token ID _amt value.
        removeToken(msg.sender, _tokenToStamp, _amt);

        // "Stamp" the token
        addToken(msg.sender, _stamp, _amt);

        // Emit the stamping event
        emit TokenStamp(msg.sender, _tokenToStamp, _stamp, _amt);

        return true;
    }

    function addToken(address _owner, uint256 _token, uint256 _amount) internal {
        // If they don't yet have any, assign this token an index
        if (balances[_owner].tokens[_token].amount == 0) {
            balances[_owner].tokens[_token].index = balances[_owner].tokenIndex.push(_token) - 1;
        }

        // Increase their balance of said token
        balances[_owner].tokens[_token].amount = balances[_owner].tokens[_token].amount.add(_amount);

        // Increase their ownership count
        ownershipCount[_owner] = ownershipCount[_owner].add(_amount);
    }

    function removeToken(address _owner, uint256 _token, uint256 _amount) internal {
        // Decrease their ownership count
        ownershipCount[_owner] = ownershipCount[_owner].sub(_amount);

        // Decrease their balance of the token
        balances[_owner].tokens[_token].amount = balances[_owner].tokens[_token].amount.sub(_amount);

        // If they don't have any left, remove it
        if (balances[_owner].tokens[_token].amount == 0) {
            uint index = balances[_owner].tokens[_token].index;
            uint256 lastCoin = balances[_owner].tokenIndex[balances[_owner].tokenIndex.length - 1];
            balances[_owner].tokenIndex[index] = lastCoin;
            balances[_owner].tokens[lastCoin].index = index;
            balances[_owner].tokenIndex.length--;
            // Make sure the user's token is removed
            delete balances[_owner].tokens[_token];
        }
    }
}

// File: deploy/contracts/FanCoin.sol

contract FanCoin is Stampable {
    using SafeMath for uint256;

    // The owner of this token
    address public owner;

    // Keeps track of allowances for particular address. - ERC20 Method
    mapping (address => mapping (address => uint256)) public allowed;

    event TokenTransfer (address indexed from, address indexed to, uint256 tokenId, uint256 value);
    event MintTransfer  (address indexed from, address indexed to, uint256 originalTokenId, uint256 tokenId, uint256 value);

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

    /**
    * The constructor for the FanCoin token
    */
    function FanCoin() public {
        owner = 0x7DDf115B8eEf3058944A3373025FB507efFAD012;
        name = "FanChain";
        symbol = "FANZ";
        decimals = 4;

        // Total supply is one billion tokens
        totalSupply = 6e8 * uint256(10) ** decimals;

        // Add the owner to the stamping whitelist
        stampingWhitelist[owner] = true;

        // Initially give all of the tokens to the owner
        addToken(owner, 0, totalSupply);
    }

    /** ERC 20
    * @dev Retrieves the balance of a specified address
    * @param _owner address The address to query the balance of.
    * @return A uint256 representing the amount owned by the _owner
    */
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return ownershipCount[_owner];
    }

    /**
    * @dev Retrieves the balance of a specified address for a specific token
    * @param _owner address The address to query the balance of
    * @param _tokenId uint256 The token being queried
    * @return A uint256 representing the amount owned by the _owner
    */
    function balanceOfToken(address _owner, uint256 _tokenId) public view returns (uint256 balance) {
        return balances[_owner].tokens[_tokenId].amount;
    }

    /**
    * @dev Returns all of the tokens owned by a particular address
    * @param _owner address The address to query
    * @return A uint256 array representing the tokens owned
    */
    function tokensOwned(address _owner) public view returns (uint256[] tokens) {
        return balances[_owner].tokenIndex;
    }

    /** ERC 20
    * @dev Transfers tokens to a specific address
    * @param _to address The address to transfer tokens to
    * @param _value unit256 The amount to be transferred
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= totalSupply);
        require(_value <= ownershipCount[msg.sender]);

        // Cast the value as the ERC20 standard uses uint256
        uint256 _tokensToTransfer = uint256(_value);

        // Do the transfer
        require(transferAny(msg.sender, _to, _tokensToTransfer));

        // Notify that a transfer has occurred
        emit Transfer(msg.sender, _to, _value);

        return true;
    }

    /**
    * @dev Transfer a specific kind of token to another address
    * @param _to address The address to transfer to
    * @param _tokenId address The type of token to transfer
    * @param _value uint256 The number of tokens to transfer
    */
    function transferToken(address _to, uint256 _tokenId, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender].tokens[_tokenId].amount);

        // Do the transfer
        internalTransfer(msg.sender, _to, _tokenId, _value);

        // Notify that a transfer happened
        emit TokenTransfer(msg.sender, _to, _tokenId, _value);
        emit Transfer(msg.sender, _to, _value);

        return true;
    }

    /**
    * @dev Transfer a list of token kinds and values to another address
    * @param _to address The address to transfer to
    * @param _tokenIds uint256[] The list of tokens to transfer
    * @param _values uint256[] The list of amounts to transfer
    */
    function transferTokens(address _to, uint256[] _tokenIds, uint256[] _values) public returns (bool) {
        require(_to != address(0));
        require(_tokenIds.length == _values.length);
        require(_tokenIds.length < 100); // Arbitrary limit

        // Do verification first
        for (uint i = 0; i < _tokenIds.length; i++) {
            require(_values[i] > 0);
            require(_values[i] <= balances[msg.sender].tokens[_tokenIds[i]].amount);
        }

        // Transfer every type of token specified
        for (i = 0; i < _tokenIds.length; i++) {
            require(internalTransfer(msg.sender, _to, _tokenIds[i], _values[i]));
            emit TokenTransfer(msg.sender, _to, _tokenIds[i], _values[i]);
            emit Transfer(msg.sender, _to, _values[i]);
        }

        return true;
    }

    /**
    * @dev Transfers the given number of tokens regardless of how they are stamped
    * @param _from address The address to transfer from
    * @param _to address The address to transfer to
    * @param _value uint256 The number of tokens to send
    */
    function transferAny(address _from, address _to, uint256 _value) private returns (bool) {
        // Iterate through all of the tokens owned, and transfer either the
        // current balance of that token, or the remaining total amount to be
        // transferred (`_value`), whichever is smaller. Because tokens are completely removed
        // as their balances reach 0, we just run the loop until we have transferred all
        // of the tokens we need to
        uint256 _tokensToTransfer = _value;
        while (_tokensToTransfer > 0) {
            uint256 tokenId = balances[_from].tokenIndex[0];
            uint256 tokenBalance = balances[_from].tokens[tokenId].amount;

            if (tokenBalance >= _tokensToTransfer) {
                require(internalTransfer(_from, _to, tokenId, _tokensToTransfer));
                _tokensToTransfer = 0;
            } else {
                _tokensToTransfer = _tokensToTransfer - tokenBalance;
                require(internalTransfer(_from, _to, tokenId, tokenBalance));
            }
        }

        return true;
    }

    /**
    * Internal function for transferring a specific type of token
    */
    function internalTransfer(address _from, address _to, uint256 _tokenId, uint256 _value) private returns (bool) {
        // Decrease the amount being sent first
        removeToken(_from, _tokenId, _value);

        // Increase receivers token balances
        addToken(_to, _tokenId, _value);

        return true;
    }

    /** ERC 20
    * @dev Transfer on behalf of another address
    * @param _from address The address to send tokens from
    * @param _to address The address to send tokens to
    * @param _value uint256 The amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= ownershipCount[_from]);
        require(_value <= allowed[_from][msg.sender]);

        // Get the uint256 version of value
        uint256 _castValue = uint256(_value);

        // Decrease the spending limit
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

        // Actually perform the transfer
        require(transferAny(_from, _to, _castValue));

        // Notify that a transfer has occurred
        emit Transfer(_from, _to, _value);

        return true;
    }

    /**
    * @dev Transfer and stamp tokens from a mint in one step
    * @param _to address To send the tokens to
    * @param _tokenToStamp uint256 The token to stamp (0 is unstamped tokens)
    * @param _stamp uint256 The new stamp to apply
    * @param _amount uint256 The number of tokens to stamp and transfer
    */
    function mintTransfer(address _to, uint256 _tokenToStamp, uint256 _stamp, uint256 _amount) public
        onlyStampingWhitelisted returns (bool) {
        require(_to != address(0));
        require(_amount <= balances[msg.sender].tokens[_tokenToStamp].amount);

        // Decrease the amount being sent first
        removeToken(msg.sender, _tokenToStamp, _amount);

        // Increase receivers token balances
        addToken(_to, _stamp, _amount);

        emit MintTransfer(msg.sender, _to, _tokenToStamp, _stamp, _amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }

    /**
     * @dev Add an address to the whitelist
     * @param _addr address The address to add
     */
    function addToWhitelist(address _addr) public
        onlyOwner {
        stampingWhitelist[_addr] = true;
    }

    /**
     * @dev Remove an address from the whitelist
     * @param _addr address The address to remove
     */
    function removeFromWhitelist(address _addr) public
        onlyOwner {
        stampingWhitelist[_addr] = false;
    }

    /** ERC 20
    * @dev Approve sent address to spend the specified amount of tokens on
    * behalf of msg.sender
    *
    * See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    * for any potential security concerns
    *
    * @param _spender address The address that will spend funds
    * @param _value uint256 The number of tokens they are allowed to spend
    */
    function approve(address _spender, uint256 _value) public returns (bool) {
        require(allowed[msg.sender][_spender] == 0);

        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /** ERC 20
    * @dev Returns the amount a spender is allowed to spend for a particular
    * address
    * @param _owner address The address which owns the funds
    * @param _spender address The address which will spend the funds.
    * @return uint256 The number of tokens still available for the spender
    */
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    /** ERC 20
    * @dev Increases the number of tokens a spender is allowed to spend for
    * `msg.sender`
    * @param _spender address The address of the spender
    * @param _addedValue uint256 The amount to increase the spenders approval by
    */
    function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /** ERC 20
    * @dev Decreases the number of tokens a spender is allowed to spend for
    * `msg.sender`
    * @param _spender address The address of the spender
    * @param _subtractedValue uint256 The amount to decrease the spenders approval by
    */
    function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) {
        uint _value = allowed[msg.sender][_spender];
        if (_subtractedValue > _value) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = _value.sub(_subtractedValue);
        }

        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenToStamp","type":"uint256"},{"name":"_stamp","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"mintTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stampingWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenIds","type":"uint256[]"},{"name":"_values","type":"uint256[]"}],"name":"transferTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOwned","outputs":[{"name":"tokens","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"transferToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenToStamp","type":"uint256"},{"name":"_stamp","type":"uint256"},{"name":"_amt","type":"uint256"}],"name":"stampToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"removeFromWhitelist","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":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","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":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"balanceOfToken","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokenTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"originalTokenId","type":"uint256"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"MintTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"tokenStamped","type":"uint256"},{"indexed":false,"name":"stamp","type":"uint256"},{"indexed":false,"name":"amt","type":"uint256"}],"name":"TokenStamp","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"}]

  Contract Creation Code Switch To Opcodes View
60806040523480156200001157600080fd5b50737ddf115b8eef3058944a3373025fb507effad012600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600881526020017f46616e436861696e00000000000000000000000000000000000000000000000081525060019080519060200190620000b4929190620004c6565b506040805190810160405280600481526020017f46414e5a000000000000000000000000000000000000000000000000000000008152506002908051906020019062000102929190620004c6565b506004600360006101000a81548160ff021916908360ff160217905550600360009054906101000a900460ff1660ff16600a0a6323c3460002600081905550600160066000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001fb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000805462000201640100000000026401000000009004565b62000575565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008481526020019081526020016000206000015414156200032a576001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101839080600181540180825580915050906001820390600052602060002001600090919290919091505503600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000848152602001908152602001600020600101819055505b620003a381600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600085815260200190815260200160002060000154620004a764010000000002620028c3179091906401000000009004565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000848152602001908152602001600020600001819055506200045f81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004a764010000000002620028c3179091906401000000009004565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000808284019050838110151515620004bc57fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200050957805160ff19168380011785556200053a565b828001600101855582156200053a579182015b82811115620005395782518255916020019190600101906200051c565b5b5090506200054991906200054d565b5090565b6200057291905b808211156200056e57600081600090555060010162000554565b5090565b90565b61295e80620005856000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461012d578063073b423d146101bd578063095ea7b31461023657806318160ddd1461029b578063195c3eff146102c65780631cb0d4811461032157806321cda7901461040257806323b872dd1461049a5780632e1faf751461051f578063313ce5671461058e5780635c658165146105bf57806366188463146106365780636d0e5c031461069b57806370a08231146106f45780638ab1d6811461074b5780638da5cb5b1461078e57806395d89b41146107e5578063a9059cbb14610875578063d73dd623146108da578063dd62ed3e1461093f578063e380b7bd146109b6578063e43252d714610a17575b600080fd5b34801561013957600080fd5b50610142610a5a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610182578082015181840152602081019050610167565b50505050905090810190601f1680156101af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c957600080fd5b5061021c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610af8565b604051808215151515815260200191505060405180910390f35b34801561024257600080fd5b50610281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cef565b604051808215151515815260200191505060405180910390f35b3480156102a757600080fd5b506102b0610e6b565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b50610307600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e71565b604051808215151515815260200191505060405180910390f35b34801561032d57600080fd5b506103e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e91565b604051808215151515815260200191505060405180910390f35b34801561040e57600080fd5b50610443600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611147565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048657808201518184015260208101905061046b565b505050509050019250505060405180910390f35b3480156104a657600080fd5b50610505600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111e1565b604051808215151515815260200191505060405180910390f35b34801561052b57600080fd5b50610574600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611492565b604051808215151515815260200191505060405180910390f35b34801561059a57600080fd5b506105a361161e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105cb57600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611631565b6040518082815260200191505060405180910390f35b34801561064257600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611656565b604051808215151515815260200191505060405180910390f35b3480156106a757600080fd5b506106da6004803603810190808035906020019092919080359060200190929190803590602001909291905050506118e7565b604051808215151515815260200191505060405180910390f35b34801561070057600080fd5b50610735600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a25565b6040518082815260200191505060405180910390f35b34801561075757600080fd5b5061078c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6e565b005b34801561079a57600080fd5b506107a3611b25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f157600080fd5b506107fa611b4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083a57808201518184015260208101905061081f565b50505050905090810190601f1680156108675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088157600080fd5b506108c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611be9565b604051808215151515815260200191505060405180910390f35b3480156108e657600080fd5b50610925600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d10565b604051808215151515815260200191505060405180910390f35b34801561094b57600080fd5b506109a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f0c565b6040518082815260200191505060405180910390f35b3480156109c257600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f93565b6040518082815260200191505060405180910390f35b348015610a2357600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ff4565b005b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af05780601f10610ac557610100808354040283529160200191610af0565b820191906000526020600020905b815481529060010190602001808311610ad357829003601f168201915b505050505081565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b5257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515610b8e57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020600001548211151515610bf357600080fd5b610bfe3385846120ab565b610c098584846124df565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0e879e07f7f6a4649b35412f7e1b7d4f31e250bad0c37a6fdd49b6ac58d7d7d586868660405180848152602001838152602001828152602001935050505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050949350505050565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610d7b57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b60066020528060005260406000206000915054906101000a900460ff1681565b600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515610ed057600080fd5b82518451141515610ee057600080fd5b60648451101515610ef057600080fd5b600090505b8351811015610fc45760008382815181101515610f0e57fe5b90602001906020020151111515610f2457600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008583815181101515610f7657fe5b906020019060200201518152602001908152602001600020600001548382815181101515610fa057fe5b9060200190602002015111151515610fb757600080fd5b8080600101915050610ef5565b600090505b835181101561113b5761100c33868684815181101515610fe557fe5b906020019060200201518685815181101515610ffd57fe5b90602001906020020151612764565b151561101757600080fd5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbba8a6f1ace6d0ccb2089d879d1bf044d9153802c1d010c514711798d413828c868481518110151561107457fe5b90602001906020020151868581518110151561108c57fe5b90602001906020020151604051808381526020018281526020019250505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858481518110151561110f57fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050610fc9565b60019150509392505050565b6060600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054806020026020016040519081016040528092919081815260200182805480156111d557602002820191906000526020600020905b8154815260200190600101908083116111c1575b50505050509050919050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561122057600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561126e57600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156112f957600080fd5b82905061138b83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461278890919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114168585836127a1565b151561142157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156114cf57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600084815260200190815260200160002060000154821115151561153457600080fd5b61154033858585612764565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbba8a6f1ace6d0ccb2089d879d1bf044d9153802c1d010c514711798d413828c8585604051808381526020018281526020019250505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600360009054906101000a900460ff1681565b6008602052816000526040600020602052806000526040600020600091509150505481565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611767576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117fb565b61177a838261278890919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561194157600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008581526020019081526020016000206000015482111515156119a657600080fd5b6119b13385846120ab565b6119bc3384846124df565b3373ffffffffffffffffffffffffffffffffffffffff167f2dd60e2723c80dc3265bfd38ca731edd7fc9e2fca2da5a5df62759c27f162e4185858560405180848152602001838152602001828152602001935050505060405180910390a2600190509392505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aca57600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be15780601f10611bb657610100808354040283529160200191611be1565b820191906000526020600020905b815481529060010190602001808311611bc457829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611c2857600080fd5b6000548311151515611c3957600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515611c8757600080fd5b829050611c953385836127a1565b1515611ca057600080fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000611da182600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c390919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600083815260200190815260200160002060000154905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561205057600080fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008061210083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461278890919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121ac83600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008781526020019081526020016000206000015461278890919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020600001819055506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008681526020019081526020016000206000015414156124d857600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020600101549150600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561235557fe5b9060005260206000200154905080600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156123b257fe5b906000526020600020018190555081600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600083815260200190815260200160002060010181905550600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548091906001900361247091906128e1565b50600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020600080820160009055600182016000905550505b5050505050565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000848152602001908152602001600020600001541415612607576001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101839080600181540180825580915050906001820390600052602060002001600090919290919091505503600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000848152602001908152602001600020600101819055505b61267081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020600001546128c390919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008481526020019081526020016000206000018190555061271c81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60006127718584846120ab565b61277c8484846124df565b60019050949350505050565b600082821115151561279657fe5b818303905092915050565b6000806000808492505b60008311156128b557600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600081548110151561280457fe5b90600052602060002001549150600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600083815260200190815260200160002060000154905082811015156128935761287f87878486612764565b151561288a57600080fd5b600092506128b0565b80830392506128a487878484612764565b15156128af57600080fd5b5b6127ab565b600193505050509392505050565b60008082840190508381101515156128d757fe5b8091505092915050565b81548183558181111561290857818360005260206000209182019101612907919061290d565b5b505050565b61292f91905b8082111561292b576000816000905550600101612913565b5090565b905600a165627a7a72305820e0a39e2a3ae84b03190a6e9bea47ad4f4139933274c98aee8d816033d40365310029

   Swarm Source:
bzzr://e0a39e2a3ae84b03190a6e9bea47ad4f4139933274c98aee8d816033d4036531

 

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.