Sponsored:   Color Platform: Decentralized App Store - Special Airdrop For Everyone (~17 Sep), Register NOW!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 8 txns
 Latest 8 txns

TxHash Age From To Value [TxFee]
0x9d18a9f39388a9e7cf3b58eab1b6a0ce766806e284c5150a7d828dcdf10f10f6151 days 48 mins ago0x14f05a4593ee1808541525a5aa39e344381251e6  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.00015484
0x462a23a5f0fd287c4e2ed87b82d98c23d32b192327303570eb8bf359a7adcfc8153 days 3 hrs ago0x14f05a4593ee1808541525a5aa39e344381251e6  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.00022984
0x43afff034ed7bc68bb1d3a2e2a1bebf9689135786fe538d53f39cdfac0ec4238153 days 3 hrs ago0x14f05a4593ee1808541525a5aa39e344381251e6  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.00022984
0x6658966cd8341ed0864710db2876e13e2e135a798f92e20de7ce616f1f7878bc153 days 3 hrs ago0x14f05a4593ee1808541525a5aa39e344381251e6  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.00022984
0x2d9c064c0c02de1b34c15a9982ffc15cc2c44eddddcb6a3dd6d4a05699f9c26d153 days 4 hrs ago0xda291d62879a8a206ee6fbf198bc433aeef9a6a7  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.000033613
0x8a8eadabccbbfd9bcebe8fb4264069f89462ec8306e0358de300bf745f6ebac2154 days 3 hrs ago0xda291d62879a8a206ee6fbf198bc433aeef9a6a7  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.000069448
0x53f3f41bffec4e2e68c7107e43d41cc15c03e8e3d2777d12f9b14778a72ebb80154 days 12 hrs ago0x45a9361bad443c13f0fcfcaed6b42c968e7490f1  IN   0x53877b7c93c80c9631c73c5feda1e421d836a39c0 Ether0.000088426
0xcdd9745e3290dfe742a042e305916251937ebb3fb971df4251974174ffc965f1155 days 14 hrs ago0x45a9361bad443c13f0fcfcaed6b42c968e7490f1  IN    Contract Creation0 Ether0.002161595
[ 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: CryptaurDepository
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/*
This file is part of the Cryptaur Contract.

The CryptaurToken Contract is free software: you can redistribute it and/or
modify it under the terms of the GNU lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. See the GNU lesser General Public License
for more details.

You should have received a copy of the GNU lesser General Public License
along with the CryptaurToken Contract. If not, see <http://www.gnu.org/licenses/>.

@author Ilya Svirin <[email protected]>
Donation address 0x3Ad38D1060d1c350aF29685B2b8Ec3eDE527452B
*/

pragma solidity ^0.4.19;

contract owned {

    address public owner;
    address public candidate;

    function owned() payable public {
        owner = msg.sender;
    }
    
    modifier onlyOwner {
        require(owner == msg.sender);
        _;
    }

    function changeOwner(address _owner) onlyOwner public {
        candidate = _owner;
    }
    
    function confirmOwner() public {
        require(candidate == msg.sender);
        owner = candidate;
        delete candidate;
    }
}

/**
 * @title Part of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Base {
    uint public totalSupply;
    function balanceOf(address who) public constant returns (uint);
    function transfer(address to, uint value) public;
}

contract CryptaurRewards {
    function payment(address _buyer, address _seller, uint _amount, address _opinionLeader) public returns(uint fee);
}

contract CryputarReserveFund {
    function depositNotification(uint _amount) public;
    function withdrawNotification(uint _amount) public;
}

/**
 * @title Allows to store liked adsress(slave address) connected to the main address (master address)
 */
contract AddressBook {

    struct AddressRelations {
        SlaveDictionary slaves;
        bool hasValue;
    }

    struct SlaveDictionary
    {
        address[] values;
        mapping(address => uint) keys;
    }

    event WalletLinked(address indexed _master, address indexed _slave);
    event WalletUnlinked(address indexed _master, address indexed _slave);
    event AddressChanged(address indexed _old, address indexed _new);

    mapping(address => AddressRelations) private masterToSlaves;
    mapping(address => address) private slaveToMasterAddress;
    uint8 public maxLinkedWalletCount = 5;

    /**
     * Only owner of master wallet can add additional wallet.
     */
    function linkToMasterWalletInternal(address _masterWallet, address _linkedWallet) internal {
        require(_masterWallet != _linkedWallet && _linkedWallet != address(0));
        require(isMasterWallet(_masterWallet));
        require(!isLinkedWallet(_linkedWallet) && !isMasterWallet(_linkedWallet));
        AddressRelations storage rel = masterToSlaves[_masterWallet];
        require(rel.slaves.values.length < maxLinkedWalletCount);    
        rel.slaves.values.push(_linkedWallet);
        rel.slaves.keys[_linkedWallet] = rel.slaves.values.length - 1;
        slaveToMasterAddress[_linkedWallet] = _masterWallet;
        WalletLinked(_masterWallet, _linkedWallet);
    }
 
    function unLinkFromMasterWalletInternal(address _masterWallet, address _linkedWallet) internal {
        require(_masterWallet != _linkedWallet && _linkedWallet != address(0));
        require(_masterWallet == getMasterWallet(_linkedWallet));
        SlaveDictionary storage slaves = masterToSlaves[_masterWallet].slaves;
        uint indexToDelete = slaves.keys[_linkedWallet];
        address keyToMove = slaves.values[slaves.values.length - 1];
        slaves.values[indexToDelete] = keyToMove;
        slaves.keys[keyToMove] = indexToDelete;
        slaves.values.length--;
        delete slaves.keys[_linkedWallet];
        delete slaveToMasterAddress[_linkedWallet];
        WalletUnlinked(_masterWallet, _linkedWallet);
    }

    function getLinkedWallets(address _wallet) public view returns (address[]) {
        return masterToSlaves[_wallet].slaves.values;
    }

    function isMasterWallet(address _addr) internal constant returns (bool) {
        return masterToSlaves[_addr].hasValue;
    }

    function isLinkedWallet(address _addr) internal constant returns (bool) {
        return slaveToMasterAddress[_addr] != address(0);
    }

    /**
     * Guess that address book already had changing address.
     */ 
    function applyChangeWalletAddress(address _old, address _new) internal {
        require(isMasterWallet(_old) || isLinkedWallet(_old));
        require(_new != address(0));
        if (isMasterWallet(_old)) {
            // Cannt change master address with existed linked
            require(!isLinkedWallet(_new));
            require(masterToSlaves[_new].slaves.values.length == 0);
            changeMasterAddress(_old, _new);
        }
        else {
            // Cannt change linked address with existed master and linked to another master
            require(!isMasterWallet(_new) && !isLinkedWallet(_new));
            changeLinkedAddress(_old, _new);
        }
    }

    function changeLinkedAddress(address _old, address _new) private {
        slaveToMasterAddress[_new] = slaveToMasterAddress[_old];     
        SlaveDictionary storage slaves = masterToSlaves[slaveToMasterAddress[_new]].slaves;
        uint index = slaves.keys[_old];
        slaves.values[index] = _new;
        delete slaveToMasterAddress[_old];
    }
    
    function changeMasterAddress(address _old, address _new) private {    
        masterToSlaves[_new] = masterToSlaves[_old];  
        SlaveDictionary storage slaves = masterToSlaves[_new].slaves;
        for (uint8 i = 0; i < slaves.values.length; ++i)
            slaveToMasterAddress[slaves.values[i]] = _new;
        delete masterToSlaves[_old];
    }

    function addMasterWallet(address _master) internal {
        require(_master != address(0));
        masterToSlaves[_master].hasValue = true;
    }

    function getMasterWallet(address _wallet) internal constant returns(address) {
        if(isMasterWallet(_wallet))
            return _wallet;
        return slaveToMasterAddress[_wallet];  
    }

    /**
     * Try to find master address by any other; otherwise add to address book as master.
     */
    function getOrAddMasterWallet(address _wallet) internal returns (address) {
        address masterWallet = getMasterWallet(_wallet);
        if (masterWallet == address(0))
            addMasterWallet(_wallet);
        return _wallet;
    }
}

contract CryptaurDepository is owned, AddressBook {
    enum UnlimitedMode {UNLIMITED,LIMITED}

    event Deposit(address indexed _who, uint _amount, bytes32 _txHash);
    event Withdraw(address indexed _who, uint _amount);
    event Payment(address indexed _buyer, address indexed _seller, uint _amount, address indexed _opinionLeader, bool _dapp);
    event Freeze(address indexed _who, bool _freeze);
    event Share(address indexed _who, address indexed _dapp, uint _amount);

    ERC20Base cryptaurToken = ERC20Base(0x88d50B466BE55222019D71F9E8fAe17f5f45FCA1);
    address cryptaurRecovery;
    address cryptaurRewards;
    address cryptaurReserveFund;
    address backend;
    modifier onlyBackend {
        require(backend == msg.sender);
        _;
    }

    modifier onlyOwnerOrBackend {
        require(owner == msg.sender || backend == msg.sender);
        _;
    }

    modifier notFreezed {
        require(freezedAll != true);
        _;
    }

    mapping(address => uint) internal balances;
    mapping(address => mapping (address => uint256)) public available;
    mapping(address => bool) public freezed;
    mapping(address => mapping(address => UnlimitedMode)) public unlimitedMode;
    bool freezedAll;
  
    function CryptaurDepository() owned() public {}

    function balanceOf(address _who) constant public returns (uint) {
        return balances[getMasterWallet(_who)];
    }

    function setUnlimitedMode(bool _unlimited, address _dapp) public {
        address masterWallet = getOrAddMasterWallet(msg.sender);
        unlimitedMode[masterWallet][_dapp] = _unlimited ? UnlimitedMode.UNLIMITED : UnlimitedMode.LIMITED;
    }

    function transferToToken(address[] _addresses) public onlyOwnerOrBackend {
        for (uint index = 0; index < _addresses.length; index++) {
            address addr = _addresses[index];
            uint amount = balances[addr];
            if (amount > 0) {
                balances[addr] = 0;
                cryptaurToken.transfer(addr, amount);
                Withdraw(addr, amount);
            }        
        }
    }

    function setBackend(address _backend) onlyOwner public {
        backend = _backend;
    }

    function setCryptaurRecovery(address _cryptaurRecovery) onlyOwner public {
        cryptaurRecovery = _cryptaurRecovery;
    }

    function setCryptaurToken(address _cryptaurToken) onlyOwner public {
        cryptaurToken = ERC20Base(_cryptaurToken);
    }

    function setCryptaurRewards(address _cryptaurRewards) onlyOwner public {
        cryptaurRewards = _cryptaurRewards;
    }

    function setCryptaurReserveFund(address _cryptaurReserveFund) onlyOwner public {
        cryptaurReserveFund = _cryptaurReserveFund;
    }
    
    function changeAddress(address _old, address _new) public {
        require(msg.sender == cryptaurRecovery);
        applyChangeWalletAddress(_old, _new);

        balances[_new] += balances[_old];
        balances[_old] = 0;
        AddressChanged(_old, _new);
    }

    function linkToMasterWallet(address _masterWaller, address _linkedWaller) public {
        require(msg.sender == owner || msg.sender == backend || msg.sender == cryptaurRecovery);
        linkToMasterWalletInternal(_masterWaller, _linkedWaller);
    }

    function unLinkFromMasterWallet(address _masterWaller, address _linkedWaller) public {
        require(msg.sender == owner || msg.sender == backend || msg.sender == cryptaurRecovery);
        unLinkFromMasterWalletInternal(_masterWaller, _linkedWaller);
    }

    function setMaxLinkedWalletCount(uint8 _newMaxCount) public onlyOwnerOrBackend {
        maxLinkedWalletCount = _newMaxCount;
    }
    
    function freeze(address _who, bool _freeze) onlyOwner public {
        address masterWallet = getMasterWallet(_who);
        if (masterWallet == address(0))
            masterWallet = _who;
        freezed[masterWallet] = _freeze;
        Freeze(masterWallet, _freeze);
    }

    function freeze(bool _freeze) public onlyOwnerOrBackend {
        freezedAll = _freeze;
    }
    
    function deposit(address _who, uint _amount, bytes32 _txHash) onlyBackend public {
        address masterWallet = getOrAddMasterWallet(_who);
        balances[masterWallet] += _amount;
        Deposit(masterWallet, _amount, _txHash);
    }
    
    function withdraw(uint _amount) public notFreezed {
        address masterWallet = getMasterWallet(msg.sender);   
        require(balances[masterWallet] >= _amount);
        require(!freezed[masterWallet]);
        balances[masterWallet] -= _amount;
        cryptaurToken.transfer(masterWallet, _amount);
        Withdraw(masterWallet, _amount);
    }

    function balanceOf2(address _who, address _dapp) constant public returns (uint) { 
        return balanceOf2Internal(getMasterWallet(_who), _dapp);
    }
    
    function balanceOf2Internal(address _who, address _dapp) constant internal returns (uint) {
        uint avail;
        if (!freezed[_who]) {
            if (unlimitedMode[_who][_dapp] == UnlimitedMode.UNLIMITED) {
                avail = balances[_who];
            } 
            else {
                avail = available[_who][_dapp];
                if (avail > balances[_who])
                    avail = balances[_who];
            }
        }
        return avail;
    }
    /**
     * @dev Function pay wrapper. Using only for dapp.
     */
    function pay2(address _seller, uint _amount, address _opinionLeader) public notFreezed {
        address dapp = getOrAddMasterWallet(msg.sender);
        address seller = getOrAddMasterWallet(_seller);
        payInternal(dapp, seller, _amount, _opinionLeader);
        available[seller][dapp] += _amount;
    }

    function pay(address _seller, uint _amount, address _opinionLeader) public notFreezed {
        address buyer = getOrAddMasterWallet(msg.sender);
        address seller = getOrAddMasterWallet(_seller);
        payInternal(buyer, seller, _amount, _opinionLeader);
    }
    
    /**
     * @dev Common internal pay function.
     * OpinionLeader is optional, can be zero.
     */
    function payInternal(address _buyer, address _seller, uint _amount, address _opinionLeader) internal {    
        require(balances[_buyer] >= _amount);
        uint fee;
        if (cryptaurRewards != 0 && cryptaurReserveFund != 0) {
            fee = CryptaurRewards(cryptaurRewards).payment(_buyer, _seller, _amount, _opinionLeader);
        }
        balances[_buyer] -= _amount;
        balances[_seller] += _amount - fee;
        if (fee != 0) {
            balances[cryptaurReserveFund] += fee;
            CryputarReserveFund(cryptaurReserveFund).depositNotification(_amount);
        }
        Payment(_buyer, _seller, _amount, _opinionLeader, false);
    }
    
    function payDAPP(address _buyer, uint _amount, address _opinionLeader) public notFreezed {
        address buyerMasterWallet = getOrAddMasterWallet(_buyer);
        require(balanceOf2Internal(buyerMasterWallet, msg.sender) >= _amount);
        uint fee;
        if (cryptaurRewards != 0 && cryptaurReserveFund != 0) {
            fee = CryptaurRewards(cryptaurRewards).payment(buyerMasterWallet, msg.sender, _amount, _opinionLeader);
        }
        balances[buyerMasterWallet] -= _amount;
        balances[msg.sender] += _amount - fee; 
        if (unlimitedMode[buyerMasterWallet][msg.sender] == UnlimitedMode.LIMITED)
            available[buyerMasterWallet][msg.sender] -= _amount;
        if (fee != 0) {
            balances[cryptaurReserveFund] += fee;
            CryputarReserveFund(cryptaurReserveFund).depositNotification(_amount);
        }
        Payment(buyerMasterWallet, msg.sender, _amount, _opinionLeader, true);
    }

    function shareBalance(address _dapp, uint _amount) public notFreezed {
        address masterWallet = getMasterWallet(msg.sender);
        require(masterWallet != address(0));
        available[masterWallet][_dapp] = _amount;
        Share(masterWallet, _dapp, _amount);
    }
    
    function transferFromFund(address _to, uint _amount) public {
        require(msg.sender == owner || msg.sender == cryptaurRewards || msg.sender == backend);
        require(cryptaurReserveFund != address(0));
        require(balances[cryptaurReserveFund] >= _amount);
        address masterWallet = getOrAddMasterWallet(_to);
        balances[masterWallet] += _amount;
        balances[cryptaurReserveFund] -= _amount;
        CryputarReserveFund(cryptaurReserveFund).withdrawNotification(_amount);
    }
}

// test only
contract CryptaurDepositoryTest is CryptaurDepository {
    function CryptaurDepositoryTest() CryptaurDepository() {}

    // test only
    function testDrip(address _who, address _dapp, uint _amount) public {
        require(msg.sender == owner || msg.sender == backend);
        address masterWallet = getOrAddMasterWallet(_who);
        balances[masterWallet] = _amount;
        available[masterWallet][_dapp] = _amount;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"maxLinkedWalletCount","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newMaxCount","type":"uint8"}],"name":"setMaxLinkedWalletCount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_seller","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_opinionLeader","type":"address"}],"name":"pay2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_txHash","type":"bytes32"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"freezed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_masterWaller","type":"address"},{"name":"_linkedWaller","type":"address"}],"name":"linkToMasterWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"transferToToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"candidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"unlimitedMode","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cryptaurRewards","type":"address"}],"name":"setCryptaurRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unlimited","type":"bool"},{"name":"_dapp","type":"address"}],"name":"setUnlimitedMode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cryptaurReserveFund","type":"address"}],"name":"setCryptaurReserveFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_dapp","type":"address"}],"name":"balanceOf2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFromFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cryptaurRecovery","type":"address"}],"name":"setCryptaurRecovery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dapp","type":"address"},{"name":"_amount","type":"uint256"}],"name":"shareBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_freeze","type":"bool"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_buyer","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_opinionLeader","type":"address"}],"name":"payDAPP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"available","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"confirmOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_freeze","type":"bool"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_wallet","type":"address"}],"name":"getLinkedWallets","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_backend","type":"address"}],"name":"setBackend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cryptaurToken","type":"address"}],"name":"setCryptaurToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_masterWaller","type":"address"},{"name":"_linkedWaller","type":"address"}],"name":"unLinkFromMasterWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_old","type":"address"},{"name":"_new","type":"address"}],"name":"changeAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_seller","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_opinionLeader","type":"address"}],"name":"pay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_who","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_txHash","type":"bytes32"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_who","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_buyer","type":"address"},{"indexed":true,"name":"_seller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":true,"name":"_opinionLeader","type":"address"},{"indexed":false,"name":"_dapp","type":"bool"}],"name":"Payment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_who","type":"address"},{"indexed":false,"name":"_freeze","type":"bool"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_who","type":"address"},{"indexed":true,"name":"_dapp","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Share","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_master","type":"address"},{"indexed":true,"name":"_slave","type":"address"}],"name":"WalletLinked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_master","type":"address"},{"indexed":true,"name":"_slave","type":"address"}],"name":"WalletUnlinked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_old","type":"address"},{"indexed":true,"name":"_new","type":"address"}],"name":"AddressChanged","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260048054600560ff199091161761010060a860020a0319167488d50b466be55222019d71f9e8fae17f5f45fca100179055341561004057600080fd5b60008054600160a060020a033316600160a060020a0319909116179055611e368061006c6000396000f3006060604052600436106101715763ffffffff60e060020a6000350416630c8dfeda8114610176578063203643061461019f57806322d4e0fd146101ba57806326b3293f146101e35780632e1a7d4d14610208578063406f11f51461021e578063416e70f61461025157806362f5a23f146102765780636c8381f8146102c55780636f2ed7e1146102f457806370a082311461033d57806371fcc6721461036e578063880e87ed1461038d5780638da5cb5b146103b157806390935301146103c457806396784f45146103e35780639e1c6d6b14610408578063a4d995221461042a578063a6f9dae114610449578063b0ddaddd14610468578063b5bf15e51461048a578063b6acd931146104a2578063bbe430de146104cb578063bd9b6d86146104f0578063bf120ae514610503578063cdb0ec6b14610527578063da7fc24f14610599578063de17dfa9146105b8578063efb7fa77146105d7578063efe08a7d146105fc578063f0fcc6bb14610621575b600080fd5b341561018157600080fd5b61018961064a565b60405160ff909116815260200160405180910390f35b34156101aa57600080fd5b6101b860ff60043516610653565b005b34156101c557600080fd5b6101b8600160a060020a03600435811690602435906044351661069f565b34156101ee57600080fd5b6101b8600160a060020a036004351660243560443561070f565b341561021357600080fd5b6101b860043561079b565b341561022957600080fd5b61023d600160a060020a03600435166108d9565b604051901515815260200160405180910390f35b341561025c57600080fd5b6101b8600160a060020a03600435811690602435166108ee565b341561028157600080fd5b6101b8600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061094b95505050505050565b34156102d057600080fd5b6102d8610aa8565b604051600160a060020a03909116815260200160405180910390f35b34156102ff57600080fd5b610319600160a060020a0360043581169060243516610ab7565b6040518082600181111561032957fe5b60ff16815260200191505060405180910390f35b341561034857600080fd5b61035c600160a060020a0360043516610ad7565b60405190815260200160405180910390f35b341561037957600080fd5b6101b8600160a060020a0360043516610b0f565b341561039857600080fd5b6101b86004351515600160a060020a0360243516610b4c565b34156103bc57600080fd5b6102d8610baa565b34156103cf57600080fd5b6101b8600160a060020a0360043516610bb9565b34156103ee57600080fd5b61035c600160a060020a0360043581169060243516610bf6565b341561041357600080fd5b6101b8600160a060020a0360043516602435610c11565b341561043557600080fd5b6101b8600160a060020a0360043516610d39565b341561045457600080fd5b6101b8600160a060020a0360043516610d76565b341561047357600080fd5b6101b8600160a060020a0360043516602435610db3565b341561049557600080fd5b6101b86004351515610e50565b34156104ad57600080fd5b6101b8600160a060020a036004358116906024359060443516610e99565b34156104d657600080fd5b61035c600160a060020a03600435811690602435166110fc565b34156104fb57600080fd5b6101b8611119565b341561050e57600080fd5b6101b8600160a060020a0360043516602435151561115b565b341561053257600080fd5b610546600160a060020a03600435166111f5565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561058557808201518382015260200161056d565b505050509050019250505060405180910390f35b34156105a457600080fd5b6101b8600160a060020a0360043516611279565b34156105c357600080fd5b6101b8600160a060020a03600435166112b6565b34156105e257600080fd5b6101b8600160a060020a0360043581169060243516611306565b341561060757600080fd5b6101b8600160a060020a036004358116906024351661135f565b341561062c57600080fd5b6101b8600160a060020a0360043581169060243590604435166113e7565b60045460ff1681565b60005433600160a060020a039081169116148061067e575060085433600160a060020a039081169116145b151561068957600080fd5b6004805460ff191660ff92909216919091179055565b600d54600090819060ff161515600114156106b957600080fd5b6106c23361142a565b91506106cd8561142a565b90506106db82828686611458565b600160a060020a039081166000908152600a6020908152604080832094909316825292909252902080549092019091555050565b60085460009033600160a060020a0390811691161461072d57600080fd5b6107368461142a565b600160a060020a03811660008181526009602052604090819020805487019055919250907f1a771fe656018364a9369da21954bb3081cb08b0196c27e43ca59c7cae87273790859085905191825260208201526040908101905180910390a250505050565b600d5460009060ff161515600114156107b357600080fd5b6107bc33611649565b600160a060020a038116600090815260096020526040902054909150829010156107e557600080fd5b600160a060020a0381166000908152600b602052604090205460ff161561080b57600080fd5b600160a060020a03808216600090815260096020526040908190208054859003905560045461010090049091169063a9059cbb90839085905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561088457600080fd5b6102c65a03f1151561089557600080fd5b50505080600160a060020a03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405190815260200160405180910390a25050565b600b6020526000908152604090205460ff1681565b60005433600160a060020a0390811691161480610919575060085433600160a060020a039081169116145b80610932575060055433600160a060020a039081169116145b151561093d57600080fd5b610947828261167f565b5050565b600080548190819033600160a060020a039081169116148061097b575060085433600160a060020a039081169116145b151561098657600080fd5b600092505b8351831015610aa2578383815181106109a057fe5b90602001906020020151600160a060020a038116600090815260096020526040812054919350909150811115610a9757600160a060020a038083166000908152600960205260408082209190915560045461010090049091169063a9059cbb90849084905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a4557600080fd5b6102c65a03f11515610a5657600080fd5b50505081600160a060020a03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405190815260200160405180910390a25b60019092019161098b565b50505050565b600154600160a060020a031681565b600c60209081526000928352604080842090915290825290205460ff1681565b600060096000610ae684611649565b600160a060020a0316600160a060020a031681526020019081526020016000205490505b919050565b60005433600160a060020a03908116911614610b2a57600080fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b6000610b573361142a565b905082610b65576001610b68565b60005b600160a060020a038083166000908152600c60209081526040808320938716835292905220805460ff191660018381811115610ba057fe5b0217905550505050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610bd457600080fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b6000610c0a610c0484611649565b836117bf565b9392505050565b6000805433600160a060020a0390811691161480610c3d575060065433600160a060020a039081169116145b80610c56575060085433600160a060020a039081169116145b1515610c6157600080fd5b600754600160a060020a03161515610c7857600080fd5b600754600160a060020a031660009081526009602052604090205482901015610ca057600080fd5b610ca98361142a565b600160a060020a03808216600090815260096020526040808220805487019055600780548416835291819020805487900390559054929350911690638fe316fe9084905160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515610d2057600080fd5b6102c65a03f11515610d3157600080fd5b505050505050565b60005433600160a060020a03908116911614610d5457600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610d9157600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600d5460009060ff16151560011415610dcb57600080fd5b610dd433611649565b9050600160a060020a0381161515610deb57600080fd5b600160a060020a038082166000818152600a6020908152604080832094881680845294909152908190208590557f7e5b60af6b3836c632344d60c1e98fb27ce85b1413cf426afc4aec5541db45869085905190815260200160405180910390a3505050565b60005433600160a060020a0390811691161480610e7b575060085433600160a060020a039081169116145b1515610e8657600080fd5b600d805460ff1916911515919091179055565b600d54600090819060ff16151560011415610eb357600080fd5b610ebc8561142a565b915083610ec983336117bf565b1015610ed457600080fd5b600654600160a060020a031615801590610ef85750600754600160a060020a031615155b15610f8e57600654600160a060020a03166321fda8098333878760006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401602060405180830381600087803b1515610f7157600080fd5b6102c65a03f11515610f8257600080fd5b50505060405180519150505b600160a060020a03828116600081815260096020908152604080832080548a90039055339094168083528483208054878b03019055928252600c815283822092825291909152205460019060ff1681811115610fe657fe5b141561101a57600160a060020a038083166000908152600a6020908152604080832033909416835292905220805485900390555b801561109a5760078054600160a060020a0390811660009081526009602052604090819020805485019055915416906355976b059086905160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561108557600080fd5b6102c65a03f1151561109657600080fd5b5050505b82600160a060020a031633600160a060020a031683600160a060020a03167f489867e864059640e5bf77fdb061c5a3d1f29f8ca1e90ec999b64ac604d416f7876001604051918252151560208201526040908101905180910390a45050505050565b600a60209081526000928352604080842090915290825290205481565b60015433600160a060020a0390811691161461113457600080fd5b6001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000805433600160a060020a0390811691161461117757600080fd5b61118083611649565b9050600160a060020a03811615156111955750815b600160a060020a0381166000818152600b602052604090819020805460ff19168515151790557ff022c1fbc00daf4d2e6cdc62e0338b967bd3be38ccc3d7f8e0168bd668c7bcfe90849051901515815260200160405180910390a2505050565b6111fd611d1d565b600160a060020a03821660009081526002602090815260409182902080549092909182810201905190810160405280929190818152602001828054801561126d57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161124f575b50505050509050919050565b60005433600160a060020a0390811691161461129457600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146112d157600080fd5b60048054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b60005433600160a060020a0390811691161480611331575060085433600160a060020a039081169116145b8061134a575060055433600160a060020a039081169116145b151561135557600080fd5b6109478282611898565b60055433600160a060020a0390811691161461137a57600080fd5b6113848282611a18565b600160a060020a0380831660008181526009602052604080822080549486168084528284208054909601909555838352919091557f1552bf14c580c20e53a4227e9b76734da8e21905a818fdc5fa05dcb2891bb89e905160405180910390a35050565b600d54600090819060ff1615156001141561140157600080fd5b61140a3361142a565b91506114158561142a565b905061142382828686611458565b5050505050565b60008061143683611649565b9050600160a060020a03811615156114515761145183611ad4565b5090919050565b600160a060020a0384166000908152600960205260408120548390101561147e57600080fd5b600654600160a060020a0316158015906114a25750600754600160a060020a031615155b1561153857600654600160a060020a03166321fda8098686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401602060405180830381600087803b151561151b57600080fd5b6102c65a03f1151561152c57600080fd5b50505060405180519150505b600160a060020a0380861660009081526009602052604080822080548790039055918616815220805482850301905580156115e75760078054600160a060020a0390811660009081526009602052604090819020805485019055915416906355976b059085905160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b15156115d257600080fd5b6102c65a03f115156115e357600080fd5b5050505b81600160a060020a031684600160a060020a031686600160a060020a03167f489867e864059640e5bf77fdb061c5a3d1f29f8ca1e90ec999b64ac604d416f7866000604051918252151560208201526040908101905180910390a45050505050565b600061165482611b11565b15611660575080610b0a565b50600160a060020a039081166000908152600360205260409020541690565b600081600160a060020a031683600160a060020a0316141580156116ab5750600160a060020a03821615155b15156116b657600080fd5b6116bf83611b11565b15156116ca57600080fd5b6116d382611b33565b1580156116e657506116e482611b11565b155b15156116f157600080fd5b50600160a060020a0382166000908152600260205260409020600454815460ff909116901061171f57600080fd5b80548190600181016117318382611d2f565b5060009182526020808320919091018054600160a060020a03808716600160a060020a03199283168117909355855483865260018701855260408087206000199092019091556003909452938390208054948816949091168417905591907f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c6905160405180910390a3505050565b600160a060020a0382166000908152600b6020526040812054819060ff161515610c0a576000600160a060020a038086166000908152600c602090815260408083209388168352929052205460ff16600181111561181957fe5b141561183e5750600160a060020a038316600090815260096020526040902054610c0a565b50600160a060020a038084166000818152600a60209081526040808320948716835293815283822054928252600990529190912054811115610c0a57505050600160a060020a031660009081526009602052604090205490565b600080600083600160a060020a031685600160a060020a0316141580156118c75750600160a060020a03841615155b15156118d257600080fd5b6118db84611649565b600160a060020a038681169116146118f257600080fd5b600160a060020a038086166000908152600260209081526040808320938816835260018401909152902054815491945092508390600019810190811061193457fe5b6000918252602090912001548354600160a060020a039091169150819084908490811061195d57fe5b60009182526020808320919091018054600160a060020a031916600160a060020a039485161790559183168152600185019091526040902082905582546119a8846000198301611d2f565b50600160a060020a03808516600081815260018601602090815260408083208390556003909152908190208054600160a060020a031916905590918716907f35e6fc363a4bf723d53b26c1a751674aca9c3ead425f0591f84f5540ede86f12905160405180910390a35050505050565b611a2182611b11565b80611a305750611a3082611b33565b1515611a3b57600080fd5b600160a060020a0381161515611a5057600080fd5b611a5982611b11565b15611aa357611a6781611b33565b15611a7157600080fd5b600160a060020a03811660009081526002602052604090205415611a9457600080fd5b611a9e8282611b53565b610947565b611aac81611b11565b158015611abf5750611abd81611b33565b155b1515611aca57600080fd5b6109478282611c71565b600160a060020a0381161515611ae957600080fd5b600160a060020a0316600090815260026020819052604090912001805460ff19166001179055565b600160a060020a03166000908152600260208190526040909120015460ff1690565b600160a060020a0390811660009081526003602052604090205416151590565b600160a060020a038083166000908152600260205260408082209284168252812082549192839290919082908290611b8e9082908490611d58565b505050600291820154908201805460ff191660ff9092161515919091179055600160a060020a038416600090815260209190915260408120925090505b815460ff82161015611c38578260036000846000018460ff16815481101515611bf057fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600101611bcb565b600160a060020a0384166000908152600260205260408120908181611c5d8282611da8565b505050600201805460ff1916905550505050565b600160a060020a0380831660008181526003602090815260408083205486861684528184208054600160a060020a0319169187169190911790819055909416825260028152838220928252600183019052919091205481548390839083908110611cd757fe5b600091825260208083209091018054600160a060020a03948516600160a060020a0319918216179091559690921681526003909152604090208054909416909355505050565b60206040519081016040526000815290565b815481835581811511611d5357600083815260209020611d53918101908301611dc9565b505050565b828054828255906000526020600020908101928215611d985760005260206000209182015b82811115611d98578254825591600101919060010190611d7d565b50611da4929150611de6565b5090565b5080546000825590600052602060002090810190611dc69190611dc9565b50565b611de391905b80821115611da45760008155600101611dcf565b90565b611de391905b80821115611da4578054600160a060020a0319168155600101611dec5600a165627a7a723058208a60eb75ecba33d04b3d680bf7e8cdb5095a443e0f927ecba7c16aa3fc6945730029

   Swarm Source:
bzzr://8a60eb75ecba33d04b3d680bf7e8cdb5095a443e0f927ecba7c16aa3fc694573

 

View All
Block Age transaction Difficulty 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.