// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

contract AkadamaReferal {

    address public immutable wallet;
    mapping(address => uint) public participations;
    mapping(address => bool) public presales;

    modifier onlyOwner {
        require(msg.sender == wallet);
        _;
    }

    modifier onlyPresale {
        require(presales[msg.sender] == true);
        _;
    }

    constructor(address payable _wallet) {
        require(_wallet != address(0));
        wallet = _wallet;
    }

    function addPresale(address _presale) public onlyOwner {
        presales[_presale] = true;
    }

    function addParticipation(address _refered, uint _participations) public onlyPresale {
        participations[_refered] = participations[_refered] + _participations;
    }
}