Latest 3 txns

TxHash Age From To Value [TxFee]
0x722fe01a3f81e32bd106d54a7182f3a90ac7df0172ba82c0d29fdbc2a9021c89201 days 20 hrs ago0x34ba814391771e82268d4b19d8beb2c8538b2f72  IN   0x45810d7157385c30ac784612e3471229ee3206b10 Ether0.000143382
0x0951fd9e2a437b7bcf2a7af8bc6caab9a756b39842e759fef3052272ffcd539d206 days 10 hrs ago0x34ba814391771e82268d4b19d8beb2c8538b2f72  IN   0x45810d7157385c30ac784612e3471229ee3206b10 Ether0.000331535
0xc52891fcf91b50d4a3599c59446eb99daef7b7692a2c3bfd640f175ba033e81a222 days 18 hrs ago0x11d56d0b2c676e3966fd7b8f0eba9d009bce4383  IN    Contract Creation0 Ether0.004224305
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xb7198c0c50fb37908b1628e5267d062410b707bd48f5f34263af248f8bfde6b4354170260 days 12 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0xb7198c0c50fb37908b1628e5267d062410b707bd48f5f34263af248f8bfde6b4354170260 days 12 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0xb7198c0c50fb37908b1628e5267d062410b707bd48f5f34263af248f8bfde6b4354170260 days 12 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0xd328d056a9d4fd3010573349a85778ae8a4b03473392ca964e7001f91efc0668354130460 days 14 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0xd328d056a9d4fd3010573349a85778ae8a4b03473392ca964e7001f91efc0668354130460 days 14 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0xd328d056a9d4fd3010573349a85778ae8a4b03473392ca964e7001f91efc0668354130460 days 14 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x26d7397719089d7ac0b579619813866abe39c8b5363886e32c18fe436b0e253b354071360 days 16 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0x26d7397719089d7ac0b579619813866abe39c8b5363886e32c18fe436b0e253b354071360 days 16 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x26d7397719089d7ac0b579619813866abe39c8b5363886e32c18fe436b0e253b354071360 days 16 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x8f252641c5cc60f973c5ecfcccb5a5e9de3413f3d4843c972dd90dce1ceff520354071060 days 16 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0x8f252641c5cc60f973c5ecfcccb5a5e9de3413f3d4843c972dd90dce1ceff520354071060 days 16 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x8f252641c5cc60f973c5ecfcccb5a5e9de3413f3d4843c972dd90dce1ceff520354071060 days 16 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x28ffbb1f1984e37adb7e675c5ee388eb2463658ae7f7064a92362bcbb2776496354044060 days 17 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0x28ffbb1f1984e37adb7e675c5ee388eb2463658ae7f7064a92362bcbb2776496354044060 days 17 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x28ffbb1f1984e37adb7e675c5ee388eb2463658ae7f7064a92362bcbb2776496354044060 days 17 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x92dd209a54186b8d2d521af6673c8b3e2a1f80518a2b492c1b417830b61ac31d353981260 days 20 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0x92dd209a54186b8d2d521af6673c8b3e2a1f80518a2b492c1b417830b61ac31d353981260 days 20 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x92dd209a54186b8d2d521af6673c8b3e2a1f80518a2b492c1b417830b61ac31d353981260 days 20 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x6627ededdaffabe8036312e32211ae56859d18016a9774769e266759e67c6bf7353979860 days 20 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0x6627ededdaffabe8036312e32211ae56859d18016a9774769e266759e67c6bf7353979860 days 20 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x6627ededdaffabe8036312e32211ae56859d18016a9774769e266759e67c6bf7353979860 days 20 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x48e2cb5a10b0aaef19282d2d68b9252de884d1b72a1b989a441f88b68e93a1a3353944160 days 22 hrs ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
0x48e2cb5a10b0aaef19282d2d68b9252de884d1b72a1b989a441f88b68e93a1a3353944160 days 22 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0x48e2cb5a10b0aaef19282d2d68b9252de884d1b72a1b989a441f88b68e93a1a3353944160 days 22 hrs ago0xe702a5629d7da74ef38594733b340afd37060dd70x45810d7157385c30ac784612e3471229ee3206b10 Ether
0xe41268232eb50b753c8bbef8e3e581e4bafe0512cb22798cbd7c59c288aa5444353887661 days 25 mins ago0x45810d7157385c30ac784612e3471229ee3206b10x3807b7a05cf95574eecc38600d4ed9dc1c5f90250 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: HoQuStorage
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.23;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        // uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;


    event OwnershipRenounced(address indexed previousOwner);
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(owner);
        owner = address(0);
    }
}


contract HoQuConfig is Ownable {
    using SafeMath for uint256;

    address public commissionWallet;

    // HoQu platform commission in ether
    uint256 public commission = 0.005 ether;

    // a list of system owners' addresses
    mapping (uint16 => address) public owners;
    // a number of owners
    uint16 public ownersCount;

    event CommissionWalletChanged(address indexed changedBy, address commissionWallet);
    event CommissionChanged(address indexed changedBy, uint256 commission);
    event SystemOwnerAdded(address indexed newOwner);
    event SystemOwnerChanged(address indexed previousOwner, address newOwner);
    event SystemOwnerDeleted(address indexed deletedOwner);

    modifier onlyOwners() {
        require(msg.sender == owner || isAllowed(msg.sender));
        _;
    }

    constructor(
        address _commissionWallet
    ) public {
        commissionWallet = _commissionWallet;
    }

    function setCommissionWallet(address _commissionWallet) public onlyOwners {
        require(_commissionWallet != address(0));
        emit CommissionWalletChanged(msg.sender, _commissionWallet);
        commissionWallet = _commissionWallet;
    }

    function setCommission(uint256 _commission) public onlyOwners {
        require(_commission > 0);
        emit CommissionChanged(msg.sender, _commission);
        commission = _commission;
    }

    /**
    * Add new owner to the list of system owners
    *
    * @param _owner ethereum address of the owner
    */
    function addOwner(address _owner) public onlyOwners {
        owners[ownersCount] = _owner;
        ownersCount++;
        emit SystemOwnerAdded(_owner);
    }

    /**
    * Set the existing system owner's ethereum address
    *
    * @param i an index of existing system owner
    * @param _owner new ethereum address of the owner
    */
    function changeOwner(uint16 i, address _owner) public onlyOwners {
        require(owners[i] == address(0));
        emit SystemOwnerChanged(owners[i], _owner);
        owners[i] = _owner;
    }

    /**
    * Delete the existing system owner's ethereum address from the list of system owners
    *
    * @param i an index of existing system owner
    */
    function deleteOwner(uint16 i) public onlyOwners {
        require(owners[i] != address(0));
        emit SystemOwnerDeleted(owners[i]);
        owners[i] = address(0);
    }

    /**
    * Check that provided ethereum address is a system owner address
    *
    * @param _owner ethereum address
    */
    function isAllowed(address _owner) public returns (bool) {
        require(_owner != address(0));

        for (uint16 i = 0; i < ownersCount; i++) {
            address _ownerAddr = owners[i];
            if (_owner == _ownerAddr) {
                return true;
            }
        }

        if (_owner == owner) {
            return true;
        }

        return false;
    }
}


