Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 11 txns
Token Tracker: ForeverRose (ROSE)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x841594f47b822f66ab7cf3c631fbf07c0b195b1dat txn 0x394e6d4b17080828c3bbdb677be7d6203f0a1859bb4d50f590cbc57be0d1b4c0
 Latest 11 txns

TxHash Age From To Value [TxFee]
0x1caaed226709e399d1dadfd4772514268f7617f157501c8b0feebde0104ed0dd259 days 7 hrs ago0xd62b063b5f26f6b7912b28958d3c2cda1b4463f8  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00294378
0x50dd7b26d26c94b44bebc193ec3641a6e9c152ee9ea33aef24d46afb35b95d8f328 days 8 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00158126
0x036619b5c1f5798735b900c1d63b3fd9d8583deb05b1b7b6b07cc01671d2a69c333 days 8 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00041996
0xea45a7f07a4a1b058969c900452b099598dcfcfff7b81f4089d32e96e0f2c310337 days 16 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00079185
0x0ea2292cbb62534fbf286a9339672b4090e047a5f473f030d284b7031227ecca337 days 21 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00079185
0xdfaf19edf147afcfd5a9a35271c8ad9e7d8a08168391f652c0951d04fb4e0d10338 days 6 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00079121
0x67967ca3abd29103a9a5231dc5fe7ff47058ce7a86236702674283a7e8ae84b2338 days 7 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00079121
0x035dce1416f6cf8dd356e7b1197939564563af9112b1df5a4514e07c3e94c7ed338 days 17 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.00079185
0xc96b5315fbf288b62a212fc3dcedfbafdc9084b88c82a1a7d7962cfcc979f0e9338 days 19 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.0015837
0xf7f935bdbed8ec785927dff37a27ec79373dbbbd5935f937c47896960379a61a338 days 20 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN   0xabea06495abd2498ef7371bda82b0c5269cb8eff0 Ether0.000395925
0x394e6d4b17080828c3bbdb677be7d6203f0a1859bb4d50f590cbc57be0d1b4c0341 days 8 hrs ago0x841594f47b822f66ab7cf3c631fbf07c0b195b1d  IN    Contract Creation0 Ether0.003464608
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: DivisibleForeverRose
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;


/*============================================================================= */
/*=============================ERC721 interface==================================== */
/*============================================================================= */

/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
/// @author Yumin.yang
contract ERC721 {
    // Required methods
    function totalSupply() public view returns (uint256 total);
    function balanceOf(address _owner) public view returns (uint256 balance);
    //function ownerOf(uint256 _tokenId) external view returns (address owner);
    //function approve(address _to, uint256 _tokenId) external;
    function transfer(address _to, uint256 _tokenId) external;
    //function transferFrom(address _from, address _to, uint256 _tokenId) external;

    // Events
    event Transfer(address from, address to, uint256 tokenId);
    //event Approval(address owner, address approved, uint256 tokenId);

}


/*============================================================================= */
/*=============================Forever Rose==================================== */
/*============================================================================= */

