ETH Price: $3,893.25 (+0.87%)

Contract

0x042C2237B676f9B62354c1874cD88d0db1D6Aa56
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Change Cost In W...107045912020-08-21 16:12:181567 days ago1598026338IN
0x042C2237...db1D6Aa56
0 ETH0.0055951204

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ToGETher

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-08-04
*/

pragma solidity >=0.4.0 <0.6.0;

/* 



Hello!
This smart contract is a project affiliate program ToGETher. 
Our goal is to create a crowdfunding platform protected from fraudsters, working with fiat and cryptocurrency projects, 
which will be able to offer its users both an opportunity to make investments and options for earning money for investments.

We really hope for your support.
Below, I will describe in detail how this smart contract works.


A LITTLE ABOUT OUR PARTNERSHIP PROGRAM

The affiliate program has two directions, access to which you can get by making a donation, the amount of which is indicated in the corresponding function. 
Donate size will vary. This is necessary so that in the event of a sharp increase in ETH, the entry fee does not become too large.

The first area is the Personal Affiliate Program. Half of your donation is allocated to it. 
These funds are received by the user who is your Referrer and who invited you to the program. For FirstLine users this will be the address of the owner of the smart contract.

The second direction of the affiliate program is the Corporate affiliate program. The second half of your donation is allocated to it.
It goes to your UpLine (the person who invited the partner who invited you). You, in turn, will also receive income from the contributions
of partners who register in the program at the invitation of the users whom you brought. So the more people you invite, the higher your passive income will become.

Every fourth user you invite starts reinvestment. This is an event that allows you to invite new people. This will be charged a fee equal to the original donation. But you don't pay it. Paid automatically by every fourth partner. These funds are divided in half and distributed in two areas of the affiliate program.

Within the framework of the Personal Affiliate Program, half of the allocated funds go to your partner's Upline, who became the fourth on the account. This is the Upline for you, the Referrer.

The second half of the funds goes to the corporate affiliate program. According to its terms, funds for reinvestment go to the ETH address of the owner of the smart contract. 
We are very grateful to all of you for your efforts. Your activity is what brings the creation and full launch of our project and platform closer.

As you can see, the conditions and rules indicated in the code completely exclude fraud or the possibility of changing the conditions on our part. 
All funds are automatically distributed among recipients, which makes it impossible to scam this affiliate program.

You can donate only once from one address. More, you will not have to pay for anything, under no circumstances. The smart contract is designed in such a way that you cannot send a  donation if you have already made it earlier.

Invite people to the ToGETher Affiliate Program and earn money! 
In order to fully offset the entry costs, you only need to bring two people. Users whom you invite later will only bring you profit!


The code below is a simplified version of our Affiliate Program. We did not fill it with many incomprehensible functions,
making it as understandable as possible even for those users who have minimal knowledge of programming. 
That is why you will not see separate functions for the logic of sending and distributing funds or reinvesting here. 
All these functions are already included in the conditions prescribed in the registration functions.

Thank you very much for your attention!

*/




    contract ToGETher {
        
         struct User  {
            uint id;
            address userAddress;
            address referrerAddress;
            uint partnersCount;
            address UpLinePartner;
     }
         
         struct partner {
             address userAddress;
             address referrerAddress;
             address UpLinePartner;
         }
         
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        address public ownerWallet;  
        uint private cost = 0.06 ether;
        address[25000] private FirstLineUser;
        uint public countFirstLineUser = 25000;
    
        partner[] private partners;
       
// This is a function that denotes the owner of a smart contract. 
// It is designed so that the owner also exists as a user. He is the Upline and Referrer for all who register in the FirstLine.       
        
      constructor() public {
        ownerWallet = msg.sender; 
         User memory user = User({
            id: 1,                    
            userAddress: address (ownerWallet), 
            UpLinePartner: address(ownerWallet),
            referrerAddress: address(ownerWallet),
            partnersCount: uint(0)
        });
        users[ownerWallet] = user;
        idToAddress[1] = ownerWallet;
        lastUserId = lastUserId;
        }
    

    modifier onlyOwner() {
         require(msg.sender == ownerWallet, "Only Owner");
         _;
     }
     
      // This function is needed to adjust the size of the entry fee in case of a strong increase in the price of ETH.
    function changeCostInWei(uint NewCost)public onlyOwner returns (bool){
      cost = NewCost;
      return true;
    }
   
   //This function is necessary so that users can see the actual size of the entry cost.  The cost is indicated in WEI. 1 ETH = 1,000,000,000,000,000,000 Wei.
     function viewCost()public view  returns (uint){
       return uint (cost);
     
     }
   
// This function is for checking the balance of a smart contract. Since funds are immediately distributed among users, the balance should always be 0.
   function viewContractbalance() public view returns (uint256) {
        return address(this).balance;
     }
    
    
    
    
   
    
    
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    // Events

     event Registration (address indexed userAddress, address indexed referrerAddress, address indexed UpLinePartner);
     event RegistrationByInvitation (address indexed userAddress, address indexed referrerAddress, address indexed UpLinePartner);
   
     
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    // Registration

    
   function () external payable {
        revert("Invalid Transaction");
    }
    
/* 
Registration in FirsLine. These are the first partners of the project who could register without indicating the ETH address of the person who invited them. 
Otherwise, their capabilities are no different from those of other partners.

Upline and Referrer for these users will always be the owner of the smart contract. Because there are simply no addresses above this in the chain.

This type of registration has a limit on the number of people. After reaching this limit, the opportunity for registration will be closed. 
This is the condition that is written in the code.
Also, the smart contract verifies that the size of the donation you send during registration is not more or less than the specified one.
*/
    
    
   function RegistrationFirstLine(address userAddress) payable public  {
   address referrerAddress = ownerWallet;
   address receiver = ownerWallet;
   address UpLinePartner = ownerWallet;
   require(!isUserExists(userAddress), "User already Exists");
   require(msg.sender == userAddress, "You cannot register in the Partner program using someone else's ETH address or by leaving this field blank");
   require(msg.value == cost, "The amount of the contribution is indicated in the menu - Cost. The amount is indicated in Wei.");
        require(countFirstLineUser <= 25000, "The FirstLine limit has been reached. Please use the -registrationWithPartner- function and enter the ETH address of the user who invited you");
        require(countFirstLineUser > 0, "The FirstLine limit has been reached. Please use the -registrationWithPartner- function and enter the ETH address of the user who invited you");
        partners.push(partner(userAddress, referrerAddress, UpLinePartner));
     if (!address(uint160(receiver)).send(msg.value)) {
      return address(uint160(receiver)).transfer(address(this).balance);
      }
       
         User memory user = User({
            id: lastUserId,
            userAddress: address (userAddress),
            referrerAddress: address (referrerAddress),
            UpLinePartner:address (UpLinePartner),
            partnersCount: uint(0)
            
            
    });
        users[userAddress] = user;
        idToAddress[lastUserId] = userAddress;
        lastUserId = lastUserId + 1;
        countFirstLineUser = countFirstLineUser - 1;
        users[referrerAddress].partnersCount++;

       emit Registration (userAddress, referrerAddress, UpLinePartner);
        
       
         }

/*

Registration with a partner has no restrictions on the number of participants. To register using this method, you must provide the ETH address of the person who invited you.

This function contains conditions that check and prohibit re-registration. 
Also, the smart contract verifies that the size of the donation you send during registration is not more or less than the specified one.

Below are the conditions for the distribution of funds. Under normal conditions, 
the donation amount of the partner you invited is divided in half and sent to you and your Referrer (for your partner it will be UpLine).
If your partner is 4, 8, 12, 16 ... etc., by count., in the account, the Reinvest function is activated. 
In this case, the funds donated by your partner go to your Referrer (for your partner, it is Upline) and the address of the smart contract owner.

*/
        
     
    function registrationWithPartner(address referrerAddress, address userAddress) public payable {
         address UpLinePartner;
         users[userAddress].referrerAddress = referrerAddress;
         UpLinePartner = users[referrerAddress].referrerAddress;
         require(!isUserExists(userAddress), "User already exists");
         require(isUserExists(referrerAddress), "Referrer not exists"); 
         require (referrerAddress != ownerWallet, "Use registrationFirstLine. If there are no more places in the firstline - enter the ETH address of another member of the Partner program");
         require(msg.sender == userAddress, "You cannot register in the Partner program using someone else's ETH address or by leaving this field blank");
         require (msg.sender != referrerAddress, "You cannot invite yourself!");
         require(msg.value == cost, "The amount of the contribution is indicated in the menu - Cost. The amount is indicated in Wei.");
          partners.push(partner(userAddress, referrerAddress, UpLinePartner));
       
     
          User memory user = User({
            id: lastUserId,
            userAddress: msg.sender,
            referrerAddress: address (referrerAddress),
            UpLinePartner: address(UpLinePartner),
            partnersCount: uint(0)
            
 });
        users[userAddress] = user;
        idToAddress[lastUserId] = userAddress;
        lastUserId = lastUserId + 1;
        
        users[referrerAddress].partnersCount++;
        
        address receiver;
        address secondReceiverAddress;
        uint partnersCount;
        uint x = partnersCount % 4 ;
         (x == 0);
         
     if ( users[referrerAddress].partnersCount % 4 ==0 ) {
        receiver = ownerWallet;
        secondReceiverAddress = UpLinePartner;
        
         if (!address(uint160(receiver)).send(msg.value/2) ) {
        return address(uint160(receiver)).transfer(address(this).balance/2); 
               }
                if (!address(uint160(secondReceiverAddress)).send(msg.value)) {
               return address(uint160(secondReceiverAddress)).transfer(address(this).balance); 
                }
        } else {    
        
        receiver = referrerAddress;
        secondReceiverAddress = UpLinePartner;
           
        if (!address(uint160(receiver)).send(msg.value/2) ) {
        return address(uint160(receiver)).transfer(address(this).balance/2); 
               }
                if (!address(uint160(secondReceiverAddress)).send(msg.value)) {
               return address(uint160(secondReceiverAddress)).transfer(address(this).balance); 
        
           }
    }
      emit RegistrationByInvitation (referrerAddress, userAddress, UpLinePartner);
        
  
        }
        
    

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
 /*
 
 The two functions listed below are needed in order to check whether the specified user already exists among the program partners or not, 
 as well as so that the code can work with ETH addresses (bytesToAddress).
 
 */
   

 function isUserExists(address userAddress) public view returns (bool) {
        return (users[userAddress].id != 0);
    }
    
    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }
         
    mapping(address => User) public users;
    mapping(uint => address) private userIds;
    mapping(uint => address) private idToAddress;
    mapping(address => uint) private balances; 
    uint public lastUserId = 2;
     
 }

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":true,"internalType":"address","name":"referrerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"UpLinePartner","type":"address"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":true,"internalType":"address","name":"referrerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"UpLinePartner","type":"address"}],"name":"RegistrationByInvitation","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"RegistrationFirstLine","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"NewCost","type":"uint256"}],"name":"changeCostInWei","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"countFirstLineUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"},{"internalType":"address","name":"userAddress","type":"address"}],"name":"registrationWithPartner","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"address","name":"referrerAddress","type":"address"},{"internalType":"uint256","name":"partnersCount","type":"uint256"},{"internalType":"address","name":"UpLinePartner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"viewContractbalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"viewCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405266d529ae9e8600006001556161a86161aa5560026161b05534801561002857600080fd5b50600080546001600160a01b03191633179055610043610113565b506040805160a0810182526001808252600080546001600160a01b03908116602080860182815286880183815260608801868152608089018581529487526161ac845298862097518855905187870180549186166001600160a01b0319928316179055905160028801805491861691831691909117905596516003870155905160049095018054958316958716959095179094558154929091526161ae9092527f6e53731b1a68653ef18fd7a41019d5c356b6346f14c26e64c19196b4905d3a1f80549093169116179055610141565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b610f35806101506000396000f3fe6080604052600436106100915760003560e01c80639f75edff116100595780639f75edff146101b0578063a87430ba146101c5578063aa9931cd14610231578063db66441f14610246578063fa5708b91461027057610091565b80632937e269146100d4578063348d4487146100fc5780634f75cdd214610123578063509222cd146101385780639335dcb71461017f575b6040805162461bcd60e51b815260206004820152601360248201527224b73b30b634b2102a3930b739b0b1ba34b7b760691b604482015290519081900360640190fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b031661029e565b005b34801561010857600080fd5b50610111610667565b60408051918252519081900360200190f35b34801561012f57600080fd5b5061011161066e565b34801561014457600080fd5b5061016b6004803603602081101561015b57600080fd5b50356001600160a01b0316610675565b604080519115158252519081900360200190f35b34801561018b57600080fd5b50610194610693565b604080516001600160a01b039092168252519081900360200190f35b3480156101bc57600080fd5b506101116106a2565b3480156101d157600080fd5b506101f8600480360360208110156101e857600080fd5b50356001600160a01b03166106a8565b604080519586526001600160a01b0394851660208701529284168584015260608501919091529091166080830152519081900360a00190f35b34801561023d57600080fd5b506101116106e6565b34801561025257600080fd5b5061016b6004803603602081101561026957600080fd5b50356106ea565b6100fa6004803603604081101561028657600080fd5b506001600160a01b0381358116916020013516610740565b6000546001600160a01b031680806102b584610675565b156102fd576040805162461bcd60e51b81526020600482015260136024820152725573657220616c72656164792045786973747360681b604482015290519081900360640190fd5b336001600160a01b038516146103445760405162461bcd60e51b815260040180806020018281038252606a815260200180610e97606a913960800191505060405180910390fd5b60015434146103845760405162461bcd60e51b815260040180806020018281038252605f815260200180610e38605f913960600191505060405180910390fd5b6161a86161aa5411156103c85760405162461bcd60e51b815260040180806020018281038252608d815260200180610d23608d913960a00191505060405180910390fd5b60006161aa541161040a5760405162461bcd60e51b815260040180806020018281038252608d815260200180610d23608d913960a00191505060405180910390fd5b604080516060810182526001600160a01b038087168252858116602083019081528482168385019081526161ab80546001810182556000918252945160039095027fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f499690810180549686166001600160a01b031997881617905592517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f4996918401805491861691871691909117905590517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f499692909201805492841692909416919091179092559151918416913480156108fc0292909190818181858888f1935050505061054a576040516001600160a01b038316904780156108fc02916000818181858888f19350505050158015610541573d6000803e3d6000fd5b50505050610664565b610552610cf4565b506040805160a0810182526161b0805482526001600160a01b0380881660208085018281528984168688018181526000606089018181528b881660808b018181528884526161ac8089528d85208d51815597516001808a018054928e166001600160a01b0319938416179055965160028a018054918e1691831691909117905593516003808a019190915591516004909801805498909b1697841697909717909955895483526161ae87528b832080549092168817909155885483019098556161aa8054600019019055828152929093528782209094018054909201909155945193949293919290917f823aa89309f487b7c8dbb0c94b9314f5fb518341d0ac00f467580af5dcdec5e19190a4505050505b50565b6161b05481565b6161aa5481565b6001600160a01b031660009081526161ac6020526040902054151590565b6000546001600160a01b031681565b60015490565b6161ac602052600090815260409020805460018201546002830154600384015460049094015492936001600160a01b03928316939183169290911685565b4790565b600080546001600160a01b03163314610737576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9027bbb732b960b11b604482015290519081900360640190fd5b50600190815590565b6001600160a01b0381811660009081526161ac6020526040808220600290810180546001600160a01b0319168786169081179091558352912001541661078582610675565b156107cd576040805162461bcd60e51b81526020600482015260136024820152725573657220616c72656164792065786973747360681b604482015290519081900360640190fd5b6107d683610675565b61081d576040805162461bcd60e51b81526020600482015260136024820152725265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b6000546001600160a01b038481169116141561086a5760405162461bcd60e51b8152600401808060200182810382526088815260200180610db06088913960a00191505060405180910390fd5b336001600160a01b038316146108b15760405162461bcd60e51b815260040180806020018281038252606a815260200180610e97606a913960800191505060405180910390fd5b336001600160a01b038416141561090f576040805162461bcd60e51b815260206004820152601b60248201527f596f752063616e6e6f7420696e7669746520796f757273656c66210000000000604482015290519081900360640190fd5b600154341461094f5760405162461bcd60e51b815260040180806020018281038252605f815260200180610e38605f913960600191505060405180910390fd5b604080516060810182526001600160a01b038481168252858116602083019081528482169383019384526161ab805460018101825560009190915292517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f499690600390940293840180546001600160a01b031990811692851692909217905590517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f49969184018054831691841691909117905592517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f49969290920180549093169116179055610a36610cf4565b506040805160a0810182526161b0805482523360208084019182526001600160a01b038881168587018181526000606088018181528a851660808a019081528c86168084526161ac8089528c85208c51815599516001808c018054928b166001600160a01b0319938416179055965160028c018054918b1691831691909117905593516003808c019190915592516004909a0180549a90981699841699909917909655885483526161ae87528a832080549092169095179055865482019096559085529290915293822084018054909101908190559192909182918291829116610bfc576000546001600160a01b03169350859250836108fc600234049081150290604051600060405180830381858888f19350505050610b9a576001600160a01b0384166108fc6002475b049081150290604051600060405180830381858888f19350505050158015610b8e573d6000803e3d6000fd5b50505050505050610cf0565b6040516001600160a01b038416903480156108fc02916000818181858888f19350505050610bf7576040516001600160a01b038416904780156108fc02916000818181858888f19350505050158015610b8e573d6000803e3d6000fd5b610c9f565b6040518894508693506001600160a01b038516906002340480156108fc02916000818181858888f19350505050610c42576001600160a01b0384166108fc600247610b62565b6040516001600160a01b038416903480156108fc02916000818181858888f19350505050610c9f576040516001600160a01b038416904780156108fc02916000818181858888f19350505050158015610b8e573d6000803e3d6000fd5b856001600160a01b0316876001600160a01b0316896001600160a01b03167f1c1ac4c0c7f2862aede4d295a46d06ee877ef4af9316b45a760ad5e944b7930660405160405180910390a45050505050505b5050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091529056fe5468652046697273744c696e65206c696d697420686173206265656e20726561636865642e20506c656173652075736520746865202d726567697374726174696f6e57697468506172746e65722d2066756e6374696f6e20616e6420656e74657220746865204554482061646472657373206f662074686520757365722077686f20696e766974656420796f7555736520726567697374726174696f6e46697273744c696e652e20496620746865726520617265206e6f206d6f726520706c6163657320696e207468652066697273746c696e65202d20656e74657220746865204554482061646472657373206f6620616e6f74686572206d656d626572206f662074686520506172746e65722070726f6772616d54686520616d6f756e74206f662074686520636f6e747269627574696f6e20697320696e6469636174656420696e20746865206d656e75202d20436f73742e2054686520616d6f756e7420697320696e6469636174656420696e205765692e596f752063616e6e6f7420726567697374657220696e2074686520506172746e65722070726f6772616d207573696e6720736f6d656f6e6520656c73652773204554482061646472657373206f72206279206c656176696e672074686973206669656c6420626c616e6ba265627a7a723158202bc2b08161b0c270b3587d0adc3c84d36349b4a8f890fb57f1af607603da091964736f6c63430005110032

Deployed Bytecode

0x6080604052600436106100915760003560e01c80639f75edff116100595780639f75edff146101b0578063a87430ba146101c5578063aa9931cd14610231578063db66441f14610246578063fa5708b91461027057610091565b80632937e269146100d4578063348d4487146100fc5780634f75cdd214610123578063509222cd146101385780639335dcb71461017f575b6040805162461bcd60e51b815260206004820152601360248201527224b73b30b634b2102a3930b739b0b1ba34b7b760691b604482015290519081900360640190fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b031661029e565b005b34801561010857600080fd5b50610111610667565b60408051918252519081900360200190f35b34801561012f57600080fd5b5061011161066e565b34801561014457600080fd5b5061016b6004803603602081101561015b57600080fd5b50356001600160a01b0316610675565b604080519115158252519081900360200190f35b34801561018b57600080fd5b50610194610693565b604080516001600160a01b039092168252519081900360200190f35b3480156101bc57600080fd5b506101116106a2565b3480156101d157600080fd5b506101f8600480360360208110156101e857600080fd5b50356001600160a01b03166106a8565b604080519586526001600160a01b0394851660208701529284168584015260608501919091529091166080830152519081900360a00190f35b34801561023d57600080fd5b506101116106e6565b34801561025257600080fd5b5061016b6004803603602081101561026957600080fd5b50356106ea565b6100fa6004803603604081101561028657600080fd5b506001600160a01b0381358116916020013516610740565b6000546001600160a01b031680806102b584610675565b156102fd576040805162461bcd60e51b81526020600482015260136024820152725573657220616c72656164792045786973747360681b604482015290519081900360640190fd5b336001600160a01b038516146103445760405162461bcd60e51b815260040180806020018281038252606a815260200180610e97606a913960800191505060405180910390fd5b60015434146103845760405162461bcd60e51b815260040180806020018281038252605f815260200180610e38605f913960600191505060405180910390fd5b6161a86161aa5411156103c85760405162461bcd60e51b815260040180806020018281038252608d815260200180610d23608d913960a00191505060405180910390fd5b60006161aa541161040a5760405162461bcd60e51b815260040180806020018281038252608d815260200180610d23608d913960a00191505060405180910390fd5b604080516060810182526001600160a01b038087168252858116602083019081528482168385019081526161ab80546001810182556000918252945160039095027fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f499690810180549686166001600160a01b031997881617905592517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f4996918401805491861691871691909117905590517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f499692909201805492841692909416919091179092559151918416913480156108fc0292909190818181858888f1935050505061054a576040516001600160a01b038316904780156108fc02916000818181858888f19350505050158015610541573d6000803e3d6000fd5b50505050610664565b610552610cf4565b506040805160a0810182526161b0805482526001600160a01b0380881660208085018281528984168688018181526000606089018181528b881660808b018181528884526161ac8089528d85208d51815597516001808a018054928e166001600160a01b0319938416179055965160028a018054918e1691831691909117905593516003808a019190915591516004909801805498909b1697841697909717909955895483526161ae87528b832080549092168817909155885483019098556161aa8054600019019055828152929093528782209094018054909201909155945193949293919290917f823aa89309f487b7c8dbb0c94b9314f5fb518341d0ac00f467580af5dcdec5e19190a4505050505b50565b6161b05481565b6161aa5481565b6001600160a01b031660009081526161ac6020526040902054151590565b6000546001600160a01b031681565b60015490565b6161ac602052600090815260409020805460018201546002830154600384015460049094015492936001600160a01b03928316939183169290911685565b4790565b600080546001600160a01b03163314610737576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9027bbb732b960b11b604482015290519081900360640190fd5b50600190815590565b6001600160a01b0381811660009081526161ac6020526040808220600290810180546001600160a01b0319168786169081179091558352912001541661078582610675565b156107cd576040805162461bcd60e51b81526020600482015260136024820152725573657220616c72656164792065786973747360681b604482015290519081900360640190fd5b6107d683610675565b61081d576040805162461bcd60e51b81526020600482015260136024820152725265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b6000546001600160a01b038481169116141561086a5760405162461bcd60e51b8152600401808060200182810382526088815260200180610db06088913960a00191505060405180910390fd5b336001600160a01b038316146108b15760405162461bcd60e51b815260040180806020018281038252606a815260200180610e97606a913960800191505060405180910390fd5b336001600160a01b038416141561090f576040805162461bcd60e51b815260206004820152601b60248201527f596f752063616e6e6f7420696e7669746520796f757273656c66210000000000604482015290519081900360640190fd5b600154341461094f5760405162461bcd60e51b815260040180806020018281038252605f815260200180610e38605f913960600191505060405180910390fd5b604080516060810182526001600160a01b038481168252858116602083019081528482169383019384526161ab805460018101825560009190915292517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f499690600390940293840180546001600160a01b031990811692851692909217905590517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f49969184018054831691841691909117905592517fda10d0da957260c2c01ad4024f031b4291c840c9b90c67e4c125e7863f49969290920180549093169116179055610a36610cf4565b506040805160a0810182526161b0805482523360208084019182526001600160a01b038881168587018181526000606088018181528a851660808a019081528c86168084526161ac8089528c85208c51815599516001808c018054928b166001600160a01b0319938416179055965160028c018054918b1691831691909117905593516003808c019190915592516004909a0180549a90981699841699909917909655885483526161ae87528a832080549092169095179055865482019096559085529290915293822084018054909101908190559192909182918291829116610bfc576000546001600160a01b03169350859250836108fc600234049081150290604051600060405180830381858888f19350505050610b9a576001600160a01b0384166108fc6002475b049081150290604051600060405180830381858888f19350505050158015610b8e573d6000803e3d6000fd5b50505050505050610cf0565b6040516001600160a01b038416903480156108fc02916000818181858888f19350505050610bf7576040516001600160a01b038416904780156108fc02916000818181858888f19350505050158015610b8e573d6000803e3d6000fd5b610c9f565b6040518894508693506001600160a01b038516906002340480156108fc02916000818181858888f19350505050610c42576001600160a01b0384166108fc600247610b62565b6040516001600160a01b038416903480156108fc02916000818181858888f19350505050610c9f576040516001600160a01b038416904780156108fc02916000818181858888f19350505050158015610b8e573d6000803e3d6000fd5b856001600160a01b0316876001600160a01b0316896001600160a01b03167f1c1ac4c0c7f2862aede4d295a46d06ee877ef4af9316b45a760ad5e944b7930660405160405180910390a45050505050505b5050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091529056fe5468652046697273744c696e65206c696d697420686173206265656e20726561636865642e20506c656173652075736520746865202d726567697374726174696f6e57697468506172746e65722d2066756e6374696f6e20616e6420656e74657220746865204554482061646472657373206f662074686520757365722077686f20696e766974656420796f7555736520726567697374726174696f6e46697273744c696e652e20496620746865726520617265206e6f206d6f726520706c6163657320696e207468652066697273746c696e65202d20656e74657220746865204554482061646472657373206f6620616e6f74686572206d656d626572206f662074686520506172746e65722070726f6772616d54686520616d6f756e74206f662074686520636f6e747269627574696f6e20697320696e6469636174656420696e20746865206d656e75202d20436f73742e2054686520616d6f756e7420697320696e6469636174656420696e205765692e596f752063616e6e6f7420726567697374657220696e2074686520506172746e65722070726f6772616d207573696e6720736f6d656f6e6520656c73652773204554482061646472657373206f72206279206c656176696e672074686973206669656c6420626c616e6ba265627a7a723158202bc2b08161b0c270b3587d0adc3c84d36349b4a8f890fb57f1af607603da091964736f6c63430005110032

Deployed Bytecode Sourcemap

3575:11190:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:29;;;-1:-1:-1;;;7325:29:0;;;;;;;;;;;;-1:-1:-1;;;7325:29:0;;;;;;;;;;;;;;8113:1767;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8113:1767:0;-1:-1:-1;;;;;8113:1767:0;;:::i;:::-;;14727:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14727:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;4474:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4474:38:0;;;:::i;14225:124::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14225:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14225:124:0;-1:-1:-1;;;;;14225:124:0;;:::i;:::-;;;;;;;;;;;;;;;;;;4347:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4347:26:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4347:26:0;;;;;;;;;;;;;;5784:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5784:90:0;;;:::i;14536:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14536:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14536:37:0;-1:-1:-1;;;;;14536:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;14536:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6036:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6036:109:0;;;:::i;5492:120::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5492:120:0;;:::i;10787:2807::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10787:2807:0;;;;;;;;;;:::i;8113:1767::-;8187:23;8213:11;-1:-1:-1;;;;;8213:11:0;;;8316:25;8329:11;8316:12;:25::i;:::-;8315:26;8307:58;;;;;-1:-1:-1;;;8307:58:0;;;;;;;;;;;;-1:-1:-1;;;8307:58:0;;;;;;;;;;;;;;;8379:10;-1:-1:-1;;;;;8379:25:0;;;8371:144;;;;-1:-1:-1;;;8371:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8542:4;;8529:9;:17;8521:125;;;;-1:-1:-1;;;8521:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8687:5;8665:18;;:27;;8657:181;;;;-1:-1:-1;;;8657:181:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8878:1;8857:18;;:22;8849:176;;;;-1:-1:-1;;;8849:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9050:52;;;;;;;;-1:-1:-1;;;;;9050:52:0;;;;;;;;;;;;;;;;;;;;;;;9036:8;27:10:-1;;39:1;23:18;;45:23;;-1:-1;9036:67:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9036:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9116:42;;:31;;;;9148:9;9116:42;;;;;9148:9;;9116:42;;-1:-1:-1;9116:42:0;9148:9;9116:31;:42;;;;;;;9111:133;;9176:58;;-1:-1:-1;;;;;9176:35:0;;;9212:21;9176:58;;;;;;;;;9212:21;9176:35;:58;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9176:58:0;9169:65;;;;;9111:133;9264:16;;:::i;:::-;-1:-1:-1;9283:265:0;;;;;;;;9307:10;;;9283:265;;-1:-1:-1;;;;;9283:265:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;9283:265:0;;;;;;;;;;;;;;;9559:18;;;:5;:18;;;;;;:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9559:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9607:10;;9595:23;;:11;:23;;;;;:37;;;;;;;;;;9656:10;;:14;;9643:27;;;9702:18;;;-1:-1:-1;;9702:22:0;9681:43;;9735:22;;;;;;;;;;:36;;;:38;;;;;;;;9790:58;;9283:265;;;;;;;;9790:58;;-1:-1:-1;9790:58:0;8113:1767;;;;;;:::o;14727:26::-;;;;:::o;4474:38::-;;;;:::o;14225:124::-;-1:-1:-1;;;;;14314:18:0;14289:4;14314:18;;;:5;:18;;;;;:21;:26;;;14225:124::o;4347:26::-;;;-1:-1:-1;;;;;4347:26:0;;:::o;5784:90::-;5853:4;;5784:90;:::o;14536:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14536:37:0;;;;;;;;;;;;:::o;6036:109::-;6115:21;6036:109;:::o;5492:120::-;5556:4;5311:11;;-1:-1:-1;;;;;5311:11:0;5297:10;:25;5289:48;;;;;-1:-1:-1;;;5289:48:0;;;;;;;;;;;;-1:-1:-1;;;5289:48:0;;;;;;;;;;;;;;;-1:-1:-1;5570:4:0;:14;;;:4;5492:120::o;10787:2807::-;-1:-1:-1;;;;;10926:18:0;;;10893:21;10926:18;;;:5;:18;;;;;;:34;;;;:52;;-1:-1:-1;;;;;;10926:52:0;;;;;;;;;;11006:22;;;;:38;;;11065:25;10926:18;11065:12;:25::i;:::-;11064:26;11056:58;;;;;-1:-1:-1;;;11056:58:0;;;;;;;;;;;;-1:-1:-1;;;11056:58:0;;;;;;;;;;;;;;;11134:29;11147:15;11134:12;:29::i;:::-;11126:61;;;;;-1:-1:-1;;;11126:61:0;;;;;;;;;;;;-1:-1:-1;;;11126:61:0;;;;;;;;;;;;;;;11228:11;;-1:-1:-1;;;;;11209:30:0;;;11228:11;;11209:30;;11200:180;;;;-1:-1:-1;;;11200:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11400:10;-1:-1:-1;;;;;11400:25:0;;;11392:144;;;;-1:-1:-1;;;11392:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11557:10;-1:-1:-1;;;;;11557:29:0;;;;11548:70;;;;;-1:-1:-1;;;11548:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11651:4;;11638:9;:17;11630:125;;;;-1:-1:-1;;;11630:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11782:52;;;;;;;;-1:-1:-1;;;;;11782:52:0;;;;;;;;;;;;;;;;;;;;;;;11768:8;27:10:-1;;39:1;23:18;;45:23;;-1:-1;11768:67:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11768:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11864:16;;:::i;:::-;-1:-1:-1;11883:237:0;;;;;;;;11907:10;;;11883:237;;11945:10;11883:237;;;;;;;-1:-1:-1;;;;;11883:237:0;;;;;;;;;-1:-1:-1;11883:237:0;;;;;;;;;;;;;;;12131:18;;;;;;:5;:18;;;;;;:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12131:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12179:10;;12167:23;;:11;:23;;;;;:37;;;;;;;;;;12228:10;;:14;;12215:27;;;12263:22;;;;;;;;;;:36;;:38;;;;;;;;;11883:237;;-1:-1:-1;;;;;;;;12489:40:0;12484:1001;;12558:11;;-1:-1:-1;;;;;12558:11:0;;-1:-1:-1;12604:13:0;;-1:-1:-1;12558:11:0;12644:44;12686:1;12676:9;:11;12644:44;;;;;;;;;;;;;;;;;;;;;;;12639:150;;-1:-1:-1;;;;;12709:35:0;;:60;12767:1;12745:21;:23;;12709:60;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12709:60:0;12702:67;;;;;;;;12639:150;12812:55;;-1:-1:-1;;;;;12812:44:0;;;12857:9;12812:55;;;;;;;;;12857:9;12812:44;:55;;;;;;;12807:179;;12894:71;;-1:-1:-1;;;;;12894:48:0;;;12943:21;12894:71;;;;;;;;;12943:21;12894:48;:71;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;12807:179:0;12484:1001;;;13131:44;;13039:15;;-1:-1:-1;13089:13:0;;-1:-1:-1;;;;;;13131:31:0;;;13173:1;13163:9;:11;13131:44;;;;;;;;;13163:11;13131:31;:44;;;;;;;13126:150;;-1:-1:-1;;;;;13196:35:0;;:60;13254:1;13232:21;:23;;13126:150;13299:55;;-1:-1:-1;;;;;13299:44:0;;;13344:9;13299:55;;;;;;;;;13344:9;13299:44;:55;;;;;;;13294:184;;13381:71;;-1:-1:-1;;;;;13381:48:0;;;13430:21;13381:71;;;;;;;;;13430:21;13381:48;:71;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;13294:184:0;13554:13;-1:-1:-1;;;;;13498:70:0;13541:11;-1:-1:-1;;;;;13498:70:0;13524:15;-1:-1:-1;;;;;13498:70:0;;;;;;;;;;;10787:2807;;;;;;;;;:::o;3575:11190::-;;;;;;;;;-1:-1:-1;3575:11190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://2bc2b08161b0c270b3587d0adc3c84d36349b4a8f890fb57f1af607603da0919

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  ]

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.