contract HoQuStorageSchema {
    enum Status {NotExists, Created, Pending, Active, Done, Declined}
    enum KycLevel {Undefined, Tier1, Tier2, Tier3, Tier4, Tier5}

    struct User {
        address ownerAddress;
        mapping (uint8 => address) addresses;
        uint8 numOfAddresses;
        string role;
        KycLevel kycLevel;
        string pubKey;
        uint createdAt;
        Status status;
    }

    struct Identification {
        bytes16 userId;
        bytes16 companyId;
        string idType;
        string name;
        mapping (uint16 => KycReport) kycReports;
        uint16 numOfKycReports;
        uint createdAt;
        Status status;
    }

    struct KycReport {
        string meta;
        KycLevel kycLevel;
        string dataUrl;
        uint createdAt;
    }

    struct Stats {
        uint256 rating;
        uint256 volume;
        uint256 members;
        uint256 alfa;
        uint256 beta;
        Status status;
    }

    struct Company {
        bytes16 ownerId;
        string name;
        string dataUrl;
        uint createdAt;
        Status status;
    }

    struct Network {
        bytes16 ownerId;
        string name;
        string dataUrl;
        uint createdAt;
        Status status;
    }

    struct Tracker {
        bytes16 ownerId;
        bytes16 networkId;
        string name;
        string dataUrl;
        uint createdAt;
        Status status;
    }

    struct Offer {
        bytes16 ownerId;
        bytes16 networkId;
        bytes16 merchantId;
        address payerAddress;
        string name;
        string dataUrl;
        uint256 cost;
        uint createdAt;
        Status status;
    }

    struct AdCampaign {
        bytes16 ownerId;
        bytes16 offerId;
        address contractAddress;
        uint createdAt;
        Status status;
    }
}


