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.
Files changed (670) hide show
  1. package/.gitmodules +6 -0
  2. package/AIFI_AUDIT.md +220 -0
  3. package/ALL_AUDITS_SUMMARY.md +366 -0
  4. package/ALPHA_PROXY_CRITICAL_FINDING.md +136 -0
  5. package/ALPHA_PROXY_FINAL_ANALYSIS.md +213 -0
  6. package/ALPHA_PROXY_FINAL_VERDICT.md +233 -0
  7. package/ALPHA_PROXY_SELFDESTRUCT_EXPLOIT.md +161 -0
  8. package/ARIA-foundry-test.txt +9 -0
  9. package/ARIA-mythril-analysis.txt +20 -0
  10. package/ARIA-slither-analysis.txt +38 -0
  11. package/ARIA_AI_SECURITY_AUDIT.md +290 -0
  12. package/ARIA_VERIFIED_AUDIT.md +259 -0
  13. package/ARIA_VERIFIED_slither.txt +76 -0
  14. package/ARIVA_source.txt +1 -0
  15. package/ARK_AUDIT.md +349 -0
  16. package/BANANA_AUDIT.md +365 -0
  17. package/BAS_AUDIT.md +451 -0
  18. package/BAS_TOKEN_AUDIT.md +235 -0
  19. package/BCE_EXPLOIT_ANALYSIS.md +165 -0
  20. package/BEEFY_BNB_CHAIN_ANALYSIS.md +488 -0
  21. package/BEEFY_MONAD_ANALYSIS.md +239 -0
  22. package/BEEFY_STAKING_ANALYSIS.md +136 -0
  23. package/BEEFY_XVS_WBNB_ACTUAL_FINDINGS.md +223 -0
  24. package/BEEFY_XVS_WBNB_CRITICAL_FINDINGS.md +269 -0
  25. package/BLOCKSEC_ATTACK_KNOWLEDGE_BASE.md +771 -0
  26. package/BRISE_ANALYSIS.txt +31 -0
  27. package/BRISE_BSC_DAPPS.txt +68 -0
  28. package/BRISE_EXPLOITS_FOUND.md +98 -0
  29. package/BRISE_REAL_EXPLOITS.md +115 -0
  30. package/BRISE_WHITEHAT_REPORT.md +162 -0
  31. package/BRISEstake_Analysis.txt +95 -0
  32. package/BSCSLOCKTOKEN_CRITICAL_FINDING.md +240 -0
  33. package/BSW_BISWAP_SECURITY_AUDIT.md +330 -0
  34. package/BTCST_FINAL_VERDICT.md +319 -0
  35. package/BTCST_MINING_REBASE_ANALYSIS.md +229 -0
  36. package/BTCST_ROUNDING_DEEP_DIVE.md +293 -0
  37. package/BTCST_ROUNDING_FINAL_VERDICT.md +9 -0
  38. package/BTCST_SECURITY_ANALYSIS.md +391 -0
  39. package/BTR_AUDIT.md +210 -0
  40. package/BeamBridge-analysis.md +226 -0
  41. package/BeamToken-analysis.md +201 -0
  42. package/BitgertSwap_Investigation.txt +107 -0
  43. package/CEEK_STAKING_ANALYSIS.md +0 -0
  44. package/CHAINBASE_AUDIT.md +422 -0
  45. package/COMPLETE_AUDIT_SUMMARY.md +342 -0
  46. package/CORRECTED_ANALYSIS.txt +115 -0
  47. package/DBXEN_COMPARISON_SUMMARY.md +232 -0
  48. package/DBXEN_EXPLOIT_ANALYSIS.md +530 -0
  49. package/DOPFairLaunch_raw.json +29 -0
  50. package/DOPFairLaunch_source.txt +0 -0
  51. package/DOP_BRIDGE_FINAL_ANALYSIS.txt +86 -0
  52. package/DOP_BUSD_LP_ANALYSIS.txt +44 -0
  53. package/DOP_FAIRLAUNCH_ANALYSIS.txt +61 -0
  54. package/DOP_FAIRLAUNCH_FINAL_VERDICT.txt +113 -0
  55. package/DOP_STAKING_CONTRACT_ANALYSIS.txt +67 -0
  56. package/DSYNC_ECOSYSTEM_ANALYSIS.md +221 -0
  57. package/DSyncStaking-exploit-analysis.md +153 -0
  58. package/DSyncVault-analysis.md +120 -0
  59. package/DUSD_PROXY_AUDIT.md +407 -0
  60. package/DXSALE_LOCK_AUDIT.md +0 -0
  61. package/DXSaleLock_bytecode.txt +1 -0
  62. package/ECHIDNA_QUICK_START.md +101 -0
  63. package/ELEPHANT_ECOSYSTEM_AUDIT_PLAN.md +159 -0
  64. package/ELEPHANT_ECOSYSTEM_COMPREHENSIVE_AUDIT.md +427 -0
  65. package/ELEPHANT_SECURITY_ANALYSIS.md +209 -0
  66. package/ELEPHANT_VULNERABILITIES_EXPLAINED.md +455 -0
  67. package/EXPLOIT_FIX.md +300 -0
  68. package/EXPLOIT_INSTRUCTIONS.md +273 -0
  69. package/EXPLOIT_SUMMARY.md +285 -0
  70. package/EXPLOIT_SUMMARY.txt +175 -0
  71. package/FALCON_FINANCE_AUDIT.md +258 -0
  72. package/FANDOM_AUDIT.md +359 -0
  73. package/FEE_ON_TRANSFER_ANALYSIS.md +228 -0
  74. package/FINAL_AUDIT_REPORT.md +0 -0
  75. package/FOLIO_PROXY_AUDIT.md +299 -0
  76. package/FOT_EXPLOIT_RESULTS.txt +110 -0
  77. package/FOT_TOKENS_AUDITED.md +103 -0
  78. package/HEGIC-mythril-analysis.txt +39 -0
  79. package/HEGIC_COMPLETE_ANALYSIS.md +343 -0
  80. package/HOTCROSS_SWAP_EXPLOIT_ANALYSIS.md +123 -0
  81. package/ICECREAMSWAP_EXPLOITS.md +259 -0
  82. package/IMMUNEFI_REPORT.md +314 -0
  83. package/KCCPAD_EXPLOIT_GUIDE.md +285 -0
  84. package/KEL_CEL_EXPLOIT_ANALYSIS.md +0 -0
  85. package/KOGE_AUDIT.md +328 -0
  86. package/LENDFLARE_ANALYSIS.md +239 -0
  87. package/LENDFLARE_ECHIDNA_GUIDE.md +356 -0
  88. package/LENDFLARE_EXPLOIT_INSTRUCTIONS.md +297 -0
  89. package/LENDFLARE_EXPLOIT_SUMMARY.md +292 -0
  90. package/LENDFLARE_FLASHLOAN_GUIDE.md +383 -0
  91. package/LENDFLARE_FUZZING_RESULTS.md +252 -0
  92. package/LENDFLARE_HONEYPOT_BYPASS_ANALYSIS.md +420 -0
  93. package/LENDFLARE_MANUAL_FUZZING.md +324 -0
  94. package/LENDFLARE_MYTHRIL_ANALYSIS.md +339 -0
  95. package/LENDFLARE_V3_BYPASS.md +296 -0
  96. package/LFTDECOMPILE.txt +14478 -0
  97. package/LFT_ACCOUNTING_ANALYSIS.md +0 -0
  98. package/LFT_ACCOUNTING_BUG_ANALYSIS.md +426 -0
  99. package/LFT_BACKDOOR_DEEP_DIVE.md +0 -0
  100. package/LFT_CRITICAL_EXPLOIT_CONFIRMED.md +428 -0
  101. package/LFT_EXPLOIT_VISUAL.md +253 -0
  102. package/LFT_QUICK_SUMMARY.md +124 -0
  103. package/LFT_REVERSE_EXPLOIT_ANALYSIS.md +521 -0
  104. package/MGO_AUDIT_REPORT.md +420 -0
  105. package/MYTHRIL_FINAL_REPORT.md +306 -0
  106. package/MYTHRIL_SLITHER_SUMMARY.md +244 -0
  107. package/NETX_MIGRATION_AUDIT.md +0 -0
  108. package/NPM_PUBLISH_GUIDE.md +0 -0
  109. package/NRV_CRITICAL_EXPLOIT.txt +143 -0
  110. package/NetX_Analysis.txt +76 -0
  111. package/NetX_Migration_bytecode.txt +1 -0
  112. package/NetX_Migration_source.txt +0 -0
  113. package/NetX_Token_source.txt +0 -0
  114. package/NetxWhitehatRescue +22 -0
  115. package/OILER_ATTACK_VISUAL.md +351 -0
  116. package/OILER_BLOCKSEC_TEST_RESULTS.md +421 -0
  117. package/OILER_DEEP_ANALYSIS.md +212 -0
  118. package/OILER_FINAL_EXPLOIT_REPORT.md +241 -0
  119. package/OILER_FINAL_VERDICT.md +339 -0
  120. package/OILER_REENTRANCY_EXPLAINED.md +638 -0
  121. package/OILER_REENTRANCY_FINAL_SUMMARY.md +391 -0
  122. package/OILER_REENTRANCY_REALITY_CHECK.md +393 -0
  123. package/OILER_REENTRANCY_STEP_BY_STEP.md +597 -0
  124. package/OILER_STAKING_MAINNET_ANALYSIS.md +366 -0
  125. package/OILER_STAKING_SECURITY_ANALYSIS.md +409 -0
  126. package/PANCAKESWAP_UNDERFLOW_HUNTING.md +317 -0
  127. package/POLS_MULTICHAIN_AUDIT.md +0 -0
  128. package/POSI_STAKING_AUDIT.md +0 -0
  129. package/PROXY2_SECURITY_ANALYSIS.md +0 -0
  130. package/Proxy2TACS +29748 -0
  131. package/QUICK_START.md +240 -0
  132. package/RAMP_SECURITY_ANALYSIS.md +0 -0
  133. package/README.md +238 -0
  134. package/REAUDIT_MASTER_LIST.txt +15 -0
  135. package/RING_analysis.txt +212 -0
  136. package/RPC +4 -0
  137. package/RULES.txt +20 -0
  138. package/SIREN_AUDIT.md +186 -0
  139. package/SYNC_EXPLOIT_README.md +0 -0
  140. package/SYNC_TOKEN_EXPLOIT_REPORT.md +224 -0
  141. package/TLM_raw.html +0 -0
  142. package/TLM_raw.txt +0 -0
  143. package/TLM_response.json +1 -0
  144. package/TRADOOR_AUDIT.md +253 -0
  145. package/TRUNK_AUDIT.md +285 -0
  146. package/UNIBASE_AUDIT.md +241 -0
  147. package/UNLOCK_ANALYSIS.md +0 -0
  148. package/UNLOCK_EXPLOIT.md +49 -0
  149. package/UNLOCK_EXPLOIT_ANALYSIS.md +0 -0
  150. package/UPS +232 -0
  151. package/UUPSCHECKER +208 -0
  152. package/VAULT_PROXY_AUDIT.md +457 -0
  153. package/VAULT_PROXY_FINAL_VERDICT.md +0 -0
  154. package/VERIFIED_EXPLOITS_FINAL.txt +146 -0
  155. package/WKEYDAO2_AUDIT.md +245 -0
  156. package/WSG_AUDIT.md +0 -0
  157. package/XFI_DEEP_ANALYSIS.md +327 -0
  158. package/YOOSHI_EXPLOIT_GUIDE.md +119 -0
  159. package/YSDAO_EXPLOIT_GUIDE.md +0 -0
  160. package/agent-4-bundle.md +22490 -0
  161. package/alpha-proxy-echidna.txt +1 -0
  162. package/alpha-proxy-fuzz-results.txt +81 -0
  163. package/alpha-proxy-mythril.txt +2 -0
  164. package/analyze-btcst-farm.js +54 -0
  165. package/analyze-dxsale-lock.js +75 -0
  166. package/analyze-elephant.js +69 -0
  167. package/analyze-fara-rewards.js +109 -0
  168. package/analyze-fara-storage.js +83 -0
  169. package/analyze-lft-transaction.js +158 -0
  170. package/analyze-lock-bytecode.js +59 -0
  171. package/analyze-shegic.js +0 -0
  172. package/analyze-staking-abi.js +0 -0
  173. package/analyze-sxp.js +57 -0
  174. package/analyze-tlm.js +76 -0
  175. package/analyze-trumpet.js +98 -0
  176. package/analyze-unlimited-nft.js +108 -0
  177. package/analyze_elephant.sh +27 -0
  178. package/analyze_vault.sh +32 -0
  179. package/aria-bytecode.txt +1 -0
  180. package/aria_response.json +1 -0
  181. package/ark_temp/README.md +66 -0
  182. package/ark_temp/lib/forge-std/.gitattributes +1 -0
  183. package/ark_temp/lib/forge-std/.github/CODEOWNERS +1 -0
  184. package/ark_temp/lib/forge-std/.github/dependabot.yml +6 -0
  185. package/ark_temp/lib/forge-std/.github/workflows/ci.yml +125 -0
  186. package/ark_temp/lib/forge-std/.github/workflows/sync.yml +36 -0
  187. package/ark_temp/lib/forge-std/CONTRIBUTING.md +193 -0
  188. package/ark_temp/lib/forge-std/LICENSE-APACHE +203 -0
  189. package/ark_temp/lib/forge-std/LICENSE-MIT +25 -0
  190. package/ark_temp/lib/forge-std/README.md +314 -0
  191. package/ark_temp/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
  192. package/ark_temp/lib/forge-std/package.json +16 -0
  193. package/ark_temp/lib/forge-std/scripts/vm.py +636 -0
  194. package/audits/AiFi-security-audit-20260326.md +499 -0
  195. package/audits/BasedAI-Brains-security-audit-20260324.md +651 -0
  196. package/audits/BinanceAlphaWallet-pashov-ai-audit-report-20260324-170000.md +362 -0
  197. package/audits/DGToken-security-audit-20260324.md +376 -0
  198. package/audits/DSyncStaking-audit-part1.md +161 -0
  199. package/audits/DSyncStaking-security-audit-20260324.md +547 -0
  200. package/audits/DecompiledERC20-security-audit-20260325.md +397 -0
  201. package/audits/DegenVC-security-audit-20260324.md +585 -0
  202. package/audits/DelreyInu-security-audit-20260324.md +463 -0
  203. package/audits/DestraNetwork-security-audit-20260324.md +705 -0
  204. package/audits/DomiToken-security-audit-20260324.md +514 -0
  205. package/audits/LendFlareToken-security-audit-20260325.md +197 -0
  206. package/audits/LockReleaseTokenPool-security-audit-20260324.md +482 -0
  207. package/audits/MOG-pashov-ai-audit-report-20260324-164900.md +229 -0
  208. package/audits/PAALAI-security-audit-20260324.md +475 -0
  209. package/audits/PAR-security-audit-20260325.md +311 -0
  210. package/audits/PepeCoinStaking-security-audit-20260324.md +358 -0
  211. package/audits/StakingPool-security-audit-20260324.md +517 -0
  212. package/audits/SyncToken-security-audit-20260324.md +778 -0
  213. package/audits/UndeadToken-decompiled-security-audit-20260324.md +485 -0
  214. package/audits/UnknownToken-decompiled-security-audit-20260324.md +647 -0
  215. package/audits/XFIStaking-security-audit-20260324.md +682 -0
  216. package/audits/Xfinance-security-audit-20260324.md +463 -0
  217. package/audits/basedAIFarm-security-audit-20260324.md +330 -0
  218. package/audits/pepeCoin-security-audit-20260324.md +462 -0
  219. package/bin/ups +232 -0
  220. package/binance-wallet-exploit/.env.example +2 -0
  221. package/binance-wallet-exploit/EXECUTIVE_SUMMARY.md +272 -0
  222. package/binance-wallet-exploit/EXPLOIT_SUMMARY.md +104 -0
  223. package/binance-wallet-exploit/FINAL_ANALYSIS.md +326 -0
  224. package/binance-wallet-exploit/FLASHLOAN_ATTACK.md +292 -0
  225. package/binance-wallet-exploit/HONEYPOT_REPORT.md +526 -0
  226. package/binance-wallet-exploit/INVESTIGATION_COMPLETE.md +362 -0
  227. package/binance-wallet-exploit/LENDFLARE_EXPLOIT.md +219 -0
  228. package/binance-wallet-exploit/LENDFLARE_FINAL_ATTACK.md +307 -0
  229. package/binance-wallet-exploit/LENDFLARE_REAL_EXPLOIT.md +286 -0
  230. package/binance-wallet-exploit/LENDFLARE_RUGPULL.md +269 -0
  231. package/binance-wallet-exploit/LFT_ANALYSIS.md +206 -0
  232. package/binance-wallet-exploit/QUICK_START.md +75 -0
  233. package/binance-wallet-exploit/README.md +195 -0
  234. package/binance-wallet-exploit/REAL_TX_EXPLOIT_ANALYSIS.md +271 -0
  235. package/binance-wallet-exploit/REMIX_INSTRUCTIONS.md +223 -0
  236. package/binance-wallet-exploit/TEST_RESULTS.md +203 -0
  237. package/binance-wallet-exploit/cache/solidity-files-cache.json +1 -0
  238. package/binance-wallet-exploit/cache/test-failures +1 -0
  239. package/binance-wallet-exploit/lib/forge-std/.gitattributes +1 -0
  240. package/binance-wallet-exploit/lib/forge-std/.github/CODEOWNERS +1 -0
  241. package/binance-wallet-exploit/lib/forge-std/.github/dependabot.yml +6 -0
  242. package/binance-wallet-exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
  243. package/binance-wallet-exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
  244. package/binance-wallet-exploit/lib/forge-std/CONTRIBUTING.md +193 -0
  245. package/binance-wallet-exploit/lib/forge-std/LICENSE-APACHE +203 -0
  246. package/binance-wallet-exploit/lib/forge-std/LICENSE-MIT +25 -0
  247. package/binance-wallet-exploit/lib/forge-std/README.md +314 -0
  248. package/binance-wallet-exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
  249. package/binance-wallet-exploit/lib/forge-std/package.json +16 -0
  250. package/binance-wallet-exploit/lib/forge-std/scripts/vm.py +636 -0
  251. package/binance-wallet-exploit/out/build-info/1e9aa7e86cf56962.json +1 -0
  252. package/binance-wallet-exploit/out/build-info/6f56f10e9d7b56eb.json +1 -0
  253. package/binance-wallet-exploit/out/build-info/7edba961ff697a24.json +1 -0
  254. package/binance-wallet-exploit/out/build-info/8c27fe3efea2f2e7.json +1 -0
  255. package/binance-wallet-exploit/out/build-info/978b680daffec63a.json +1 -0
  256. package/binance-wallet-exploit/out/build-info/9806b900b5672d0c.json +1 -0
  257. package/binance-wallet-exploit/out/build-info/b4b9ff36e9b3fc27.json +1 -0
  258. package/binance-wallet-exploit/out/build-info/b6f4df9ae05c0812.json +1 -0
  259. package/binance-wallet-exploit/out/build-info/c88dbc86551f7b5c.json +1 -0
  260. package/binance-wallet-exploit/out/build-info/e9657504010623db.json +1 -0
  261. package/cache/fuzz/failures/ARIAVerifiedFuzzTest/testFuzz_ApprovalRaceCondition +1 -0
  262. package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_DirectTransferExploit +1 -0
  263. package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_LargeSwapDrain +1 -0
  264. package/cache/fuzz/failures/LendFlareFuzz/testFuzz_ApprovalExploit +1 -0
  265. package/cache/fuzz/failures/LendFlareFuzz/testFuzz_BalanceManipulation +1 -0
  266. package/cache/fuzz/failures/LendFlareFuzz/testFuzz_RateManipulation +1 -0
  267. package/cache/fuzz/failures/LendFlareFuzz/testFuzz_StorageManipulation +1 -0
  268. package/cache/fuzz/failures/PARFuzzTest/testFuzz_OverflowTransfer +1 -0
  269. package/cache/fuzz/failures/PARFuzzTest/testFuzz_Transfer +1 -0
  270. package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_FrontrunAddfunds +1 -0
  271. package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RewardOverflow +1 -0
  272. package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RoundingExploit +1 -0
  273. package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_WithdrawLimit +1 -0
  274. package/cache/solidity-files-cache.json +1 -0
  275. package/cache/test-failures +1 -0
  276. package/calculate-elephant-flashloan.js +195 -0
  277. package/check-address-approval.js +112 -0
  278. package/check-alpha-proxy.js +42 -0
  279. package/check-arbitrage.js +155 -0
  280. package/check-aria-token.js +47 -0
  281. package/check-ark.sh +20 -0
  282. package/check-btcst-mining.js +75 -0
  283. package/check-btcst-pools.js +163 -0
  284. package/check-btcst.js +88 -0
  285. package/check-caller.js +26 -0
  286. package/check-ceek-lp.js +73 -0
  287. package/check-ceek.js +47 -0
  288. package/check-dxsale-address.js +35 -0
  289. package/check-fara-exploit-timing.js +56 -0
  290. package/check-fara-real-exploit.js +73 -0
  291. package/check-flashloan-limits.js +129 -0
  292. package/check-kel-cel-pool.js +91 -0
  293. package/check-lax-staking.js +41 -0
  294. package/check-lendflare.js +165 -0
  295. package/check-lft-accounting.js +109 -0
  296. package/check-lft-roles.js +165 -0
  297. package/check-lock-time.js +47 -0
  298. package/check-min-stake.js +73 -0
  299. package/check-mystery-contract.js +52 -0
  300. package/check-next-token.js +50 -0
  301. package/check-nora-lock.js +67 -0
  302. package/check-oiler-approvals.js +116 -0
  303. package/check-oiler-proxy.js +73 -0
  304. package/check-oiler-staking.js +117 -0
  305. package/check-proxy-simple.js +71 -0
  306. package/check-recent-stakes.js +54 -0
  307. package/check-shegic-holdings.js +67 -0
  308. package/check-snowcrash-ecosystem.js +83 -0
  309. package/check-sync-lp.js +97 -0
  310. package/check-sync-stake.js +42 -0
  311. package/check-tlm.js +37 -0
  312. package/check-token-pools.js +146 -0
  313. package/check-trunk-depeg.js +181 -0
  314. package/check-tusd-decimals.js +58 -0
  315. package/check-user-storage-deep.js +81 -0
  316. package/check-welephant-pools.js +130 -0
  317. package/check-xfi-pool.js +75 -0
  318. package/check-zypher.js +32 -0
  319. package/check_proxy.sh +36 -0
  320. package/compare-tlm-chains.js +90 -0
  321. package/contract_0x05f2.html +6025 -0
  322. package/contract_0x3720.html +6361 -0
  323. package/contract_0x928e.html +5606 -0
  324. package/contract_0xc42d.html +5304 -0
  325. package/contract_page.html +5789 -0
  326. package/decode-stake-tx.js +50 -0
  327. package/deep-analyze-lock.js +82 -0
  328. package/dune_uups_proxy_query.sql +42 -0
  329. package/dune_uups_vulnerable_query.sql +0 -0
  330. package/echidna/alpha-proxy.yaml +14 -0
  331. package/echidna/elephant.yaml +7 -0
  332. package/echidna/lendflare.yaml +42 -0
  333. package/echidna.config.yaml +12 -0
  334. package/elephant_raw.json +1 -0
  335. package/eps_raw.json +1 -0
  336. package/exploit/.github/workflows/test.yml +38 -0
  337. package/exploit/.gitmodules +3 -0
  338. package/exploit/README.md +66 -0
  339. package/exploit/foundry.lock +8 -0
  340. package/exploit/lib/forge-std/.gitattributes +1 -0
  341. package/exploit/lib/forge-std/.github/CODEOWNERS +1 -0
  342. package/exploit/lib/forge-std/.github/dependabot.yml +6 -0
  343. package/exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
  344. package/exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
  345. package/exploit/lib/forge-std/CONTRIBUTING.md +193 -0
  346. package/exploit/lib/forge-std/LICENSE-APACHE +203 -0
  347. package/exploit/lib/forge-std/LICENSE-MIT +25 -0
  348. package/exploit/lib/forge-std/README.md +314 -0
  349. package/exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
  350. package/exploit/lib/forge-std/package.json +16 -0
  351. package/exploit/lib/forge-std/scripts/vm.py +636 -0
  352. package/exploit_analysis.txt +51 -0
  353. package/extract_contract.py +21 -0
  354. package/extract_elephant_contracts.py +24 -0
  355. package/fara-staking-bytecode.txt +1 -0
  356. package/fara-staking-raw.txt +1 -0
  357. package/fetch-aria.js +46 -0
  358. package/fetch-contract.js +50 -0
  359. package/fetch-shegic-source.js +86 -0
  360. package/fetch-snowcrash.js +44 -0
  361. package/fetch-staking-source.js +53 -0
  362. package/fetch-tlm.js +60 -0
  363. package/fetch_elephant_source.py +32 -0
  364. package/find-ceek-staking.js +21 -0
  365. package/find-exploit-tx.js +88 -0
  366. package/find-oiler-holders.js +100 -0
  367. package/find-tlm-holder.js +36 -0
  368. package/find-vulnerable-fund.js +94 -0
  369. package/foundry.lock +8 -0
  370. package/fuzz-all.sh +53 -0
  371. package/get-aria-contract.py +40 -0
  372. package/get-lft-holders.js +89 -0
  373. package/get-tlm-source.sh +8 -0
  374. package/harvest_txs.json +1 -0
  375. package/lft-bytecode-raw.txt +1 -0
  376. package/lft-bytecode.json +1 -0
  377. package/lft-impl.bin +1 -0
  378. package/lft-implementation-bytecode.txt +1 -0
  379. package/lib/forge-std/.gitattributes +1 -0
  380. package/lib/forge-std/.github/CODEOWNERS +1 -0
  381. package/lib/forge-std/.github/dependabot.yml +6 -0
  382. package/lib/forge-std/.github/workflows/ci.yml +125 -0
  383. package/lib/forge-std/.github/workflows/sync.yml +36 -0
  384. package/lib/forge-std/CONTRIBUTING.md +193 -0
  385. package/lib/forge-std/LICENSE-APACHE +203 -0
  386. package/lib/forge-std/LICENSE-MIT +25 -0
  387. package/lib/forge-std/README.md +314 -0
  388. package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
  389. package/lib/forge-std/package.json +16 -0
  390. package/lib/forge-std/scripts/vm.py +636 -0
  391. package/lib/openzeppelin-contracts/.changeset/config.json +12 -0
  392. package/lib/openzeppelin-contracts/.codecov.yml +12 -0
  393. package/lib/openzeppelin-contracts/.editorconfig +21 -0
  394. package/lib/openzeppelin-contracts/.eslintrc +20 -0
  395. package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  396. package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
  397. package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  398. package/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
  399. package/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
  400. package/lib/openzeppelin-contracts/.github/actions/setup/action.yml +21 -0
  401. package/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
  402. package/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
  403. package/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
  404. package/lib/openzeppelin-contracts/.github/workflows/checks.yml +118 -0
  405. package/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
  406. package/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
  407. package/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
  408. package/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +34 -0
  409. package/lib/openzeppelin-contracts/.gitmodules +7 -0
  410. package/lib/openzeppelin-contracts/.mocharc.js +4 -0
  411. package/lib/openzeppelin-contracts/.prettierrc +15 -0
  412. package/lib/openzeppelin-contracts/.solcover.js +13 -0
  413. package/lib/openzeppelin-contracts/CHANGELOG.md +972 -0
  414. package/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
  415. package/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
  416. package/lib/openzeppelin-contracts/GUIDELINES.md +148 -0
  417. package/lib/openzeppelin-contracts/LICENSE +22 -0
  418. package/lib/openzeppelin-contracts/README.md +107 -0
  419. package/lib/openzeppelin-contracts/RELEASING.md +45 -0
  420. package/lib/openzeppelin-contracts/SECURITY.md +42 -0
  421. package/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
  422. package/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
  423. package/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
  424. package/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
  425. package/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
  426. package/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
  427. package/lib/openzeppelin-contracts/audits/README.md +17 -0
  428. package/lib/openzeppelin-contracts/certora/Makefile +54 -0
  429. package/lib/openzeppelin-contracts/certora/README.md +60 -0
  430. package/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
  431. package/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
  432. package/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
  433. package/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
  434. package/lib/openzeppelin-contracts/certora/run.js +160 -0
  435. package/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
  436. package/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
  437. package/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
  438. package/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
  439. package/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
  440. package/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
  441. package/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
  442. package/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
  443. package/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
  444. package/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
  445. package/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
  446. package/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
  447. package/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
  448. package/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
  449. package/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +7 -0
  450. package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
  451. package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  452. package/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
  453. package/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
  454. package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
  455. package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
  456. package/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
  457. package/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
  458. package/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
  459. package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
  460. package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
  461. package/lib/openzeppelin-contracts/certora/specs.json +86 -0
  462. package/lib/openzeppelin-contracts/contracts/access/README.adoc +43 -0
  463. package/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
  464. package/lib/openzeppelin-contracts/contracts/governance/README.adoc +167 -0
  465. package/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +82 -0
  466. package/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
  467. package/lib/openzeppelin-contracts/contracts/package.json +32 -0
  468. package/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
  469. package/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +41 -0
  470. package/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +67 -0
  471. package/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +67 -0
  472. package/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
  473. package/lib/openzeppelin-contracts/contracts/utils/README.adoc +88 -0
  474. package/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
  475. package/lib/openzeppelin-contracts/docs/README.md +16 -0
  476. package/lib/openzeppelin-contracts/docs/antora.yml +7 -0
  477. package/lib/openzeppelin-contracts/docs/config.js +21 -0
  478. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  479. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  480. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  481. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  482. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  483. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  484. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  485. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  486. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  487. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  488. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  489. package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
  490. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +204 -0
  491. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +48 -0
  492. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
  493. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
  494. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +145 -0
  495. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +71 -0
  496. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +77 -0
  497. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  498. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +79 -0
  499. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +77 -0
  500. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
  501. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +240 -0
  502. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +79 -0
  503. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +31 -0
  504. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +77 -0
  505. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +185 -0
  506. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +15 -0
  507. package/lib/openzeppelin-contracts/docs/templates/contract.hbs +111 -0
  508. package/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
  509. package/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
  510. package/lib/openzeppelin-contracts/docs/templates/properties.js +64 -0
  511. package/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
  512. package/lib/openzeppelin-contracts/hardhat/env-contract.js +25 -0
  513. package/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
  514. package/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
  515. package/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
  516. package/lib/openzeppelin-contracts/hardhat.config.js +131 -0
  517. package/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
  518. package/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
  519. package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
  520. package/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
  521. package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
  522. package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
  523. package/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
  524. package/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
  525. package/lib/openzeppelin-contracts/logo.svg +15 -0
  526. package/lib/openzeppelin-contracts/netlify.toml +3 -0
  527. package/lib/openzeppelin-contracts/package-lock.json +16544 -0
  528. package/lib/openzeppelin-contracts/package.json +96 -0
  529. package/lib/openzeppelin-contracts/remappings.txt +1 -0
  530. package/lib/openzeppelin-contracts/renovate.json +4 -0
  531. package/lib/openzeppelin-contracts/requirements.txt +1 -0
  532. package/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +20 -0
  533. package/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
  534. package/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +38 -0
  535. package/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
  536. package/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
  537. package/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
  538. package/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
  539. package/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
  540. package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +247 -0
  541. package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +17 -0
  542. package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +146 -0
  543. package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +283 -0
  544. package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
  545. package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +126 -0
  546. package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +78 -0
  547. package/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
  548. package/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
  549. package/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
  550. package/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
  551. package/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
  552. package/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
  553. package/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
  554. package/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
  555. package/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
  556. package/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
  557. package/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
  558. package/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
  559. package/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
  560. package/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
  561. package/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
  562. package/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  563. package/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
  564. package/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
  565. package/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
  566. package/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
  567. package/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +5 -0
  568. package/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
  569. package/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
  570. package/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
  571. package/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
  572. package/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
  573. package/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +47 -0
  574. package/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +360 -0
  575. package/lib/openzeppelin-contracts/slither.config.json +5 -0
  576. package/lib/openzeppelin-contracts/solhint.config.js +20 -0
  577. package/mythril-lft-output.txt +1 -0
  578. package/mythril-lft-symbolic.txt +18 -0
  579. package/mythril-lft.sh +20 -0
  580. package/mythril-symbolic-output.txt +1 -0
  581. package/mythril-symbolic.sh +42 -0
  582. package/out/build-info/0026b78428192979.json +1 -0
  583. package/out/build-info/03c4fc3b88486eba.json +1 -0
  584. package/out/build-info/0540afa9b9a5c5a6.json +1 -0
  585. package/out/build-info/081932f505bc08b9.json +1 -0
  586. package/out/build-info/0da104ba0d6642d5.json +1 -0
  587. package/out/build-info/197281971dbb5f23.json +1 -0
  588. package/out/build-info/197e7e332832a232.json +1 -0
  589. package/out/build-info/1a1cab9136eb5f94.json +1 -0
  590. package/out/build-info/1b320204eb162aa2.json +1 -0
  591. package/out/build-info/1e03f94398052674.json +1 -0
  592. package/out/build-info/22ac085949602937.json +1 -0
  593. package/out/build-info/234ef37453a9fa64.json +1 -0
  594. package/out/build-info/2447db7b1878fa8e.json +1 -0
  595. package/out/build-info/25568daeb484f5ff.json +1 -0
  596. package/out/build-info/27465853244c49ce.json +1 -0
  597. package/out/build-info/2c57a9e0f087453b.json +1 -0
  598. package/out/build-info/3c62ae7de8da68c4.json +1 -0
  599. package/out/build-info/3e771ae109e97bb3.json +1 -0
  600. package/out/build-info/460499bc0a3465c4.json +1 -0
  601. package/out/build-info/47ce37e50a4f115e.json +1 -0
  602. package/out/build-info/4fcce5c63cf427d6.json +1 -0
  603. package/out/build-info/4fd0a53fe63fddbb.json +1 -0
  604. package/out/build-info/50f1247db9d769cc.json +1 -0
  605. package/out/build-info/5317d0181a7a5e02.json +1 -0
  606. package/out/build-info/594df509275ceb5b.json +1 -0
  607. package/out/build-info/61983ac3f6141719.json +1 -0
  608. package/out/build-info/638c4548307122fe.json +1 -0
  609. package/out/build-info/67c2c43bdb7c0ded.json +1 -0
  610. package/out/build-info/777f42643aad37b7.json +1 -0
  611. package/out/build-info/7d7856f19e845354.json +1 -0
  612. package/out/build-info/83976260b6f71e94.json +1 -0
  613. package/out/build-info/83c23882000b963d.json +1 -0
  614. package/out/build-info/84b2cce8f70b36be.json +1 -0
  615. package/out/build-info/8bc13d31d7c3206a.json +1 -0
  616. package/out/build-info/8e183bd4d9d8cf88.json +1 -0
  617. package/out/build-info/94bfe1e7cafa8ff5.json +1 -0
  618. package/out/build-info/99ec7d5e8d8ff360.json +1 -0
  619. package/out/build-info/9ac044b29daa7d5e.json +1 -0
  620. package/out/build-info/9b203227ff5d2e63.json +1 -0
  621. package/out/build-info/9d18c5872c4282dd.json +1 -0
  622. package/out/build-info/9f77f04f33baf9a3.json +1 -0
  623. package/out/build-info/a6e1caf974787982.json +1 -0
  624. package/out/build-info/a94b6348867a62d6.json +1 -0
  625. package/out/build-info/ad93721947a8b195.json +1 -0
  626. package/out/build-info/b42daddb5aa4b19f.json +1 -0
  627. package/out/build-info/bf13512ae899f7e8.json +1 -0
  628. package/out/build-info/c39f86c20a548c4a.json +1 -0
  629. package/out/build-info/cb12bb975a2f4e65.json +1 -0
  630. package/out/build-info/d0c6788fadc2aa60.json +1 -0
  631. package/out/build-info/d2726bf94ed5b845.json +1 -0
  632. package/out/build-info/d4eb00da50cce5cb.json +1 -0
  633. package/out/build-info/db931924a3bc8bdd.json +1 -0
  634. package/out/build-info/e1a503d49bc77401.json +1 -0
  635. package/out/build-info/efe5396f8892ce77.json +1 -0
  636. package/out/build-info/f536d90ced745969.json +1 -0
  637. package/out/build-info/fed38823c7019b82.json +1 -0
  638. package/package.json +51 -0
  639. package/page.html +5384 -0
  640. package/pancakeswap-simple-tvl.sql +15 -0
  641. package/pancakeswap-top-pools.sql +29 -0
  642. package/pancakeswap-tvl-optimized.sql +57 -0
  643. package/pancakeswap-tvl-query.sql +60 -0
  644. package/pancakeswap-underflow-hunting.sql +51 -0
  645. package/pancakeswap-vulnerability-queries.sql +200 -0
  646. package/posi_page.html +6369 -0
  647. package/posi_response.json +29 -0
  648. package/proxy_page.html +500 -0
  649. package/run_mythril_elephant.sh +18 -0
  650. package/sHEGIC-bytecode.bin +6 -0
  651. package/sHEGIC-mythril-analysis.txt +1 -0
  652. package/sHEGIC-mythril-full.txt +134 -0
  653. package/sHEGIC_ANALYSIS.md +135 -0
  654. package/sHEGIC_EXPLOIT_ANALYSIS.md +317 -0
  655. package/sHEGIC_MYTHRIL_ANALYSIS.md +361 -0
  656. package/scrape-snowcrash.js +28 -0
  657. package/scripts/yooshi_drain.sh +154 -0
  658. package/shi_raw.json +1 -0
  659. package/temp.json +1 -0
  660. package/temp_harvest.json +1 -0
  661. package/temp_pika.json +1 -0
  662. package/temp_posi.json +1 -0
  663. package/temp_response.json +1 -0
  664. package/test-lft-hidden-balance.js +108 -0
  665. package/test-xfi-exploit.js +140 -0
  666. package/trunk-liquidity-rescue.js +164 -0
  667. package/vBABY_page.html +6153 -0
  668. package/vBABY_response.json +29 -0
  669. package/wsg_response.json +1 -0
  670. package/yooldo_page.html +10371 -0
