Forsage fossage system development (build case)

Smart contracts are a new technology that can only be achieved through blockchain. Ordinary, standard contracts cover the terms of an agreement between the parties and are often enforced by law; The smart contract is digital, stored in the blockchain, and uses encrypted code to enforce the protocol.
In other words, smart contracts are just software programs that, like all programs, perform exactly as the programmer intended. An intelligent contract is like a programming application: “When it appears, execute it.”
MLM encryption scheme, which allows users to earn Ethereum currency by the following 2 matrix recommendation structures. Herbage is based on intelligent contract decentralized ecosystem thus developing PUNK_2558. Make technology Settings fully available and automated so that they can be smooth and secure.
Gifting project with binary matrix structure is adopted in the program. There are 2 matrix types X3 matrix and X4 matrix you can choose to ride a bike with anyone. To start using any matrix loop, you must pay 0.05ETH fee (joining fee) and then start referrals through your referral link.
The matrix sizes used in the circulator are 3×1 and 2×2. The 3 by 1 matrix is essentially simple, you just need to fill in three positions. The 2 by 2 matrix starts at two positions in the first layer and then expands to four positions in the second layer. Positions are filled through direct and indirect recruitment of Forsage members. Once all the positions in the matrix are filled, the cyclic commission is activated. The positions coming out of the matrix will also be entered as new matrices of the same size.
uint8 public constant LAST_LEVEL = 12;

mapping(address => User) public users;
mapping(uint => address) public idToAddress;
mapping(uint => address) public userIds;
mapping(address => uint) public balances; 

uint public lastUserId = 2;
address public owner;

mapping(uint8 => uint) public levelPrice;

event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
event Reinvest(address indexed user, address indexed currentReferrer, address indexed caller, uint8 matrix, uint8 level);
event Upgrade(address indexed user, address indexed referrer, uint8 matrix, uint8 level);
event NewUserPlace(address indexed user, address indexed referrer, uint8 matrix, uint8 level, uint8 place);
event MissedEthReceive(address indexed receiver, address indexed from, uint8 matrix, uint8 level);
event SentExtraEthDividends(address indexed from, address indexed receiver, uint8 matrix, uint8 level);

constructor(address ownerAddress) public {
    levelPrice[1] = 0.025 ether;
    for (uint8 i = 2; i <= LAST_LEVEL; i++) {
        levelPrice[i] = levelPrice[i-1] * 2;
    owner = ownerAddress;
    User memory user = User({
        id: 1,
        referrer: address(0),
        partnersCount: uint(0)
    users[ownerAddress] = user;
    idToAddress[1] = ownerAddress;
    for (uint8 i = 1; i <= LAST_LEVEL; i++) {
        users[ownerAddress].activeX3Levels[i] = true;
        users[ownerAddress].activeX6Levels[i] = true;

Read More: