@aastar/sdk 0.14.3 → 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 (712) hide show
  1. package/.eslintrc.cjs +30 -0
  2. package/README.md +148 -19
  3. package/abis/BLSAggregator.json +13 -13
  4. package/abis/BLSValidator.json +13 -0
  5. package/abis/DVTValidator.json +13 -0
  6. package/abis/GToken.json +57 -26
  7. package/abis/GTokenStaking.json +13 -39
  8. package/abis/MySBT.json +0 -39
  9. package/abis/Paymaster.json +0 -13
  10. package/abis/PaymasterFactory.json +26 -39
  11. package/abis/PaymasterV4_2.json +68 -58
  12. package/abis/Registry.json +57 -16
  13. package/abis/ReputationSystem.json +182 -0
  14. package/abis/SuperPaymaster.json +169 -0
  15. package/abis/aPNTs.json +13 -26
  16. package/abis/xPNTsFactory.json +13 -26
  17. package/abis/xPNTsToken.json +13 -26
  18. package/config.anvil.json +1 -0
  19. package/config.sepolia.json +1 -0
  20. package/config.test.json +27 -0
  21. package/docs/ABI_Change_Tracking_Workflow.md +41 -0
  22. package/docs/ABI_MAINTENANCE_PLAN.md +132 -0
  23. package/docs/API_REFERENCE.md +169 -9
  24. package/docs/Configuration_Sync.md +47 -0
  25. package/docs/DEMO_REFACTOR_PLAN.md +289 -0
  26. package/docs/ENV_SEPOLIA_UPDATE.md +68 -0
  27. package/docs/Faucet_Gasless_Plan.md +56 -0
  28. package/docs/L2_BUSINESS_CLIENTS_PLAN.md +394 -0
  29. package/docs/L4_Manual_Test_CheatSheet.md +215 -0
  30. package/docs/SDK_ABI_COVERAGE.md +839 -0
  31. package/docs/SDK_COVERAGE_STRATEGY.md +397 -0
  32. package/docs/SDK_REGRESSION_AND_API_PLAN.md +98 -0
  33. package/docs/SDK_STAGE3_PLAN.md +151 -0
  34. package/docs/STAGE3.md +191 -0
  35. package/docs/TESTER_GUIDE_GASLESS.md +663 -0
  36. package/docs/Verifier_L4_Gasless_Plan.md +454 -0
  37. package/docs/api/@aastar/account.md +235 -0
  38. package/docs/api/@aastar/analytics.md +219 -0
  39. package/docs/api/@aastar/core.md +26830 -0
  40. package/docs/api/@aastar/dapp.md +130 -0
  41. package/docs/api/@aastar/identity.md +482 -0
  42. package/docs/api/@aastar/paymaster.md +1387 -0
  43. package/docs/api/@aastar/sdk/README.md +155 -0
  44. package/docs/api/@aastar/sdk/node.md +4044 -0
  45. package/docs/api/@aastar/tokens.md +1971 -0
  46. package/docs/api/README.md +8 -4
  47. package/docs/changelog.md +99 -0
  48. package/docs/examples/README.md +18 -0
  49. package/docs/guide/concepts/account-abstraction.md +95 -0
  50. package/docs/guide/concepts/rainbow-bridge.md +68 -0
  51. package/docs/guide/concepts/reputation.md +95 -0
  52. package/docs/guide/concepts/superpaymaster.md +141 -0
  53. package/docs/guide/use-cases/community-management.md +141 -0
  54. package/docs/guide/use-cases/gasless-transactions.md +71 -0
  55. package/docs/guide/use-cases/operator-staking.md +84 -0
  56. package/docs/guide/use-cases/yop.md +72 -0
  57. package/docs/refactor/2026-01-13-221242-trae-refactor.md +224 -0
  58. package/docs/refactor/2026-01-13-audit-analysis.md +96 -0
  59. package/docs/refactor/2026-01-13-audit-report-v0.16.2.md +76 -0
  60. package/docs/refactor/2026-01-13-audit-report-v0.17.0.md +74 -0
  61. package/docs/refactor/2026-01-13-cursor-refactor.md +511 -0
  62. package/docs/refactor/2026-01-13-refactor-plan.md +88 -0
  63. package/docs/refactor/2026-01-13-refactor-response-plan.md +77 -0
  64. package/docs/refactor/2026-01-13-refactor-review.md +39 -0
  65. package/docs/refactor/2026-01-13-sdk-enhancement-plan.md +120 -0
  66. package/docs/refactor/2026-01-14-audit-response.md +242 -0
  67. package/docs/refactor/2026-01-14-audit-summary.md +133 -0
  68. package/docs/refactor/cursor-2026-01-13-14-00-audit-report.md +267 -0
  69. package/env.template +32 -0
  70. package/examples/l1-api-demo.ts +184 -0
  71. package/examples/l2-clients-demo.ts +138 -0
  72. package/examples/l3-user-onboarding.ts +74 -0
  73. package/examples/prepare-gasless.ts +89 -0
  74. package/examples/simple-gasless-demo.ts +80 -0
  75. package/examples/simple-superpaymaster-demo.ts +96 -0
  76. package/l4-setup.sh +11 -0
  77. package/package.json +12 -8
  78. package/packages/account/package.json +6 -3
  79. package/packages/account/src/accounts/simple.test.ts +93 -0
  80. package/packages/account/src/eoa.test.ts +37 -0
  81. package/packages/account/src/eoa.ts +4 -2
  82. package/packages/account/src/index.test.ts +34 -0
  83. package/packages/account/tsconfig.json +0 -1
  84. package/packages/analytics/package.json +12 -5
  85. package/packages/analytics/tsconfig.json +0 -5
  86. package/packages/core/package.json +16 -6
  87. package/packages/core/scripts/audit-abi-coverage.ts +165 -0
  88. package/packages/core/scripts/debug-regex.ts +36 -0
  89. package/packages/core/src/abis/.abi-hashes.json +26 -0
  90. package/packages/core/src/abis/BLSAggregator.json +686 -572
  91. package/packages/core/src/abis/BLSValidator.json +42 -26
  92. package/packages/core/src/abis/DVTValidator.json +368 -370
  93. package/packages/core/src/abis/EntryPoint.json +1382 -1379
  94. package/packages/core/src/abis/GToken.json +513 -523
  95. package/packages/core/src/abis/GTokenStaking.json +949 -931
  96. package/packages/core/src/abis/MySBT.json +1518 -1586
  97. package/packages/core/src/abis/Paymaster.json +1143 -1205
  98. package/packages/core/src/abis/PaymasterFactory.json +640 -650
  99. package/packages/core/src/abis/Registry.json +1942 -1636
  100. package/packages/core/src/abis/ReputationSystem.json +699 -477
  101. package/packages/core/src/abis/SimpleAccount.json +560 -625
  102. package/packages/core/src/abis/SimpleAccountFactory.json +111 -108
  103. package/packages/core/src/abis/SuperPaymaster.json +1781 -1399
  104. package/packages/core/src/abis/abi.config.json +24 -0
  105. package/packages/core/src/abis/index.ts +74 -38
  106. package/packages/core/src/abis/xPNTsFactory.json +718 -728
  107. package/packages/core/src/abis/xPNTsToken.json +1280 -1173
  108. package/packages/core/src/actions/StateValidator.test.ts +175 -0
  109. package/packages/{sdk/src/utils/validation.ts → core/src/actions/StateValidator.ts} +22 -125
  110. package/packages/core/src/actions/account.test.ts +155 -0
  111. package/packages/core/src/actions/account.ts +179 -0
  112. package/packages/core/src/actions/aggregator.test.ts +88 -0
  113. package/packages/core/src/actions/dvt.test.ts +124 -0
  114. package/packages/core/src/actions/entryPoint.test.ts +176 -0
  115. package/packages/core/src/actions/entryPoint.ts +266 -0
  116. package/packages/core/src/actions/factory.test.ts +250 -0
  117. package/packages/core/src/actions/factory.ts +586 -14
  118. package/packages/core/src/actions/faucet.test.ts +202 -0
  119. package/packages/core/src/actions/faucet.ts +421 -0
  120. package/packages/core/src/actions/gtokenExtended.test.ts +162 -0
  121. package/packages/core/src/actions/gtokenExtended.ts +153 -0
  122. package/packages/core/src/actions/index.ts +8 -0
  123. package/packages/core/src/actions/paymasterV4.test.ts +209 -0
  124. package/packages/core/src/actions/paymasterV4.ts +330 -138
  125. package/packages/core/src/actions/registry.test.ts +443 -0
  126. package/packages/core/src/actions/registry.ts +768 -28
  127. package/packages/core/src/actions/reputation.test.ts +225 -0
  128. package/packages/core/src/actions/reputation.ts +351 -0
  129. package/packages/core/src/actions/sbt.test.ts +322 -0
  130. package/packages/core/src/actions/sbt.ts +614 -30
  131. package/packages/core/src/actions/staking.test.ts +273 -0
  132. package/packages/core/src/actions/staking.ts +350 -8
  133. package/packages/core/src/actions/superPaymaster.test.ts +356 -0
  134. package/packages/core/src/actions/superPaymaster.ts +746 -35
  135. package/packages/core/src/actions/tokens.test.ts +60 -0
  136. package/packages/core/src/actions/tokens.ts +482 -20
  137. package/packages/core/src/actions/validators.test.ts +239 -0
  138. package/packages/core/src/actions/validators.ts +590 -0
  139. package/packages/core/src/clients/BaseClient.ts +78 -0
  140. package/packages/core/src/clients/types.ts +69 -0
  141. package/packages/core/src/clients.ts +1 -1
  142. package/packages/core/src/communities.ts +2 -2
  143. package/packages/core/src/config/ContractConfigManager.ts +63 -0
  144. package/packages/core/src/constants.ts +64 -0
  145. package/packages/core/src/contract-addresses.ts +42 -18
  146. package/packages/core/src/contracts.test.ts +58 -0
  147. package/packages/core/src/contracts.ts +2 -2
  148. package/packages/core/src/index.ts +4 -1
  149. package/packages/core/src/requirementChecker.test.ts +71 -0
  150. package/packages/core/src/requirementChecker.ts +1 -39
  151. package/packages/core/src/roles.test.ts +34 -0
  152. package/packages/core/src/roles.ts +61 -50
  153. package/packages/core/src/utils/validation.test.ts +50 -0
  154. package/packages/core/src/utils/validation.ts +66 -0
  155. package/packages/core/tsconfig.json +2 -2
  156. package/packages/core/vitest.config.ts +14 -0
  157. package/packages/dapp/package.json +6 -3
  158. package/packages/dapp/src/ui/hooks/useCreditScore.ts +1 -1
  159. package/packages/dapp/tsconfig.json +0 -1
  160. package/packages/identity/package.json +6 -3
  161. package/packages/identity/src/index.ts +49 -17
  162. package/packages/identity/tsconfig.json +0 -1
  163. package/packages/paymaster/package.json +6 -3
  164. package/packages/paymaster/src/SuperPaymaster/index.ts +2 -2
  165. package/packages/paymaster/src/V4/PaymasterClient.test.ts +114 -0
  166. package/packages/paymaster/src/V4/PaymasterClient.ts +385 -0
  167. package/packages/paymaster/src/V4/PaymasterOperator.test.ts +80 -0
  168. package/packages/paymaster/src/V4/PaymasterOperator.ts +282 -0
  169. package/packages/paymaster/src/V4/PaymasterUtils.test.ts +54 -0
  170. package/packages/paymaster/src/V4/PaymasterUtils.ts +185 -0
  171. package/packages/paymaster/src/V4/SuperPaymasterClient.test.ts +79 -0
  172. package/packages/paymaster/src/V4/SuperPaymasterClient.ts +123 -0
  173. package/packages/paymaster/src/V4/index.ts +4 -123
  174. package/packages/paymaster/tsconfig.json +0 -1
  175. package/packages/sdk/aastar/tsconfig.json +0 -1
  176. package/packages/sdk/coverage_output.txt +393 -0
  177. package/packages/sdk/coverage_output_final.txt +739 -0
  178. package/packages/sdk/coverage_output_final_v2.txt +722 -0
  179. package/packages/sdk/coverage_output_final_v3.txt +722 -0
  180. package/packages/sdk/package.json +14 -2
  181. package/packages/sdk/src/clients/ExperimentClient.test.ts +65 -0
  182. package/packages/sdk/src/clients/ExperimentClient.ts +80 -0
  183. package/packages/sdk/src/clients/admin.test.ts +98 -0
  184. package/packages/sdk/src/clients/admin.ts +108 -8
  185. package/packages/sdk/src/clients/clients.test.ts +104 -0
  186. package/packages/sdk/src/clients/community.test.ts +118 -0
  187. package/packages/sdk/src/clients/community.ts +175 -241
  188. package/packages/sdk/src/clients/endUser.test.ts +221 -0
  189. package/packages/sdk/src/clients/endUser.ts +430 -52
  190. package/packages/sdk/src/clients/operator.test.ts +162 -0
  191. package/packages/sdk/src/clients/operator.ts +168 -90
  192. package/packages/sdk/src/errors/AAStarError.test.ts +92 -0
  193. package/packages/sdk/src/errors/AAStarError.ts +70 -0
  194. package/packages/sdk/src/errors/decoder.test.ts +107 -0
  195. package/packages/sdk/src/errors/decoder.ts +84 -41
  196. package/packages/sdk/src/index.ts +11 -8
  197. package/packages/sdk/src/node/index.ts +8 -0
  198. package/packages/sdk/src/types/result.ts +29 -0
  199. package/packages/sdk/src/utils/errorHandler.test.ts +102 -0
  200. package/packages/sdk/src/utils/eventDecoder.test.ts +56 -0
  201. package/packages/sdk/src/utils/eventDecoder.ts +66 -0
  202. package/packages/sdk/src/utils/funding.test.ts +117 -0
  203. package/packages/sdk/src/utils/keys.test.ts +105 -0
  204. package/packages/sdk/src/utils/keys.ts +15 -0
  205. package/packages/sdk/src/utils/roleData.test.ts +85 -0
  206. package/packages/sdk/src/utils/roleData.ts +15 -26
  207. package/packages/sdk/src/utils/testScenarios.test.ts +79 -0
  208. package/packages/sdk/src/utils/testScenarios.ts +128 -0
  209. package/packages/sdk/src/utils/userOp.test.ts +190 -0
  210. package/packages/sdk/src/utils/userOp.ts +265 -0
  211. package/packages/sdk/tests/scenarios/01_onboard_community.ts +62 -0
  212. package/packages/sdk/tests/scenarios/02_onboard_operator.ts +109 -0
  213. package/packages/sdk/tests/scenarios/03_onboard_user.ts +53 -0
  214. package/packages/sdk/tests/scenarios/04_gasless_tx_flow.ts +68 -0
  215. package/packages/sdk/tests/scenarios/check_entrypoint.ts +19 -0
  216. package/packages/sdk/tests/scenarios/check_initialization.ts +65 -0
  217. package/packages/sdk/tests/scenarios/debug_addresses.ts +26 -0
  218. package/packages/sdk/tests/scenarios/diagnose_scenario4.ts +55 -0
  219. package/packages/sdk/tests/scenarios/setup.ts +33 -0
  220. package/packages/sdk/tests/scenarios/test_entrypoint_nonce.ts +46 -0
  221. package/packages/sdk/tsconfig.json +0 -1
  222. package/packages/tokens/package.json +6 -3
  223. package/packages/tokens/src/index.ts +92 -64
  224. package/packages/tokens/tsconfig.json +0 -1
  225. package/run_l4_gasless_regression.sh +79 -0
  226. package/run_sdk_regression.sh +200 -175
  227. package/scripts/00_utils.ts +1 -1
  228. package/scripts/01_prepare_all.ts +149 -198
  229. package/scripts/02_test_eoa.ts +27 -24
  230. package/scripts/03_test_standard_aa.ts +48 -153
  231. package/scripts/04_test_paymaster_v4.ts +41 -198
  232. package/scripts/05_test_superpaymaster.ts +40 -362
  233. package/scripts/09_local_test_community_lifecycle.ts +4 -3
  234. package/scripts/11_test_core_flows_full.ts +75 -197
  235. package/scripts/15_test_bls_full.ts +25 -2
  236. package/scripts/15_test_dvt_bls_full.ts +11 -4
  237. package/scripts/18_test_lifecycle_completion.ts +2 -2
  238. package/scripts/19_sdk_experiment_runner.ts +41 -16
  239. package/scripts/20_sdk_full_capability.ts +75 -77
  240. package/scripts/99_bug_hunting_fast.ts +55 -172
  241. package/scripts/analyze_abi_coverage.ts +169 -0
  242. package/scripts/check-admin.ts +95 -0
  243. package/scripts/check-jason-status.ts +184 -0
  244. package/scripts/check-roles.ts +36 -0
  245. package/scripts/clear-nonce.ts +47 -0
  246. package/scripts/complete-jack-superpaymaster.ts +171 -0
  247. package/scripts/debug-addr.ts +43 -0
  248. package/scripts/debug-community-registration.ts +92 -0
  249. package/scripts/debug-deploy-v4.ts +116 -0
  250. package/scripts/debug-paymaster.ts +127 -0
  251. package/scripts/debug-register-role.ts +101 -0
  252. package/scripts/debug-version.ts +71 -0
  253. package/scripts/deploy-sync.ts +104 -0
  254. package/scripts/deprecated/check_aa_entrypoint.ts +29 -0
  255. package/scripts/deprecated/check_paymaster_deposits.ts +45 -0
  256. package/scripts/deprecated/debug_aoa_function.ts +28 -0
  257. package/scripts/deprecated/debug_aoa_issue.ts +16 -0
  258. package/scripts/deprecated/debug_pimlico_aa23.ts +40 -0
  259. package/scripts/deprecated/debug_summary.ts +34 -0
  260. package/scripts/deprecated/deploy_v07_aa.ts +99 -0
  261. package/scripts/deprecated/fix_all_issues.ts +61 -0
  262. package/scripts/deprecated/fund_bpnts.ts +52 -0
  263. package/scripts/deprecated/get_factory_addresses.ts +28 -0
  264. package/scripts/deprecated/recheck_pim.ts +34 -0
  265. package/{extract_abis.sh → scripts/dev_tools/extract_abis.sh} +13 -2
  266. package/scripts/extract-docs.sh +78 -9
  267. package/scripts/fund-jack.ts +38 -0
  268. package/scripts/inspect-anni-token.ts +116 -0
  269. package/scripts/inspect-factory.ts +83 -0
  270. package/scripts/l4-paymasterv4-transfer-test.ts +228 -0
  271. package/scripts/l4-setup.ts +453 -0
  272. package/scripts/l4-state.json +80 -0
  273. package/scripts/phase1_verify_contracts.ts +207 -0
  274. package/scripts/pre_test_sync.ts +83 -0
  275. package/scripts/prepare_sepolia_resources.ts +154 -0
  276. package/scripts/query-jack-token.ts +22 -0
  277. package/scripts/quick_setup_account.ts +80 -0
  278. package/scripts/run_l4_gasless_regression.sh +32 -0
  279. package/scripts/run_sdk_experiment.sh +13 -0
  280. package/scripts/run_sdk_regression-v2.sh +38 -0
  281. package/scripts/sdk_regression_v2.ts +162 -0
  282. package/scripts/setup-bbq-community.ts +187 -0
  283. package/scripts/setup-dancing-community.ts +223 -0
  284. package/scripts/setup_test_accounts.ts +88 -0
  285. package/scripts/setup_test_environment.ts +147 -0
  286. package/scripts/sync_anvil_config.cjs +44 -0
  287. package/scripts/sync_contract_addresses.ts +186 -0
  288. package/scripts/sync_sepolia_config.cjs +90 -0
  289. package/scripts/sync_sepolia_config.mjs +74 -0
  290. package/scripts/test-brown-v4-deploy.ts +90 -0
  291. package/scripts/test-faucet-and-gasless.ts +170 -0
  292. package/scripts/test-jack-gasless.ts +119 -0
  293. package/scripts/test-jack-registration.ts +133 -0
  294. package/scripts/test-jack-superpaymaster-api.ts +112 -0
  295. package/scripts/test-kms-gasless.ts +138 -0
  296. package/scripts/test_groups.ts +63 -192
  297. package/scripts/test_new_sdk_apis_sepolia.ts +78 -0
  298. package/scripts/update_env_from_config.ts +83 -0
  299. package/scripts/v2_regression/00_validate_env.ts +28 -4
  300. package/scripts/v2_regression/02_operator_onboarding.ts +15 -141
  301. package/scripts/v2_regression/03_community_registry.ts +23 -57
  302. package/scripts/v2_regression/04_enduser_flow.ts +15 -48
  303. package/scripts/verify-tx-status.ts +81 -0
  304. package/scripts/verify_onchain_milestone.ts +114 -0
  305. package/scripts/verify_phase1.ts +66 -0
  306. package/scripts/verify_phase2.ts +66 -0
  307. package/sdk_experiment_data.csv +2 -0
  308. package/simple-test-paymaster.sh +2 -0
  309. package/simple-test-superpaymaster.sh +1 -0
  310. package/tests/l1-regression.test.ts +458 -0
  311. package/tests/l4-test-anni-gasless.ts +105 -0
  312. package/tests/l4-test-jason1-gasless.ts +150 -0
  313. package/tests/l4-test-jason2-gasless.ts +174 -0
  314. package/tests/l4-test-pmv4-deposit.ts +111 -0
  315. package/tests/l4-test-pmv4-gasless.ts +166 -0
  316. package/tests/l4-test-pmv4-submit.ts +223 -0
  317. package/tests/regression/README.md +168 -0
  318. package/tests/regression/config.ts +215 -0
  319. package/tests/regression/display-versions.ts +85 -0
  320. package/tests/regression/index.ts +67 -0
  321. package/tests/regression/l1-tests.ts +267 -0
  322. package/tests/regression/l2-tests.ts +171 -0
  323. package/tests/regression/l3-tests.ts +125 -0
  324. package/tests/regression/l4-gasless.ts +897 -0
  325. package/tests/regression/l4-runner.ts +52 -0
  326. package/tests/reports/phase1_contract_verification.md +45 -0
  327. package/tests/utils/contractVerifier.ts +237 -0
  328. package/tests/utils/userOpHelper.ts +194 -0
  329. package/tsconfig.json +32 -6
  330. package/typedoc.json +39 -5
  331. package/vitest.config.ts +16 -0
  332. package/.eslintrc.js +0 -28
  333. package/docs/STAGE_3_SCENARIO_EXP_PLAN.md +0 -77
  334. package/docs/api/@aastar/account/README.md +0 -15
  335. package/docs/api/@aastar/account/classes/UserOpClient.md +0 -87
  336. package/docs/api/@aastar/account/functions/createEOAWalletClient.md +0 -21
  337. package/docs/api/@aastar/account/functions/getUserOpHash.md +0 -23
  338. package/docs/api/@aastar/account/functions/packUserOpLimits.md +0 -19
  339. package/docs/api/@aastar/account/functions/toSimpleSmartAccount.md +0 -83
  340. package/docs/api/@aastar/account/type-aliases/EOAWalletClient.md +0 -37
  341. package/docs/api/@aastar/account/type-aliases/SimpleSmartAccount.md +0 -39
  342. package/docs/api/@aastar/core/README.md +0 -136
  343. package/docs/api/@aastar/core/classes/BLSSigner.md +0 -147
  344. package/docs/api/@aastar/core/enumerations/NodeType.md +0 -33
  345. package/docs/api/@aastar/core/functions/aggregatorActions.md +0 -2714
  346. package/docs/api/@aastar/core/functions/createAAStarPublicClient.md +0 -3105
  347. package/docs/api/@aastar/core/functions/dvtActions.md +0 -2714
  348. package/docs/api/@aastar/core/functions/factoryActions.md +0 -2714
  349. package/docs/api/@aastar/core/functions/getAddressUrl.md +0 -32
  350. package/docs/api/@aastar/core/functions/getAllCommunityConfigs.md +0 -9
  351. package/docs/api/@aastar/core/functions/getAllV2Contracts.md +0 -20
  352. package/docs/api/@aastar/core/functions/getBlockExplorer.md +0 -26
  353. package/docs/api/@aastar/core/functions/getChainId.md +0 -26
  354. package/docs/api/@aastar/core/functions/getCommunities.md +0 -76
  355. package/docs/api/@aastar/core/functions/getCommunity.md +0 -32
  356. package/docs/api/@aastar/core/functions/getCommunityConfig.md +0 -15
  357. package/docs/api/@aastar/core/functions/getContract.md +0 -37
  358. package/docs/api/@aastar/core/functions/getContractNetworks.md +0 -18
  359. package/docs/api/@aastar/core/functions/getContracts.md +0 -178
  360. package/docs/api/@aastar/core/functions/getCoreContracts.md +0 -55
  361. package/docs/api/@aastar/core/functions/getDeploymentDate.md +0 -32
  362. package/docs/api/@aastar/core/functions/getEntryPoint.md +0 -25
  363. package/docs/api/@aastar/core/functions/getNetwork.md +0 -26
  364. package/docs/api/@aastar/core/functions/getPaymasterV4_1.md +0 -25
  365. package/docs/api/@aastar/core/functions/getRpcUrl.md +0 -25
  366. package/docs/api/@aastar/core/functions/getSimpleAccountFactory.md +0 -25
  367. package/docs/api/@aastar/core/functions/getSuperPaymasterV2.md +0 -25
  368. package/docs/api/@aastar/core/functions/getTestAccounts.md +0 -30
  369. package/docs/api/@aastar/core/functions/getTestTokenContracts.md +0 -38
  370. package/docs/api/@aastar/core/functions/getTokenContracts.md +0 -31
  371. package/docs/api/@aastar/core/functions/getTxUrl.md +0 -32
  372. package/docs/api/@aastar/core/functions/getV2ContractByAddress.md +0 -28
  373. package/docs/api/@aastar/core/functions/getV2ContractByName.md +0 -28
  374. package/docs/api/@aastar/core/functions/getV2ContractsByDate.md +0 -26
  375. package/docs/api/@aastar/core/functions/isContractNetworkSupported.md +0 -27
  376. package/docs/api/@aastar/core/functions/isRegisteredCommunity.md +0 -15
  377. package/docs/api/@aastar/core/functions/isV2Contract.md +0 -27
  378. package/docs/api/@aastar/core/functions/paymasterV4Actions.md +0 -2719
  379. package/docs/api/@aastar/core/functions/registryActions.md +0 -2720
  380. package/docs/api/@aastar/core/functions/reputationActions.md +0 -2720
  381. package/docs/api/@aastar/core/functions/sbtActions.md +0 -2720
  382. package/docs/api/@aastar/core/functions/stakingActions.md +0 -2720
  383. package/docs/api/@aastar/core/functions/superPaymasterActions.md +0 -2720
  384. package/docs/api/@aastar/core/functions/tokenActions.md +0 -2714
  385. package/docs/api/@aastar/core/interfaces/CommunityConfig.md +0 -81
  386. package/docs/api/@aastar/core/interfaces/ContractVersion.md +0 -63
  387. package/docs/api/@aastar/core/type-aliases/AggregatorActions.md +0 -79
  388. package/docs/api/@aastar/core/type-aliases/ContractCategory.md +0 -5
  389. package/docs/api/@aastar/core/type-aliases/ContractNetwork.md +0 -5
  390. package/docs/api/@aastar/core/type-aliases/DVTActions.md +0 -139
  391. package/docs/api/@aastar/core/type-aliases/FactoryActions.md +0 -99
  392. package/docs/api/@aastar/core/type-aliases/NetworkContracts.md +0 -5
  393. package/docs/api/@aastar/core/type-aliases/PaymasterV4Actions.md +0 -422
  394. package/docs/api/@aastar/core/type-aliases/RegistryActions.md +0 -263
  395. package/docs/api/@aastar/core/type-aliases/ReputationActions.md +0 -47
  396. package/docs/api/@aastar/core/type-aliases/RoleConfig.md +0 -83
  397. package/docs/api/@aastar/core/type-aliases/SBTActions.md +0 -203
  398. package/docs/api/@aastar/core/type-aliases/StakingActions.md +0 -179
  399. package/docs/api/@aastar/core/type-aliases/SuperPaymasterActions.md +0 -219
  400. package/docs/api/@aastar/core/type-aliases/SupportedNetwork.md +0 -3
  401. package/docs/api/@aastar/core/type-aliases/TokenActions.md +0 -151
  402. package/docs/api/@aastar/core/variables/AASTAR_COMMUNITY.md +0 -8
  403. package/docs/api/@aastar/core/variables/ALL_ADDRESSES.md +0 -71
  404. package/docs/api/@aastar/core/variables/BLSAggregatorABI.md +0 -3
  405. package/docs/api/@aastar/core/variables/BLSHelpers.md +0 -91
  406. package/docs/api/@aastar/core/variables/BPS_DENOMINATOR.md +0 -5
  407. package/docs/api/@aastar/core/variables/BRANDING.md +0 -67
  408. package/docs/api/@aastar/core/variables/BREAD_COMMUNITY.md +0 -8
  409. package/docs/api/@aastar/core/variables/COMMUNITIES.md +0 -5
  410. package/docs/api/@aastar/core/variables/COMMUNITY_OWNERS.md +0 -15
  411. package/docs/api/@aastar/core/variables/CONTRACTS.md +0 -163
  412. package/docs/api/@aastar/core/variables/CONTRACT_METADATA.md +0 -67
  413. package/docs/api/@aastar/core/variables/CORE_ADDRESSES.md +0 -35
  414. package/docs/api/@aastar/core/variables/DEFAULT_APNTS_PRICE_USD.md +0 -5
  415. package/docs/api/@aastar/core/variables/DEFAULT_GAS_TOKEN_MINT_AMOUNT.md +0 -5
  416. package/docs/api/@aastar/core/variables/DEFAULT_USDT_MINT_AMOUNT.md +0 -5
  417. package/docs/api/@aastar/core/variables/DVTValidatorABI.md +0 -3
  418. package/docs/api/@aastar/core/variables/EntryPointABI.md +0 -3
  419. package/docs/api/@aastar/core/variables/FAUCET_API_URL.md +0 -5
  420. package/docs/api/@aastar/core/variables/GTokenABI.md +0 -3
  421. package/docs/api/@aastar/core/variables/GTokenStakingABI.md +0 -3
  422. package/docs/api/@aastar/core/variables/LINKS.md +0 -33
  423. package/docs/api/@aastar/core/variables/MAX_SERVICE_FEE.md +0 -5
  424. package/docs/api/@aastar/core/variables/MONITORING_ADDRESSES.md +0 -15
  425. package/docs/api/@aastar/core/variables/MySBTABI.md +0 -3
  426. package/docs/api/@aastar/core/variables/NETWORKS.md +0 -79
  427. package/docs/api/@aastar/core/variables/NODE_STAKE_AMOUNTS.md +0 -31
  428. package/docs/api/@aastar/core/variables/OFFICIAL_ADDRESSES.md +0 -11
  429. package/docs/api/@aastar/core/variables/PAYMASTER_ADDRESSES.md +0 -15
  430. package/docs/api/@aastar/core/variables/PaymasterABI.md +0 -3
  431. package/docs/api/@aastar/core/variables/PaymasterFactoryABI.md +0 -3
  432. package/docs/api/@aastar/core/variables/PaymasterV4ABI.md +0 -3
  433. package/docs/api/@aastar/core/variables/ROLE_ANODE.md +0 -3
  434. package/docs/api/@aastar/core/variables/ROLE_COMMUNITY.md +0 -3
  435. package/docs/api/@aastar/core/variables/ROLE_ENDUSER.md +0 -5
  436. package/docs/api/@aastar/core/variables/ROLE_KMS.md +0 -3
  437. package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_AOA.md +0 -3
  438. package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_SUPER.md +0 -3
  439. package/docs/api/@aastar/core/variables/RegistryABI.md +0 -3
  440. package/docs/api/@aastar/core/variables/ReputationSystemABI.md +0 -3
  441. package/docs/api/@aastar/core/variables/ReputationSystemV3ABI.md +0 -3
  442. package/docs/api/@aastar/core/variables/SEPOLIA_CONTRACTS.md +0 -159
  443. package/docs/api/@aastar/core/variables/SEPOLIA_V2_VERSIONS.md +0 -67
  444. package/docs/api/@aastar/core/variables/SERVICE_FEE_RATE.md +0 -5
  445. package/docs/api/@aastar/core/variables/Simple7702AccountABI.md +0 -3
  446. package/docs/api/@aastar/core/variables/SimpleAccountABI.md +0 -3
  447. package/docs/api/@aastar/core/variables/SimpleAccountFactoryABI.md +0 -3
  448. package/docs/api/@aastar/core/variables/SimpleAccountFactoryV08ABI.md +0 -3
  449. package/docs/api/@aastar/core/variables/SimpleAccountV08ABI.md +0 -3
  450. package/docs/api/@aastar/core/variables/SuperPaymasterABI.md +0 -3
  451. package/docs/api/@aastar/core/variables/SuperPaymasterV3ABI.md +0 -3
  452. package/docs/api/@aastar/core/variables/TEST_ACCOUNT_ADDRESSES.md +0 -11
  453. package/docs/api/@aastar/core/variables/TEST_ACCOUNT_POOL_SIZE.md +0 -5
  454. package/docs/api/@aastar/core/variables/TEST_COMMUNITIES.md +0 -19
  455. package/docs/api/@aastar/core/variables/TEST_TOKEN_ADDRESSES.md +0 -19
  456. package/docs/api/@aastar/core/variables/TOKEN_ADDRESSES.md +0 -11
  457. package/docs/api/@aastar/core/variables/V2_SUMMARY.md +0 -39
  458. package/docs/api/@aastar/core/variables/xPNTsFactoryABI.md +0 -3
  459. package/docs/api/@aastar/core/variables/xPNTsTokenABI.md +0 -3
  460. package/docs/api/@aastar/paymaster/README.md +0 -14
  461. package/docs/api/@aastar/paymaster/classes/SuperPaymasterClient.md +0 -163
  462. package/docs/api/@aastar/paymaster/functions/checkEligibility.md +0 -28
  463. package/docs/api/@aastar/paymaster/functions/getPaymasterV4Middleware.md +0 -32
  464. package/docs/api/@aastar/paymaster/functions/getSuperPaymasterMiddleware.md +0 -32
  465. package/docs/api/@aastar/paymaster/type-aliases/PaymasterConfig.md +0 -35
  466. package/docs/api/@aastar/paymaster/type-aliases/PaymasterV4MiddlewareConfig.md +0 -35
  467. package/docs/api/@aastar/tokens/README.md +0 -3
  468. package/docs/api/@aastar/tokens/classes/FinanceClient.md +0 -8653
  469. package/ext/permissionless.js/.changeset/README.md +0 -8
  470. package/ext/permissionless.js/.changeset/config.json +0 -11
  471. package/ext/permissionless.js/.env-example +0 -2
  472. package/ext/permissionless.js/.github/actions/install-dependencies/action.yml +0 -17
  473. package/ext/permissionless.js/.github/dependabot.yaml +0 -10
  474. package/ext/permissionless.js/.github/workflows/canary.yml +0 -49
  475. package/ext/permissionless.js/.github/workflows/on-pull-request.yml +0 -61
  476. package/ext/permissionless.js/.github/workflows/on-push-to-main.yml +0 -59
  477. package/ext/permissionless.js/.github/workflows/prune-tags.yml +0 -92
  478. package/ext/permissionless.js/.github/workflows/verify.yml +0 -114
  479. package/ext/permissionless.js/.size-limit.json +0 -13
  480. package/ext/permissionless.js/LICENSE +0 -21
  481. package/ext/permissionless.js/assets/banner.png +0 -0
  482. package/ext/permissionless.js/biome.json +0 -46
  483. package/ext/permissionless.js/bun.lock +0 -2340
  484. package/ext/permissionless.js/bun.lockb +0 -0
  485. package/ext/permissionless.js/package.json +0 -82
  486. package/ext/permissionless.js/packages/mock-paymaster/CHANGELOG.md +0 -31
  487. package/ext/permissionless.js/packages/mock-paymaster/constants.ts +0 -84
  488. package/ext/permissionless.js/packages/mock-paymaster/helpers/abi.ts +0 -1048
  489. package/ext/permissionless.js/packages/mock-paymaster/helpers/erc20-utils.ts +0 -105
  490. package/ext/permissionless.js/packages/mock-paymaster/helpers/schema.ts +0 -307
  491. package/ext/permissionless.js/packages/mock-paymaster/helpers/utils.ts +0 -78
  492. package/ext/permissionless.js/packages/mock-paymaster/index.ts +0 -63
  493. package/ext/permissionless.js/packages/mock-paymaster/package.json +0 -33
  494. package/ext/permissionless.js/packages/mock-paymaster/relay.ts +0 -424
  495. package/ext/permissionless.js/packages/mock-paymaster/setup.ts +0 -163
  496. package/ext/permissionless.js/packages/mock-paymaster/singletonPaymasters.ts +0 -230
  497. package/ext/permissionless.js/packages/permissionless/CHANGELOG.md +0 -893
  498. package/ext/permissionless.js/packages/permissionless/README.md +0 -122
  499. package/ext/permissionless.js/packages/permissionless/accounts/biconomy/abi/BiconomySmartAccountAbi.ts +0 -128
  500. package/ext/permissionless.js/packages/permissionless/accounts/biconomy/toBiconomySmartAccount.ts +0 -374
  501. package/ext/permissionless.js/packages/permissionless/accounts/decodeCalls.test.ts +0 -505
  502. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/abi/EtherspotBootstrapAbi.ts +0 -94
  503. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/constants.ts +0 -27
  504. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/toEtherspotSmartAccount.ts +0 -369
  505. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getInitMSAData.ts +0 -56
  506. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getNonceKey.ts +0 -21
  507. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/wrapMessageHash.ts +0 -43
  508. package/ext/permissionless.js/packages/permissionless/accounts/index.ts +0 -86
  509. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelAccountAbi.ts +0 -87
  510. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3AccountAbi.ts +0 -813
  511. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3FactoryAbi.ts +0 -12
  512. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3MetaFactoryAbi.ts +0 -17
  513. package/ext/permissionless.js/packages/permissionless/accounts/kernel/constants.ts +0 -14
  514. package/ext/permissionless.js/packages/permissionless/accounts/kernel/to7702KernelSmartAccount.ts +0 -63
  515. package/ext/permissionless.js/packages/permissionless/accounts/kernel/toEcdsaKernelSmartAccount.ts +0 -62
  516. package/ext/permissionless.js/packages/permissionless/accounts/kernel/toKernelSmartAccount.ts +0 -984
  517. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/decodeCallData.ts +0 -43
  518. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/encodeCallData.ts +0 -57
  519. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/getNonceKey.ts +0 -33
  520. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isKernelV2.ts +0 -6
  521. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isWebAuthnAccount.ts +0 -8
  522. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signMessage.ts +0 -115
  523. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signTypedData.ts +0 -97
  524. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/wrapMessageHash.ts +0 -44
  525. package/ext/permissionless.js/packages/permissionless/accounts/light/toLightSmartAccount.ts +0 -496
  526. package/ext/permissionless.js/packages/permissionless/accounts/nexus/toNexusSmartAccount.ts +0 -351
  527. package/ext/permissionless.js/packages/permissionless/accounts/safe/index.ts +0 -14
  528. package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.test.ts +0 -275
  529. package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.ts +0 -316
  530. package/ext/permissionless.js/packages/permissionless/accounts/safe/toSafeSmartAccount.ts +0 -1980
  531. package/ext/permissionless.js/packages/permissionless/accounts/simple/to7702SimpleSmartAccount.ts +0 -51
  532. package/ext/permissionless.js/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts +0 -585
  533. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/toThirdwebSmartAccount.ts +0 -221
  534. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/decodeCallData.ts +0 -87
  535. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/encodeCallData.ts +0 -81
  536. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getAccountAddress.ts +0 -48
  537. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getFactoryData.ts +0 -40
  538. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signMessage.ts +0 -33
  539. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signTypedData.ts +0 -67
  540. package/ext/permissionless.js/packages/permissionless/accounts/trust/toTrustSmartAccount.ts +0 -232
  541. package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/decodeCallData.ts +0 -87
  542. package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/encodeCallData.ts +0 -81
  543. package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/getFactoryData.ts +0 -51
  544. package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.test.ts +0 -39
  545. package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.ts +0 -93
  546. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.test.ts +0 -216
  547. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.ts +0 -99
  548. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.test.ts +0 -237
  549. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.ts +0 -96
  550. package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.test.ts +0 -72
  551. package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.ts +0 -132
  552. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.test.ts +0 -108
  553. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.ts +0 -158
  554. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.test.ts +0 -35
  555. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.ts +0 -120
  556. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.test.ts +0 -129
  557. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.ts +0 -98
  558. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.test.ts +0 -117
  559. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.ts +0 -87
  560. package/ext/permissionless.js/packages/permissionless/actions/erc7579.ts +0 -103
  561. package/ext/permissionless.js/packages/permissionless/actions/etherspot/getUserOperationGasPrice.ts +0 -32
  562. package/ext/permissionless.js/packages/permissionless/actions/etherspot.ts +0 -4
  563. package/ext/permissionless.js/packages/permissionless/actions/index.ts +0 -9
  564. package/ext/permissionless.js/packages/permissionless/actions/package.json +0 -6
  565. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/getCredentials.ts +0 -47
  566. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startAuthentication.ts +0 -39
  567. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startRegistration.ts +0 -126
  568. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyAuthentication.ts +0 -142
  569. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyRegistration.ts +0 -132
  570. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer.ts +0 -17
  571. package/ext/permissionless.js/packages/permissionless/actions/pimlico/estimateErc20PaymasterCost.ts +0 -102
  572. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.test.ts +0 -90
  573. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.ts +0 -77
  574. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.test.ts +0 -82
  575. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.ts +0 -67
  576. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.test.ts +0 -199
  577. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.ts +0 -49
  578. package/ext/permissionless.js/packages/permissionless/actions/pimlico/sendCompressedUserOperation.ts +0 -59
  579. package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.test.ts +0 -236
  580. package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.ts +0 -151
  581. package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.test.ts +0 -153
  582. package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.ts +0 -74
  583. package/ext/permissionless.js/packages/permissionless/actions/pimlico.ts +0 -38
  584. package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.test.ts +0 -96
  585. package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.ts +0 -75
  586. package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.test.ts +0 -154
  587. package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.ts +0 -129
  588. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.test.ts +0 -255
  589. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.ts +0 -91
  590. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.test.ts +0 -571
  591. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.ts +0 -38
  592. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.test.ts +0 -416
  593. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.ts +0 -133
  594. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.test.ts +0 -219
  595. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.ts +0 -73
  596. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.test.ts +0 -228
  597. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.ts +0 -157
  598. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/writeContract.ts +0 -70
  599. package/ext/permissionless.js/packages/permissionless/actions/smartAccount.ts +0 -7
  600. package/ext/permissionless.js/packages/permissionless/clients/createSmartAccountClient.ts +0 -181
  601. package/ext/permissionless.js/packages/permissionless/clients/decorators/passkeyServer.ts +0 -57
  602. package/ext/permissionless.js/packages/permissionless/clients/decorators/pimlico.ts +0 -189
  603. package/ext/permissionless.js/packages/permissionless/clients/decorators/smartAccount.ts +0 -350
  604. package/ext/permissionless.js/packages/permissionless/clients/index.ts +0 -2
  605. package/ext/permissionless.js/packages/permissionless/clients/passkeyServer.ts +0 -69
  606. package/ext/permissionless.js/packages/permissionless/clients/pimlico.ts +0 -124
  607. package/ext/permissionless.js/packages/permissionless/errors/index.ts +0 -17
  608. package/ext/permissionless.js/packages/permissionless/experimental/pimlico/index.ts +0 -1
  609. package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.test.ts +0 -523
  610. package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts +0 -369
  611. package/ext/permissionless.js/packages/permissionless/index.ts +0 -3
  612. package/ext/permissionless.js/packages/permissionless/package.json +0 -102
  613. package/ext/permissionless.js/packages/permissionless/types/etherspot.ts +0 -12
  614. package/ext/permissionless.js/packages/permissionless/types/package.json +0 -6
  615. package/ext/permissionless.js/packages/permissionless/types/passkeyServer.ts +0 -125
  616. package/ext/permissionless.js/packages/permissionless/types/pimlico.ts +0 -151
  617. package/ext/permissionless.js/packages/permissionless/utils/decode7579Calls.ts +0 -133
  618. package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.test.ts +0 -40
  619. package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.ts +0 -10
  620. package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.test.ts +0 -57
  621. package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.ts +0 -35
  622. package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.test.ts +0 -69
  623. package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.ts +0 -114
  624. package/ext/permissionless.js/packages/permissionless/utils/encodeInstallModule.ts +0 -91
  625. package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.test.ts +0 -38
  626. package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.ts +0 -8
  627. package/ext/permissionless.js/packages/permissionless/utils/encodeUninstallModule.ts +0 -88
  628. package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.test.ts +0 -59
  629. package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.ts +0 -66
  630. package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.test.ts +0 -57
  631. package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.ts +0 -49
  632. package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.test.ts +0 -31
  633. package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.ts +0 -13
  634. package/ext/permissionless.js/packages/permissionless/utils/getEstimationCallData.ts +0 -297
  635. package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.test.ts +0 -204
  636. package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.ts +0 -122
  637. package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.test.ts +0 -90
  638. package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.ts +0 -56
  639. package/ext/permissionless.js/packages/permissionless/utils/index.ts +0 -43
  640. package/ext/permissionless.js/packages/permissionless/utils/isSmartAccountDeployed.ts +0 -13
  641. package/ext/permissionless.js/packages/permissionless/utils/ox.ts +0 -48
  642. package/ext/permissionless.js/packages/permissionless/utils/toOwner.ts +0 -89
  643. package/ext/permissionless.js/packages/permissionless/vitest.config.ts +0 -31
  644. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/biconomy.ts +0 -22
  645. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/etherspot.ts +0 -12
  646. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/kernel.ts +0 -63
  647. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/light.ts +0 -10
  648. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/nexus.ts +0 -16
  649. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/safe.ts +0 -75
  650. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/simple.ts +0 -16
  651. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/thirdweb.ts +0 -7
  652. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/trust.ts +0 -26
  653. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/core.ts +0 -24
  654. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/index.ts +0 -10
  655. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/index.ts +0 -783
  656. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/instance.ts +0 -290
  657. package/ext/permissionless.js/packages/permissionless-test/src/testWithRpc.ts +0 -128
  658. package/ext/permissionless.js/packages/permissionless-test/src/types.ts +0 -12
  659. package/ext/permissionless.js/packages/permissionless-test/src/utils.ts +0 -1091
  660. package/ext/permissionless.js/packages/wagmi/CHANGELOG.md +0 -53
  661. package/ext/permissionless.js/packages/wagmi/README.md +0 -93
  662. package/ext/permissionless.js/packages/wagmi/context.ts +0 -22
  663. package/ext/permissionless.js/packages/wagmi/hooks/useAvailableCapabilities.ts +0 -43
  664. package/ext/permissionless.js/packages/wagmi/hooks/useSendTransaction.ts +0 -164
  665. package/ext/permissionless.js/packages/wagmi/hooks/useWaitForTransactionReceipt.ts +0 -427
  666. package/ext/permissionless.js/packages/wagmi/index.ts +0 -15
  667. package/ext/permissionless.js/packages/wagmi/package.json +0 -26
  668. package/ext/permissionless.js/packages/wagmi/utils/observe.ts +0 -76
  669. package/ext/permissionless.js/packages/wagmi-demo/README.md +0 -1
  670. package/ext/permissionless.js/packages/wagmi-demo/biome.json +0 -13
  671. package/ext/permissionless.js/packages/wagmi-demo/index.html +0 -12
  672. package/ext/permissionless.js/packages/wagmi-demo/package.json +0 -16
  673. package/ext/permissionless.js/packages/wagmi-demo/src/App.tsx +0 -98
  674. package/ext/permissionless.js/packages/wagmi-demo/src/PasskeyServerDemo.tsx +0 -286
  675. package/ext/permissionless.js/packages/wagmi-demo/src/PasskeysDemo.tsx +0 -457
  676. package/ext/permissionless.js/packages/wagmi-demo/src/index.css +0 -21
  677. package/ext/permissionless.js/packages/wagmi-demo/src/main.tsx +0 -275
  678. package/ext/permissionless.js/packages/wagmi-demo/src/vite-env.d.ts +0 -1
  679. package/ext/permissionless.js/packages/wagmi-demo/src/wagmi.ts +0 -33
  680. package/ext/permissionless.js/packages/wagmi-demo/tsconfig.json +0 -25
  681. package/ext/permissionless.js/packages/wagmi-demo/tsconfig.node.json +0 -12
  682. package/ext/permissionless.js/packages/wagmi-demo/vite.config.ts +0 -7
  683. package/ext/permissionless.js/tsconfig/tsconfig.base.json +0 -42
  684. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.cjs.json +0 -11
  685. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.esm.json +0 -9
  686. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.json +0 -17
  687. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.types.json +0 -13
  688. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.cjs.json +0 -11
  689. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.esm.json +0 -9
  690. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.json +0 -18
  691. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.types.json +0 -13
  692. package/ext/permissionless.js/tsconfig/tsconfig.wagmi.esm.json +0 -8
  693. package/ext/permissionless.js/tsconfig/tsconfig.wagmi.json +0 -19
  694. package/ext/permissionless.js/tsconfig/tsconfig.wagmi.types.json +0 -12
  695. package/packages/community/package.json +0 -22
  696. package/packages/community/src/index.ts +0 -306
  697. package/packages/community/tsconfig.json +0 -8
  698. package/packages/core/src/abis/PaymasterV4_2.json +0 -1183
  699. package/packages/core/src/abis/aPNTs.json +0 -1173
  700. package/packages/core/src/contract-versions.ts +0 -374
  701. package/packages/enduser/package.json +0 -21
  702. package/packages/enduser/src/index.ts +0 -138
  703. package/packages/enduser/tsconfig.json +0 -8
  704. package/packages/operator/package.json +0 -21
  705. package/packages/operator/src/index.ts +0 -172
  706. package/packages/operator/tsconfig.json +0 -8
  707. package/run_full_regression.sh +0 -215
  708. package/scripts/validate_environment.ts +0 -140
  709. /package/{extract_addresses_to_env.sh → scripts/dev_tools/extract_addresses_to_env.sh} +0 -0
  710. /package/{final_safe_harmonize.py → scripts/dev_tools/final_safe_harmonize.py} +0 -0
  711. /package/{safe_harmonize.py → scripts/dev_tools/safe_harmonize.py} +0 -0
  712. /package/{surgical_harmonize.py → scripts/dev_tools/surgical_harmonize.py} +0 -0
@@ -0,0 +1,95 @@
1
+
2
+ import { createPublicClient, http, parseAbi, type Address } from 'viem';
3
+ import { sepolia } from 'viem/chains';
4
+ import { privateKeyToAccount } from 'viem/accounts';
5
+ import * as dotenv from 'dotenv';
6
+ import { loadNetworkConfig } from '../tests/regression/config.js';
7
+
8
+ dotenv.config({ path: '.env.sepolia' });
9
+
10
+ async function main() {
11
+ const config = loadNetworkConfig('sepolia');
12
+ const publicClient = createPublicClient({ chain: sepolia, transport: http(config.rpcUrl) });
13
+ const registryAddr = config.contracts.registry;
14
+
15
+ console.log(`\n🔍 Checking Permissions for Registry: ${registryAddr}`);
16
+
17
+ // --- 1. Identify Candidate Keys ---
18
+ const keysToCheck: { name: string, account: any }[] = [];
19
+
20
+ // Add explicitly named keys first for clarity
21
+ if (process.env.PRIVATE_KEY) keysToCheck.push({ name: 'PRIVATE_KEY', account: privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`) });
22
+
23
+ for (const [key, value] of Object.entries(process.env)) {
24
+ if (key.startsWith('PRIVATE_KEY') && value && value.startsWith('0x')) {
25
+ try {
26
+ const acct = privateKeyToAccount(value as `0x${string}`);
27
+ // Avoid duplicates
28
+ if (!keysToCheck.find(k => k.account.address === acct.address)) {
29
+ keysToCheck.push({ name: key, account: acct });
30
+ }
31
+ } catch (e) {
32
+ // Ignore parsing errors for non-keys
33
+ }
34
+ }
35
+ }
36
+ console.log(` Found ${keysToCheck.length} candidate keys in .env.sepolia`);
37
+ keysToCheck.forEach(k => console.log(` - ${k.name.padEnd(20)}: ${k.account.address}`));
38
+
39
+ const registryAbi = parseAbi([
40
+ 'function hasRole(bytes32 role, address account) view returns (bool)',
41
+ 'function DEFAULT_ADMIN_ROLE() view returns (bytes32)',
42
+ 'function owner() view returns (address)'
43
+ ]);
44
+
45
+ // --- 2. Check DEFAULT_ADMIN_ROLE (0x00...00) ---
46
+ const DEFAULT_ADMIN = '0x0000000000000000000000000000000000000000000000000000000000000000' as `0x${string}`;
47
+ console.log(`\n👑 Checking DEFAULT_ADMIN_ROLE (0x00...00):`);
48
+
49
+ let adminFound = false;
50
+
51
+ for (const k of keysToCheck) {
52
+ try {
53
+ const isAdmin = await publicClient.readContract({
54
+ address: registryAddr, abi: registryAbi, functionName: 'hasRole', args: [DEFAULT_ADMIN, k.account.address]
55
+ });
56
+
57
+ if (isAdmin) {
58
+ console.log(` ✅ MATCH! ${k.name} IS AN ADMIN!`);
59
+ adminFound = true;
60
+ } else {
61
+ console.log(` ${k.name.padEnd(20)}: ❌ NO`);
62
+ }
63
+ } catch (e: any) {
64
+ console.log(` ${k.name.padEnd(20)}: ⚠️ Error (Revert?) - ${e.shortMessage || e.message}`);
65
+ }
66
+ }
67
+
68
+ // --- 3. Check Owner (Fallback) ---
69
+ console.log(`\n🏠 Checking Contract Owner:`);
70
+ try {
71
+ const owner = await publicClient.readContract({
72
+ address: registryAddr, abi: registryAbi, functionName: 'owner'
73
+ });
74
+ console.log(` Registry Owner Address: ${owner}`);
75
+
76
+ const keyOwner = keysToCheck.find(k => k.account.address === owner);
77
+ if (keyOwner) {
78
+ console.log(` ✅ MATCH! ${keyOwner.name} IS THE OWNER!`);
79
+ adminFound = true;
80
+ } else {
81
+ console.log(` ❌ No match in provided keys.`);
82
+ }
83
+ } catch (e: any) {
84
+ console.log(` ⚠️ 'owner()' function not supported or reverted.`);
85
+ }
86
+
87
+ if (!adminFound) {
88
+ console.log(`\n🚨 DIAGNOSTIC RESULT: NO ADMIN KEYS FOUND.`);
89
+ console.log(` The Registry at ${registryAddr} is not controlled by any key in .env.sepolia.`);
90
+ } else {
91
+ console.log(`\n✅ DIAGNOSTIC RESULT: ADMIN KEY FOUND!`);
92
+ }
93
+ }
94
+
95
+ main().catch(console.error);
@@ -0,0 +1,184 @@
1
+
2
+ import { createPublicClient, createWalletClient, http, parseAbi, keccak256, formatEther, parseEther, toBytes } from 'viem';
3
+ import { privateKeyToAccount } from 'viem/accounts';
4
+ import { sepolia } from 'viem/chains';
5
+ import * as dotenv from 'dotenv';
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+
9
+ // Load env
10
+ dotenv.config({ path: '.env.sepolia' });
11
+
12
+ const CONFIG_PATH = path.resolve(process.cwd(), 'config.sepolia.json');
13
+ const STATE_PATH = path.resolve(process.cwd(), 'scripts/l4-state.json');
14
+
15
+ // ABIs
16
+ const REGISTRY_ABI = parseAbi([
17
+ 'function hasRole(bytes32 roleId, address user) view returns (bool)',
18
+ 'function roleMetadata(bytes32 roleId, address user) view returns (bytes)',
19
+ 'function registerRole(bytes32 roleId, address user, bytes roleData)',
20
+ 'function registerRoleSelf(bytes32 roleId, bytes roleData)'
21
+ ]);
22
+
23
+ const FACTORY_ABI = parseAbi([
24
+ 'function getTokenAddress(address community) view returns (address)',
25
+ 'function deployxPNTsToken(string name, string symbol, string communityName, string communityENS, uint256 exchangeRate, address paymasterAOA) returns (address)'
26
+ ]);
27
+
28
+ const TOKEN_ABI = parseAbi([
29
+ 'function name() view returns (string)',
30
+ 'function symbol() view returns (string)'
31
+ ]);
32
+
33
+ const ROLE_COMMUNITY = keccak256(toBytes('COMMUNITY'));
34
+
35
+ async function main() {
36
+ console.log('🔍 Checking Jason Account Status...');
37
+
38
+ // 1. Load Config & State
39
+ const config = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf8'));
40
+ const state = JSON.parse(fs.readFileSync(STATE_PATH, 'utf8'));
41
+
42
+ // Jason's Address
43
+ const jasonAddress = state.operators.jason.address;
44
+ const jasonKey = process.env.PRIVATE_KEY_JASON;
45
+
46
+ if (!jasonAddress || !jasonKey) {
47
+ throw new Error('Jason address or private key not found');
48
+ }
49
+
50
+ console.log(`👤 Jason Address: ${jasonAddress}`);
51
+
52
+ // Clients
53
+ const client = createPublicClient({ chain: sepolia, transport: http(process.env.RPC_URL) });
54
+ const wallet = createWalletClient({
55
+ account: privateKeyToAccount(jasonKey as `0x${string}`),
56
+ chain: sepolia,
57
+ transport: http(process.env.RPC_URL)
58
+ });
59
+
60
+ const registryAddr = config.registry;
61
+ const factoryAddr = config.xPNTsFactory;
62
+
63
+ // 2. Check Registry Role
64
+ console.log('\n🏛️ Checking Registry Status...');
65
+ const hasRole = await client.readContract({
66
+ address: registryAddr,
67
+ abi: REGISTRY_ABI,
68
+ functionName: 'hasRole',
69
+ args: [ROLE_COMMUNITY, jasonAddress]
70
+ });
71
+
72
+ if (hasRole) {
73
+ console.log('✅ Jason IS registered as COMMUNITY.');
74
+ // Try to decode metadata (simple string decode for name if possible, complex decode is hard without full ABI)
75
+ // We'll skip metadata decoding for now unless critical
76
+ } else {
77
+ console.log('❌ Jason is NOT registered as COMMUNITY.');
78
+ console.log('🛠️ Attempting to register Jason as Community...');
79
+
80
+ try {
81
+ // Encode RoleData: (name, ens, website, desc, logo, stake)
82
+ // string, string, string, string, string, uint256
83
+ // We use 'viem' encodeAbiParameters
84
+ const { encodeAbiParameters, parseAbiParameters } = await import('viem');
85
+
86
+ const roleData = encodeAbiParameters(
87
+ parseAbiParameters('string, string, string, string, string, uint256'),
88
+ ['Jason Community', '', 'https://jason.com', 'Jason Tech Community', '', 30000000000000000000n] // 30 GTokens
89
+ );
90
+
91
+ // Note: This requires Jason to have GTokens and Approve Staking!
92
+ // Assuming Jason has enough GTokens (he usually does in tests)
93
+ // We need to approve Staking first
94
+ const STAKING = config.gTokenStaking;
95
+ const GTOKEN = config.gToken;
96
+
97
+ console.log(' Approving Staking...');
98
+ const approveHash = await wallet.writeContract({
99
+ address: GTOKEN,
100
+ abi: parseAbi(['function approve(address,uint256) returns (bool)']),
101
+ functionName: 'approve',
102
+ args: [STAKING, parseEther('1000')] // Plenty
103
+ });
104
+ await client.waitForTransactionReceipt({ hash: approveHash });
105
+ console.log(' ✅ Approved.');
106
+
107
+ console.log(' Registering Community...');
108
+ const txHash = await wallet.writeContract({
109
+ address: registryAddr,
110
+ abi: REGISTRY_ABI,
111
+ functionName: 'registerRoleSelf',
112
+ args: [ROLE_COMMUNITY, roleData]
113
+ });
114
+ await client.waitForTransactionReceipt({ hash: txHash });
115
+ console.log(` ✅ Community Registered! Tx: ${txHash}`);
116
+ } catch (e: any) {
117
+ console.error(` ❌ Registration Failed: ${e.message}`);
118
+ return;
119
+ }
120
+ }
121
+
122
+ // 3. Check xPNTs Token
123
+ console.log('\n🪙 Checking xPNTs Token Status...');
124
+ const tokenAddr = await client.readContract({
125
+ address: factoryAddr,
126
+ abi: FACTORY_ABI,
127
+ functionName: 'getTokenAddress',
128
+ args: [jasonAddress]
129
+ });
130
+
131
+ if (tokenAddr && tokenAddr !== '0x0000000000000000000000000000000000000000') {
132
+ const [name, symbol] = await Promise.all([
133
+ client.readContract({ address: tokenAddr, abi: TOKEN_ABI, functionName: 'name' }),
134
+ client.readContract({ address: tokenAddr, abi: TOKEN_ABI, functionName: 'symbol' })
135
+ ]);
136
+ console.log(`✅ Jason has Token: ${tokenAddr}`);
137
+ console.log(` Name: ${name}`);
138
+ console.log(` Symbol: ${symbol}`);
139
+
140
+ if (symbol === 'dPNTs' || symbol.includes('cPNTs')) {
141
+ console.log(` ℹ️ Note: "dPNTs (cPNTs)" confusion likely due to symbol naming.`);
142
+ }
143
+ } else {
144
+ console.log('❌ Jason has NO Token deployed.');
145
+ console.log('🛠️ Deploying Token for Jason...');
146
+
147
+ try {
148
+ // function deployxPNTsToken(string name, string symbol, string communityName, string communityENS, uint256 exchangeRate, address paymasterAOA)
149
+ const txHash = await wallet.writeContract({
150
+ address: factoryAddr,
151
+ abi: FACTORY_ABI,
152
+ functionName: 'deployxPNTsToken',
153
+ args: [
154
+ 'Jason Community Token',
155
+ 'cPNTs', // Let's use cPNTs to curb confusion
156
+ 'Jason Community',
157
+ '',
158
+ parseEther('1'), // 1:1 Exchange Rate
159
+ state.operators.jason.paymasterV4 // Link to his AOA Paymaster
160
+ ]
161
+ });
162
+ console.log(` 🚀 Use deploy tx: ${txHash}`);
163
+ const receipt = await client.waitForTransactionReceipt({ hash: txHash });
164
+ console.log(` ✅ Token Deployed!`);
165
+
166
+ // Read the new token address?
167
+ // We can just rely on user re-running check, or fetch it again.
168
+ // Let's fetch it for verification.
169
+ const newToken = await client.readContract({
170
+ address: factoryAddr,
171
+ abi: FACTORY_ABI,
172
+ functionName: 'getTokenAddress',
173
+ args: [jasonAddress]
174
+ });
175
+ console.log(` 📍 New Token Address: ${newToken}`);
176
+ } catch (e: any) {
177
+ console.error(` ❌ Deployment Failed: ${e.message}`);
178
+ }
179
+ }
180
+
181
+ console.log('\n🏁 Done.');
182
+ }
183
+
184
+ main().catch(console.error);
@@ -0,0 +1,36 @@
1
+ import { createPublicClient, http } from 'viem';
2
+ import { loadNetworkConfig } from '../tests/regression/config.js';
3
+ import { registryActions } from '../packages/core/dist/index.js';
4
+ import * as dotenv from 'dotenv';
5
+
6
+ dotenv.config({ path: '.env.sepolia' });
7
+
8
+ async function checkRoles() {
9
+ const config = loadNetworkConfig('sepolia');
10
+ const client = createPublicClient({
11
+ chain: config.chain,
12
+ transport: http(config.rpcUrl)
13
+ });
14
+
15
+ const registry = registryActions(config.contracts.registry);
16
+ const ROLE_COMMUNITY = await registry(client).ROLE_COMMUNITY();
17
+ const ROLE_PAYMASTER_SUPER = await registry(client).ROLE_PAYMASTER_SUPER();
18
+
19
+ const jason = '0xb5600060e6de5E11D3636731964218E53caadf0E';
20
+ const bob = '0xF7Bf79AcB7F3702b9DbD397d8140ac9DE6Ce642C';
21
+ const anni = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC';
22
+
23
+ console.log('\n📋 Role Status Check\n');
24
+ console.log('Jason:');
25
+ console.log(` ROLE_COMMUNITY: ${await registry(client).hasRole({ user: jason, roleId: ROLE_COMMUNITY })}`);
26
+ console.log(` ROLE_PAYMASTER_SUPER: ${await registry(client).hasRole({ user: jason, roleId: ROLE_PAYMASTER_SUPER })}`);
27
+
28
+ console.log('\nBob:');
29
+ console.log(` ROLE_COMMUNITY: ${await registry(client).hasRole({ user: bob, roleId: ROLE_COMMUNITY })}`);
30
+
31
+ console.log('\nAnni:');
32
+ console.log(` ROLE_COMMUNITY: ${await registry(client).hasRole({ user: anni, roleId: ROLE_COMMUNITY })}`);
33
+ console.log(` ROLE_PAYMASTER_SUPER: ${await registry(client).hasRole({ user: anni, roleId: ROLE_PAYMASTER_SUPER })}`);
34
+ }
35
+
36
+ checkRoles().catch(console.error);
@@ -0,0 +1,47 @@
1
+ import { createWalletClient, http, parseEther, createPublicClient } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { sepolia } from 'viem/chains';
4
+ import dotenv from 'dotenv';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
+ dotenv.config({ path: path.resolve(__dirname, '../.env.sepolia') });
10
+
11
+ async function clearNonce() {
12
+ const pk = process.env.PRIVATE_KEY_SUPPLIER;
13
+ if (!pk) throw new Error("No PK");
14
+
15
+ const account = privateKeyToAccount(pk as `0x${string}`);
16
+ const client = createWalletClient({
17
+ account,
18
+ chain: sepolia,
19
+ transport: http(process.env.RPC_URL)
20
+ });
21
+
22
+ const publicClient = createPublicClient({
23
+ chain: sepolia,
24
+ transport: http(process.env.RPC_URL)
25
+ });
26
+
27
+ const nonce = 1716;
28
+ console.log(`🚀 Sending NOP for nonce ${nonce} from ${account.address}...`);
29
+
30
+ // Get current gas price and boost it
31
+ const gasPrice = await publicClient.getGasPrice();
32
+ const boostedGasPrice = (gasPrice * 150n) / 100n;
33
+
34
+ const hash = await client.sendTransaction({
35
+ to: account.address,
36
+ value: 0n,
37
+ nonce,
38
+ gasPrice: boostedGasPrice,
39
+ });
40
+
41
+ console.log(`✅ NOP Sent: ${hash}`);
42
+ console.log(`⏳ Waiting for confirmation...`);
43
+ await publicClient.waitForTransactionReceipt({ hash });
44
+ console.log(`🎉 Nonce ${nonce} cleared!`);
45
+ }
46
+
47
+ clearNonce().catch(console.error);
@@ -0,0 +1,171 @@
1
+ import { createPublicClient, createWalletClient, http, parseEther, type Hex } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { loadNetworkConfig } from '../tests/regression/config.js';
4
+ import { tokenActions, registryActions, superPaymasterActions } from '../packages/core/dist/index.js';
5
+ import * as dotenv from 'dotenv';
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+
9
+ dotenv.config({ path: '.env.sepolia' });
10
+
11
+ const STATE_FILE = path.resolve(process.cwd(), 'scripts/l4-state.json');
12
+
13
+ async function completeJackSuperPaymasterSetup() {
14
+ const config = loadNetworkConfig('sepolia');
15
+ const publicClient = createPublicClient({
16
+ chain: config.chain,
17
+ transport: http(config.rpcUrl)
18
+ });
19
+
20
+ const keyJack = process.env.PRIVATE_KEY_JACK as Hex;
21
+ const jack = privateKeyToAccount(keyJack);
22
+ const clientJack = createWalletClient({
23
+ chain: config.chain,
24
+ transport: http(config.rpcUrl),
25
+ account: jack
26
+ });
27
+
28
+ console.log('\n🦸 Completing Jack\'s SuperPaymaster Setup\n');
29
+ console.log(`Jack: ${jack.address}\n`);
30
+
31
+ const registry = registryActions(config.contracts.registry);
32
+ const gToken = tokenActions();
33
+
34
+ // Step 1: Register ROLE_PAYMASTER_SUPER
35
+ console.log('📝 Step 1: Registering ROLE_PAYMASTER_SUPER...');
36
+ const ROLE_PAYMASTER_SUPER = await registry(publicClient).ROLE_PAYMASTER_SUPER();
37
+
38
+ const hasSuper = await registry(publicClient).hasRole({
39
+ user: jack.address,
40
+ roleId: ROLE_PAYMASTER_SUPER
41
+ });
42
+
43
+ if (!hasSuper) {
44
+ try {
45
+ // Check GToken balance
46
+ const balance = await gToken(publicClient).balanceOf({
47
+ token: config.contracts.gToken,
48
+ account: jack.address
49
+ });
50
+ console.log(` Jack's GToken: ${Number(balance) / 1e18} tokens`);
51
+
52
+ const requiredStake = parseEther('50'); // SuperPaymaster requires 50 GToken
53
+ if (balance < requiredStake) {
54
+ console.log(` ⚠️ Insufficient GToken! Need ${Number(requiredStake) / 1e18}, have ${Number(balance) / 1e18}`);
55
+
56
+ // Mint more GToken
57
+ const supplier = privateKeyToAccount(process.env.PRIVATE_KEY_SUPPLIER as Hex);
58
+ const clientSupplier = createWalletClient({
59
+ chain: config.chain,
60
+ transport: http(config.rpcUrl),
61
+ account: supplier
62
+ });
63
+
64
+ const mintAmount = requiredStake - balance + parseEther('20'); // Extra 20 for deposit
65
+ console.log(` 💰 Minting ${Number(mintAmount) / 1e18} GToken to Jack...`);
66
+ const mintHash = await gToken(clientSupplier).mint({
67
+ token: config.contracts.gToken,
68
+ to: jack.address,
69
+ amount: mintAmount,
70
+ account: supplier
71
+ });
72
+ await publicClient.waitForTransactionReceipt({ hash: mintHash });
73
+ console.log(` ✅ Minted`);
74
+ }
75
+
76
+ // Approve GToken to GTokenStaking
77
+ const allowance = await gToken(publicClient).allowance({
78
+ token: config.contracts.gToken,
79
+ owner: jack.address,
80
+ spender: config.contracts.gTokenStaking
81
+ });
82
+
83
+ if (allowance < requiredStake) {
84
+ console.log(` 📝 Approving GToken to GTokenStaking...`);
85
+ const approveHash = await gToken(clientJack).approve({
86
+ token: config.contracts.gToken,
87
+ spender: config.contracts.gTokenStaking,
88
+ amount: requiredStake * BigInt(2),
89
+ account: jack
90
+ });
91
+ await publicClient.waitForTransactionReceipt({ hash: approveHash });
92
+ console.log(` ✅ Approved`);
93
+ }
94
+
95
+ // Register role
96
+ console.log(` 📝 Calling registerRoleSelf...`);
97
+ const registerHash = await registry(clientJack).registerRoleSelf({
98
+ roleId: ROLE_PAYMASTER_SUPER,
99
+ data: '0x',
100
+ account: jack
101
+ });
102
+ await publicClient.waitForTransactionReceipt({ hash: registerHash });
103
+ console.log(` ✅ ROLE_PAYMASTER_SUPER granted!`);
104
+ } catch (e: any) {
105
+ console.log(` ❌ Error: ${e.message.split('\n')[0]}`);
106
+ throw e;
107
+ }
108
+ } else {
109
+ console.log(` ✅ Already has ROLE_PAYMASTER_SUPER`);
110
+ }
111
+
112
+ // Step 2: Deposit to SuperPaymaster
113
+ console.log('\n💰 Step 2: Depositing to SuperPaymaster...');
114
+ const superPaymaster = superPaymasterActions(config.contracts.superPaymaster);
115
+
116
+ try {
117
+ const currentDeposit = await superPaymaster(publicClient).getOperatorDeposit({ operator: jack.address });
118
+ console.log(` Current deposit: ${Number(currentDeposit) / 1e18} GToken`);
119
+
120
+ const depositAmount = parseEther('20');
121
+ console.log(` Depositing ${Number(depositAmount) / 1e18} GToken...`);
122
+
123
+ // Approve SuperPaymaster to spend GToken
124
+ const allowance = await gToken(publicClient).allowance({
125
+ token: config.contracts.gToken,
126
+ owner: jack.address,
127
+ spender: config.contracts.superPaymaster
128
+ });
129
+
130
+ if (allowance < depositAmount) {
131
+ const approveHash = await gToken(clientJack).approve({
132
+ token: config.contracts.gToken,
133
+ spender: config.contracts.superPaymaster,
134
+ amount: depositAmount,
135
+ account: jack
136
+ });
137
+ await publicClient.waitForTransactionReceipt({ hash: approveHash });
138
+ }
139
+
140
+ // Deposit
141
+ const depositHash = await superPaymaster(clientJack).depositCollateral({
142
+ amount: depositAmount,
143
+ account: jack
144
+ });
145
+ await publicClient.waitForTransactionReceipt({ hash: depositHash });
146
+
147
+ const newDeposit = await superPaymaster(publicClient).getOperatorDeposit({ operator: jack.address });
148
+ console.log(` ✅ Deposited! New balance: ${Number(newDeposit) / 1e18} GToken`);
149
+ } catch (e: any) {
150
+ console.log(` ❌ Deposit error: ${e.message.split('\n')[0]}`);
151
+ }
152
+
153
+ // Update state
154
+ console.log('\n💾 Updating state...');
155
+ const state = JSON.parse(fs.readFileSync(STATE_FILE, 'utf-8'));
156
+ if (!state.jack) state.jack = {};
157
+ state.jack.superPaymasterAddress = config.contracts.superPaymaster;
158
+ state.jack.roles = ['ROLE_COMMUNITY', 'ROLE_PAYMASTER_SUPER'];
159
+ fs.writeFileSync(STATE_FILE, JSON.stringify(state, null, 2));
160
+
161
+ console.log('\n🎉 Jack\'s SuperPaymaster Setup Complete!\n');
162
+ console.log('Summary:');
163
+ console.log(` Owner: Jack (${jack.address})`);
164
+ console.log(` Community: Dancing`);
165
+ console.log(` Token (dPNTs): ${state.jack.tokenAddress}`);
166
+ console.log(` Roles: ROLE_COMMUNITY ✅, ROLE_PAYMASTER_SUPER ✅`);
167
+ console.log(` SuperPaymaster: ${config.contracts.superPaymaster} ✅`);
168
+ console.log('\n✨ Jack can now sponsor gasless transactions for Dancing Community users!');
169
+ }
170
+
171
+ completeJackSuperPaymasterSetup().catch(console.error);
@@ -0,0 +1,43 @@
1
+ import { privateKeyToAccount } from 'viem/accounts';
2
+ import * as dotenv from 'dotenv';
3
+ import * as path from 'path';
4
+
5
+ import { fileURLToPath } from 'url';
6
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
+
8
+ async function check() {
9
+ const envPath = path.resolve(__dirname, '../.env.sepolia');
10
+ dotenv.config({ path: envPath });
11
+
12
+ const pk = process.env.PRIVATE_KEY_SUPPLIER;
13
+ const pkJason = process.env.PRIVATE_KEY_JASON;
14
+
15
+ if (pk) {
16
+ const account = privateKeyToAccount(pk as `0x${string}`);
17
+ console.log(`Supplier Address: ${account.address}`);
18
+ }
19
+
20
+ if (pkJason) {
21
+ const accountJason = privateKeyToAccount(pkJason as `0x${string}`);
22
+ console.log(`Jason Address: ${accountJason.address}`);
23
+ }
24
+
25
+ const token = '0x60dDD2b4BEb69d9760bBF90e05C34A716736840D';
26
+ // Use public client to check owner
27
+ const { createPublicClient, http } = await import('viem');
28
+ const { sepolia } = await import('viem/chains');
29
+ const client = createPublicClient({ chain: sepolia, transport: http('https://ethereum-sepolia-rpc.publicnode.com') });
30
+
31
+ try {
32
+ const owner = await client.readContract({
33
+ address: token as `0x${string}`,
34
+ abi: [{ type: 'function', name: 'owner', inputs: [], outputs: [{ type: 'address' }] }],
35
+ functionName: 'owner'
36
+ });
37
+ console.log(`Token Owner: ${owner}`);
38
+ } catch (e) {
39
+ console.log("Failed to fetch owner via viem, check if contract is Ownable");
40
+ }
41
+ }
42
+
43
+ check();
@@ -0,0 +1,92 @@
1
+ import { createPublicClient, createWalletClient, http, parseEther, encodeAbiParameters, parseAbiParameters, type Hex } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { loadNetworkConfig } from '../tests/regression/config.js';
4
+ import { registryActions, tokenActions } from '../packages/core/dist/index.js';
5
+ import * as dotenv from 'dotenv';
6
+
7
+ dotenv.config({ path: '.env.sepolia' });
8
+
9
+ async function debugCommunityRegistration() {
10
+ const config = loadNetworkConfig('sepolia');
11
+ const publicClient = createPublicClient({
12
+ chain: config.chain,
13
+ transport: http(config.rpcUrl)
14
+ });
15
+
16
+ // Bob's account
17
+ const keyBob = process.env.PRIVATE_KEY_BOB as Hex;
18
+ const bob = privateKeyToAccount(keyBob);
19
+ const clientBob = createWalletClient({
20
+ chain: config.chain,
21
+ transport: http(config.rpcUrl),
22
+ account: bob
23
+ });
24
+
25
+ const registry = registryActions(config.contracts.registry);
26
+ const gToken = tokenActions();
27
+
28
+ console.log('\n🔍 Debugging Community Registration for Bob\n');
29
+ console.log(`Bob Address: ${bob.address}`);
30
+
31
+ // Check Bob's GToken balance
32
+ const balance = await gToken(publicClient).balanceOf({
33
+ token: config.contracts.gToken,
34
+ account: bob.address
35
+ });
36
+ console.log(`Bob GToken Balance: ${balance / BigInt(1e18)} tokens`);
37
+
38
+ // Check allowance
39
+ const allowance = await gToken(publicClient).allowance({
40
+ token: config.contracts.gToken,
41
+ owner: bob.address,
42
+ spender: config.contracts.registry
43
+ });
44
+ console.log(`Bob Allowance to Registry: ${allowance / BigInt(1e18)} tokens`);
45
+
46
+ // Get ROLE_COMMUNITY
47
+ const ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();
48
+ console.log(`ROLE_COMMUNITY: ${ROLE_COMMUNITY}`);
49
+
50
+ // Check if Bob already has role
51
+ const hasRole = await registry(publicClient).hasRole({
52
+ user: bob.address,
53
+ roleId: ROLE_COMMUNITY
54
+ });
55
+ console.log(`Bob has ROLE_COMMUNITY: ${hasRole}`);
56
+
57
+ if (!hasRole) {
58
+ // Encode CommunityRoleData
59
+ const communityData = encodeAbiParameters(
60
+ parseAbiParameters('string, string, string, string, string, uint256'),
61
+ [
62
+ 'Bread', // Community name
63
+ '', // ensName (optional)
64
+ '', // website (optional)
65
+ 'Bread Community', // description
66
+ '', // logoURI (optional)
67
+ parseEther('30') // stakeAmount (30 GToken)
68
+ ]
69
+ );
70
+ console.log(`\nEncoded Community Data: ${communityData}`);
71
+
72
+ // Try to register with detailed error
73
+ console.log('\n📝 Attempting registerRoleSelf...');
74
+ try {
75
+ const hash = await registry(clientBob).registerRoleSelf({
76
+ roleId: ROLE_COMMUNITY,
77
+ data: communityData,
78
+ account: bob
79
+ });
80
+ await publicClient.waitForTransactionReceipt({ hash });
81
+ console.log('✅ Registration successful!');
82
+ console.log(`Transaction: ${hash}`);
83
+ } catch (e: any) {
84
+ console.log(`❌ Registration failed:`);
85
+ console.log(`Error message: ${e.message}`);
86
+ console.log(`\nFull error:`);
87
+ console.log(e);
88
+ }
89
+ }
90
+ }
91
+
92
+ debugCommunityRegistration().catch(console.error);