@aastar/sdk 0.16.6 → 0.16.8

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 (763) hide show
  1. package/README.md +96 -245
  2. package/dist/account/src/accounts/simple.d.ts +18 -0
  3. package/{packages/account/src/accounts/simple.ts → dist/account/src/accounts/simple.js} +12 -47
  4. package/dist/account/src/eoa.d.ts +10 -0
  5. package/dist/account/src/eoa.js +21 -0
  6. package/dist/account/src/index.d.ts +19 -0
  7. package/dist/account/src/index.js +49 -0
  8. package/dist/core/src/abis/BLSAggregator.json +686 -0
  9. package/dist/core/src/abis/BLSValidator.json +42 -0
  10. package/dist/core/src/abis/DVTValidator.json +368 -0
  11. package/dist/core/src/abis/EntryPoint.json +1382 -0
  12. package/dist/core/src/abis/GToken.json +513 -0
  13. package/dist/core/src/abis/GTokenStaking.json +949 -0
  14. package/dist/core/src/abis/MySBT.json +1518 -0
  15. package/dist/core/src/abis/Paymaster.json +1143 -0
  16. package/dist/core/src/abis/PaymasterFactory.json +640 -0
  17. package/dist/core/src/abis/Registry.json +1942 -0
  18. package/dist/core/src/abis/ReputationSystem.json +699 -0
  19. package/dist/core/src/abis/SimpleAccount.json +560 -0
  20. package/dist/core/src/abis/SimpleAccountFactory.json +111 -0
  21. package/dist/core/src/abis/SuperPaymaster.json +1781 -0
  22. package/dist/core/src/abis/index.d.ts +1126 -0
  23. package/{packages/core/src/abis/index.ts → dist/core/src/abis/index.js} +7 -20
  24. package/dist/core/src/abis/xPNTsFactory.json +718 -0
  25. package/dist/core/src/abis/xPNTsToken.json +1280 -0
  26. package/dist/core/src/actions/StateValidator.d.ts +68 -0
  27. package/{packages/core/src/actions/StateValidator.ts → dist/core/src/actions/StateValidator.js} +68 -134
  28. package/dist/core/src/actions/account.d.ts +55 -0
  29. package/dist/core/src/actions/account.js +133 -0
  30. package/dist/core/src/actions/aggregator.d.ts +17 -0
  31. package/dist/core/src/actions/aggregator.js +31 -0
  32. package/dist/core/src/actions/dvt.d.ts +30 -0
  33. package/dist/core/src/actions/dvt.js +41 -0
  34. package/dist/core/src/actions/entryPoint.d.ts +90 -0
  35. package/dist/core/src/actions/entryPoint.js +211 -0
  36. package/dist/core/src/actions/factory.d.ts +215 -0
  37. package/dist/core/src/actions/factory.js +442 -0
  38. package/dist/core/src/actions/faucet.d.ts +48 -0
  39. package/{packages/core/src/actions/faucet.ts → dist/core/src/actions/faucet.js} +58 -142
  40. package/dist/core/src/actions/gtokenExtended.d.ts +39 -0
  41. package/dist/core/src/actions/gtokenExtended.js +115 -0
  42. package/dist/core/src/actions/index.d.ts +15 -0
  43. package/{packages/core/src/actions/index.ts → dist/core/src/actions/index.js} +0 -1
  44. package/dist/core/src/actions/paymasterV4.d.ts +170 -0
  45. package/dist/core/src/actions/paymasterV4.js +334 -0
  46. package/dist/core/src/actions/registry.d.ts +246 -0
  47. package/dist/core/src/actions/registry.js +667 -0
  48. package/dist/core/src/actions/reputation.d.ts +129 -0
  49. package/dist/core/src/actions/reputation.js +281 -0
  50. package/dist/core/src/actions/sbt.d.ts +191 -0
  51. package/dist/core/src/actions/sbt.js +533 -0
  52. package/dist/core/src/actions/staking.d.ts +132 -0
  53. package/{packages/core/src/actions/staking.ts → dist/core/src/actions/staking.js} +83 -174
  54. package/dist/core/src/actions/superPaymaster.d.ts +237 -0
  55. package/dist/core/src/actions/superPaymaster.js +644 -0
  56. package/dist/core/src/actions/tokens.d.ts +229 -0
  57. package/dist/core/src/actions/tokens.js +415 -0
  58. package/dist/core/src/branding.d.ts +30 -0
  59. package/dist/core/src/branding.js +30 -0
  60. package/dist/core/src/clients/BaseClient.d.ts +25 -0
  61. package/{packages/core/src/clients/BaseClient.ts → dist/core/src/clients/BaseClient.js} +16 -28
  62. package/{packages/core/src/clients/types.ts → dist/core/src/clients/types.d.ts} +0 -9
  63. package/dist/core/src/clients/types.js +1 -0
  64. package/dist/core/src/clients.d.ts +5 -0
  65. package/dist/core/src/clients.js +11 -0
  66. package/dist/core/src/communities.d.ts +52 -0
  67. package/dist/core/src/communities.js +73 -0
  68. package/dist/core/src/config/ContractConfigManager.d.ts +20 -0
  69. package/{packages/core/src/config/ContractConfigManager.ts → dist/core/src/config/ContractConfigManager.js} +8 -23
  70. package/dist/core/src/constants.d.ts +88 -0
  71. package/dist/core/src/constants.js +125 -0
  72. package/dist/core/src/contract-addresses.d.ts +110 -0
  73. package/dist/core/src/contract-addresses.js +99 -0
  74. package/dist/core/src/contracts.d.ts +424 -0
  75. package/dist/core/src/contracts.js +343 -0
  76. package/dist/core/src/crypto/blsSigner.d.ts +64 -0
  77. package/{packages/core/src/crypto/blsSigner.ts → dist/core/src/crypto/blsSigner.js} +23 -49
  78. package/dist/core/src/crypto/index.js +1 -0
  79. package/dist/core/src/index.d.ts +21 -0
  80. package/{packages/core/src/index.ts → dist/core/src/index.js} +0 -1
  81. package/dist/core/src/networks.d.ts +127 -0
  82. package/{lib/shared-config/src/networks.ts → dist/core/src/networks.js} +34 -33
  83. package/dist/core/src/requirementChecker.d.ts +38 -0
  84. package/{packages/core/src/requirementChecker.ts → dist/core/src/requirementChecker.js} +26 -74
  85. package/dist/core/src/roles.d.ts +204 -0
  86. package/{packages/core/src/roles.ts → dist/core/src/roles.js} +23 -67
  87. package/dist/core/src/utils/validation.d.ts +24 -0
  88. package/{packages/core/src/utils/validation.ts → dist/core/src/utils/validation.js} +6 -16
  89. package/{packages/dapp/src/index.ts → dist/dapp/src/index.d.ts} +0 -1
  90. package/dist/dapp/src/index.js +3 -0
  91. package/dist/dapp/src/ui/hooks/useCreditScore.d.ts +13 -0
  92. package/{packages/dapp/src/ui/hooks/useCreditScore.ts → dist/dapp/src/ui/hooks/useCreditScore.js} +11 -23
  93. package/dist/dapp/src/ui/hooks/useSuperPaymaster.d.ts +8 -0
  94. package/{packages/dapp/src/ui/hooks/useSuperPaymaster.ts → dist/dapp/src/ui/hooks/useSuperPaymaster.js} +9 -17
  95. package/dist/dapp/src/ui/index.d.ts +4 -0
  96. package/{packages/dapp/src/ui/index.ts → dist/dapp/src/ui/index.js} +3 -8
  97. package/dist/identity/src/index.d.ts +46 -0
  98. package/{packages/identity/src/index.ts → dist/identity/src/index.js} +21 -41
  99. package/dist/identity/src/mysbt.d.ts +13 -0
  100. package/{packages/identity/src/mysbt.ts → dist/identity/src/mysbt.js} +9 -20
  101. package/dist/paymaster/src/SuperPaymaster/index.d.ts +44 -0
  102. package/{packages/paymaster/src/SuperPaymaster/index.ts → dist/paymaster/src/SuperPaymaster/index.js} +27 -62
  103. package/dist/paymaster/src/V4/PaymasterClient.d.ts +79 -0
  104. package/{packages/paymaster/src/V4/PaymasterClient.ts → dist/paymaster/src/V4/PaymasterClient.js} +63 -133
  105. package/dist/paymaster/src/V4/PaymasterOperator.d.ts +41 -0
  106. package/{packages/paymaster/src/V4/PaymasterOperator.ts → dist/paymaster/src/V4/PaymasterOperator.js} +66 -107
  107. package/dist/paymaster/src/V4/PaymasterUtils.d.ts +55 -0
  108. package/{packages/paymaster/src/V4/PaymasterUtils.ts → dist/paymaster/src/V4/PaymasterUtils.js} +19 -80
  109. package/dist/paymaster/src/V4/SuperPaymasterClient.d.ts +21 -0
  110. package/{packages/paymaster/src/V4/SuperPaymasterClient.ts → dist/paymaster/src/V4/SuperPaymasterClient.js} +18 -68
  111. package/dist/paymaster/src/V4/index.js +4 -0
  112. package/dist/paymaster/src/index.d.ts +2 -0
  113. package/{packages/paymaster/src/index.ts → dist/paymaster/src/index.js} +0 -1
  114. package/dist/sdk/src/clients/ExperimentClient.d.ts +34 -0
  115. package/{packages/sdk/src/clients/ExperimentClient.ts → dist/sdk/src/clients/ExperimentClient.js} +11 -33
  116. package/dist/sdk/src/clients/ExperimentClient.test.d.ts +1 -0
  117. package/{packages/sdk/src/clients/ExperimentClient.test.ts → dist/sdk/src/clients/ExperimentClient.test.js} +4 -16
  118. package/dist/sdk/src/clients/admin.d.ts +57 -0
  119. package/dist/sdk/src/clients/admin.js +105 -0
  120. package/dist/sdk/src/clients/admin.test.d.ts +1 -0
  121. package/{packages/sdk/src/clients/admin.test.ts → dist/sdk/src/clients/admin.test.js} +18 -37
  122. package/dist/sdk/src/clients/clients.test.d.ts +1 -0
  123. package/{packages/sdk/src/clients/clients.test.ts → dist/sdk/src/clients/clients.test.js} +22 -35
  124. package/dist/sdk/src/clients/community.d.ts +48 -0
  125. package/{packages/sdk/src/clients/community.ts → dist/sdk/src/clients/community.js} +63 -156
  126. package/dist/sdk/src/clients/community.test.d.ts +1 -0
  127. package/dist/sdk/src/clients/community.test.js +99 -0
  128. package/dist/sdk/src/clients/endUser.d.ts +95 -0
  129. package/dist/sdk/src/clients/endUser.js +388 -0
  130. package/dist/sdk/src/clients/endUser.test.d.ts +1 -0
  131. package/dist/sdk/src/clients/endUser.test.js +188 -0
  132. package/dist/sdk/src/clients/operator.d.ts +96 -0
  133. package/{packages/sdk/src/clients/operator.ts → dist/sdk/src/clients/operator.js} +70 -178
  134. package/dist/sdk/src/clients/operator.test.d.ts +1 -0
  135. package/dist/sdk/src/clients/operator.test.js +139 -0
  136. package/dist/sdk/src/errors/AAStarError.d.ts +26 -0
  137. package/dist/sdk/src/errors/AAStarError.js +32 -0
  138. package/dist/sdk/src/errors/AAStarError.test.d.ts +1 -0
  139. package/{packages/sdk/src/errors/AAStarError.test.ts → dist/sdk/src/errors/AAStarError.test.js} +0 -18
  140. package/dist/sdk/src/errors/decoder.d.ts +1 -0
  141. package/{packages/sdk/src/errors/decoder.ts → dist/sdk/src/errors/decoder.js} +20 -28
  142. package/dist/sdk/src/errors/decoder.test.d.ts +1 -0
  143. package/{packages/sdk/src/errors/decoder.test.ts → dist/sdk/src/errors/decoder.test.js} +10 -27
  144. package/dist/sdk/src/index.d.ts +16 -0
  145. package/{packages/sdk/src/index.ts → dist/sdk/src/index.js} +0 -3
  146. package/{packages/sdk/src/node/index.ts → dist/sdk/src/node/index.d.ts} +0 -1
  147. package/dist/sdk/src/node/index.js +7 -0
  148. package/dist/sdk/src/types/result.d.ts +15 -0
  149. package/{packages/sdk/src/types/result.ts → dist/sdk/src/types/result.js} +5 -11
  150. package/dist/sdk/src/utils/errorHandler.d.ts +40 -0
  151. package/{packages/sdk/src/utils/errorHandler.ts → dist/sdk/src/utils/errorHandler.js} +22 -75
  152. package/dist/sdk/src/utils/errorHandler.test.d.ts +1 -0
  153. package/{packages/sdk/src/utils/errorHandler.test.ts → dist/sdk/src/utils/errorHandler.test.js} +1 -14
  154. package/dist/sdk/src/utils/eventDecoder.d.ts +7 -0
  155. package/{packages/sdk/src/utils/eventDecoder.ts → dist/sdk/src/utils/eventDecoder.js} +14 -26
  156. package/dist/sdk/src/utils/eventDecoder.test.d.ts +1 -0
  157. package/{packages/sdk/src/utils/eventDecoder.test.ts → dist/sdk/src/utils/eventDecoder.test.js} +10 -18
  158. package/dist/sdk/src/utils/funding.d.ts +115 -0
  159. package/{packages/sdk/src/utils/funding.ts → dist/sdk/src/utils/funding.js} +27 -119
  160. package/dist/sdk/src/utils/funding.test.d.ts +1 -0
  161. package/{packages/sdk/src/utils/funding.test.ts → dist/sdk/src/utils/funding.test.js} +18 -30
  162. package/dist/sdk/src/utils/keys.d.ts +73 -0
  163. package/{packages/sdk/src/utils/keys.ts → dist/sdk/src/utils/keys.js} +17 -54
  164. package/dist/sdk/src/utils/keys.test.d.ts +1 -0
  165. package/{packages/sdk/src/utils/keys.test.ts → dist/sdk/src/utils/keys.test.js} +13 -37
  166. package/dist/sdk/src/utils/roleData.d.ts +66 -0
  167. package/{packages/sdk/src/utils/roleData.ts → dist/sdk/src/utils/roleData.js} +28 -53
  168. package/dist/sdk/src/utils/roleData.test.d.ts +1 -0
  169. package/{packages/sdk/src/utils/roleData.test.ts → dist/sdk/src/utils/roleData.test.js} +2 -13
  170. package/dist/sdk/src/utils/testScenarios.d.ts +33 -0
  171. package/dist/sdk/src/utils/testScenarios.js +85 -0
  172. package/dist/sdk/src/utils/testScenarios.test.d.ts +1 -0
  173. package/{packages/sdk/src/utils/testScenarios.test.ts → dist/sdk/src/utils/testScenarios.test.js} +19 -30
  174. package/dist/sdk/src/utils/userOp.d.ts +78 -0
  175. package/{packages/sdk/src/utils/userOp.ts → dist/sdk/src/utils/userOp.js} +61 -131
  176. package/dist/sdk/src/utils/userOp.test.d.ts +1 -0
  177. package/{packages/sdk/src/utils/userOp.test.ts → dist/sdk/src/utils/userOp.test.js} +55 -93
  178. package/dist/tokens/src/index.d.ts +56 -0
  179. package/{packages/tokens/src/index.ts → dist/tokens/src/index.js} +52 -95
  180. package/examples/regression_test.d.ts +2 -0
  181. package/examples/regression_test.d.ts.map +1 -0
  182. package/examples/regression_test.js +89 -0
  183. package/examples/regression_test.js.map +1 -0
  184. package/package.json +40 -58
  185. package/scripts/v2_regression/01_setup_and_fund.ts +1 -1
  186. package/scripts/v2_regression/02_operator_onboarding.ts +1 -1
  187. package/scripts/v2_regression/03_community_registry.ts +1 -1
  188. package/scripts/v2_regression/04_enduser_flow.ts +1 -1
  189. package/scripts/v2_regression/05_admin_audit.ts +1 -1
  190. package/.eslintrc.cjs +0 -30
  191. package/.gitmodules +0 -9
  192. package/aastar-sdk.code-workspace +0 -14
  193. package/abis/BLSAggregator.json +0 -572
  194. package/abis/BLSValidator.json +0 -39
  195. package/abis/DVTValidator.json +0 -383
  196. package/abis/Eip7702Support.json +0 -24
  197. package/abis/EntryPoint.json +0 -1379
  198. package/abis/GToken.json +0 -510
  199. package/abis/GTokenStaking.json +0 -918
  200. package/abis/LegacyAccount.json +0 -625
  201. package/abis/MySBT.json +0 -1547
  202. package/abis/Paymaster.json +0 -1192
  203. package/abis/PaymasterFactory.json +0 -637
  204. package/abis/PaymasterV4_2.json +0 -1193
  205. package/abis/Registry.json +0 -1677
  206. package/abis/ReputationSystem.json +0 -659
  207. package/abis/SenderCreator.json +0 -99
  208. package/abis/Simple7702Account.json +0 -395
  209. package/abis/SimpleAccount.json +0 -625
  210. package/abis/SimpleAccountFactory.json +0 -108
  211. package/abis/SimpleAccountFactoryV08.json +0 -87
  212. package/abis/SimpleAccountV08.json +0 -557
  213. package/abis/SuperPaymaster.json +0 -1568
  214. package/abis/UserOperationLib.json +0 -57
  215. package/abis/aPNTs.json +0 -1160
  216. package/abis/xPNTsFactory.json +0 -715
  217. package/abis/xPNTsToken.json +0 -1160
  218. package/config/networks/README.md +0 -54
  219. package/config/networks/mainnet.env.example +0 -39
  220. package/config/networks/optimism-sepolia.env.example +0 -35
  221. package/config/networks/optimism.env.example +0 -36
  222. package/config/networks/sepolia.env.example +0 -36
  223. package/config.anvil.json +0 -1
  224. package/config.sepolia.json +0 -1
  225. package/config.test.json +0 -27
  226. package/data/experiment_data.csv +0 -36
  227. package/data/industry_baseline_2025-12-23.json +0 -154
  228. package/data/industry_baseline_latest.json +0 -154
  229. package/docs/ABI_Change_Tracking_Workflow.md +0 -41
  230. package/docs/ABI_MAINTENANCE_PLAN.md +0 -132
  231. package/docs/API_REFERENCE.md +0 -956
  232. package/docs/Configuration_Sync.md +0 -47
  233. package/docs/DAO_Mining_Distribution_Plan.md +0 -522
  234. package/docs/DEMO_REFACTOR_PLAN.md +0 -289
  235. package/docs/DOCUMENTATION_PLAN.md +0 -455
  236. package/docs/ENV_SEPOLIA_UPDATE.md +0 -68
  237. package/docs/Faucet_Gasless_Plan.md +0 -56
  238. package/docs/L2_BUSINESS_CLIENTS_PLAN.md +0 -394
  239. package/docs/L4_Manual_Test_CheatSheet.md +0 -215
  240. package/docs/Plan.md +0 -266
  241. package/docs/Regression_Testing_Guide.md +0 -70
  242. package/docs/SDK_ABI_COVERAGE.md +0 -839
  243. package/docs/SDK_COVERAGE_STRATEGY.md +0 -397
  244. package/docs/SDK_Optimization_Evaluation_Plan.md +0 -51
  245. package/docs/SDK_REGRESSION_AND_API_PLAN.md +0 -98
  246. package/docs/SDK_STAGE3_PLAN.md +0 -151
  247. package/docs/SEPOLIA_ENV_REFERENCE.md +0 -51
  248. package/docs/STAGE3.md +0 -191
  249. package/docs/Script_Comparison_Report.md +0 -91
  250. package/docs/Sepolia_Latest_Deployment.md +0 -117
  251. package/docs/TESTER_GUIDE_GASLESS.md +0 -663
  252. package/docs/TEST_COVERAGE_MATRIX.md +0 -72
  253. package/docs/TODO_SDK_COVERAGE.md +0 -55
  254. package/docs/USER_CASE_DESIGN.md +0 -110
  255. package/docs/Verifier_L4_Gasless_Plan.md +0 -454
  256. package/docs/api/@aastar/account.md +0 -235
  257. package/docs/api/@aastar/analytics.md +0 -219
  258. package/docs/api/@aastar/core.md +0 -26830
  259. package/docs/api/@aastar/dapp.md +0 -130
  260. package/docs/api/@aastar/identity.md +0 -482
  261. package/docs/api/@aastar/paymaster.md +0 -1387
  262. package/docs/api/@aastar/sdk/README.md +0 -155
  263. package/docs/api/@aastar/sdk/node.md +0 -4044
  264. package/docs/api/@aastar/tokens.md +0 -1971
  265. package/docs/api/README.md +0 -10
  266. package/docs/changelog.md +0 -99
  267. package/docs/examples/README.md +0 -18
  268. package/docs/examples/community-flow.md +0 -28
  269. package/docs/examples/enduser-flow.md +0 -24
  270. package/docs/examples/index.md +0 -18
  271. package/docs/examples/multi-chain.md +0 -31
  272. package/docs/examples/operator-flow.md +0 -28
  273. package/docs/guide/CLI_GUIDE.md +0 -65
  274. package/docs/guide/DOCUMENTATION_PLAN.md +0 -455
  275. package/docs/guide/Security-solution.md +0 -106
  276. package/docs/guide/TEST_COMMANDS.md +0 -320
  277. package/docs/guide/concepts/account-abstraction.md +0 -95
  278. package/docs/guide/concepts/rainbow-bridge.md +0 -68
  279. package/docs/guide/concepts/reputation.md +0 -95
  280. package/docs/guide/concepts/superpaymaster.md +0 -141
  281. package/docs/guide/getting-started.md +0 -133
  282. package/docs/guide/installation.md +0 -40
  283. package/docs/guide/paper-data-collection.md +0 -69
  284. package/docs/guide/quick-start.md +0 -52
  285. package/docs/guide/task_breakdown.md +0 -121
  286. package/docs/guide/use-cases/community-management.md +0 -141
  287. package/docs/guide/use-cases/gasless-transactions.md +0 -71
  288. package/docs/guide/use-cases/operator-staking.md +0 -84
  289. package/docs/guide/use-cases/yop.md +0 -72
  290. package/docs/old-solution.md +0 -1078
  291. package/docs/paper-data-collection.md +0 -69
  292. package/docs/refactor/2026-01-13-221242-trae-refactor.md +0 -224
  293. package/docs/refactor/2026-01-13-audit-analysis.md +0 -96
  294. package/docs/refactor/2026-01-13-audit-report-v0.16.2.md +0 -76
  295. package/docs/refactor/2026-01-13-audit-report-v0.17.0.md +0 -74
  296. package/docs/refactor/2026-01-13-cursor-refactor.md +0 -511
  297. package/docs/refactor/2026-01-13-refactor-plan.md +0 -88
  298. package/docs/refactor/2026-01-13-refactor-response-plan.md +0 -77
  299. package/docs/refactor/2026-01-13-refactor-review.md +0 -39
  300. package/docs/refactor/2026-01-13-sdk-enhancement-plan.md +0 -120
  301. package/docs/refactor/2026-01-14-audit-response.md +0 -242
  302. package/docs/refactor/2026-01-14-audit-summary.md +0 -133
  303. package/docs/refactor/cursor-2026-01-13-14-00-audit-report.md +0 -267
  304. package/docs/technical_plan.md +0 -510
  305. package/docs/zh/examples/community-flow.md +0 -38
  306. package/docs/zh/examples/complete-workflow.md +0 -10
  307. package/docs/zh/examples/enduser-flow.md +0 -33
  308. package/docs/zh/examples/index.md +0 -18
  309. package/docs/zh/examples/multi-chain.md +0 -46
  310. package/docs/zh/examples/operator-flow.md +0 -37
  311. package/docs/zh/guide/CLI_GUIDE.md +0 -48
  312. package/docs/zh/guide/DOCUMENTATION_PLAN.md +0 -455
  313. package/docs/zh/guide/Plan.md +0 -266
  314. package/docs/zh/guide/SDK_Optimization_Evaluation_Plan.md +0 -51
  315. package/docs/zh/guide/Security-solution.md +0 -106
  316. package/docs/zh/guide/TEST_COMMANDS.md +0 -125
  317. package/docs/zh/guide/TEST_COVERAGE_MATRIX.md +0 -72
  318. package/docs/zh/guide/concepts/account-abstraction.md +0 -95
  319. package/docs/zh/guide/concepts/rainbow-bridge.md +0 -68
  320. package/docs/zh/guide/concepts/reputation.md +0 -95
  321. package/docs/zh/guide/concepts/superpaymaster.md +0 -141
  322. package/docs/zh/guide/getting-started.md +0 -133
  323. package/docs/zh/guide/installation.md +0 -107
  324. package/docs/zh/guide/old-solution.md +0 -1078
  325. package/docs/zh/guide/paper-data-collection.md +0 -69
  326. package/docs/zh/guide/quick-start.md +0 -134
  327. package/docs/zh/guide/sdk-readme.md +0 -253
  328. package/docs/zh/guide/task_breakdown.md +0 -76
  329. package/docs/zh/guide/technical_plan.md +0 -510
  330. package/docs/zh/guide/use-cases/community-management.md +0 -141
  331. package/docs/zh/guide/use-cases/gasless-transactions.md +0 -71
  332. package/docs/zh/guide/use-cases/operator-staking.md +0 -84
  333. package/docs/zh/guide/use-cases/yop.md +0 -72
  334. package/env.template +0 -32
  335. package/examples/l1-api-demo.ts +0 -184
  336. package/examples/l2-clients-demo.ts +0 -138
  337. package/examples/l3-user-onboarding.ts +0 -74
  338. package/examples/prepare-gasless.ts +0 -89
  339. package/examples/sdk-demo/DEVELOPER_GUIDE.md +0 -159
  340. package/examples/sdk-demo/README.md +0 -30
  341. package/examples/sdk-demo/usage.ts +0 -137
  342. package/examples/simple-gasless-demo.ts +0 -80
  343. package/examples/simple-superpaymaster-demo.ts +0 -96
  344. package/ext/aastar-shared-config/.env.example +0 -6
  345. package/ext/aastar-shared-config/.github/workflows/check-secrets.yml +0 -257
  346. package/ext/aastar-shared-config/AGENTS.md +0 -21
  347. package/ext/aastar-shared-config/CHANGELOG.md +0 -99
  348. package/ext/aastar-shared-config/LICENSE +0 -21
  349. package/ext/aastar-shared-config/QUICK_START.md +0 -215
  350. package/ext/aastar-shared-config/README.md +0 -412
  351. package/ext/aastar-shared-config/SHARED_CONFIG_SUMMARY.md +0 -273
  352. package/ext/aastar-shared-config/check-locker-status.mjs +0 -7
  353. package/ext/aastar-shared-config/favicon.ico +0 -0
  354. package/ext/aastar-shared-config/generate-comparison-table.sh +0 -67
  355. package/ext/aastar-shared-config/package.json +0 -46
  356. package/ext/aastar-shared-config/pnpm-lock.yaml +0 -1182
  357. package/ext/aastar-shared-config/src/abis/BLSAggregator.json +0 -1
  358. package/ext/aastar-shared-config/src/abis/DVTValidator.json +0 -1
  359. package/ext/aastar-shared-config/src/abis/GToken.json +0 -1
  360. package/ext/aastar-shared-config/src/abis/GTokenStaking.json +0 -1
  361. package/ext/aastar-shared-config/src/abis/MySBT.json +0 -1
  362. package/ext/aastar-shared-config/src/abis/PaymasterFactory.json +0 -1
  363. package/ext/aastar-shared-config/src/abis/PaymasterV4.json +0 -1098
  364. package/ext/aastar-shared-config/src/abis/Registry.json +0 -1
  365. package/ext/aastar-shared-config/src/abis/SimpleAccount.json +0 -557
  366. package/ext/aastar-shared-config/src/abis/SimpleAccountFactory.json +0 -87
  367. package/ext/aastar-shared-config/src/abis/SuperPaymasterV2.json +0 -1
  368. package/ext/aastar-shared-config/src/abis/index.ts +0 -45
  369. package/ext/aastar-shared-config/src/abis/xPNTsFactory.json +0 -1
  370. package/ext/aastar-shared-config/src/abis/xPNTsToken.json +0 -1
  371. package/ext/aastar-shared-config/src/branding.ts +0 -32
  372. package/ext/aastar-shared-config/src/communities.ts +0 -93
  373. package/ext/aastar-shared-config/src/constants.ts +0 -67
  374. package/ext/aastar-shared-config/src/contract-addresses.ts +0 -95
  375. package/ext/aastar-shared-config/src/contract-versions.ts +0 -374
  376. package/ext/aastar-shared-config/src/contracts.ts +0 -414
  377. package/ext/aastar-shared-config/src/index.ts +0 -14
  378. package/ext/aastar-shared-config/src/networks.ts +0 -117
  379. package/ext/aastar-shared-config/sync-abis.sh +0 -92
  380. package/ext/aastar-shared-config/sync-versions.mjs +0 -150
  381. package/ext/aastar-shared-config/tsconfig.json +0 -18
  382. package/ext/aastar-shared-config/tsup.config.ts +0 -10
  383. package/ext/aastar-shared-config/verify-all.sh +0 -207
  384. package/ext/aastar-shared-config/verify-contracts.sh +0 -85
  385. package/ext/aastar-shared-config/verify-mysbt-v243.mjs +0 -27
  386. package/ext/aastar-shared-config/verify-onchain-versions.mjs +0 -93
  387. package/l4-setup.sh +0 -11
  388. package/lib/SHARED_CONFIG_REFERENCE.md +0 -133
  389. package/lib/shared-config/.env.example +0 -6
  390. package/lib/shared-config/.github/workflows/check-secrets.yml +0 -257
  391. package/lib/shared-config/AGENTS.md +0 -21
  392. package/lib/shared-config/CHANGELOG.md +0 -99
  393. package/lib/shared-config/LICENSE +0 -21
  394. package/lib/shared-config/QUICK_START.md +0 -215
  395. package/lib/shared-config/README.md +0 -412
  396. package/lib/shared-config/SHARED_CONFIG_SUMMARY.md +0 -273
  397. package/lib/shared-config/check-locker-status.mjs +0 -7
  398. package/lib/shared-config/favicon.ico +0 -0
  399. package/lib/shared-config/generate-comparison-table.sh +0 -67
  400. package/lib/shared-config/package.json +0 -46
  401. package/lib/shared-config/pnpm-lock.yaml +0 -1182
  402. package/lib/shared-config/src/abis/BLSAggregator.json +0 -1
  403. package/lib/shared-config/src/abis/DVTValidator.json +0 -1
  404. package/lib/shared-config/src/abis/GToken.json +0 -1
  405. package/lib/shared-config/src/abis/GTokenStaking.json +0 -1
  406. package/lib/shared-config/src/abis/MySBT.json +0 -1
  407. package/lib/shared-config/src/abis/PaymasterFactory.json +0 -1
  408. package/lib/shared-config/src/abis/PaymasterV4.json +0 -1098
  409. package/lib/shared-config/src/abis/Registry.json +0 -1
  410. package/lib/shared-config/src/abis/SimpleAccount.json +0 -557
  411. package/lib/shared-config/src/abis/SimpleAccountFactory.json +0 -87
  412. package/lib/shared-config/src/abis/SuperPaymasterV2.json +0 -1
  413. package/lib/shared-config/src/abis/index.ts +0 -45
  414. package/lib/shared-config/src/abis/xPNTsFactory.json +0 -1
  415. package/lib/shared-config/src/abis/xPNTsToken.json +0 -1
  416. package/lib/shared-config/src/branding.ts +0 -32
  417. package/lib/shared-config/src/communities.ts +0 -93
  418. package/lib/shared-config/src/constants.ts +0 -67
  419. package/lib/shared-config/src/contract-addresses.ts +0 -95
  420. package/lib/shared-config/src/contract-versions.ts +0 -374
  421. package/lib/shared-config/src/contracts.ts +0 -414
  422. package/lib/shared-config/src/index.ts +0 -14
  423. package/lib/shared-config/sync-abis.sh +0 -92
  424. package/lib/shared-config/sync-versions.mjs +0 -150
  425. package/lib/shared-config/tsconfig.json +0 -18
  426. package/lib/shared-config/tsup.config.ts +0 -10
  427. package/lib/shared-config/verify-all.sh +0 -207
  428. package/lib/shared-config/verify-contracts.sh +0 -85
  429. package/lib/shared-config/verify-mysbt-v243.mjs +0 -27
  430. package/lib/shared-config/verify-onchain-versions.mjs +0 -93
  431. package/packages/account/package.json +0 -23
  432. package/packages/account/src/accounts/simple.test.ts +0 -93
  433. package/packages/account/src/eoa.test.ts +0 -37
  434. package/packages/account/src/eoa.ts +0 -33
  435. package/packages/account/src/index.test.ts +0 -34
  436. package/packages/account/src/index.ts +0 -61
  437. package/packages/account/tsconfig.json +0 -11
  438. package/packages/analytics/package.json +0 -28
  439. package/packages/analytics/src/index.ts +0 -145
  440. package/packages/analytics/tsconfig.json +0 -11
  441. package/packages/core/package.json +0 -32
  442. package/packages/core/scripts/audit-abi-coverage.ts +0 -165
  443. package/packages/core/scripts/debug-regex.ts +0 -36
  444. package/packages/core/src/abis/.abi-hashes.json +0 -26
  445. package/packages/core/src/abis/BLSAggregator.json +0 -686
  446. package/packages/core/src/abis/BLSValidator.json +0 -42
  447. package/packages/core/src/abis/DVTValidator.json +0 -368
  448. package/packages/core/src/abis/Eip7702Support.json +0 -24
  449. package/packages/core/src/abis/EntryPoint.json +0 -1382
  450. package/packages/core/src/abis/GToken.json +0 -513
  451. package/packages/core/src/abis/GTokenStaking.json +0 -949
  452. package/packages/core/src/abis/LegacyAccount.json +0 -625
  453. package/packages/core/src/abis/MySBT.json +0 -1518
  454. package/packages/core/src/abis/Paymaster.json +0 -1143
  455. package/packages/core/src/abis/PaymasterFactory.json +0 -640
  456. package/packages/core/src/abis/Registry.json +0 -1942
  457. package/packages/core/src/abis/ReputationSystem.json +0 -699
  458. package/packages/core/src/abis/SenderCreator.json +0 -99
  459. package/packages/core/src/abis/Simple7702Account.json +0 -395
  460. package/packages/core/src/abis/SimpleAccount.json +0 -560
  461. package/packages/core/src/abis/SimpleAccountFactory.json +0 -111
  462. package/packages/core/src/abis/SimpleAccountFactoryV08.json +0 -87
  463. package/packages/core/src/abis/SimpleAccountV08.json +0 -557
  464. package/packages/core/src/abis/SuperPaymaster.json +0 -1781
  465. package/packages/core/src/abis/UserOperationLib.json +0 -57
  466. package/packages/core/src/abis/abi.config.json +0 -24
  467. package/packages/core/src/abis/xPNTsFactory.json +0 -718
  468. package/packages/core/src/abis/xPNTsToken.json +0 -1280
  469. package/packages/core/src/actions/StateValidator.test.ts +0 -175
  470. package/packages/core/src/actions/account.test.ts +0 -155
  471. package/packages/core/src/actions/account.ts +0 -179
  472. package/packages/core/src/actions/aggregator.test.ts +0 -88
  473. package/packages/core/src/actions/aggregator.ts +0 -41
  474. package/packages/core/src/actions/dvt.test.ts +0 -124
  475. package/packages/core/src/actions/dvt.ts +0 -53
  476. package/packages/core/src/actions/entryPoint.test.ts +0 -176
  477. package/packages/core/src/actions/entryPoint.ts +0 -266
  478. package/packages/core/src/actions/factory.test.ts +0 -250
  479. package/packages/core/src/actions/factory.ts +0 -613
  480. package/packages/core/src/actions/faucet.test.ts +0 -202
  481. package/packages/core/src/actions/gtokenExtended.test.ts +0 -162
  482. package/packages/core/src/actions/gtokenExtended.ts +0 -153
  483. package/packages/core/src/actions/paymasterV4.test.ts +0 -209
  484. package/packages/core/src/actions/paymasterV4.ts +0 -455
  485. package/packages/core/src/actions/registry.test.ts +0 -443
  486. package/packages/core/src/actions/registry.ts +0 -860
  487. package/packages/core/src/actions/reputation.test.ts +0 -225
  488. package/packages/core/src/actions/reputation.ts +0 -378
  489. package/packages/core/src/actions/sbt.test.ts +0 -322
  490. package/packages/core/src/actions/sbt.ts +0 -681
  491. package/packages/core/src/actions/staking.test.ts +0 -273
  492. package/packages/core/src/actions/superPaymaster.test.ts +0 -356
  493. package/packages/core/src/actions/superPaymaster.ts +0 -828
  494. package/packages/core/src/actions/tokens.test.ts +0 -60
  495. package/packages/core/src/actions/tokens.ts +0 -527
  496. package/packages/core/src/actions/validators.test.ts +0 -239
  497. package/packages/core/src/actions/validators.ts +0 -590
  498. package/packages/core/src/branding.ts +0 -32
  499. package/packages/core/src/clients.ts +0 -13
  500. package/packages/core/src/communities.ts +0 -93
  501. package/packages/core/src/constants.ts +0 -145
  502. package/packages/core/src/contract-addresses.ts +0 -125
  503. package/packages/core/src/contracts.test.ts +0 -58
  504. package/packages/core/src/contracts.ts +0 -414
  505. package/packages/core/src/networks.ts +0 -127
  506. package/packages/core/src/requirementChecker.test.ts +0 -71
  507. package/packages/core/src/roles.test.ts +0 -34
  508. package/packages/core/src/utils/validation.test.ts +0 -50
  509. package/packages/core/src/utils.ts +0 -23
  510. package/packages/core/tsconfig.json +0 -12
  511. package/packages/core/vitest.config.ts +0 -14
  512. package/packages/dapp/package.json +0 -30
  513. package/packages/dapp/src/ui/components/EvaluationPanel.tsx +0 -40
  514. package/packages/dapp/tsconfig.json +0 -12
  515. package/packages/identity/package.json +0 -25
  516. package/packages/identity/tsconfig.json +0 -11
  517. package/packages/paymaster/package.json +0 -25
  518. package/packages/paymaster/src/V4/PaymasterClient.test.ts +0 -114
  519. package/packages/paymaster/src/V4/PaymasterOperator.test.ts +0 -80
  520. package/packages/paymaster/src/V4/PaymasterUtils.test.ts +0 -54
  521. package/packages/paymaster/src/V4/SuperPaymasterClient.test.ts +0 -79
  522. package/packages/paymaster/tsconfig.json +0 -11
  523. package/packages/sdk/README.md +0 -150
  524. package/packages/sdk/aastar/package.json +0 -21
  525. package/packages/sdk/aastar/src/index.ts +0 -3
  526. package/packages/sdk/aastar/tsconfig.json +0 -7
  527. package/packages/sdk/coverage_output.txt +0 -393
  528. package/packages/sdk/coverage_output_final.txt +0 -739
  529. package/packages/sdk/coverage_output_final_v2.txt +0 -722
  530. package/packages/sdk/coverage_output_final_v3.txt +0 -722
  531. package/packages/sdk/package.json +0 -44
  532. package/packages/sdk/src/clients/admin.ts +0 -154
  533. package/packages/sdk/src/clients/community.test.ts +0 -118
  534. package/packages/sdk/src/clients/endUser.test.ts +0 -221
  535. package/packages/sdk/src/clients/endUser.ts +0 -551
  536. package/packages/sdk/src/clients/operator.test.ts +0 -162
  537. package/packages/sdk/src/errors/AAStarError.ts +0 -70
  538. package/packages/sdk/src/utils/testScenarios.ts +0 -128
  539. package/packages/sdk/tests/scenarios/01_onboard_community.ts +0 -62
  540. package/packages/sdk/tests/scenarios/02_onboard_operator.ts +0 -109
  541. package/packages/sdk/tests/scenarios/03_onboard_user.ts +0 -53
  542. package/packages/sdk/tests/scenarios/04_gasless_tx_flow.ts +0 -68
  543. package/packages/sdk/tests/scenarios/check_entrypoint.ts +0 -19
  544. package/packages/sdk/tests/scenarios/check_initialization.ts +0 -65
  545. package/packages/sdk/tests/scenarios/debug_addresses.ts +0 -26
  546. package/packages/sdk/tests/scenarios/diagnose_scenario4.ts +0 -55
  547. package/packages/sdk/tests/scenarios/setup.ts +0 -33
  548. package/packages/sdk/tests/scenarios/test_entrypoint_nonce.ts +0 -46
  549. package/packages/sdk/tsconfig.json +0 -11
  550. package/packages/tokens/package.json +0 -25
  551. package/packages/tokens/tsconfig.json +0 -11
  552. package/pnpm-workspace.yaml +0 -2
  553. package/run_l4_gasless_regression.sh +0 -79
  554. package/run_sdk_regression.sh +0 -238
  555. package/scripts/00_utils.ts +0 -59
  556. package/scripts/00_verify_phase1.ts +0 -130
  557. package/scripts/01_1_prep_gtoken.ts +0 -81
  558. package/scripts/01_2_register_sbt.ts +0 -88
  559. package/scripts/01_3_prep_tokens_paymaster.ts +0 -102
  560. package/scripts/01_prepare_all.ts +0 -222
  561. package/scripts/02_test_eoa.ts +0 -53
  562. package/scripts/03_test_standard_aa.ts +0 -68
  563. package/scripts/04_0_check_deploy.ts +0 -24
  564. package/scripts/04_1_check_allowance.ts +0 -44
  565. package/scripts/04_2_construct_verify.ts +0 -96
  566. package/scripts/04_3_verify_estimate.ts +0 -66
  567. package/scripts/04_4_verify_pack.ts +0 -74
  568. package/scripts/04_test_paymaster_v4.ts +0 -60
  569. package/scripts/05_1_deposit.ts +0 -48
  570. package/scripts/05_test_superpaymaster.ts +0 -58
  571. package/scripts/06_local_test_v3_admin.ts +0 -163
  572. package/scripts/06_local_test_v3_execution.ts +0 -132
  573. package/scripts/06_local_test_v3_full.ts +0 -490
  574. package/scripts/06_local_test_v3_funding.ts +0 -124
  575. package/scripts/06_local_test_v3_reputation.ts +0 -234
  576. package/scripts/07_local_test_v3_audit.ts +0 -181
  577. package/scripts/08_local_test_registry_lifecycle.ts +0 -382
  578. package/scripts/09_local_test_community_lifecycle.ts +0 -385
  579. package/scripts/09_local_test_community_simple.ts +0 -108
  580. package/scripts/09_scenario_bread_independent.ts +0 -247
  581. package/scripts/10_scenario_super_shared.ts +0 -196
  582. package/scripts/10_test_protocol_admin_full.ts +0 -173
  583. package/scripts/11_scenario_hacker_defense.ts +0 -104
  584. package/scripts/11_test_core_flows_full.ts +0 -157
  585. package/scripts/12_test_slash_mechanism.ts +0 -205
  586. package/scripts/12_test_slash_queries.ts +0 -83
  587. package/scripts/12_test_staking_exit.ts +0 -152
  588. package/scripts/12_test_staking_slash.ts +0 -301
  589. package/scripts/12_test_tier2_slash.ts +0 -139
  590. package/scripts/13_test_sbt_burn_linkage.ts +0 -266
  591. package/scripts/14_test_credit_redesign.ts +0 -266
  592. package/scripts/15_test_bls_full.ts +0 -148
  593. package/scripts/15_test_dvt_bls_full.ts +0 -140
  594. package/scripts/17_test_cross_role_collaboration.ts +0 -95
  595. package/scripts/18_sdk_e2e_verification.ts +0 -67
  596. package/scripts/18_test_dvt_sdk_flow.ts +0 -138
  597. package/scripts/18_test_lifecycle_completion.ts +0 -144
  598. package/scripts/19_sdk_experiment_runner.ts +0 -114
  599. package/scripts/19_sdk_experiment_runner.ts.backup +0 -391
  600. package/scripts/20_sdk_full_capability.ts +0 -93
  601. package/scripts/20_test_superpaymaster_new_apis.ts +0 -193
  602. package/scripts/21_test_paymasterv4_complete.ts +0 -341
  603. package/scripts/22_test_bls_signing.ts +0 -260
  604. package/scripts/23_test_middleware.ts +0 -197
  605. package/scripts/98_edge_reentrancy.ts +0 -85
  606. package/scripts/99_bug_hunting_fast.ts +0 -99
  607. package/scripts/analyze_abi_coverage.ts +0 -169
  608. package/scripts/check-admin.ts +0 -95
  609. package/scripts/check-jason-status.ts +0 -184
  610. package/scripts/check-roles.ts +0 -36
  611. package/scripts/clear-nonce.ts +0 -47
  612. package/scripts/collect_industry_baseline.ts +0 -236
  613. package/scripts/complete-jack-superpaymaster.ts +0 -171
  614. package/scripts/complete_env_config.ts +0 -97
  615. package/scripts/debug-addr.ts +0 -43
  616. package/scripts/debug-community-registration.ts +0 -92
  617. package/scripts/debug-deploy-v4.ts +0 -116
  618. package/scripts/debug-paymaster.ts +0 -127
  619. package/scripts/debug-register-role.ts +0 -101
  620. package/scripts/debug-version.ts +0 -71
  621. package/scripts/debug_account_c.ts +0 -43
  622. package/scripts/debug_bls.ts +0 -58
  623. package/scripts/debug_config_v036.ts +0 -13
  624. package/scripts/debug_contracts.ts +0 -2
  625. package/scripts/debug_env.ts +0 -69
  626. package/scripts/debug_find_paymaster.ts +0 -98
  627. package/scripts/debug_isolated_registration.ts +0 -256
  628. package/scripts/debug_paymaster_config.ts +0 -19
  629. package/scripts/debug_pim_addr.ts +0 -23
  630. package/scripts/debug_pm_status.ts +0 -51
  631. package/scripts/debug_registry.ts +0 -39
  632. package/scripts/debug_registry_setup.ts +0 -129
  633. package/scripts/debug_sanity.ts +0 -32
  634. package/scripts/debug_shared_config.ts +0 -10
  635. package/scripts/debug_token_compat.ts +0 -51
  636. package/scripts/debug_tokens.ts +0 -41
  637. package/scripts/debug_vcheck.ts +0 -33
  638. package/scripts/deploy-sync.ts +0 -104
  639. package/scripts/deploy_and_init_v3.sh +0 -134
  640. package/scripts/deploy_anvil_accounts.ts +0 -144
  641. package/scripts/deploy_paymaster_v4.ts +0 -139
  642. package/scripts/deploy_test_accounts.ts +0 -401
  643. package/scripts/deprecated/check_aa_entrypoint.ts +0 -29
  644. package/scripts/deprecated/check_paymaster_deposits.ts +0 -45
  645. package/scripts/deprecated/debug_aoa_function.ts +0 -28
  646. package/scripts/deprecated/debug_aoa_issue.ts +0 -16
  647. package/scripts/deprecated/debug_pimlico_aa23.ts +0 -40
  648. package/scripts/deprecated/debug_summary.ts +0 -34
  649. package/scripts/deprecated/deploy_v07_aa.ts +0 -99
  650. package/scripts/deprecated/fix_all_issues.ts +0 -61
  651. package/scripts/deprecated/fund_bpnts.ts +0 -52
  652. package/scripts/deprecated/get_factory_addresses.ts +0 -28
  653. package/scripts/deprecated/recheck_pim.ts +0 -34
  654. package/scripts/dev_tools/extract_abis.sh +0 -151
  655. package/scripts/dev_tools/extract_addresses_to_env.sh +0 -67
  656. package/scripts/dev_tools/final_safe_harmonize.py +0 -77
  657. package/scripts/dev_tools/safe_harmonize.py +0 -107
  658. package/scripts/dev_tools/surgical_harmonize.py +0 -83
  659. package/scripts/experiment/stage3/SETUP_GUIDE.md +0 -258
  660. package/scripts/experiment/stage3/archived_scripts/00_token_distribution.ts +0 -78
  661. package/scripts/experiment/stage3/archived_scripts/01_dao_launch.ts +0 -96
  662. package/scripts/experiment/stage3/archived_scripts/01b_bread_launch.ts +0 -112
  663. package/scripts/experiment/stage3/archived_scripts/02_operator_setup.ts +0 -84
  664. package/scripts/experiment/stage3/archived_scripts/02b_operator_b_setup.ts +0 -104
  665. package/scripts/experiment/stage3/archived_scripts/02c_finalize_operators.ts +0 -86
  666. package/scripts/experiment/stage3/archived_scripts/02d_operator_collateral.ts +0 -89
  667. package/scripts/experiment/stage3/archived_scripts/03_user_onboarding.ts +0 -83
  668. package/scripts/experiment/stage3/archived_scripts/03b_deploy_aa_account.ts +0 -61
  669. package/scripts/experiment/stage3/archived_scripts/03c_aa_onboarding.ts +0 -104
  670. package/scripts/experiment/stage3/archived_scripts/03d_mint_points.ts +0 -60
  671. package/scripts/experiment/stage3/archived_scripts/04_benchmarking.ts +0 -100
  672. package/scripts/experiment/stage3/archived_scripts/05_multi_op_setup.ts +0 -149
  673. package/scripts/experiment/stage3/archived_scripts/README.md +0 -58
  674. package/scripts/experiment/stage3/archived_scripts/check_roles.ts +0 -29
  675. package/scripts/experiment/stage3/archived_scripts/decode_error.ts +0 -23
  676. package/scripts/experiment/stage3/archived_scripts/fund_user.ts +0 -51
  677. package/scripts/experiment/stage3/archived_scripts/gen_b_key.ts +0 -3
  678. package/scripts/experiment/stage3/archived_scripts/gen_keys.ts +0 -4
  679. package/scripts/experiment/stage3/archived_scripts/setup.ts +0 -105
  680. package/scripts/experiment/stage3/archived_scripts/test_key.ts +0 -4
  681. package/scripts/experiment/stage3/archived_scripts/verify_state.ts +0 -59
  682. package/scripts/experiment/stage3/refactored/00_token_distribution.ts +0 -46
  683. package/scripts/experiment/stage3/refactored/02_operator_setup.ts +0 -65
  684. package/scripts/experiment/stage3/refactored/03_user_onboarding.ts +0 -68
  685. package/scripts/experiment/stage3/refactored/05_multi_op_setup.ts +0 -63
  686. package/scripts/experiment/stage3/refactored/README.md +0 -71
  687. package/scripts/extract-docs.sh +0 -141
  688. package/scripts/fund-jack.ts +0 -38
  689. package/scripts/generate_env_from_deployment.ts +0 -109
  690. package/scripts/inspect-anni-token.ts +0 -116
  691. package/scripts/inspect-factory.ts +0 -83
  692. package/scripts/l4-paymasterv4-transfer-test.ts +0 -228
  693. package/scripts/l4-setup.ts +0 -453
  694. package/scripts/l4-state.json +0 -80
  695. package/scripts/phase1_verify_contracts.ts +0 -207
  696. package/scripts/pre_test_sync.ts +0 -83
  697. package/scripts/prepare_sepolia_resources.ts +0 -154
  698. package/scripts/publish_all.sh +0 -39
  699. package/scripts/query-jack-token.ts +0 -22
  700. package/scripts/quick_setup.ts +0 -124
  701. package/scripts/quick_setup_account.ts +0 -80
  702. package/scripts/run_automated_experiment.sh +0 -121
  703. package/scripts/run_daily_experiment.ts +0 -70
  704. package/scripts/run_l4_gasless_regression.sh +0 -32
  705. package/scripts/run_sdk_experiment.sh +0 -13
  706. package/scripts/run_sdk_regression-v2.sh +0 -38
  707. package/scripts/sdk_regression_v2.ts +0 -162
  708. package/scripts/security_audit.sh +0 -172
  709. package/scripts/setup-bbq-community.ts +0 -187
  710. package/scripts/setup-dancing-community.ts +0 -223
  711. package/scripts/setup_test_accounts.ts +0 -88
  712. package/scripts/setup_test_environment.ts +0 -147
  713. package/scripts/sync_anvil_config.cjs +0 -44
  714. package/scripts/sync_config_to_env.ts +0 -88
  715. package/scripts/sync_contract_addresses.ts +0 -186
  716. package/scripts/sync_sepolia_config.cjs +0 -90
  717. package/scripts/sync_sepolia_config.mjs +0 -74
  718. package/scripts/test-brown-v4-deploy.ts +0 -90
  719. package/scripts/test-faucet-and-gasless.ts +0 -170
  720. package/scripts/test-jack-gasless.ts +0 -119
  721. package/scripts/test-jack-registration.ts +0 -133
  722. package/scripts/test-jack-superpaymaster-api.ts +0 -112
  723. package/scripts/test-kms-gasless.ts +0 -138
  724. package/scripts/test_groups.ts +0 -138
  725. package/scripts/test_multi_community_anvil.ts +0 -276
  726. package/scripts/test_new_sdk_apis_sepolia.ts +0 -193
  727. package/scripts/test_sdk_join_idempotent.ts +0 -233
  728. package/scripts/test_simple_sepolia.ts +0 -44
  729. package/scripts/update_env_from_config.ts +0 -83
  730. package/scripts/v2_regression/README.md +0 -161
  731. package/scripts/verify-tx-status.ts +0 -81
  732. package/scripts/verify_onchain_milestone.ts +0 -114
  733. package/scripts/verify_phase1.ts +0 -66
  734. package/scripts/verify_phase2.ts +0 -66
  735. package/sdk_experiment_data.csv +0 -4
  736. package/simple-test-paymaster.sh +0 -2
  737. package/simple-test-superpaymaster.sh +0 -1
  738. package/tests/l1-regression.test.ts +0 -458
  739. package/tests/l4-test-anni-gasless.ts +0 -105
  740. package/tests/l4-test-jason1-gasless.ts +0 -150
  741. package/tests/l4-test-jason2-gasless.ts +0 -174
  742. package/tests/l4-test-pmv4-deposit.ts +0 -111
  743. package/tests/l4-test-pmv4-gasless.ts +0 -166
  744. package/tests/l4-test-pmv4-submit.ts +0 -223
  745. package/tests/regression/README.md +0 -168
  746. package/tests/regression/config.ts +0 -215
  747. package/tests/regression/display-versions.ts +0 -85
  748. package/tests/regression/index.ts +0 -67
  749. package/tests/regression/l1-tests.ts +0 -267
  750. package/tests/regression/l2-tests.ts +0 -171
  751. package/tests/regression/l3-tests.ts +0 -125
  752. package/tests/regression/l4-gasless.ts +0 -897
  753. package/tests/regression/l4-runner.ts +0 -52
  754. package/tests/reports/phase1_contract_verification.md +0 -45
  755. package/tests/utils/contractVerifier.ts +0 -237
  756. package/tests/utils/userOpHelper.ts +0 -194
  757. package/tsconfig.json +0 -41
  758. package/typedoc.json +0 -59
  759. package/vitest.config.ts +0 -16
  760. /package/{packages/core/src/crypto/index.ts → dist/core/src/crypto/index.d.ts} +0 -0
  761. /package/{packages/paymaster/src/V4/index.ts → dist/paymaster/src/V4/index.d.ts} +0 -0
  762. /package/{packages/sdk/examples → examples}/config.json +0 -0
  763. /package/{packages/sdk/examples → examples}/regression_test.ts +0 -0