@@ -0,0 +1,705 @@
1
+ # 🔐 Security Audit — Destra Network (DSync) Token
2
+
3
+ ---
4
+
5
+ ## Scope
6
+
7
+ | | |
8
+ | -------------------------------- | ------------------------------------------------------ |
9
+ | **Contract Name** | DestraNetwork |
10
+ | **Token Symbol** | DSync |
11
+ | **Compiler Version** | Solidity 0.8.17 |
12
+ | **Contract Type** | ERC20 Token with Trading Controls & Fee Mechanism |
13
+ | **Audit Date** | March 24, 2026 |
14
+ | **Confidence Threshold (1-100)** | 95 |
15
+
16
+ ---
17
+
18
+ ## Executive Summary
19
+
20
+ The Destra Network token is a standard ERC20 token with additional features including:
21
+ - Trading controls and launch mechanism
22
+ - Buy/sell transaction limits
23
+ - Wallet size limits
24
+ - Fee-on-transfer mechanism (5% buy, 60% sell)
25
+ - Blacklist functionality
26
+ - Team-controlled functions
27
+
28
+ **Overall Risk**: 🟠 **MEDIUM-HIGH**
29
+
30
+ The contract contains several **centralization risks** and **potential rug pull mechanisms** that give excessive power to the owner and team members.
31
+
32
+ ---
33
+
34
+ ## 🚨 CRITICAL & HIGH SEVERITY FINDINGS
35
+
36
+ ### [95] 🔴 **CRITICAL: Extreme Sell Tax (60%) - Potential Rug Pull**
37
+
38
+ **Location**: `marketingSellFee = 6000` (line ~220)
39
+
40
+ **Description**:
41
+ The contract has a **60% sell tax** which is extremely high and creates a significant barrier to exit. This is a common rug pull pattern where:
42
+ 1. Users can buy with low tax (5%)
43
+ 2. Users cannot profitably sell due to 60% tax
44
+ 3. Team can change fees or extract value
45
+
46
+ ```solidity
47
+ uint256 marketingBuyFee = 500; // 5% buy fee
48
+ uint256 marketingSellFee = 6000; // 60% sell fee ⚠️ EXTREME
49
+ ```
50
+
51
+ **Impact**:
52
+ - Users lose 60% of value when selling
53
+ - Creates one-way liquidity trap
54
+ - Team can accumulate fees and rug pull
55
+ - Similar to honeypot mechanism
56
+
57
+ **Proof of Concept**:
58
+ ```solidity
59
+ // User buys 100 tokens, pays 5% fee = 95 tokens received
60
+ // User tries to sell 95 tokens, pays 60% fee = 38 tokens received
61
+ // Net loss: 62% of original investment
62
+ ```
63
+
64
+ **Recommendation**:
65
+ ```diff
66
+ - uint256 marketingSellFee = 6000; // 60%
67
+ + uint256 marketingSellFee = 500; // 5% (match buy fee)
68
+ +
69
+ + // Add maximum fee limit
70
+ + function setFees(...) external onlyOwner {
71
+ + require(totalBuyFee <= 1000, "Buy fee too high"); // Max 10%
72
+ + require(totalSellFee <= 1000, "Sell fee too high"); // Max 10%
73
+ + ...
74
+ + }
75
+ ```
76
+
77
+ ---
78
+
79
+ ### [92] 🔴 **CRITICAL: Unlimited Blacklist Power - Funds Can Be Frozen**
80
+
81
+ **Location**: `blacklistWallets()` function (line ~380)
82
+
83
+ **Description**:
84
+ Team members can blacklist ANY wallet at ANY time with NO restrictions. Blacklisted wallets cannot transfer tokens, effectively freezing their funds permanently.
85
+
86
+ ```solidity
87
+ function blacklistWallets(address[] calldata _wallets, bool _blacklist) external onlyTeam {
88
+ for (uint i = 0; i < _wallets.length; i++) {
89
+ if (_blacklist) {
90
+ blacklistCount++;
91
+ emit WalletBlacklisted(tx.origin, _wallets[i], block.number);
92
+ } else {
93
+ if (blacklist[_wallets[i]] != 0) blacklistCount--;
94
+ }
95
+ blacklist[_wallets[i]] = _blacklist ? block.number : 0;
96
+ }
97
+ }
98
+
99
+ // In checkTxLimit:
100
+ require(blacklist[sender] == 0, "Wallet blacklisted!");
101
+ ```
102
+
103
+ **Attack Scenario**:
104
+ 1. User buys tokens
105
+ 2. Team blacklists user's wallet
106
+ 3. User cannot sell or transfer tokens
107
+ 4. Funds permanently frozen
108
+
109
+ **Impact**:
110
+ - Complete loss of funds for blacklisted users
111
+ - No timelock or governance
112
+ - No appeal mechanism
113
+ - Can be used to prevent selling
114
+
115
+ **Recommendation**:
116
+ ```diff
117
+ + // Add timelock for blacklisting
118
+ + mapping(address => uint256) public blacklistProposal;
119
+ + uint256 constant BLACKLIST_DELAY = 24 hours;
120
+ +
121
+ function blacklistWallets(address[] calldata _wallets, bool _blacklist) external onlyTeam {
122
+ + require(_wallets.length <= 10, "Too many wallets");
123
+ for (uint i = 0; i < _wallets.length; i++) {
124
+ + // Require timelock
125
+ + if (_blacklist) {
126
+ + require(block.timestamp >= blacklistProposal[_wallets[i]] + BLACKLIST_DELAY, "Timelock");
127
+ + }
128
+ ...
129
+ }
130
+ }
131
+ +
132
+ + function proposeBlacklist(address wallet) external onlyTeam {
133
+ + blacklistProposal[wallet] = block.timestamp;
134
+ + }
135
+ ```
136
+
137
+ ---
138
+
139
+ ### [90] 🔴 **HIGH: Centralized Fee Control - Can Be Changed to 100%**
140
+
141
+ **Location**: `setFees()` function (line ~560)
142
+
143
+ **Description**:
144
+ Owner can change fees to ANY value at ANY time with NO maximum limits (except liquidity fee parity check). This allows setting fees to 100%, effectively preventing all trading.
145
+
146
+ ```solidity
147
+ function setFees(
148
+ uint256 _liquidityBuyFee,
149
+ uint256 _liquiditySellFee,
150
+ uint256 _marketingBuyFee,
151
+ uint256 _marketingSellFee,
152
+ uint256 _feeDenominator
153
+ ) external onlyOwner {
154
+ // Only checks liquidity fee is even, NO maximum fee check
155
+ require(((_liquidityBuyFee + _liquiditySellFee) / 2) * 2 == (_liquidityBuyFee + _liquiditySellFee),
156
+ "Liquidity fee must be an even number for rounding compatibility.");
157
+
158
+ liquidityBuyFee = _liquidityBuyFee;
159
+ liquiditySellFee = _liquiditySellFee;
160
+ marketingBuyFee = _marketingBuyFee;
161
+ marketingSellFee = _marketingSellFee;
162
+ totalBuyFee = _liquidityBuyFee + _marketingBuyFee;
163
+ totalSellFee = _liquiditySellFee + _marketingSellFee;
164
+ feeDenominator = _feeDenominator;
165
+ }
166
+ ```
167
+
168
+ **Attack Scenario**:
169
+ ```solidity
170
+ // Owner calls:
171
+ setFees(0, 0, 10000, 10000, 10000);
172
+ // Result: 100% buy and sell fees
173
+ // All trades now take 100% fee, tokens become untradeable
174
+ ```
175
+
176
+ **Impact**:
177
+ - Can make token untradeable
178
+ - Can trap users by setting 100% fees
179
+ - No protection for holders
180
+
181
+ **Recommendation**:
182
+ ```diff
183
+ function setFees(...) external onlyOwner {
184
+ + // Add maximum fee limits
185
+ + require(_liquidityBuyFee + _marketingBuyFee <= 1000, "Buy fee > 10%");
186
+ + require(_liquiditySellFee + _marketingSellFee <= 1000, "Sell fee > 10%");
187
+ + require(_feeDenominator >= 100, "Denominator too small");
188
+ ...
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ### [88] 🔴 **HIGH: Team Can Drain Contract ETH**
195
+
196
+ **Location**: `clearStuckBalance()` function (line ~370)
197
+
198
+ **Description**:
199
+ Team members can withdraw ANY percentage of contract ETH to ANY address with NO restrictions. This includes ETH from fees that should go to marketing/liquidity.
200
+
201
+ ```solidity
202
+ function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
203
+ uint256 amountETH = address(this).balance;
204
+ if (amountETH > 0) {
205
+ (bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
206
+ require(sent, "Failed to transfer funds");
207
+ }
208
+ }
209
+ ```
210
+
211
+ **Attack Scenario**:
212
+ 1. Contract accumulates 100 ETH from fees
213
+ 2. Team calls `clearStuckBalance(100, attackerAddress)`
214
+ 3. All 100 ETH sent to attacker
215
+ 4. Legitimate fee distribution bypassed
216
+
217
+ **Impact**:
218
+ - Complete loss of accumulated fees
219
+ - Marketing/liquidity funds stolen
220
+ - No accountability
221
+
222
+ **Recommendation**:
223
+ ```diff
224
+ function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
225
+ + // Only allow withdrawing truly stuck tokens, not fee ETH
226
+ + require(amountPercentage <= 10, "Max 10% at a time");
227
+ + require(adr == marketingFeeReceiver || adr == liquidityFeeReceiver, "Invalid recipient");
228
+ uint256 amountETH = address(this).balance;
229
+ if (amountETH > 0) {
230
+ (bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
231
+ require(sent, "Failed to transfer funds");
232
+ }
233
+ }
234
+ ```
235
+
236
+ ---
237
+
238
+ ### [85] 🟠 **HIGH: No Maximum Transaction Limit Enforcement**
239
+
240
+ **Location**: `setTxLimit()` function (line ~540)
241
+
242
+ **Description**:
243
+ Owner can set transaction limits to 0 or to 100% of supply, effectively disabling limits or making token untradeable.
244
+
245
+ ```solidity
246
+ function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
247
+ require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
248
+ _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
249
+ _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
250
+ }
251
+ ```
252
+
253
+ **Attack Scenario**:
254
+ ```solidity
255
+ // Owner calls:
256
+ setTxLimit(1, 1, 10000);
257
+ // Result: Max buy = 0.01%, max sell = 0.01%
258
+ // Users can only trade 100,000 tokens at a time (0.01% of 1B supply)
259
+ // Effectively makes trading impossible for large holders
260
+ ```
261
+
262
+ **Recommendation**:
263
+ ```diff
264
+ function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
265
+ require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
266
+ + // Ensure minimum 0.1% transaction limit
267
+ + require(buyNumerator * 1000 >= divisor, "Buy limit too low");
268
+ + require(sellNumerator * 1000 >= divisor, "Sell limit too low");
269
+ _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
270
+ _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
271
+ }
272
+ ```
273
+
274
+ ---
275
+
276
+ ## 🟡 MEDIUM SEVERITY FINDINGS
277
+
278
+ ### [80] 🟡 **MEDIUM: Reentrancy Risk in swapBack()**
279
+
280
+ **Location**: `swapBack()` function (line ~490)
281
+
282
+ **Description**:
283
+ The `swapBack()` function makes external calls to Uniswap router and fee receivers without following checks-effects-interactions pattern. While protected by `swapping` modifier, the pattern is still risky.
284
+
285
+ ```solidity
286
+ function swapBack(uint256 amount) internal swapping {
287
+ // ... calculations ...
288
+
289
+ router.swapExactTokensForETHSupportingFeeOnTransferTokens(...); // External call
290
+
291
+ uint256 amountETH = address(this).balance - balanceBefore;
292
+
293
+ if (amountETHMarketing > 0) {
294
+ (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}(""); // External call
295
+ if (!sentMarketing) {
296
+ //Failed to transfer to marketing wallet
297
+ }
298
+ }
299
+
300
+ if (amountToLiquify > 0) {
301
+ router.addLiquidityETH{value: amountETHLiquidity}(...); // External call
302
+ }
303
+
304
+ swapBackCounter[block.number] = swapBackCounter[block.number] + 1; // State change AFTER external calls
305
+ }
306
+ ```
307
+
308
+ **Issue**:
309
+ - State changes happen after external calls
310
+ - If `marketingFeeReceiver` is a malicious contract, it could attempt reentrancy
311
+ - `swapping` modifier provides protection, but pattern is still poor
312
+
313
+ **Recommendation**:
314
+ ```diff
315
+ function swapBack(uint256 amount) internal swapping {
316
+ + // Update state BEFORE external calls
317
+ + swapBackCounter[block.number] = swapBackCounter[block.number] + 1;
318
+ +
319
+ // ... calculations ...
320
+
321
+ router.swapExactTokensForETHSupportingFeeOnTransferTokens(...);
322
+
323
+ // ... rest of function ...
324
+ -
325
+ - swapBackCounter[block.number] = swapBackCounter[block.number] + 1;
326
+ }
327
+ ```
328
+
329
+ ---
330
+
331
+ ### [78] 🟡 **MEDIUM: Silent Failure in Marketing Fee Transfer**
332
+
333
+ **Location**: `swapBack()` function (line ~515)
334
+
335
+ **Description**:
336
+ If the marketing fee transfer fails, the function silently continues without reverting or emitting an event. This means fees could be lost.
337
+
338
+ ```solidity
339
+ if (amountETHMarketing > 0) {
340
+ (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}("");
341
+ if (!sentMarketing) {
342
+ //Failed to transfer to marketing wallet
343
+ // ⚠️ No revert, no event, ETH stays in contract
344
+ }
345
+ }
346
+ ```
347
+
348
+ **Impact**:
349
+ - Marketing fees accumulate in contract
350
+ - Team can later extract via `clearStuckBalance()`
351
+ - Lack of transparency
352
+
353
+ **Recommendation**:
354
+ ```diff
355
+ if (amountETHMarketing > 0) {
356
+ (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}("");
357
+ - if (!sentMarketing) {
358
+ - //Failed to transfer to marketing wallet
359
+ - }
360
+ + require(sentMarketing, "Marketing transfer failed");
361
+ }
362
+ ```
363
+
364
+ ---
365
+
366
+ ### [75] 🟡 **MEDIUM: Airdrop Function Can Be Abused**
367
+
368
+ **Location**: `airdrop()` function (line ~360)
369
+
370
+ **Description**:
371
+ The airdrop function has no limits on number of recipients or amounts, and can be called multiple times. This could be used to:
372
+ 1. Bypass transaction limits
373
+ 2. Distribute tokens to many wallets to avoid detection
374
+ 3. Manipulate holder count
375
+
376
+ ```solidity
377
+ function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
378
+ require(addresses.length > 0 && amounts.length == addresses.length);
379
+ address from = msg.sender;
380
+
381
+ for (uint i = 0; i < addresses.length; i++) {
382
+ if (!liquidityPools[addresses[i]] && !isLiquidityCreator[addresses[i]]) {
383
+ _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
384
+ }
385
+ }
386
+ }
387
+ ```
388
+
389
+ **Issues**:
390
+ - No limit on array length (gas limit only)
391
+ - No limit on total amount
392
+ - Bypasses all transfer restrictions
393
+ - Can be used before trading is enabled
394
+
395
+ **Recommendation**:
396
+ ```diff
397
+ function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
398
+ require(addresses.length > 0 && amounts.length == addresses.length);
399
+ + require(addresses.length <= 200, "Too many recipients");
400
+ +
401
+ address from = msg.sender;
402
+ + uint256 totalAmount = 0;
403
+
404
+ for (uint i = 0; i < addresses.length; i++) {
405
+ + totalAmount += amounts[i] * (10 ** _decimals);
406
+ if (!liquidityPools[addresses[i]] && !isLiquidityCreator[addresses[i]]) {
407
+ _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
408
+ }
409
+ }
410
+ +
411
+ + require(totalAmount <= _totalSupply / 10, "Airdrop amount too large");
412
+ }
413
+ ```
414
+
415
+ ---
416
+
417
+ ### [72] 🟡 **MEDIUM: Team Member Management Lacks Safeguards**
418
+
419
+ **Location**: `setTeamMember()` function (line ~355)
420
+
421
+ **Description**:
422
+ Owner can add unlimited team members who have powerful privileges (blacklist, drain ETH, open trading). No limit on number of team members and no way to see who they are.
423
+
424
+ ```solidity
425
+ function setTeamMember(address _team, bool _enabled) external onlyOwner {
426
+ teamMembers[_team] = _enabled;
427
+ }
428
+
429
+ modifier onlyTeam() {
430
+ require(teamMembers[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
431
+ _;
432
+ }
433
+ ```
434
+
435
+ **Issues**:
436
+ - No limit on team members
437
+ - No public list of team members
438
+ - Team members have critical powers
439
+ - No timelock for adding team members
440
+
441
+ **Recommendation**:
442
+ ```diff
443
+ + address[] public teamMemberList;
444
+ + uint256 public constant MAX_TEAM_MEMBERS = 5;
445
+ +
446
+ function setTeamMember(address _team, bool _enabled) external onlyOwner {
447
+ + require(_team != address(0), "Invalid address");
448
+ +
449
+ + if (_enabled) {
450
+ + require(teamMemberList.length < MAX_TEAM_MEMBERS, "Too many team members");
451
+ + teamMemberList.push(_team);
452
+ + } else {
453
+ + // Remove from list
454
+ + for (uint i = 0; i < teamMemberList.length; i++) {
455
+ + if (teamMemberList[i] == _team) {
456
+ + teamMemberList[i] = teamMemberList[teamMemberList.length - 1];
457
+ + teamMemberList.pop();
458
+ + break;
459
+ + }
460
+ + }
461
+ + }
462
+ +
463
+ teamMembers[_team] = _enabled;
464
+ }
465
+ +
466
+ + function getTeamMembers() external view returns (address[] memory) {
467
+ + return teamMemberList;
468
+ + }
469
+ ```
470
+
471
+ ---
472
+
473
+ ## 🔵 LOW SEVERITY & INFORMATIONAL
474
+
475
+ ### [65] 🔵 **LOW: Missing Events for Critical State Changes**
476
+
477
+ Several critical functions don't emit events:
478
+ - `setTeamMember()` - No event when team member added/removed
479
+ - `clearStuckBalance()` - No event when ETH withdrawn
480
+ - `openTrading()` - No event when trading enabled
481
+ - `toggleTransferTax()` - No event when transfer tax toggled
482
+
483
+ **Recommendation**: Add events for all state-changing functions.
484
+
485
+ ---
486
+
487
+ ### [60] 🔵 **LOW: Inconsistent Use of tx.origin**
488
+
489
+ **Location**: `blacklistWallets()` function
490
+
491
+ ```solidity
492
+ emit WalletBlacklisted(tx.origin, _wallets[i], block.number);
493
+ ```
494
+
495
+ Using `tx.origin` instead of `msg.sender` can be misleading and is generally discouraged.
496
+
497
+ **Recommendation**:
498
+ ```diff
499
+ - emit WalletBlacklisted(tx.origin, _wallets[i], block.number);
500
+ + emit WalletBlacklisted(msg.sender, _wallets[i], block.number);
501
+ ```
502
+
503
+ ---
504
+
505
+ ### [55] 🔵 **INFO: Hardcoded Fee Receiver Addresses**
506
+
507
+ **Location**: Constructor
508
+
509
+ ```solidity
510
+ address payable public liquidityFeeReceiver = payable(0xa75bFFD82FFE8A5064A5b6122448221aCEbCf950);
511
+ address payable public marketingFeeReceiver = payable(0xa75bFFD82FFE8A5064A5b6122448221aCEbCf950);
512
+ ```
513
+
514
+ Both receivers point to the same address. While this can be changed later, it's worth noting for transparency.
515
+
516
+ ---
517
+
518
+ ### [50] 🔵 **INFO: No Pause Mechanism**
519
+
520
+ The contract has no emergency pause function. If a critical bug is discovered, there's no way to stop trading temporarily.
521
+
522
+ **Recommendation**: Consider adding OpenZeppelin's Pausable pattern.
523
+
524
+ ---
525
+
526
+ ## 📊 Centralization Risks Summary
527
+
528
+ | Function | Risk | Impact |
529
+ |----------|------|--------|
530
+ | `setFees()` | 🔴 CRITICAL | Can set 100% fees, make token untradeable |
531
+ | `blacklistWallets()` | 🔴 CRITICAL | Can freeze any wallet permanently |
532
+ | `clearStuckBalance()` | 🔴 HIGH | Can drain all contract ETH |
533
+ | `setTxLimit()` | 🟠 HIGH | Can make trading impossible |
534
+ | `setMaxWallet()` | 🟠 HIGH | Can prevent buying |
535
+ | `setTeamMember()` | 🟡 MEDIUM | Can add unlimited team members |
536
+ | `openTrading()` | 🟡 MEDIUM | Team controls when trading starts |
537
+ | `renounceOwnership()` | ⚠️ WARNING | Owner can renounce, but team still has power |
538
+
539
+ ---
540
+
541
+ ## 🚨 Rug Pull Risk Assessment
542
+
543
+ **Overall Risk**: 🔴 **HIGH**
544
+
545
+ ### Red Flags:
546
+
547
+ 1. ✅ **60% Sell Tax** - Extreme exit barrier
548
+ 2. ✅ **Unlimited Blacklist Power** - Can freeze funds
549
+ 3. ✅ **No Fee Limits** - Can set 100% fees
550
+ 4. ✅ **ETH Drain Function** - Can steal accumulated fees
551
+ 5. ✅ **Team Powers** - Multiple people with critical access
552
+ 6. ✅ **No Timelock** - All changes instant
553
+ 7. ✅ **No Governance** - Pure centralized control
554
+
555
+ ### Rug Pull Scenarios:
556
+
557
+ **Scenario 1: Fee Rug Pull**
558
+ ```
559
+ 1. Users buy tokens (5% fee)
560
+ 2. Price increases
561
+ 3. Owner sets sell fee to 100%
562
+ 4. Users cannot sell
563
+ 5. Owner/team sells their tokens
564
+ 6. Owner drains accumulated fees via clearStuckBalance()
565
+ ```
566
+
567
+ **Scenario 2: Blacklist Rug Pull**
568
+ ```
569
+ 1. Users buy tokens
570
+ 2. Large holders identified
571
+ 3. Team blacklists large holders
572
+ 4. Large holders cannot sell
573
+ 5. Team dumps their tokens
574
+ 6. Price crashes, blacklisted users lose everything
575
+ ```
576
+
577
+ **Scenario 3: Limit Rug Pull**
578
+ ```
579
+ 1. Users buy tokens
580
+ 2. Owner sets transaction limits to 0.01%
581
+ 3. Users can only sell tiny amounts
582
+ 4. Team sells large amounts (they're exempt)
583
+ 5. Price crashes before users can exit
584
+ ```
585
+
586
+ ---
587
+
588
+ ## 🎯 Recommendations Summary
589
+
590
+ ### Critical (Must Fix):
591
+
592
+ 1. **Add Maximum Fee Limits**
593
+ - Buy fee max: 10%
594
+ - Sell fee max: 10%
595
+ - Reduce current 60% sell fee to 5%
596
+
597
+ 2. **Add Blacklist Timelock**
598
+ - 24-hour delay before blacklist takes effect
599
+ - Limit number of wallets that can be blacklisted
600
+ - Add appeal mechanism
601
+
602
+ 3. **Restrict ETH Withdrawal**
603
+ - Only allow withdrawing to fee receivers
604
+ - Add maximum percentage limit (10%)
605
+ - Add timelock
606
+
607
+ 4. **Add Transaction Limit Minimums**
608
+ - Minimum 0.1% of supply per transaction
609
+ - Prevent setting limits too low
610
+
611
+ ### High Priority:
612
+
613
+ 5. **Add Timelock for Critical Functions**
614
+ - Fee changes: 24-hour delay
615
+ - Limit changes: 24-hour delay
616
+ - Team member additions: 24-hour delay
617
+
618
+ 6. **Improve Transparency**
619
+ - Add events for all state changes
620
+ - Make team member list public
621
+ - Add getter functions for all settings
622
+
623
+ 7. **Add Emergency Pause**
624
+ - Implement pausable pattern
625
+ - Require multisig for pause/unpause
626
+
627
+ ### Medium Priority:
628
+
629
+ 8. **Fix Reentrancy Pattern**
630
+ - Move state changes before external calls
631
+ - Add ReentrancyGuard from OpenZeppelin
632
+
633
+ 9. **Improve Error Handling**
634
+ - Revert on failed marketing transfer
635
+ - Add proper error messages
636
+
637
+ 10. **Limit Airdrop Function**
638
+ - Max 200 recipients per call
639
+ - Max 10% of supply per airdrop
640
+
641
+ ---
642
+
643
+ ## 📈 Gas Optimization Opportunities
644
+
645
+ 1. **Pack Storage Variables**: Some bool and uint256 variables could be packed
646
+ 2. **Cache Array Length**: In loops, cache `addresses.length`
647
+ 3. **Use Unchecked**: For counter increments in loops (Solidity 0.8.17)
648
+
649
+ ---
650
+
651
+ ## ✅ Positive Aspects
652
+
653
+ 1. ✅ Uses Solidity 0.8.17 (built-in overflow protection)
654
+ 2. ✅ Standard ERC20 implementation
655
+ 3. ✅ Reasonable initial limits (1% max transaction, 1% max wallet)
656
+ 4. ✅ SwapBack rate limiting to prevent MEV
657
+ 5. ✅ Proper use of modifiers for access control
658
+ 6. ✅ Events for important actions
659
+
660
+ ---
661
+
662
+ ## 🎓 Conclusion
663
+
664
+ The Destra Network token contract is **functional but contains significant centralization risks** that could lead to rug pulls or user fund loss.
665
+
666
+ ### Risk Summary:
667
+
668
+ | Category | Risk Level | Details |
669
+ |----------|-----------|---------|
670
+ | Rug Pull Risk | 🔴 HIGH | 60% sell tax, unlimited blacklist, no limits on fees |
671
+ | Centralization | 🔴 HIGH | Owner and team have excessive power |
672
+ | Code Quality | 🟢 GOOD | Clean code, standard patterns |
673
+ | Gas Efficiency | 🟡 MEDIUM | Some optimization opportunities |
674
+ | Documentation | 🟡 MEDIUM | Basic comments, could be improved |
675
+
676
+ ### Final Verdict:
677
+
678
+ **NOT RECOMMENDED FOR INVESTMENT** without significant changes to reduce centralization and add protections for users.
679
+
680
+ ### For Users:
681
+
682
+ ⚠️ **HIGH RISK** - Be aware of:
683
+ - 60% sell tax (you lose 60% when selling)
684
+ - Team can blacklist your wallet anytime
685
+ - Team can change fees to 100% anytime
686
+ - No governance or timelock protections
687
+
688
+ ### For Developers:
689
+
690
+ Implement the critical recommendations above, especially:
691
+ 1. Reduce sell tax to reasonable level (5-10%)
692
+ 2. Add maximum fee limits
693
+ 3. Add timelock for critical functions
694
+ 4. Restrict blacklist power
695
+ 5. Add transparency features
696
+
697
+ ---
698
+
699
+ **Audit Date**: March 24, 2026
700
+ **Auditor**: Security Research Team
701
+ **Status**: ⚠️ HIGH RISK - SIGNIFICANT ISSUES FOUND
702
+
703
+ ---
704
+
705
+ *This audit is for educational and informational purposes. Always conduct your own research and consider multiple audits before investing.*