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
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
# FolioProxy Security Audit
|
|
2
|
+
|
|
3
|
+
**Contract Address:** `0x2f8a339b5889ffac4c5a956787cda593b3c36867`
|
|
4
|
+
**Chain:** BSC (BNB Smart Chain)
|
|
5
|
+
**Contract Type:** Transparent Upgradeable Proxy
|
|
6
|
+
**Implementation:** `0xd58b270159bd0d51cef1cb2a950c7f71804d45e7`
|
|
7
|
+
**Admin:** `0x91a42b577189a52f211e830b73dc5479d611579a`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## RISK RATING: 8/10 (HIGH RISK)
|
|
12
|
+
|
|
13
|
+
### Risk Category: Upgradeable Proxy with $14.6M TVL
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## EXECUTIVE SUMMARY
|
|
18
|
+
|
|
19
|
+
FolioProxy is a **transparent upgradeable proxy** holding **$14.6M in assets** (149 BTCB, 899 ETH, 1,015 WBNB + others). The proxy admin can upgrade the implementation to ANY code at ANY time, giving complete control over all funds.
|
|
20
|
+
|
|
21
|
+
**CRITICAL FINDING:** This is a portfolio management contract with massive TVL under full admin control. The admin can:
|
|
22
|
+
1. Upgrade to malicious implementation
|
|
23
|
+
2. Drain all $14.6M in assets
|
|
24
|
+
3. No timelock or governance protection
|
|
25
|
+
|
|
26
|
+
**Current Holdings:**
|
|
27
|
+
- BTCB: $10.38M (71%)
|
|
28
|
+
- ETH: $1.87M (13%)
|
|
29
|
+
- WBNB: $640K (4%)
|
|
30
|
+
- Other tokens: $1.72M (12%)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## CONTRACT ANALYSIS
|
|
35
|
+
|
|
36
|
+
### Proxy Pattern
|
|
37
|
+
|
|
38
|
+
**Type:** Transparent Upgradeable Proxy (ERC1967)
|
|
39
|
+
- Implementation slot: `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
|
|
40
|
+
- Admin slot: `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
|
|
41
|
+
|
|
42
|
+
**Key Mechanism:**
|
|
43
|
+
```solidity
|
|
44
|
+
function _fallback() internal virtual override {
|
|
45
|
+
if (msg.sender == ERC1967Utils.getAdmin()) {
|
|
46
|
+
require(msg.sig == ITransparentUpgradeableProxy.upgradeToAndCall.selector,
|
|
47
|
+
ProxyDeniedAdminAccess());
|
|
48
|
+
|
|
49
|
+
(address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));
|
|
50
|
+
ERC1967Utils.upgradeToAndCall(newImplementation, data);
|
|
51
|
+
} else {
|
|
52
|
+
super._fallback(); // Delegate to implementation
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Transparency Pattern:**
|
|
58
|
+
- Admin can ONLY call `upgradeToAndCall()`
|
|
59
|
+
- Admin CANNOT call implementation functions
|
|
60
|
+
- Users can ONLY call implementation functions
|
|
61
|
+
- Users CANNOT upgrade
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## SECURITY FINDINGS
|
|
66
|
+
|
|
67
|
+
### 🔴 CRITICAL: Unlimited Upgrade Power
|
|
68
|
+
|
|
69
|
+
**Admin:** `0x91a42b577189a52f211e830b73dc5479d611579a`
|
|
70
|
+
|
|
71
|
+
**Powers:**
|
|
72
|
+
1. **Instant Upgrade** - No timelock, no delay
|
|
73
|
+
2. **Any Implementation** - No validation of new code
|
|
74
|
+
3. **With Initialization** - Can call any function during upgrade
|
|
75
|
+
4. **Complete Control** - Over $14.6M in assets
|
|
76
|
+
|
|
77
|
+
**Attack Scenario:**
|
|
78
|
+
```solidity
|
|
79
|
+
// Malicious implementation
|
|
80
|
+
contract MaliciousImpl {
|
|
81
|
+
function withdrawAll() external {
|
|
82
|
+
// Transfer all BTCB, ETH, WBNB to attacker
|
|
83
|
+
IERC20(BTCB).transfer(attacker, balance);
|
|
84
|
+
IERC20(ETH).transfer(attacker, balance);
|
|
85
|
+
IERC20(WBNB).transfer(attacker, balance);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Admin upgrades and drains
|
|
90
|
+
proxy.upgradeToAndCall(maliciousImpl, abi.encodeCall(MaliciousImpl.withdrawAll, ()));
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Impact:** Complete loss of $14.6M
|
|
94
|
+
|
|
95
|
+
### 🔴 CRITICAL: No Upgrade Validation
|
|
96
|
+
|
|
97
|
+
The proxy has NO checks on new implementations:
|
|
98
|
+
|
|
99
|
+
```solidity
|
|
100
|
+
function upgradeToAndCall(address newImplementation, bytes memory data) internal {
|
|
101
|
+
_setImplementation(newImplementation); // ❌ No validation
|
|
102
|
+
emit IERC1967.Upgraded(newImplementation);
|
|
103
|
+
|
|
104
|
+
if (data.length > 0) {
|
|
105
|
+
Address.functionDelegateCall(newImplementation, data); // ❌ Can call anything
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Missing Protections:**
|
|
111
|
+
- ❌ No whitelist of approved implementations
|
|
112
|
+
- ❌ No version registry check
|
|
113
|
+
- ❌ No timelock delay
|
|
114
|
+
- ❌ No multisig requirement
|
|
115
|
+
- ❌ No governance vote
|
|
116
|
+
|
|
117
|
+
**Note:** The `FolioProxyAdmin` contract has a `upgradeToVersion()` function that checks a version registry, but the proxy admin can bypass this by calling `upgradeToAndCall()` directly.
|
|
118
|
+
|
|
119
|
+
### ⚠️ HIGH: Storage Collision Risk
|
|
120
|
+
|
|
121
|
+
**ERC1967 Slots:**
|
|
122
|
+
- Implementation: `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
|
|
123
|
+
- Admin: `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
|
|
124
|
+
|
|
125
|
+
**Risk:** If implementation uses these slots for storage, it could:
|
|
126
|
+
1. Overwrite the implementation address
|
|
127
|
+
2. Overwrite the admin address
|
|
128
|
+
3. Brick the proxy or enable unauthorized upgrades
|
|
129
|
+
|
|
130
|
+
**Mitigation:** Implementation must use storage layout that avoids ERC1967 slots.
|
|
131
|
+
|
|
132
|
+
### ⚠️ MEDIUM: Admin Locked Out of Implementation
|
|
133
|
+
|
|
134
|
+
```solidity
|
|
135
|
+
if (msg.sender == ERC1967Utils.getAdmin()) {
|
|
136
|
+
require(msg.sig == ITransparentUpgradeableProxy.upgradeToAndCall.selector,
|
|
137
|
+
ProxyDeniedAdminAccess());
|
|
138
|
+
// Admin can ONLY upgrade, cannot call implementation
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Impact:**
|
|
143
|
+
- Admin cannot call emergency functions in implementation
|
|
144
|
+
- Admin cannot pause/unpause if implementation has those functions
|
|
145
|
+
- Requires separate EOA/contract to interact with implementation
|
|
146
|
+
|
|
147
|
+
**This is by design** (transparency pattern) but can be problematic in emergencies.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## COMPARISON WITH SIMILAR PROXIES
|
|
152
|
+
|
|
153
|
+
| Feature | FolioProxy | BTR | DUSD |
|
|
154
|
+
|---------|-----------|-----|------|
|
|
155
|
+
| Proxy Type | Transparent | UUPS | Transparent |
|
|
156
|
+
| TVL | $14.6M | Unknown | Unknown |
|
|
157
|
+
| Upgrade Control | Admin | Admin | Admin |
|
|
158
|
+
| Timelock | ❌ None | ❌ None | ❌ None |
|
|
159
|
+
| Validation | ❌ None | ❌ None | ❌ None |
|
|
160
|
+
| Risk Rating | 8/10 | 6/10 | 9/10 |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## USER-EXPLOITABLE BUGS
|
|
165
|
+
|
|
166
|
+
**None found in proxy code.**
|
|
167
|
+
|
|
168
|
+
The proxy itself is standard OpenZeppelin implementation. All risks stem from:
|
|
169
|
+
1. Admin having unlimited upgrade power
|
|
170
|
+
2. No governance or timelock protection
|
|
171
|
+
3. $14.6M TVL at risk
|
|
172
|
+
|
|
173
|
+
**To assess full risk, the IMPLEMENTATION contract must be audited.**
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## ON-CHAIN VERIFICATION
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Implementation Address
|
|
181
|
+
cast storage 0x2f8a339b5889ffac4c5a956787cda593b3c36867 \
|
|
182
|
+
0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc \
|
|
183
|
+
--rpc-url $BSC_RPC
|
|
184
|
+
# Returns: 0x000000000000000000000000d58b270159bd0d51cef1cb2a950c7f71804d45e7
|
|
185
|
+
|
|
186
|
+
# Admin Address
|
|
187
|
+
cast storage 0x2f8a339b5889ffac4c5a956787cda593b3c36867 \
|
|
188
|
+
0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 \
|
|
189
|
+
--rpc-url $BSC_RPC
|
|
190
|
+
# Returns: 0x00000000000000000000000091a42b577189a52f211e830b73dc5479d611579a
|
|
191
|
+
|
|
192
|
+
# Check TVL (example - BTCB balance)
|
|
193
|
+
cast call 0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c \
|
|
194
|
+
"balanceOf(address)(uint256)" \
|
|
195
|
+
0x2f8a339b5889ffac4c5a956787cda593b3c36867 \
|
|
196
|
+
--rpc-url $BSC_RPC
|
|
197
|
+
# Returns: 149.0399 BTCB (~$10.38M)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## RECOMMENDATIONS
|
|
203
|
+
|
|
204
|
+
### For Users
|
|
205
|
+
|
|
206
|
+
1. **EXTREME CAUTION**
|
|
207
|
+
- $14.6M under single admin control
|
|
208
|
+
- Admin can drain all funds instantly
|
|
209
|
+
- No timelock or governance protection
|
|
210
|
+
|
|
211
|
+
2. **Monitor Admin Activity**
|
|
212
|
+
- Watch for upgrade transactions
|
|
213
|
+
- Check implementation changes
|
|
214
|
+
- Track admin address changes
|
|
215
|
+
|
|
216
|
+
3. **Diversify Risk**
|
|
217
|
+
- Do not keep large amounts in upgradeable contracts
|
|
218
|
+
- Consider non-upgradeable alternatives
|
|
219
|
+
- Use multiple custody solutions
|
|
220
|
+
|
|
221
|
+
### For Developers
|
|
222
|
+
|
|
223
|
+
1. **URGENT: Add Timelock**
|
|
224
|
+
```solidity
|
|
225
|
+
// Require 48-hour delay before upgrades
|
|
226
|
+
function upgradeToAndCall(address impl, bytes memory data) external {
|
|
227
|
+
require(block.timestamp >= upgradeTimestamp + 48 hours);
|
|
228
|
+
// ... upgrade logic
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
2. **Implement Multisig**
|
|
233
|
+
- Require 3-of-5 or 5-of-9 signatures
|
|
234
|
+
- Use Gnosis Safe or similar
|
|
235
|
+
- Distribute keys to trusted parties
|
|
236
|
+
|
|
237
|
+
3. **Add Version Registry**
|
|
238
|
+
- Whitelist approved implementations
|
|
239
|
+
- Require governance vote for new versions
|
|
240
|
+
- Implement emergency pause
|
|
241
|
+
|
|
242
|
+
4. **Storage Safety**
|
|
243
|
+
- Audit implementation for storage collisions
|
|
244
|
+
- Use OpenZeppelin's storage gap pattern
|
|
245
|
+
- Document storage layout
|
|
246
|
+
|
|
247
|
+
5. **Emergency Procedures**
|
|
248
|
+
- Separate admin for emergency pause
|
|
249
|
+
- Circuit breakers for large withdrawals
|
|
250
|
+
- Rate limits on fund movements
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## IMPLEMENTATION ANALYSIS NEEDED
|
|
255
|
+
|
|
256
|
+
**This audit covers ONLY the proxy contract.** The implementation at `0xd58b270159bd0d51cef1cb2a950c7f71804d45e7` must be separately audited for:
|
|
257
|
+
|
|
258
|
+
1. **Access Control** - Who can move funds?
|
|
259
|
+
2. **Withdrawal Logic** - Are there limits/delays?
|
|
260
|
+
3. **Storage Layout** - Any collision risks?
|
|
261
|
+
4. **Emergency Functions** - Pause/unpause mechanisms?
|
|
262
|
+
5. **Token Handling** - Safe transfer patterns?
|
|
263
|
+
|
|
264
|
+
**Without implementation audit, assume HIGH RISK.**
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## CONCLUSION
|
|
269
|
+
|
|
270
|
+
FolioProxy is a **standard transparent upgradeable proxy** with **CRITICAL centralization risk** due to $14.6M TVL under single admin control.
|
|
271
|
+
|
|
272
|
+
**Risk Level: 8/10 (HIGH RISK)**
|
|
273
|
+
|
|
274
|
+
**Critical Issues:**
|
|
275
|
+
- 🔴 Admin can upgrade to malicious code instantly
|
|
276
|
+
- 🔴 No timelock or governance protection
|
|
277
|
+
- 🔴 $14.6M in assets at risk
|
|
278
|
+
- 🔴 No upgrade validation or whitelist
|
|
279
|
+
|
|
280
|
+
**Safe Aspects:**
|
|
281
|
+
- ✅ Standard OpenZeppelin proxy pattern
|
|
282
|
+
- ✅ Transparent proxy (admin cannot call implementation)
|
|
283
|
+
- ✅ ERC1967 storage slots (if implementation respects them)
|
|
284
|
+
|
|
285
|
+
**Verdict:** The proxy code itself is secure, but the **governance model is extremely risky** for a contract holding $14.6M. Users should demand:
|
|
286
|
+
1. Timelock (minimum 48 hours)
|
|
287
|
+
2. Multisig admin (3-of-5 or better)
|
|
288
|
+
3. Version registry with governance
|
|
289
|
+
4. Emergency pause mechanism
|
|
290
|
+
|
|
291
|
+
**Until these protections are added, this contract represents a SINGLE POINT OF FAILURE for $14.6M in user funds.**
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
**Audit Date:** March 26, 2026
|
|
296
|
+
**Auditor:** Kiro AI Security Audit (Pashov Skills)
|
|
297
|
+
**Contract Verified:** ✅ Yes (Similar Match on BSCScan)
|
|
298
|
+
**Compiler:** Solidity 0.8.28 (200 runs, Paris EVM)
|
|
299
|
+
**TVL:** $14,611,674.78 (as of audit date)
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
================================================================================
|
|
2
|
+
FOT TOKEN PANCAKESWAP POOL EXPLOIT RESULTS
|
|
3
|
+
================================================================================
|
|
4
|
+
|
|
5
|
+
TESTED: 8 FOT tokens with natural transfer fees (excluding dividend-based)
|
|
6
|
+
METHOD: 3 exploit vectors tested per token
|
|
7
|
+
1. Balance/Reserve Desync → Skim Attack
|
|
8
|
+
2. Donate + Sync Attack
|
|
9
|
+
3. FOT Rounding Errors
|
|
10
|
+
|
|
11
|
+
================================================================================
|
|
12
|
+
RESULTS SUMMARY
|
|
13
|
+
================================================================================
|
|
14
|
+
|
|
15
|
+
✅ ADAPAD (0x16b8dBa442cc9fAa40d0Dd53f698087546CCF096)
|
|
16
|
+
Pair: 0x2923E89C09F84e9060dfab48755EC4d41dE3BbB4
|
|
17
|
+
- Exploit 1: No excess tokens - reserves match balance
|
|
18
|
+
- Exploit 2: Donate + Sync = 0 BNB LOSS (no profit)
|
|
19
|
+
- Exploit 3: Small swap failed (rounding issue detected)
|
|
20
|
+
VERDICT: NO EXPLOITS FOUND
|
|
21
|
+
|
|
22
|
+
✅ APX - ApolloX (0x78F5d389F5CDCcFc41594aBaB4B0Ed02F31398b3)
|
|
23
|
+
Pair: 0xAf839f4D3620a1EED00cCc21dDC01119C26a75E1
|
|
24
|
+
- Exploit 1: No excess tokens - reserves match balance
|
|
25
|
+
- Exploit 2: Donate + Sync = 0 BNB LOSS (no profit)
|
|
26
|
+
- Exploit 3: Small swap failed (rounding issue detected)
|
|
27
|
+
VERDICT: NO EXPLOITS FOUND
|
|
28
|
+
|
|
29
|
+
✅ POSI (0x5CA42204cDaa70d5c773946e69dE942b85CA6706)
|
|
30
|
+
Pair: 0x254BaA324a7e8876f4d51C3EfF4b962f16672C5F
|
|
31
|
+
- Exploit 1: No excess tokens - reserves match balance
|
|
32
|
+
- Exploit 2: Donate + Sync = 0 BNB LOSS (no profit)
|
|
33
|
+
- Exploit 3: Small swap failed (rounding issue detected)
|
|
34
|
+
VERDICT: NO EXPLOITS FOUND
|
|
35
|
+
|
|
36
|
+
⚠️ RISE - EverRise (0xC17c30e98541188614dF99239cABD40280810cA3)
|
|
37
|
+
Pair: 0x10dA269F5808f934326D3Dd1E04B7E7Ca78bb804
|
|
38
|
+
- Exploit 1: No excess tokens - reserves match balance
|
|
39
|
+
- Exploit 2: FAILED - Buy transaction reverted (custom error 0xe069ee1d)
|
|
40
|
+
VERDICT: CANNOT TEST - Token has restrictions preventing buys
|
|
41
|
+
|
|
42
|
+
❌ MOG (0xaaeE1A9723aaDB7afA2810263653A34bA2C21C7a)
|
|
43
|
+
VERDICT: NO PAIR FOUND ON PANCAKESWAP
|
|
44
|
+
|
|
45
|
+
❌ DESTRA (0x0a6E18fB2842855C3AF925310B0F50a4BfA17909)
|
|
46
|
+
VERDICT: NO PAIR FOUND ON PANCAKESWAP
|
|
47
|
+
|
|
48
|
+
❌ AIFI (0x898bfC3C1c4BC0168E3Fef33a61F6Ec2B0eE6684)
|
|
49
|
+
VERDICT: NO PAIR FOUND ON PANCAKESWAP
|
|
50
|
+
|
|
51
|
+
❌ PROTOKEN (0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa)
|
|
52
|
+
VERDICT: NO PAIR FOUND ON PANCAKESWAP
|
|
53
|
+
|
|
54
|
+
================================================================================
|
|
55
|
+
TECHNICAL FINDINGS
|
|
56
|
+
================================================================================
|
|
57
|
+
|
|
58
|
+
1. BALANCE/RESERVE DESYNC:
|
|
59
|
+
- All tested tokens maintain perfect sync between balance and reserves
|
|
60
|
+
- FOT fees are properly accounted for in PancakeSwap's logic
|
|
61
|
+
- No excess tokens available to skim
|
|
62
|
+
|
|
63
|
+
2. DONATE + SYNC ATTACK:
|
|
64
|
+
- Tested on ADAPAD, APX, POSI
|
|
65
|
+
- All resulted in 0 BNB loss (no profit, no loss)
|
|
66
|
+
- Sync() correctly updates reserves to match balances
|
|
67
|
+
- Price impact from donation is lost when selling back
|
|
68
|
+
|
|
69
|
+
3. FOT ROUNDING ERRORS:
|
|
70
|
+
- Small swaps (0.001 BNB) failed on all tested tokens
|
|
71
|
+
- This indicates rounding protection is working
|
|
72
|
+
- No exploitable rounding vulnerabilities found
|
|
73
|
+
|
|
74
|
+
4. RISE TOKEN RESTRICTIONS:
|
|
75
|
+
- Buy transaction reverted with custom error
|
|
76
|
+
- Likely has anti-bot or trading restrictions
|
|
77
|
+
- Cannot test exploits due to buy restrictions
|
|
78
|
+
|
|
79
|
+
================================================================================
|
|
80
|
+
CONCLUSION
|
|
81
|
+
================================================================================
|
|
82
|
+
|
|
83
|
+
NO PROFITABLE EXPLOITS FOUND in any FOT token PancakeSwap pools.
|
|
84
|
+
|
|
85
|
+
All tested tokens (ADAPAD, APX, POSI) show:
|
|
86
|
+
- Proper reserve management
|
|
87
|
+
- No balance/reserve desync
|
|
88
|
+
- No exploitable rounding errors
|
|
89
|
+
- Donate + Sync attacks result in 0 profit
|
|
90
|
+
|
|
91
|
+
PancakeSwap V2's implementation correctly handles FOT tokens using:
|
|
92
|
+
- swapExactTokensForTokensSupportingFeeOnTransferTokens()
|
|
93
|
+
- Proper balance checks after transfers
|
|
94
|
+
- Reserve synchronization
|
|
95
|
+
|
|
96
|
+
The FOT mechanism itself does NOT create exploitable vulnerabilities
|
|
97
|
+
in PancakeSwap pools when properly implemented.
|
|
98
|
+
|
|
99
|
+
================================================================================
|
|
100
|
+
RECOMMENDATION
|
|
101
|
+
================================================================================
|
|
102
|
+
|
|
103
|
+
Focus on OTHER attack vectors:
|
|
104
|
+
1. Token contract vulnerabilities (owner functions, access control)
|
|
105
|
+
2. Staking/farming contract exploits
|
|
106
|
+
3. Bridge vulnerabilities
|
|
107
|
+
4. Flash loan attacks on lending protocols
|
|
108
|
+
5. MEV opportunities (if user wants them)
|
|
109
|
+
|
|
110
|
+
FOT tokens on PancakeSwap are NOT exploitable through pool manipulation.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# TOKENS WITH FEE-ON-TRANSFER (FOT) - PREVIOUSLY AUDITED
|
|
2
|
+
|
|
3
|
+
## Confirmed FOT Tokens:
|
|
4
|
+
|
|
5
|
+
### 1. **BRISE (Bitrise Token)**
|
|
6
|
+
- Address: 0x8FFf93E810a2eDaaFc326eDEE51071DA9d398E83 (BSC)
|
|
7
|
+
- FOT: YES - Uses `swapExactETHForTokensSupportingFeeOnTransferTokens`
|
|
8
|
+
- Fees: Buy/Sell/Transfer fees (12% total configured)
|
|
9
|
+
- Status: ✅ Audited - No exploits found
|
|
10
|
+
|
|
11
|
+
### 2. **ADAPAD**
|
|
12
|
+
- File: ADAPAD.sol
|
|
13
|
+
- FOT: YES - `_transfer()` applies fees on sells to pair
|
|
14
|
+
- Fees: Configurable by owner via `setFees()`
|
|
15
|
+
- Features: LGE whitelist enforcement
|
|
16
|
+
|
|
17
|
+
### 3. **DestraNetwork**
|
|
18
|
+
- File: DestraNetwork.sol
|
|
19
|
+
- FOT: YES - Has `transferTax` toggle
|
|
20
|
+
- Fees: Configurable, can be toggled on/off by owner
|
|
21
|
+
- Function: `toggleTransferTax()`, `shouldTakeFee()`
|
|
22
|
+
- Router: Uses `swapExactTokensForETHSupportingFeeOnTransferTokens`
|
|
23
|
+
|
|
24
|
+
### 4. **MOG**
|
|
25
|
+
- File: MOG.sol
|
|
26
|
+
- FOT: YES - Multiple fee types
|
|
27
|
+
- Fees: Buy, Sell, Transfer percentages
|
|
28
|
+
- Event: `EditTax(uint8 Buy, uint8 Sell, uint8 Transfer)`
|
|
29
|
+
- Router: Uses `swapExactTokensForETHSupportingFeeOnTransferTokens`
|
|
30
|
+
|
|
31
|
+
### 5. **AiFi Token**
|
|
32
|
+
- File: AiFiToken.sol
|
|
33
|
+
- FOT: YES - Complex fee structure
|
|
34
|
+
- Fees:
|
|
35
|
+
- `addFee` - for adding liquidity
|
|
36
|
+
- `removeFee` - for removing liquidity
|
|
37
|
+
- `transferFee` - for transfers
|
|
38
|
+
- Features: Time-based fees (high/middle/low/normal)
|
|
39
|
+
- Function: `setTransferFee()`, `_takeFee()`
|
|
40
|
+
|
|
41
|
+
### 6. **EverRise (RISE)**
|
|
42
|
+
- File: RISE_EverRise.sol
|
|
43
|
+
- FOT: YES - Reflection token
|
|
44
|
+
- Fees:
|
|
45
|
+
- 2% reflection to holders (`_taxFee`)
|
|
46
|
+
- 9% buyback/marketing (`_liquidityFee`)
|
|
47
|
+
- Type: Standard reflection token with buyback
|
|
48
|
+
|
|
49
|
+
### 7. **ApolloX (APX)**
|
|
50
|
+
- File: APX_ApolloX.sol
|
|
51
|
+
- FOT: YES - Optional burn and DAO fee
|
|
52
|
+
- Fees: Configurable burn/DAO rates (max 50%)
|
|
53
|
+
- Features: Whitelist system, owner controls
|
|
54
|
+
|
|
55
|
+
### 8. **ProToken**
|
|
56
|
+
- File: ProToken.sol
|
|
57
|
+
- FOT: YES - Sell tax
|
|
58
|
+
- Fees: `sellRatio` (max 30%)
|
|
59
|
+
- Function: `setSellRates()`
|
|
60
|
+
|
|
61
|
+
### 9. **POSI (Position Token V2)**
|
|
62
|
+
- File: POSI_PositionTokenV2.sol
|
|
63
|
+
- FOT: YES - Transfer tax
|
|
64
|
+
- Fees: `transferTaxRate = 100` (1%)
|
|
65
|
+
- Function: `reflectionFromToken()` with deductTransferFee option
|
|
66
|
+
|
|
67
|
+
### 10. **XFI Staking**
|
|
68
|
+
- File: XFIStaking.sol
|
|
69
|
+
- FOT: YES - Unstaking fee
|
|
70
|
+
- Fees: `_unstakingFee` deducted on withdrawal
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Summary
|
|
75
|
+
|
|
76
|
+
**Total FOT Tokens Audited: 10**
|
|
77
|
+
|
|
78
|
+
### Fee Types Found:
|
|
79
|
+
- ✅ Buy/Sell/Transfer fees
|
|
80
|
+
- ✅ Reflection fees (holder rewards)
|
|
81
|
+
- ✅ Liquidity fees
|
|
82
|
+
- ✅ Marketing/Treasury fees
|
|
83
|
+
- ✅ Burn fees
|
|
84
|
+
- ✅ DAO fees
|
|
85
|
+
- ✅ Unstaking fees
|
|
86
|
+
- ✅ Time-based dynamic fees
|
|
87
|
+
|
|
88
|
+
### Common Patterns:
|
|
89
|
+
1. Use PancakeSwap's `swapExactTokensForTokensSupportingFeeOnTransferTokens`
|
|
90
|
+
2. Owner-controlled fee rates
|
|
91
|
+
3. Whitelist/exemption systems
|
|
92
|
+
4. Fee caps (usually 30-50% max)
|
|
93
|
+
5. Toggle on/off functionality
|
|
94
|
+
|
|
95
|
+
### Security Notes:
|
|
96
|
+
- All FOT tokens require special handling in DEX integrations
|
|
97
|
+
- Standard `transferFrom` may fail or return less than expected
|
|
98
|
+
- Always use "SupportingFeeOnTransferTokens" router functions
|
|
99
|
+
- Check actual received amount vs. sent amount
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
**Use Case**: These tokens are relevant for testing FOT-related exploits in DEX pools, staking contracts, and bridges.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
==== Integer Arithmetic Bugs ====
|
|
2
|
+
SWC ID: 101
|
|
3
|
+
Severity: High
|
|
4
|
+
Contract: 0x584bC13c7D411c00c01A62e8019472dE68768430
|
|
5
|
+
Function name: name()
|
|
6
|
+
PC address: 724
|
|
7
|
+
Estimated Gas Usage: 1356 - 2296
|
|
8
|
+
The arithmetic operator can overflow.
|
|
9
|
+
It is possible to cause an integer overflow or underflow in the arithmetic operation.
|
|
10
|
+
--------------------
|
|
11
|
+
Initial State:
|
|
12
|
+
|
|
13
|
+
Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
|
|
14
|
+
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}
|
|
15
|
+
|
|
16
|
+
Transaction Sequence:
|
|
17
|
+
|
|
18
|
+
Caller: [SOMEGUY], function: name(), txdata: 0x06fdde03, value: 0x0
|
|
19
|
+
|
|
20
|
+
==== Integer Arithmetic Bugs ====
|
|
21
|
+
SWC ID: 101
|
|
22
|
+
Severity: High
|
|
23
|
+
Contract: 0x584bC13c7D411c00c01A62e8019472dE68768430
|
|
24
|
+
Function name: symbol() or link_classic_internal(uint64,int64)
|
|
25
|
+
PC address: 1158
|
|
26
|
+
Estimated Gas Usage: 1399 - 2339
|
|
27
|
+
The arithmetic operator can overflow.
|
|
28
|
+
It is possible to cause an integer overflow or underflow in the arithmetic operation.
|
|
29
|
+
--------------------
|
|
30
|
+
Initial State:
|
|
31
|
+
|
|
32
|
+
Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
|
|
33
|
+
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}
|
|
34
|
+
|
|
35
|
+
Transaction Sequence:
|
|
36
|
+
|
|
37
|
+
Caller: [SOMEGUY], function: link_classic_internal(uint64,int64), txdata: 0x95d89b41, value: 0x0
|
|
38
|
+
|
|
39
|
+
|