@@ -0,0 +1,78 @@
1
+ import { type Address, type Hex, type PublicClient } from 'viem';
2
+ /**
3
+ * ERC-4337 v0.7 Packed UserOperation structure.
4
+ */
5
+ export interface PackedUserOperation {
6
+ sender: Address;
7
+ nonce: Hex;
8
+ initCode: Hex;
9
+ callData: Hex;
10
+ accountGasLimits: Hex;
11
+ preVerificationGas: Hex;
12
+ gasFees: Hex;
13
+ paymasterAndData: Hex;
14
+ signature: Hex;
15
+ }
16
+ export interface UserOpGasParams {
17
+ verificationGasLimit: bigint;
18
+ callGasLimit: bigint;
19
+ preVerificationGas: bigint;
20
+ maxPriorityFeePerGas: bigint;
21
+ maxFeePerGas: bigint;
22
+ }
23
+ export interface PaymasterGasParams {
24
+ paymasterGasLimit: bigint;
25
+ paymasterPostOpGasLimit: bigint;
26
+ }
27
+ export declare class UserOperationBuilder {
28
+ /**
29
+ * Packs verificationGasLimit and callGasLimit into a bytes32 Hex string.
30
+ */
31
+ static packAccountGasLimits(verificationGasLimit: bigint, callGasLimit: bigint): Hex;
32
+ /**
33
+ * Packs maxPriorityFeePerGas and maxFeePerGas into a bytes32 Hex string.
34
+ */
35
+ static packGasFees(maxPriorityFeePerGas: bigint, maxFeePerGas: bigint): Hex;
36
+ /**
37
+ * Packs Paymaster parameters into the v0.7 paymasterAndData format.
38
+ */
39
+ static packPaymasterAndData(paymaster: Address, paymasterGasLimit: bigint, paymasterPostOpGasLimit: bigint, paymasterData?: Hex): Hex;
40
+ /**
41
+ * Pack PaymasterV4 Deposit-Only paymasterAndData
42
+ *
43
+ * v0.7 EntryPoint packs: [paymaster(20)][verificationGas(16)][postOpGas(16)][paymasterData]
44
+ * Contract extracts token at offset 52 = paymasterData[0:20]
45
+ *
46
+ * So paymasterData format must be: [token(20)][validUntil(6)][validAfter(6)]
47
+ *
48
+ * @param paymaster - Paymaster address (20 bytes)
49
+ * @param paymentToken - ERC20 token address (20 bytes, FIRST in paymasterData!)
50
+ * @param validUntil - Validity end timestamp (6 bytes)
51
+ * @param validAfter - Validity start timestamp (6 bytes)
52
+ */
53
+ static packPaymasterV4DepositData(paymaster: Address, paymasterVerificationGasLimit: bigint, paymasterPostOpGasLimit: bigint, paymentToken: Address, validUntil: bigint, validAfter: bigint): Hex;
54
+ /**
55
+ * Computes the UserOperation hash for signing.
56
+ */
57
+ static getUserOpHash({ userOp, entryPoint, chainId, publicClient }: {
58
+ userOp: PackedUserOperation;
59
+ entryPoint: Address;
60
+ chainId: number;
61
+ publicClient: PublicClient;
62
+ }): Promise<Hex>;
63
+ /**
64
+ * Formats a PackedUserOperation into a JSON-RPC compatible object with hex-encoded strings.
65
+ */
66
+ static jsonifyUserOp(userOp: any): any;
67
+ /**
68
+ * Converts a PackedUserOperation to the Alchemy-specific v0.7 JSON format.
69
+ * @param userOp - The packed UserOperation
70
+ * @param options - Optional configuration
71
+ * @param options.paymasterVerificationGasLimit - Gas limit for paymaster verification (default: 200000)
72
+ * @param options.paymasterPostOpGasLimit - Gas limit for paymaster postOp (default: 200000)
73
+ */
74
+ static toAlchemyUserOperation(userOp: any, options?: {
75
+ paymasterVerificationGasLimit?: bigint;
76
+ paymasterPostOpGasLimit?: bigint;
77
+ }): any;
78
+ }
@@ -1,92 +1,48 @@
1
- import { type Address, type Hex, concat, pad, keccak256, encodeAbiParameters, parseAbiParameters, type PublicClient } from 'viem';
2
-
3
- /**
4
- * ERC-4337 v0.7 Packed UserOperation structure.
5
- */
6
- export interface PackedUserOperation {
7
- sender: Address;
8
- nonce: Hex;
9
- initCode: Hex;
10
- callData: Hex;
11
- accountGasLimits: Hex; // bytes32 (packed verificationGasLimit and callGasLimit)
12
- preVerificationGas: Hex;
13
- gasFees: Hex; // bytes32 (packed maxPriorityFeePerGas and maxFeePerGas)
14
- paymasterAndData: Hex;
15
- signature: Hex;
16
- }
17
-
18
- export interface UserOpGasParams {
19
- verificationGasLimit: bigint;
20
- callGasLimit: bigint;
21
- preVerificationGas: bigint;
22
- maxPriorityFeePerGas: bigint;
23
- maxFeePerGas: bigint;
24
- }
25
-
26
- export interface PaymasterGasParams {
27
- paymasterGasLimit: bigint;
28
- paymasterPostOpGasLimit: bigint;
29
- }
30
-
1
+ import { concat, pad } from 'viem';
31
2
  export class UserOperationBuilder {
32
3
  /**
33
4
  * Packs verificationGasLimit and callGasLimit into a bytes32 Hex string.
34
5
  */
35
- static packAccountGasLimits(verificationGasLimit: bigint, callGasLimit: bigint): Hex {
6
+ static packAccountGasLimits(verificationGasLimit, callGasLimit) {
36
7
  return concat([
37
8
  pad(`0x${verificationGasLimit.toString(16)}`, { dir: 'left', size: 16 }),
38
9
  pad(`0x${callGasLimit.toString(16)}`, { dir: 'left', size: 16 })
39
- ]) as Hex;
10
+ ]);
40
11
  }
