Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4wOwoKY29udHJhY3QgQXJiaXRQYXJhZ29uIHsKJm5ic3A7Jm5ic3A7Jm5ic3A7IGFkZHJlc3MgcHVibGljIG93bmVyOwombmJzcDsmbmJzcDsmbmJzcDsgYWRkcmVzcyBwdWJsaWMgY29tcGFueVdhbGxldDsKJm5ic3A7Jm5ic3A7Jm5ic3A7IAombmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBwdWJsaWMgcmVmZXJyYWxDb21taXNzaW9uID0gNTsgLy8gNSUgcmVmZXJyYWwgY29tbWlzc2lvbgombmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBwdWJsaWMgYmluYXJ5Q29tbWlzc2lvbiA9IDEwOyAvLyAxMCUgYmluYXJ5IGNvbW1pc3Npb24KJm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgcHVibGljIG1vbnRobHlQcm9maXQgPSA2OyAvLyA2JSBtb250aGx5IHByb2ZpdAombmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBwdWJsaWMgd2l0aGRyYXdhbEZlZSA9IDM7IC8vIDMlIHdpdGhkcmF3YWwgZmVlCiZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MjU2IHB1YmxpYyBtYXhCaW5hcnlEYWlseSA9IDEwMDAwICogMTAqKjE4OyAvLyAkMTAwMDAgbWF4IGJpbmFyeSBkYWlseSBjb21taXNzaW9uCiZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MjU2IHB1YmxpYyBnb2xkZW5SZXdhcmRWb2x1bWUgPSAzMDAwMDAgKiAxMCoqMTg7IC8vICQzMDAsMDAwIGZvciBHb2xkZW4gUmV3YXJkCgombmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IFVzZXIgewombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYWRkcmVzcyB3YWxsZXQ7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MjU2IHRvdGFsRGVwb3NpdDsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgdG90YWxXaXRoZHJhdzsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgbGVmdFZvbHVtZTsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgcmlnaHRWb2x1bWU7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MjU2IHJlZmVycmFsQ29tbWlzc2lvbkVhcm5lZDsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgYmluYXJ5Q29tbWlzc2lvbkVhcm5lZDsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgZ29sZGVuUmV3YXJkRWFybmVkOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBuZXh0TW9udGhseVdpdGhkcmF3OwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBuZXh0Q29tbWlzc2lvbldpdGhkcmF3OwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBsYXN0QmluYXJ5UmVzZXRUaW1lOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiB0b3RhbEJpbmFyeVdpdGhkcmF3bjsKJm5ic3A7Jm5ic3A7Jm5ic3A7IH0KCiZuYnNwOyZuYnNwOyZuYnNwOyBtYXBwaW5nKGFkZHJlc3MgPSZndDsgVXNlcikgcHVibGljIHVzZXJzOwombmJzcDsmbmJzcDsmbmJzcDsgbWFwcGluZyhhZGRyZXNzID0mZ3Q7IGFkZHJlc3MpIHB1YmxpYyByZWZlcnJhbHM7IC8vIFdhbGxldCAtJmd0OyByZWZlcnJlcgombmJzcDsmbmJzcDsmbmJzcDsgbWFwcGluZyhhZGRyZXNzID0mZ3Q7IGJvb2wpIHB1YmxpYyBhY3RpdmVVc2VyczsKCiZuYnNwOyZuYnNwOyZuYnNwOyBldmVudCBEZXBvc2l0KGFkZHJlc3MgaW5kZXhlZCB1c2VyLCB1aW50MjU2IGFtb3VudCk7CiZuYnNwOyZuYnNwOyZuYnNwOyBldmVudCBXaXRoZHJhdyhhZGRyZXNzIGluZGV4ZWQgdXNlciwgdWludDI1NiBhbW91bnQsIHN0cmluZyBjYXRlZ29yeSk7CiZuYnNwOyZuYnNwOyZuYnNwOyBldmVudCBHb2xkZW5SZXdhcmRFYXJuZWQoYWRkcmVzcyBpbmRleGVkIHVzZXIsIHVpbnQyNTYgcmV3YXJkKTsKCiZuYnNwOyZuYnNwOyZuYnNwOyBtb2RpZmllciBvbmx5T3duZXIoKSB7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXF1aXJlKG1zZy5zZW5kZXIgPT0gb3duZXIsICZxdW90O09ubHkgb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24mcXVvdDspOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgXzsKJm5ic3A7Jm5ic3A7Jm5ic3A7IH0KCiZuYnNwOyZuYnNwOyZuYnNwOyBjb25zdHJ1Y3RvcihhZGRyZXNzIF9jb21wYW55V2FsbGV0KSB7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvd25lciA9IG1zZy5zZW5kZXI7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb21wYW55V2FsbGV0ID0gX2NvbXBhbnlXYWxsZXQ7CiZuYnNwOyZuYnNwOyZuYnNwOyB9CgombmJzcDsmbmJzcDsmbmJzcDsgLy8gRnVuY3Rpb24gdG8gYWN0aXZhdGUgdXNlciB3aXRoIHJlZmVycmFsCiZuYnNwOyZuYnNwOyZuYnNwOyBmdW5jdGlvbiBhY3RpdmF0ZVVzZXIoYWRkcmVzcyByZWZlcnJlcikgZXh0ZXJuYWwgcGF5YWJsZSB7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXF1aXJlKCFhY3RpdmVVc2Vyc1ttc2cuc2VuZGVyXSwgJnF1b3Q7VXNlciBhbHJlYWR5IGFjdGl2ZSZxdW90Oyk7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXF1aXJlKG1zZy52YWx1ZSAmZ3Q7PSAxNTAgKiAxMCoqMTgsICZxdW90O01pbmltdW0gYWN0aXZhdGlvbiBmZWUgaXMgJDE1MCZxdW90Oyk7CgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYWN0aXZlVXNlcnNbbXNnLnNlbmRlcl0gPSB0cnVlOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVmZXJyYWxzW21zZy5zZW5kZXJdID0gcmVmZXJyZXI7CgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLy8gQWRkIHZvbHVtZXMgZm9yIGJpbmFyeSB0cmVlCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAodXNlcnNbcmVmZXJyZXJdLmxlZnRWb2x1bWUgPT0gMCkgewombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXNlcnNbcmVmZXJyZXJdLmxlZnRWb2x1bWUgKz0gbXNnLnZhbHVlOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfSBlbHNlIHsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJzW3JlZmVycmVyXS5yaWdodFZvbHVtZSArPSBtc2cudmFsdWU7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9CgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZW1pdCBEZXBvc2l0KG1zZy5zZW5kZXIsIG1zZy52YWx1ZSk7CiZuYnNwOyZuYnNwOyZuYnNwOyB9CgombmJzcDsmbmJzcDsmbmJzcDsgLy8gRnVuY3Rpb24gdG8gZGVwb3NpdCBmdW5kcyBmb3IgaW52ZXN0bWVudAombmJzcDsmbmJzcDsmbmJzcDsgZnVuY3Rpb24gZGVwb3NpdCgpIGV4dGVybmFsIHBheWFibGUgewombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVxdWlyZShhY3RpdmVVc2Vyc1ttc2cuc2VuZGVyXSwgJnF1b3Q7VXNlciBpcyBub3QgYWN0aXZlJnF1b3Q7KTsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlcXVpcmUobXNnLnZhbHVlICZndDs9IDEwMCAqIDEwKioxOCwgJnF1b3Q7TWluaW11bSBkZXBvc2l0IGlzICQxMDAmcXVvdDspOwoKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQyNTYgY29tbWlzc2lvbiA9IChtc2cudmFsdWUgKiByZWZlcnJhbENvbW1pc3Npb24pIC8gMTAwOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYWRkcmVzcyByZWZlcnJlciA9IHJlZmVycmFsc1ttc2cuc2VuZGVyXTsKCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1c2Vyc1tyZWZlcnJlcl0ucmVmZXJyYWxDb21taXNzaW9uRWFybmVkICs9IGNvbW1pc3Npb247CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1c2Vyc1ttc2cuc2VuZGVyXS50b3RhbERlcG9zaXQgKz0gKG1zZy52YWx1ZSAtIGNvbW1pc3Npb24pOwoKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGVtaXQgRGVwb3NpdChtc2cuc2VuZGVyLCBtc2cudmFsdWUpOwombmJzcDsmbmJzcDsmbmJzcDsgfQoKJm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIEZ1bmN0aW9uIHRvIHdpdGhkcmF3IGZ1bmRzCiZuYnNwOyZuYnNwOyZuYnNwOyBmdW5jdGlvbiB3aXRoZHJhdyhzdHJpbmcgbWVtb3J5IGNhdGVnb3J5LCB1aW50MjU2IGFtb3VudCkgZXh0ZXJuYWwgewombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVxdWlyZShhY3RpdmVVc2Vyc1ttc2cuc2VuZGVyXSwgJnF1b3Q7VXNlciBpcyBub3QgYWN0aXZlJnF1b3Q7KTsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlcXVpcmUoYW1vdW50ICZndDsgMCwgJnF1b3Q7V2l0aGRyYXcgYW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8mcXVvdDspOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDI1NiBmZWUgPSAoYW1vdW50ICogd2l0aGRyYXdhbEZlZSkgLyAxMDA7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MjU2IG5ldEFtb3VudCA9IGFtb3VudCAtIGZlZTsKCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoa2VjY2FrMjU2KGFiaS5lbmNvZGVQYWNrZWQoY2F0ZWdvcnkpKSA9PSBrZWNjYWsyNTYoYWJpLmVuY29kZVBhY2tlZCgmcXVvdDtwcm9maXQmcXVvdDspKSkgewombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVxdWlyZSgKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJsb2NrLnRpbWVzdGFtcCAmZ3Q7PSB1c2Vyc1ttc2cuc2VuZGVyXS5uZXh0TW9udGhseVdpdGhkcmF3LAombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJnF1b3Q7TW9udGhseSB3aXRoZHJhd2FsIG5vdCBhbGxvd2VkIHlldCZxdW90OwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKTsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJzW21zZy5zZW5kZXJdLm5leHRNb250aGx5V2l0aGRyYXcgPSBibG9jay50aW1lc3RhbXAgKyAzMCBkYXlzOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfSBlbHNlIGlmIChrZWNjYWsyNTYoYWJpLmVuY29kZVBhY2tlZChjYXRlZ29yeSkpID09IGtlY2NhazI1NihhYmkuZW5jb2RlUGFja2VkKCZxdW90O2NvbW1pc3Npb24mcXVvdDspKSkgewombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVxdWlyZSgKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJsb2NrLnRpbWVzdGFtcCAmZ3Q7PSB1c2Vyc1ttc2cuc2VuZGVyXS5uZXh0Q29tbWlzc2lvbldpdGhkcmF3LAombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJnF1b3Q7Q29tbWlzc2lvbiB3aXRoZHJhd2FsIG5vdCBhbGxvd2VkIHlldCZxdW90OwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKTsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJzW21zZy5zZW5kZXJdLm5leHRDb21taXNzaW9uV2l0aGRyYXcgPSBibG9jay50aW1lc3RhbXAgKyAyMCBkYXlzOwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfSBlbHNlIGlmIChrZWNjYWsyNTYoYWJpLmVuY29kZVBhY2tlZChjYXRlZ29yeSkpID09IGtlY2NhazI1NihhYmkuZW5jb2RlUGFja2VkKCZxdW90O2JpbmFyeSZxdW90OykpKSB7CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXF1aXJlKHVzZXJzW21zZy5zZW5kZXJdLmJpbmFyeUNvbW1pc3Npb25FYXJuZWQgJmd0Oz0gYW1vdW50LCAmcXVvdDtOb3QgZW5vdWdoIGJpbmFyeSBjb21taXNzaW9uJnF1b3Q7KTsKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJzW21zZy5zZW5kZXJdLmJpbmFyeUNvbW1pc3Npb25FYXJuZWQgLT0gYW1vdW50OwombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfQoKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJzW21zZy4=
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract ArbitParagon {
address public owner;
address public companyWallet;
uint256 public referralCommission = 5; // 5% referral commission
uint256 public binaryCommission = 10; // 10% binary commission
uint256 public monthlyProfit = 6; // 6% monthly profit
uint256 public withdrawalFee = 3; // 3% withdrawal fee
uint256 public maxBinaryDaily = 10000 * 10**18; // $10000 max binary daily commission
uint256 public goldenRewardVolume = 300000 * 10**18; // $300,000 for Golden Reward
struct User {
address wallet;
uint256 totalDeposit;
uint256 totalWithdraw;
uint256 leftVolume;
uint256 rightVolume;
uint256 referralCommissionEarned;
uint256 binaryCommissionEarned;
uint256 goldenRewardEarned;
uint256 nextMonthlyWithdraw;
uint256 nextCommissionWithdraw;
uint256 lastBinaryResetTime;
uint256 totalBinaryWithdrawn;
}
mapping(address => User) public users;
mapping(address => address) public referrals; // Wallet -> referrer
mapping(address => bool) public activeUsers;
event Deposit(address indexed user, uint256 amount);
event Withdraw(address indexed user, uint256 amount, string category);
event GoldenRewardEarned(address indexed user, uint256 reward);
modifier onlyOwner() {
require(msg.sender == owner, "Only owner can perform this action");
_;
}
constructor(address _companyWallet) {
owner = msg.sender;
companyWallet = _companyWallet;
}
// Function to activate user with referral
function activateUser(address referrer) external payable {
require(!activeUsers[msg.sender], "User already active");
require(msg.value >= 150 * 10**18, "Minimum activation fee is $150");
activeUsers[msg.sender] = true;
referrals[msg.sender] = referrer;
// Add volumes for binary tree
if (users[referrer].leftVolume == 0) {
users[referrer].leftVolume += msg.value;
} else {
users[referrer].rightVolume += msg.value;
}
emit Deposit(msg.sender, msg.value);
}
// Function to deposit funds for investment
function deposit() external payable {
require(activeUsers[msg.sender], "User is not active");
require(msg.value >= 100 * 10**18, "Minimum deposit is $100");
uint256 commission = (msg.value * referralCommission) / 100;
address referrer = referrals[msg.sender];
users[referrer].referralCommissionEarned += commission;
users[msg.sender].totalDeposit += (msg.value - commission);
emit Deposit(msg.sender, msg.value);
}
// Function to withdraw funds
function withdraw(string memory category, uint256 amount) external {
require(activeUsers[msg.sender], "User is not active");
require(amount > 0, "Withdraw amount must be greater than zero");
uint256 fee = (amount * withdrawalFee) / 100;
uint256 netAmount = amount - fee;
if (keccak256(abi.encodePacked(category)) == keccak256(abi.encodePacked("profit"))) {
require(
block.timestamp >= users[msg.sender].nextMonthlyWithdraw,
"Monthly withdrawal not allowed yet"
);
users[msg.sender].nextMonthlyWithdraw = block.timestamp + 30 days;
} else if (keccak256(abi.encodePacked(category)) == keccak256(abi.encodePacked("commission"))) {
require(
block.timestamp >= users[msg.sender].nextCommissionWithdraw,
"Commission withdrawal not allowed yet"
);
users[msg.sender].nextCommissionWithdraw = block.timestamp + 20 days;
} else if (keccak256(abi.encodePacked(category)) == keccak256(abi.encodePacked("binary"))) {
require(users[msg.sender].binaryCommissionEarned >= amount, "Not enough binary commission");
users[msg.sender].binaryCommissionEarned -= amount;
}
users[msg.