ETH Price: $3,392.82 (-1.26%)
Gas: 2 Gwei

Contract

0xA2729b145dFB8C371aFdF9a0dE05e3394c2ca3B6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Set Can Sell87506732019-10-16 6:42:561718 days ago1571208176IN
0xA2729b14...94c2ca3B6
0 ETH0.0005924113.13
Set Can Sell87506732019-10-16 6:42:561718 days ago1571208176IN
0xA2729b14...94c2ca3B6
0 ETH0.0005932513.13
Set Can Sell87506722019-10-16 6:42:241718 days ago1571208144IN
0xA2729b14...94c2ca3B6
0 ETH0.0005932513.13
0x6080604087506442019-10-16 6:36:201718 days ago1571207780IN
 Create: Processor
0 ETH0.0189646313.13

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
177924742023-07-28 15:34:23336 days ago1690558463
0xA2729b14...94c2ca3B6
4.6656 ETH
88341102019-10-29 12:48:261704 days ago1572353306
0xA2729b14...94c2ca3B6
0.8064 ETH
88341102019-10-29 12:48:261704 days ago1572353306
0xA2729b14...94c2ca3B6
0.8064 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
3.6288 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
0.36288 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
4.032 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
3.6288 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
0.36288 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
4.032 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
3.6288 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
0.36288 ETH
88327942019-10-29 7:39:001705 days ago1572334740
0xA2729b14...94c2ca3B6
4.032 ETH
88327792019-10-29 7:36:331705 days ago1572334593
0xA2729b14...94c2ca3B6
0.0432 ETH
88327792019-10-29 7:36:331705 days ago1572334593
0xA2729b14...94c2ca3B6
0.3888 ETH
88327792019-10-29 7:36:331705 days ago1572334593
0xA2729b14...94c2ca3B6
0.432 ETH
88327492019-10-29 7:28:181705 days ago1572334098
0xA2729b14...94c2ca3B6
0.02592 ETH
88327492019-10-29 7:28:181705 days ago1572334098
0xA2729b14...94c2ca3B6
0.23328 ETH
88327492019-10-29 7:28:181705 days ago1572334098
0xA2729b14...94c2ca3B6
0.2592 ETH
88327462019-10-29 7:28:011705 days ago1572334081
0xA2729b14...94c2ca3B6
0.000864 ETH
88327462019-10-29 7:28:011705 days ago1572334081
0xA2729b14...94c2ca3B6
0.07776 ETH
88327462019-10-29 7:28:011705 days ago1572334081
0xA2729b14...94c2ca3B6
0.007776 ETH
88327462019-10-29 7:28:011705 days ago1572334081
0xA2729b14...94c2ca3B6
0.0864 ETH
88327322019-10-29 7:26:011705 days ago1572333961
0xA2729b14...94c2ca3B6
0.0864 ETH
88327322019-10-29 7:26:011705 days ago1572333961
0xA2729b14...94c2ca3B6
0.0864 ETH
88327322019-10-29 7:26:011705 days ago1572333961
0xA2729b14...94c2ca3B6
0.00864 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Processor

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-10-16
*/

pragma solidity ^0.5.0;

interface IReferrals {

    function getSplit(address user) external view returns (uint8 discount, uint8 referrer);
        
}

// from OZ

/**
 * @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) {
        // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        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;
    }
}

contract Ownable {

    address payable public owner;

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

    function setOwner(address payable _owner) public onlyOwner {
        owner = _owner;
    }

    function getOwner() public view returns (address payable) {
        return owner;
    }

    modifier onlyOwner {
        require(msg.sender == owner, "must be owner to call this function");
        _;
    }

}


contract Referrals is Ownable {

    using SafeMath for uint;

    uint public discountLimit;
    uint public defaultDiscount;
    uint public defaultRefer;

    mapping(address => Split) public splits;

    struct Split {
        bool set;
        uint8 discountPercentage;
        uint8 referrerPercentage;
    }

    event SplitChanged(address user, uint8 discount, uint8 referrer);

    constructor(uint _discountLimit, uint _defaultDiscount, uint _defaultRefer) public {   
        setDiscountLimit(_discountLimit);
        setDefaults(_defaultDiscount, _defaultRefer);
    }

    // sets the discount and referral percentages for the current user
    // this is deliberately user-customisable
    function setSplit(uint8 discount, uint8 referrer) public {
        require(discountLimit >= discount + referrer, "can't give more than the limit");
        require(discount + referrer >= discount, "can't overflow");
        splits[msg.sender] = Split({
            discountPercentage: discount,
            referrerPercentage: referrer,
            set: true
        });
        emit SplitChanged(msg.sender, discount, referrer);
    }

    // override a user's split
    function overrideSplit(address user, uint8 discount, uint8 referrer) public onlyOwner {
        require(discountLimit >= discount + referrer, "can't give more than the limit");
        require(discount + referrer >= discount, "can't overflow");
        splits[user] = Split({
            discountPercentage: discount,
            referrerPercentage: referrer,
            set: true
        });
        emit SplitChanged(user, discount, referrer);
    }

    // sets the max purchase total discount
    function setDiscountLimit(uint _limit) public onlyOwner {
        require(_limit <= 100, "discount limit must be <= 100");
        discountLimit = _limit;
    }

    // sets the default discount and referral percentages
    function setDefaults(uint _discount, uint _refer) public onlyOwner {
        require(discountLimit >= _discount + _refer, "can't be more than the limit");
        require(_discount + _refer >= _discount, "can't overflow");
        defaultDiscount = _discount;
        defaultRefer = _refer;
    }

    // gets the discount and referral rates for a particular user
    function getSplit(address user) public view returns (uint8 discount, uint8 referrer) {
        if (user == address(0)) {
            return (0, 0);
        }
        Split memory s = splits[user];
        if (!s.set) {
            return (uint8(defaultDiscount), uint8(defaultRefer));
        }
        return (s.discountPercentage, s.referrerPercentage);
    }

}




contract Processor is Ownable {

    using SafeMath for uint256;

    IReferrals public referrals;
    address payable public vault;
    uint public count;
    mapping(address => bool) public approvedSellers;

    event PaymentProcessed(uint id, address user, uint cost, uint items, address referrer, uint toVault, uint toReferrer);
    event SellerApprovalChanged(address seller, bool approved);

    constructor(address payable _vault, IReferrals _referrals) public {
        referrals = _referrals;
        vault = _vault;
    }

    function setCanSell(address seller, bool approved) public onlyOwner {
        approvedSellers[seller] = approved;
        emit SellerApprovalChanged(seller, approved);
    }

    function processPayment(address payable user, uint cost, uint items, address payable referrer) public payable returns (uint) {

        require(approvedSellers[msg.sender]);
        require(user != referrer, "can't refer yourself");
        require(items != 0, "have to purchase at least one item");
        require(cost > 0, "items must cost something");
        // TODO: are these necessary for the simple percentage logic?
        require(cost >= 100, "items must cost at least 100 wei");
        require(cost % 100 == 0, "costs must be multiples of 100");

        uint toVault;
        uint toReferrer;
        
        (toVault, toReferrer) = getAllocations(cost, items, referrer);

        uint total = toVault.add(toReferrer);

        // check that the tx has enough value to complete the payment
        require(msg.value >= total, "not enough value sent to contract");
        if (msg.value > total) {
            uint change = msg.value.sub(total);
            user.transfer(change);
        }

        vault.transfer(toVault);

        // pay the referral fee
        if (toReferrer > 0 && referrer != address(0)) {
            referrer.transfer(toReferrer);
        }

        // give this payment a unique ID
        uint id = count++;
        emit PaymentProcessed(id, user, cost, items, referrer, toVault, toReferrer);

        return id;
    }

    // get the amount of the purchase which will be allocated to
    // the vault and to the referrer
    function getAllocations(uint cost, uint items, address referrer) public view returns (uint toVault, uint toReferrer) {
        uint8 discount;
        uint8 refer;
        (discount, refer) = referrals.getSplit(referrer);
        require(discount + refer <= 100 && discount + refer >= discount, "invalid referral split");
        // avoid overflow
        uint total = cost.mul(items);
        uint8 vaultPercentage = 100 - discount - refer;
        toVault = getPercentage(total, vaultPercentage);
        toReferrer = getPercentage(total, refer);
        uint discountedTotal = getPercentage(total, 100 - discount);
        require(discountedTotal == toVault.add(toReferrer), "not all funds allocated");
        return (toVault, toReferrer);
    }

    // returns the price (including discount) which must be paid by the user
    function getPrice(uint cost, uint items, address referrer) public view returns (uint) {

        uint8 discount;
        (discount, ) = referrals.getSplit(referrer);

        return getPercentage(cost.mul(items), 100 - discount);
    }

    function getPercentage(uint amount, uint8 percentage) public pure returns (uint) {
        
        // TODO: are these necessary for the percentage logic?
        require(amount >= 100, "items must cost at least 100 wei");
        require(amount % 100 == 0, "costs must be multiples of 100 wei");
    
        return amount.mul(percentage).div(100);
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setCanSell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"items","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"name":"getAllocations","outputs":[{"internalType":"uint256","name":"toVault","type":"uint256"},{"internalType":"uint256","name":"toReferrer","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"user","type":"address"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"items","type":"uint256"},{"internalType":"address payable","name":"referrer","type":"address"}],"name":"processPayment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"items","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"approvedSellers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referrals","outputs":[{"internalType":"contract IReferrals","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"percentage","type":"uint8"}],"name":"getPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_vault","type":"address"},{"internalType":"contract IReferrals","name":"_referrals","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"cost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"items","type":"uint256"},{"indexed":false,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"toVault","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toReferrer","type":"uint256"}],"name":"PaymentProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"SellerApprovalChanged","type":"event"}]

608060405234801561001057600080fd5b506040516114a43803806114a48339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050611383806101216000396000f3fe6080604052600436106100a75760003560e01c8063893d20e811610064578063893d20e81461030a5780638da5cb5b14610361578063931e52ee146103b8578063d3dc753914610421578063f2bce73814610478578063fbfa77cf146104d4576100a7565b806306661abd146100ac57806313af4035146100d757806331ba7316146101285780633d8bee2e14610185578063733dad7d1461020557806373f773ff14610291575b600080fd5b3480156100b857600080fd5b506100c161052b565b6040518082815260200191505060405180910390f35b3480156100e357600080fd5b50610126600480360360208110156100fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610531565b005b34801561013457600080fd5b506101836004803603604081101561014b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610619565b005b34801561019157600080fd5b506101e8600480360360608110156101a857600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610788565b604051808381526020018281526020019250505060405180910390f35b61027b6004803603608081101561021b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109ed565b6040518082815260200191505060405180910390f35b34801561029d57600080fd5b506102f4600480360360608110156102b457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f72565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b5061031f611086565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036d57600080fd5b506103766110af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c457600080fd5b50610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d4565b604051808215151515815260200191505060405180910390f35b34801561042d57600080fd5b506104366110f4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048457600080fd5b506104be6004803603604081101561049b57600080fd5b8101908080359060200190929190803560ff16906020019092919050505061111a565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b506104e9611227565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061130b6023913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061130b6023913960400191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdf2391b643fd77dc8ef590df4aacb403f8466614b9a343023be39a8faa86a3be8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368800afd866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d604081101561085657600080fd5b8101908080519060200190929190805190602001909291905050508092508193505050606481830160ff161115801561089757508160ff1681830160ff1610155b610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e76616c696420726566657272616c2073706c69740000000000000000000081525060200191505060405180910390fd5b600061091e878961124d90919063ffffffff16565b905060008284606403039050610934828261111a565b9550610940828461111a565b94506000610951838660640361111a565b9050610966868861128190919063ffffffff16565b81146109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f7420616c6c2066756e647320616c6c6f636174656400000000000000000081525060200191505060405180910390fd5b8686965096505050505050935093915050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a4557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610ae7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f63616e277420726566657220796f757273656c6600000000000000000000000081525060200191505060405180910390fd5b6000831415610b41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112e96022913960400191505060405180910390fd5b60008411610bb7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6974656d73206d75737420636f737420736f6d657468696e670000000000000081525060200191505060405180910390fd5b6064841015610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6974656d73206d75737420636f7374206174206c65617374203130302077656981525060200191505060405180910390fd5b600060648581610c3a57fe5b0614610cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f636f737473206d757374206265206d756c7469706c6573206f6620313030000081525060200191505060405180910390fd5b600080610cbc868686610788565b80925081935050506000610cd9828461128190919063ffffffff16565b905080341015610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061132e6021913960400191505060405180910390fd5b80341115610d9c576000610d51823461129b90919063ffffffff16565b90508873ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d99573d6000803e3d6000fd5b50505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610e04573d6000803e3d6000fd5b50600082118015610e425750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610e8f578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610e8d573d6000803e3d6000fd5b505b6000600360008154809291906001019190505590507f5315f07ba82e0d0c482f25963a3c8cd5b09b0c969a5f42821132ae2f570f25fa818a8a8a8a8989604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200197505050505050505060405180910390a180945050505050949350505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368800afd846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561101357600080fd5b505afa158015611027573d6000803e3d6000fd5b505050506040513d604081101561103d57600080fd5b810190808051906020019092919080519060200190929190505050508091505061107c611073858761124d90919063ffffffff16565b8260640361111a565b9150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006064831015611193576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6974656d73206d75737420636f7374206174206c65617374203130302077656981525060200191505060405180910390fd5b60006064848161119f57fe5b06146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112c76022913960400191505060405180910390fd5b61121f60646112118460ff168661124d90919063ffffffff16565b6112b290919063ffffffff16565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611260576000905061127b565b81830290508183828161126f57fe5b041461127757fe5b8090505b92915050565b600081830190508281101561129257fe5b80905092915050565b6000828211156112a757fe5b818303905092915050565b60008183816112bd57fe5b0490509291505056fe636f737473206d757374206265206d756c7469706c6573206f6620313030207765696861766520746f207075726368617365206174206c65617374206f6e65206974656d6d757374206265206f776e657220746f2063616c6c20746869732066756e6374696f6e6e6f7420656e6f7567682076616c75652073656e7420746f20636f6e7472616374a265627a7a7231582075598e3aa081960e05e1481885ebf7672a5457cfed10e03b23e81335084aab2e64736f6c634300050b003200000000000000000000000091b9d2835ad914bc1dcfe09bd1816febd04fd689000000000000000000000000a993559e69c5318f125d221736113737169b3b93

Deployed Bytecode

0x6080604052600436106100a75760003560e01c8063893d20e811610064578063893d20e81461030a5780638da5cb5b14610361578063931e52ee146103b8578063d3dc753914610421578063f2bce73814610478578063fbfa77cf146104d4576100a7565b806306661abd146100ac57806313af4035146100d757806331ba7316146101285780633d8bee2e14610185578063733dad7d1461020557806373f773ff14610291575b600080fd5b3480156100b857600080fd5b506100c161052b565b6040518082815260200191505060405180910390f35b3480156100e357600080fd5b50610126600480360360208110156100fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610531565b005b34801561013457600080fd5b506101836004803603604081101561014b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610619565b005b34801561019157600080fd5b506101e8600480360360608110156101a857600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610788565b604051808381526020018281526020019250505060405180910390f35b61027b6004803603608081101561021b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109ed565b6040518082815260200191505060405180910390f35b34801561029d57600080fd5b506102f4600480360360608110156102b457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f72565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b5061031f611086565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036d57600080fd5b506103766110af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c457600080fd5b50610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d4565b604051808215151515815260200191505060405180910390f35b34801561042d57600080fd5b506104366110f4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048457600080fd5b506104be6004803603604081101561049b57600080fd5b8101908080359060200190929190803560ff16906020019092919050505061111a565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b506104e9611227565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061130b6023913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061130b6023913960400191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdf2391b643fd77dc8ef590df4aacb403f8466614b9a343023be39a8faa86a3be8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368800afd866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d604081101561085657600080fd5b8101908080519060200190929190805190602001909291905050508092508193505050606481830160ff161115801561089757508160ff1681830160ff1610155b610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e76616c696420726566657272616c2073706c69740000000000000000000081525060200191505060405180910390fd5b600061091e878961124d90919063ffffffff16565b905060008284606403039050610934828261111a565b9550610940828461111a565b94506000610951838660640361111a565b9050610966868861128190919063ffffffff16565b81146109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f7420616c6c2066756e647320616c6c6f636174656400000000000000000081525060200191505060405180910390fd5b8686965096505050505050935093915050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a4557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610ae7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f63616e277420726566657220796f757273656c6600000000000000000000000081525060200191505060405180910390fd5b6000831415610b41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112e96022913960400191505060405180910390fd5b60008411610bb7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6974656d73206d75737420636f737420736f6d657468696e670000000000000081525060200191505060405180910390fd5b6064841015610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6974656d73206d75737420636f7374206174206c65617374203130302077656981525060200191505060405180910390fd5b600060648581610c3a57fe5b0614610cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f636f737473206d757374206265206d756c7469706c6573206f6620313030000081525060200191505060405180910390fd5b600080610cbc868686610788565b80925081935050506000610cd9828461128190919063ffffffff16565b905080341015610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061132e6021913960400191505060405180910390fd5b80341115610d9c576000610d51823461129b90919063ffffffff16565b90508873ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d99573d6000803e3d6000fd5b50505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610e04573d6000803e3d6000fd5b50600082118015610e425750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610e8f578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610e8d573d6000803e3d6000fd5b505b6000600360008154809291906001019190505590507f5315f07ba82e0d0c482f25963a3c8cd5b09b0c969a5f42821132ae2f570f25fa818a8a8a8a8989604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200197505050505050505060405180910390a180945050505050949350505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368800afd846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561101357600080fd5b505afa158015611027573d6000803e3d6000fd5b505050506040513d604081101561103d57600080fd5b810190808051906020019092919080519060200190929190505050508091505061107c611073858761124d90919063ffffffff16565b8260640361111a565b9150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006064831015611193576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6974656d73206d75737420636f7374206174206c65617374203130302077656981525060200191505060405180910390fd5b60006064848161119f57fe5b06146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112c76022913960400191505060405180910390fd5b61121f60646112118460ff168661124d90919063ffffffff16565b6112b290919063ffffffff16565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611260576000905061127b565b81830290508183828161126f57fe5b041461127757fe5b8090505b92915050565b600081830190508281101561129257fe5b80905092915050565b6000828211156112a757fe5b818303905092915050565b60008183816112bd57fe5b0490509291505056fe636f737473206d757374206265206d756c7469706c6573206f6620313030207765696861766520746f207075726368617365206174206c65617374206f6e65206974656d6d757374206265206f776e657220746f2063616c6c20746869732066756e6374696f6e6e6f7420656e6f7567682076616c75652073656e7420746f20636f6e7472616374a265627a7a7231582075598e3aa081960e05e1481885ebf7672a5457cfed10e03b23e81335084aab2e64736f6c634300050b0032

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

00000000000000000000000091b9d2835ad914bc1dcfe09bd1816febd04fd689000000000000000000000000a993559e69c5318f125d221736113737169b3b93

-----Decoded View---------------
Arg [0] : _vault (address): 0x91B9d2835AD914bc1dcFE09Bd1816FeBd04fd689
Arg [1] : _referrals (address): 0xA993559e69c5318F125D221736113737169b3b93

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000091b9d2835ad914bc1dcfe09bd1816febd04fd689
Arg [1] : 000000000000000000000000a993559e69c5318f125d221736113737169b3b93


Swarm Source

bzzr://75598e3aa081960e05e1481885ebf7672a5457cfed10e03b23e81335084aab2e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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