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,647 @@
1
+ # Unknown Token (Decompiled) Security Audit Report
2
+
3
+ **Contract**: Unknown ERC20 Token (Decompiled Bytecode)
4
+ **Type**: ERC20 Token with Minting, Burning, Pausing, Capped Supply, Role-Based Access Control
5
+ **Compiler**: Solidity 0.6.6
6
+ **Decompiled**: March 12, 2026
7
+ **Audit Date**: March 24, 2026
8
+ **Auditor**: Kiro AI Security Analysis
9
+
10
+ ---
11
+
12
+ ## Executive Summary
13
+
14
+ **Risk Level**: 🔴 **CRITICAL** (Arbitrary Cap Manipulation)
15
+
16
+ This is a decompiled ERC20 token based on OpenZeppelin's ERC20PresetMinterPauser with a capped supply mechanism. However, it contains a **CRITICAL VULNERABILITY** that allows MINTER_ROLE holders to arbitrarily change the supply cap, effectively making the "capped" supply meaningless.
17
+
18
+ **Key Characteristics**:
19
+ 1. **CRITICAL FLAW**: `changeCap()` function allows unlimited cap increases
20
+ 2. **ROLE-BASED**: Uses OpenZeppelin AccessControl (MINTER_ROLE, PAUSER_ROLE, DEFAULT_ADMIN_ROLE)
21
+ 3. **PAUSABLE**: Can pause all transfers
22
+ 4. **MINTABLE**: MINTER_ROLE can mint new tokens
23
+ 5. **BURNABLE**: Anyone can burn their own tokens
24
+ 6. **CAPPED**: Has a supply cap (but it's bypassable via changeCap)
25
+
26
+ **Purpose**: Appears to be a managed token with supply controls, but the controls are broken.
27
+
28
+ ---
29
+
30
+ ## Contract Overview
31
+
32
+ **Token Details**:
33
+ - **Name**: Unknown (stored in `_name`)
34
+ - **Symbol**: Unknown (stored in `_symbol`)
35
+ - **Decimals**: Stored in `_decimals` (likely 18)
36
+ - **Total Supply**: Variable (mintable up to cap)
37
+ - **Cap**: Variable (can be changed by MINTER_ROLE)
38
+
39
+ **Architecture**:
40
+ - Based on OpenZeppelin ERC20PresetMinterPauser
41
+ - Custom `changeCap()` function added
42
+ - Role-based access control
43
+ - Pausable transfers
44
+ - Capped supply (but bypassable)
45
+
46
+ ---
47
+
48
+ ## CRITICAL VULNERABILITIES
49
+
50
+ ### 🔴 CRITICAL #1: Arbitrary Supply Cap Manipulation
51
+
52
+ **Severity**: CRITICAL
53
+ **Function**: `changeCap(uint256)`
54
+ **Impact**: Complete bypass of supply cap mechanism
55
+
56
+ **Vulnerable Code**:
57
+ ```solidity
58
+ function changeCap(uint256 varg0) public payable {
59
+ require(msg.data.length - 4 >= 32);
60
+ require(bool(_getRoleAdmin[keccak256('MINTER_ROLE')].field1[msg.sender]),
61
+ Error('ERC20PresetMinterPauser: must have minter role to mint'));
62
+ _cap = varg0; // ❌ NO VALIDATION - Can set to ANY value
63
+ }
64
+ ```
65
+
66
+ **The Problem**:
67
+ 1. MINTER_ROLE can call `changeCap()` with ANY value
68
+ 2. No check that new cap >= current supply
69
+ 3. No check that new cap >= old cap
70
+ 4. No maximum cap limit
71
+ 5. Can set cap to `type(uint256).max` (infinite supply)
72
+ 6. Can even set cap BELOW current supply (breaks invariants)
73
+
74
+ **Attack Scenario**:
75
+ ```solidity
76
+ // Initial state: cap = 1,000,000 tokens
77
+ // Current supply: 500,000 tokens
78
+
79
+ // Attacker with MINTER_ROLE:
80
+ changeCap(type(uint256).max); // Set cap to maximum uint256
81
+ mint(attacker, 1e30); // Mint 1 trillion trillion tokens
82
+ // Supply cap is now meaningless
83
+ ```
84
+
85
+ **Impact**:
86
+ - **UNLIMITED INFLATION**: Minter can create infinite tokens
87
+ - **RUG PULL RISK**: Minter can mint unlimited tokens and dump
88
+ - **FALSE ADVERTISING**: Token claims to be "capped" but isn't
89
+ - **INVESTOR DECEPTION**: Users think supply is limited
90
+ - **COMPLETE CENTRALIZATION**: Minter has god-mode powers
91
+
92
+ **Why This is Critical**:
93
+ The entire purpose of a "capped" token is to limit supply. This function completely defeats that purpose. It's like having a "fixed supply" token where the owner can change the supply at will.
94
+
95
+ ---
96
+
97
+ ### 🔴 CRITICAL #2: Cap Can Be Set Below Current Supply
98
+
99
+ **Severity**: HIGH
100
+ **Function**: `changeCap(uint256)`
101
+ **Impact**: Breaks contract invariants, potential DoS
102
+
103
+ **The Problem**:
104
+ ```solidity
105
+ function changeCap(uint256 varg0) public payable {
106
+ _cap = varg0; // ❌ No check: varg0 >= _totalSupply
107
+ }
108
+ ```
109
+
110
+ **Attack Scenario**:
111
+ ```solidity
112
+ // Current state:
113
+ // _totalSupply = 1,000,000
114
+ // _cap = 2,000,000
115
+
116
+ // Malicious/incompetent MINTER_ROLE:
117
+ changeCap(500000); // Set cap BELOW current supply
118
+
119
+ // Now: _totalSupply (1M) > _cap (500K)
120
+ // This breaks the fundamental invariant: totalSupply <= cap
121
+
122
+ // Result: No more minting possible (DoS)
123
+ mint(user, 1); // ❌ REVERTS: "ERC20Capped: cap exceeded"
124
+ ```
125
+
126
+ **Impact**:
127
+ - **DENIAL OF SERVICE**: No more minting possible
128
+ - **BROKEN INVARIANTS**: totalSupply > cap (should never happen)
129
+ - **LOGIC ERRORS**: Contract in invalid state
130
+ - **POTENTIAL EXPLOITS**: Other functions may assume totalSupply <= cap
131
+
132
+ ---
133
+
134
+ ## HIGH SEVERITY ISSUES
135
+
136
+ ### 🟠 HIGH #1: Extreme Centralization - MINTER_ROLE
137
+
138
+ **Severity**: HIGH
139
+ **Impact**: Complete control over token supply
140
+
141
+ **The Problem**:
142
+ MINTER_ROLE can:
143
+ 1. Mint unlimited tokens (via changeCap + mint)
144
+ 2. Change the supply cap arbitrarily
145
+ 3. Mint to any address
146
+ 4. Dilute all holders
147
+
148
+ **This is essentially an "owner can mint infinite tokens" vulnerability.**
149
+
150
+ ---
151
+
152
+ ### 🟠 HIGH #2: Extreme Centralization - PAUSER_ROLE
153
+
154
+ **Severity**: HIGH
155
+ **Impact**: Can freeze all token transfers
156
+
157
+ **The Problem**:
158
+ ```solidity
159
+ function pause() public payable {
160
+ require(bool(_getRoleAdmin[keccak256('PAUSER_ROLE')].field1[msg.sender]),
161
+ Error('ERC20PresetMinterPauser: must have pauser role to pause'));
162
+ require(!_paused, Error('Pausable: paused'));
163
+ _paused = 1;
164
+ emit Paused(msg.sender);
165
+ }
166
+ ```
167
+
168
+ PAUSER_ROLE can:
169
+ 1. Pause all transfers indefinitely
170
+ 2. Lock all tokens (no one can transfer)
171
+ 3. Prevent users from selling
172
+ 4. Manipulate markets (pause before bad news)
173
+
174
+ **Attack Scenario**:
175
+ ```solidity
176
+ // PAUSER_ROLE sees users trying to sell
177
+ pause(); // Freeze all transfers
178
+ // Users cannot sell, price crashes
179
+ unpause(); // Unfreeze after damage done
180
+ ```
181
+
182
+ ---
183
+
184
+ ### 🟠 HIGH #3: Role Admin Can Grant Themselves Any Role
185
+
186
+ **Severity**: HIGH
187
+ **Impact**: Single point of failure
188
+
189
+ **The Problem**:
190
+ DEFAULT_ADMIN_ROLE can:
191
+ 1. Grant themselves MINTER_ROLE
192
+ 2. Grant themselves PAUSER_ROLE
193
+ 3. Grant any role to any address
194
+ 4. Revoke roles from others
195
+
196
+ **This means a single compromised admin key = complete control.**
197
+
198
+ ---
199
+
200
+ ## MEDIUM SEVERITY ISSUES
201
+
202
+ ### 🟡 MEDIUM #1: No Role Renunciation for Admin
203
+
204
+ **Severity**: MEDIUM
205
+ **Impact**: Cannot fully decentralize
206
+
207
+ **The Problem**:
208
+ - DEFAULT_ADMIN_ROLE cannot be renounced for all roles
209
+ - No way to make the contract fully decentralized
210
+ - Admin always has ultimate control
211
+
212
+ ---
213
+
214
+ ### 🟡 MEDIUM #2: No Events for Cap Changes
215
+
216
+ **Severity**: MEDIUM
217
+ **Impact**: Lack of transparency
218
+
219
+ **The Problem**:
220
+ ```solidity
221
+ function changeCap(uint256 varg0) public payable {
222
+ _cap = varg0; // ❌ No event emitted
223
+ }
224
+ ```
225
+
226
+ **Impact**:
227
+ - Users cannot easily detect cap changes
228
+ - No on-chain audit trail
229
+ - Harder to monitor for malicious behavior
230
+
231
+ ---
232
+
233
+ ## Code Analysis
234
+
235
+ ### Contract Structure
236
+
237
+ This appears to be based on OpenZeppelin's ERC20PresetMinterPauser with a custom `changeCap()` function added:
238
+
239
+ ```solidity
240
+ // Standard OpenZeppelin components:
241
+ - ERC20 (base token functionality)
242
+ - AccessControl (role-based permissions)
243
+ - ERC20Pausable (pausable transfers)
244
+ - ERC20Capped (supply cap - but broken by changeCap)
245
+
246
+ // Custom addition:
247
+ - changeCap() function (CRITICAL VULNERABILITY)
248
+ ```
249
+
250
+ ---
251
+
252
+ ### Key Functions Analysis
253
+
254
+ #### 1. mint() - Controlled Minting
255
+
256
+ ```solidity
257
+ function mint(address to, uint256 amount) public payable {
258
+ require(bool(_getRoleAdmin[keccak256('MINTER_ROLE')].field1[msg.sender]),
259
+ Error('ERC20PresetMinterPauser: must have minter role to mint'));
260
+ require(to, Error('ERC20: mint to the zero address'));
261
+ 0x144c(amount, to, 0); // Checks pause and cap
262
+ v0 = _SafeAdd(amount, _totalSupply);
263
+ _totalSupply = v0;
264
+ v1 = _SafeAdd(amount, _balanceOf[to]);
265
+ _balanceOf[to] = v1;
266
+ emit Transfer(0, to, amount);
267
+ }
268
+ ```
269
+
270
+ **Analysis**:
271
+ - ✅ Requires MINTER_ROLE
272
+ - ✅ Checks zero address
273
+ - ✅ Checks cap (via 0x144c)
274
+ - ✅ Checks pause status
275
+ - ❌ But cap can be changed arbitrarily via changeCap()
276
+
277
+ ---
278
+
279
+ #### 2. changeCap() - THE CRITICAL VULNERABILITY
280
+
281
+ ```solidity
282
+ function changeCap(uint256 varg0) public payable {
283
+ require(msg.data.length - 4 >= 32);
284
+ require(bool(_getRoleAdmin[keccak256('MINTER_ROLE')].field1[msg.sender]),
285
+ Error('ERC20PresetMinterPauser: must have minter role to mint'));
286
+ _cap = varg0; // ❌❌❌ CRITICAL: No validation
287
+ }
288
+ ```
289
+
290
+ **What's Wrong**:
291
+ 1. ❌ No check: `varg0 >= _totalSupply`
292
+ 2. ❌ No check: `varg0 >= _cap` (can decrease)
293
+ 3. ❌ No maximum cap limit
294
+ 4. ❌ No event emitted
295
+ 5. ❌ No timelock or delay
296
+ 6. ❌ No multi-sig requirement
297
+ 7. ❌ Can be called repeatedly
298
+
299
+ **This function should NOT exist, or should have strict validation.**
300
+
301
+ ---
302
+
303
+ #### 3. pause() / unpause() - Transfer Control
304
+
305
+ ```solidity
306
+ function pause() public payable {
307
+ require(bool(_getRoleAdmin[keccak256('PAUSER_ROLE')].field1[msg.sender]),
308
+ Error('ERC20PresetMinterPauser: must have pauser role to pause'));
309
+ require(!_paused, Error('Pausable: paused'));
310
+ _paused = 1;
311
+ emit Paused(msg.sender);
312
+ }
313
+
314
+ function unpause() public payable {
315
+ require(bool(_getRoleAdmin[keccak256('PAUSER_ROLE')].field1[msg.sender]),
316
+ Error('ERC20PresetMinterPauser: must have pauser role to unpause'));
317
+ require(_paused, Error('Pausable: not paused'));
318
+ _paused = 0;
319
+ emit Unpaused(msg.sender);
320
+ }
321
+ ```
322
+
323
+ **Analysis**:
324
+ - ✅ Proper role checks
325
+ - ✅ Emits events
326
+ - ✅ State validation
327
+ - ❌ But gives PAUSER_ROLE too much power
328
+
329
+ ---
330
+
331
+ #### 4. burn() / burnFrom() - Token Burning
332
+
333
+ ```solidity
334
+ function burn(uint256 amount) public payable {
335
+ 0x1290(amount, msg.sender);
336
+ }
337
+
338
+ function burnFrom(address account, uint256 amount) public payable {
339
+ v0 = _SafeSub('ERC20: burn amount exceeds allowance', amount, _allowance[account][msg.sender]);
340
+ 0xcca(v0, msg.sender, account);
341
+ 0x1290(amount, account);
342
+ }
343
+ ```
344
+
345
+ **Analysis**:
346
+ - ✅ Anyone can burn their own tokens
347
+ - ✅ Can burn from others with allowance
348
+ - ✅ Proper checks
349
+ - ✅ Reduces total supply
350
+
351
+ ---
352
+
353
+ ### Internal Function Analysis
354
+
355
+ #### 0x144c() - Before Token Transfer Hook
356
+
357
+ ```solidity
358
+ function 0x144c(uint256 varg0, uint256 varg1, address varg2) private {
359
+ require(!_paused, Error('ERC20Pausable: token transfer while paused'));
360
+ if (varg2) {
361
+ return ;
362
+ } else {
363
+ v0 = _SafeAdd(varg0, _totalSupply);
364
+ require(v0 <= _cap, Error('ERC20Capped: cap exceeded'));
365
+ return ;
366
+ }
367
+ }
368
+ ```
369
+
370
+ **Analysis**:
371
+ - ✅ Checks pause status
372
+ - ✅ Checks cap on minting (when varg2 == 0)
373
+ - ✅ Proper validation
374
+ - ❌ But cap can be changed via changeCap()
375
+
376
+ ---
377
+
378
+ ## Risk Assessment
379
+
380
+ ### Rug Pull Risk: 🔴 CRITICAL
381
+ - MINTER_ROLE can mint unlimited tokens via changeCap()
382
+ - Can dump infinite tokens on market
383
+ - Can dilute all holders to zero
384
+ - **This is a rug pull waiting to happen**
385
+
386
+ ### Centralization Risk: 🔴 CRITICAL
387
+ - DEFAULT_ADMIN_ROLE has complete control
388
+ - MINTER_ROLE can create infinite supply
389
+ - PAUSER_ROLE can freeze all transfers
390
+ - Single compromised key = total loss
391
+
392
+ ### Smart Contract Risk: 🔴 CRITICAL
393
+ - changeCap() function is fundamentally broken
394
+ - No validation on cap changes
395
+ - Can set cap below current supply
396
+ - Breaks contract invariants
397
+
398
+ ### Market Risk: 🔴 CRITICAL
399
+ - "Capped supply" is false advertising
400
+ - Supply can be inflated at any time
401
+ - Investors are being deceived
402
+ - Regulatory risk (securities fraud?)
403
+
404
+ ---
405
+
406
+ ## Comparison to Other Tokens
407
+
408
+ ### vs. DomiToken (Previous Audit)
409
+ - ❌ **MUCH WORSE**: DomiToken has no owner, this has god-mode roles
410
+ - ❌ **MUCH WORSE**: DomiToken has fixed supply, this has unlimited
411
+ - ❌ **MUCH WORSE**: DomiToken is safe, this is a rug pull risk
412
+
413
+ ### vs. PAAL AI (Previous Audit)
414
+ - ❌ **SIMILAR**: Both have hidden backdoors
415
+ - ❌ **SIMILAR**: Both have centralization risks
416
+ - ❌ **WORSE**: This can inflate supply, PAAL "only" had tax manipulation
417
+
418
+ ### vs. XFI Staking (Previous Audit)
419
+ - ❌ **DIFFERENT**: XFI Staking had double-counting bug, this has intentional backdoor
420
+ - ❌ **WORSE**: This affects the token itself, not just staking
421
+
422
+ ---
423
+
424
+ ## Exploitability Assessment
425
+
426
+ ### Can MINTER_ROLE Exploit This?
427
+
428
+ **YES - EASILY**:
429
+
430
+ ```solidity
431
+ // Step 1: Increase cap to maximum
432
+ changeCap(type(uint256).max);
433
+
434
+ // Step 2: Mint unlimited tokens
435
+ mint(attacker, 1e30); // 1 trillion trillion tokens
436
+
437
+ // Step 3: Dump on market
438
+ // Sell tokens, crash price, profit
439
+ ```
440
+
441
+ **This is trivial to exploit and requires no special skills.**
442
+
443
+ ---
444
+
445
+ ### Can PAUSER_ROLE Exploit This?
446
+
447
+ **YES**:
448
+
449
+ ```solidity
450
+ // Market manipulation:
451
+ pause(); // Freeze all transfers
452
+ // Wait for panic, price crashes
453
+ unpause(); // Unfreeze
454
+ // Buy cheap tokens
455
+ ```
456
+
457
+ ---
458
+
459
+ ### Can DEFAULT_ADMIN_ROLE Exploit This?
460
+
461
+ **YES - COMPLETE CONTROL**:
462
+
463
+ ```solidity
464
+ // Grant themselves all roles
465
+ grantRole(MINTER_ROLE, admin);
466
+ grantRole(PAUSER_ROLE, admin);
467
+
468
+ // Now has all powers
469
+ changeCap(type(uint256).max);
470
+ mint(admin, 1e30);
471
+ pause();
472
+ // Complete control
473
+ ```
474
+
475
+ ---
476
+
477
+ ## Recommendations
478
+
479
+ ### CRITICAL - Fix changeCap()
480
+
481
+ **Option 1: Remove the function entirely** (RECOMMENDED)
482
+ ```solidity
483
+ // Delete changeCap() function
484
+ // Make cap immutable after deployment
485
+ ```
486
+
487
+ **Option 2: Add strict validation**
488
+ ```solidity
489
+ function changeCap(uint256 newCap) public {
490
+ require(hasRole(MINTER_ROLE, msg.sender), "Must have minter role");
491
+ require(newCap >= _totalSupply, "Cap cannot be below current supply");
492
+ require(newCap >= _cap, "Cap can only increase");
493
+ require(newCap <= _cap * 2, "Cap cannot more than double");
494
+ require(block.timestamp >= lastCapChange + 30 days, "Must wait 30 days");
495
+
496
+ uint256 oldCap = _cap;
497
+ _cap = newCap;
498
+ lastCapChange = block.timestamp;
499
+
500
+ emit CapChanged(oldCap, newCap, msg.sender);
501
+ }
502
+ ```
503
+
504
+ **Option 3: Use timelock + multi-sig**
505
+ ```solidity
506
+ // Require 2-of-3 multi-sig + 7 day timelock for cap changes
507
+ ```
508
+
509
+ ---
510
+
511
+ ### HIGH - Reduce Centralization
512
+
513
+ 1. **Use Multi-Sig for Admin Roles**
514
+ - Require 3-of-5 multi-sig for DEFAULT_ADMIN_ROLE
515
+ - Require 2-of-3 multi-sig for MINTER_ROLE
516
+
517
+ 2. **Add Timelocks**
518
+ - 7-day timelock for role grants
519
+ - 3-day timelock for pause
520
+ - 30-day timelock for cap changes
521
+
522
+ 3. **Limit Minting**
523
+ - Max mint per transaction
524
+ - Max mint per day
525
+ - Cooldown between mints
526
+
527
+ 4. **Add Transparency**
528
+ - Emit events for all role changes
529
+ - Emit events for cap changes
530
+ - Emit events for pause/unpause
531
+
532
+ ---
533
+
534
+ ### MEDIUM - Add Safety Features
535
+
536
+ 1. **Emergency Stop**
537
+ - Separate emergency pause (different from regular pause)
538
+ - Requires multiple signatures
539
+ - Time-limited (auto-unpause after 7 days)
540
+
541
+ 2. **Role Renunciation**
542
+ - Allow admin to renounce all roles
543
+ - Make contract fully decentralized
544
+
545
+ 3. **Audit Trail**
546
+ - Log all privileged operations
547
+ - Make role changes transparent
548
+
549
+ ---
550
+
551
+ ## Code Quality Assessment
552
+
553
+ **Rating**: 🟡 **MEDIUM** (Standard OpenZeppelin, but with critical custom addition)
554
+
555
+ **Strengths**:
556
+ - ✅ Based on OpenZeppelin (trusted base)
557
+ - ✅ Uses AccessControl (role-based permissions)
558
+ - ✅ Pausable (emergency stop)
559
+ - ✅ Burnable (deflationary option)
560
+ - ✅ Proper SafeMath (Solidity 0.6.6)
561
+
562
+ **Critical Weaknesses**:
563
+ - ❌ changeCap() function is fundamentally broken
564
+ - ❌ No validation on cap changes
565
+ - ❌ Extreme centralization
566
+ - ❌ False advertising (claims to be "capped")
567
+
568
+ ---
569
+
570
+ ## Conclusion
571
+
572
+ **VERDICT**: 🔴 **DO NOT USE - CRITICAL VULNERABILITIES**
573
+
574
+ This token has a **CRITICAL VULNERABILITY** that allows MINTER_ROLE to arbitrarily change the supply cap, effectively giving them the ability to mint unlimited tokens. This completely defeats the purpose of having a "capped" supply.
575
+
576
+ **Key Issues**:
577
+ 1. 🔴 **CRITICAL**: changeCap() allows unlimited supply inflation
578
+ 2. 🔴 **CRITICAL**: Cap can be set below current supply (breaks invariants)
579
+ 3. 🔴 **HIGH**: Extreme centralization (MINTER_ROLE = god mode)
580
+ 4. 🔴 **HIGH**: PAUSER_ROLE can freeze all transfers
581
+ 5. 🔴 **HIGH**: Single admin key = complete control
582
+
583
+ **For Users**: **DO NOT BUY THIS TOKEN**
584
+ - The "capped supply" is false advertising
585
+ - MINTER_ROLE can inflate supply at any time
586
+ - High rug pull risk
587
+ - Extreme centralization
588
+ - No investor protection
589
+
590
+ **For Developers**: **DO NOT DEPLOY THIS CONTRACT**
591
+ - Remove changeCap() function entirely
592
+ - Or add strict validation + timelock + multi-sig
593
+ - Reduce centralization
594
+ - Add transparency features
595
+ - Consider making cap immutable
596
+
597
+ **Exploitability**: **TRIVIAL**
598
+ - Any MINTER_ROLE holder can exploit this
599
+ - No special skills required
600
+ - Can mint unlimited tokens in seconds
601
+ - High probability of exploitation
602
+
603
+ **Comparison**: This is **one of the most dangerous tokens** we've audited, similar to PAAL AI in terms of centralization risk, but worse because it affects the core token supply mechanism.
604
+
605
+ ---
606
+
607
+ **Audit Complete** ✓
608
+
609
+ **RECOMMENDATION**: 🔴 **DO NOT USE - CRITICAL VULNERABILITIES**
610
+
611
+ This token should not be used in its current form. The changeCap() function is a critical vulnerability that allows unlimited supply inflation. If you encounter this token, **DO NOT INVEST**.
612
+
613
+ ---
614
+
615
+ ## Technical Details
616
+
617
+ ### Function Signatures
618
+
619
+ Key functions identified:
620
+ - `0x800edb9d` = `changeCap(uint256)` ⚠️ CRITICAL VULNERABILITY
621
+ - `0x40c10f19` = `mint(address,uint256)`
622
+ - `0x8456cb59` = `pause()`
623
+ - `0x3f4ba83a` = `unpause()`
624
+ - `0x42966c68` = `burn(uint256)`
625
+ - `0x79cc6790` = `burnFrom(address,uint256)`
626
+ - `0x355274ea` = `cap()`
627
+
628
+ ### Roles
629
+
630
+ - `DEFAULT_ADMIN_ROLE` = `0x00` (bytes32(0))
631
+ - `MINTER_ROLE` = `keccak256("MINTER_ROLE")`
632
+ - `PAUSER_ROLE` = `keccak256("PAUSER_ROLE")`
633
+
634
+ ### Storage Layout
635
+
636
+ - STORAGE[0] = Role data (AccessControl)
637
+ - STORAGE[1] = Balances mapping
638
+ - STORAGE[2] = Allowances mapping
639
+ - STORAGE[3] = Total supply
640
+ - STORAGE[4] = Token name
641
+ - STORAGE[5] = Token symbol
642
+ - STORAGE[6] = Decimals (byte 0) + Paused (byte 1)
643
+ - STORAGE[7] = Cap ⚠️ Can be changed arbitrarily
644
+
645
+ ---
646
+
647
+ **This is a high-risk token with critical vulnerabilities. Avoid at all costs.** 🔴