/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
/// @author Yumin.yang
contract DivisibleForeverRose is ERC721 {
  
    //This contract's owner
    address private contractOwner;

    
    //Gift token storage.
    mapping(uint => GiftToken) giftStorage;

    // Total supply of this token. 
	uint public totalSupply = 10; 

    bool public tradable = false;

    uint foreverRoseId = 1;

    // Divisibility of ownership over a token  
	mapping(address => mapping(uint => uint)) ownerToTokenShare;

	// How much owners have of a token
	mapping(uint => mapping(address => uint)) tokenToOwnersHoldings;

    // If Forever Rose has been created
	mapping(uint => bool) foreverRoseCreated;

    string public name;  
    string public symbol;           
    uint8 public decimals = 1;                                 
    string public version = "1.0";    

    //Special gift token
    struct GiftToken {
        uint256 giftId;
    } 

    //@dev Constructor 
    function DivisibleForeverRose() public {
        contractOwner = msg.sender;
        name = "ForeverRose";
        symbol = "ROSE";  

        // Create Forever rose
        GiftToken memory newGift = GiftToken({
            giftId: foreverRoseId
        });
        giftStorage[foreverRoseId] = newGift;

        
        foreverRoseCreated[foreverRoseId] = true;
        _addNewOwnerHoldingsToToken(contractOwner, foreverRoseId, totalSupply);
        _addShareToNewOwner(contractOwner, foreverRoseId, totalSupply);

    }
    
    // Fallback funciton
    function() public {
        revert();
    }

    function totalSupply() public view returns (uint256 total) {
        return totalSupply;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return ownerToTokenShare[_owner][foreverRoseId];
    }

    // We use parameter '_tokenId' as the divisibility
    function transfer(address _to, uint256 _tokenId) external {

        // Requiring this contract be tradable
        require(tradable == true);

        require(_to != address(0));
        require(msg.sender != _to);

        // Take _tokenId as divisibility
        uint256 _divisibility = _tokenId;

        // Requiring msg.sender has Holdings of Forever rose
        require(tokenToOwnersHoldings[foreverRoseId][msg.sender] >= _divisibility);

    
        // Remove divisibilitys from old owner
        _removeShareFromLastOwner(msg.sender, foreverRoseId, _divisibility);
        _removeLastOwnerHoldingsFromToken(msg.sender, foreverRoseId, _divisibility);

        // Add divisibilitys to new owner
        _addNewOwnerHoldingsToToken(_to, foreverRoseId, _divisibility);
        _addShareToNewOwner(_to, foreverRoseId, _divisibility);

        // Trigger Ethereum Event
        Transfer(msg.sender, _to, foreverRoseId);

    }

    // Transfer gift to a new owner.
    function assignSharedOwnership(address _to, uint256 _divisibility)
                               onlyOwner external returns (bool success) 
                               {

        require(_to != address(0));
        require(msg.sender != _to);
        require(_to != address(this));
        
        // Requiring msg.sender has Holdings of Forever rose
        require(tokenToOwnersHoldings[foreverRoseId][msg.sender] >= _divisibility);

        //Remove ownership from oldOwner(msg.sender)
        _removeLastOwnerHoldingsFromToken(msg.sender, foreverRoseId, _divisibility);
        _removeShareFromLastOwner(msg.sender, foreverRoseId, _divisibility);

         //Add ownership to NewOwner(address _to)
        _addShareToNewOwner(_to, foreverRoseId, _divisibility); 
        _addNewOwnerHoldingsToToken(_to, foreverRoseId, _divisibility);

        // Trigger Ethereum Event
        Transfer(msg.sender, _to, foreverRoseId);

        return true;
    }

    function getForeverRose() public view returns(uint256 _foreverRoseId) {
        return giftStorage[foreverRoseId].giftId;
    }

    // Turn on this contract to be tradable, so owners can transfer their token
    function turnOnTradable() public onlyOwner {
        tradable = true;
    }
    
    // ------------------------------ Helper functions (internal functions) ------------------------------

	// Add divisibility to new owner
	function _addShareToNewOwner(address _owner, uint _tokenId, uint _units) internal {
		ownerToTokenShare[_owner][_tokenId] += _units;
	}

	
	// Add the divisibility to new owner
	function _addNewOwnerHoldingsToToken(address _owner, uint _tokenId, uint _units) internal {
		tokenToOwnersHoldings[_tokenId][_owner] += _units;
	}
    
    // Remove divisibility from last owner
	function _removeShareFromLastOwner(address _owner, uint _tokenId, uint _units) internal {
		ownerToTokenShare[_owner][_tokenId] -= _units;
	}
    
    // Remove divisibility from last owner 
	function _removeLastOwnerHoldingsFromToken(address _owner, uint _tokenId, uint _units) internal {
		tokenToOwnersHoldings[_tokenId][_owner] -= _units;
	}

    // Withdraw Ether from this contract to Multi sigin wallet
    function withdrawEther() onlyOwner public returns(bool) {
        return contractOwner.send(this.balance);
    }

    // ------------------------------ Modifier -----------------------------------


     modifier onlyExistentToken(uint _tokenId) {
	    require(foreverRoseCreated[_tokenId] == true);
	    _;
	}

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

}


/*============================================================================= */
/*=============================MultiSig Wallet================================= */
/*============================================================================= */

