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,462 @@
1
+ # pepeCoin - Security Audit Report
2
+
3
+ **Audit Date**: March 24, 2026
4
+ **Contract**: pepeCoin.sol
5
+ **Token Name**: pepeCoin
6
+ **Token Symbol**: pepecoin
7
+ **Compiler**: Solidity ^0.8.0
8
+ **Deployment**: April 28, 2023
9
+ **Type**: Meme Token
10
+
11
+ ---
12
+
13
+ ## Executive Summary
14
+
15
+ pepeCoin is a simple meme token with basic ERC20 functionality plus owner-controlled price tracking and ETH withdrawal. The contract uses OpenZeppelin v4.x and has minimal custom logic.
16
+
17
+ **Overall Risk**: 🟢 **LOW** (Minor issues only)
18
+
19
+ **Key Finding**: The `_tokenPrice` variable is **COMPLETELY USELESS** - it's stored on-chain but never used by any contract logic. It's just a number the owner can change that has no effect on anything.
20
+
21
+ ---
22
+
23
+ ## Contract Overview
24
+
25
+ ```solidity
26
+ contract pepeCoin is ERC20, Ownable {
27
+ uint256 private _totalSupply = 133769420 * (10 ** 18); // ~133M tokens
28
+ uint256 private _tokenPrice = 200000 * (10 ** 18); // Unused variable
29
+
30
+ constructor() ERC20("pepeCoin", "pepecoin") {
31
+ _mint(msg.sender, _totalSupply); // Mint all to deployer
32
+ }
33
+ }
34
+ ```
35
+
36
+ **Supply**: 133,769,420 tokens (meme number reference)
37
+ **Distribution**: 100% to deployer at launch
38
+ **Decimals**: 18 (standard)
39
+
40
+ ---
41
+
42
+ ## Function Analysis
43
+
44
+ ### 1. `withdraw()` - Owner ETH Withdrawal
45
+
46
+ ```solidity
47
+ function withdraw() external onlyOwner {
48
+ uint256 balance = address(this).balance;
49
+ require(balance > 0, "No balance to withdraw");
50
+ payable(msg.sender).transfer(balance);
51
+ }
52
+ ```
53
+
54
+ **Purpose**: Allows owner to withdraw ETH from contract
55
+ **Risk**: 🟢 LOW
56
+
57
+ **Analysis**:
58
+ - Standard withdrawal pattern
59
+ - Only owner can call
60
+ - Uses `.transfer()` (2300 gas limit, safe from reentrancy)
61
+ - No issues
62
+
63
+ **Question**: How does ETH get into the contract?
64
+ - Contract has no `receive()` or `fallback()` function
65
+ - Contract has no payable functions
66
+ - ETH can only arrive via `selfdestruct` from another contract
67
+ - This function is essentially useless unless someone force-sends ETH
68
+
69
+ ### 2. `setTokenPrice()` - Set Price Variable
70
+
71
+ ```solidity
72
+ function setTokenPrice(uint256 newTokenPrice) external onlyOwner {
73
+ require(newTokenPrice > 0, "Token price should be greater than 0");
74
+ _tokenPrice = newTokenPrice;
75
+ }
76
+ ```
77
+
78
+ **Purpose**: Owner can update the `_tokenPrice` variable
79
+ **Risk**: 🟢 NONE
80
+
81
+ **Critical Finding**: **THIS DOES NOTHING**
82
+
83
+ The `_tokenPrice` variable:
84
+ - ❌ Is NOT used in any transfer logic
85
+ - ❌ Does NOT affect fees or taxes
86
+ - ❌ Does NOT control buying/selling
87
+ - ❌ Does NOT interact with any DEX
88
+ - ✅ Can only be read via `getTokenPrice()`
89
+
90
+ **This is purely cosmetic** - it's like writing a number on a piece of paper and calling it "the price". The actual market price is determined by DEX liquidity pools (Uniswap, etc.), not this variable.
91
+
92
+ ### 3. `getTokenPrice()` - Read Price Variable
93
+
94
+ ```solidity
95
+ function getTokenPrice() external view returns (uint256) {
96
+ return _tokenPrice;
97
+ }
98
+ ```
99
+
100
+ **Purpose**: Returns the stored price value
101
+ **Risk**: 🟢 NONE
102
+
103
+ **Analysis**: Just returns the useless `_tokenPrice` variable. External contracts or frontends could read this, but it has no bearing on actual token price.
104
+
105
+ ### 4. `burn()` - Token Burning
106
+
107
+ ```solidity
108
+ function burn(uint256 amount) external {
109
+ require(amount > 0, "Amount to burn should be greater than 0");
110
+ require(balanceOf(msg.sender) >= amount, "Not enough tokens to burn");
111
+ _burn(msg.sender, amount);
112
+ }
113
+ ```
114
+
115
+ **Purpose**: Anyone can burn their own tokens
116
+ **Risk**: 🟢 LOW
117
+
118
+ **Analysis**:
119
+ - Standard burn implementation
120
+ - Users can only burn their own tokens
121
+ - Reduces total supply
122
+ - Deflationary mechanism
123
+ - No issues
124
+
125
+ **Note**: The `balanceOf()` check is redundant - `_burn()` already checks this internally.
126
+
127
+ ---
128
+
129
+ ## Security Analysis
130
+
131
+ ### ✅ STRENGTHS
132
+
133
+ 1. **OpenZeppelin Standard**
134
+ - Uses audited OZ v4.x contracts
135
+ - No custom transfer logic
136
+ - Standard ERC20 implementation
137
+
138
+ 2. **No Honeypot Mechanisms**
139
+ - No transfer restrictions
140
+ - No blacklist
141
+ - No whitelist
142
+ - No hidden fees
143
+ - Anyone can buy and sell freely
144
+
145
+ 3. **No Tax System**
146
+ - No buy tax
147
+ - No sell tax
148
+ - No reflection mechanism
149
+ - Pure ERC20 transfers
150
+
151
+ 4. **Simple and Transparent**
152
+ - Minimal custom code
153
+ - Easy to audit
154
+ - No complex logic
155
+ - Verified on Etherscan
156
+
157
+ 5. **Deflationary Option**
158
+ - Users can burn tokens
159
+ - Reduces supply over time
160
+ - Standard mechanism
161
+
162
+ ### 🟡 MINOR ISSUES
163
+
164
+ #### 1. Useless `_tokenPrice` Variable (INFORMATIONAL)
165
+
166
+ **Issue**: The contract stores and allows updating a "token price" that has no effect on anything.
167
+
168
+ ```solidity
169
+ uint256 private _tokenPrice = 200000 * (10 ** 18); // 200,000 tokens per ETH?
170
+ ```
171
+
172
+ **Problems**:
173
+ - Misleading to users who might think this controls the price
174
+ - Wastes gas storing/updating unused data
175
+ - Could confuse external integrations
176
+ - Initial value (200,000 * 10^18) is nonsensical
177
+
178
+ **Impact**: None (it's not used)
179
+
180
+ **Recommendation**: Remove entirely or document clearly that it's just a reference value.
181
+
182
+ #### 2. Redundant Balance Check (GAS OPTIMIZATION)
183
+
184
+ ```solidity
185
+ require(balanceOf(msg.sender) >= amount, "Not enough tokens to burn");
186
+ _burn(msg.sender, amount); // Already checks balance internally
187
+ ```
188
+
189
+ **Issue**: `_burn()` already checks if the account has enough balance.
190
+
191
+ **Impact**: Wastes ~2,000 gas per burn
192
+
193
+ **Recommendation**: Remove the redundant check.
194
+
195
+ #### 3. Useless `withdraw()` Function (INFORMATIONAL)
196
+
197
+ **Issue**: Contract cannot receive ETH normally (no `receive()`/`fallback()`), so `withdraw()` will almost never have ETH to withdraw.
198
+
199
+ **Impact**: None (function is harmless)
200
+
201
+ **Recommendation**: Either add `receive()` function or remove `withdraw()`.
202
+
203
+ #### 4. Shadow Variable `_totalSupply` (INFORMATIONAL)
204
+
205
+ ```solidity
206
+ uint256 private _totalSupply = 133769420 * (10 ** 18); // Local variable
207
+ ```
208
+
209
+ **Issue**: ERC20 already has a `_totalSupply` state variable. This creates a local variable that shadows it.
210
+
211
+ **Impact**: None (the local variable is only used in constructor to pass to `_mint()`)
212
+
213
+ **Recommendation**: Rename to `INITIAL_SUPPLY` for clarity.
214
+
215
+ ---
216
+
217
+ ## Exploit Analysis
218
+
219
+ ### Can This Contract Be Exploited?
220
+
221
+ **NO** - This is a clean, standard ERC20 token.
222
+
223
+ **Why not exploitable**:
224
+
225
+ 1. ✅ **No Math Bugs**: Uses Solidity 0.8.x (built-in overflow protection)
226
+ 2. ✅ **No Reentrancy**: No external calls in transfer logic
227
+ 3. ✅ **No Access Control Issues**: Only owner functions are properly protected
228
+ 4. ✅ **No Flash Loan Attacks**: No price oracles or lending logic
229
+ 5. ✅ **No Honeypot**: Standard transfer logic, anyone can sell
230
+ 6. ✅ **No Hidden Fees**: Pure ERC20, no taxes
231
+ 7. ✅ **No Blacklist**: No way to freeze accounts
232
+
233
+ **Centralization Risks**:
234
+ - Owner can change `_tokenPrice` (but this does nothing)
235
+ - Owner can withdraw ETH (but contract can't receive ETH normally)
236
+ - Owner CANNOT mint more tokens
237
+ - Owner CANNOT pause transfers
238
+ - Owner CANNOT blacklist addresses
239
+
240
+ ---
241
+
242
+ ## Attack Scenarios
243
+
244
+ ### Scenario 1: Price Manipulation via `setTokenPrice()`
245
+
246
+ ```
247
+ Attacker needs: Owner private key
248
+ Attack: Set _tokenPrice to 0 or 999999999
249
+ Result: Nothing happens (variable is unused)
250
+ Exploitable: ❌ NO
251
+ ```
252
+
253
+ ### Scenario 2: Drain ETH via `withdraw()`
254
+
255
+ ```
256
+ Attacker needs: Owner private key
257
+ Attack: Call withdraw() to steal ETH
258
+ Result: No ETH to steal (contract can't receive ETH)
259
+ Exploitable: ❌ NO
260
+ ```
261
+
262
+ ### Scenario 3: Flash Loan Attack
263
+
264
+ ```
265
+ Attacker: Borrows tokens, manipulates price
266
+ Result: No price-dependent logic to exploit
267
+ Exploitable: ❌ NO
268
+ ```
269
+
270
+ ### Scenario 4: Reentrancy on Burn
271
+
272
+ ```
273
+ Attacker: Calls burn() with malicious contract
274
+ Result: No external calls in burn logic
275
+ Exploitable: ❌ NO
276
+ ```
277
+
278
+ **Conclusion**: No exploits possible. This is a clean token.
279
+
280
+ ---
281
+
282
+ ## Comparison to Other Audited Tokens
283
+
284
+ | Token | Type | Risk Level | Main Issue |
285
+ |-------|------|-----------|------------|
286
+ | pepeCoin | Meme | 🟢 LOW | Useless price variable |
287
+ | DGToken | Standard | 🟡 MEDIUM | Unlimited minting |
288
+ | BeamToken | Governance | 🟡 MEDIUM | Centralized burning |
289
+ | DSync | Scam | 🔴 HIGH | 60% sell tax |
290
+ | LFT | Honeypot | 🔴 CRITICAL | Cannot sell |
291
+ | MOG | Meme | 🟡 MEDIUM | Centralization |
292
+
293
+ **pepeCoin is the cleanest token audited so far** - no significant issues.
294
+
295
+ ---
296
+
297
+ ## Findings Summary
298
+
299
+ | # | Severity | Issue | Impact |
300
+ |---|----------|-------|--------|
301
+ | 1 | 🔵 INFO | Useless `_tokenPrice` variable | None (not used) |
302
+ | 2 | 🔵 INFO | Useless `withdraw()` function | None (no ETH) |
303
+ | 3 | 🔵 INFO | Redundant balance check in `burn()` | Gas waste |
304
+ | 4 | 🔵 INFO | Shadow variable `_totalSupply` | Confusing naming |
305
+
306
+ **Total Issues**: 4 (all informational/gas optimization)
307
+ **Critical Issues**: 0
308
+ **High Issues**: 0
309
+ **Medium Issues**: 0
310
+ **Low Issues**: 0
311
+
312
+ ---
313
+
314
+ ## Recommendations
315
+
316
+ ### For Token Team
317
+
318
+ **Optional Improvements**:
319
+
320
+ 1. **Remove or Document `_tokenPrice`**
321
+ ```solidity
322
+ // Option 1: Remove entirely
323
+ // Delete _tokenPrice, setTokenPrice(), getTokenPrice()
324
+
325
+ // Option 2: Document clearly
326
+ /// @notice Reference price only - does not affect transfers
327
+ /// @dev This is NOT the actual market price
328
+ uint256 private _referencePrice;
329
+ ```
330
+
331
+ 2. **Fix Redundant Check**
332
+ ```solidity
333
+ function burn(uint256 amount) external {
334
+ require(amount > 0, "Amount to burn should be greater than 0");
335
+ _burn(msg.sender, amount); // Remove redundant balanceOf check
336
+ }
337
+ ```
338
+
339
+ 3. **Add `receive()` or Remove `withdraw()`**
340
+ ```solidity
341
+ // Option 1: Add receive function
342
+ receive() external payable {}
343
+
344
+ // Option 2: Remove withdraw() entirely
345
+ ```
346
+
347
+ 4. **Rename Shadow Variable**
348
+ ```solidity
349
+ uint256 private constant INITIAL_SUPPLY = 133769420 * (10 ** 18);
350
+
351
+ constructor() ERC20("pepeCoin", "pepecoin") {
352
+ _mint(msg.sender, INITIAL_SUPPLY);
353
+ }
354
+ ```
355
+
356
+ ### For Users/Investors
357
+
358
+ **Before Buying**:
359
+ - ✅ Check liquidity on DEX (Uniswap, etc.)
360
+ - ✅ Verify contract on Etherscan
361
+ - ✅ Check holder distribution
362
+ - ✅ Understand this is a meme token (high volatility)
363
+
364
+ **Green Flags**:
365
+ - ✅ Clean, standard ERC20
366
+ - ✅ No honeypot mechanisms
367
+ - ✅ No hidden fees or taxes
368
+ - ✅ Verified source code
369
+ - ✅ No owner mint function
370
+
371
+ **Red Flags**:
372
+ - 🟡 Meme token (speculative, no utility)
373
+ - 🟡 100% supply to deployer initially
374
+ - 🟡 Useless price variable (confusing)
375
+
376
+ ---
377
+
378
+ ## Code Quality
379
+
380
+ **Score**: 7/10
381
+
382
+ **Strengths**:
383
+ - Uses OpenZeppelin standards
384
+ - Clean and simple
385
+ - No complex logic
386
+ - Well-commented ASCII art 🐸
387
+
388
+ **Weaknesses**:
389
+ - Useless `_tokenPrice` variable
390
+ - Useless `withdraw()` function
391
+ - Redundant checks
392
+ - Shadow variable naming
393
+
394
+ ---
395
+
396
+ ## Gas Optimization
397
+
398
+ **Minor Optimizations Available**:
399
+
400
+ 1. Remove redundant `balanceOf()` check in `burn()`: ~2,000 gas saved
401
+ 2. Remove unused `_tokenPrice` storage: ~20,000 gas saved on deployment
402
+ 3. Use `constant` for initial supply: ~2,000 gas saved on deployment
403
+
404
+ **Total Savings**: ~24,000 gas on deployment, ~2,000 per burn
405
+
406
+ ---
407
+
408
+ ## Conclusion
409
+
410
+ pepeCoin is a **clean, standard meme token** with no security vulnerabilities. The contract is safe to use and has no exploitable bugs.
411
+
412
+ **The main quirk**: The `_tokenPrice` variable is completely useless and misleading. It's stored on-chain but has zero effect on token functionality. The owner can change it, but it doesn't control the actual market price (which is determined by DEX liquidity).
413
+
414
+ **Final Verdict**: 🟢 **LOW RISK**
415
+
416
+ **Safe to use**: ✅ YES
417
+ **Exploitable**: ❌ NO
418
+ **Honeypot**: ❌ NO
419
+ **Hidden fees**: ❌ NO
420
+ **Can sell**: ✅ YES
421
+
422
+ **This is just a simple meme token** - no tricks, no traps, just basic ERC20 with a useless price variable.
423
+
424
+ ---
425
+
426
+ ## Technical Details
427
+
428
+ **Contract Address**: Check Etherscan (deployed April 28, 2023)
429
+ **Total Supply**: 133,769,420 tokens
430
+ **Decimals**: 18
431
+ **OpenZeppelin Version**: v4.x
432
+ **Verified**: Yes
433
+
434
+ **Inherited Contracts**:
435
+ - `ERC20` (OpenZeppelin)
436
+ - `Ownable` (OpenZeppelin)
437
+ - `Context` (OpenZeppelin)
438
+
439
+ ---
440
+
441
+ ## Fun Facts
442
+
443
+ 1. **Token supply** (133,769,420) is likely a meme reference
444
+ 2. **ASCII art** in comments shows Pepe the Frog
445
+ 3. **Initial "price"** (200,000 * 10^18) is nonsensical and unused
446
+ 4. **Symbol mismatch**: name is "pepeCoin" but symbol is "pepecoin" (usually symbol is shorter)
447
+
448
+ ---
449
+
450
+ ## Files
451
+
452
+ - `pepeCoin.sol` - Token contract
453
+ - `audits/pepeCoin-security-audit-20260324.md` - This audit report
454
+
455
+ ---
456
+
457
+ **Audit Complete**: March 24, 2026
458
+ **Auditor**: Security Analysis
459
+ **Recommendation**: SAFE - Clean meme token with no exploits
460
+
461
+ **TL;DR**: It's just a meme token. No scam, no honeypot, no tricks. The "price" variable is useless decoration. Buy at your own risk (it's a meme coin after all 🐸).
462
+
package/bin/ups ADDED
@@ -0,0 +1,232 @@
1
+ #!/bin/bash
2
+
3
+ # UUPS Proxy Initialization Checker
4
+ # Usage: ./UUPSCHECKER <contract_address> [chain]
5
+ # Chains: eth (default), bsc, opbnb, polygon, arbitrum, optimism
6
+
7
+ # Colors
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ BLUE='\033[0;34m'
12
+ NC='\033[0m' # No Color
13
+
14
+ # Banner
15
+ echo -e "${BLUE}"
16
+ echo "╔══════════════════════════════════════════╗"
17
+ echo "║ UUPS INITIALIZATION CHECKER ║"
18
+ echo "║ Whitehat Bounty Tool ║"
19
+ echo "╚══════════════════════════════════════════╝"
20
+ echo -e "${NC}"
21
+
22
+ # Check if address provided
23
+ if [ -z "$1" ]; then
24
+ echo -e "${RED}[ERROR]${NC} No address provided!"
25
+ echo "Usage: ./UUPSCHECKER <contract_address> [chain]"
26
+ echo "Chains: eth, bsc, opbnb, polygon, arbitrum, optimism"
27
+ exit 1
28
+ fi
29
+
30
+ ADDRESS=$1
31
+ CHAIN=${2:-eth}
32
+
33
+ # Set RPC based on chain
34
+ case $CHAIN in
35
+ eth)
36
+ RPC_URL="https://mainnet.infura.io/v3/db4d2c885bc946b691dbb3d5ef26d9e2"
37
+ EXPLORER="https://etherscan.io/address"
38
+ ;;
39
+ bsc)
40
+ RPC_URL="https://bsc-mainnet.infura.io/v3/db4d2c885bc946b691dbb3d5ef26d9e2"
41
+ EXPLORER="https://bscscan.com/address"
42
+ ;;
43
+ opbnb)
44
+ RPC_URL="https://opbnb-mainnet-rpc.bnbchain.org"
45
+ EXPLORER="https://opbnbscan.com/address"
46
+ ;;
47
+ polygon)
48
+ RPC_URL="https://polygon-mainnet.infura.io/v3/db4d2c885bc946b691dbb3d5ef26d9e2"
49
+ EXPLORER="https://polygonscan.com/address"
50
+ ;;
51
+ arbitrum)
52
+ RPC_URL="https://arbitrum-mainnet.infura.io/v3/db4d2c885bc946b691dbb3d5ef26d9e2"
53
+ EXPLORER="https://arbiscan.io/address"
54
+ ;;
55
+ optimism)
56
+ RPC_URL="https://optimism-mainnet.infura.io/v3/db4d2c885bc946b691dbb3d5ef26d9e2"
57
+ EXPLORER="https://optimistic.etherscan.io/address"
58
+ ;;
59
+ *)
60
+ echo -e "${RED}[ERROR]${NC} Unknown chain: $CHAIN"
61
+ exit 1
62
+ ;;
63
+ esac
64
+
65
+ echo -e "${BLUE}[INFO]${NC} Checking: $ADDRESS"
66
+ echo -e "${BLUE}[INFO]${NC} Chain: $CHAIN"
67
+ echo -e "${BLUE}[INFO]${NC} Explorer: $EXPLORER/$ADDRESS"
68
+ echo ""
69
+
70
+ # EIP-1967 Implementation Slot
71
+ IMPL_SLOT="0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
72
+
73
+ # Check implementation slot
74
+ echo -e "${YELLOW}[1/5]${NC} Reading EIP-1967 implementation slot..."
75
+ IMPL_ADDRESS=$(cast storage $ADDRESS $IMPL_SLOT --rpc-url $RPC_URL 2>/dev/null)
76
+
77
+ if [ -z "$IMPL_ADDRESS" ] || [ "$IMPL_ADDRESS" == "0x0000000000000000000000000000000000000000000000000000000000000000" ]; then
78
+ echo -e "${RED}[RESULT]${NC} Not a proxy or no implementation set"
79
+ exit 0
80
+ fi
81
+
82
+ # Convert to address format
83
+ IMPL_ADDRESS="0x${IMPL_ADDRESS:26:40}"
84
+ echo -e "${GREEN}[✓]${NC} Implementation: $IMPL_ADDRESS"
85
+
86
+ # Check if it's UUPS by looking for proxiableUUID function (definitive UUPS marker)
87
+ echo -e "${YELLOW}[2/5]${NC} Checking if UUPS proxy..."
88
+ UUPS_CHECK=$(cast call $IMPL_ADDRESS "proxiableUUID()(bytes32)" --rpc-url $RPC_URL 2>&1)
89
+
90
+ if [[ $UUPS_CHECK == *"Error"* ]] || [[ $UUPS_CHECK == *"revert"* ]] || [ -z "$UUPS_CHECK" ]; then
91
+ echo -e "${RED}[!] Not UUPS (Transparent Proxy)${NC}"
92
+ IS_UUPS=false
93
+
94
+ # For Transparent Proxy, check admin slot instead
95
+ echo -e "${YELLOW}[2b/5]${NC} Checking Transparent Proxy admin..."
96
+ ADMIN_SLOT="0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"
97
+ ADMIN_ADDRESS=$(cast storage $ADDRESS $ADMIN_SLOT --rpc-url $RPC_URL 2>/dev/null)
98
+
99
+ if [ -z "$ADMIN_ADDRESS" ] || [ "$ADMIN_ADDRESS" == "0x0000000000000000000000000000000000000000000000000000000000000000" ]; then
100
+ echo -e "${RED}[!]${NC} No admin set (VULNERABLE!)"
101
+ ADMIN_ADDRESS="0x0000000000000000000000000000000000000000"
102
+ else
103
+ ADMIN_ADDRESS="0x${ADMIN_ADDRESS:26:40}"
104
+ echo -e "${GREEN}[✓]${NC} Admin: $ADMIN_ADDRESS"
105
+ fi
106
+ else
107
+ echo -e "${BLUE}[✓] UUPS proxy detected!${NC}"
108
+ IS_UUPS=true
109
+ fi
110
+
111
+ # Check owner/admin
112
+ echo -e "${YELLOW}[3/5]${NC} Checking owner/admin..."
113
+
114
+ if [ "$IS_UUPS" = true ]; then
115
+ # For UUPS, check owner on implementation
116
+ OWNER=$(cast call $IMPL_ADDRESS "owner()(address)" --rpc-url $RPC_URL 2>/dev/null)
117
+ else
118
+ # For Transparent, we already have admin from step 2b
119
+ OWNER=$ADMIN_ADDRESS
120
+ fi
121
+
122
+ if [ -z "$OWNER" ] || [ "$OWNER" == "0x0000000000000000000000000000000000000000" ]; then
123
+ echo -e "${RED}[!]${NC} No owner/admin found"
124
+ OWNER="NOT_FOUND"
125
+ else
126
+ echo -e "${GREEN}[✓]${NC} Owner/Admin: $OWNER"
127
+ fi
128
+
129
+ # Check if initialized
130
+ echo -e "${YELLOW}[4/5]${NC} Checking initialization status..."
131
+
132
+ PROXY_INITIALIZED=false
133
+ IMPL_INITIALIZED=false
134
+
135
+ # Check proxy initialization (slot 0 for Initializable)
136
+ PROXY_INIT_SLOT="0x0000000000000000000000000000000000000000000000000000000000000000"
137
+ PROXY_INIT_DATA=$(cast storage $ADDRESS $PROXY_INIT_SLOT --rpc-url $RPC_URL 2>/dev/null)
138
+
139
+ if [ ! -z "$PROXY_INIT_DATA" ] && [ "$PROXY_INIT_DATA" != "0x0000000000000000000000000000000000000000000000000000000000000000" ]; then
140
+ PROXY_INITIALIZED=true
141
+ echo -e "${GREEN}[✓]${NC} Proxy: INITIALIZED"
142
+ else
143
+ echo -e "${YELLOW}[!]${NC} Proxy: NOT INITIALIZED"
144
+ fi
145
+
146
+ # Check implementation initialization
147
+ IMPL_INIT_DATA=$(cast storage $IMPL_ADDRESS $PROXY_INIT_SLOT --rpc-url $RPC_URL 2>/dev/null)
148
+
149
+ if [ ! -z "$IMPL_INIT_DATA" ] && [ "$IMPL_INIT_DATA" != "0x0000000000000000000000000000000000000000000000000000000000000000" ]; then
150
+ IMPL_INITIALIZED=true
151
+ echo -e "${GREEN}[✓]${NC} Implementation: INITIALIZED"
152
+ else
153
+ echo -e "${RED}[!]${NC} Implementation: NOT INITIALIZED"
154
+ fi
155
+
156
+ # Overall initialization status
157
+ if [ "$IS_UUPS" = true ]; then
158
+ # For UUPS, check if owner is set as backup
159
+ if [ "$OWNER" != "NOT_FOUND" ] && [ "$OWNER" != "0x0000000000000000000000000000000000000000" ]; then
160
+ IMPL_INITIALIZED=true
161
+ fi
162
+
163
+ INITIALIZED=$IMPL_INITIALIZED
164
+ else
165
+ # For Transparent Proxy, check if admin is set
166
+ if [ "$ADMIN_ADDRESS" != "0x0000000000000000000000000000000000000000" ] && [ "$ADMIN_ADDRESS" != "NOT_FOUND" ]; then
167
+ INITIALIZED=true
168
+ else
169
+ INITIALIZED=false
170
+ fi
171
+ fi
172
+
173
+ # Get balance
174
+ echo -e "${YELLOW}[5/5]${NC} Checking balance..."
175
+ BALANCE=$(cast balance $ADDRESS --rpc-url $RPC_URL 2>/dev/null)
176
+ BALANCE_ETH=$(echo "scale=4; $BALANCE / 1000000000000000000" | bc 2>/dev/null)
177
+
178
+ if [ -z "$BALANCE_ETH" ]; then
179
+ BALANCE_ETH="0"
180
+ fi
181
+
182
+ echo -e "${GREEN}[✓]${NC} Balance: $BALANCE_ETH ETH"
183
+
184
+ # Final verdict
185
+ echo ""
186
+ echo -e "${BLUE}═══════════════════════════════════════════${NC}"
187
+ echo -e "${BLUE} FINAL VERDICT ${NC}"
188
+ echo -e "${BLUE}═══════════════════════════════════════════${NC}"
189
+
190
+ if [ "$IS_UUPS" = true ]; then
191
+ echo -e "Proxy Type: ${GREEN}UUPS${NC}"
192
+ else
193
+ echo -e "Proxy Type: ${YELLOW}Transparent Proxy${NC}"
194
+ fi
195
+
196
+ echo -e "Implementation: $IMPL_ADDRESS"
197
+
198
+ if [ "$IS_UUPS" = true ]; then
199
+ echo -e "Owner: $OWNER"
200
+ else
201
+ echo -e "Admin: $OWNER"
202
+ fi
203
+
204
+ echo -e "Balance: $BALANCE_ETH ETH"
205
+
206
+ if [ "$INITIALIZED" = true ]; then
207
+ echo -e "Status: ${GREEN}✓ INITIALIZED${NC}"
208
+ echo ""
209
+ echo -e "${GREEN}[SAFE]${NC} Proxy is properly configured"
210
+ else
211
+ echo -e "Status: ${RED}✗ UNINITIALIZED${NC}"
212
+ echo ""
213
+ if [ "$IS_UUPS" = true ]; then
214
+ echo -e "${RED}[VULNERABLE]${NC} UUPS implementation is uninitialized!"
215
+ echo -e "${RED}[EXPLOIT]${NC} Potential takeover vulnerability!"
216
+ echo ""
217
+ echo -e "${YELLOW}Next steps:${NC}"
218
+ echo "1. Try calling initialize() on the implementation"
219
+ echo "2. Check if you can set yourself as owner"
220
+ echo "3. Verify with: cast call $IMPL_ADDRESS \"owner()(address)\" --rpc-url $RPC_URL"
221
+ else
222
+ echo -e "${RED}[VULNERABLE]${NC} Transparent proxy has no admin!"
223
+ echo -e "${RED}[EXPLOIT]${NC} Anyone can call admin functions!"
224
+ echo ""
225
+ echo -e "${YELLOW}Next steps:${NC}"
226
+ echo "1. Try calling admin() on the proxy"
227
+ echo "2. Try calling changeAdmin() to set yourself as admin"
228
+ echo "3. Verify with: cast call $ADDRESS \"admin()(address)\" --rpc-url $RPC_URL"
229
+ fi
230
+ fi
231
+
232
+ echo -e "${BLUE}═══════════════════════════════════════════${NC}"
@@ -0,0 +1,2 @@
1
+ MAINNET_RPC_URL=https://eth.llamarpc.com
2
+ ETHERSCAN_API_KEY=your_api_key_here