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,778 @@
1
+ # SYNC Token Security Audit Report
2
+
3
+ **Contract**: SYNC Token
4
+ **Type**: ERC20 Token with Minting, Burning, Owner Control
5
+ **Compiler**: Solidity 0.6.0
6
+ **Deployment Date**: November 12, 2020
7
+ **Audit Date**: March 24, 2026
8
+ **Auditor**: Kiro AI Security Analysis
9
+
10
+ ---
11
+
12
+ ## Executive Summary
13
+
14
+ **Risk Level**: ๐Ÿ”ด **CRITICAL** (Unlimited Minting by Owner-Controlled Addresses)
15
+
16
+ SYNC is an ERC20 token with a **CRITICAL VULNERABILITY** that allows the owner to grant unlimited minting privileges to any address, enabling infinite token inflation and complete supply manipulation.
17
+
18
+ **Key Characteristics**:
19
+ 1. **CRITICAL FLAW**: Owner can grant minting rights to anyone via `setMintAccess()`
20
+ 2. **UNLIMITED MINTING**: Addresses with mint access can mint infinite tokens
21
+ 3. **OWNER CONTROLLED**: Single owner has complete control
22
+ 4. **INITIAL SUPPLY**: 16 million SYNC tokens
23
+ 5. **BURNABLE**: Anyone can burn their own tokens
24
+ 6. **NO SUPPLY CAP**: No maximum supply limit
25
+
26
+ **Purpose**: Appears to be a token for the "SYNC Powered CryptoDragons" project, but has dangerous centralization.
27
+
28
+ ---
29
+
30
+ ## Contract Overview
31
+
32
+ **Token Details**:
33
+ - **Name**: SYNC
34
+ - **Symbol**: SYNC
35
+ - **Decimals**: 18
36
+ - **Initial Supply**: 16,000,000 SYNC (16 million)
37
+ - **Max Supply**: UNLIMITED (can mint forever)
38
+ - **Owner**: Has complete control over minting privileges
39
+
40
+ **Architecture**:
41
+ - Standard ERC20 implementation
42
+ - Ownable (single owner control)
43
+ - Custom minting system with whitelist
44
+ - Burn functionality
45
+ - ApproveAndCall pattern
46
+
47
+ ---
48
+
49
+ ## CRITICAL VULNERABILITIES
50
+
51
+ ### ๐Ÿ”ด CRITICAL #1: Owner Can Grant Unlimited Minting to Anyone
52
+
53
+ **Severity**: CRITICAL
54
+ **Functions**: `setMintAccess()` + `_mint()`
55
+ **Impact**: Complete control over token supply, unlimited inflation
56
+
57
+ **Vulnerable Code**:
58
+ ```solidity
59
+ mapping (address => bool) public mintContracts;
60
+
61
+ function setMintAccess(address account, bool canMint) public onlyOwner {
62
+ mintContracts[account]=canMint; // โŒ Owner can whitelist ANYONE
63
+ }
64
+
65
+ function _mint(address account, uint256 amount) public isMintContract {
66
+ require(account != address(0), "ERC20: mint to the zero address");
67
+
68
+ _totalSupply = _totalSupply.add(amount); // โŒ NO LIMIT
69
+ balances[account] = balances[account].add(amount);
70
+ emit Transfer(address(0), account, amount);
71
+ }
72
+ ```
73
+
74
+ **The Problem**:
75
+ 1. Owner can call `setMintAccess(attackerAddress, true)` for ANY address
76
+ 2. That address can then call `_mint()` with ANY amount
77
+ 3. No maximum supply cap
78
+ 4. No minting limits per transaction
79
+ 5. No cooldown between mints
80
+ 6. No timelock or delay
81
+ 7. Can mint to any address (including owner's own address)
82
+
83
+ **Attack Scenario #1: Direct Owner Rug Pull**
84
+ ```solidity
85
+ // Owner's attack:
86
+ setMintAccess(owner, true); // Grant themselves minting rights
87
+ _mint(owner, 1e30); // Mint 1 trillion trillion tokens
88
+ // Dump on market, crash price, profit
89
+ ```
90
+
91
+ **Attack Scenario #2: Compromised Mint Contract**
92
+ ```solidity
93
+ // Owner grants minting to a "staking contract"
94
+ setMintAccess(stakingContract, true);
95
+
96
+ // Later, staking contract is exploited or malicious
97
+ stakingContract._mint(attacker, 1e30); // Attacker mints unlimited tokens
98
+ ```
99
+
100
+ **Attack Scenario #3: Insider Rug Pull**
101
+ ```solidity
102
+ // Owner grants minting to team member
103
+ setMintAccess(teamMember, true);
104
+
105
+ // Team member goes rogue
106
+ teamMember._mint(teamMember, 1000000000 * 1e18); // Mint 1 billion tokens
107
+ // Sell all, crash price
108
+ ```
109
+
110
+ **Impact**:
111
+ - **UNLIMITED INFLATION**: Can create infinite tokens
112
+ - **RUG PULL RISK**: Owner or whitelisted addresses can dump unlimited tokens
113
+ - **INVESTOR DECEPTION**: Users think supply is limited to 16M
114
+ - **COMPLETE CENTRALIZATION**: Owner has god-mode powers
115
+ - **SUPPLY MANIPULATION**: Can dilute all holders to zero
116
+
117
+ **Why This is Critical**:
118
+ This is essentially an "owner can mint infinite tokens" vulnerability with an extra step. The owner controls who can mint, and those addresses have unlimited minting power.
119
+
120
+ ---
121
+
122
+ ### ๐Ÿ”ด CRITICAL #2: Public _mint() Function
123
+
124
+ **Severity**: CRITICAL
125
+ **Function**: `_mint()`
126
+ **Impact**: Naming confusion, potential for mistakes
127
+
128
+ **The Problem**:
129
+ ```solidity
130
+ function _mint(address account, uint256 amount) public isMintContract {
131
+ // โŒ Function is PUBLIC but named with underscore (suggests internal)
132
+ }
133
+ ```
134
+
135
+ **Why This is Bad**:
136
+ 1. **NAMING CONVENTION VIOLATION**: Functions starting with `_` are typically internal/private
137
+ 2. **CONFUSION**: Developers might think this is internal and not properly protected
138
+ 3. **MISLEADING**: The underscore suggests it's a helper function, not a public API
139
+ 4. **DANGEROUS**: Public minting function should be clearly named (e.g., `mint()`)
140
+
141
+ **Correct Implementation**:
142
+ ```solidity
143
+ // Should be named without underscore since it's public
144
+ function mint(address account, uint256 amount) public isMintContract {
145
+ require(account != address(0), "ERC20: mint to the zero address");
146
+ _totalSupply = _totalSupply.add(amount);
147
+ balances[account] = balances[account].add(amount);
148
+ emit Transfer(address(0), account, amount);
149
+ }
150
+ ```
151
+
152
+ ---
153
+
154
+ ### ๐Ÿ”ด CRITICAL #3: No Maximum Supply Cap
155
+
156
+ **Severity**: CRITICAL
157
+ **Impact**: Infinite inflation possible
158
+
159
+ **The Problem**:
160
+ ```solidity
161
+ function _mint(address account, uint256 amount) public isMintContract {
162
+ _totalSupply = _totalSupply.add(amount); // โŒ No check: _totalSupply <= MAX_SUPPLY
163
+ balances[account] = balances[account].add(amount);
164
+ emit Transfer(address(0), account, amount);
165
+ }
166
+ ```
167
+
168
+ **Impact**:
169
+ - Can mint beyond any reasonable supply
170
+ - No protection against accidental over-minting
171
+ - No protection against malicious over-minting
172
+ - Supply can grow to `type(uint256).max`
173
+
174
+ **Example**:
175
+ ```solidity
176
+ // Current supply: 16,000,000
177
+ _mint(attacker, type(uint256).max - 16000000e18); // Mint to maximum uint256
178
+ // Now supply is at maximum possible value
179
+ ```
180
+
181
+ ---
182
+
183
+ ## HIGH SEVERITY ISSUES
184
+
185
+ ### ๐ŸŸ  HIGH #1: Extreme Centralization - Single Owner
186
+
187
+ **Severity**: HIGH
188
+ **Impact**: Single point of failure
189
+
190
+ **The Problem**:
191
+ - Single owner controls all minting privileges
192
+ - Owner can grant/revoke minting to anyone
193
+ - Owner can transfer ownership
194
+ - Owner can renounce ownership (but only after damage is done)
195
+
196
+ **Attack Scenarios**:
197
+ 1. **Owner Key Compromised**: Attacker gains owner key, grants themselves minting, mints infinite tokens
198
+ 2. **Malicious Owner**: Owner intentionally rug pulls
199
+ 3. **Owner Coercion**: Owner is forced to grant minting to attacker
200
+ 4. **Owner Mistake**: Owner accidentally grants minting to wrong address
201
+
202
+ ---
203
+
204
+ ### ๐ŸŸ  HIGH #2: No Minting Limits
205
+
206
+ **Severity**: HIGH
207
+ **Impact**: Can mint unlimited tokens in single transaction
208
+
209
+ **The Problem**:
210
+ ```solidity
211
+ function _mint(address account, uint256 amount) public isMintContract {
212
+ // โŒ No check: amount <= MAX_MINT_PER_TX
213
+ // โŒ No check: amount <= MAX_MINT_PER_DAY
214
+ // โŒ No cooldown between mints
215
+ _totalSupply = _totalSupply.add(amount);
216
+ balances[account] = balances[account].add(amount);
217
+ emit Transfer(address(0), account, amount);
218
+ }
219
+ ```
220
+
221
+ **Impact**:
222
+ - Can mint entire supply in one transaction
223
+ - No rate limiting
224
+ - No gradual distribution
225
+ - Instant rug pull possible
226
+
227
+ ---
228
+
229
+ ### ๐ŸŸ  HIGH #3: No Timelock on Minting Privilege Changes
230
+
231
+ **Severity**: HIGH
232
+ **Impact**: Owner can instantly grant minting and rug pull
233
+
234
+ **The Problem**:
235
+ ```solidity
236
+ function setMintAccess(address account, bool canMint) public onlyOwner {
237
+ mintContracts[account]=canMint; // โŒ Instant effect, no delay
238
+ }
239
+ ```
240
+
241
+ **Attack Scenario**:
242
+ ```solidity
243
+ // Block N: Everything looks normal
244
+ // Block N+1: Owner calls setMintAccess(owner, true)
245
+ // Block N+2: Owner calls _mint(owner, 1e30)
246
+ // Block N+3: Owner dumps all tokens
247
+ // Users have no time to react
248
+ ```
249
+
250
+ **Better Implementation**:
251
+ ```solidity
252
+ // Require 7-day timelock before minting privilege takes effect
253
+ mapping(address => uint256) public mintAccessGrantTime;
254
+
255
+ function setMintAccess(address account, bool canMint) public onlyOwner {
256
+ if (canMint) {
257
+ mintAccessGrantTime[account] = block.timestamp + 7 days;
258
+ } else {
259
+ mintAccessGrantTime[account] = 0;
260
+ }
261
+ mintContracts[account] = canMint;
262
+ }
263
+
264
+ modifier isMintContract() {
265
+ require(mintContracts[msg.sender], "calling address is not allowed to mint");
266
+ require(block.timestamp >= mintAccessGrantTime[msg.sender], "mint access not active yet");
267
+ _;
268
+ }
269
+ ```
270
+
271
+ ---
272
+
273
+ ## MEDIUM SEVERITY ISSUES
274
+
275
+ ### ๐ŸŸก MEDIUM #1: approveAndCall() Reentrancy Risk
276
+
277
+ **Severity**: MEDIUM
278
+ **Impact**: Potential reentrancy if called with malicious contract
279
+
280
+ **Vulnerable Code**:
281
+ ```solidity
282
+ function approveAndCall(address spender, uint256 tokens, bytes calldata data) external returns (bool) {
283
+ allowed[msg.sender][spender] = tokens;
284
+ emit Approval(msg.sender, spender, tokens);
285
+ ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data); // โŒ External call
286
+ return true;
287
+ }
288
+ ```
289
+
290
+ **The Problem**:
291
+ 1. Sets allowance
292
+ 2. Emits event
293
+ 3. Makes external call to `spender`
294
+ 4. `spender` could be malicious contract
295
+ 5. Could reenter and exploit
296
+
297
+ **However**: This is mitigated by the fact that:
298
+ - Allowance is already set before external call
299
+ - No state changes after external call
300
+ - Follows Checks-Effects-Interactions pattern
301
+
302
+ **Still risky** because:
303
+ - External call to untrusted contract
304
+ - Could be used in complex attack chains
305
+ - Better to use ReentrancyGuard
306
+
307
+ ---
308
+
309
+ ### ๐ŸŸก MEDIUM #2: No Events for Minting Privilege Changes
310
+
311
+ **Severity**: MEDIUM
312
+ **Impact**: Lack of transparency
313
+
314
+ **The Problem**:
315
+ ```solidity
316
+ function setMintAccess(address account, bool canMint) public onlyOwner {
317
+ mintContracts[account]=canMint; // โŒ No event emitted
318
+ }
319
+ ```
320
+
321
+ **Impact**:
322
+ - Users cannot easily detect when minting privileges are granted
323
+ - No on-chain audit trail
324
+ - Harder to monitor for malicious behavior
325
+ - Reduces transparency
326
+
327
+ **Fix**:
328
+ ```solidity
329
+ event MintAccessChanged(address indexed account, bool canMint);
330
+
331
+ function setMintAccess(address account, bool canMint) public onlyOwner {
332
+ mintContracts[account] = canMint;
333
+ emit MintAccessChanged(account, canMint);
334
+ }
335
+ ```
336
+
337
+ ---
338
+
339
+ ### ๐ŸŸก MEDIUM #3: No Maximum Burn Protection
340
+
341
+ **Severity**: LOW-MEDIUM
342
+ **Impact**: Users could accidentally burn all tokens
343
+
344
+ **The Problem**:
345
+ ```solidity
346
+ function burn(uint256 amount) external {
347
+ require(amount != 0,"must burn more than zero");
348
+ require(amount <= balances[msg.sender],"insufficient balance");
349
+ _totalSupply = _totalSupply.sub(amount);
350
+ balances[msg.sender] = balances[msg.sender].sub(amount);
351
+ emit Transfer(msg.sender, address(0), amount);
352
+ }
353
+ ```
354
+
355
+ **Issue**:
356
+ - No confirmation for large burns
357
+ - User could accidentally burn entire balance
358
+ - No "are you sure?" mechanism
359
+
360
+ **This is minor** because:
361
+ - User explicitly calls burn()
362
+ - It's their own tokens
363
+ - But still, a safety check would be nice
364
+
365
+ ---
366
+
367
+ ## Code Analysis
368
+
369
+ ### Constructor
370
+
371
+ ```solidity
372
+ constructor() public Ownable(){
373
+ balances[msg.sender] = _totalSupply;
374
+ emit Transfer(address(0), msg.sender, _totalSupply);
375
+ }
376
+ ```
377
+
378
+ **Analysis**:
379
+ - โœ… Mints initial 16M tokens to deployer
380
+ - โœ… Emits Transfer event
381
+ - โœ… Sets owner to deployer
382
+ - โœ… Simple and correct
383
+
384
+ ---
385
+
386
+ ### setMintAccess() - THE CRITICAL FUNCTION
387
+
388
+ ```solidity
389
+ function setMintAccess(address account, bool canMint) public onlyOwner {
390
+ mintContracts[account]=canMint;
391
+ }
392
+ ```
393
+
394
+ **Analysis**:
395
+ - โŒ No validation on `account` (could be zero address)
396
+ - โŒ No event emitted
397
+ - โŒ No timelock
398
+ - โŒ No multi-sig requirement
399
+ - โŒ Can be called repeatedly
400
+ - โŒ Instant effect
401
+
402
+ **This function is the root of all evil in this contract.**
403
+
404
+ ---
405
+
406
+ ### _mint() - THE DANGEROUS FUNCTION
407
+
408
+ ```solidity
409
+ function _mint(address account, uint256 amount) public isMintContract {
410
+ require(account != address(0), "ERC20: mint to the zero address");
411
+
412
+ _totalSupply = _totalSupply.add(amount);
413
+ balances[account] = balances[account].add(amount);
414
+ emit Transfer(address(0), account, amount);
415
+ }
416
+ ```
417
+
418
+ **Analysis**:
419
+ - โœ… Checks zero address
420
+ - โœ… Uses SafeMath
421
+ - โœ… Emits Transfer event
422
+ - โŒ No maximum supply check
423
+ - โŒ No amount limit
424
+ - โŒ No cooldown
425
+ - โŒ Public function with underscore name (confusing)
426
+
427
+ ---
428
+
429
+ ### Standard ERC20 Functions
430
+
431
+ ```solidity
432
+ function transfer(address to, uint256 value) public override returns (bool)
433
+ function approve(address spender, uint256 value) public override returns (bool)
434
+ function transferFrom(address from, address to, uint256 value) public override returns (bool)
435
+ ```
436
+
437
+ **Analysis**:
438
+ - โœ… All standard ERC20 functions implemented correctly
439
+ - โœ… Proper checks (zero address, sufficient balance, sufficient allowance)
440
+ - โœ… Uses SafeMath
441
+ - โœ… Emits events
442
+ - โœ… No issues found
443
+
444
+ ---
445
+
446
+ ### burn() Function
447
+
448
+ ```solidity
449
+ function burn(uint256 amount) external {
450
+ require(amount != 0,"must burn more than zero");
451
+ require(amount <= balances[msg.sender],"insufficient balance");
452
+ _totalSupply = _totalSupply.sub(amount);
453
+ balances[msg.sender] = balances[msg.sender].sub(amount);
454
+ emit Transfer(msg.sender, address(0), amount);
455
+ }
456
+ ```
457
+
458
+ **Analysis**:
459
+ - โœ… Anyone can burn their own tokens
460
+ - โœ… Reduces total supply
461
+ - โœ… Proper checks
462
+ - โœ… Emits Transfer event
463
+ - โœ… Deflationary mechanism
464
+ - โœ… No issues found
465
+
466
+ ---
467
+
468
+ ## Risk Assessment
469
+
470
+ ### Rug Pull Risk: ๐Ÿ”ด CRITICAL
471
+ - Owner can grant minting to themselves or accomplices
472
+ - Can mint unlimited tokens instantly
473
+ - Can dump on market
474
+ - **This is a rug pull waiting to happen**
475
+
476
+ ### Centralization Risk: ๐Ÿ”ด CRITICAL
477
+ - Single owner controls all minting privileges
478
+ - No multi-sig
479
+ - No timelock
480
+ - No governance
481
+ - Complete centralization
482
+
483
+ ### Smart Contract Risk: ๐Ÿ”ด CRITICAL
484
+ - Unlimited minting capability
485
+ - No supply cap
486
+ - No minting limits
487
+ - Owner-controlled inflation
488
+
489
+ ### Market Risk: ๐Ÿ”ด CRITICAL
490
+ - Supply can be inflated at any time
491
+ - Investors think supply is 16M, but it's unlimited
492
+ - False advertising
493
+ - High dilution risk
494
+
495
+ ---
496
+
497
+ ## Comparison to Other Tokens
498
+
499
+ ### vs. DomiToken (Previous Audit)
500
+ - โŒ **MUCH WORSE**: DomiToken has no owner, SYNC has god-mode owner
501
+ - โŒ **MUCH WORSE**: DomiToken has fixed supply, SYNC has unlimited
502
+ - โŒ **MUCH WORSE**: DomiToken is safe, SYNC is a rug pull risk
503
+
504
+ ### vs. Unknown Token Decompiled (Previous Audit)
505
+ - โŒ **SIMILAR**: Both have unlimited minting controlled by privileged roles
506
+ - โŒ **SIMILAR**: Both have no supply cap
507
+ - โŒ **SLIGHTLY BETTER**: SYNC is more transparent (not decompiled)
508
+ - โŒ **WORSE**: SYNC has single owner, Unknown had role-based system
509
+
510
+ ### vs. PAAL AI (Previous Audit)
511
+ - โŒ **SIMILAR**: Both have owner backdoors
512
+ - โŒ **WORSE**: SYNC can inflate supply, PAAL "only" had tax manipulation
513
+ - โŒ **SIMILAR**: Both are high rug pull risk
514
+
515
+ ---
516
+
517
+ ## Exploitability Assessment
518
+
519
+ ### Can Owner Exploit This?
520
+
521
+ **YES - TRIVIALLY**:
522
+
523
+ ```solidity
524
+ // Step 1: Grant yourself minting rights
525
+ setMintAccess(owner, true);
526
+
527
+ // Step 2: Mint unlimited tokens
528
+ _mint(owner, 1000000000 * 1e18); // Mint 1 billion tokens
529
+
530
+ // Step 3: Dump on market
531
+ // Sell tokens, crash price, profit
532
+ ```
533
+
534
+ **This requires zero skill and can be done in 2 transactions.**
535
+
536
+ ---
537
+
538
+ ### Can Whitelisted Minter Exploit This?
539
+
540
+ **YES - EASILY**:
541
+
542
+ ```solidity
543
+ // If owner grants minting to a contract or address
544
+ // That address can mint unlimited tokens
545
+
546
+ _mint(minter, type(uint256).max / 2); // Mint half of max uint256
547
+ // Dump on market
548
+ ```
549
+
550
+ ---
551
+
552
+ ### Can External Attacker Exploit This?
553
+
554
+ **NO - Unless**:
555
+ 1. They compromise owner's private key
556
+ 2. They compromise a whitelisted minter's private key
557
+ 3. They exploit a whitelisted minting contract
558
+
559
+ **But the risk is still CRITICAL because**:
560
+ - Single point of failure (owner key)
561
+ - Whitelisted contracts could be vulnerable
562
+ - Social engineering possible
563
+
564
+ ---
565
+
566
+ ## Recommendations
567
+
568
+ ### CRITICAL - Fix Minting System
569
+
570
+ **Option 1: Remove minting entirely** (RECOMMENDED for decentralization)
571
+ ```solidity
572
+ // Delete setMintAccess() and _mint() functions
573
+ // Make supply fixed at 16M
574
+ ```
575
+
576
+ **Option 2: Add strict limits and controls**
577
+ ```solidity
578
+ uint256 public constant MAX_SUPPLY = 100000000 * 1e18; // 100M max
579
+ uint256 public constant MAX_MINT_PER_TX = 100000 * 1e18; // 100K per tx
580
+ uint256 public constant MAX_MINT_PER_DAY = 1000000 * 1e18; // 1M per day
581
+
582
+ mapping(address => uint256) public lastMintTime;
583
+ mapping(address => uint256) public dailyMintAmount;
584
+ mapping(address => uint256) public dailyMintResetTime;
585
+
586
+ function mint(address account, uint256 amount) public isMintContract {
587
+ require(account != address(0), "ERC20: mint to the zero address");
588
+ require(amount <= MAX_MINT_PER_TX, "Exceeds max mint per transaction");
589
+ require(_totalSupply.add(amount) <= MAX_SUPPLY, "Exceeds max supply");
590
+
591
+ // Daily limit check
592
+ if (block.timestamp >= dailyMintResetTime[msg.sender] + 1 days) {
593
+ dailyMintAmount[msg.sender] = 0;
594
+ dailyMintResetTime[msg.sender] = block.timestamp;
595
+ }
596
+ require(dailyMintAmount[msg.sender].add(amount) <= MAX_MINT_PER_DAY, "Exceeds daily limit");
597
+
598
+ // Cooldown check
599
+ require(block.timestamp >= lastMintTime[msg.sender] + 1 hours, "Cooldown not elapsed");
600
+
601
+ _totalSupply = _totalSupply.add(amount);
602
+ balances[account] = balances[account].add(amount);
603
+ dailyMintAmount[msg.sender] = dailyMintAmount[msg.sender].add(amount);
604
+ lastMintTime[msg.sender] = block.timestamp;
605
+
606
+ emit Transfer(address(0), account, amount);
607
+ }
608
+ ```
609
+
610
+ **Option 3: Use multi-sig + timelock**
611
+ ```solidity
612
+ // Require 3-of-5 multi-sig for setMintAccess
613
+ // Require 7-day timelock before minting privilege activates
614
+ // Require 2-of-3 multi-sig for actual minting
615
+ ```
616
+
617
+ ---
618
+
619
+ ### HIGH - Add Transparency
620
+
621
+ 1. **Emit Events**:
622
+ ```solidity
623
+ event MintAccessChanged(address indexed account, bool canMint);
624
+ event TokensMinted(address indexed minter, address indexed to, uint256 amount);
625
+
626
+ function setMintAccess(address account, bool canMint) public onlyOwner {
627
+ mintContracts[account] = canMint;
628
+ emit MintAccessChanged(account, canMint);
629
+ }
630
+ ```
631
+
632
+ 2. **Add Timelock**:
633
+ ```solidity
634
+ // 7-day delay before minting privilege activates
635
+ // Gives users time to exit if they don't trust the new minter
636
+ ```
637
+
638
+ 3. **Add Minting History**:
639
+ ```solidity
640
+ struct MintRecord {
641
+ address minter;
642
+ address recipient;
643
+ uint256 amount;
644
+ uint256 timestamp;
645
+ }
646
+
647
+ MintRecord[] public mintHistory;
648
+ ```
649
+
650
+ ---
651
+
652
+ ### MEDIUM - Improve Security
653
+
654
+ 1. **Rename _mint() to mint()**:
655
+ ```solidity
656
+ // Public functions should not start with underscore
657
+ function mint(address account, uint256 amount) public isMintContract {
658
+ // ...
659
+ }
660
+ ```
661
+
662
+ 2. **Add ReentrancyGuard to approveAndCall()**:
663
+ ```solidity
664
+ import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
665
+
666
+ function approveAndCall(address spender, uint256 tokens, bytes calldata data)
667
+ external
668
+ nonReentrant
669
+ returns (bool)
670
+ {
671
+ // ...
672
+ }
673
+ ```
674
+
675
+ 3. **Add Multi-Sig for Owner**:
676
+ ```solidity
677
+ // Use Gnosis Safe or similar multi-sig wallet as owner
678
+ // Require multiple signatures for setMintAccess
679
+ ```
680
+
681
+ ---
682
+
683
+ ## Code Quality Assessment
684
+
685
+ **Rating**: ๐ŸŸก **MEDIUM** (Standard code, but dangerous design)
686
+
687
+ **Strengths**:
688
+ - โœ… Uses OpenZeppelin patterns (Ownable, SafeMath)
689
+ - โœ… Standard ERC20 implementation
690
+ - โœ… Clean, readable code
691
+ - โœ… Proper error messages
692
+ - โœ… Burn functionality
693
+ - โœ… ApproveAndCall pattern
694
+
695
+ **Critical Weaknesses**:
696
+ - โŒ Unlimited minting capability
697
+ - โŒ Owner-controlled inflation
698
+ - โŒ No supply cap
699
+ - โŒ No minting limits
700
+ - โŒ No timelock
701
+ - โŒ Extreme centralization
702
+ - โŒ Misleading function name (_mint is public)
703
+
704
+ ---
705
+
706
+ ## Conclusion
707
+
708
+ **VERDICT**: ๐Ÿ”ด **DO NOT USE - CRITICAL VULNERABILITIES**
709
+
710
+ SYNC token has a **CRITICAL VULNERABILITY** that allows the owner to grant unlimited minting privileges to any address, enabling infinite token inflation and complete supply manipulation.
711
+
712
+ **Key Issues**:
713
+ 1. ๐Ÿ”ด **CRITICAL**: Owner can grant minting to anyone via `setMintAccess()`
714
+ 2. ๐Ÿ”ด **CRITICAL**: Whitelisted addresses can mint unlimited tokens
715
+ 3. ๐Ÿ”ด **CRITICAL**: No maximum supply cap
716
+ 4. ๐Ÿ”ด **HIGH**: No minting limits per transaction or per day
717
+ 5. ๐Ÿ”ด **HIGH**: No timelock on minting privilege changes
718
+ 6. ๐Ÿ”ด **HIGH**: Extreme centralization (single owner)
719
+
720
+ **For Users**: **DO NOT BUY THIS TOKEN**
721
+ - Owner can inflate supply at any time
722
+ - High rug pull risk
723
+ - Extreme centralization
724
+ - No investor protection
725
+ - Supply is advertised as 16M but is actually unlimited
726
+
727
+ **For Developers**: **DO NOT DEPLOY THIS CONTRACT**
728
+ - Remove unlimited minting capability
729
+ - Or add strict limits + timelock + multi-sig
730
+ - Add maximum supply cap
731
+ - Add transparency features
732
+ - Reduce centralization
733
+
734
+ **Exploitability**: **TRIVIAL**
735
+ - Owner can exploit in 2 transactions
736
+ - No special skills required
737
+ - Can mint unlimited tokens in seconds
738
+ - High probability of exploitation
739
+
740
+ **Comparison**: This is **one of the most dangerous tokens** we've audited, similar to the Unknown Token (decompiled) and PAAL AI in terms of centralization risk and rug pull potential.
741
+
742
+ ---
743
+
744
+ **Audit Complete** โœ“
745
+
746
+ **RECOMMENDATION**: ๐Ÿ”ด **DO NOT USE - CRITICAL VULNERABILITIES**
747
+
748
+ This token should not be used in its current form. The unlimited minting capability controlled by a single owner is a critical vulnerability. If you encounter this token, **DO NOT INVEST**.
749
+
750
+ ---
751
+
752
+ ## Historical Context
753
+
754
+ **Deployment**: November 12, 2020
755
+ - Deployed during the 2020 DeFi boom
756
+ - Part of "SYNC Powered CryptoDragons" project
757
+ - Age: ~5.3 years old (as of March 2026)
758
+
759
+ **Project**: SYNC Network / CryptoDragons
760
+ - Appears to be a gaming/NFT project
761
+ - Minting was likely intended for game rewards
762
+ - But the implementation is dangerously centralized
763
+
764
+ ---
765
+
766
+ ## Final Rating
767
+
768
+ **Security**: ๐Ÿ”ด๐Ÿ”ด๐Ÿ”ด๐Ÿ”ด๐Ÿ”ด 0/5 (Critical vulnerabilities)
769
+ **Code Quality**: ๐ŸŸก๐ŸŸก๐ŸŸกโšชโšช 3/5 (Clean code, bad design)
770
+ **Decentralization**: ๐Ÿ”ด๐Ÿ”ด๐Ÿ”ด๐Ÿ”ด๐Ÿ”ด 0/5 (Complete centralization)
771
+ **Transparency**: ๐ŸŸก๐ŸŸกโšชโšชโšช 2/5 (Some transparency, but missing key events)
772
+ **Best Practices**: ๐ŸŸก๐ŸŸกโšชโšชโšช 2/5 (Uses OpenZeppelin, but dangerous patterns)
773
+
774
+ **Overall**: ๐Ÿ”ด **CRITICAL RISK** - This token has critical vulnerabilities that make it unsafe for investment.
775
+
776
+ ---
777
+
778
+ **This is a high-risk token with critical centralization and unlimited minting. Avoid at all costs.** ๐Ÿ”ด