/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

   //Load Gifto and IAMICOIN Contracts to this contract.
    //ERC20 private Gifto = ERC20(0x92e87a5622cf9955d1062822454701198a028a72);
    //ERC20 private IAMIToken = ERC20(0xee10a06b2a0cf7e04115edfbee46242136eb6ae1);

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);
    event CoinCreation(address coin);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;
    bool flag = true;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            revert();
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            revert();
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            revert();
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == 0)
            revert();
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            revert();
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            revert();
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            revert();
        _;
    }

    modifier notNull(address _address) {
        if (_address == 0)
            revert();
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            revert();
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        payable
    {
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    function MultiSigWallet(address[] _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == 0)
                revert();
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        OwnerRemoval(owner);
        OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction tx = transactions[transactionId];
            tx.executed = true;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        constant
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
        internal
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        constant
        returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        constant
        returns (address[] _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        constant
        returns (uint[] _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }

    // Transfer GTO to an outside account
    /*function _withdrawGTO(address _to, uint256 _balance) onlyOwner internal { 
        require(Gifto.balanceOf(address(this)) >= _balance);
        Gifto.transfer(_to, _balance); 
    }

    // Transfer IAMI to an outside account
    function _withdrawIAMI(address _to, uint256 _balance) onlyOwner internal { 
        require(IAMIToken.balanceOf(address(this)) >= _balance);
        IAMIToken.transfer(_to, _balance); 
    }

    // Change Gifto contract's address or another type of token, like Ether.
    function setIAMITokenAddress(address newAddress) public onlyOwner {
        IAMIToken = ERC20(newAddress);
    }

    function setGiftoAddress(address newAddress) public onlyOwner {
        Gifto = ERC20(newAddress);
    }*/

    modifier onlyOwner() {
        require(isOwner[msg.sender] == true);
        _;
    }

    /// @dev Create new forever rose.
    function createForeverRose()
        external
        onlyWallet
    {
        require(flag == true);
        CoinCreation(new DivisibleForeverRose());
        flag = false;
    }
    

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_divisibility","type":"uint256"}],"name":"assignSharedOwnership","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"turnOnTradable","outputs":[],"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":"tradable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","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":"withdrawEther","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getForeverRose","outputs":[{"name":"_foreverRoseId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040908152600a60028190556003805460ff199081169091556001600481905582549091161790558051908101604052600381527f312e3000000000000000000000000000000000000000000000000000000000006020820152600b90805161006e929160200190610222565b50341561007a57600080fd5b6100826102a0565b60008054600160a060020a03191633600160a060020a031617905560408051908101604052600b81527f466f7265766572526f7365000000000000000000000000000000000000000000602082015260089080516100e4929160200190610222565b5060408051908101604052600481527f524f5345000000000000000000000000000000000000000000000000000000006020820152600990805161012c929160200190610222565b5060206040519081016040908152600454808352600090815260016020522090915081908151905550600480546000908152600760205260408120805460ff1916600117905554905460025461019992600160a060020a031691906401000000006107976101c982021704565b6000546004546002546101c392600160a060020a0316919064010000000061076b6101f682021704565b506102cf565b6000918252600660209081526040808420600160a060020a03909516845293905291902080549091019055565b600160a060020a0390921660009081526005602090815260408083209383529290522080549091019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061026357805160ff1916838001178555610290565b82800160010185558215610290579182015b82811115610290578251825591602001919060010190610275565b5061029c9291506102b2565b5090565b60206040519081016040526000815290565b6102cc91905b8082111561029c57600081556001016102b8565b90565b6107f0806102de6000396000f3006060604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100c957806318160ddd1461015357806325e3d7b4146101785780632fb1746d146101ae578063313ce567146101c357806354840c6e146101ec57806354fd4d50146101ff57806370a08231146102125780637362377b1461023157806395d89b4114610244578063a9059cbb14610257578063df9e33e814610279575b34156100c457600080fd5b600080fd5b34156100d457600080fd5b6100dc61028c565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610118578082015183820152602001610100565b50505050905090810190601f1680156101455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015e57600080fd5b61016661032a565b60405190815260200160405180910390f35b341561018357600080fd5b61019a600160a060020a0360043516602435610330565b604051901515815260200160405180910390f35b34156101b957600080fd5b6101c1610465565b005b34156101ce57600080fd5b6101d661048f565b60405160ff909116815260200160405180910390f35b34156101f757600080fd5b61019a610498565b341561020a57600080fd5b6100dc6104a1565b341561021d57600080fd5b610166600160a060020a036004351661050c565b341561023c57600080fd5b61019a610534565b341561024f57600080fd5b6100dc610582565b341561026257600080fd5b6101c1600160a060020a03600435166024356105ed565b341561028457600080fd5b6101666106fb565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103225780601f106102f757610100808354040283529160200191610322565b820191906000526020600020905b81548152906001019060200180831161030557829003601f168201915b505050505081565b60025490565b6000805433600160a060020a0390811691161461034c57600080fd5b600160a060020a038316151561036157600080fd5b82600160a060020a031633600160a060020a03161415151561038257600080fd5b30600160a060020a031683600160a060020a0316141515156103a357600080fd5b6004546000908152600660209081526040808320600160a060020a0333168452909152902054829010156103d657600080fd5b6103e33360045484610710565b6103f0336004548461073e565b6103fd836004548461076b565b61040a8360045484610797565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef3384600454604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a150600192915050565b60005433600160a060020a0390811691161461048057600080fd5b6003805460ff19166001179055565b600a5460ff1681565b60035460ff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103225780601f106102f757610100808354040283529160200191610322565b600160a060020a03166000908152600560209081526040808320600454845290915290205490565b6000805433600160a060020a0390811691161461055057600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f194505050505090565b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103225780601f106102f757610100808354040283529160200191610322565b60035460009060ff16151560011461060457600080fd5b600160a060020a038316151561061957600080fd5b82600160a060020a031633600160a060020a03161415151561063a57600080fd5b506004546000908152600660209081526040808320600160a060020a033316845290915290205481908190101561067057600080fd5b61067d336004548361073e565b61068a3360045483610710565b6106978360045483610797565b6106a4836004548361076b565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef3384600454604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b60045460009081526001602052604090205490565b6000918252600660209081526040808420600160a060020a0390951684529390529190208054919091039055565b600160a060020a039092166000908152600560209081526040808320938352929052208054919091039055565b600160a060020a0390921660009081526005602090815260408083209383529290522080549091019055565b6000918252600660209081526040808420600160a060020a039095168452939052919020805490910190555600a165627a7a7230582077811e630f4e1dfbc50c1b01b5758f237974943ceae9234357417417ab89e2c30029

   Swarm Source:
bzzr://77811e630f4e1dfbc50c1b01b5758f237974943ceae9234357417417ab89e2c3

 

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