uups-checker 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitmodules +6 -0
- package/AIFI_AUDIT.md +220 -0
- package/ALL_AUDITS_SUMMARY.md +366 -0
- package/ALPHA_PROXY_CRITICAL_FINDING.md +136 -0
- package/ALPHA_PROXY_FINAL_ANALYSIS.md +213 -0
- package/ALPHA_PROXY_FINAL_VERDICT.md +233 -0
- package/ALPHA_PROXY_SELFDESTRUCT_EXPLOIT.md +161 -0
- package/ARIA-foundry-test.txt +9 -0
- package/ARIA-mythril-analysis.txt +20 -0
- package/ARIA-slither-analysis.txt +38 -0
- package/ARIA_AI_SECURITY_AUDIT.md +290 -0
- package/ARIA_VERIFIED_AUDIT.md +259 -0
- package/ARIA_VERIFIED_slither.txt +76 -0
- package/ARIVA_source.txt +1 -0
- package/ARK_AUDIT.md +349 -0
- package/BANANA_AUDIT.md +365 -0
- package/BAS_AUDIT.md +451 -0
- package/BAS_TOKEN_AUDIT.md +235 -0
- package/BCE_EXPLOIT_ANALYSIS.md +165 -0
- package/BEEFY_BNB_CHAIN_ANALYSIS.md +488 -0
- package/BEEFY_MONAD_ANALYSIS.md +239 -0
- package/BEEFY_STAKING_ANALYSIS.md +136 -0
- package/BEEFY_XVS_WBNB_ACTUAL_FINDINGS.md +223 -0
- package/BEEFY_XVS_WBNB_CRITICAL_FINDINGS.md +269 -0
- package/BLOCKSEC_ATTACK_KNOWLEDGE_BASE.md +771 -0
- package/BRISE_ANALYSIS.txt +31 -0
- package/BRISE_BSC_DAPPS.txt +68 -0
- package/BRISE_EXPLOITS_FOUND.md +98 -0
- package/BRISE_REAL_EXPLOITS.md +115 -0
- package/BRISE_WHITEHAT_REPORT.md +162 -0
- package/BRISEstake_Analysis.txt +95 -0
- package/BSCSLOCKTOKEN_CRITICAL_FINDING.md +240 -0
- package/BSW_BISWAP_SECURITY_AUDIT.md +330 -0
- package/BTCST_FINAL_VERDICT.md +319 -0
- package/BTCST_MINING_REBASE_ANALYSIS.md +229 -0
- package/BTCST_ROUNDING_DEEP_DIVE.md +293 -0
- package/BTCST_ROUNDING_FINAL_VERDICT.md +9 -0
- package/BTCST_SECURITY_ANALYSIS.md +391 -0
- package/BTR_AUDIT.md +210 -0
- package/BeamBridge-analysis.md +226 -0
- package/BeamToken-analysis.md +201 -0
- package/BitgertSwap_Investigation.txt +107 -0
- package/CEEK_STAKING_ANALYSIS.md +0 -0
- package/CHAINBASE_AUDIT.md +422 -0
- package/COMPLETE_AUDIT_SUMMARY.md +342 -0
- package/CORRECTED_ANALYSIS.txt +115 -0
- package/DBXEN_COMPARISON_SUMMARY.md +232 -0
- package/DBXEN_EXPLOIT_ANALYSIS.md +530 -0
- package/DOPFairLaunch_raw.json +29 -0
- package/DOPFairLaunch_source.txt +0 -0
- package/DOP_BRIDGE_FINAL_ANALYSIS.txt +86 -0
- package/DOP_BUSD_LP_ANALYSIS.txt +44 -0
- package/DOP_FAIRLAUNCH_ANALYSIS.txt +61 -0
- package/DOP_FAIRLAUNCH_FINAL_VERDICT.txt +113 -0
- package/DOP_STAKING_CONTRACT_ANALYSIS.txt +67 -0
- package/DSYNC_ECOSYSTEM_ANALYSIS.md +221 -0
- package/DSyncStaking-exploit-analysis.md +153 -0
- package/DSyncVault-analysis.md +120 -0
- package/DUSD_PROXY_AUDIT.md +407 -0
- package/DXSALE_LOCK_AUDIT.md +0 -0
- package/DXSaleLock_bytecode.txt +1 -0
- package/ECHIDNA_QUICK_START.md +101 -0
- package/ELEPHANT_ECOSYSTEM_AUDIT_PLAN.md +159 -0
- package/ELEPHANT_ECOSYSTEM_COMPREHENSIVE_AUDIT.md +427 -0
- package/ELEPHANT_SECURITY_ANALYSIS.md +209 -0
- package/ELEPHANT_VULNERABILITIES_EXPLAINED.md +455 -0
- package/EXPLOIT_FIX.md +300 -0
- package/EXPLOIT_INSTRUCTIONS.md +273 -0
- package/EXPLOIT_SUMMARY.md +285 -0
- package/EXPLOIT_SUMMARY.txt +175 -0
- package/FALCON_FINANCE_AUDIT.md +258 -0
- package/FANDOM_AUDIT.md +359 -0
- package/FEE_ON_TRANSFER_ANALYSIS.md +228 -0
- package/FINAL_AUDIT_REPORT.md +0 -0
- package/FOLIO_PROXY_AUDIT.md +299 -0
- package/FOT_EXPLOIT_RESULTS.txt +110 -0
- package/FOT_TOKENS_AUDITED.md +103 -0
- package/HEGIC-mythril-analysis.txt +39 -0
- package/HEGIC_COMPLETE_ANALYSIS.md +343 -0
- package/HOTCROSS_SWAP_EXPLOIT_ANALYSIS.md +123 -0
- package/ICECREAMSWAP_EXPLOITS.md +259 -0
- package/IMMUNEFI_REPORT.md +314 -0
- package/KCCPAD_EXPLOIT_GUIDE.md +285 -0
- package/KEL_CEL_EXPLOIT_ANALYSIS.md +0 -0
- package/KOGE_AUDIT.md +328 -0
- package/LENDFLARE_ANALYSIS.md +239 -0
- package/LENDFLARE_ECHIDNA_GUIDE.md +356 -0
- package/LENDFLARE_EXPLOIT_INSTRUCTIONS.md +297 -0
- package/LENDFLARE_EXPLOIT_SUMMARY.md +292 -0
- package/LENDFLARE_FLASHLOAN_GUIDE.md +383 -0
- package/LENDFLARE_FUZZING_RESULTS.md +252 -0
- package/LENDFLARE_HONEYPOT_BYPASS_ANALYSIS.md +420 -0
- package/LENDFLARE_MANUAL_FUZZING.md +324 -0
- package/LENDFLARE_MYTHRIL_ANALYSIS.md +339 -0
- package/LENDFLARE_V3_BYPASS.md +296 -0
- package/LFTDECOMPILE.txt +14478 -0
- package/LFT_ACCOUNTING_ANALYSIS.md +0 -0
- package/LFT_ACCOUNTING_BUG_ANALYSIS.md +426 -0
- package/LFT_BACKDOOR_DEEP_DIVE.md +0 -0
- package/LFT_CRITICAL_EXPLOIT_CONFIRMED.md +428 -0
- package/LFT_EXPLOIT_VISUAL.md +253 -0
- package/LFT_QUICK_SUMMARY.md +124 -0
- package/LFT_REVERSE_EXPLOIT_ANALYSIS.md +521 -0
- package/MGO_AUDIT_REPORT.md +420 -0
- package/MYTHRIL_FINAL_REPORT.md +306 -0
- package/MYTHRIL_SLITHER_SUMMARY.md +244 -0
- package/NETX_MIGRATION_AUDIT.md +0 -0
- package/NPM_PUBLISH_GUIDE.md +0 -0
- package/NRV_CRITICAL_EXPLOIT.txt +143 -0
- package/NetX_Analysis.txt +76 -0
- package/NetX_Migration_bytecode.txt +1 -0
- package/NetX_Migration_source.txt +0 -0
- package/NetX_Token_source.txt +0 -0
- package/NetxWhitehatRescue +22 -0
- package/OILER_ATTACK_VISUAL.md +351 -0
- package/OILER_BLOCKSEC_TEST_RESULTS.md +421 -0
- package/OILER_DEEP_ANALYSIS.md +212 -0
- package/OILER_FINAL_EXPLOIT_REPORT.md +241 -0
- package/OILER_FINAL_VERDICT.md +339 -0
- package/OILER_REENTRANCY_EXPLAINED.md +638 -0
- package/OILER_REENTRANCY_FINAL_SUMMARY.md +391 -0
- package/OILER_REENTRANCY_REALITY_CHECK.md +393 -0
- package/OILER_REENTRANCY_STEP_BY_STEP.md +597 -0
- package/OILER_STAKING_MAINNET_ANALYSIS.md +366 -0
- package/OILER_STAKING_SECURITY_ANALYSIS.md +409 -0
- package/PANCAKESWAP_UNDERFLOW_HUNTING.md +317 -0
- package/POLS_MULTICHAIN_AUDIT.md +0 -0
- package/POSI_STAKING_AUDIT.md +0 -0
- package/PROXY2_SECURITY_ANALYSIS.md +0 -0
- package/Proxy2TACS +29748 -0
- package/QUICK_START.md +240 -0
- package/RAMP_SECURITY_ANALYSIS.md +0 -0
- package/README.md +238 -0
- package/REAUDIT_MASTER_LIST.txt +15 -0
- package/RING_analysis.txt +212 -0
- package/RPC +4 -0
- package/RULES.txt +20 -0
- package/SIREN_AUDIT.md +186 -0
- package/SYNC_EXPLOIT_README.md +0 -0
- package/SYNC_TOKEN_EXPLOIT_REPORT.md +224 -0
- package/TLM_raw.html +0 -0
- package/TLM_raw.txt +0 -0
- package/TLM_response.json +1 -0
- package/TRADOOR_AUDIT.md +253 -0
- package/TRUNK_AUDIT.md +285 -0
- package/UNIBASE_AUDIT.md +241 -0
- package/UNLOCK_ANALYSIS.md +0 -0
- package/UNLOCK_EXPLOIT.md +49 -0
- package/UNLOCK_EXPLOIT_ANALYSIS.md +0 -0
- package/UPS +232 -0
- package/UUPSCHECKER +208 -0
- package/VAULT_PROXY_AUDIT.md +457 -0
- package/VAULT_PROXY_FINAL_VERDICT.md +0 -0
- package/VERIFIED_EXPLOITS_FINAL.txt +146 -0
- package/WKEYDAO2_AUDIT.md +245 -0
- package/WSG_AUDIT.md +0 -0
- package/XFI_DEEP_ANALYSIS.md +327 -0
- package/YOOSHI_EXPLOIT_GUIDE.md +119 -0
- package/YSDAO_EXPLOIT_GUIDE.md +0 -0
- package/agent-4-bundle.md +22490 -0
- package/alpha-proxy-echidna.txt +1 -0
- package/alpha-proxy-fuzz-results.txt +81 -0
- package/alpha-proxy-mythril.txt +2 -0
- package/analyze-btcst-farm.js +54 -0
- package/analyze-dxsale-lock.js +75 -0
- package/analyze-elephant.js +69 -0
- package/analyze-fara-rewards.js +109 -0
- package/analyze-fara-storage.js +83 -0
- package/analyze-lft-transaction.js +158 -0
- package/analyze-lock-bytecode.js +59 -0
- package/analyze-shegic.js +0 -0
- package/analyze-staking-abi.js +0 -0
- package/analyze-sxp.js +57 -0
- package/analyze-tlm.js +76 -0
- package/analyze-trumpet.js +98 -0
- package/analyze-unlimited-nft.js +108 -0
- package/analyze_elephant.sh +27 -0
- package/analyze_vault.sh +32 -0
- package/aria-bytecode.txt +1 -0
- package/aria_response.json +1 -0
- package/ark_temp/README.md +66 -0
- package/ark_temp/lib/forge-std/.gitattributes +1 -0
- package/ark_temp/lib/forge-std/.github/CODEOWNERS +1 -0
- package/ark_temp/lib/forge-std/.github/dependabot.yml +6 -0
- package/ark_temp/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/ark_temp/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/ark_temp/lib/forge-std/CONTRIBUTING.md +193 -0
- package/ark_temp/lib/forge-std/LICENSE-APACHE +203 -0
- package/ark_temp/lib/forge-std/LICENSE-MIT +25 -0
- package/ark_temp/lib/forge-std/README.md +314 -0
- package/ark_temp/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/ark_temp/lib/forge-std/package.json +16 -0
- package/ark_temp/lib/forge-std/scripts/vm.py +636 -0
- package/audits/AiFi-security-audit-20260326.md +499 -0
- package/audits/BasedAI-Brains-security-audit-20260324.md +651 -0
- package/audits/BinanceAlphaWallet-pashov-ai-audit-report-20260324-170000.md +362 -0
- package/audits/DGToken-security-audit-20260324.md +376 -0
- package/audits/DSyncStaking-audit-part1.md +161 -0
- package/audits/DSyncStaking-security-audit-20260324.md +547 -0
- package/audits/DecompiledERC20-security-audit-20260325.md +397 -0
- package/audits/DegenVC-security-audit-20260324.md +585 -0
- package/audits/DelreyInu-security-audit-20260324.md +463 -0
- package/audits/DestraNetwork-security-audit-20260324.md +705 -0
- package/audits/DomiToken-security-audit-20260324.md +514 -0
- package/audits/LendFlareToken-security-audit-20260325.md +197 -0
- package/audits/LockReleaseTokenPool-security-audit-20260324.md +482 -0
- package/audits/MOG-pashov-ai-audit-report-20260324-164900.md +229 -0
- package/audits/PAALAI-security-audit-20260324.md +475 -0
- package/audits/PAR-security-audit-20260325.md +311 -0
- package/audits/PepeCoinStaking-security-audit-20260324.md +358 -0
- package/audits/StakingPool-security-audit-20260324.md +517 -0
- package/audits/SyncToken-security-audit-20260324.md +778 -0
- package/audits/UndeadToken-decompiled-security-audit-20260324.md +485 -0
- package/audits/UnknownToken-decompiled-security-audit-20260324.md +647 -0
- package/audits/XFIStaking-security-audit-20260324.md +682 -0
- package/audits/Xfinance-security-audit-20260324.md +463 -0
- package/audits/basedAIFarm-security-audit-20260324.md +330 -0
- package/audits/pepeCoin-security-audit-20260324.md +462 -0
- package/bin/ups +232 -0
- package/binance-wallet-exploit/.env.example +2 -0
- package/binance-wallet-exploit/EXECUTIVE_SUMMARY.md +272 -0
- package/binance-wallet-exploit/EXPLOIT_SUMMARY.md +104 -0
- package/binance-wallet-exploit/FINAL_ANALYSIS.md +326 -0
- package/binance-wallet-exploit/FLASHLOAN_ATTACK.md +292 -0
- package/binance-wallet-exploit/HONEYPOT_REPORT.md +526 -0
- package/binance-wallet-exploit/INVESTIGATION_COMPLETE.md +362 -0
- package/binance-wallet-exploit/LENDFLARE_EXPLOIT.md +219 -0
- package/binance-wallet-exploit/LENDFLARE_FINAL_ATTACK.md +307 -0
- package/binance-wallet-exploit/LENDFLARE_REAL_EXPLOIT.md +286 -0
- package/binance-wallet-exploit/LENDFLARE_RUGPULL.md +269 -0
- package/binance-wallet-exploit/LFT_ANALYSIS.md +206 -0
- package/binance-wallet-exploit/QUICK_START.md +75 -0
- package/binance-wallet-exploit/README.md +195 -0
- package/binance-wallet-exploit/REAL_TX_EXPLOIT_ANALYSIS.md +271 -0
- package/binance-wallet-exploit/REMIX_INSTRUCTIONS.md +223 -0
- package/binance-wallet-exploit/TEST_RESULTS.md +203 -0
- package/binance-wallet-exploit/cache/solidity-files-cache.json +1 -0
- package/binance-wallet-exploit/cache/test-failures +1 -0
- package/binance-wallet-exploit/lib/forge-std/.gitattributes +1 -0
- package/binance-wallet-exploit/lib/forge-std/.github/CODEOWNERS +1 -0
- package/binance-wallet-exploit/lib/forge-std/.github/dependabot.yml +6 -0
- package/binance-wallet-exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/binance-wallet-exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/binance-wallet-exploit/lib/forge-std/CONTRIBUTING.md +193 -0
- package/binance-wallet-exploit/lib/forge-std/LICENSE-APACHE +203 -0
- package/binance-wallet-exploit/lib/forge-std/LICENSE-MIT +25 -0
- package/binance-wallet-exploit/lib/forge-std/README.md +314 -0
- package/binance-wallet-exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/binance-wallet-exploit/lib/forge-std/package.json +16 -0
- package/binance-wallet-exploit/lib/forge-std/scripts/vm.py +636 -0
- package/binance-wallet-exploit/out/build-info/1e9aa7e86cf56962.json +1 -0
- package/binance-wallet-exploit/out/build-info/6f56f10e9d7b56eb.json +1 -0
- package/binance-wallet-exploit/out/build-info/7edba961ff697a24.json +1 -0
- package/binance-wallet-exploit/out/build-info/8c27fe3efea2f2e7.json +1 -0
- package/binance-wallet-exploit/out/build-info/978b680daffec63a.json +1 -0
- package/binance-wallet-exploit/out/build-info/9806b900b5672d0c.json +1 -0
- package/binance-wallet-exploit/out/build-info/b4b9ff36e9b3fc27.json +1 -0
- package/binance-wallet-exploit/out/build-info/b6f4df9ae05c0812.json +1 -0
- package/binance-wallet-exploit/out/build-info/c88dbc86551f7b5c.json +1 -0
- package/binance-wallet-exploit/out/build-info/e9657504010623db.json +1 -0
- package/cache/fuzz/failures/ARIAVerifiedFuzzTest/testFuzz_ApprovalRaceCondition +1 -0
- package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_DirectTransferExploit +1 -0
- package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_LargeSwapDrain +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_ApprovalExploit +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_BalanceManipulation +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_RateManipulation +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_StorageManipulation +1 -0
- package/cache/fuzz/failures/PARFuzzTest/testFuzz_OverflowTransfer +1 -0
- package/cache/fuzz/failures/PARFuzzTest/testFuzz_Transfer +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_FrontrunAddfunds +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RewardOverflow +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RoundingExploit +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_WithdrawLimit +1 -0
- package/cache/solidity-files-cache.json +1 -0
- package/cache/test-failures +1 -0
- package/calculate-elephant-flashloan.js +195 -0
- package/check-address-approval.js +112 -0
- package/check-alpha-proxy.js +42 -0
- package/check-arbitrage.js +155 -0
- package/check-aria-token.js +47 -0
- package/check-ark.sh +20 -0
- package/check-btcst-mining.js +75 -0
- package/check-btcst-pools.js +163 -0
- package/check-btcst.js +88 -0
- package/check-caller.js +26 -0
- package/check-ceek-lp.js +73 -0
- package/check-ceek.js +47 -0
- package/check-dxsale-address.js +35 -0
- package/check-fara-exploit-timing.js +56 -0
- package/check-fara-real-exploit.js +73 -0
- package/check-flashloan-limits.js +129 -0
- package/check-kel-cel-pool.js +91 -0
- package/check-lax-staking.js +41 -0
- package/check-lendflare.js +165 -0
- package/check-lft-accounting.js +109 -0
- package/check-lft-roles.js +165 -0
- package/check-lock-time.js +47 -0
- package/check-min-stake.js +73 -0
- package/check-mystery-contract.js +52 -0
- package/check-next-token.js +50 -0
- package/check-nora-lock.js +67 -0
- package/check-oiler-approvals.js +116 -0
- package/check-oiler-proxy.js +73 -0
- package/check-oiler-staking.js +117 -0
- package/check-proxy-simple.js +71 -0
- package/check-recent-stakes.js +54 -0
- package/check-shegic-holdings.js +67 -0
- package/check-snowcrash-ecosystem.js +83 -0
- package/check-sync-lp.js +97 -0
- package/check-sync-stake.js +42 -0
- package/check-tlm.js +37 -0
- package/check-token-pools.js +146 -0
- package/check-trunk-depeg.js +181 -0
- package/check-tusd-decimals.js +58 -0
- package/check-user-storage-deep.js +81 -0
- package/check-welephant-pools.js +130 -0
- package/check-xfi-pool.js +75 -0
- package/check-zypher.js +32 -0
- package/check_proxy.sh +36 -0
- package/compare-tlm-chains.js +90 -0
- package/contract_0x05f2.html +6025 -0
- package/contract_0x3720.html +6361 -0
- package/contract_0x928e.html +5606 -0
- package/contract_0xc42d.html +5304 -0
- package/contract_page.html +5789 -0
- package/decode-stake-tx.js +50 -0
- package/deep-analyze-lock.js +82 -0
- package/dune_uups_proxy_query.sql +42 -0
- package/dune_uups_vulnerable_query.sql +0 -0
- package/echidna/alpha-proxy.yaml +14 -0
- package/echidna/elephant.yaml +7 -0
- package/echidna/lendflare.yaml +42 -0
- package/echidna.config.yaml +12 -0
- package/elephant_raw.json +1 -0
- package/eps_raw.json +1 -0
- package/exploit/.github/workflows/test.yml +38 -0
- package/exploit/.gitmodules +3 -0
- package/exploit/README.md +66 -0
- package/exploit/foundry.lock +8 -0
- package/exploit/lib/forge-std/.gitattributes +1 -0
- package/exploit/lib/forge-std/.github/CODEOWNERS +1 -0
- package/exploit/lib/forge-std/.github/dependabot.yml +6 -0
- package/exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/exploit/lib/forge-std/CONTRIBUTING.md +193 -0
- package/exploit/lib/forge-std/LICENSE-APACHE +203 -0
- package/exploit/lib/forge-std/LICENSE-MIT +25 -0
- package/exploit/lib/forge-std/README.md +314 -0
- package/exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/exploit/lib/forge-std/package.json +16 -0
- package/exploit/lib/forge-std/scripts/vm.py +636 -0
- package/exploit_analysis.txt +51 -0
- package/extract_contract.py +21 -0
- package/extract_elephant_contracts.py +24 -0
- package/fara-staking-bytecode.txt +1 -0
- package/fara-staking-raw.txt +1 -0
- package/fetch-aria.js +46 -0
- package/fetch-contract.js +50 -0
- package/fetch-shegic-source.js +86 -0
- package/fetch-snowcrash.js +44 -0
- package/fetch-staking-source.js +53 -0
- package/fetch-tlm.js +60 -0
- package/fetch_elephant_source.py +32 -0
- package/find-ceek-staking.js +21 -0
- package/find-exploit-tx.js +88 -0
- package/find-oiler-holders.js +100 -0
- package/find-tlm-holder.js +36 -0
- package/find-vulnerable-fund.js +94 -0
- package/foundry.lock +8 -0
- package/fuzz-all.sh +53 -0
- package/get-aria-contract.py +40 -0
- package/get-lft-holders.js +89 -0
- package/get-tlm-source.sh +8 -0
- package/harvest_txs.json +1 -0
- package/lft-bytecode-raw.txt +1 -0
- package/lft-bytecode.json +1 -0
- package/lft-impl.bin +1 -0
- package/lft-implementation-bytecode.txt +1 -0
- package/lib/forge-std/.gitattributes +1 -0
- package/lib/forge-std/.github/CODEOWNERS +1 -0
- package/lib/forge-std/.github/dependabot.yml +6 -0
- package/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/lib/forge-std/CONTRIBUTING.md +193 -0
- package/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/forge-std/README.md +314 -0
- package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/lib/forge-std/package.json +16 -0
- package/lib/forge-std/scripts/vm.py +636 -0
- package/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/lib/openzeppelin-contracts/.codecov.yml +12 -0
- package/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/lib/openzeppelin-contracts/.eslintrc +20 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
- package/lib/openzeppelin-contracts/.github/actions/setup/action.yml +21 -0
- package/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
- package/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/lib/openzeppelin-contracts/.github/workflows/checks.yml +118 -0
- package/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
- package/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
- package/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +34 -0
- package/lib/openzeppelin-contracts/.gitmodules +7 -0
- package/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/lib/openzeppelin-contracts/.prettierrc +15 -0
- package/lib/openzeppelin-contracts/.solcover.js +13 -0
- package/lib/openzeppelin-contracts/CHANGELOG.md +972 -0
- package/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/lib/openzeppelin-contracts/GUIDELINES.md +148 -0
- package/lib/openzeppelin-contracts/LICENSE +22 -0
- package/lib/openzeppelin-contracts/README.md +107 -0
- package/lib/openzeppelin-contracts/RELEASING.md +45 -0
- package/lib/openzeppelin-contracts/SECURITY.md +42 -0
- package/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/README.md +17 -0
- package/lib/openzeppelin-contracts/certora/Makefile +54 -0
- package/lib/openzeppelin-contracts/certora/README.md +60 -0
- package/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
- package/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/run.js +160 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
- package/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
- package/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
- package/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
- package/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
- package/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs.json +86 -0
- package/lib/openzeppelin-contracts/contracts/access/README.adoc +43 -0
- package/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
- package/lib/openzeppelin-contracts/contracts/governance/README.adoc +167 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +82 -0
- package/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
- package/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +41 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/lib/openzeppelin-contracts/contracts/utils/README.adoc +88 -0
- package/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/lib/openzeppelin-contracts/docs/README.md +16 -0
- package/lib/openzeppelin-contracts/docs/antora.yml +7 -0
- package/lib/openzeppelin-contracts/docs/config.js +21 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +204 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +48 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +145 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +71 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +240 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +31 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +185 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +15 -0
- package/lib/openzeppelin-contracts/docs/templates/contract.hbs +111 -0
- package/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
- package/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
- package/lib/openzeppelin-contracts/docs/templates/properties.js +64 -0
- package/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
- package/lib/openzeppelin-contracts/hardhat/env-contract.js +25 -0
- package/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/lib/openzeppelin-contracts/hardhat.config.js +131 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
- package/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/lib/openzeppelin-contracts/logo.svg +15 -0
- package/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/lib/openzeppelin-contracts/package-lock.json +16544 -0
- package/lib/openzeppelin-contracts/package.json +96 -0
- package/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/lib/openzeppelin-contracts/renovate.json +4 -0
- package/lib/openzeppelin-contracts/requirements.txt +1 -0
- package/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +20 -0
- package/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
- package/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +38 -0
- package/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
- package/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
- package/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +247 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +17 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +146 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +283 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +126 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +78 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
- package/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
- package/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
- package/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +5 -0
- package/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +47 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +360 -0
- package/lib/openzeppelin-contracts/slither.config.json +5 -0
- package/lib/openzeppelin-contracts/solhint.config.js +20 -0
- package/mythril-lft-output.txt +1 -0
- package/mythril-lft-symbolic.txt +18 -0
- package/mythril-lft.sh +20 -0
- package/mythril-symbolic-output.txt +1 -0
- package/mythril-symbolic.sh +42 -0
- package/out/build-info/0026b78428192979.json +1 -0
- package/out/build-info/03c4fc3b88486eba.json +1 -0
- package/out/build-info/0540afa9b9a5c5a6.json +1 -0
- package/out/build-info/081932f505bc08b9.json +1 -0
- package/out/build-info/0da104ba0d6642d5.json +1 -0
- package/out/build-info/197281971dbb5f23.json +1 -0
- package/out/build-info/197e7e332832a232.json +1 -0
- package/out/build-info/1a1cab9136eb5f94.json +1 -0
- package/out/build-info/1b320204eb162aa2.json +1 -0
- package/out/build-info/1e03f94398052674.json +1 -0
- package/out/build-info/22ac085949602937.json +1 -0
- package/out/build-info/234ef37453a9fa64.json +1 -0
- package/out/build-info/2447db7b1878fa8e.json +1 -0
- package/out/build-info/25568daeb484f5ff.json +1 -0
- package/out/build-info/27465853244c49ce.json +1 -0
- package/out/build-info/2c57a9e0f087453b.json +1 -0
- package/out/build-info/3c62ae7de8da68c4.json +1 -0
- package/out/build-info/3e771ae109e97bb3.json +1 -0
- package/out/build-info/460499bc0a3465c4.json +1 -0
- package/out/build-info/47ce37e50a4f115e.json +1 -0
- package/out/build-info/4fcce5c63cf427d6.json +1 -0
- package/out/build-info/4fd0a53fe63fddbb.json +1 -0
- package/out/build-info/50f1247db9d769cc.json +1 -0
- package/out/build-info/5317d0181a7a5e02.json +1 -0
- package/out/build-info/594df509275ceb5b.json +1 -0
- package/out/build-info/61983ac3f6141719.json +1 -0
- package/out/build-info/638c4548307122fe.json +1 -0
- package/out/build-info/67c2c43bdb7c0ded.json +1 -0
- package/out/build-info/777f42643aad37b7.json +1 -0
- package/out/build-info/7d7856f19e845354.json +1 -0
- package/out/build-info/83976260b6f71e94.json +1 -0
- package/out/build-info/83c23882000b963d.json +1 -0
- package/out/build-info/84b2cce8f70b36be.json +1 -0
- package/out/build-info/8bc13d31d7c3206a.json +1 -0
- package/out/build-info/8e183bd4d9d8cf88.json +1 -0
- package/out/build-info/94bfe1e7cafa8ff5.json +1 -0
- package/out/build-info/99ec7d5e8d8ff360.json +1 -0
- package/out/build-info/9ac044b29daa7d5e.json +1 -0
- package/out/build-info/9b203227ff5d2e63.json +1 -0
- package/out/build-info/9d18c5872c4282dd.json +1 -0
- package/out/build-info/9f77f04f33baf9a3.json +1 -0
- package/out/build-info/a6e1caf974787982.json +1 -0
- package/out/build-info/a94b6348867a62d6.json +1 -0
- package/out/build-info/ad93721947a8b195.json +1 -0
- package/out/build-info/b42daddb5aa4b19f.json +1 -0
- package/out/build-info/bf13512ae899f7e8.json +1 -0
- package/out/build-info/c39f86c20a548c4a.json +1 -0
- package/out/build-info/cb12bb975a2f4e65.json +1 -0
- package/out/build-info/d0c6788fadc2aa60.json +1 -0
- package/out/build-info/d2726bf94ed5b845.json +1 -0
- package/out/build-info/d4eb00da50cce5cb.json +1 -0
- package/out/build-info/db931924a3bc8bdd.json +1 -0
- package/out/build-info/e1a503d49bc77401.json +1 -0
- package/out/build-info/efe5396f8892ce77.json +1 -0
- package/out/build-info/f536d90ced745969.json +1 -0
- package/out/build-info/fed38823c7019b82.json +1 -0
- package/package.json +51 -0
- package/page.html +5384 -0
- package/pancakeswap-simple-tvl.sql +15 -0
- package/pancakeswap-top-pools.sql +29 -0
- package/pancakeswap-tvl-optimized.sql +57 -0
- package/pancakeswap-tvl-query.sql +60 -0
- package/pancakeswap-underflow-hunting.sql +51 -0
- package/pancakeswap-vulnerability-queries.sql +200 -0
- package/posi_page.html +6369 -0
- package/posi_response.json +29 -0
- package/proxy_page.html +500 -0
- package/run_mythril_elephant.sh +18 -0
- package/sHEGIC-bytecode.bin +6 -0
- package/sHEGIC-mythril-analysis.txt +1 -0
- package/sHEGIC-mythril-full.txt +134 -0
- package/sHEGIC_ANALYSIS.md +135 -0
- package/sHEGIC_EXPLOIT_ANALYSIS.md +317 -0
- package/sHEGIC_MYTHRIL_ANALYSIS.md +361 -0
- package/scrape-snowcrash.js +28 -0
- package/scripts/yooshi_drain.sh +154 -0
- package/shi_raw.json +1 -0
- package/temp.json +1 -0
- package/temp_harvest.json +1 -0
- package/temp_pika.json +1 -0
- package/temp_posi.json +1 -0
- package/temp_response.json +1 -0
- package/test-lft-hidden-balance.js +108 -0
- package/test-xfi-exploit.js +140 -0
- package/trunk-liquidity-rescue.js +164 -0
- package/vBABY_page.html +6153 -0
- package/vBABY_response.json +29 -0
- package/wsg_response.json +1 -0
- package/yooldo_page.html +10371 -0
package/QUICK_START.md
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Quick Start Guide - XFI Staking Exploit
|
|
2
|
+
|
|
3
|
+
## TL;DR - Fastest Way to Test
|
|
4
|
+
|
|
5
|
+
### Option 1: Remix (Easiest)
|
|
6
|
+
|
|
7
|
+
1. **Open Remix**: https://remix.ethereum.org
|
|
8
|
+
2. **Copy `RemixExploit.sol`** into Remix
|
|
9
|
+
3. **Compile** with Solidity 0.6.0
|
|
10
|
+
4. **Deploy** `SimpleXFIExploit` contract on your fork
|
|
11
|
+
5. **Transfer XFI** tokens to the deployed contract
|
|
12
|
+
6. **Call** `setupExploit()` to approve
|
|
13
|
+
7. **Call** `executeExploit()` to run the attack
|
|
14
|
+
8. **Call** `getResults()` to see the profit
|
|
15
|
+
|
|
16
|
+
### Option 2: Foundry (For Automated Testing)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Clone and setup
|
|
20
|
+
git clone <your-repo>
|
|
21
|
+
cd <your-repo>
|
|
22
|
+
|
|
23
|
+
# Run the exploit test
|
|
24
|
+
forge test --match-test testDoubleCountingExploit -vvv --fork-url <YOUR_RPC_URL>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Detailed Remix Instructions
|
|
28
|
+
|
|
29
|
+
### Prerequisites
|
|
30
|
+
- MetaMask connected to a fork
|
|
31
|
+
- Some XFI tokens (get from token holder or mint on fork)
|
|
32
|
+
|
|
33
|
+
### Step-by-Step
|
|
34
|
+
|
|
35
|
+
1. **Deploy the Exploit Contract**
|
|
36
|
+
```
|
|
37
|
+
- Open Remix
|
|
38
|
+
- Create new file: RemixExploit.sol
|
|
39
|
+
- Paste the code
|
|
40
|
+
- Compile with 0.6.0
|
|
41
|
+
- Deploy SimpleXFIExploit
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
2. **Fund the Contract**
|
|
45
|
+
```solidity
|
|
46
|
+
// From your account with XFI
|
|
47
|
+
xfi.transfer(exploitContractAddress, 2000000000000000000000); // 2000 XFI
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
3. **Setup**
|
|
51
|
+
```
|
|
52
|
+
- Call setupExploit()
|
|
53
|
+
- This approves the staking contract
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
4. **Execute**
|
|
57
|
+
```
|
|
58
|
+
- Call executeExploit()
|
|
59
|
+
- This runs the double-counting attack
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
5. **Check Results**
|
|
63
|
+
```
|
|
64
|
+
- Call getResults()
|
|
65
|
+
- You should see profit > 0 if exploit worked
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## What You'll See
|
|
69
|
+
|
|
70
|
+
### Before Exploit
|
|
71
|
+
```
|
|
72
|
+
Balance: 2000 XFI
|
|
73
|
+
Staked: 0 XFI
|
|
74
|
+
Pending: 0 XFI
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### After First Stake
|
|
78
|
+
```
|
|
79
|
+
Balance: 1000 XFI (1000 staked)
|
|
80
|
+
Staked: 975 XFI (25 XFI fee)
|
|
81
|
+
Pending: ~X XFI (depends on pool rewards)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### After Second Stake (BUG TRIGGERED)
|
|
85
|
+
```
|
|
86
|
+
Balance: 0 XFI (2000 staked)
|
|
87
|
+
Staked: 1950 XFI (50 XFI total fees)
|
|
88
|
+
Pending: ~2X XFI (DOUBLED!)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### After Claiming
|
|
92
|
+
```
|
|
93
|
+
Balance: 2X XFI (doubled rewards claimed)
|
|
94
|
+
Staked: 1950 XFI
|
|
95
|
+
Pending: 0 XFI
|
|
96
|
+
Profit: X XFI (stolen from pool)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Understanding the Bug
|
|
100
|
+
|
|
101
|
+
### Normal Flow (Expected)
|
|
102
|
+
```
|
|
103
|
+
1. User stakes → pending rewards calculated
|
|
104
|
+
2. Rewards added to remainder ONCE
|
|
105
|
+
3. User claims → receives correct amount
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Buggy Flow (Actual)
|
|
109
|
+
```
|
|
110
|
+
1. User stakes → pendingReward() called
|
|
111
|
+
- Adds rewards to remainder (COUNT #1)
|
|
112
|
+
2. Code adds owing to remainder (COUNT #2)
|
|
113
|
+
3. User stakes again → pendingReward() called
|
|
114
|
+
- Adds rewards to remainder (COUNT #3)
|
|
115
|
+
4. Code adds owing to remainder (COUNT #4)
|
|
116
|
+
5. User claims → receives 2X rewards!
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Testing Scenarios
|
|
120
|
+
|
|
121
|
+
### Scenario A: Simple Double-Counting
|
|
122
|
+
```
|
|
123
|
+
1. Pool has existing stakes
|
|
124
|
+
2. Pool has rewards
|
|
125
|
+
3. Attacker stakes once
|
|
126
|
+
4. Attacker stakes again (triggers bug)
|
|
127
|
+
5. Attacker claims doubled rewards
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Scenario B: First Staker Advantage
|
|
131
|
+
```
|
|
132
|
+
1. Pool is empty (totalStakes = 0)
|
|
133
|
+
2. Attacker stakes first (pays 0% fee)
|
|
134
|
+
3. Victim stakes second (pays 2.5% fee)
|
|
135
|
+
4. Attacker saved 2.5%
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Scenario C: Complete Drain
|
|
139
|
+
```
|
|
140
|
+
1. Multiple users stake (pool has funds)
|
|
141
|
+
2. Rewards accumulate
|
|
142
|
+
3. Attacker stakes multiple times
|
|
143
|
+
4. Each stake doubles pending rewards
|
|
144
|
+
5. Attacker claims and drains pool
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Verification Checklist
|
|
148
|
+
|
|
149
|
+
- [ ] Contract deployed successfully
|
|
150
|
+
- [ ] XFI tokens transferred to contract
|
|
151
|
+
- [ ] setupExploit() called successfully
|
|
152
|
+
- [ ] executeExploit() called successfully
|
|
153
|
+
- [ ] getResults() shows profit > 0
|
|
154
|
+
- [ ] Pending rewards were doubled
|
|
155
|
+
- [ ] Contract balance increased
|
|
156
|
+
|
|
157
|
+
## Common Issues
|
|
158
|
+
|
|
159
|
+
### "No XFI tokens in contract"
|
|
160
|
+
**Solution**: Transfer XFI to the exploit contract first
|
|
161
|
+
```solidity
|
|
162
|
+
xfi.transfer(exploitAddress, amount);
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### "Approval failed"
|
|
166
|
+
**Solution**: Make sure contract has XFI balance before calling setupExploit()
|
|
167
|
+
|
|
168
|
+
### "Need at least 2000 XFI"
|
|
169
|
+
**Solution**: Transfer at least 2000 XFI to the contract
|
|
170
|
+
|
|
171
|
+
### "No profit shown"
|
|
172
|
+
**Solution**:
|
|
173
|
+
- Make sure pool has existing stakes
|
|
174
|
+
- Make sure pool has rewards
|
|
175
|
+
- Try adding rewards manually: `staking.ADDFUNDS(1000 * 10**18)`
|
|
176
|
+
|
|
177
|
+
## Advanced: Multi-Step Demo
|
|
178
|
+
|
|
179
|
+
For detailed step-by-step analysis, use `DetailedExploitDemo`:
|
|
180
|
+
|
|
181
|
+
```solidity
|
|
182
|
+
1. Deploy DetailedExploitDemo
|
|
183
|
+
2. Transfer XFI to contract
|
|
184
|
+
3. Call step0_approve()
|
|
185
|
+
4. Call step1_firstStake(1000 * 10**18)
|
|
186
|
+
5. Call step2_checkPending()
|
|
187
|
+
6. Call step3_secondStake(1000 * 10**18)
|
|
188
|
+
7. Call step4_claimRewards()
|
|
189
|
+
8. Call getProof() to see the bug
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Expected Output
|
|
193
|
+
|
|
194
|
+
### getProof() Result
|
|
195
|
+
```
|
|
196
|
+
pendingBeforeSecondStake: 500 XFI
|
|
197
|
+
pendingAfterSecondStake: 1000 XFI
|
|
198
|
+
difference: 500 XFI
|
|
199
|
+
verdict: "BUG CONFIRMED: Pending rewards increased after staking!"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
This proves the double-counting bug!
|
|
203
|
+
|
|
204
|
+
## Contract Addresses
|
|
205
|
+
|
|
206
|
+
- **XFI Token**: `0x5BEfBB272290dD5b8521D4a938f6c4757742c430`
|
|
207
|
+
- **Staking Contract**: `0x5cD1C00a88822182733E3ac335863fcC9A1c0705`
|
|
208
|
+
|
|
209
|
+
## Safety Notes
|
|
210
|
+
|
|
211
|
+
⚠️ **IMPORTANT**:
|
|
212
|
+
- This is for educational purposes on a FORK only
|
|
213
|
+
- Do NOT run on mainnet
|
|
214
|
+
- Do NOT steal real user funds
|
|
215
|
+
- Report vulnerabilities responsibly
|
|
216
|
+
|
|
217
|
+
## Next Steps
|
|
218
|
+
|
|
219
|
+
After confirming the exploit:
|
|
220
|
+
1. Document the findings
|
|
221
|
+
2. Calculate potential impact
|
|
222
|
+
3. Recommend fixes
|
|
223
|
+
4. Suggest contract redeployment
|
|
224
|
+
|
|
225
|
+
## Support
|
|
226
|
+
|
|
227
|
+
If you encounter issues:
|
|
228
|
+
1. Check you're on a fork (not mainnet)
|
|
229
|
+
2. Verify contract addresses
|
|
230
|
+
3. Ensure you have XFI tokens
|
|
231
|
+
4. Check transaction logs for errors
|
|
232
|
+
5. Review the audit report for details
|
|
233
|
+
|
|
234
|
+
## Files Reference
|
|
235
|
+
|
|
236
|
+
- `RemixExploit.sol` - Simple exploit for Remix
|
|
237
|
+
- `XFIStakingExploit.sol` - Full exploit contract
|
|
238
|
+
- `test/XFIStakingExploit.t.sol` - Foundry test
|
|
239
|
+
- `EXPLOIT_INSTRUCTIONS.md` - Detailed instructions
|
|
240
|
+
- `audits/XFIStaking-security-audit-20260324.md` - Full audit report
|
|
File without changes
|
package/README.md
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# UUPS Checker
|
|
2
|
+
|
|
3
|
+
A command-line tool to check UUPS and Transparent Proxy initialization status for whitehat security research.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- ✅ Detects UUPS vs Transparent Proxies
|
|
8
|
+
- ✅ Checks initialization status of proxy and implementation
|
|
9
|
+
- ✅ Shows owner/admin addresses
|
|
10
|
+
- ✅ Displays contract balance
|
|
11
|
+
- ✅ Supports multiple chains (ETH, BSC, Polygon, Arbitrum, Optimism, opBNB)
|
|
12
|
+
- ✅ Color-coded output for easy reading
|
|
13
|
+
- ✅ Works on Linux, macOS, and Android (Termux)
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
- [Foundry](https://book.getfoundry.sh/getting-started/installation) (for `cast` command)
|
|
18
|
+
- `bc` (basic calculator - usually pre-installed)
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
### Option 1: npm (Recommended)
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g uups-checker
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
After installation, you can use either command:
|
|
28
|
+
```bash
|
|
29
|
+
ups <contract_address> [chain]
|
|
30
|
+
# or
|
|
31
|
+
uups-checker <contract_address> [chain]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Option 2: From source
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/yourusername/uups-checker
|
|
37
|
+
cd uups-checker
|
|
38
|
+
chmod +x bin/ups
|
|
39
|
+
npm link
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Termux Installation (Android)
|
|
43
|
+
|
|
44
|
+
1. Install Termux from [F-Droid](https://f-droid.org/en/packages/com.termux/) (NOT Google Play)
|
|
45
|
+
|
|
46
|
+
2. Update packages and install dependencies:
|
|
47
|
+
```bash
|
|
48
|
+
pkg update && pkg upgrade
|
|
49
|
+
pkg install git nodejs bc
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
3. Install Rust (required for Foundry):
|
|
53
|
+
```bash
|
|
54
|
+
pkg install rust
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
4. Install Foundry:
|
|
58
|
+
```bash
|
|
59
|
+
curl -L https://foundry.paradigm.xyz | bash
|
|
60
|
+
source ~/.bashrc
|
|
61
|
+
foundryup
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
5. Install uups-checker:
|
|
65
|
+
```bash
|
|
66
|
+
npm install -g uups-checker
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
6. Test it:
|
|
70
|
+
```bash
|
|
71
|
+
ups 0x8599068597fd27D87514CB90c42300c03a474084 bsc
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Usage
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ups <contract_address> [chain]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Examples
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Check on Ethereum mainnet (default)
|
|
84
|
+
ups 0x1234...
|
|
85
|
+
|
|
86
|
+
# Check on BSC
|
|
87
|
+
ups 0x1234... bsc
|
|
88
|
+
|
|
89
|
+
# Check on Polygon
|
|
90
|
+
ups 0x1234... polygon
|
|
91
|
+
|
|
92
|
+
# Check on opBNB
|
|
93
|
+
ups 0x1234... opbnb
|
|
94
|
+
|
|
95
|
+
# Check on Arbitrum
|
|
96
|
+
ups 0x1234... arbitrum
|
|
97
|
+
|
|
98
|
+
# Check on Optimism
|
|
99
|
+
ups 0x1234... optimism
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Supported Chains
|
|
103
|
+
|
|
104
|
+
- `eth` - Ethereum Mainnet (default)
|
|
105
|
+
- `bsc` - Binance Smart Chain
|
|
106
|
+
- `opbnb` - opBNB
|
|
107
|
+
- `polygon` - Polygon
|
|
108
|
+
- `arbitrum` - Arbitrum
|
|
109
|
+
- `optimism` - Optimism
|
|
110
|
+
|
|
111
|
+
## Output
|
|
112
|
+
|
|
113
|
+
The tool provides:
|
|
114
|
+
- Proxy type (UUPS or Transparent)
|
|
115
|
+
- Implementation address
|
|
116
|
+
- Owner/Admin address
|
|
117
|
+
- Initialization status for BOTH proxy and implementation
|
|
118
|
+
- Contract balance
|
|
119
|
+
- Vulnerability assessment
|
|
120
|
+
|
|
121
|
+
## Example Output
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
╔══════════════════════════════════════════╗
|
|
125
|
+
║ UUPS INITIALIZATION CHECKER ║
|
|
126
|
+
║ Whitehat Bounty Tool ║
|
|
127
|
+
╚══════════════════════════════════════════╝
|
|
128
|
+
|
|
129
|
+
[INFO] Checking: 0x8599...
|
|
130
|
+
[INFO] Chain: bsc
|
|
131
|
+
[INFO] Explorer: https://bscscan.com/address/0x8599...
|
|
132
|
+
|
|
133
|
+
[1/5] Reading EIP-1967 implementation slot...
|
|
134
|
+
[✓] Implementation: 0xd28A...
|
|
135
|
+
[2/5] Checking if UUPS proxy...
|
|
136
|
+
[✓] UUPS proxy detected!
|
|
137
|
+
[3/5] Checking owner/admin...
|
|
138
|
+
[✓] Owner/Admin: 0x1234...
|
|
139
|
+
[4/5] Checking initialization status...
|
|
140
|
+
[✓] Proxy: INITIALIZED
|
|
141
|
+
[✓] Implementation: INITIALIZED
|
|
142
|
+
[5/5] Checking balance...
|
|
143
|
+
[✓] Balance: 0 ETH
|
|
144
|
+
|
|
145
|
+
═══════════════════════════════════════════
|
|
146
|
+
FINAL VERDICT
|
|
147
|
+
═══════════════════════════════════════════
|
|
148
|
+
Proxy Type: UUPS
|
|
149
|
+
Implementation: 0xd28A...
|
|
150
|
+
Owner: 0x1234...
|
|
151
|
+
Balance: 0 ETH
|
|
152
|
+
Status: ✓ INITIALIZED
|
|
153
|
+
|
|
154
|
+
[SAFE] Proxy is properly configured
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Vulnerable Contract Example
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
[4/5] Checking initialization status...
|
|
161
|
+
[!] Proxy: NOT INITIALIZED
|
|
162
|
+
[!] Implementation: NOT INITIALIZED
|
|
163
|
+
|
|
164
|
+
Status: ✗ UNINITIALIZED
|
|
165
|
+
|
|
166
|
+
[VULNERABLE] UUPS implementation is uninitialized!
|
|
167
|
+
[EXPLOIT] Potential takeover vulnerability!
|
|
168
|
+
|
|
169
|
+
Next steps:
|
|
170
|
+
1. Try calling initialize() on the implementation
|
|
171
|
+
2. Check if you can set yourself as owner
|
|
172
|
+
3. Verify with: cast call 0x... "owner()(address)" --rpc-url ...
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Troubleshooting
|
|
176
|
+
|
|
177
|
+
### Termux Issues
|
|
178
|
+
|
|
179
|
+
If you get "command not found" errors:
|
|
180
|
+
```bash
|
|
181
|
+
# Reload your shell
|
|
182
|
+
source ~/.bashrc
|
|
183
|
+
|
|
184
|
+
# Or restart Termux
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
If Foundry installation fails:
|
|
188
|
+
```bash
|
|
189
|
+
# Make sure Rust is installed
|
|
190
|
+
pkg install rust
|
|
191
|
+
|
|
192
|
+
# Try installing Foundry again
|
|
193
|
+
curl -L https://foundry.paradigm.xyz | bash
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### RPC Issues
|
|
197
|
+
|
|
198
|
+
If you get RPC errors, the default Infura endpoint might be rate-limited. You can modify the script to use your own RPC endpoints.
|
|
199
|
+
|
|
200
|
+
## Publishing to npm (For Developers)
|
|
201
|
+
|
|
202
|
+
1. Create a GitHub repository and push your code
|
|
203
|
+
2. Update `package.json` with your GitHub URL
|
|
204
|
+
3. Login to npm: `npm login`
|
|
205
|
+
4. Publish: `npm publish`
|
|
206
|
+
|
|
207
|
+
## Security Notice
|
|
208
|
+
|
|
209
|
+
This tool is for security research and whitehat bounty hunting only. Always:
|
|
210
|
+
- Get proper authorization before testing contracts
|
|
211
|
+
- Report vulnerabilities responsibly through official channels (Immunefi, HackerOne, etc.)
|
|
212
|
+
- Never exploit vulnerabilities for personal gain
|
|
213
|
+
- Follow responsible disclosure practices
|
|
214
|
+
|
|
215
|
+
## How It Works
|
|
216
|
+
|
|
217
|
+
The tool checks:
|
|
218
|
+
1. EIP-1967 implementation slot to detect proxies
|
|
219
|
+
2. `proxiableUUID()` function to identify UUPS proxies
|
|
220
|
+
3. Admin slot (0xb53127...) for Transparent Proxies
|
|
221
|
+
4. Initialization status by checking storage slot 0 and owner functions
|
|
222
|
+
5. Contract balance and ownership
|
|
223
|
+
|
|
224
|
+
## License
|
|
225
|
+
|
|
226
|
+
MIT
|
|
227
|
+
|
|
228
|
+
## Contributing
|
|
229
|
+
|
|
230
|
+
Pull requests are welcome! For major changes, please open an issue first.
|
|
231
|
+
|
|
232
|
+
## Author
|
|
233
|
+
|
|
234
|
+
Created for whitehat security researchers and bug bounty hunters.
|
|
235
|
+
|
|
236
|
+
## Disclaimer
|
|
237
|
+
|
|
238
|
+
This tool is provided as-is for educational and security research purposes. Use responsibly and ethically.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
COMPLETE RE-AUDIT - ALL CONTRACTS
|
|
2
|
+
Generated: March 28, 2026
|
|
3
|
+
Total Contracts: 138
|
|
4
|
+
|
|
5
|
+
RULES:
|
|
6
|
+
- ONLY user-side exploits
|
|
7
|
+
- NO admin exploits
|
|
8
|
+
- NO cheatcodes in tests
|
|
9
|
+
- VERIFY with forge test on mainnet fork
|
|
10
|
+
- FETCH actual verified source code (not decompiled)
|
|
11
|
+
- PROVE or DISPROVE each claimed exploit
|
|
12
|
+
|
|
13
|
+
STATUS: STARTING SYSTEMATIC VERIFICATION
|
|
14
|
+
========================================
|
|
15
|
+
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
RING TOKEN (0x521ef54063148e5f15f18b9631426175cee23de2) - SECURITY ANALYSIS
|
|
2
|
+
================================================================================
|
|
3
|
+
|
|
4
|
+
TOKEN INFO:
|
|
5
|
+
- Name: RING
|
|
6
|
+
- Symbol: RING
|
|
7
|
+
- Compiler: v0.8.7+commit.e28d00a7
|
|
8
|
+
- Optimization: Yes with 200 runs
|
|
9
|
+
- Total Supply: 20,456,743 tokens
|
|
10
|
+
- Deployed: Nov 19, 2021 (4+ years old)
|
|
11
|
+
- Holders: 10,490
|
|
12
|
+
|
|
13
|
+
CONTRACT TYPE: Node-as-a-Service (NaaS) token with dividend distribution
|
|
14
|
+
|
|
15
|
+
================================================================================
|
|
16
|
+
CRITICAL VULNERABILITIES - USER-SIDE EXPLOITS
|
|
17
|
+
================================================================================
|
|
18
|
+
|
|
19
|
+
1. OWNER CAN BLACKLIST ANY ADDRESS (CRITICAL)
|
|
20
|
+
- Function: blacklistMalicious(address account, bool value)
|
|
21
|
+
- Owner can blacklist ANY address at ANY time
|
|
22
|
+
- Blacklisted addresses CANNOT transfer tokens
|
|
23
|
+
- Blacklisted addresses CANNOT create nodes
|
|
24
|
+
- Blacklisted addresses CANNOT cashout rewards
|
|
25
|
+
- EXPLOIT: Owner can rug pull by blacklisting all holders
|
|
26
|
+
|
|
27
|
+
2. OWNER CAN CHANGE ALL FEES (CRITICAL)
|
|
28
|
+
- updateRewardsFee(uint256 value)
|
|
29
|
+
- updateLiquiditFee(uint256 value)
|
|
30
|
+
- updateFuturFee(uint256 value)
|
|
31
|
+
- updateCashoutFee(uint256 value)
|
|
32
|
+
- updateRwSwapFee(uint256 value)
|
|
33
|
+
- NO MAXIMUM LIMITS on fees
|
|
34
|
+
- EXPLOIT: Owner can set fees to 100% and drain all transactions
|
|
35
|
+
|
|
36
|
+
3. OWNER CAN CHANGE NODE PARAMETERS (CRITICAL)
|
|
37
|
+
- changeNodePrice(uint256 newNodePrice)
|
|
38
|
+
- changeRewardPerNode(uint256 newPrice)
|
|
39
|
+
- changeClaimTime(uint256 newTime)
|
|
40
|
+
- NO LIMITS on these values
|
|
41
|
+
- EXPLOIT: Owner can make nodes worthless by:
|
|
42
|
+
* Setting node price to 1000000000 tokens (impossible to buy)
|
|
43
|
+
* Setting reward per node to 0 (no rewards)
|
|
44
|
+
* Setting claim time to 999999999 (can never claim)
|
|
45
|
+
|
|
46
|
+
4. OWNER CAN CHANGE CRITICAL ADDRESSES (CRITICAL)
|
|
47
|
+
- updateFuturWall(address payable wall)
|
|
48
|
+
- updateRewardsWall(address payable wall)
|
|
49
|
+
- Owner can redirect all fees to their own address
|
|
50
|
+
- EXPLOIT: Owner can drain all accumulated fees
|
|
51
|
+
|
|
52
|
+
5. OWNER CAN CHANGE ROUTER (CRITICAL)
|
|
53
|
+
- updateUniswapV2Router(address newAddress)
|
|
54
|
+
- Can change DEX router to malicious contract
|
|
55
|
+
- EXPLOIT: Owner can route swaps through malicious contract
|
|
56
|
+
|
|
57
|
+
6. PAYMENT SPLITTER VULNERABILITY (HIGH)
|
|
58
|
+
- Contract inherits PaymentSplitter
|
|
59
|
+
- release(address payable account) - anyone can trigger
|
|
60
|
+
- release(IERC20 token, address account) - anyone can trigger
|
|
61
|
+
- EXPLOIT: Attacker can drain payment splitter shares
|
|
62
|
+
|
|
63
|
+
================================================================================
|
|
64
|
+
HONEYPOT MECHANISMS
|
|
65
|
+
================================================================================
|
|
66
|
+
|
|
67
|
+
1. BLACKLIST TRAP
|
|
68
|
+
- Owner can blacklist addresses AFTER they buy
|
|
69
|
+
- Blacklisted users cannot sell or transfer
|
|
70
|
+
- This is a HONEYPOT mechanism
|
|
71
|
+
|
|
72
|
+
2. FEE MANIPULATION
|
|
73
|
+
- Owner can increase fees to 100% AFTER users buy
|
|
74
|
+
- Users cannot sell without losing everything
|
|
75
|
+
- This is a HONEYPOT mechanism
|
|
76
|
+
|
|
77
|
+
3. NODE PRICE MANIPULATION
|
|
78
|
+
- Owner can increase node price to impossible levels
|
|
79
|
+
- Users who bought nodes cannot create more
|
|
80
|
+
- Existing node holders get diluted
|
|
81
|
+
|
|
82
|
+
================================================================================
|
|
83
|
+
CENTRALIZATION RISKS
|
|
84
|
+
================================================================================
|
|
85
|
+
|
|
86
|
+
1. SINGLE OWNER CONTROL
|
|
87
|
+
- Owner has COMPLETE control over:
|
|
88
|
+
* Blacklisting
|
|
89
|
+
* All fees
|
|
90
|
+
* Node parameters
|
|
91
|
+
* Critical addresses
|
|
92
|
+
* Router address
|
|
93
|
+
- NO TIMELOCK
|
|
94
|
+
- NO MULTISIG
|
|
95
|
+
- NO GOVERNANCE
|
|
96
|
+
|
|
97
|
+
2. NO RENOUNCE OWNERSHIP PROTECTION
|
|
98
|
+
- renounceOwnership() exists but owner can call it
|
|
99
|
+
- If owner renounces, contract becomes FROZEN
|
|
100
|
+
- No one can update parameters
|
|
101
|
+
|
|
102
|
+
================================================================================
|
|
103
|
+
NODE SYSTEM VULNERABILITIES
|
|
104
|
+
================================================================================
|
|
105
|
+
|
|
106
|
+
1. CENTRALIZED NODE REWARDS
|
|
107
|
+
- distributeRewards() controlled by owner
|
|
108
|
+
- Owner decides when rewards are distributed
|
|
109
|
+
- Owner can stop distributing rewards
|
|
110
|
+
|
|
111
|
+
2. NODE CREATION FEES
|
|
112
|
+
- createNodeWithTokens() burns tokens from user
|
|
113
|
+
- Tokens go to contract, not burned
|
|
114
|
+
- Owner controls what happens to these tokens
|
|
115
|
+
|
|
116
|
+
3. CASHOUT FEES
|
|
117
|
+
- cashoutReward() and cashoutAll() charge fees
|
|
118
|
+
- Fees go to futurUsePool (owner controlled)
|
|
119
|
+
- Owner can set cashout fee to 100%
|
|
120
|
+
|
|
121
|
+
================================================================================
|
|
122
|
+
SWAP AND LIQUIDITY VULNERABILITIES
|
|
123
|
+
================================================================================
|
|
124
|
+
|
|
125
|
+
1. SWAP MANIPULATION
|
|
126
|
+
- swapLiquify can be enabled/disabled by owner
|
|
127
|
+
- When enabled, contract auto-swaps tokens
|
|
128
|
+
- Owner controls swap thresholds
|
|
129
|
+
- EXPLOIT: Owner can manipulate when swaps happen
|
|
130
|
+
|
|
131
|
+
2. LIQUIDITY PROVISION
|
|
132
|
+
- addLiquidity() sends LP tokens to address(0)
|
|
133
|
+
- LP tokens are BURNED
|
|
134
|
+
- This is actually GOOD (prevents owner from removing liquidity)
|
|
135
|
+
|
|
136
|
+
3. AUTOMATED MARKET MAKER PAIRS
|
|
137
|
+
- setAutomatedMarketMakerPair() controlled by owner
|
|
138
|
+
- Owner can add/remove AMM pairs
|
|
139
|
+
- EXPLOIT: Owner can manipulate which pairs trigger fees
|
|
140
|
+
|
|
141
|
+
================================================================================
|
|
142
|
+
USER-SIDE EXPLOIT STRATEGIES
|
|
143
|
+
================================================================================
|
|
144
|
+
|
|
145
|
+
EXPLOIT 1: PAYMENT SPLITTER DRAIN
|
|
146
|
+
1. Check if you are a payee in the payment splitter
|
|
147
|
+
2. Call release(address(this)) to claim BNB share
|
|
148
|
+
3. Call release(IERC20 token, address(this)) to claim token shares
|
|
149
|
+
4. This is LEGITIMATE if you are a payee
|
|
150
|
+
|
|
151
|
+
EXPLOIT 2: FRONT-RUN BLACKLIST
|
|
152
|
+
1. Monitor owner transactions for blacklistMalicious() calls
|
|
153
|
+
2. If you see your address being blacklisted, front-run with sell
|
|
154
|
+
3. Sell all tokens before blacklist takes effect
|
|
155
|
+
4. This requires MEV bot or fast monitoring
|
|
156
|
+
|
|
157
|
+
EXPLOIT 3: FRONT-RUN FEE CHANGES
|
|
158
|
+
1. Monitor owner transactions for fee update calls
|
|
159
|
+
2. If fees are being increased, front-run with sell
|
|
160
|
+
3. Sell before high fees take effect
|
|
161
|
+
|
|
162
|
+
EXPLOIT 4: NODE REWARD TIMING
|
|
163
|
+
1. Monitor distributeRewards() calls
|
|
164
|
+
2. Create nodes right before distribution
|
|
165
|
+
3. Cashout immediately after distribution
|
|
166
|
+
4. This maximizes reward per time invested
|
|
167
|
+
|
|
168
|
+
EXPLOIT 5: AVOID THIS TOKEN
|
|
169
|
+
- This token is HEAVILY CENTRALIZED
|
|
170
|
+
- Owner has COMPLETE control
|
|
171
|
+
- High risk of rug pull via:
|
|
172
|
+
* Blacklisting all holders
|
|
173
|
+
* Setting fees to 100%
|
|
174
|
+
* Stopping reward distribution
|
|
175
|
+
* Changing node parameters to worthless values
|
|
176
|
+
|
|
177
|
+
================================================================================
|
|
178
|
+
LEGITIMATE CONCERNS (NOT EXPLOITABLE BY USERS)
|
|
179
|
+
================================================================================
|
|
180
|
+
|
|
181
|
+
1. Owner can rug pull at any time
|
|
182
|
+
2. No protection against owner malicious actions
|
|
183
|
+
3. No timelock on critical functions
|
|
184
|
+
4. No multisig requirement
|
|
185
|
+
5. No governance mechanism
|
|
186
|
+
6. Payment splitter shares are fixed at deployment
|
|
187
|
+
|
|
188
|
+
================================================================================
|
|
189
|
+
CONCLUSION
|
|
190
|
+
================================================================================
|
|
191
|
+
|
|
192
|
+
RISK LEVEL: EXTREME
|
|
193
|
+
|
|
194
|
+
This token is a CENTRALIZED HONEYPOT waiting to happen. The owner has:
|
|
195
|
+
- Complete control over blacklisting
|
|
196
|
+
- Complete control over all fees
|
|
197
|
+
- Complete control over node parameters
|
|
198
|
+
- Complete control over reward distribution
|
|
199
|
+
- Complete control over critical addresses
|
|
200
|
+
|
|
201
|
+
USER-EXPLOITABLE VULNERABILITIES:
|
|
202
|
+
1. Payment splitter drain (if you are a payee)
|
|
203
|
+
2. Front-running owner transactions (requires MEV)
|
|
204
|
+
3. Timing node creation/cashout (minimal profit)
|
|
205
|
+
|
|
206
|
+
RECOMMENDATION: AVOID THIS TOKEN
|
|
207
|
+
- Too much centralization
|
|
208
|
+
- Too many owner controls
|
|
209
|
+
- High rug pull risk
|
|
210
|
+
- Honeypot mechanisms present
|
|
211
|
+
|
|
212
|
+
The only "exploit" is to NOT BUY THIS TOKEN.
|
package/RPC
ADDED