41
-
42
12
  /**
43
13
  * Packs maxPriorityFeePerGas and maxFeePerGas into a bytes32 Hex string.
44
14
  */
45
- static packGasFees(maxPriorityFeePerGas: bigint, maxFeePerGas: bigint): Hex {
15
+ static packGasFees(maxPriorityFeePerGas, maxFeePerGas) {
46
16
  return concat([
47
17
  pad(`0x${maxPriorityFeePerGas.toString(16)}`, { dir: 'left', size: 16 }),
48
18
  pad(`0x${maxFeePerGas.toString(16)}`, { dir: 'left', size: 16 })
49
- ]) as Hex;
19
+ ]);
50
20
  }
51
-
52
21
  /**
53
22
  * Packs Paymaster parameters into the v0.7 paymasterAndData format.
54
23
  */
55
- static packPaymasterAndData(
56
- paymaster: Address,
57
- paymasterGasLimit: bigint,
58
- paymasterPostOpGasLimit: bigint,
59
- paymasterData: Hex = '0x'
60
- ): Hex {
24
+ static packPaymasterAndData(paymaster, paymasterGasLimit, paymasterPostOpGasLimit, paymasterData = '0x') {
61
25
  return concat([
62
26
  paymaster,
63
27
  pad(`0x${paymasterGasLimit.toString(16)}`, { dir: 'left', size: 16 }),
64
28
  pad(`0x${paymasterPostOpGasLimit.toString(16)}`, { dir: 'left', size: 16 }),
65
29
  paymasterData
66
- ]) as Hex;
30
+ ]);
67
31
  }
68
-
69
32
  /**
70
33
  * Pack PaymasterV4 Deposit-Only paymasterAndData
71
- *
34
+ *
72
35
  * v0.7 EntryPoint packs: [paymaster(20)][verificationGas(16)][postOpGas(16)][paymasterData]
73
36
  * Contract extracts token at offset 52 = paymasterData[0:20]
74
- *
37
+ *
75
38
  * So paymasterData format must be: [token(20)][validUntil(6)][validAfter(6)]
76
- *
39
+ *
77
40
  * @param paymaster - Paymaster address (20 bytes)
78
41
  * @param paymentToken - ERC20 token address (20 bytes, FIRST in paymasterData!)
79
42
  * @param validUntil - Validity end timestamp (6 bytes)
80
43
  * @param validAfter - Validity start timestamp (6 bytes)
81
44
  */
82
- static packPaymasterV4DepositData(
83
- paymaster: Address,
84
- paymasterVerificationGasLimit: bigint,
85
- paymasterPostOpGasLimit: bigint,
86
- paymentToken: Address,
87
- validUntil: bigint,
88
- validAfter: bigint
89
- ): Hex {
45
+ static packPaymasterV4DepositData(paymaster, paymasterVerificationGasLimit, paymasterPostOpGasLimit, paymentToken, validUntil, validAfter) {
90
46
  return concat([
91
47
  paymaster,
92
48
  pad(`0x${paymasterVerificationGasLimit.toString(16)}`, { dir: 'left', size: 16 }),
@@ -94,57 +50,45 @@ export class UserOperationBuilder {
94
50
  paymentToken,
95
51
  pad(`0x${validUntil.toString(16)}`, { dir: 'left', size: 6 }),
96
52
  pad(`0x${validAfter.toString(16)}`, { dir: 'left', size: 6 })
97
- ]) as Hex;
53
+ ]);
98
54
  }
99
-
100
55
  /**
101
56
  * Computes the UserOperation hash for signing.
102
57
  */
103
- static async getUserOpHash({
104
- userOp,
105
- entryPoint,
106
- chainId,
107
- publicClient
108
- }: {
109
- userOp: PackedUserOperation;
110
- entryPoint: Address;
111
- chainId: number;
112
- publicClient: PublicClient;
113
- }): Promise<Hex> {
114
- return await (publicClient as any).readContract({
58
+ static async getUserOpHash({ userOp, entryPoint, chainId, publicClient }) {
59
+ return await publicClient.readContract({
115
60
  address: entryPoint,
116
61
  abi: [{
117
- type: 'function',
118
- name: 'getUserOpHash',
119
- inputs: [{
120
- type: 'tuple',
121
- components: [
122
- { name: 'sender', type: 'address' },
123
- { name: 'nonce', type: 'uint256' },
124
- { name: 'initCode', type: 'bytes' },
125
- { name: 'callData', type: 'bytes' },
126
- { name: 'accountGasLimits', type: 'bytes32' },
127
- { name: 'preVerificationGas', type: 'uint256' },
128
- { name: 'gasFees', type: 'bytes32' },
129
- { name: 'paymasterAndData', type: 'bytes' },
130
- { name: 'signature', type: 'bytes' }
131
- ]
62
+ type: 'function',
63
+ name: 'getUserOpHash',
64
+ inputs: [{
65
+ type: 'tuple',
66
+ components: [
67
+ { name: 'sender', type: 'address' },
68
+ { name: 'nonce', type: 'uint256' },
69
+ { name: 'initCode', type: 'bytes' },
70
+ { name: 'callData', type: 'bytes' },
71
+ { name: 'accountGasLimits', type: 'bytes32' },
72
+ { name: 'preVerificationGas', type: 'uint256' },
73
+ { name: 'gasFees', type: 'bytes32' },
74
+ { name: 'paymasterAndData', type: 'bytes' },
75
+ { name: 'signature', type: 'bytes' }
76
+ ]
77
+ }],
78
+ outputs: [{ type: 'bytes32' }],
79
+ stateMutability: 'view'
132
80
  }],
133
- outputs: [{ type: 'bytes32' }],
134
- stateMutability: 'view'
135
- }],
136
81
  functionName: 'getUserOpHash',
137
82
  args: [userOp]
138
- }) as Hex;
83
+ });
139
84
  }
140
-
141
85
  /**
142
86
  * Formats a PackedUserOperation into a JSON-RPC compatible object with hex-encoded strings.
143
87
  */
144
- static jsonifyUserOp(userOp: any): any {
88
+ static jsonifyUserOp(userOp) {
145
89
  // Strict allowlist for ERC-4337 v0.7 PackedUserOperation
146
90
  // Alchemy rejects requests with unknown fields.
147
- const result: any = {
91
+ const result = {
148
92
  sender: userOp.sender,
149
93
  nonce: userOp.nonce,
150
94
  initCode: userOp.initCode,
@@ -155,34 +99,31 @@ export class UserOperationBuilder {
155
99
  paymasterAndData: userOp.paymasterAndData,
156
100
  signature: userOp.signature
157
101
  };
158
-
159
- const toCompactHex = (val: bigint | string | number) => {
160
- if (typeof val === 'bigint') return `0x${val.toString(16)}`;
161
- if (typeof val === 'number') return `0x${val.toString(16)}`;
162
- if (typeof val === 'string') {
163
- // Remove leading zeros if present (but keep 0x)
164
- if (val === '0x') return '0x'; // invalid quantity? Should be 0x0?
165
- // JSON-RPC Quantity: 0x0
166
- if (val === '0x0') return '0x0';
167
- return val.replace(/^0x0+(?!$)/, '0x');
168
- }
169
- return val;
102
+ const toCompactHex = (val) => {
103
+ if (typeof val === 'bigint')
104
+ return `0x${val.toString(16)}`;
105
+ if (typeof val === 'number')
106
+ return `0x${val.toString(16)}`;
107
+ if (typeof val === 'string') {
108
+ // Remove leading zeros if present (but keep 0x)
109
+ if (val === '0x')
110
+ return '0x'; // invalid quantity? Should be 0x0?
111
+ // JSON-RPC Quantity: 0x0
112
+ if (val === '0x0')
113
+ return '0x0';
114
+ return val.replace(/^0x0+(?!$)/, '0x');
115
+ }
116
+ return val;
170
117
  };
171
-
172
-
173
118
  result.nonce = toCompactHex(result.nonce);
174
119
  result.preVerificationGas = toCompactHex(result.preVerificationGas);
175
-
176
120
  // Note: Alchemy usually accepts non-padded Quantities for nonce/preVerificationGas.
177
121
  // But let's verify if strict padding is required by using viem's pad
178
-
179
122
  // Alchemy v0.7 Validator seems to reject PADDED Quantities (leads to 'Invalid fields').
180
123
  // It accepts COMPACT HEX (e.g. 0x1 instead of 0x0...01).
181
124
  // Viem toHex produces compact hex.
182
-
183
125
  return result;
184
126
  }
185
-
186
127
  /**
187
128
  * Converts a PackedUserOperation to the Alchemy-specific v0.7 JSON format.
188
129
  * @param userOp - The packed UserOperation
@@ -190,57 +131,46 @@ export class UserOperationBuilder {
190
131
  * @param options.paymasterVerificationGasLimit - Gas limit for paymaster verification (default: 200000)
191
132
  * @param options.paymasterPostOpGasLimit - Gas limit for paymaster postOp (default: 200000)
192
133
  */
193
- static toAlchemyUserOperation(userOp: any, options?: {
194
- paymasterVerificationGasLimit?: bigint;
195
- paymasterPostOpGasLimit?: bigint;
196
- }): any {
197
- const result: any = {
134
+ static toAlchemyUserOperation(userOp, options) {
135
+ const result = {
198
136
  sender: userOp.sender,
199
137
  nonce: userOp.nonce,
200
138
  callData: userOp.callData,
201
139
  signature: userOp.signature
202
140
  };
203
-
204
141
  // 1. Unpack accountGasLimits: [verificationGasLimit(16)][callGasLimit(16)]
205
142
  if (userOp.accountGasLimits && userOp.accountGasLimits !== '0x') {
206
143
  const val = userOp.accountGasLimits.toString().startsWith('0x') ? userOp.accountGasLimits.slice(2) : userOp.accountGasLimits;
207
144
  const padded = val.padStart(64, '0');
208
145
  const verificationGasLimit = BigInt('0x' + padded.slice(0, 32));
209
146
  const callGasLimit = BigInt('0x' + padded.slice(32, 64));
210
-
211
147
  result.verificationGasLimit = `0x${verificationGasLimit.toString(16)}`;
212
148
  result.callGasLimit = `0x${callGasLimit.toString(16)}`;
213
149
  }
214
-
215
150
  // 2. Unpack gasFees: [maxPriorityFee(16)][maxFee(16)]
216
151
  if (userOp.gasFees && userOp.gasFees !== '0x') {
217
- const val = userOp.gasFees.toString().startsWith('0x') ? userOp.gasFees.slice(2) : userOp.gasFees;
218
- const padded = val.padStart(64, '0');
219
- const maxPriorityFeePerGas = BigInt('0x' + padded.slice(0, 32));
220
- const maxFeePerGas = BigInt('0x' + padded.slice(32, 64));
221
-
222
- result.maxPriorityFeePerGas = `0x${maxPriorityFeePerGas.toString(16)}`;
223
- result.maxFeePerGas = `0x${maxFeePerGas.toString(16)}`;
152
+ const val = userOp.gasFees.toString().startsWith('0x') ? userOp.gasFees.slice(2) : userOp.gasFees;
153
+ const padded = val.padStart(64, '0');
154
+ const maxPriorityFeePerGas = BigInt('0x' + padded.slice(0, 32));
155
+ const maxFeePerGas = BigInt('0x' + padded.slice(32, 64));
156
+ result.maxPriorityFeePerGas = `0x${maxPriorityFeePerGas.toString(16)}`;
157
+ result.maxFeePerGas = `0x${maxFeePerGas.toString(16)}`;
224
158
  }
225
-
226
159
  // 3. PreVerificationGas (Direct copy but ensure hex)
227
160
  if (userOp.preVerificationGas) {
228
- result.preVerificationGas = `0x${BigInt(userOp.preVerificationGas).toString(16)}`;
161
+ result.preVerificationGas = `0x${BigInt(userOp.preVerificationGas).toString(16)}`;
229
162
  }
230
-
231
163
  // 4. Unpack initCode -> factory + factoryData
232
164
  if (userOp.initCode && userOp.initCode !== '0x') {
233
165
  const initCode = userOp.initCode.toString();
234
166
  result.factory = initCode.slice(0, 42); // First 20 bytes
235
167
  result.factoryData = '0x' + initCode.slice(42);
236
168
  }
237
-
238
169
  // 5. Unpack paymasterAndData -> paymaster + gas limits + paymasterData
239
170
  // Full format: [paymaster(20)][verificationGas(16)][postOpGas(16)][paymasterData]
240
171
  // paymasterData = [token(20)][validUntil(6)][validAfter(6)] = 32 bytes
241
172
  if (userOp.paymasterAndData && userOp.paymasterAndData !== '0x') {
242
173
  const pmd = userOp.paymasterAndData.toString().startsWith('0x') ? userOp.paymasterAndData.slice(2) : userOp.paymasterAndData;
243
-
244
174
  // Check if we have full format with gas limits (at least 20+16+16 = 52 bytes = 104 hex chars)
245
175
  if (pmd.length >= 104) {
246
176
  // Full v0.7 packed format
@@ -250,7 +180,8 @@ export class UserOperationBuilder {
250
180
  result.paymasterVerificationGasLimit = `0x${vGas.toString(16)}`;
251
181
  result.paymasterPostOpGasLimit = `0x${pGas.toString(16)}`;
252
182
  result.paymasterData = '0x' + pmd.slice(104); // bytes 52+ (token + timestamps)
253
- } else if (pmd.length >= 40) {
183
+ }
184
+ else if (pmd.length >= 40) {
254
185
  // Fallback: assume 52-byte format without gas limits (old format)
255
186
  result.paymaster = '0x' + pmd.slice(0, 40);
256
187
  result.paymasterData = '0x' + pmd.slice(40);
@@ -259,7 +190,6 @@ export class UserOperationBuilder {
259
190
  result.paymasterPostOpGasLimit = `0x${(options?.paymasterPostOpGasLimit || defaultGasLimit).toString(16)}`;
260
191
  }
261
192
  }
262
-
263
193
  return result;
264
194
  }
265
195
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,180 +1,142 @@
1
- import { describe, it, expect, vi } from 'vitest';
1
+ import { describe, it, expect } from 'vitest';
2
2
  import { UserOperationBuilder } from './userOp.js';
3
- import { type Address, type Hex, createPublicClient, http, concat } from 'viem';
4
-
3
+ import { concat } from 'viem';
5
4
  describe('UserOperationBuilder', () => {
6
- const MOCK_ADDR = '0x1111111111111111111111111111111111111111' as Address;
7
- const MOCK_PM = '0x2222222222222222222222222222222222222222' as Address;
8
- const MOCK_TOKEN = '0x3333333333333333333333333333333333333333' as Address;
9
-
5
+ const MOCK_ADDR = '0x1111111111111111111111111111111111111111';
6
+ const MOCK_PM = '0x2222222222222222222222222222222222222222';
7
+ const MOCK_TOKEN = '0x3333333333333333333333333333333333333333';
10
8
  describe('Gas Packing', () => {
11
9
  it('should pack account gas limits', () => {
12
10
  const packed = UserOperationBuilder.packAccountGasLimits(100000n, 200000n);
13
11
  expect(packed).toBeDefined();
14
12
  expect(packed.length).toBeGreaterThan(2);
15
13
  });
16
-
17
14
  it('should pack gas fees', () => {
18
15
  const packed = UserOperationBuilder.packGasFees(1000000000n, 2000000000n);
19
16
  expect(packed).toBeDefined();
20
17
  expect(packed.length).toBeGreaterThan(2);
21
18
  });
22
-
23
19
  it('should pack paymaster and data', () => {
24
- const packed = UserOperationBuilder.packPaymasterAndData(
25
- MOCK_PM,
26
- 250000n,
27
- 50000n,
28
- '0x1234' as Hex
29
- );
20
+ const packed = UserOperationBuilder.packPaymasterAndData(MOCK_PM, 250000n, 50000n, '0x1234');
30
21
  expect(packed).toBeDefined();
31
22
  expect(packed.startsWith(MOCK_PM.toLowerCase())).toBe(true);
32
23
  });
33
-
34
24
  it('should pack PaymasterV4 deposit data', () => {
35
25
  const validUntil = BigInt(Math.floor(Date.now() / 1000) + 3600);
36
26
  const validAfter = BigInt(Math.floor(Date.now() / 1000));
37
-
38
- const packed = UserOperationBuilder.packPaymasterV4DepositData(
39
- MOCK_PM,
40
- 250000n,
41
- 50000n,
42
- MOCK_TOKEN,
43
- validUntil,
44
- validAfter
45
- );
27
+ const packed = UserOperationBuilder.packPaymasterV4DepositData(MOCK_PM, 250000n, 50000n, MOCK_TOKEN, validUntil, validAfter);
46
28
  expect(packed).toBeDefined();
47
29
  expect(packed.length).toBeGreaterThan(100);
48
30
  });
49
31
  });
50
-
51
-
52
32
  describe('UserOp Formatting', () => {
53
33
  it('should jsonify UserOp', () => {
54
34
  const userOp = {
55
35
  sender: MOCK_ADDR,
56
36
  nonce: 0n,
57
- initCode: '0x' as Hex,
58
- callData: '0x' as Hex,
37
+ initCode: '0x',
38
+ callData: '0x',
59
39
  accountGasLimits: UserOperationBuilder.packAccountGasLimits(100000n, 200000n),
60
40
  preVerificationGas: 50000n,
61
41
  gasFees: UserOperationBuilder.packGasFees(1000000000n, 2000000000n),
62
- paymasterAndData: '0x' as Hex,
63
- signature: '0x' as Hex
42
+ paymasterAndData: '0x',
43
+ signature: '0x'
64
44
  };
65
-
66
45
  const jsonified = UserOperationBuilder.jsonifyUserOp(userOp);
67
46
  expect(jsonified).toBeDefined();
68
47
  expect(jsonified.sender).toBe(MOCK_ADDR);
69
48
  });
70
-
71
49
  it('should convert to Alchemy format', () => {
72
50
  const userOp = {
73
51
  sender: MOCK_ADDR,
74
- nonce: '0x0' as Hex,
75
- initCode: '0x' as Hex,
76
- callData: '0x' as Hex,
52
+ nonce: '0x0',
53
+ initCode: '0x',
54
+ callData: '0x',
77
55
  accountGasLimits: UserOperationBuilder.packAccountGasLimits(100000n, 200000n),
78
- preVerificationGas: '0xc350' as Hex,
56
+ preVerificationGas: '0xc350',
79
57
  gasFees: UserOperationBuilder.packGasFees(1000000000n, 2000000000n),
80
- paymasterAndData: '0x' as Hex, // no paymaster
81
- signature: '0x' as Hex
58
+ paymasterAndData: '0x', // no paymaster
59
+ signature: '0x'
82
60
  };
83
-
84
61
  const alchemy = UserOperationBuilder.toAlchemyUserOperation(userOp);
85
62
  expect(alchemy).toBeDefined();
86
63
  expect(alchemy.sender).toBe(MOCK_ADDR);
87
64
  expect(alchemy.verificationGasLimit).toBeDefined();
88
65
  expect(alchemy.callGasLimit).toBeDefined();
89
66
  });
90
-
91
67
  it('should unpack paymaster and data (full v0.7 format)', () => {
92
- const pmData = UserOperationBuilder.packPaymasterAndData(
93
- MOCK_PM,
94
- 300000n,
95
- 100000n,
96
- '0x12345678' as Hex
97
- );
98
-
99
- const userOp = {
68
+ const pmData = UserOperationBuilder.packPaymasterAndData(MOCK_PM, 300000n, 100000n, '0x12345678');
69
+ const userOp = {
100
70
  sender: MOCK_ADDR,
101
- nonce: '0x0' as Hex,
102
- initCode: '0x' as Hex,
103
- callData: '0x' as Hex,
104
- accountGasLimits: '0x' as Hex,
105
- preVerificationGas: '0x0' as Hex,
106
- gasFees: '0x' as Hex,
71
+ nonce: '0x0',
72
+ initCode: '0x',
73
+ callData: '0x',
74
+ accountGasLimits: '0x',
75
+ preVerificationGas: '0x0',
76
+ gasFees: '0x',
107
77
  paymasterAndData: pmData,
108
- signature: '0x' as Hex
78
+ signature: '0x'
109
79
  };
110
-
111
80
  const alchemy = UserOperationBuilder.toAlchemyUserOperation(userOp);
112
81
  expect(alchemy.paymaster).toBe(MOCK_PM);
113
82
  expect(alchemy.paymasterVerificationGasLimit).toBeDefined();
114
83
  expect(alchemy.paymasterPostOpGasLimit).toBeDefined();
115
84
  expect(alchemy.paymasterData).toBe('0x12345678');
116
85
  });
117
-
118
86
  it('should unpack paymaster and data (legacy format fallback)', () => {
119
- // Not enough bytes for Gas Limits, treated as paymaster + data
120
- const legacyPmData = concat([MOCK_PM, '0xabcdef' as Hex]) as Hex;
121
-
87
+ // Not enough bytes for Gas Limits, treated as paymaster + data
88
+ const legacyPmData = concat([MOCK_PM, '0xabcdef']);
122
89
  const userOp = {
123
90
  sender: MOCK_ADDR,
124
- nonce: '0x0' as Hex,
125
- initCode: '0x' as Hex,
126
- callData: '0x' as Hex,
127
- accountGasLimits: '0x' as Hex,
128
- preVerificationGas: '0x0' as Hex,
129
- gasFees: '0x' as Hex,
91
+ nonce: '0x0',
92
+ initCode: '0x',
93
+ callData: '0x',
94
+ accountGasLimits: '0x',
95
+ preVerificationGas: '0x0',
96
+ gasFees: '0x',
130
97
  paymasterAndData: legacyPmData,
131
- signature: '0x' as Hex
98
+ signature: '0x'
132
99
  };
133
-
134
100
  const alchemy = UserOperationBuilder.toAlchemyUserOperation(userOp);
135
101
  expect(alchemy.paymaster).toBe(MOCK_PM);
136
102
  expect(alchemy.paymasterData).toBe('0xabcdef');
137
103
  expect(alchemy.paymasterVerificationGasLimit).toBeDefined(); // defaults
138
104
  });
139
-
140
105
  it('should unpack initCode into factory and factoryData', () => {
141
106
  const factory = MOCK_ADDR;
142
- const factoryData = '0xdeadbeef' as Hex;
143
- const initCode = concat([factory, factoryData]) as Hex;
144
-
107
+ const factoryData = '0xdeadbeef';
108
+ const initCode = concat([factory, factoryData]);
145
109
  const userOp = {
146
110
  sender: MOCK_ADDR,
147
- nonce: '0x0' as Hex,
111
+ nonce: '0x0',
148
112
  initCode: initCode,
149
- callData: '0x' as Hex,
150
- accountGasLimits: '0x' as Hex,
151
- preVerificationGas: '0x0' as Hex,
152
- gasFees: '0x' as Hex,
153
- paymasterAndData: '0x' as Hex,
154
- signature: '0x' as Hex
113
+ callData: '0x',
114
+ accountGasLimits: '0x',
115
+ preVerificationGas: '0x0',
116
+ gasFees: '0x',
117
+ paymasterAndData: '0x',
118
+ signature: '0x'
155
119
  };
156
-
157
120
  const alchemy = UserOperationBuilder.toAlchemyUserOperation(userOp);
158
121
  expect(alchemy.factory.toLowerCase()).toBe(factory.toLowerCase());
159
122
  expect(alchemy.factoryData).toBe(factoryData);
160
123
  });
161
124
  it('should jsonify various types', () => {
162
- const userOp = {
125
+ const userOp = {
163
126
  sender: MOCK_ADDR,
164
127
  nonce: 123, // number
165
- initCode: '0x' as Hex,
166
- callData: '0x' as Hex,
167
- accountGasLimits: '0x' as Hex,
168
- preVerificationGas: '0x10' as Hex, // string
169
- gasFees: '0x' as Hex,
170
- paymasterAndData: '0x' as Hex,
171
- signature: '0x' as Hex
128
+ initCode: '0x',
129
+ callData: '0x',
130
+ accountGasLimits: '0x',
131
+ preVerificationGas: '0x10', // string
132
+ gasFees: '0x',
133
+ paymasterAndData: '0x',
134
+ signature: '0x'
172
135
  };
173
136
  const json = UserOperationBuilder.jsonifyUserOp(userOp);
174
137
  expect(json.nonce).toBe('0x7b');
175
138
  expect(json.preVerificationGas).toBe('0x10');
176
139
  });
177
-
178
140
  it('should handle leading zeros in string quantities for Alchemy', () => {
179
141
  const userOp = {
180
142
  sender: MOCK_ADDR,
@@ -182,9 +144,9 @@ describe('UserOperationBuilder', () => {
182
144
  preVerificationGas: '0x0', // valid zero
183
145
  // ... others
184
146
  };
185
- const json = UserOperationBuilder.jsonifyUserOp(userOp);
186
- expect(json.nonce).toBe('0x1'); // compact
187
- expect(json.preVerificationGas).toBe('0x0');
147
+ const json = UserOperationBuilder.jsonifyUserOp(userOp);
148
+ expect(json.nonce).toBe('0x1'); // compact
149
+ expect(json.preVerificationGas).toBe('0x0');
188
150
  });
189
151
  });
190
152
  });