xperp Token
____ _____ ____ ____
__ _| _ \| ____| _ \| _ \
\ \/ / |_) | _| | |_) | |_) |
> <| __/| |___| _ <| __/
/_/\_\_| |_____|_| \_\_|
Go long or short with leverage on @friendtech keys via Telegram
==============================================================
// - Tokenomics: 35% in LP, 10% to Team, 5% to Collateral Partners, 49% for future airdrops
// - Partnership: 1% has been sold to Handz of Gods.
// - Supply: 1M tokens
// - Tax: 3.5% tax on xperp traded (0.5% burned, 1.5% to revenue share, 1.5% to team and operating expenses).
// - Revenue Sharing: 30% of trading revenue goes to holders.
// - Eligibility: Holders of xperp tokens are entitled to revenue sharing.Foundry-based Solidity smart contract.
Mainnet: 0x64323d606CfCB1b50998636A182334Ad97637987
Goerli testnet: 0x204e907312fd772b1b0c155fbd456ecd75eb47e4
The contract is a UUPS proxy implemented using an ERC1967Proxy.
By default, the upgrade functionality included in UUPSUpgradeable contains a security mechanism that will prevent any upgrades to a non UUPS compliant implementation. This prevents upgrades to an implementation contract that wouldn’t contain the necessary upgrade mechanism, as it would lock the upgradeability of the proxy forever. This security mechanism can be bypassed by either of:
- Adding a flag mechanism in the implementation that will disable the upgrade function when triggered.
- Upgrading to an implementation that features an upgrade mechanism without the additional security check, and then upgrading again to another implementation without the upgrade mechanism.
The current implementation of this security mechanism uses EIP1822 to detect the storage slot used by the implementation.
Set DEPLOYER_PRIVATE_KEY in .env file.
# this runs the deploy script on a local network
forge script DeployUUPS# this deploys to the goerli network
forge script DeployUUPS --chain-id 5 --verify --rpc-url https://my_goerli_node_address --broadcast -vvvv --private-key=0xprivatekey --ffiUpgrade:
forge script DeployUUPS --sig "upgrade()" --chain-id 5 --verify --rpc-url https://RPC_URL --broadcast -vvvv --private-key=0xprivate_key --ffi- Deploy the xperp token contract setting the team wallet.
- Configure revsharebot address.
- Sending the dedicated owner 1M tokens which is a fixed totalsupply (before 5**!**).
- Ownership transfer to the launcher.
- The launcher puts xperp along with ETH to the liquidity pair.
- Executing
EnableTradingOnUniswapfunction.
- revsharebot: 0x87d71b3756A1e9c3117eEc8a79380926f66b80C3
- owner: 0x11eD88f6eE21F5808EB4B37D8292c57dc3Cc5e19
- team: 0x13e15FBf296248116729A47093C316d3209E95a1
Mainnnet: https://etherscan.io/address/0xE1e92c70617C86Ac10b3bc50F65b2fA752153d46
- Forge: compile, test, fuzz, format, and deploy smart contracts
- Forge Std: collection of helpful contracts and cheatcodes for testing
- PRBTest: modern collection of testing assertions and logging utilities
- Prettier: code formatter for non-Solidity files
- Solhint Community: linter for Solidity code
$ pnpm install # install Solhint, Prettier, and other Node.js deps
$ forge test --fork-url YOUR_MAINNET_NODE_URL -vvvv --gas-reportAll tests should pass, and you should see a gas report at the end. Test are executed against a mainnet fork to keep a real uniswap pair mirror, and to test the revenue sharing feature.
This project is licensed under MIT.