contract HoQuStorage is HoQuStorageSchema {
    using SafeMath for uint256;

    HoQuConfig public config;

    mapping (bytes16 => User) public users;
    mapping (bytes16 => Identification) public ids;
    mapping (bytes16 => Stats) public stats;
    mapping (bytes16 => Company) public companies;
    mapping (bytes16 => Network) public networks;
    mapping (bytes16 => Offer) public offers;
    mapping (bytes16 => Tracker) public trackers;
    mapping (bytes16 => AdCampaign) public adCampaigns;

    event UserRegistered(address indexed ownerAddress, bytes16 id, string role);
    event UserAddressAdded(address indexed ownerAddress, address additionalAddress, bytes16 id);
    event StatsChanged(address indexed ownerAddress, bytes16 id, uint256 rating);
    event IdentificationAdded(address indexed ownerAddress, bytes16 id, bytes16 userId, string name);
    event KycReportAdded(address indexed ownerAddress, KycLevel kycLevel);
    event CompanyRegistered(address indexed ownerAddress, bytes16 id, string name);
    event NetworkRegistered(address indexed ownerAddress, bytes16 id, string name);
    event TrackerRegistered(address indexed ownerAddress, bytes16 id, string name);
    event OfferAdded(address indexed ownerAddress, bytes16 id, string name);
    event AdCampaignAdded(address indexed ownerAddress, bytes16 id, address contractAddress);

    modifier onlyOwner() {
        require(config.isAllowed(msg.sender));
        _;
    }

    constructor(address configAddress) public {
        config = HoQuConfig(configAddress);
    }

    function setConfigAddress(address configAddress) public onlyOwner {
        config = HoQuConfig(configAddress);
    }

    function setUser(bytes16 id, string role, address ownerAddress, KycLevel kycLevel, string pubKey, Status status) public onlyOwner {
        if (users[id].status == Status.NotExists) {
            users[id] = User({
                ownerAddress: ownerAddress,
                createdAt : now,
                numOfAddresses : 1,
                role : role,
                kycLevel : KycLevel.Tier1,
                pubKey : pubKey,
                status : Status.Created
                });
            users[id].addresses[0] = ownerAddress;

            emit UserRegistered(ownerAddress, id, role);
        } else {
            if (bytes(role).length != 0) {
                users[id].role = role;
            }
            if (kycLevel != KycLevel.Undefined) {
                users[id].kycLevel = kycLevel;
            }
            if (bytes(pubKey).length != 0) {
                users[id].pubKey = pubKey;
            }
            if (status != Status.NotExists) {
                users[id].status = status;
            }
        }
    }

    function addUserAddress(bytes16 id, address ownerAddress) public onlyOwner {
        require(users[id].status != Status.NotExists);

        users[id].addresses[users[id].numOfAddresses] = ownerAddress;
        users[id].numOfAddresses++;

        emit UserAddressAdded(users[id].addresses[0], ownerAddress, id);
    }

    function getUserAddress(bytes16 id, uint8 num) public constant returns (address) {
        require(users[id].status != Status.NotExists);

        return users[id].addresses[num];
    }

    function setIdentification(bytes16 id, bytes16 userId, string idType, string name, bytes16 companyId, Status status) public onlyOwner {
        if (ids[id].status == Status.NotExists) {
            address ownerAddress = getUserAddress(userId, 0);

            ids[id] = Identification({
                createdAt : now,
                userId : userId,
                idType : idType,
                name: name,
                companyId : companyId,
                numOfKycReports : 0,
                status : Status.Created
                });

            emit IdentificationAdded(ownerAddress, id, userId, name);
        } else {
            if (bytes(idType).length != 0) {
                ids[id].idType = idType;
            }
            if (companyId.length != 0) {
                ids[id].companyId = companyId;
            }
            if (status != Status.NotExists) {
                ids[id].status = status;
            }
        }
    }

    function setStats(bytes16 id, bytes16 userId, uint256 rating, uint256 volume, uint256 members, uint256 alfa, uint256 beta, Status status) public onlyOwner {
        if (stats[id].status == Status.NotExists) {
            address ownerAddress = userId.length > 0 ? getUserAddress(userId, 0) : address(0);

            stats[id] = Stats({
                rating : rating,
                volume : volume,
                members : members,
                alfa : alfa,
                beta : beta,
                status : Status.Created
                });
            if (userId.length > 0) {
                stats[userId] = stats[id];
            }

            emit StatsChanged(ownerAddress, id, rating);
        } else {
            if (rating != 0) {
                stats[id].rating = rating;
                if (userId.length > 0) {
                    stats[userId].rating = rating;
                }
            }
            if (volume != 0) {
                stats[id].volume = volume;
                if (userId.length > 0) {
                    stats[userId].volume = volume;
                }
            }
            if (members != 0) {
                stats[id].members = members;
                if (userId.length > 0) {
                    stats[userId].members = members;
                }
            }
            if (alfa != 0) {
                stats[id].alfa = alfa;
                if (userId.length > 0) {
                    stats[userId].alfa = alfa;
                }
            }
            if (beta != 0) {
                stats[id].beta = beta;
                if (userId.length > 0) {
                    stats[userId].beta = beta;
                }
            }
            if (status != Status.NotExists) {
                stats[id].status = status;
            }
        }
    }

    function addKycReport(bytes16 id, string meta, KycLevel kycLevel, string dataUrl) public onlyOwner {
        require(ids[id].status != Status.NotExists);

        ids[id].kycReports[ids[id].numOfKycReports] = KycReport({
            createdAt : now,
            meta : meta,
            kycLevel : kycLevel,
            dataUrl : dataUrl
            });
        ids[id].numOfKycReports++;

        emit KycReportAdded(users[ids[id].userId].addresses[0], kycLevel);
    }

    function getKycReport(bytes16 id, uint16 num) public constant returns (uint, string, KycLevel, string) {
        require(ids[id].status != Status.NotExists);

        return (
        ids[id].kycReports[num].createdAt,
        ids[id].kycReports[num].meta,
        ids[id].kycReports[num].kycLevel,
        ids[id].kycReports[num].dataUrl
        );
    }

    function setCompany(bytes16 id, bytes16 ownerId, string name, string dataUrl, Status status) public onlyOwner {
        if (companies[id].status == Status.NotExists) {
            require(users[ownerId].status != Status.NotExists);
            require(users[ownerId].addresses[0] != address(0));

            companies[id] = Company({
                createdAt : now,
                ownerId : ownerId,
                name : name,
                dataUrl : dataUrl,
                status : Status.Created
                });

            emit CompanyRegistered(users[ownerId].addresses[0], id, name);
        } else {
            if (bytes(name).length != 0) {
                companies[id].name = name;
            }
            if (bytes(dataUrl).length != 0) {
                companies[id].dataUrl = dataUrl;
            }
            if (status != Status.NotExists) {
                companies[id].status = status;
            }
        }
    }

    function setNetwork(bytes16 id, bytes16 ownerId, string name, string dataUrl, Status status) public onlyOwner {
        if (networks[id].status == Status.NotExists) {
            require(users[ownerId].status != Status.NotExists);
            require(users[ownerId].addresses[0] != address(0));

            networks[id] = Network({
                createdAt : now,
                ownerId : ownerId,
                name : name,
                dataUrl : dataUrl,
                status : Status.Created
                });

            emit NetworkRegistered(users[ownerId].addresses[0], id, name);
        } else {
            if (bytes(name).length != 0) {
                networks[id].name = name;
            }
            if (bytes(dataUrl).length != 0) {
                networks[id].dataUrl = dataUrl;
            }
            if (status != Status.NotExists) {
                networks[id].status = status;
            }
        }
    }

    function setTracker(bytes16 id, bytes16 ownerId, bytes16 networkId, string name, string dataUrl, Status status) public onlyOwner {
        if (networkId.length != 0) {
            require(networks[networkId].status != Status.NotExists);
        }

        if (trackers[id].status == Status.NotExists) {
            require(users[ownerId].status != Status.NotExists);
            require(users[ownerId].addresses[0] != address(0));

            trackers[id] = Tracker({
                createdAt : now,
                ownerId : ownerId,
                networkId : networkId,
                name : name,
                dataUrl : dataUrl,
                status : Status.Created
                });

            emit TrackerRegistered(users[ownerId].addresses[0], id, name);
        } else {
            if (networkId.length != 0) {
                trackers[id].networkId = networkId;
            }
            if (bytes(name).length != 0) {
                trackers[id].name = name;
            }
            if (bytes(dataUrl).length != 0) {
                trackers[id].dataUrl = dataUrl;
            }
            if (status != Status.NotExists) {
                trackers[id].status = status;
            }
        }
    }

    function setOffer(bytes16 id, bytes16 ownerId, bytes16 networkId, bytes16 merchantId, address payerAddress, string name, string dataUrl, uint256 cost, Status status) public onlyOwner {
        if (networkId.length != 0) {
            require(networks[networkId].status != Status.NotExists);
        }
        if (merchantId.length != 0) {
            require(users[merchantId].status != Status.NotExists);
        }

        if (trackers[id].status == Status.NotExists) {
            require(users[ownerId].status != Status.NotExists);
            require(users[ownerId].addresses[0] != address(0));

            offers[id] = Offer({
                createdAt : now,
                networkId : networkId,
                merchantId: merchantId,
                ownerId : ownerId,
                payerAddress : payerAddress,
                name : name,
                dataUrl : dataUrl,
                cost : cost,
                status : Status.Created
                });

            emit OfferAdded(payerAddress, id, name);
        } else {
            if (networkId.length != 0) {
                offers[id].networkId = networkId;
            }
            if (merchantId.length != 0) {
                offers[id].merchantId = merchantId;
            }
            if (payerAddress != address(0)) {
                offers[id].payerAddress = payerAddress;
            }
            if (bytes(name).length != 0) {
                offers[id].name = name;
            }
            if (bytes(dataUrl).length != 0) {
                offers[id].dataUrl = dataUrl;
            }
            if (cost != 0) {
                offers[id].cost = cost;
            }
            if (status != Status.NotExists) {
                offers[id].status = status;
            }
        }
    }

    function setAdCampaign(bytes16 id, bytes16 ownerId, bytes16 offerId, address contractAddress, Status status) public onlyOwner {
        if (trackers[id].status == Status.NotExists) {
            require(users[ownerId].status != Status.NotExists);
            require(users[ownerId].addresses[0] != address(0));
            require(offers[offerId].status != Status.NotExists);

            address ownerAddress = getUserAddress(ownerId, 0);

            adCampaigns[id] = AdCampaign({
                createdAt : now,
                offerId : offerId,
                ownerId : ownerId,
                contractAddress : contractAddress,
                status : Status.Created
                });

            emit AdCampaignAdded(ownerAddress, id, contractAddress);
        } else {
            if (contractAddress != address(0)) {
                adCampaigns[id].contractAddress = contractAddress;
            }
            if (status != Status.NotExists) {
                adCampaigns[id].status = status;
            }
        }
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"ownerId","type":"bytes16"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"status","type":"uint8"}],"name":"setNetwork","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"ownerAddress","type":"address"}],"name":"addUserAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"meta","type":"string"},{"name":"kycLevel","type":"uint8"},{"name":"dataUrl","type":"string"}],"name":"addKycReport","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"role","type":"string"},{"name":"ownerAddress","type":"address"},{"name":"kycLevel","type":"uint8"},{"name":"pubKey","type":"string"},{"name":"status","type":"uint8"}],"name":"setUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"ids","outputs":[{"name":"userId","type":"bytes16"},{"name":"companyId","type":"bytes16"},{"name":"idType","type":"string"},{"name":"name","type":"string"},{"name":"numOfKycReports","type":"uint16"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"companies","outputs":[{"name":"ownerId","type":"bytes16"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"networks","outputs":[{"name":"ownerId","type":"bytes16"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"users","outputs":[{"name":"ownerAddress","type":"address"},{"name":"numOfAddresses","type":"uint8"},{"name":"role","type":"string"},{"name":"kycLevel","type":"uint8"},{"name":"pubKey","type":"string"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"ownerId","type":"bytes16"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"status","type":"uint8"}],"name":"setCompany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"config","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"configAddress","type":"address"}],"name":"setConfigAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"adCampaigns","outputs":[{"name":"ownerId","type":"bytes16"},{"name":"offerId","type":"bytes16"},{"name":"contractAddress","type":"address"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"ownerId","type":"bytes16"},{"name":"offerId","type":"bytes16"},{"name":"contractAddress","type":"address"},{"name":"status","type":"uint8"}],"name":"setAdCampaign","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"stats","outputs":[{"name":"rating","type":"uint256"},{"name":"volume","type":"uint256"},{"name":"members","type":"uint256"},{"name":"alfa","type":"uint256"},{"name":"beta","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"userId","type":"bytes16"},{"name":"idType","type":"string"},{"name":"name","type":"string"},{"name":"companyId","type":"bytes16"},{"name":"status","type":"uint8"}],"name":"setIdentification","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"userId","type":"bytes16"},{"name":"rating","type":"uint256"},{"name":"volume","type":"uint256"},{"name":"members","type":"uint256"},{"name":"alfa","type":"uint256"},{"name":"beta","type":"uint256"},{"name":"status","type":"uint8"}],"name":"setStats","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"offers","outputs":[{"name":"ownerId","type":"bytes16"},{"name":"networkId","type":"bytes16"},{"name":"merchantId","type":"bytes16"},{"name":"payerAddress","type":"address"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"cost","type":"uint256"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"bytes16"},{"name":"num","type":"uint8"}],"name":"getUserAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"ownerId","type":"bytes16"},{"name":"networkId","type":"bytes16"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"status","type":"uint8"}],"name":"setTracker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"bytes16"},{"name":"num","type":"uint16"}],"name":"getKycReport","outputs":[{"name":"","type":"uint256"},{"name":"","type":"string"},{"name":"","type":"uint8"},{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"trackers","outputs":[{"name":"ownerId","type":"bytes16"},{"name":"networkId","type":"bytes16"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"createdAt","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes16"},{"name":"ownerId","type":"bytes16"},{"name":"networkId","type":"bytes16"},{"name":"merchantId","type":"bytes16"},{"name":"payerAddress","type":"address"},{"name":"name","type":"string"},{"name":"dataUrl","type":"string"},{"name":"cost","type":"uint256"},{"name":"status","type":"uint8"}],"name":"setOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"configAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"role","type":"string"}],"name":"UserRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"additionalAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"}],"name":"UserAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"rating","type":"uint256"}],"name":"StatsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"userId","type":"bytes16"},{"indexed":false,"name":"name","type":"string"}],"name":"IdentificationAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"kycLevel","type":"uint8"}],"name":"KycReportAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"name","type":"string"}],"name":"CompanyRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"name","type":"string"}],"name":"NetworkRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"name","type":"string"}],"name":"TrackerRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"name","type":"string"}],"name":"OfferAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":false,"name":"id","type":"bytes16"},{"indexed":false,"name":"contractAddress","type":"address"}],"name":"AdCampaignAdded","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405234801561001057600080fd5b50604051602080613d01833981016040525160008054600160a060020a03909216600160a060020a0319909216919091179055613caf806100526000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302884980811461012c57806303806028146101e157806318c8f3051461020f578063253a9b9e146102be578063289e7470146103825780634df2d847146104c457806372c130e4146105f35780637520dd1414610615578063768d80a81461071d57806379502c55146107d057806383a12de9146108015780638907555714610822578063a0191d201461089d578063a2affa4d146108dd578063acc02cce14610946578063b1dbfe5014610a06578063c32d869b14610a43578063c49e2fb114610b9f578063c4d4d88714610bc7578063cc3436b914610c7d578063ea2fdd8c14610da0578063f3b412f114610ed7575b600080fd5b34801561013857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101df9482356001608060020a03199081169560248035909216953695946064949293019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff169350610fa992505050565b005b3480156101ed57600080fd5b506101df6001608060020a031960043516600160a060020a0360243516611342565b34801561021b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101df9583356001608060020a03191695369560449491939091019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b60ff8b35169b909a9099940197509195509182019350915081908401838280828437509497506114a99650505050505050565b3480156102ca57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101df9583356001608060020a03191695369560449491939091019190819084018382808284375050604080516020888301358a018035601f8101839004830284018301909452838352979a8935600160a060020a03169a8a83013560ff169a919990985060609091019650919450908101925081908401838280828437509497505050923560ff1693506116d792505050565b34801561038e57600080fd5b506103a46001608060020a031960043516611aac565b604080516001608060020a0319808a1682528816602082015261ffff8516608082015260a081018490529081016060820160c083018460058111156103e557fe5b60ff168152602001838103835288818151815260200191508051906020019080838360005b8381101561042257818101518382015260200161040a565b50505050905090810190601f16801561044f5780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561048257818101518382015260200161046a565b50505050905090810190601f1680156104af5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3480156104d057600080fd5b506104e66001608060020a031960043516611c0d565b604080516001608060020a0319871681526060810184905290602082019082016080830184600581111561051657fe5b60ff168152602001838103835287818151815260200191508051906020019080838360005b8381101561055357818101518382015260200161053b565b50505050905090810190601f1680156105805780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b838110156105b357818101518382015260200161059b565b50505050905090810190601f1680156105e05780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b3480156105ff57600080fd5b506104e66001608060020a031960043516611d60565b34801561062157600080fd5b506106376001608060020a031960043516611ddc565b60408051600160a060020a038916815260ff881660208201529081016060820186600581111561066357fe5b60ff1681526020018060200185815260200184600581111561068157fe5b60ff168152602001838103835288818151815260200191508051906020019080838360005b838110156106be5781810151838201526020016106a6565b50505050905090810190601f1680156106eb5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360008381101561048257818101518382015260200161046a565b34801561072957600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101df9482356001608060020a03199081169560248035909216953695946064949293019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff169350611f4292505050565b3480156107dc57600080fd5b506107e5612288565b60408051600160a060020a039092168252519081900360200190f35b34801561080d57600080fd5b506101df600160a060020a0360043516612297565b34801561082e57600080fd5b506108446001608060020a031960043516612341565b604080516001608060020a0319808816825286166020820152600160a060020a03851691810191909152606081018390526080810182600581111561088557fe5b60ff1681526020019550505050505060405180910390f35b3480156108a957600080fd5b506101df6001608060020a031960043581169060243581169060443516600160a060020a036064351660ff60843516612383565b3480156108e957600080fd5b506108ff6001608060020a0319600435166126b3565b6040518087815260200186815260200185815260200184815260200183815260200182600581111561092d57fe5b60ff168152602001965050505050505060405180910390f35b34801561095257600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101df9482356001608060020a03199081169560248035909216953695946064949293019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750505083356001608060020a03191694505050506020013560ff166126ee565b348015610a1257600080fd5b506101df6001608060020a03196004358116906024351660443560643560843560a43560c43560ff60e43516612a65565b348015610a4f57600080fd5b50610a656001608060020a031960043516612e19565b604080516001608060020a0319808c1682528a81166020830152891691810191909152600160a060020a038716606082015260c0810184905260e081018390526080810160a082016101008301846005811115610abe57fe5b60ff168152602001838103835288818151815260200191508051906020019080838360005b83811015610afb578181015183820152602001610ae3565b50505050905090810190601f168015610b285780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b83811015610b5b578181015183820152602001610b43565b50505050905090810190601f168015610b885780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b348015610bab57600080fd5b506107e56001608060020a03196004351660ff60243516612f8c565b348015610bd357600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526101df946001608060020a0319813581169560248035831696604435909316953695608494920191819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff169350612fff92505050565b348015610c8957600080fd5b50610ca66001608060020a03196004351661ffff602435166133ca565b6040518085815260200180602001846005811115610cc057fe5b60ff16815260200180602001838103835286818151815260200191508051906020019080838360005b83811015610d01578181015183820152602001610ce9565b50505050905090810190601f168015610d2e5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610d61578181015183820152602001610d49565b50505050905090810190601f168015610d8e5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b348015610dac57600080fd5b50610dc26001608060020a031960043516613572565b604080516001608060020a0319808916825287166020820152608081018490529081016060820160a08301846005811115610df957fe5b60ff168152602001838103835287818151815260200191508051906020019080838360005b83811015610e36578181015183820152602001610e1e565b50505050905090810190601f168015610e635780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015610e96578181015183820152602001610e7e565b50505050905090810190601f168015610ec35780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610ee357600080fd5b50604080516020600460a43581810135601f81018490048402850184019095528484526101df9482356001608060020a0319908116956024803583169660443584169660643590941695608435600160a060020a03169536959460c4949093920191819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750508435955050505060209091013560ff1690506136ca565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b158015610ffa57600080fd5b505af115801561100e573d6000803e3d6000fd5b505050506040513d602081101561102457600080fd5b5051151561103157600080fd5b6001608060020a03198516600090815260056020819052604082206004015460ff169081111561105d57fe5b1415611278576001608060020a0319841660009081526001602052604081206007015460ff16600581111561108e57fe5b141561109957600080fd5b6001608060020a0319841660009081526001602081815260408084208480529092019052902054600160a060020a031615156110d457600080fd5b6040805160a0810182526001608060020a0319861681526020810185905290810183905242606082015260808101600190526001608060020a0319808716600090815260056020908152604090912083518154608060020a909104931692909217825582810151805161114d9260018501920190613be8565b5060408201518051611169916002840191602090910190613be8565b5060608201516003820155608082015160048201805460ff1916600183600581111561119157fe5b021790555050506001608060020a031980851660009081526001602081815260408084208480529092018152818320548251948a1685528482018381528851938601939093528751600160a060020a03909116947f592e83ede8c846dffd6e4edcbe77983b153bec820ac697aa34a236147b1341e0948b948a9492939092606085019290860191908190849084905b83811015611238578181015183820152602001611220565b50505050905090810190601f1680156112655780820380516001836020036101000a031916815260200191505b50935050505060405180910390a261133b565b8251156112b1576001608060020a03198516600090815260056020908152604090912084516112af92600190920191860190613be8565b505b8151156112ea576001608060020a03198516600090815260056020908152604090912083516112e892600290920191850190613be8565b505b60008160058111156112f857fe5b1461133b576001608060020a0319851660009081526005602081905260409091206004018054839260ff1990911690600190849081111561133557fe5b02179055505b5050505050565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b15801561139357600080fd5b505af11580156113a7573d6000803e3d6000fd5b505050506040513d60208110156113bd57600080fd5b505115156113ca57600080fd5b6001608060020a0319821660009081526001602052604081206007015460ff1660058111156113f557fe5b141561140057600080fd5b6001608060020a03198216600081815260016020818152604080842060028101805460ff908116875291850184528286208054600160a060020a031916600160a060020a038a8116918217909255825460ff198116908516909701909316959095179055848052938190205481519485529184019490945283519116927fb38b406c043d4a3feaa0192d2e1b02f317fa73c284eb3e70b9a1fde8612af1b3928290030190a25050565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b1580156114fa57600080fd5b505af115801561150e573d6000803e3d6000fd5b505050506040513d602081101561152457600080fd5b5051151561153157600080fd5b6001608060020a0319841660009081526002602052604081206006015460ff16600581111561155c57fe5b141561156757600080fd5b60806040519081016040528084815260200183600581111561158557fe5b81526020808201849052426040928301526001608060020a03198716600090815260028252828120600481015461ffff1682526003018252919091208251805191926115d692849290910190613be8565b50602082015160018083018054909160ff19909116908360058111156115f857fe5b021790555060408201518051611618916002840191602090910190613be8565b50606091909101516003909101556001608060020a0319848116600090815260026020908152604080832060048101805461ffff198116600161ffff9283168101909216179091559054608060020a0290941683528382528083208380529093019052819020549051600160a060020a03909116907f92262b4b81e23d81eaec5e9e8c9439f0a59929da8c5d49b32bca92c112f4172a908490808260058111156116be57fe5b60ff16815260200191505060405180910390a250505050565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b15801561172857600080fd5b505af115801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b5051151561175f57600080fd5b6001608060020a0319861660009081526001602052604081206007015460ff16600581111561178a57fe5b1415611994576040805160e081018252600160a060020a0386168152600160208201819052918101879052906060820190815260208101849052426040820152606001600190526001608060020a0319871660009081526001602090815260409182902083518154600160a060020a031916600160a060020a039091161781558382015160028201805460ff191660ff9092169190911790559183015180516118399260038501920190613be8565b50606082015160048201805460ff1916600183600581111561185757fe5b021790555060808201518051611877916005840191602090910190613be8565b5060a0820151600682015560c082015160078201805460ff1916600183600581111561189f57fe5b021790555050506001608060020a03198616600081815260016020818152604080842084805290920181528183208054600160a060020a031916600160a060020a038a1690811790915582519485528482018381528a5193860193909352895190947ff661ee1472892faaf2bb68cc6874f2759c9148b4234cac6b88f6ca362652f275948c948c9492939092606085019290860191908190849084905b8381101561195457818101518382015260200161193c565b50505050905090810190601f1680156119815780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2611aa4565b8451156119cd576001608060020a03198616600090815260016020908152604090912086516119cb92600390920191880190613be8565b505b60008360058111156119db57fe5b14611a1c576001608060020a0319861660009081526001602081905260409091206004018054859260ff1990911690836005811115611a1657fe5b02179055505b815115611a55576001608060020a0319861660009081526001602090815260409091208351611a5392600590920191850190613be8565b505b6000816005811115611a6357fe5b14611aa4576001608060020a0319861660009081526001602081905260409091206007018054839260ff1990911690836005811115611a9e57fe5b02179055505b505050505050565b6002602081815260009283526040928390208054600180830180548751601f60001994831615610100029490940190911696909604918201859004850286018501909652808552608060020a808302969281900402949293830182828015611b555780601f10611b2a57610100808354040283529160200191611b55565b820191906000526020600020905b815481529060010190602001808311611b3857829003601f168201915b50505060028085018054604080516020601f6000196101006001871615020190941695909504928301859004850281018501909152818152959695945090925090830182828015611be75780601f10611bbc57610100808354040283529160200191611be7565b820191906000526020600020905b815481529060010190602001808311611bca57829003601f168201915b5050505060048301546005840154600690940154929361ffff9091169290915060ff1687565b6004602090815260009182526040918290208054600180830180548651600261010094831615949094026000190190911692909204601f8101869004860283018601909652858252608060020a909202949293909290830182828015611cb45780601f10611c8957610100808354040283529160200191611cb4565b820191906000526020600020905b815481529060010190602001808311611c9757829003601f168201915b50505060028085018054604080516020601f6000196101006001871615020190941695909504928301859004850281018501909152818152959695945090925090830182828015611d465780601f10611d1b57610100808354040283529160200191611d46565b820191906000526020600020905b815481529060010190602001808311611d2957829003601f168201915b50505050600383015460049093015491929160ff16905085565b6005602090815260009182526040918290208054600180830180548651600261010094831615949094026000190190911692909204601f8101869004860283018601909652858252608060020a909202949293909290830182828015611cb45780601f10611c8957610100808354040283529160200191611cb4565b600160208181526000928352604092839020805460028083015460038401805488516101009882161598909802600019011692909204601f8101869004860287018601909752868652600160a060020a039092169560ff909216949293909190830182828015611e8d5780601f10611e6257610100808354040283529160200191611e8d565b820191906000526020600020905b815481529060010190602001808311611e7057829003601f168201915b50505050600483015460058401805460408051602060026101006001861615026000190190941693909304601f8101849004840282018401909252818152959660ff9094169593945090830182828015611f285780601f10611efd57610100808354040283529160200191611f28565b820191906000526020600020905b815481529060010190602001808311611f0b57829003601f168201915b50505050600683015460079093015491929160ff16905087565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b505050506040513d6020811015611fbd57600080fd5b50511515611fca57600080fd5b6001608060020a0319851660009081526004602081905260408220015460ff166005811115611ff557fe5b14156121cf576001608060020a0319841660009081526001602052604081206007015460ff16600581111561202657fe5b141561203157600080fd5b6001608060020a0319841660009081526001602081815260408084208480529092019052902054600160a060020a0316151561206c57600080fd5b6040805160a0810182526001608060020a0319861681526020810185905290810183905242606082015260808101600190526001608060020a0319808716600090815260046020908152604090912083518154608060020a90910493169290921782558281015180516120e59260018501920190613be8565b5060408201518051612101916002840191602090910190613be8565b5060608201516003820155608082015160048201805460ff1916600183600581111561212957fe5b021790555050506001608060020a031980851660009081526001602081815260408084208480529092018152818320548251948a1685528482018381528851938601939093528751600160a060020a03909116947f0eb23d662c57754d23afdc1cffa6246fbae3bbe843eec5c42a5a5223c21414ed948b948a94929390926060850192908601919081908490849083811015611238578181015183820152602001611220565b825115612208576001608060020a031985166000908152600460209081526040909120845161220692600190920191860190613be8565b505b815115612241576001608060020a031985166000908152600460209081526040909120835161223f92600290920191850190613be8565b505b600081600581111561224f57fe5b1461133b576001608060020a03198516600090815260046020819052604090912001805482919060ff1916600183600581111561133557fe5b600054600160a060020a031681565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b1580156122e857600080fd5b505af11580156122fc573d6000803e3d6000fd5b505050506040513d602081101561231257600080fd5b5051151561231f57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b6008602052600090815260409020805460018201546002830154600390930154608060020a80840294938190040292600160a060020a03909216919060ff1685565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169163babcc5399160248082019260209290919082900301818787803b1580156123d357600080fd5b505af11580156123e7573d6000803e3d6000fd5b505050506040513d60208110156123fd57600080fd5b5051151561240a57600080fd5b6001608060020a0319861660009081526007602052604081206004015460ff16600581111561243557fe5b1415612628576001608060020a0319851660009081526001602052604081206007015460ff16600581111561246657fe5b141561247157600080fd5b6001608060020a0319851660009081526001602081815260408084208480529092019052902054600160a060020a031615156124ac57600080fd5b6001608060020a0319841660009081526006602052604081206007015460ff1660058111156124d757fe5b14156124e257600080fd5b6124ed856000612f8c565b6040805160a0810182526001608060020a0319808916825287166020820152600160a060020a0386169181019190915242606082015290915060808101600190526001608060020a03198088166000908152600860209081526040918290208451815492860151608060020a908190048102910492909416919091176001608060020a031692909217825582015160018083018054600160a060020a03909316600160a060020a0319909316929092179091556060830151600283015560808301516003830180549192909160ff1916908360058111156125ca57fe5b021790555050604080516001608060020a031989168152600160a060020a038681166020830152825190851693507f62a609593cded926aabb6aef1e5b884804ad29d1bd1116ac4ce32085690d5ab2929181900390910190a2611aa4565b600160a060020a0383161561266d576001608060020a0319861660009081526008602052604090206001018054600160a060020a031916600160a060020a0385161790555b600082600581111561267b57fe5b14611aa4576001608060020a031986166000908152600860205260409020600301805483919060ff19166001836005811115611a9e57fe5b600360208190526000918252604090912080546001820154600283015493830154600484015460059094015492949193919290919060ff1686565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169163babcc5399160248082019260209290919082900301818787803b15801561273e57600080fd5b505af1158015612752573d6000803e3d6000fd5b505050506040513d602081101561276857600080fd5b5051151561277557600080fd5b6001608060020a0319871660009081526002602052604081206006015460ff1660058111156127a057fe5b14156129a9576127b1866000612f8c565b6040805160e0810182526001608060020a0319808a1682528616602082015290810187905260608101869052600060808201524260a082015290915060c08101600190526001608060020a03198089166000908152600260209081526040918290208451815486840151608060020a90819004810292049516949094176001608060020a03169390931783559083015180516128539260018501920190613be8565b506060820151805161286f916002840191602090910190613be8565b5060808201518160040160006101000a81548161ffff021916908361ffff16021790555060a0820151816005015560c08201518160060160006101000a81548160ff021916908360058111156128c157fe5b021790555090505080600160a060020a03167f8c03773782e9ed7fe9111421165a6cf12ce5855a4181cd1a8166d47d719ac07888888760405180846001608060020a0319166001608060020a0319168152602001836001608060020a0319166001608060020a031916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612968578181015183820152602001612950565b50505050905090810190601f1680156129955780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2612a5c565b8451156129e2576001608060020a03198716600090815260026020908152604090912086516129e092600190920191880190613be8565b505b6001608060020a03198716600090815260026020526040812080546001608060020a0316608060020a80870402179055826005811115612a1e57fe5b14612a5c576001608060020a031987166000908152600260205260409020600601805483919060ff19166001836005811115612a5657fe5b02179055505b50505050505050565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169163babcc5399160248082019260209290919082900301818787803b158015612ab557600080fd5b505af1158015612ac9573d6000803e3d6000fd5b505050506040513d6020811015612adf57600080fd5b50511515612aec57600080fd5b6001608060020a03198916600090815260036020526040812060059081015460ff1690811115612b1857fe5b1415612cbc57612b29886000612f8c565b905060c06040519081016040528088815260200187815260200186815260200185815260200184815260200160016005811115612b6257fe5b815250600360008b6001608060020a0319166001608060020a0319168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690836005811115612be257fe5b021790555050506001608060020a0319808a166000908152600360208190526040808320938c1683529091208254815560018084015481830155600280850154908301558383015492820192909255600480840154908201556005808401548183018054939460ff90921693909260ff1990911691908490811115612c6357fe5b02179055505050604080516001608060020a03198b168152602081018990528151600160a060020a038416927fd2e9a0e1a68c0320c3b58608fcefa40787236bd0d2153ebbd82690b3fa064ad4928290030190a2612e0e565b8615612cea576001608060020a03198981166000908152600360205260408082208a9055918a168152208790555b8515612d1f576001608060020a031989811660009081526003602052604080822060019081018a9055928b1682529020018690555b8415612d54576001608060020a03198981166000908152600360205260408082206002908101899055928b1682529020018590555b8315612d89576001608060020a031989811660009081526003602081905260408083208201889055928b168252919020018490555b8215612dbe576001608060020a03198981166000908152600360205260408082206004908101879055928b1682529020018390555b6000826005811115612dcc57fe5b14612e0e576001608060020a03198916600090815260036020526040902060059081018054849260ff19909116906001908490811115612e0857fe5b02179055505b505050505050505050565b600660209081526000918252604091829020805460018083015460028085015460038601805489516101009682161596909602600019011692909204601f8101889004880285018801909852878452608060020a8086029895819004810297930295600160a060020a0390911694909392830182828015612edb5780601f10612eb057610100808354040283529160200191612edb565b820191906000526020600020905b815481529060010190602001808311612ebe57829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015612f6b5780601f10612f4057610100808354040283529160200191612f6b565b820191906000526020600020905b815481529060010190602001808311612f4e57829003601f168201915b50505050600583015460068401546007909401549293909290915060ff1689565b6000806001608060020a0319841660009081526001602052604090206007015460ff166005811115612fba57fe5b1415612fc557600080fd5b506001608060020a03198216600090815260016020818152604080842060ff861685529092019052902054600160a060020a031692915050565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b15801561305057600080fd5b505af1158015613064573d6000803e3d6000fd5b505050506040513d602081101561307a57600080fd5b5051151561308757600080fd5b6001608060020a03198416600090815260056020819052604082206004015460ff16908111156130b357fe5b14156130be57600080fd5b6001608060020a0319861660009081526007602052604081206004015460ff1660058111156130e957fe5b14156132e2576001608060020a0319851660009081526001602052604081206007015460ff16600581111561311a57fe5b141561312557600080fd5b6001608060020a0319851660009081526001602081815260408084208480529092019052902054600160a060020a0316151561316057600080fd5b6040805160c0810182526001608060020a03198088168252861660208201529081018490526060810183905242608082015260a08101600190526001608060020a03198088166000908152600760209081526040918290208451815486840151608060020a90819004810292049516949094176001608060020a03169390931783559083015180516131f89260018501920190613be8565b5060608201518051613214916002840191602090910190613be8565b506080820151600382015560a082015160048201805460ff1916600183600581111561323c57fe5b021790555050506001608060020a031980861660009081526001602081815260408084208480529092018152818320548251948b1685528482018381528851938601939093528751600160a060020a03909116947fb2f67f32df451ce918abd944fd5c8a29589848693057913c5060a8e0f293b388948c948a9492939092606085019290860191908190849084908381101561195457818101518382015260200161193c565b6001608060020a03198616600090815260076020526040902080546001608060020a0316608060020a8087040217905582511561334b576001608060020a031986166000908152600760209081526040909120845161334992600190920191860190613be8565b505b815115613384576001608060020a031986166000908152600760209081526040909120835161338292600290920191850190613be8565b505b600081600581111561339257fe5b14611aa4576001608060020a031986166000908152600760205260409020600401805482919060ff19166001836005811115611a9e57fe5b600060608181816001608060020a0319871660009081526002602052604090206006015460ff1660058111156133fc57fe5b141561340757600080fd5b6001608060020a03198616600090815260026020818152604080842061ffff8a1685526003908101835293819020938401546001808601548654845161010093821615939093026000190116869004601f810186900486028301860190945283825291959460ff909216939185019290918591908301828280156134cc5780601f106134a1576101008083540402835291602001916134cc565b820191906000526020600020905b8154815290600101906020018083116134af57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529598508694509250840190508282801561355a5780601f1061352f5761010080835404028352916020019161355a565b820191906000526020600020905b81548152906001019060200180831161353d57829003601f168201915b50505050509050935093509350935092959194509250565b6007602090815260009182526040918290208054600180830180548651600261010094831615949094026000190190911692909204601f8101869004860283018601909652858252608060020a808402969381900402949192909183018282801561361e5780601f106135f35761010080835404028352916020019161361e565b820191906000526020600020905b81548152906001019060200180831161360157829003601f168201915b50505060028085018054604080516020601f60001961010060018716150201909416959095049283018590048502810185019091528181529596959450909250908301828280156136b05780601f10613685576101008083540402835291602001916136b0565b820191906000526020600020905b81548152906001019060200180831161369357829003601f168201915b50505050600383015460049093015491929160ff16905086565b600080546040805160e060020a63babcc5390281523360048201529051600160a060020a039092169263babcc539926024808401936020939083900390910190829087803b15801561371b57600080fd5b505af115801561372f573d6000803e3d6000fd5b505050506040513d602081101561374557600080fd5b5051151561375257600080fd5b6001608060020a03198716600090815260056020819052604082206004015460ff169081111561377e57fe5b141561378957600080fd5b6001608060020a0319861660009081526001602052604081206007015460ff1660058111156137b457fe5b14156137bf57600080fd5b6001608060020a0319891660009081526007602052604081206004015460ff1660058111156137ea57fe5b1415613a80576001608060020a0319881660009081526001602052604081206007015460ff16600581111561381b57fe5b141561382657600080fd5b6001608060020a0319881660009081526001602081815260408084208480529092019052902054600160a060020a0316151561386157600080fd5b60408051610120810182526001608060020a0319808b1682528981166020830152881691810191909152600160a060020a03861660608201526080810185905260a0810184905260c081018390524260e08201526101008101600190526001608060020a03198a811660009081526006602090815260409182902084518154868401516001608060020a03918716608060020a93849004179190911690829004820217825592850151600182018054909516939004929092179092556060830151600282018054600160a060020a031916600160a060020a0390921691909117905560808301518051919261395e92600385019290910190613be8565b5060a0820151805161397a916004840191602090910190613be8565b5060c0820151816005015560e082015181600601556101008201518160070160006101000a81548160ff021916908360058111156139b457fe5b021790555090505084600160a060020a03167f5c9100ad970db426d43d47b3a9639dc42d9732871d99213dcb4984f7e71509d08a8660405180836001608060020a0319166001608060020a031916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613a40578181015183820152602001613a28565b50505050905090810190601f168015613a6d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2612e0e565b6001608060020a0319898116600090815260066020526040902080546001608060020a0316608060020a808b04810291909117825560019091018054909216908804179055600160a060020a03851615613b0a576001608060020a0319891660009081526006602052604090206002018054600160a060020a031916600160a060020a0387161790555b835115613b43576001608060020a0319891660009081526006602090815260409091208551613b4192600390920191870190613be8565b505b825115613b7c576001608060020a0319891660009081526006602090815260409091208451613b7a92600490920191860190613be8565b505b8115613ba2576001608060020a0319891660009081526006602052604090206005018290555b6000816005811115613bb057fe5b14612e0e576001608060020a031989166000908152600660205260409020600701805482919060ff19166001836005811115612e0857fe5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613c2957805160ff1916838001178555613c56565b82800160010185558215613c56579182015b82811115613c56578251825591602001919060010190613c3b565b50613c62929150613c66565b5090565b613c8091905b80821115613c625760008155600101613c6c565b905600a165627a7a723058206291a305f475e304202f296a3bad4fa2fa3d80503d3200da4d23213fef6d367600290000000000000000000000003807b7a05cf95574eecc38600d4ed9dc1c5f9025

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003807b7a05cf95574eecc38600d4ed9dc1c5f9025

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003807b7a05cf95574eecc38600d4ed9dc1c5f9025


   Swarm Source:
bzzr://6291a305f475e304202f296a3bad4fa2fa3d80503d3200da4d23213fef6d3676

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward