@aastar/sdk 0.14.0 → 0.16.6

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 (656) hide show
  1. package/.eslintrc.cjs +30 -0
  2. package/.gitmodules +9 -0
  3. package/README.md +299 -0
  4. package/aastar-sdk.code-workspace +14 -0
  5. package/abis/BLSAggregator.json +572 -0
  6. package/abis/BLSValidator.json +39 -0
  7. package/abis/DVTValidator.json +383 -0
  8. package/abis/Eip7702Support.json +24 -0
  9. package/abis/EntryPoint.json +1379 -0
  10. package/abis/GToken.json +510 -0
  11. package/abis/GTokenStaking.json +918 -0
  12. package/abis/LegacyAccount.json +625 -0
  13. package/abis/MySBT.json +1547 -0
  14. package/abis/Paymaster.json +1192 -0
  15. package/abis/PaymasterFactory.json +637 -0
  16. package/abis/PaymasterV4_2.json +1193 -0
  17. package/abis/Registry.json +1677 -0
  18. package/abis/ReputationSystem.json +659 -0
  19. package/abis/SenderCreator.json +99 -0
  20. package/abis/Simple7702Account.json +395 -0
  21. package/abis/SimpleAccount.json +625 -0
  22. package/abis/SimpleAccountFactory.json +108 -0
  23. package/abis/SimpleAccountFactoryV08.json +87 -0
  24. package/abis/SimpleAccountV08.json +557 -0
  25. package/abis/SuperPaymaster.json +1568 -0
  26. package/abis/UserOperationLib.json +57 -0
  27. package/abis/aPNTs.json +1160 -0
  28. package/abis/xPNTsFactory.json +715 -0
  29. package/abis/xPNTsToken.json +1160 -0
  30. package/config/networks/README.md +54 -0
  31. package/config/networks/mainnet.env.example +39 -0
  32. package/config/networks/optimism-sepolia.env.example +35 -0
  33. package/config/networks/optimism.env.example +36 -0
  34. package/config/networks/sepolia.env.example +36 -0
  35. package/config.anvil.json +1 -0
  36. package/config.sepolia.json +1 -0
  37. package/config.test.json +27 -0
  38. package/data/experiment_data.csv +36 -0
  39. package/data/industry_baseline_2025-12-23.json +154 -0
  40. package/data/industry_baseline_latest.json +154 -0
  41. package/docs/ABI_Change_Tracking_Workflow.md +41 -0
  42. package/docs/ABI_MAINTENANCE_PLAN.md +132 -0
  43. package/docs/API_REFERENCE.md +956 -0
  44. package/docs/Configuration_Sync.md +47 -0
  45. package/docs/DAO_Mining_Distribution_Plan.md +522 -0
  46. package/docs/DEMO_REFACTOR_PLAN.md +289 -0
  47. package/docs/DOCUMENTATION_PLAN.md +455 -0
  48. package/docs/ENV_SEPOLIA_UPDATE.md +68 -0
  49. package/docs/Faucet_Gasless_Plan.md +56 -0
  50. package/docs/L2_BUSINESS_CLIENTS_PLAN.md +394 -0
  51. package/docs/L4_Manual_Test_CheatSheet.md +215 -0
  52. package/docs/Plan.md +266 -0
  53. package/docs/Regression_Testing_Guide.md +70 -0
  54. package/docs/SDK_ABI_COVERAGE.md +839 -0
  55. package/docs/SDK_COVERAGE_STRATEGY.md +397 -0
  56. package/docs/SDK_Optimization_Evaluation_Plan.md +51 -0
  57. package/docs/SDK_REGRESSION_AND_API_PLAN.md +98 -0
  58. package/docs/SDK_STAGE3_PLAN.md +151 -0
  59. package/docs/SEPOLIA_ENV_REFERENCE.md +51 -0
  60. package/docs/STAGE3.md +191 -0
  61. package/docs/Script_Comparison_Report.md +91 -0
  62. package/docs/Sepolia_Latest_Deployment.md +117 -0
  63. package/docs/TESTER_GUIDE_GASLESS.md +663 -0
  64. package/docs/TEST_COVERAGE_MATRIX.md +72 -0
  65. package/docs/TODO_SDK_COVERAGE.md +55 -0
  66. package/docs/USER_CASE_DESIGN.md +110 -0
  67. package/docs/Verifier_L4_Gasless_Plan.md +454 -0
  68. package/docs/api/@aastar/account.md +235 -0
  69. package/docs/api/@aastar/analytics.md +219 -0
  70. package/docs/api/@aastar/core.md +26830 -0
  71. package/docs/api/@aastar/dapp.md +130 -0
  72. package/docs/api/@aastar/identity.md +482 -0
  73. package/docs/api/@aastar/paymaster.md +1387 -0
  74. package/docs/api/@aastar/sdk/README.md +155 -0
  75. package/docs/api/@aastar/sdk/node.md +4044 -0
  76. package/docs/api/@aastar/tokens.md +1971 -0
  77. package/docs/api/README.md +10 -0
  78. package/docs/changelog.md +99 -0
  79. package/docs/examples/README.md +18 -0
  80. package/docs/examples/community-flow.md +28 -0
  81. package/docs/examples/enduser-flow.md +24 -0
  82. package/docs/examples/index.md +18 -0
  83. package/docs/examples/multi-chain.md +31 -0
  84. package/docs/examples/operator-flow.md +28 -0
  85. package/docs/guide/CLI_GUIDE.md +65 -0
  86. package/docs/guide/DOCUMENTATION_PLAN.md +455 -0
  87. package/docs/guide/Security-solution.md +106 -0
  88. package/docs/guide/TEST_COMMANDS.md +320 -0
  89. package/docs/guide/concepts/account-abstraction.md +95 -0
  90. package/docs/guide/concepts/rainbow-bridge.md +68 -0
  91. package/docs/guide/concepts/reputation.md +95 -0
  92. package/docs/guide/concepts/superpaymaster.md +141 -0
  93. package/docs/guide/getting-started.md +133 -0
  94. package/docs/guide/installation.md +40 -0
  95. package/docs/guide/paper-data-collection.md +69 -0
  96. package/docs/guide/quick-start.md +52 -0
  97. package/docs/guide/task_breakdown.md +121 -0
  98. package/docs/guide/use-cases/community-management.md +141 -0
  99. package/docs/guide/use-cases/gasless-transactions.md +71 -0
  100. package/docs/guide/use-cases/operator-staking.md +84 -0
  101. package/docs/guide/use-cases/yop.md +72 -0
  102. package/docs/old-solution.md +1078 -0
  103. package/docs/paper-data-collection.md +69 -0
  104. package/docs/refactor/2026-01-13-221242-trae-refactor.md +224 -0
  105. package/docs/refactor/2026-01-13-audit-analysis.md +96 -0
  106. package/docs/refactor/2026-01-13-audit-report-v0.16.2.md +76 -0
  107. package/docs/refactor/2026-01-13-audit-report-v0.17.0.md +74 -0
  108. package/docs/refactor/2026-01-13-cursor-refactor.md +511 -0
  109. package/docs/refactor/2026-01-13-refactor-plan.md +88 -0
  110. package/docs/refactor/2026-01-13-refactor-response-plan.md +77 -0
  111. package/docs/refactor/2026-01-13-refactor-review.md +39 -0
  112. package/docs/refactor/2026-01-13-sdk-enhancement-plan.md +120 -0
  113. package/docs/refactor/2026-01-14-audit-response.md +242 -0
  114. package/docs/refactor/2026-01-14-audit-summary.md +133 -0
  115. package/docs/refactor/cursor-2026-01-13-14-00-audit-report.md +267 -0
  116. package/docs/technical_plan.md +510 -0
  117. package/docs/zh/examples/community-flow.md +38 -0
  118. package/docs/zh/examples/complete-workflow.md +10 -0
  119. package/docs/zh/examples/enduser-flow.md +33 -0
  120. package/docs/zh/examples/index.md +18 -0
  121. package/docs/zh/examples/multi-chain.md +46 -0
  122. package/docs/zh/examples/operator-flow.md +37 -0
  123. package/docs/zh/guide/CLI_GUIDE.md +48 -0
  124. package/docs/zh/guide/DOCUMENTATION_PLAN.md +455 -0
  125. package/docs/zh/guide/Plan.md +266 -0
  126. package/docs/zh/guide/SDK_Optimization_Evaluation_Plan.md +51 -0
  127. package/docs/zh/guide/Security-solution.md +106 -0
  128. package/docs/zh/guide/TEST_COMMANDS.md +125 -0
  129. package/docs/zh/guide/TEST_COVERAGE_MATRIX.md +72 -0
  130. package/docs/zh/guide/concepts/account-abstraction.md +95 -0
  131. package/docs/zh/guide/concepts/rainbow-bridge.md +68 -0
  132. package/docs/zh/guide/concepts/reputation.md +95 -0
  133. package/docs/zh/guide/concepts/superpaymaster.md +141 -0
  134. package/docs/zh/guide/getting-started.md +133 -0
  135. package/docs/zh/guide/installation.md +107 -0
  136. package/docs/zh/guide/old-solution.md +1078 -0
  137. package/docs/zh/guide/paper-data-collection.md +69 -0
  138. package/docs/zh/guide/quick-start.md +134 -0
  139. package/docs/zh/guide/sdk-readme.md +253 -0
  140. package/docs/zh/guide/task_breakdown.md +76 -0
  141. package/docs/zh/guide/technical_plan.md +510 -0
  142. package/docs/zh/guide/use-cases/community-management.md +141 -0
  143. package/docs/zh/guide/use-cases/gasless-transactions.md +71 -0
  144. package/docs/zh/guide/use-cases/operator-staking.md +84 -0
  145. package/docs/zh/guide/use-cases/yop.md +72 -0
  146. package/env.template +32 -0
  147. package/examples/l1-api-demo.ts +184 -0
  148. package/examples/l2-clients-demo.ts +138 -0
  149. package/examples/l3-user-onboarding.ts +74 -0
  150. package/examples/prepare-gasless.ts +89 -0
  151. package/examples/sdk-demo/DEVELOPER_GUIDE.md +159 -0
  152. package/examples/sdk-demo/README.md +30 -0
  153. package/examples/sdk-demo/usage.ts +137 -0
  154. package/examples/simple-gasless-demo.ts +80 -0
  155. package/examples/simple-superpaymaster-demo.ts +96 -0
  156. package/ext/aastar-shared-config/.env.example +6 -0
  157. package/ext/aastar-shared-config/.github/workflows/check-secrets.yml +257 -0
  158. package/ext/aastar-shared-config/AGENTS.md +21 -0
  159. package/ext/aastar-shared-config/CHANGELOG.md +99 -0
  160. package/ext/aastar-shared-config/LICENSE +21 -0
  161. package/ext/aastar-shared-config/QUICK_START.md +215 -0
  162. package/ext/aastar-shared-config/README.md +412 -0
  163. package/ext/aastar-shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
  164. package/ext/aastar-shared-config/check-locker-status.mjs +7 -0
  165. package/ext/aastar-shared-config/favicon.ico +0 -0
  166. package/ext/aastar-shared-config/generate-comparison-table.sh +67 -0
  167. package/ext/aastar-shared-config/package.json +46 -0
  168. package/ext/aastar-shared-config/pnpm-lock.yaml +1182 -0
  169. package/ext/aastar-shared-config/src/abis/BLSAggregator.json +1 -0
  170. package/ext/aastar-shared-config/src/abis/DVTValidator.json +1 -0
  171. package/ext/aastar-shared-config/src/abis/GToken.json +1 -0
  172. package/ext/aastar-shared-config/src/abis/GTokenStaking.json +1 -0
  173. package/ext/aastar-shared-config/src/abis/MySBT.json +1 -0
  174. package/ext/aastar-shared-config/src/abis/PaymasterFactory.json +1 -0
  175. package/ext/aastar-shared-config/src/abis/PaymasterV4.json +1098 -0
  176. package/ext/aastar-shared-config/src/abis/Registry.json +1 -0
  177. package/ext/aastar-shared-config/src/abis/SimpleAccount.json +557 -0
  178. package/ext/aastar-shared-config/src/abis/SimpleAccountFactory.json +87 -0
  179. package/ext/aastar-shared-config/src/abis/SuperPaymasterV2.json +1 -0
  180. package/ext/aastar-shared-config/src/abis/index.ts +45 -0
  181. package/ext/aastar-shared-config/src/abis/xPNTsFactory.json +1 -0
  182. package/ext/aastar-shared-config/src/abis/xPNTsToken.json +1 -0
  183. package/ext/aastar-shared-config/src/branding.ts +32 -0
  184. package/ext/aastar-shared-config/src/communities.ts +93 -0
  185. package/ext/aastar-shared-config/src/constants.ts +67 -0
  186. package/ext/aastar-shared-config/src/contract-addresses.ts +95 -0
  187. package/ext/aastar-shared-config/src/contract-versions.ts +374 -0
  188. package/ext/aastar-shared-config/src/contracts.ts +414 -0
  189. package/ext/aastar-shared-config/src/index.ts +14 -0
  190. package/ext/aastar-shared-config/src/networks.ts +117 -0
  191. package/ext/aastar-shared-config/sync-abis.sh +92 -0
  192. package/ext/aastar-shared-config/sync-versions.mjs +150 -0
  193. package/ext/aastar-shared-config/tsconfig.json +18 -0
  194. package/ext/aastar-shared-config/tsup.config.ts +10 -0
  195. package/ext/aastar-shared-config/verify-all.sh +207 -0
  196. package/ext/aastar-shared-config/verify-contracts.sh +85 -0
  197. package/ext/aastar-shared-config/verify-mysbt-v243.mjs +27 -0
  198. package/ext/aastar-shared-config/verify-onchain-versions.mjs +93 -0
  199. package/l4-setup.sh +11 -0
  200. package/lib/SHARED_CONFIG_REFERENCE.md +133 -0
  201. package/lib/shared-config/.env.example +6 -0
  202. package/lib/shared-config/.github/workflows/check-secrets.yml +257 -0
  203. package/lib/shared-config/AGENTS.md +21 -0
  204. package/lib/shared-config/CHANGELOG.md +99 -0
  205. package/lib/shared-config/LICENSE +21 -0
  206. package/lib/shared-config/QUICK_START.md +215 -0
  207. package/lib/shared-config/README.md +412 -0
  208. package/lib/shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
  209. package/lib/shared-config/check-locker-status.mjs +7 -0
  210. package/lib/shared-config/favicon.ico +0 -0
  211. package/lib/shared-config/generate-comparison-table.sh +67 -0
  212. package/lib/shared-config/package.json +46 -0
  213. package/lib/shared-config/pnpm-lock.yaml +1182 -0
  214. package/lib/shared-config/src/abis/BLSAggregator.json +1 -0
  215. package/lib/shared-config/src/abis/DVTValidator.json +1 -0
  216. package/lib/shared-config/src/abis/GToken.json +1 -0
  217. package/lib/shared-config/src/abis/GTokenStaking.json +1 -0
  218. package/lib/shared-config/src/abis/MySBT.json +1 -0
  219. package/lib/shared-config/src/abis/PaymasterFactory.json +1 -0
  220. package/lib/shared-config/src/abis/PaymasterV4.json +1098 -0
  221. package/lib/shared-config/src/abis/Registry.json +1 -0
  222. package/lib/shared-config/src/abis/SimpleAccount.json +557 -0
  223. package/lib/shared-config/src/abis/SimpleAccountFactory.json +87 -0
  224. package/lib/shared-config/src/abis/SuperPaymasterV2.json +1 -0
  225. package/lib/shared-config/src/abis/index.ts +45 -0
  226. package/lib/shared-config/src/abis/xPNTsFactory.json +1 -0
  227. package/lib/shared-config/src/abis/xPNTsToken.json +1 -0
  228. package/lib/shared-config/src/branding.ts +32 -0
  229. package/lib/shared-config/src/communities.ts +93 -0
  230. package/lib/shared-config/src/constants.ts +67 -0
  231. package/lib/shared-config/src/contract-addresses.ts +95 -0
  232. package/lib/shared-config/src/contract-versions.ts +374 -0
  233. package/lib/shared-config/src/contracts.ts +414 -0
  234. package/lib/shared-config/src/index.ts +14 -0
  235. package/lib/shared-config/src/networks.ts +117 -0
  236. package/lib/shared-config/sync-abis.sh +92 -0
  237. package/lib/shared-config/sync-versions.mjs +150 -0
  238. package/lib/shared-config/tsconfig.json +18 -0
  239. package/lib/shared-config/tsup.config.ts +10 -0
  240. package/lib/shared-config/verify-all.sh +207 -0
  241. package/lib/shared-config/verify-contracts.sh +85 -0
  242. package/lib/shared-config/verify-mysbt-v243.mjs +27 -0
  243. package/lib/shared-config/verify-onchain-versions.mjs +93 -0
  244. package/package.json +58 -22
  245. package/packages/account/package.json +23 -0
  246. package/packages/account/src/accounts/simple.test.ts +93 -0
  247. package/packages/account/src/accounts/simple.ts +84 -0
  248. package/packages/account/src/eoa.test.ts +37 -0
  249. package/packages/account/src/eoa.ts +33 -0
  250. package/packages/account/src/index.test.ts +34 -0
  251. package/packages/account/src/index.ts +61 -0
  252. package/packages/account/tsconfig.json +11 -0
  253. package/packages/analytics/package.json +28 -0
  254. package/packages/analytics/src/index.ts +145 -0
  255. package/packages/analytics/tsconfig.json +11 -0
  256. package/packages/core/package.json +32 -0
  257. package/packages/core/scripts/audit-abi-coverage.ts +165 -0
  258. package/packages/core/scripts/debug-regex.ts +36 -0
  259. package/packages/core/src/abis/.abi-hashes.json +26 -0
  260. package/packages/core/src/abis/BLSAggregator.json +686 -0
  261. package/packages/core/src/abis/BLSValidator.json +42 -0
  262. package/packages/core/src/abis/DVTValidator.json +368 -0
  263. package/packages/core/src/abis/Eip7702Support.json +24 -0
  264. package/packages/core/src/abis/EntryPoint.json +1382 -0
  265. package/packages/core/src/abis/GToken.json +513 -0
  266. package/packages/core/src/abis/GTokenStaking.json +949 -0
  267. package/packages/core/src/abis/LegacyAccount.json +625 -0
  268. package/packages/core/src/abis/MySBT.json +1518 -0
  269. package/packages/core/src/abis/Paymaster.json +1143 -0
  270. package/packages/core/src/abis/PaymasterFactory.json +640 -0
  271. package/packages/core/src/abis/Registry.json +1942 -0
  272. package/packages/core/src/abis/ReputationSystem.json +699 -0
  273. package/packages/core/src/abis/SenderCreator.json +99 -0
  274. package/packages/core/src/abis/Simple7702Account.json +395 -0
  275. package/packages/core/src/abis/SimpleAccount.json +560 -0
  276. package/packages/core/src/abis/SimpleAccountFactory.json +111 -0
  277. package/packages/core/src/abis/SimpleAccountFactoryV08.json +87 -0
  278. package/packages/core/src/abis/SimpleAccountV08.json +557 -0
  279. package/packages/core/src/abis/SuperPaymaster.json +1781 -0
  280. package/packages/core/src/abis/UserOperationLib.json +57 -0
  281. package/packages/core/src/abis/abi.config.json +24 -0
  282. package/packages/core/src/abis/index.ts +104 -0
  283. package/packages/core/src/abis/xPNTsFactory.json +718 -0
  284. package/packages/core/src/abis/xPNTsToken.json +1280 -0
  285. package/packages/core/src/actions/StateValidator.test.ts +175 -0
  286. package/packages/core/src/actions/StateValidator.ts +253 -0
  287. package/packages/core/src/actions/account.test.ts +155 -0
  288. package/packages/core/src/actions/account.ts +179 -0
  289. package/packages/core/src/actions/aggregator.test.ts +88 -0
  290. package/packages/core/src/actions/aggregator.ts +41 -0
  291. package/packages/core/src/actions/dvt.test.ts +124 -0
  292. package/packages/core/src/actions/dvt.ts +53 -0
  293. package/packages/core/src/actions/entryPoint.test.ts +176 -0
  294. package/packages/core/src/actions/entryPoint.ts +266 -0
  295. package/packages/core/src/actions/factory.test.ts +250 -0
  296. package/packages/core/src/actions/factory.ts +613 -0
  297. package/packages/core/src/actions/faucet.test.ts +202 -0
  298. package/packages/core/src/actions/faucet.ts +421 -0
  299. package/packages/core/src/actions/gtokenExtended.test.ts +162 -0
  300. package/packages/core/src/actions/gtokenExtended.ts +153 -0
  301. package/packages/core/src/actions/index.ts +18 -0
  302. package/packages/core/src/actions/paymasterV4.test.ts +209 -0
  303. package/packages/core/src/actions/paymasterV4.ts +455 -0
  304. package/packages/core/src/actions/registry.test.ts +443 -0
  305. package/packages/core/src/actions/registry.ts +860 -0
  306. package/packages/core/src/actions/reputation.test.ts +225 -0
  307. package/packages/core/src/actions/reputation.ts +378 -0
  308. package/packages/core/src/actions/sbt.test.ts +322 -0
  309. package/packages/core/src/actions/sbt.ts +681 -0
  310. package/packages/core/src/actions/staking.test.ts +273 -0
  311. package/packages/core/src/actions/staking.ts +421 -0
  312. package/packages/core/src/actions/superPaymaster.test.ts +356 -0
  313. package/packages/core/src/actions/superPaymaster.ts +828 -0
  314. package/packages/core/src/actions/tokens.test.ts +60 -0
  315. package/packages/core/src/actions/tokens.ts +527 -0
  316. package/packages/core/src/actions/validators.test.ts +239 -0
  317. package/packages/core/src/actions/validators.ts +590 -0
  318. package/packages/core/src/branding.ts +32 -0
  319. package/packages/core/src/clients/BaseClient.ts +78 -0
  320. package/packages/core/src/clients/types.ts +69 -0
  321. package/packages/core/src/clients.ts +13 -0
  322. package/packages/core/src/communities.ts +93 -0
  323. package/packages/core/src/config/ContractConfigManager.ts +63 -0
  324. package/packages/core/src/constants.ts +145 -0
  325. package/packages/core/src/contract-addresses.ts +125 -0
  326. package/packages/core/src/contracts.test.ts +58 -0
  327. package/packages/core/src/contracts.ts +414 -0
  328. package/packages/core/src/crypto/blsSigner.ts +124 -0
  329. package/packages/core/src/crypto/index.ts +1 -0
  330. package/packages/core/src/index.ts +22 -0
  331. package/packages/core/src/networks.ts +127 -0
  332. package/packages/core/src/requirementChecker.test.ts +71 -0
  333. package/packages/core/src/requirementChecker.ts +187 -0
  334. package/packages/core/src/roles.test.ts +34 -0
  335. package/packages/core/src/roles.ts +255 -0
  336. package/packages/core/src/utils/validation.test.ts +50 -0
  337. package/packages/core/src/utils/validation.ts +66 -0
  338. package/packages/core/src/utils.ts +23 -0
  339. package/packages/core/tsconfig.json +12 -0
  340. package/packages/core/vitest.config.ts +14 -0
  341. package/packages/dapp/package.json +30 -0
  342. package/packages/dapp/src/index.ts +4 -0
  343. package/packages/dapp/src/ui/components/EvaluationPanel.tsx +40 -0
  344. package/packages/dapp/src/ui/hooks/useCreditScore.ts +44 -0
  345. package/packages/dapp/src/ui/hooks/useSuperPaymaster.ts +31 -0
  346. package/packages/dapp/src/ui/index.ts +22 -0
  347. package/packages/dapp/tsconfig.json +12 -0
  348. package/packages/identity/package.json +25 -0
  349. package/packages/identity/src/index.ts +114 -0
  350. package/packages/identity/src/mysbt.ts +48 -0
  351. package/packages/identity/tsconfig.json +11 -0
  352. package/packages/paymaster/package.json +25 -0
  353. package/packages/paymaster/src/SuperPaymaster/index.ts +168 -0
  354. package/packages/paymaster/src/V4/PaymasterClient.test.ts +114 -0
  355. package/packages/paymaster/src/V4/PaymasterClient.ts +385 -0
  356. package/packages/paymaster/src/V4/PaymasterOperator.test.ts +80 -0
  357. package/packages/paymaster/src/V4/PaymasterOperator.ts +282 -0
  358. package/packages/paymaster/src/V4/PaymasterUtils.test.ts +54 -0
  359. package/packages/paymaster/src/V4/PaymasterUtils.ts +185 -0
  360. package/packages/paymaster/src/V4/SuperPaymasterClient.test.ts +79 -0
  361. package/packages/paymaster/src/V4/SuperPaymasterClient.ts +123 -0
  362. package/packages/paymaster/src/V4/index.ts +4 -0
  363. package/packages/paymaster/src/index.ts +5 -0
  364. package/packages/paymaster/tsconfig.json +11 -0
  365. package/packages/sdk/README.md +150 -0
  366. package/packages/sdk/aastar/package.json +21 -0
  367. package/packages/sdk/aastar/src/index.ts +3 -0
  368. package/packages/sdk/aastar/tsconfig.json +7 -0
  369. package/packages/sdk/coverage_output.txt +393 -0
  370. package/packages/sdk/coverage_output_final.txt +739 -0
  371. package/packages/sdk/coverage_output_final_v2.txt +722 -0
  372. package/packages/sdk/coverage_output_final_v3.txt +722 -0
  373. package/packages/sdk/examples/config.json +1 -0
  374. package/packages/sdk/examples/regression_test.ts +106 -0
  375. package/packages/sdk/package.json +44 -0
  376. package/packages/sdk/src/clients/ExperimentClient.test.ts +65 -0
  377. package/packages/sdk/src/clients/ExperimentClient.ts +80 -0
  378. package/packages/sdk/src/clients/admin.test.ts +98 -0
  379. package/packages/sdk/src/clients/admin.ts +154 -0
  380. package/packages/sdk/src/clients/clients.test.ts +104 -0
  381. package/packages/sdk/src/clients/community.test.ts +118 -0
  382. package/packages/sdk/src/clients/community.ts +337 -0
  383. package/packages/sdk/src/clients/endUser.test.ts +221 -0
  384. package/packages/sdk/src/clients/endUser.ts +551 -0
  385. package/packages/sdk/src/clients/operator.test.ts +162 -0
  386. package/packages/sdk/src/clients/operator.ts +355 -0
  387. package/packages/sdk/src/errors/AAStarError.test.ts +92 -0
  388. package/packages/sdk/src/errors/AAStarError.ts +70 -0
  389. package/packages/sdk/src/errors/decoder.test.ts +107 -0
  390. package/packages/sdk/src/errors/decoder.ts +91 -0
  391. package/packages/sdk/src/index.ts +23 -0
  392. package/packages/sdk/src/node/index.ts +8 -0
  393. package/packages/sdk/src/types/result.ts +29 -0
  394. package/packages/sdk/src/utils/errorHandler.test.ts +102 -0
  395. package/packages/sdk/src/utils/errorHandler.ts +167 -0
  396. package/packages/sdk/src/utils/eventDecoder.test.ts +56 -0
  397. package/packages/sdk/src/utils/eventDecoder.ts +66 -0
  398. package/packages/sdk/src/utils/funding.test.ts +117 -0
  399. package/packages/sdk/src/utils/funding.ts +280 -0
  400. package/packages/sdk/src/utils/keys.test.ts +105 -0
  401. package/packages/sdk/src/utils/keys.ts +174 -0
  402. package/packages/sdk/src/utils/roleData.test.ts +85 -0
  403. package/packages/sdk/src/utils/roleData.ts +140 -0
  404. package/packages/sdk/src/utils/testScenarios.test.ts +79 -0
  405. package/packages/sdk/src/utils/testScenarios.ts +128 -0
  406. package/packages/sdk/src/utils/userOp.test.ts +190 -0
  407. package/packages/sdk/src/utils/userOp.ts +265 -0
  408. package/packages/sdk/tests/scenarios/01_onboard_community.ts +62 -0
  409. package/packages/sdk/tests/scenarios/02_onboard_operator.ts +109 -0
  410. package/packages/sdk/tests/scenarios/03_onboard_user.ts +53 -0
  411. package/packages/sdk/tests/scenarios/04_gasless_tx_flow.ts +68 -0
  412. package/packages/sdk/tests/scenarios/check_entrypoint.ts +19 -0
  413. package/packages/sdk/tests/scenarios/check_initialization.ts +65 -0
  414. package/packages/sdk/tests/scenarios/debug_addresses.ts +26 -0
  415. package/packages/sdk/tests/scenarios/diagnose_scenario4.ts +55 -0
  416. package/packages/sdk/tests/scenarios/setup.ts +33 -0
  417. package/packages/sdk/tests/scenarios/test_entrypoint_nonce.ts +46 -0
  418. package/packages/sdk/tsconfig.json +11 -0
  419. package/packages/tokens/package.json +25 -0
  420. package/packages/tokens/src/index.ts +273 -0
  421. package/packages/tokens/tsconfig.json +11 -0
  422. package/pnpm-workspace.yaml +2 -0
  423. package/run_l4_gasless_regression.sh +79 -0
  424. package/run_sdk_regression.sh +238 -0
  425. package/scripts/00_utils.ts +59 -0
  426. package/scripts/00_verify_phase1.ts +130 -0
  427. package/scripts/01_1_prep_gtoken.ts +81 -0
  428. package/scripts/01_2_register_sbt.ts +88 -0
  429. package/scripts/01_3_prep_tokens_paymaster.ts +102 -0
  430. package/scripts/01_prepare_all.ts +222 -0
  431. package/scripts/02_test_eoa.ts +53 -0
  432. package/scripts/03_test_standard_aa.ts +68 -0
  433. package/scripts/04_0_check_deploy.ts +24 -0
  434. package/scripts/04_1_check_allowance.ts +44 -0
  435. package/scripts/04_2_construct_verify.ts +96 -0
  436. package/scripts/04_3_verify_estimate.ts +66 -0
  437. package/scripts/04_4_verify_pack.ts +74 -0
  438. package/scripts/04_test_paymaster_v4.ts +60 -0
  439. package/scripts/05_1_deposit.ts +48 -0
  440. package/scripts/05_test_superpaymaster.ts +58 -0
  441. package/scripts/06_local_test_v3_admin.ts +163 -0
  442. package/scripts/06_local_test_v3_execution.ts +132 -0
  443. package/scripts/06_local_test_v3_full.ts +490 -0
  444. package/scripts/06_local_test_v3_funding.ts +124 -0
  445. package/scripts/06_local_test_v3_reputation.ts +234 -0
  446. package/scripts/07_local_test_v3_audit.ts +181 -0
  447. package/scripts/08_local_test_registry_lifecycle.ts +382 -0
  448. package/scripts/09_local_test_community_lifecycle.ts +385 -0
  449. package/scripts/09_local_test_community_simple.ts +108 -0
  450. package/scripts/09_scenario_bread_independent.ts +247 -0
  451. package/scripts/10_scenario_super_shared.ts +196 -0
  452. package/scripts/10_test_protocol_admin_full.ts +173 -0
  453. package/scripts/11_scenario_hacker_defense.ts +104 -0
  454. package/scripts/11_test_core_flows_full.ts +157 -0
  455. package/scripts/12_test_slash_mechanism.ts +205 -0
  456. package/scripts/12_test_slash_queries.ts +83 -0
  457. package/scripts/12_test_staking_exit.ts +152 -0
  458. package/scripts/12_test_staking_slash.ts +301 -0
  459. package/scripts/12_test_tier2_slash.ts +139 -0
  460. package/scripts/13_test_sbt_burn_linkage.ts +266 -0
  461. package/scripts/14_test_credit_redesign.ts +266 -0
  462. package/scripts/15_test_bls_full.ts +148 -0
  463. package/scripts/15_test_dvt_bls_full.ts +140 -0
  464. package/scripts/17_test_cross_role_collaboration.ts +95 -0
  465. package/scripts/18_sdk_e2e_verification.ts +67 -0
  466. package/scripts/18_test_dvt_sdk_flow.ts +138 -0
  467. package/scripts/18_test_lifecycle_completion.ts +144 -0
  468. package/scripts/19_sdk_experiment_runner.ts +114 -0
  469. package/scripts/19_sdk_experiment_runner.ts.backup +391 -0
  470. package/scripts/20_sdk_full_capability.ts +93 -0
  471. package/scripts/20_test_superpaymaster_new_apis.ts +193 -0
  472. package/scripts/21_test_paymasterv4_complete.ts +341 -0
  473. package/scripts/22_test_bls_signing.ts +260 -0
  474. package/scripts/23_test_middleware.ts +197 -0
  475. package/scripts/98_edge_reentrancy.ts +85 -0
  476. package/scripts/99_bug_hunting_fast.ts +99 -0
  477. package/scripts/analyze_abi_coverage.ts +169 -0
  478. package/scripts/check-admin.ts +95 -0
  479. package/scripts/check-jason-status.ts +184 -0
  480. package/scripts/check-roles.ts +36 -0
  481. package/scripts/clear-nonce.ts +47 -0
  482. package/scripts/collect_industry_baseline.ts +236 -0
  483. package/scripts/complete-jack-superpaymaster.ts +171 -0
  484. package/scripts/complete_env_config.ts +97 -0
  485. package/scripts/debug-addr.ts +43 -0
  486. package/scripts/debug-community-registration.ts +92 -0
  487. package/scripts/debug-deploy-v4.ts +116 -0
  488. package/scripts/debug-paymaster.ts +127 -0
  489. package/scripts/debug-register-role.ts +101 -0
  490. package/scripts/debug-version.ts +71 -0
  491. package/scripts/debug_account_c.ts +43 -0
  492. package/scripts/debug_bls.ts +58 -0
  493. package/scripts/debug_config_v036.ts +13 -0
  494. package/scripts/debug_contracts.ts +2 -0
  495. package/scripts/debug_env.ts +69 -0
  496. package/scripts/debug_find_paymaster.ts +98 -0
  497. package/scripts/debug_isolated_registration.ts +256 -0
  498. package/scripts/debug_paymaster_config.ts +19 -0
  499. package/scripts/debug_pim_addr.ts +23 -0
  500. package/scripts/debug_pm_status.ts +51 -0
  501. package/scripts/debug_registry.ts +39 -0
  502. package/scripts/debug_registry_setup.ts +129 -0
  503. package/scripts/debug_sanity.ts +32 -0
  504. package/scripts/debug_shared_config.ts +10 -0
  505. package/scripts/debug_token_compat.ts +51 -0
  506. package/scripts/debug_tokens.ts +41 -0
  507. package/scripts/debug_vcheck.ts +33 -0
  508. package/scripts/deploy-sync.ts +104 -0
  509. package/scripts/deploy_and_init_v3.sh +134 -0
  510. package/scripts/deploy_anvil_accounts.ts +144 -0
  511. package/scripts/deploy_paymaster_v4.ts +139 -0
  512. package/scripts/deploy_test_accounts.ts +401 -0
  513. package/scripts/deprecated/check_aa_entrypoint.ts +29 -0
  514. package/scripts/deprecated/check_paymaster_deposits.ts +45 -0
  515. package/scripts/deprecated/debug_aoa_function.ts +28 -0
  516. package/scripts/deprecated/debug_aoa_issue.ts +16 -0
  517. package/scripts/deprecated/debug_pimlico_aa23.ts +40 -0
  518. package/scripts/deprecated/debug_summary.ts +34 -0
  519. package/scripts/deprecated/deploy_v07_aa.ts +99 -0
  520. package/scripts/deprecated/fix_all_issues.ts +61 -0
  521. package/scripts/deprecated/fund_bpnts.ts +52 -0
  522. package/scripts/deprecated/get_factory_addresses.ts +28 -0
  523. package/scripts/deprecated/recheck_pim.ts +34 -0
  524. package/scripts/dev_tools/extract_abis.sh +151 -0
  525. package/scripts/dev_tools/extract_addresses_to_env.sh +67 -0
  526. package/scripts/dev_tools/final_safe_harmonize.py +77 -0
  527. package/scripts/dev_tools/safe_harmonize.py +107 -0
  528. package/scripts/dev_tools/surgical_harmonize.py +83 -0
  529. package/scripts/experiment/stage3/SETUP_GUIDE.md +258 -0
  530. package/scripts/experiment/stage3/archived_scripts/00_token_distribution.ts +78 -0
  531. package/scripts/experiment/stage3/archived_scripts/01_dao_launch.ts +96 -0
  532. package/scripts/experiment/stage3/archived_scripts/01b_bread_launch.ts +112 -0
  533. package/scripts/experiment/stage3/archived_scripts/02_operator_setup.ts +84 -0
  534. package/scripts/experiment/stage3/archived_scripts/02b_operator_b_setup.ts +104 -0
  535. package/scripts/experiment/stage3/archived_scripts/02c_finalize_operators.ts +86 -0
  536. package/scripts/experiment/stage3/archived_scripts/02d_operator_collateral.ts +89 -0
  537. package/scripts/experiment/stage3/archived_scripts/03_user_onboarding.ts +83 -0
  538. package/scripts/experiment/stage3/archived_scripts/03b_deploy_aa_account.ts +61 -0
  539. package/scripts/experiment/stage3/archived_scripts/03c_aa_onboarding.ts +104 -0
  540. package/scripts/experiment/stage3/archived_scripts/03d_mint_points.ts +60 -0
  541. package/scripts/experiment/stage3/archived_scripts/04_benchmarking.ts +100 -0
  542. package/scripts/experiment/stage3/archived_scripts/05_multi_op_setup.ts +149 -0
  543. package/scripts/experiment/stage3/archived_scripts/README.md +58 -0
  544. package/scripts/experiment/stage3/archived_scripts/check_roles.ts +29 -0
  545. package/scripts/experiment/stage3/archived_scripts/decode_error.ts +23 -0
  546. package/scripts/experiment/stage3/archived_scripts/fund_user.ts +51 -0
  547. package/scripts/experiment/stage3/archived_scripts/gen_b_key.ts +3 -0
  548. package/scripts/experiment/stage3/archived_scripts/gen_keys.ts +4 -0
  549. package/scripts/experiment/stage3/archived_scripts/setup.ts +105 -0
  550. package/scripts/experiment/stage3/archived_scripts/test_key.ts +4 -0
  551. package/scripts/experiment/stage3/archived_scripts/verify_state.ts +59 -0
  552. package/scripts/experiment/stage3/refactored/00_token_distribution.ts +46 -0
  553. package/scripts/experiment/stage3/refactored/02_operator_setup.ts +65 -0
  554. package/scripts/experiment/stage3/refactored/03_user_onboarding.ts +68 -0
  555. package/scripts/experiment/stage3/refactored/05_multi_op_setup.ts +63 -0
  556. package/scripts/experiment/stage3/refactored/README.md +71 -0
  557. package/scripts/extract-docs.sh +141 -0
  558. package/scripts/fund-jack.ts +38 -0
  559. package/scripts/generate_env_from_deployment.ts +109 -0
  560. package/scripts/inspect-anni-token.ts +116 -0
  561. package/scripts/inspect-factory.ts +83 -0
  562. package/scripts/l4-paymasterv4-transfer-test.ts +228 -0
  563. package/scripts/l4-setup.ts +453 -0
  564. package/scripts/l4-state.json +80 -0
  565. package/scripts/phase1_verify_contracts.ts +207 -0
  566. package/scripts/pre_test_sync.ts +83 -0
  567. package/scripts/prepare_sepolia_resources.ts +154 -0
  568. package/scripts/publish_all.sh +39 -0
  569. package/scripts/query-jack-token.ts +22 -0
  570. package/scripts/quick_setup.ts +124 -0
  571. package/scripts/quick_setup_account.ts +80 -0
  572. package/scripts/run_automated_experiment.sh +121 -0
  573. package/scripts/run_daily_experiment.ts +70 -0
  574. package/scripts/run_l4_gasless_regression.sh +32 -0
  575. package/scripts/run_sdk_experiment.sh +13 -0
  576. package/scripts/run_sdk_regression-v2.sh +38 -0
  577. package/scripts/sdk_regression_v2.ts +162 -0
  578. package/scripts/security_audit.sh +172 -0
  579. package/scripts/setup-bbq-community.ts +187 -0
  580. package/scripts/setup-dancing-community.ts +223 -0
  581. package/scripts/setup_test_accounts.ts +88 -0
  582. package/scripts/setup_test_environment.ts +147 -0
  583. package/scripts/sync_anvil_config.cjs +44 -0
  584. package/scripts/sync_config_to_env.ts +88 -0
  585. package/scripts/sync_contract_addresses.ts +186 -0
  586. package/scripts/sync_sepolia_config.cjs +90 -0
  587. package/scripts/sync_sepolia_config.mjs +74 -0
  588. package/scripts/test-brown-v4-deploy.ts +90 -0
  589. package/scripts/test-faucet-and-gasless.ts +170 -0
  590. package/scripts/test-jack-gasless.ts +119 -0
  591. package/scripts/test-jack-registration.ts +133 -0
  592. package/scripts/test-jack-superpaymaster-api.ts +112 -0
  593. package/scripts/test-kms-gasless.ts +138 -0
  594. package/scripts/test_groups.ts +138 -0
  595. package/scripts/test_multi_community_anvil.ts +276 -0
  596. package/scripts/test_new_sdk_apis_sepolia.ts +193 -0
  597. package/scripts/test_sdk_join_idempotent.ts +233 -0
  598. package/scripts/test_simple_sepolia.ts +44 -0
  599. package/scripts/update_env_from_config.ts +83 -0
  600. package/scripts/v2_regression/00_validate_env.ts +101 -0
  601. package/scripts/v2_regression/01_setup_and_fund.ts +132 -0
  602. package/scripts/v2_regression/02_operator_onboarding.ts +174 -0
  603. package/scripts/v2_regression/03_community_registry.ts +139 -0
  604. package/scripts/v2_regression/04_enduser_flow.ts +141 -0
  605. package/scripts/v2_regression/05_admin_audit.ts +157 -0
  606. package/scripts/v2_regression/README.md +161 -0
  607. package/scripts/validate_env.ts +112 -0
  608. package/scripts/verify-tx-status.ts +81 -0
  609. package/scripts/verify_onchain_milestone.ts +114 -0
  610. package/scripts/verify_phase1.ts +66 -0
  611. package/scripts/verify_phase2.ts +66 -0
  612. package/sdk_experiment_data.csv +4 -0
  613. package/simple-test-paymaster.sh +2 -0
  614. package/simple-test-superpaymaster.sh +1 -0
  615. package/tests/l1-regression.test.ts +458 -0
  616. package/tests/l4-test-anni-gasless.ts +105 -0
  617. package/tests/l4-test-jason1-gasless.ts +150 -0
  618. package/tests/l4-test-jason2-gasless.ts +174 -0
  619. package/tests/l4-test-pmv4-deposit.ts +111 -0
  620. package/tests/l4-test-pmv4-gasless.ts +166 -0
  621. package/tests/l4-test-pmv4-submit.ts +223 -0
  622. package/tests/regression/README.md +168 -0
  623. package/tests/regression/config.ts +215 -0
  624. package/tests/regression/display-versions.ts +85 -0
  625. package/tests/regression/index.ts +67 -0
  626. package/tests/regression/l1-tests.ts +267 -0
  627. package/tests/regression/l2-tests.ts +171 -0
  628. package/tests/regression/l3-tests.ts +125 -0
  629. package/tests/regression/l4-gasless.ts +897 -0
  630. package/tests/regression/l4-runner.ts +52 -0
  631. package/tests/reports/phase1_contract_verification.md +45 -0
  632. package/tests/utils/contractVerifier.ts +237 -0
  633. package/tests/utils/userOpHelper.ts +194 -0
  634. package/tsconfig.json +41 -0
  635. package/typedoc.json +59 -0
  636. package/vitest.config.ts +16 -0
  637. package/dist/clients/admin.d.ts +0 -12
  638. package/dist/clients/admin.d.ts.map +0 -1
  639. package/dist/clients/admin.js +0 -20
  640. package/dist/clients/admin.js.map +0 -1
  641. package/dist/clients/community.d.ts +0 -12
  642. package/dist/clients/community.d.ts.map +0 -1
  643. package/dist/clients/community.js +0 -18
  644. package/dist/clients/community.js.map +0 -1
  645. package/dist/clients/endUser.d.ts +0 -12
  646. package/dist/clients/endUser.d.ts.map +0 -1
  647. package/dist/clients/endUser.js +0 -20
  648. package/dist/clients/endUser.js.map +0 -1
  649. package/dist/clients/operator.d.ts +0 -18
  650. package/dist/clients/operator.d.ts.map +0 -1
  651. package/dist/clients/operator.js +0 -65
  652. package/dist/clients/operator.js.map +0 -1
  653. package/dist/index.d.ts +0 -11
  654. package/dist/index.d.ts.map +0 -1
  655. package/dist/index.js +0 -12
  656. package/dist/index.js.map +0 -1
@@ -0,0 +1,956 @@
1
+ ****# AAStar SDK API Documentation
2
+
3
+ ## Overview
4
+
5
+ AAStar SDK is a comprehensive TypeScript SDK for interacting with the AAStar Public Goods Infrastructure and create Your Own Protocol (YOP), providing Account Abstraction (ERC-4337) capabilities with advanced features like gasless SuperPaymaster(AOA+), EOA RainBow Bridge and community management, and reputation systems.
6
+
7
+ **Version**: 0.16.4
8
+ **License**: MIT
9
+ **Repository**: [AAStarCommunity/aastar-sdk](https://github.com/AAStarCommunity/aastar-sdk)
10
+
11
+ ---
12
+
13
+ ## Table of Contents
14
+
15
+ 1. [Installation](#installation)
16
+ 2. [Quick Start](#quick-start)
17
+ 3. [Error Handling - AAStarError](#error-handling---aastarerror)
18
+ 4. [Core Module](#core-module)
19
+ 5. [Account Module](#account-module)
20
+ 6. [Paymaster Module](#paymaster-module)
21
+ 7. [Tokens Module](#tokens-module)
22
+ 8. [Identity Module](#identity-module)
23
+ 9. [DApp Module](#dapp-module)
24
+ 10. [Complete Examples](#complete-examples)
25
+
26
+ ---
27
+
28
+ ## Installation
29
+
30
+ ```bash
31
+ pnpm add @aastar/sdk
32
+ # or individual packages
33
+ pnpm add @aastar/core @aastar/account @aastar/paymaster
34
+ ```
35
+
36
+ ### Development & Maintenance
37
+ ```bash
38
+ # Audit ABI alignment with contracts
39
+ pnpm run audit:abi
40
+
41
+ # Generate code coverage report
42
+ pnpm run test:coverage
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Quick Start
48
+
49
+ ```typescript
50
+ import { createOperatorClient, createEndUserClient } from '@aastar/core';
51
+ import { sepolia } from 'viem/chains';
52
+
53
+ // Create an Operator client
54
+ const operatorClient = createOperatorClient({
55
+ chain: sepolia,
56
+ transport: http('https://rpc.sepolia.org'),
57
+ account: privateKeyToAccount('0x...'),
58
+ });
59
+
60
+ // Stake GTokens
61
+ const stakeTx = await operatorClient.stake({
62
+ amount: parseEther('100'),
63
+ });
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Error Handling - AAStarError
69
+
70
+ ### Overview
71
+
72
+ All SDK clients throw `AAStarError` for better error handling and debugging. `AAStarError` provides structured error information with error codes, messages, and optional details.
73
+
74
+ ### AAStarErrorCode Enum
75
+
76
+ ```typescript
77
+ export enum AAStarErrorCode {
78
+ VALIDATION_ERROR = 'VALIDATION_ERROR', // Invalid input parameters
79
+ CONTRACT_ERROR = 'CONTRACT_ERROR', // Smart contract execution failed
80
+ NETWORK_ERROR = 'NETWORK_ERROR', // RPC or network issues
81
+ CONFIGURATION_ERROR = 'CONFIGURATION_ERROR', // Missing or invalid configuration
82
+ UNKNOWN_ERROR = 'UNKNOWN_ERROR', // Unclassified errors
83
+ }
84
+ ```
85
+
86
+ ### AAStarError Class
87
+
88
+ ```typescript
89
+ class AAStarError extends Error {
90
+ code: AAStarErrorCode;
91
+ details?: any;
92
+
93
+ constructor(message: string, code: AAStarErrorCode, details?: any);
94
+ }
95
+ ```
96
+
97
+ ### Usage Example
98
+
99
+ ```typescript
100
+ import { createEndUserClient, AAStarError, AAStarErrorCode } from '@aastar/sdk';
101
+
102
+ try {
103
+ await client.executeGasless({
104
+ to: '0xinvalid', // Invalid address
105
+ value: 1000n,
106
+ });
107
+ } catch (error) {
108
+ if (error instanceof AAStarError) {
109
+ switch (error.code) {
110
+ case AAStarErrorCode.VALIDATION_ERROR:
111
+ console.error(`Validation failed: ${error.message}`);
112
+ console.error(`Details:`, error.details);
113
+ break;
114
+ case AAStarErrorCode.CONTRACT_ERROR:
115
+ console.error(`Contract execution failed: ${error.message}`);
116
+ break;
117
+ case AAStarErrorCode.NETWORK_ERROR:
118
+ console.error(`Network error: ${error.message}`);
119
+ // Retry logic here
120
+ break;
121
+ case AAStarErrorCode.CONFIGURATION_ERROR:
122
+ console.error(`Configuration error: ${error.message}`);
123
+ break;
124
+ default:
125
+ console.error(`Unknown error: ${error.message}`);
126
+ }
127
+ } else {
128
+ // Handle non-AAStarError exceptions
129
+ console.error('Unexpected error:', error);
130
+ }
131
+ }
132
+ ```
133
+
134
+ ### Error Code Reference
135
+
136
+ | Error Code | Description | Common Causes | Recommended Action |
137
+ |------------|-------------|---------------|-------------------|
138
+ | `VALIDATION_ERROR` | Invalid input parameters | Invalid address format, negative amounts, missing required fields | Validate inputs before calling SDK methods |
139
+ | `CONTRACT_ERROR` | Smart contract execution failed | Insufficient gas, reverted transaction, access denied | Check contract state, user permissions, and gas limits |
140
+ | `NETWORK_ERROR` | RPC or network communication failed | Timeout, connection refused, invalid RPC endpoint | Retry with exponential backoff, check network status |
141
+ | `CONFIGURATION_ERROR` | SDK configuration is invalid | Missing contract addresses, invalid network configuration | Verify SDK initialization parameters |
142
+ | `UNKNOWN_ERROR` | Unclassified error | Unexpected runtime errors | Report to SDK maintainers with error details |
143
+
144
+ ### Best Practices
145
+
146
+ #### 1. Always Check Error Type
147
+
148
+ ```typescript
149
+ try {
150
+ await sdkMethod();
151
+ } catch (error) {
152
+ if (error instanceof AAStarError) {
153
+ // Handle AAStarError
154
+ } else {
155
+ // Handle other errors
156
+ }
157
+ }
158
+ ```
159
+
160
+ #### 2. Use Error Details for Debugging
161
+
162
+ ```typescript
163
+ catch (error) {
164
+ if (error instanceof AAStarError) {
165
+ console.error({
166
+ code: error.code,
167
+ message: error.message,
168
+ details: error.details, // Additional context
169
+ });
170
+ }
171
+ }
172
+ ```
173
+
174
+ ####3. Implement Retry Logic for Network Errors
175
+
176
+ ```typescript
177
+ async function withRetry(fn: () => Promise<any>, maxRetries = 3) {
178
+ for (let i = 0; i < maxRetries; i++) {
179
+ try {
180
+ return await fn();
181
+ } catch (error) {
182
+ if (error instanceof AAStarError &&
183
+ error.code === AAStarErrorCode.NETWORK_ERROR &&
184
+ i < maxRetries - 1) {
185
+ await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, i)));
186
+ continue;
187
+ }
188
+ throw error;
189
+ }
190
+ }
191
+ }
192
+
193
+ // Usage
194
+ await withRetry(() => client.executeGasless({...}));
195
+ ```
196
+
197
+ #### 4. Provide User-Friendly Messages
198
+
199
+ ```typescript
200
+ function getUserFriendlyMessage(error: AAStarError): string {
201
+ switch (error.code) {
202
+ case AAStarErrorCode.VALIDATION_ERROR:
203
+ return 'Please check your input and try again.';
204
+ case AAStarErrorCode.CONTRACT_ERROR:
205
+ return 'Transaction failed. Please try again later.';
206
+ case AAStarErrorCode.NETWORK_ERROR:
207
+ return 'Network connection issue. Please check your internet.';
208
+ case AAStarErrorCode.CONFIGURATION_ERROR:
209
+ return 'SDK configuration error. Please contact support.';
210
+ default:
211
+ return 'An unexpected error occurred. Please try again.';
212
+ }
213
+ }
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Core Module
219
+
220
+ ### `@aastar/core`
221
+
222
+ Core configuration, contract addresses, and client creation utilities.
223
+
224
+ #### Exports
225
+
226
+ ```typescript
227
+ export * from './branding';
228
+ export * from './contract-addresses';
229
+ export * from './contracts';
230
+ export * from './contract-versions';
231
+ export * from './networks';
232
+ export * from './constants';
233
+ export * from './communities';
234
+ export * from './abis';
235
+ export * from './clients';
236
+ export * from './actions';
237
+ ```
238
+
239
+ ---
240
+
241
+ ### Networks
242
+
243
+ #### `getNetwork(network)`
244
+
245
+ Get network configuration for a supported network.
246
+
247
+ **Parameters:**
248
+ - `network`: `SupportedNetwork` - Network name ('sepolia' | 'optimism' | 'optimism-sepolia' | 'anvil')
249
+
250
+ **Returns:** Network configuration object
251
+
252
+ **Example:**
253
+ ```typescript
254
+ import { getNetwork } from '@aastar/core';
255
+
256
+ const network = getNetwork('sepolia');
257
+ console.log(network.chainId); // 11155111
258
+ console.log(network.rpcUrl); // 'https://rpc.sepolia.org'
259
+ ```
260
+
261
+ ---
262
+
263
+ #### `getTxUrl(network, txHash)`
264
+
265
+ Get block explorer URL for a transaction.
266
+
267
+ **Parameters:**
268
+ - `network`: `SupportedNetwork` - Network name
269
+ - `txHash`: `string` - Transaction hash
270
+
271
+ **Returns:** `string` - Full transaction URL
272
+
273
+ **Example:**
274
+ ```typescript
275
+ import { getTxUrl } from '@aastar/core';
276
+
277
+ const url = getTxUrl('sepolia', '0x123...');
278
+ // 'https://sepolia.etherscan.io/tx/0x123...'
279
+ ```
280
+
281
+ ---
282
+
283
+ #### `getAddressUrl(network, address)`
284
+
285
+ Get block explorer URL for an address.
286
+
287
+ **Parameters:**
288
+ - `network`: `SupportedNetwork` - Network name
289
+ - `address`: `string` - Contract or wallet address
290
+
291
+ **Returns:** `string` - Full address URL
292
+
293
+ **Example:**
294
+ ```typescript
295
+ import { getAddressUrl } from '@aastar/core';
296
+
297
+ const url = getAddressUrl('sepolia', '0xabc...');
298
+ // 'https://sepolia.etherscan.io/address/0xabc...'
299
+ ```
300
+
301
+ ---
302
+
303
+ #### `getChainId(network)`
304
+
305
+ Get chain ID for a network.
306
+
307
+ **Parameters:**
308
+ - `network`: `SupportedNetwork` - Network name
309
+
310
+ **Returns:** `number` - Chain ID
311
+
312
+ **Example:**
313
+ ```typescript
314
+ import { getChainId } from '@aastar/core';
315
+
316
+ const chainId = getChainId('sepolia'); // 11155111
317
+ ```
318
+
319
+ ---
320
+
321
+ ### Contract Addresses
322
+
323
+ #### `CONTRACTS`
324
+
325
+ Object containing all contract addresses for supported networks.
326
+
327
+ **Structure:**
328
+ ```typescript
329
+ {
330
+ sepolia: {
331
+ registry: Address,
332
+ superPaymaster: Address,
333
+ gToken: Address,
334
+ gTokenStaking: Address,
335
+ // ... more contracts
336
+ },
337
+ // ... other networks
338
+ }
339
+ ```
340
+
341
+ **Example:**
342
+ ```typescript
343
+ import { CONTRACTS } from '@aastar/core';
344
+
345
+ const registryAddress = CONTRACTS.sepolia.registry;
346
+ console.log(registryAddress); // '0x...'
347
+ ```
348
+
349
+ ---
350
+
351
+ ### Constants
352
+
353
+ #### Protocol Constants
354
+
355
+ ```typescript
356
+ import {
357
+ SERVICE_FEE_RATE, // 200 (2%)
358
+ MAX_SERVICE_FEE, // 1000 (10%)
359
+ BPS_DENOMINATOR, // 10000
360
+ ROLE_ENDUSER, // Keccak256 hash
361
+ ROLE_COMMUNITY, // Keccak256 hash
362
+ ROLE_PAYMASTER_SUPER, // Keccak256 hash
363
+ } from '@aastar/core';
364
+ ```
365
+
366
+ ---
367
+
368
+ ### Client Creation
369
+
370
+ #### `createOperatorClient(config)`
371
+
372
+ Create a client for Paymaster operators.
373
+
374
+ **Parameters:**
375
+ - `config`: `ClientConfig`
376
+ - `chain`: `Chain` - Viem chain object
377
+ - `transport`: `Transport` - Viem transport
378
+ - `account`: `Account` - Operator account
379
+
380
+ **Returns:** `OperatorClient` with extended actions
381
+
382
+ **Example:**
383
+ ```typescript
384
+ import { createOperatorClient } from '@aastar/core';
385
+ import { http } from 'viem';
386
+ import { sepolia } from 'viem/chains';
387
+ import { privateKeyToAccount } from 'viem/accounts';
388
+
389
+ const client = createOperatorClient({
390
+ chain: sepolia,
391
+ transport: http('https://rpc.sepolia.org'),
392
+ account: privateKeyToAccount(process.env.OPERATOR_KEY),
393
+ });
394
+
395
+ // Available actions:
396
+ await client.stake({ amount: parseEther('100') });
397
+ await client.deposit({ amount: parseEther('10') });
398
+ await client.withdraw({ amount: parseEther('5') });
399
+ ```
400
+
401
+ ---
402
+
403
+ #### `createCommunityClient(config)`
404
+
405
+ Create a client for community managers.
406
+
407
+ **Parameters:**
408
+ - `config`: `ClientConfig`
409
+ - `chain`: `Chain`
410
+ - `transport`: `Transport`
411
+ - `account`: `Account` - Community admin account
412
+
413
+ **Returns:** `CommunityClient` with extended actions
414
+
415
+ **Example:**
416
+ ```typescript
417
+ import { createCommunityClient } from '@aastar/core';
418
+
419
+ const client = createCommunityClient({
420
+ chain: sepolia,
421
+ transport: http(),
422
+ account: communityAccount,
423
+ });
424
+
425
+ // Available actions:
426
+ await client.registerCommunity({ name: 'MyDAO' });
427
+ await client.mintSBT({ to: userAddress, tokenId: 1n });
428
+ await client.setReputationRules({ rules: [...] });
429
+ ```
430
+
431
+ ---
432
+
433
+ #### `createEndUserClient(config)`
434
+
435
+ Create a client for end users.
436
+
437
+ **Parameters:**
438
+ - `config`: `ClientConfig`
439
+ - `chain`: `Chain`
440
+ - `transport`: `Transport`
441
+ - `account`: `Account` - User account
442
+
443
+ **Returns:** `EndUserClient` with extended actions
444
+
445
+ **Example:**
446
+ ```typescript
447
+ import { createEndUserClient } from '@aastar/core';
448
+
449
+ const client = createEndUserClient({
450
+ chain: sepolia,
451
+ transport: http(),
452
+ account: userAccount,
453
+ });
454
+
455
+ // Available actions:
456
+ const credit = await client.getCreditLimit();
457
+ await client.repayDebt({ amount: parseEther('1') });
458
+ ```
459
+
460
+ ---
461
+
462
+ #### `createAdminClient(config)`
463
+
464
+ Create a client for protocol administrators.
465
+
466
+ **Parameters:**
467
+ - `config`: `ClientConfig`
468
+ - `chain`: `Chain`
469
+ - `transport`: `Transport`
470
+ - `account`: `Account` - Admin account
471
+
472
+ **Returns:** `AdminClient` with extended actions
473
+
474
+ **Example:**
475
+ ```typescript
476
+ import { createAdminClient } from '@aastar/core';
477
+
478
+ const client = createAdminClient({
479
+ chain: sepolia,
480
+ transport: http(),
481
+ account: adminAccount,
482
+ });
483
+
484
+ // Available actions:
485
+ await client.slashOperator({ operator: address, amount: parseEther('10') });
486
+ await client.setGlobalParameters({ exitFee: 100n });
487
+ ```
488
+
489
+ ---
490
+
491
+ ## Account Module
492
+
493
+ ### `@aastar/account`
494
+
495
+ Account Abstraction utilities for creating and managing smart accounts.
496
+
497
+ #### `createSmartAccount(config)`
498
+
499
+ Create a new smart account (ERC-4337).
500
+
501
+ **Parameters:**
502
+ - `config`: `SmartAccountConfig`
503
+ - `owner`: `Address` - EOA owner address
504
+ - `salt`: `bigint` - Salt for deterministic address
505
+ - `factoryAddress`: `Address` - Account factory address
506
+
507
+ **Returns:** `SmartAccount` object
508
+
509
+ **Example:**
510
+ ```typescript
511
+ import { createSmartAccount } from '@aastar/account';
512
+
513
+ const account = await createSmartAccount({
514
+ owner: '0x...',
515
+ salt: 0n,
516
+ factoryAddress: CONTRACTS.sepolia.simpleAccountFactory,
517
+ });
518
+
519
+ console.log(account.address); // Predicted smart account address
520
+ ```
521
+
522
+ ---
523
+
524
+ #### `getAccountAddress(config)`
525
+
526
+ Get the deterministic address for a smart account.
527
+
528
+ **Parameters:**
529
+ - `config`: `SmartAccountConfig`
530
+
531
+ **Returns:** `Promise<Address>` - Smart account address
532
+
533
+ **Example:**
534
+ ```typescript
535
+ import { getAccountAddress } from '@aastar/account';
536
+
537
+ const address = await getAccountAddress({
538
+ owner: ownerAddress,
539
+ salt: 0n,
540
+ factoryAddress: factoryAddress,
541
+ });
542
+ ```
543
+
544
+ ---
545
+
546
+ ## Paymaster Module
547
+
548
+ ### `@aastar/paymaster`
549
+
550
+ Paymaster utilities for gas sponsorship.
551
+
552
+ #### `getPaymasterAndData(userOp, paymasterConfig)`
553
+
554
+ Generate paymaster data for a UserOperation.
555
+
556
+ **Parameters:**
557
+ - `userOp`: `UserOperation` - User operation object
558
+ - `paymasterConfig`: `PaymasterConfig`
559
+ - `paymasterAddress`: `Address`
560
+ - `communityAddress`: `Address`
561
+ - `xPNTsAddress`: `Address`
562
+ - `verificationGasLimit`: `bigint`
563
+ - `postOpGasLimit`: `bigint`
564
+
565
+ **Returns:** `Hex` - Encoded paymaster and data
566
+
567
+ **Example:**
568
+ ```typescript
569
+ import { getPaymasterAndData } from '@aastar/paymaster';
570
+
571
+ const paymasterAndData = getPaymasterAndData(userOp, {
572
+ paymasterAddress: CONTRACTS.sepolia.superPaymaster,
573
+ communityAddress: '0x...',
574
+ xPNTsAddress: '0x...',
575
+ verificationGasLimit: 100000n,
576
+ postOpGasLimit: 50000n,
577
+ });
578
+ ```
579
+
580
+ ---
581
+
582
+ #### `checkEligibility(user, community, rpcUrl)`
583
+
584
+ Check if a user is eligible for gas sponsorship.
585
+
586
+ **Parameters:**
587
+ - `user`: `Address` - User address
588
+ - `community`: `Address` - Community address
589
+ - `rpcUrl`: `string` - RPC endpoint
590
+
591
+ **Returns:** `Promise<boolean>` - Eligibility status
592
+
593
+ **Example:**
594
+ ```typescript
595
+ import { checkEligibility } from '@aastar/paymaster';
596
+
597
+ const isEligible = await checkEligibility(
598
+ userAddress,
599
+ communityAddress,
600
+ 'https://rpc.sepolia.org'
601
+ );
602
+
603
+ if (isEligible) {
604
+ // Proceed with sponsored transaction
605
+ }
606
+ ```
607
+
608
+ ---
609
+
610
+ ## Tokens Module
611
+
612
+ ### `@aastar/tokens`
613
+
614
+ Token utilities for GToken, xPNTs, and SBTs.
615
+
616
+ #### `mintGToken(client, to, amount)`
617
+
618
+ Mint GTokens (test/development only).
619
+
620
+ **Parameters:**
621
+ - `client`: `WalletClient` - Wallet client with minter role
622
+ - `to`: `Address` - Recipient address
623
+ - `amount`: `bigint` - Amount to mint (in wei)
624
+
625
+ **Returns:** `Promise<Hash>` - Transaction hash
626
+
627
+ **Example:**
628
+ ```typescript
629
+ import { mintGToken } from '@aastar/tokens';
630
+
631
+ const txHash = await mintGToken(
632
+ client,
633
+ recipientAddress,
634
+ parseEther('1000')
635
+ );
636
+ ```
637
+
638
+ ---
639
+
640
+ #### `approveGToken(client, spender, amount)`
641
+
642
+ Approve GToken spending.
643
+
644
+ **Parameters:**
645
+ - `client`: `WalletClient`
646
+ - `spender`: `Address` - Spender address (e.g., staking contract)
647
+ - `amount`: `bigint` - Approval amount
648
+
649
+ **Returns:** `Promise<Hash>` - Transaction hash
650
+
651
+ **Example:**
652
+ ```typescript
653
+ import { approveGToken } from '@aastar/tokens';
654
+
655
+ await approveGToken(
656
+ client,
657
+ CONTRACTS.sepolia.gTokenStaking,
658
+ parseEther('100')
659
+ );
660
+ ```
661
+
662
+ ---
663
+
664
+ #### `getGTokenBalance(client, address)`
665
+
666
+ Get GToken balance for an address.
667
+
668
+ **Parameters:**
669
+ - `client`: `PublicClient`
670
+ - `address`: `Address`
671
+
672
+ **Returns:** `Promise<bigint>` - Balance in wei
673
+
674
+ **Example:**
675
+ ```typescript
676
+ import { getGTokenBalance } from '@aastar/tokens';
677
+
678
+ const balance = await getGTokenBalance(client, userAddress);
679
+ console.log(formatEther(balance)); // "1000.0"
680
+ ```
681
+
682
+ ---
683
+
684
+ ## Identity Module
685
+
686
+ ### `@aastar/identity`
687
+
688
+ Identity and reputation management.
689
+
690
+ #### `getSBTBalance(client, user, tokenId)`
691
+
692
+ Get SBT (Soul-Bound Token) balance.
693
+
694
+ **Parameters:**
695
+ - `client`: `PublicClient`
696
+ - `user`: `Address`
697
+ - `tokenId`: `bigint`
698
+
699
+ **Returns:** `Promise<bigint>` - SBT balance (0 or 1)
700
+
701
+ **Example:**
702
+ ```typescript
703
+ import { getSBTBalance } from '@aastar/identity';
704
+
705
+ const hasSBT = await getSBTBalance(client, userAddress, 1n);
706
+ console.log(hasSBT > 0n); // true if user has the SBT
707
+ ```
708
+
709
+ ---
710
+
711
+ #### `getReputationScore(client, user, community)`
712
+
713
+ Get user's reputation score in a community.
714
+
715
+ **Parameters:**
716
+ - `client`: `PublicClient`
717
+ - `user`: `Address`
718
+ - `community`: `Address`
719
+
720
+ **Returns:** `Promise<bigint>` - Reputation score
721
+
722
+ **Example:**
723
+ ```typescript
724
+ import { getReputationScore } from '@aastar/identity';
725
+
726
+ const score = await getReputationScore(
727
+ client,
728
+ userAddress,
729
+ communityAddress
730
+ );
731
+ console.log(score); // 850n
732
+ ```
733
+
734
+ ---
735
+
736
+ ## DApp Module
737
+
738
+ ### `@aastar/dapp`
739
+
740
+ React hooks and utilities for DApp integration.
741
+
742
+ #### `useAAStar(config)`
743
+
744
+ React hook for AAStar SDK integration.
745
+
746
+ **Parameters:**
747
+ - `config`: `AAStarConfig`
748
+ - `network`: `SupportedNetwork`
749
+ - `rpcUrl`: `string`
750
+
751
+ **Returns:** `AAStarContext` object
752
+
753
+ **Example:**
754
+ ```typescript
755
+ import { useAAStar } from '@aastar/dapp';
756
+
757
+ function MyComponent() {
758
+ const { client, account, connect, disconnect } = useAAStar({
759
+ network: 'sepolia',
760
+ rpcUrl: 'https://rpc.sepolia.org',
761
+ });
762
+
763
+ return (
764
+ <button onClick={connect}>Connect Wallet</button>
765
+ );
766
+ }
767
+ ```
768
+
769
+ ---
770
+
771
+ ## Complete Examples
772
+
773
+ ### Example 1: Operator Staking Flow
774
+
775
+ ```typescript
776
+ import { createOperatorClient, CONTRACTS } from '@aastar/core';
777
+ import { mintGToken, approveGToken } from '@aastar/tokens';
778
+ import { http, parseEther } from 'viem';
779
+ import { sepolia } from 'viem/chains';
780
+ import { privateKeyToAccount } from 'viem/accounts';
781
+
782
+ async function operatorStakingFlow() {
783
+ // 1. Create operator client
784
+ const operator = createOperatorClient({
785
+ chain: sepolia,
786
+ transport: http(process.env.RPC_URL),
787
+ account: privateKeyToAccount(process.env.OPERATOR_KEY),
788
+ });
789
+
790
+ // 2. Mint GTokens (testnet only)
791
+ await mintGToken(
792
+ operator,
793
+ operator.account.address,
794
+ parseEther('1000')
795
+ );
796
+
797
+ // 3. Approve staking contract
798
+ await approveGToken(
799
+ operator,
800
+ CONTRACTS.sepolia.gTokenStaking,
801
+ parseEther('100')
802
+ );
803
+
804
+ // 4. Stake tokens
805
+ const stakeTx = await operator.stake({
806
+ amount: parseEther('100'),
807
+ });
808
+
809
+ console.log('Staked! TX:', stakeTx);
810
+
811
+ // 5. Deposit to Paymaster
812
+ const depositTx = await operator.deposit({
813
+ amount: parseEther('10'),
814
+ });
815
+
816
+ console.log('Deposited! TX:', depositTx);
817
+ }
818
+ ```
819
+
820
+ ---
821
+
822
+ ### Example 2: Community Registration
823
+
824
+ ```typescript
825
+ import { createCommunityClient, CONTRACTS } from '@aastar/core';
826
+ import { http } from 'viem';
827
+ import { sepolia } from 'viem/chains';
828
+
829
+ async function registerCommunity() {
830
+ const community = createCommunityClient({
831
+ chain: sepolia,
832
+ transport: http(process.env.RPC_URL),
833
+ account: communityAccount,
834
+ });
835
+
836
+ // Register community
837
+ await community.registerCommunity({
838
+ name: 'MyAwesomeDAO',
839
+ metadata: 'ipfs://...',
840
+ });
841
+
842
+ // Mint SBT to member
843
+ await community.mintSBT({
844
+ to: memberAddress,
845
+ tokenId: 1n,
846
+ });
847
+
848
+ // Set reputation rules
849
+ await community.setReputationRules({
850
+ rules: [
851
+ { metric: 'activity', weight: 30 },
852
+ { metric: 'contribution', weight: 70 },
853
+ ],
854
+ });
855
+ }
856
+ ```
857
+
858
+ ---
859
+
860
+ ### Example 3: End User Gasless Transaction
861
+
862
+ ```typescript
863
+ import { createEndUserClient, checkEligibility } from '@aastar/core';
864
+ import { getPaymasterAndData } from '@aastar/paymaster';
865
+
866
+ async function sendGaslessTransaction() {
867
+ const user = createEndUserClient({
868
+ chain: sepolia,
869
+ transport: http(),
870
+ account: userAccount,
871
+ });
872
+
873
+ // Check eligibility
874
+ const eligible = await checkEligibility(
875
+ user.account.address,
876
+ communityAddress,
877
+ process.env.RPC_URL
878
+ );
879
+
880
+ if (!eligible) {
881
+ throw new Error('Not eligible for gas sponsorship');
882
+ }
883
+
884
+ // Create UserOperation
885
+ const userOp = {
886
+ sender: user.account.address,
887
+ nonce: 0n,
888
+ // ... other fields
889
+ };
890
+
891
+ // Get paymaster data
892
+ const paymasterAndData = getPaymasterAndData(userOp, {
893
+ paymasterAddress: CONTRACTS.sepolia.superPaymaster,
894
+ communityAddress,
895
+ xPNTsAddress: CONTRACTS.sepolia.xPNTsToken,
896
+ verificationGasLimit: 100000n,
897
+ postOpGasLimit: 50000n,
898
+ });
899
+
900
+ // Submit to bundler
901
+ const txHash = await submitUserOperation({
902
+ ...userOp,
903
+ paymasterAndData,
904
+ });
905
+
906
+ console.log('Gasless TX:', txHash);
907
+ }
908
+ ```
909
+
910
+ ---
911
+
912
+ ## Error Handling
913
+
914
+ All SDK functions may throw errors. Always wrap in try-catch:
915
+
916
+ ```typescript
917
+ try {
918
+ await client.stake({ amount: parseEther('100') });
919
+ } catch (error) {
920
+ if (error.message.includes('insufficient balance')) {
921
+ console.error('Not enough GTokens');
922
+ } else {
923
+ console.error('Staking failed:', error);
924
+ }
925
+ }
926
+ ```
927
+
928
+ ---
929
+
930
+ ## TypeScript Support
931
+
932
+ The SDK is fully typed. Use TypeScript for the best development experience:
933
+
934
+ ```typescript
935
+ import type {
936
+ OperatorClient,
937
+ CommunityClient,
938
+ EndUserClient,
939
+ AdminClient,
940
+ SupportedNetwork,
941
+ } from '@aastar/core';
942
+ ```
943
+
944
+ ---
945
+
946
+ ## Support
947
+
948
+ - **Documentation**: [docs.aastar.io](https://docs.aastar.io)
949
+ - **GitHub**: [AAStarCommunity/aastar-sdk](https://github.com/AAStarCommunity/aastar-sdk)
950
+ - **Discord**: [Join our community](https://discord.gg/aastar)
951
+
952
+ ---
953
+
954
+ ## License
955
+
956
+ MIT © AAStar Community