@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.
- package/.eslintrc.cjs +30 -0
- package/README.md +148 -19
- package/abis/BLSAggregator.json +13 -13
- package/abis/BLSValidator.json +13 -0
- package/abis/DVTValidator.json +13 -0
- package/abis/GToken.json +57 -26
- package/abis/GTokenStaking.json +13 -39
- package/abis/MySBT.json +0 -39
- package/abis/Paymaster.json +0 -13
- package/abis/PaymasterFactory.json +26 -39
- package/abis/PaymasterV4_2.json +68 -58
- package/abis/Registry.json +57 -16
- package/abis/ReputationSystem.json +182 -0
- package/abis/SuperPaymaster.json +169 -0
- package/abis/aPNTs.json +13 -26
- package/abis/xPNTsFactory.json +13 -26
- package/abis/xPNTsToken.json +13 -26
- package/config.anvil.json +1 -0
- package/config.sepolia.json +1 -0
- package/config.test.json +27 -0
- package/docs/ABI_Change_Tracking_Workflow.md +41 -0
- package/docs/ABI_MAINTENANCE_PLAN.md +132 -0
- package/docs/API_REFERENCE.md +169 -9
- package/docs/Configuration_Sync.md +47 -0
- package/docs/DEMO_REFACTOR_PLAN.md +289 -0
- package/docs/ENV_SEPOLIA_UPDATE.md +68 -0
- package/docs/Faucet_Gasless_Plan.md +56 -0
- package/docs/L2_BUSINESS_CLIENTS_PLAN.md +394 -0
- package/docs/L4_Manual_Test_CheatSheet.md +215 -0
- package/docs/SDK_ABI_COVERAGE.md +839 -0
- package/docs/SDK_COVERAGE_STRATEGY.md +397 -0
- package/docs/SDK_REGRESSION_AND_API_PLAN.md +98 -0
- package/docs/SDK_STAGE3_PLAN.md +151 -0
- package/docs/STAGE3.md +191 -0
- package/docs/TESTER_GUIDE_GASLESS.md +663 -0
- package/docs/Verifier_L4_Gasless_Plan.md +454 -0
- package/docs/api/@aastar/account.md +235 -0
- package/docs/api/@aastar/analytics.md +219 -0
- package/docs/api/@aastar/core.md +26830 -0
- package/docs/api/@aastar/dapp.md +130 -0
- package/docs/api/@aastar/identity.md +482 -0
- package/docs/api/@aastar/paymaster.md +1387 -0
- package/docs/api/@aastar/sdk/README.md +155 -0
- package/docs/api/@aastar/sdk/node.md +4044 -0
- package/docs/api/@aastar/tokens.md +1971 -0
- package/docs/api/README.md +8 -4
- package/docs/changelog.md +99 -0
- package/docs/examples/README.md +18 -0
- package/docs/guide/concepts/account-abstraction.md +95 -0
- package/docs/guide/concepts/rainbow-bridge.md +68 -0
- package/docs/guide/concepts/reputation.md +95 -0
- package/docs/guide/concepts/superpaymaster.md +141 -0
- package/docs/guide/use-cases/community-management.md +141 -0
- package/docs/guide/use-cases/gasless-transactions.md +71 -0
- package/docs/guide/use-cases/operator-staking.md +84 -0
- package/docs/guide/use-cases/yop.md +72 -0
- package/docs/refactor/2026-01-13-221242-trae-refactor.md +224 -0
- package/docs/refactor/2026-01-13-audit-analysis.md +96 -0
- package/docs/refactor/2026-01-13-audit-report-v0.16.2.md +76 -0
- package/docs/refactor/2026-01-13-audit-report-v0.17.0.md +74 -0
- package/docs/refactor/2026-01-13-cursor-refactor.md +511 -0
- package/docs/refactor/2026-01-13-refactor-plan.md +88 -0
- package/docs/refactor/2026-01-13-refactor-response-plan.md +77 -0
- package/docs/refactor/2026-01-13-refactor-review.md +39 -0
- package/docs/refactor/2026-01-13-sdk-enhancement-plan.md +120 -0
- package/docs/refactor/2026-01-14-audit-response.md +242 -0
- package/docs/refactor/2026-01-14-audit-summary.md +133 -0
- package/docs/refactor/cursor-2026-01-13-14-00-audit-report.md +267 -0
- package/env.template +32 -0
- package/examples/l1-api-demo.ts +184 -0
- package/examples/l2-clients-demo.ts +138 -0
- package/examples/l3-user-onboarding.ts +74 -0
- package/examples/prepare-gasless.ts +89 -0
- package/examples/simple-gasless-demo.ts +80 -0
- package/examples/simple-superpaymaster-demo.ts +96 -0
- package/l4-setup.sh +11 -0
- package/package.json +12 -8
- package/packages/account/package.json +6 -3
- package/packages/account/src/accounts/simple.test.ts +93 -0
- package/packages/account/src/eoa.test.ts +37 -0
- package/packages/account/src/eoa.ts +4 -2
- package/packages/account/src/index.test.ts +34 -0
- package/packages/account/tsconfig.json +0 -1
- package/packages/analytics/package.json +12 -5
- package/packages/analytics/tsconfig.json +0 -5
- package/packages/core/package.json +16 -6
- package/packages/core/scripts/audit-abi-coverage.ts +165 -0
- package/packages/core/scripts/debug-regex.ts +36 -0
- package/packages/core/src/abis/.abi-hashes.json +26 -0
- package/packages/core/src/abis/BLSAggregator.json +686 -572
- package/packages/core/src/abis/BLSValidator.json +42 -26
- package/packages/core/src/abis/DVTValidator.json +368 -370
- package/packages/core/src/abis/EntryPoint.json +1382 -1379
- package/packages/core/src/abis/GToken.json +513 -523
- package/packages/core/src/abis/GTokenStaking.json +949 -931
- package/packages/core/src/abis/MySBT.json +1518 -1586
- package/packages/core/src/abis/Paymaster.json +1143 -1205
- package/packages/core/src/abis/PaymasterFactory.json +640 -650
- package/packages/core/src/abis/Registry.json +1942 -1636
- package/packages/core/src/abis/ReputationSystem.json +699 -477
- package/packages/core/src/abis/SimpleAccount.json +560 -625
- package/packages/core/src/abis/SimpleAccountFactory.json +111 -108
- package/packages/core/src/abis/SuperPaymaster.json +1781 -1399
- package/packages/core/src/abis/abi.config.json +24 -0
- package/packages/core/src/abis/index.ts +74 -38
- package/packages/core/src/abis/xPNTsFactory.json +718 -728
- package/packages/core/src/abis/xPNTsToken.json +1280 -1173
- package/packages/core/src/actions/StateValidator.test.ts +175 -0
- package/packages/{sdk/src/utils/validation.ts → core/src/actions/StateValidator.ts} +22 -125
- package/packages/core/src/actions/account.test.ts +155 -0
- package/packages/core/src/actions/account.ts +179 -0
- package/packages/core/src/actions/aggregator.test.ts +88 -0
- package/packages/core/src/actions/dvt.test.ts +124 -0
- package/packages/core/src/actions/entryPoint.test.ts +176 -0
- package/packages/core/src/actions/entryPoint.ts +266 -0
- package/packages/core/src/actions/factory.test.ts +250 -0
- package/packages/core/src/actions/factory.ts +586 -14
- package/packages/core/src/actions/faucet.test.ts +202 -0
- package/packages/core/src/actions/faucet.ts +421 -0
- package/packages/core/src/actions/gtokenExtended.test.ts +162 -0
- package/packages/core/src/actions/gtokenExtended.ts +153 -0
- package/packages/core/src/actions/index.ts +8 -0
- package/packages/core/src/actions/paymasterV4.test.ts +209 -0
- package/packages/core/src/actions/paymasterV4.ts +330 -138
- package/packages/core/src/actions/registry.test.ts +443 -0
- package/packages/core/src/actions/registry.ts +768 -28
- package/packages/core/src/actions/reputation.test.ts +225 -0
- package/packages/core/src/actions/reputation.ts +351 -0
- package/packages/core/src/actions/sbt.test.ts +322 -0
- package/packages/core/src/actions/sbt.ts +614 -30
- package/packages/core/src/actions/staking.test.ts +273 -0
- package/packages/core/src/actions/staking.ts +350 -8
- package/packages/core/src/actions/superPaymaster.test.ts +356 -0
- package/packages/core/src/actions/superPaymaster.ts +746 -35
- package/packages/core/src/actions/tokens.test.ts +60 -0
- package/packages/core/src/actions/tokens.ts +482 -20
- package/packages/core/src/actions/validators.test.ts +239 -0
- package/packages/core/src/actions/validators.ts +590 -0
- package/packages/core/src/clients/BaseClient.ts +78 -0
- package/packages/core/src/clients/types.ts +69 -0
- package/packages/core/src/clients.ts +1 -1
- package/packages/core/src/communities.ts +2 -2
- package/packages/core/src/config/ContractConfigManager.ts +63 -0
- package/packages/core/src/constants.ts +64 -0
- package/packages/core/src/contract-addresses.ts +42 -18
- package/packages/core/src/contracts.test.ts +58 -0
- package/packages/core/src/contracts.ts +2 -2
- package/packages/core/src/index.ts +4 -1
- package/packages/core/src/requirementChecker.test.ts +71 -0
- package/packages/core/src/requirementChecker.ts +1 -39
- package/packages/core/src/roles.test.ts +34 -0
- package/packages/core/src/roles.ts +61 -50
- package/packages/core/src/utils/validation.test.ts +50 -0
- package/packages/core/src/utils/validation.ts +66 -0
- package/packages/core/tsconfig.json +2 -2
- package/packages/core/vitest.config.ts +14 -0
- package/packages/dapp/package.json +6 -3
- package/packages/dapp/src/ui/hooks/useCreditScore.ts +1 -1
- package/packages/dapp/tsconfig.json +0 -1
- package/packages/identity/package.json +6 -3
- package/packages/identity/src/index.ts +49 -17
- package/packages/identity/tsconfig.json +0 -1
- package/packages/paymaster/package.json +6 -3
- package/packages/paymaster/src/SuperPaymaster/index.ts +2 -2
- package/packages/paymaster/src/V4/PaymasterClient.test.ts +114 -0
- package/packages/paymaster/src/V4/PaymasterClient.ts +385 -0
- package/packages/paymaster/src/V4/PaymasterOperator.test.ts +80 -0
- package/packages/paymaster/src/V4/PaymasterOperator.ts +282 -0
- package/packages/paymaster/src/V4/PaymasterUtils.test.ts +54 -0
- package/packages/paymaster/src/V4/PaymasterUtils.ts +185 -0
- package/packages/paymaster/src/V4/SuperPaymasterClient.test.ts +79 -0
- package/packages/paymaster/src/V4/SuperPaymasterClient.ts +123 -0
- package/packages/paymaster/src/V4/index.ts +4 -123
- package/packages/paymaster/tsconfig.json +0 -1
- package/packages/sdk/aastar/tsconfig.json +0 -1
- package/packages/sdk/coverage_output.txt +393 -0
- package/packages/sdk/coverage_output_final.txt +739 -0
- package/packages/sdk/coverage_output_final_v2.txt +722 -0
- package/packages/sdk/coverage_output_final_v3.txt +722 -0
- package/packages/sdk/package.json +14 -2
- package/packages/sdk/src/clients/ExperimentClient.test.ts +65 -0
- package/packages/sdk/src/clients/ExperimentClient.ts +80 -0
- package/packages/sdk/src/clients/admin.test.ts +98 -0
- package/packages/sdk/src/clients/admin.ts +108 -8
- package/packages/sdk/src/clients/clients.test.ts +104 -0
- package/packages/sdk/src/clients/community.test.ts +118 -0
- package/packages/sdk/src/clients/community.ts +175 -241
- package/packages/sdk/src/clients/endUser.test.ts +221 -0
- package/packages/sdk/src/clients/endUser.ts +430 -52
- package/packages/sdk/src/clients/operator.test.ts +162 -0
- package/packages/sdk/src/clients/operator.ts +168 -90
- package/packages/sdk/src/errors/AAStarError.test.ts +92 -0
- package/packages/sdk/src/errors/AAStarError.ts +70 -0
- package/packages/sdk/src/errors/decoder.test.ts +107 -0
- package/packages/sdk/src/errors/decoder.ts +84 -41
- package/packages/sdk/src/index.ts +11 -8
- package/packages/sdk/src/node/index.ts +8 -0
- package/packages/sdk/src/types/result.ts +29 -0
- package/packages/sdk/src/utils/errorHandler.test.ts +102 -0
- package/packages/sdk/src/utils/eventDecoder.test.ts +56 -0
- package/packages/sdk/src/utils/eventDecoder.ts +66 -0
- package/packages/sdk/src/utils/funding.test.ts +117 -0
- package/packages/sdk/src/utils/keys.test.ts +105 -0
- package/packages/sdk/src/utils/keys.ts +15 -0
- package/packages/sdk/src/utils/roleData.test.ts +85 -0
- package/packages/sdk/src/utils/roleData.ts +15 -26
- package/packages/sdk/src/utils/testScenarios.test.ts +79 -0
- package/packages/sdk/src/utils/testScenarios.ts +128 -0
- package/packages/sdk/src/utils/userOp.test.ts +190 -0
- package/packages/sdk/src/utils/userOp.ts +265 -0
- package/packages/sdk/tests/scenarios/01_onboard_community.ts +62 -0
- package/packages/sdk/tests/scenarios/02_onboard_operator.ts +109 -0
- package/packages/sdk/tests/scenarios/03_onboard_user.ts +53 -0
- package/packages/sdk/tests/scenarios/04_gasless_tx_flow.ts +68 -0
- package/packages/sdk/tests/scenarios/check_entrypoint.ts +19 -0
- package/packages/sdk/tests/scenarios/check_initialization.ts +65 -0
- package/packages/sdk/tests/scenarios/debug_addresses.ts +26 -0
- package/packages/sdk/tests/scenarios/diagnose_scenario4.ts +55 -0
- package/packages/sdk/tests/scenarios/setup.ts +33 -0
- package/packages/sdk/tests/scenarios/test_entrypoint_nonce.ts +46 -0
- package/packages/sdk/tsconfig.json +0 -1
- package/packages/tokens/package.json +6 -3
- package/packages/tokens/src/index.ts +92 -64
- package/packages/tokens/tsconfig.json +0 -1
- package/run_l4_gasless_regression.sh +79 -0
- package/run_sdk_regression.sh +200 -175
- package/scripts/00_utils.ts +1 -1
- package/scripts/01_prepare_all.ts +149 -198
- package/scripts/02_test_eoa.ts +27 -24
- package/scripts/03_test_standard_aa.ts +48 -153
- package/scripts/04_test_paymaster_v4.ts +41 -198
- package/scripts/05_test_superpaymaster.ts +40 -362
- package/scripts/09_local_test_community_lifecycle.ts +4 -3
- package/scripts/11_test_core_flows_full.ts +75 -197
- package/scripts/15_test_bls_full.ts +25 -2
- package/scripts/15_test_dvt_bls_full.ts +11 -4
- package/scripts/18_test_lifecycle_completion.ts +2 -2
- package/scripts/19_sdk_experiment_runner.ts +41 -16
- package/scripts/20_sdk_full_capability.ts +75 -77
- package/scripts/99_bug_hunting_fast.ts +55 -172
- package/scripts/analyze_abi_coverage.ts +169 -0
- package/scripts/check-admin.ts +95 -0
- package/scripts/check-jason-status.ts +184 -0
- package/scripts/check-roles.ts +36 -0
- package/scripts/clear-nonce.ts +47 -0
- package/scripts/complete-jack-superpaymaster.ts +171 -0
- package/scripts/debug-addr.ts +43 -0
- package/scripts/debug-community-registration.ts +92 -0
- package/scripts/debug-deploy-v4.ts +116 -0
- package/scripts/debug-paymaster.ts +127 -0
- package/scripts/debug-register-role.ts +101 -0
- package/scripts/debug-version.ts +71 -0
- package/scripts/deploy-sync.ts +104 -0
- package/scripts/deprecated/check_aa_entrypoint.ts +29 -0
- package/scripts/deprecated/check_paymaster_deposits.ts +45 -0
- package/scripts/deprecated/debug_aoa_function.ts +28 -0
- package/scripts/deprecated/debug_aoa_issue.ts +16 -0
- package/scripts/deprecated/debug_pimlico_aa23.ts +40 -0
- package/scripts/deprecated/debug_summary.ts +34 -0
- package/scripts/deprecated/deploy_v07_aa.ts +99 -0
- package/scripts/deprecated/fix_all_issues.ts +61 -0
- package/scripts/deprecated/fund_bpnts.ts +52 -0
- package/scripts/deprecated/get_factory_addresses.ts +28 -0
- package/scripts/deprecated/recheck_pim.ts +34 -0
- package/{extract_abis.sh → scripts/dev_tools/extract_abis.sh} +13 -2
- package/scripts/extract-docs.sh +78 -9
- package/scripts/fund-jack.ts +38 -0
- package/scripts/inspect-anni-token.ts +116 -0
- package/scripts/inspect-factory.ts +83 -0
- package/scripts/l4-paymasterv4-transfer-test.ts +228 -0
- package/scripts/l4-setup.ts +453 -0
- package/scripts/l4-state.json +80 -0
- package/scripts/phase1_verify_contracts.ts +207 -0
- package/scripts/pre_test_sync.ts +83 -0
- package/scripts/prepare_sepolia_resources.ts +154 -0
- package/scripts/query-jack-token.ts +22 -0
- package/scripts/quick_setup_account.ts +80 -0
- package/scripts/run_l4_gasless_regression.sh +32 -0
- package/scripts/run_sdk_experiment.sh +13 -0
- package/scripts/run_sdk_regression-v2.sh +38 -0
- package/scripts/sdk_regression_v2.ts +162 -0
- package/scripts/setup-bbq-community.ts +187 -0
- package/scripts/setup-dancing-community.ts +223 -0
- package/scripts/setup_test_accounts.ts +88 -0
- package/scripts/setup_test_environment.ts +147 -0
- package/scripts/sync_anvil_config.cjs +44 -0
- package/scripts/sync_contract_addresses.ts +186 -0
- package/scripts/sync_sepolia_config.cjs +90 -0
- package/scripts/sync_sepolia_config.mjs +74 -0
- package/scripts/test-brown-v4-deploy.ts +90 -0
- package/scripts/test-faucet-and-gasless.ts +170 -0
- package/scripts/test-jack-gasless.ts +119 -0
- package/scripts/test-jack-registration.ts +133 -0
- package/scripts/test-jack-superpaymaster-api.ts +112 -0
- package/scripts/test-kms-gasless.ts +138 -0
- package/scripts/test_groups.ts +63 -192
- package/scripts/test_new_sdk_apis_sepolia.ts +78 -0
- package/scripts/update_env_from_config.ts +83 -0
- package/scripts/v2_regression/00_validate_env.ts +28 -4
- package/scripts/v2_regression/02_operator_onboarding.ts +15 -141
- package/scripts/v2_regression/03_community_registry.ts +23 -57
- package/scripts/v2_regression/04_enduser_flow.ts +15 -48
- package/scripts/verify-tx-status.ts +81 -0
- package/scripts/verify_onchain_milestone.ts +114 -0
- package/scripts/verify_phase1.ts +66 -0
- package/scripts/verify_phase2.ts +66 -0
- package/sdk_experiment_data.csv +2 -0
- package/simple-test-paymaster.sh +2 -0
- package/simple-test-superpaymaster.sh +1 -0
- package/tests/l1-regression.test.ts +458 -0
- package/tests/l4-test-anni-gasless.ts +105 -0
- package/tests/l4-test-jason1-gasless.ts +150 -0
- package/tests/l4-test-jason2-gasless.ts +174 -0
- package/tests/l4-test-pmv4-deposit.ts +111 -0
- package/tests/l4-test-pmv4-gasless.ts +166 -0
- package/tests/l4-test-pmv4-submit.ts +223 -0
- package/tests/regression/README.md +168 -0
- package/tests/regression/config.ts +215 -0
- package/tests/regression/display-versions.ts +85 -0
- package/tests/regression/index.ts +67 -0
- package/tests/regression/l1-tests.ts +267 -0
- package/tests/regression/l2-tests.ts +171 -0
- package/tests/regression/l3-tests.ts +125 -0
- package/tests/regression/l4-gasless.ts +897 -0
- package/tests/regression/l4-runner.ts +52 -0
- package/tests/reports/phase1_contract_verification.md +45 -0
- package/tests/utils/contractVerifier.ts +237 -0
- package/tests/utils/userOpHelper.ts +194 -0
- package/tsconfig.json +32 -6
- package/typedoc.json +39 -5
- package/vitest.config.ts +16 -0
- package/.eslintrc.js +0 -28
- package/docs/STAGE_3_SCENARIO_EXP_PLAN.md +0 -77
- package/docs/api/@aastar/account/README.md +0 -15
- package/docs/api/@aastar/account/classes/UserOpClient.md +0 -87
- package/docs/api/@aastar/account/functions/createEOAWalletClient.md +0 -21
- package/docs/api/@aastar/account/functions/getUserOpHash.md +0 -23
- package/docs/api/@aastar/account/functions/packUserOpLimits.md +0 -19
- package/docs/api/@aastar/account/functions/toSimpleSmartAccount.md +0 -83
- package/docs/api/@aastar/account/type-aliases/EOAWalletClient.md +0 -37
- package/docs/api/@aastar/account/type-aliases/SimpleSmartAccount.md +0 -39
- package/docs/api/@aastar/core/README.md +0 -136
- package/docs/api/@aastar/core/classes/BLSSigner.md +0 -147
- package/docs/api/@aastar/core/enumerations/NodeType.md +0 -33
- package/docs/api/@aastar/core/functions/aggregatorActions.md +0 -2714
- package/docs/api/@aastar/core/functions/createAAStarPublicClient.md +0 -3105
- package/docs/api/@aastar/core/functions/dvtActions.md +0 -2714
- package/docs/api/@aastar/core/functions/factoryActions.md +0 -2714
- package/docs/api/@aastar/core/functions/getAddressUrl.md +0 -32
- package/docs/api/@aastar/core/functions/getAllCommunityConfigs.md +0 -9
- package/docs/api/@aastar/core/functions/getAllV2Contracts.md +0 -20
- package/docs/api/@aastar/core/functions/getBlockExplorer.md +0 -26
- package/docs/api/@aastar/core/functions/getChainId.md +0 -26
- package/docs/api/@aastar/core/functions/getCommunities.md +0 -76
- package/docs/api/@aastar/core/functions/getCommunity.md +0 -32
- package/docs/api/@aastar/core/functions/getCommunityConfig.md +0 -15
- package/docs/api/@aastar/core/functions/getContract.md +0 -37
- package/docs/api/@aastar/core/functions/getContractNetworks.md +0 -18
- package/docs/api/@aastar/core/functions/getContracts.md +0 -178
- package/docs/api/@aastar/core/functions/getCoreContracts.md +0 -55
- package/docs/api/@aastar/core/functions/getDeploymentDate.md +0 -32
- package/docs/api/@aastar/core/functions/getEntryPoint.md +0 -25
- package/docs/api/@aastar/core/functions/getNetwork.md +0 -26
- package/docs/api/@aastar/core/functions/getPaymasterV4_1.md +0 -25
- package/docs/api/@aastar/core/functions/getRpcUrl.md +0 -25
- package/docs/api/@aastar/core/functions/getSimpleAccountFactory.md +0 -25
- package/docs/api/@aastar/core/functions/getSuperPaymasterV2.md +0 -25
- package/docs/api/@aastar/core/functions/getTestAccounts.md +0 -30
- package/docs/api/@aastar/core/functions/getTestTokenContracts.md +0 -38
- package/docs/api/@aastar/core/functions/getTokenContracts.md +0 -31
- package/docs/api/@aastar/core/functions/getTxUrl.md +0 -32
- package/docs/api/@aastar/core/functions/getV2ContractByAddress.md +0 -28
- package/docs/api/@aastar/core/functions/getV2ContractByName.md +0 -28
- package/docs/api/@aastar/core/functions/getV2ContractsByDate.md +0 -26
- package/docs/api/@aastar/core/functions/isContractNetworkSupported.md +0 -27
- package/docs/api/@aastar/core/functions/isRegisteredCommunity.md +0 -15
- package/docs/api/@aastar/core/functions/isV2Contract.md +0 -27
- package/docs/api/@aastar/core/functions/paymasterV4Actions.md +0 -2719
- package/docs/api/@aastar/core/functions/registryActions.md +0 -2720
- package/docs/api/@aastar/core/functions/reputationActions.md +0 -2720
- package/docs/api/@aastar/core/functions/sbtActions.md +0 -2720
- package/docs/api/@aastar/core/functions/stakingActions.md +0 -2720
- package/docs/api/@aastar/core/functions/superPaymasterActions.md +0 -2720
- package/docs/api/@aastar/core/functions/tokenActions.md +0 -2714
- package/docs/api/@aastar/core/interfaces/CommunityConfig.md +0 -81
- package/docs/api/@aastar/core/interfaces/ContractVersion.md +0 -63
- package/docs/api/@aastar/core/type-aliases/AggregatorActions.md +0 -79
- package/docs/api/@aastar/core/type-aliases/ContractCategory.md +0 -5
- package/docs/api/@aastar/core/type-aliases/ContractNetwork.md +0 -5
- package/docs/api/@aastar/core/type-aliases/DVTActions.md +0 -139
- package/docs/api/@aastar/core/type-aliases/FactoryActions.md +0 -99
- package/docs/api/@aastar/core/type-aliases/NetworkContracts.md +0 -5
- package/docs/api/@aastar/core/type-aliases/PaymasterV4Actions.md +0 -422
- package/docs/api/@aastar/core/type-aliases/RegistryActions.md +0 -263
- package/docs/api/@aastar/core/type-aliases/ReputationActions.md +0 -47
- package/docs/api/@aastar/core/type-aliases/RoleConfig.md +0 -83
- package/docs/api/@aastar/core/type-aliases/SBTActions.md +0 -203
- package/docs/api/@aastar/core/type-aliases/StakingActions.md +0 -179
- package/docs/api/@aastar/core/type-aliases/SuperPaymasterActions.md +0 -219
- package/docs/api/@aastar/core/type-aliases/SupportedNetwork.md +0 -3
- package/docs/api/@aastar/core/type-aliases/TokenActions.md +0 -151
- package/docs/api/@aastar/core/variables/AASTAR_COMMUNITY.md +0 -8
- package/docs/api/@aastar/core/variables/ALL_ADDRESSES.md +0 -71
- package/docs/api/@aastar/core/variables/BLSAggregatorABI.md +0 -3
- package/docs/api/@aastar/core/variables/BLSHelpers.md +0 -91
- package/docs/api/@aastar/core/variables/BPS_DENOMINATOR.md +0 -5
- package/docs/api/@aastar/core/variables/BRANDING.md +0 -67
- package/docs/api/@aastar/core/variables/BREAD_COMMUNITY.md +0 -8
- package/docs/api/@aastar/core/variables/COMMUNITIES.md +0 -5
- package/docs/api/@aastar/core/variables/COMMUNITY_OWNERS.md +0 -15
- package/docs/api/@aastar/core/variables/CONTRACTS.md +0 -163
- package/docs/api/@aastar/core/variables/CONTRACT_METADATA.md +0 -67
- package/docs/api/@aastar/core/variables/CORE_ADDRESSES.md +0 -35
- package/docs/api/@aastar/core/variables/DEFAULT_APNTS_PRICE_USD.md +0 -5
- package/docs/api/@aastar/core/variables/DEFAULT_GAS_TOKEN_MINT_AMOUNT.md +0 -5
- package/docs/api/@aastar/core/variables/DEFAULT_USDT_MINT_AMOUNT.md +0 -5
- package/docs/api/@aastar/core/variables/DVTValidatorABI.md +0 -3
- package/docs/api/@aastar/core/variables/EntryPointABI.md +0 -3
- package/docs/api/@aastar/core/variables/FAUCET_API_URL.md +0 -5
- package/docs/api/@aastar/core/variables/GTokenABI.md +0 -3
- package/docs/api/@aastar/core/variables/GTokenStakingABI.md +0 -3
- package/docs/api/@aastar/core/variables/LINKS.md +0 -33
- package/docs/api/@aastar/core/variables/MAX_SERVICE_FEE.md +0 -5
- package/docs/api/@aastar/core/variables/MONITORING_ADDRESSES.md +0 -15
- package/docs/api/@aastar/core/variables/MySBTABI.md +0 -3
- package/docs/api/@aastar/core/variables/NETWORKS.md +0 -79
- package/docs/api/@aastar/core/variables/NODE_STAKE_AMOUNTS.md +0 -31
- package/docs/api/@aastar/core/variables/OFFICIAL_ADDRESSES.md +0 -11
- package/docs/api/@aastar/core/variables/PAYMASTER_ADDRESSES.md +0 -15
- package/docs/api/@aastar/core/variables/PaymasterABI.md +0 -3
- package/docs/api/@aastar/core/variables/PaymasterFactoryABI.md +0 -3
- package/docs/api/@aastar/core/variables/PaymasterV4ABI.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_ANODE.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_COMMUNITY.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_ENDUSER.md +0 -5
- package/docs/api/@aastar/core/variables/ROLE_KMS.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_AOA.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_SUPER.md +0 -3
- package/docs/api/@aastar/core/variables/RegistryABI.md +0 -3
- package/docs/api/@aastar/core/variables/ReputationSystemABI.md +0 -3
- package/docs/api/@aastar/core/variables/ReputationSystemV3ABI.md +0 -3
- package/docs/api/@aastar/core/variables/SEPOLIA_CONTRACTS.md +0 -159
- package/docs/api/@aastar/core/variables/SEPOLIA_V2_VERSIONS.md +0 -67
- package/docs/api/@aastar/core/variables/SERVICE_FEE_RATE.md +0 -5
- package/docs/api/@aastar/core/variables/Simple7702AccountABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountFactoryABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountFactoryV08ABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountV08ABI.md +0 -3
- package/docs/api/@aastar/core/variables/SuperPaymasterABI.md +0 -3
- package/docs/api/@aastar/core/variables/SuperPaymasterV3ABI.md +0 -3
- package/docs/api/@aastar/core/variables/TEST_ACCOUNT_ADDRESSES.md +0 -11
- package/docs/api/@aastar/core/variables/TEST_ACCOUNT_POOL_SIZE.md +0 -5
- package/docs/api/@aastar/core/variables/TEST_COMMUNITIES.md +0 -19
- package/docs/api/@aastar/core/variables/TEST_TOKEN_ADDRESSES.md +0 -19
- package/docs/api/@aastar/core/variables/TOKEN_ADDRESSES.md +0 -11
- package/docs/api/@aastar/core/variables/V2_SUMMARY.md +0 -39
- package/docs/api/@aastar/core/variables/xPNTsFactoryABI.md +0 -3
- package/docs/api/@aastar/core/variables/xPNTsTokenABI.md +0 -3
- package/docs/api/@aastar/paymaster/README.md +0 -14
- package/docs/api/@aastar/paymaster/classes/SuperPaymasterClient.md +0 -163
- package/docs/api/@aastar/paymaster/functions/checkEligibility.md +0 -28
- package/docs/api/@aastar/paymaster/functions/getPaymasterV4Middleware.md +0 -32
- package/docs/api/@aastar/paymaster/functions/getSuperPaymasterMiddleware.md +0 -32
- package/docs/api/@aastar/paymaster/type-aliases/PaymasterConfig.md +0 -35
- package/docs/api/@aastar/paymaster/type-aliases/PaymasterV4MiddlewareConfig.md +0 -35
- package/docs/api/@aastar/tokens/README.md +0 -3
- package/docs/api/@aastar/tokens/classes/FinanceClient.md +0 -8653
- package/ext/permissionless.js/.changeset/README.md +0 -8
- package/ext/permissionless.js/.changeset/config.json +0 -11
- package/ext/permissionless.js/.env-example +0 -2
- package/ext/permissionless.js/.github/actions/install-dependencies/action.yml +0 -17
- package/ext/permissionless.js/.github/dependabot.yaml +0 -10
- package/ext/permissionless.js/.github/workflows/canary.yml +0 -49
- package/ext/permissionless.js/.github/workflows/on-pull-request.yml +0 -61
- package/ext/permissionless.js/.github/workflows/on-push-to-main.yml +0 -59
- package/ext/permissionless.js/.github/workflows/prune-tags.yml +0 -92
- package/ext/permissionless.js/.github/workflows/verify.yml +0 -114
- package/ext/permissionless.js/.size-limit.json +0 -13
- package/ext/permissionless.js/LICENSE +0 -21
- package/ext/permissionless.js/assets/banner.png +0 -0
- package/ext/permissionless.js/biome.json +0 -46
- package/ext/permissionless.js/bun.lock +0 -2340
- package/ext/permissionless.js/bun.lockb +0 -0
- package/ext/permissionless.js/package.json +0 -82
- package/ext/permissionless.js/packages/mock-paymaster/CHANGELOG.md +0 -31
- package/ext/permissionless.js/packages/mock-paymaster/constants.ts +0 -84
- package/ext/permissionless.js/packages/mock-paymaster/helpers/abi.ts +0 -1048
- package/ext/permissionless.js/packages/mock-paymaster/helpers/erc20-utils.ts +0 -105
- package/ext/permissionless.js/packages/mock-paymaster/helpers/schema.ts +0 -307
- package/ext/permissionless.js/packages/mock-paymaster/helpers/utils.ts +0 -78
- package/ext/permissionless.js/packages/mock-paymaster/index.ts +0 -63
- package/ext/permissionless.js/packages/mock-paymaster/package.json +0 -33
- package/ext/permissionless.js/packages/mock-paymaster/relay.ts +0 -424
- package/ext/permissionless.js/packages/mock-paymaster/setup.ts +0 -163
- package/ext/permissionless.js/packages/mock-paymaster/singletonPaymasters.ts +0 -230
- package/ext/permissionless.js/packages/permissionless/CHANGELOG.md +0 -893
- package/ext/permissionless.js/packages/permissionless/README.md +0 -122
- package/ext/permissionless.js/packages/permissionless/accounts/biconomy/abi/BiconomySmartAccountAbi.ts +0 -128
- package/ext/permissionless.js/packages/permissionless/accounts/biconomy/toBiconomySmartAccount.ts +0 -374
- package/ext/permissionless.js/packages/permissionless/accounts/decodeCalls.test.ts +0 -505
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/abi/EtherspotBootstrapAbi.ts +0 -94
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/constants.ts +0 -27
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/toEtherspotSmartAccount.ts +0 -369
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getInitMSAData.ts +0 -56
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getNonceKey.ts +0 -21
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/wrapMessageHash.ts +0 -43
- package/ext/permissionless.js/packages/permissionless/accounts/index.ts +0 -86
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelAccountAbi.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3AccountAbi.ts +0 -813
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3FactoryAbi.ts +0 -12
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3MetaFactoryAbi.ts +0 -17
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/constants.ts +0 -14
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/to7702KernelSmartAccount.ts +0 -63
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/toEcdsaKernelSmartAccount.ts +0 -62
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/toKernelSmartAccount.ts +0 -984
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/decodeCallData.ts +0 -43
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/encodeCallData.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/getNonceKey.ts +0 -33
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isKernelV2.ts +0 -6
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isWebAuthnAccount.ts +0 -8
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signMessage.ts +0 -115
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signTypedData.ts +0 -97
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/wrapMessageHash.ts +0 -44
- package/ext/permissionless.js/packages/permissionless/accounts/light/toLightSmartAccount.ts +0 -496
- package/ext/permissionless.js/packages/permissionless/accounts/nexus/toNexusSmartAccount.ts +0 -351
- package/ext/permissionless.js/packages/permissionless/accounts/safe/index.ts +0 -14
- package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.test.ts +0 -275
- package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.ts +0 -316
- package/ext/permissionless.js/packages/permissionless/accounts/safe/toSafeSmartAccount.ts +0 -1980
- package/ext/permissionless.js/packages/permissionless/accounts/simple/to7702SimpleSmartAccount.ts +0 -51
- package/ext/permissionless.js/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts +0 -585
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/toThirdwebSmartAccount.ts +0 -221
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/decodeCallData.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/encodeCallData.ts +0 -81
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getAccountAddress.ts +0 -48
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getFactoryData.ts +0 -40
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signMessage.ts +0 -33
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signTypedData.ts +0 -67
- package/ext/permissionless.js/packages/permissionless/accounts/trust/toTrustSmartAccount.ts +0 -232
- package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/decodeCallData.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/encodeCallData.ts +0 -81
- package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/getFactoryData.ts +0 -51
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.test.ts +0 -39
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.ts +0 -93
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.test.ts +0 -216
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.ts +0 -99
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.test.ts +0 -237
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.ts +0 -96
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.test.ts +0 -72
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.ts +0 -132
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.test.ts +0 -108
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.ts +0 -158
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.test.ts +0 -35
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.ts +0 -120
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.test.ts +0 -129
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.ts +0 -98
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.test.ts +0 -117
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/actions/erc7579.ts +0 -103
- package/ext/permissionless.js/packages/permissionless/actions/etherspot/getUserOperationGasPrice.ts +0 -32
- package/ext/permissionless.js/packages/permissionless/actions/etherspot.ts +0 -4
- package/ext/permissionless.js/packages/permissionless/actions/index.ts +0 -9
- package/ext/permissionless.js/packages/permissionless/actions/package.json +0 -6
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/getCredentials.ts +0 -47
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startAuthentication.ts +0 -39
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startRegistration.ts +0 -126
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyAuthentication.ts +0 -142
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyRegistration.ts +0 -132
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer.ts +0 -17
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/estimateErc20PaymasterCost.ts +0 -102
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.test.ts +0 -90
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.ts +0 -77
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.test.ts +0 -82
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.ts +0 -67
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.test.ts +0 -199
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.ts +0 -49
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/sendCompressedUserOperation.ts +0 -59
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.test.ts +0 -236
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.ts +0 -151
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.test.ts +0 -153
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.ts +0 -74
- package/ext/permissionless.js/packages/permissionless/actions/pimlico.ts +0 -38
- package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.test.ts +0 -96
- package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.ts +0 -75
- package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.test.ts +0 -154
- package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.ts +0 -129
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.test.ts +0 -255
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.ts +0 -91
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.test.ts +0 -571
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.ts +0 -38
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.test.ts +0 -416
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.ts +0 -133
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.test.ts +0 -219
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.ts +0 -73
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.test.ts +0 -228
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.ts +0 -157
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/writeContract.ts +0 -70
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount.ts +0 -7
- package/ext/permissionless.js/packages/permissionless/clients/createSmartAccountClient.ts +0 -181
- package/ext/permissionless.js/packages/permissionless/clients/decorators/passkeyServer.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/clients/decorators/pimlico.ts +0 -189
- package/ext/permissionless.js/packages/permissionless/clients/decorators/smartAccount.ts +0 -350
- package/ext/permissionless.js/packages/permissionless/clients/index.ts +0 -2
- package/ext/permissionless.js/packages/permissionless/clients/passkeyServer.ts +0 -69
- package/ext/permissionless.js/packages/permissionless/clients/pimlico.ts +0 -124
- package/ext/permissionless.js/packages/permissionless/errors/index.ts +0 -17
- package/ext/permissionless.js/packages/permissionless/experimental/pimlico/index.ts +0 -1
- package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.test.ts +0 -523
- package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts +0 -369
- package/ext/permissionless.js/packages/permissionless/index.ts +0 -3
- package/ext/permissionless.js/packages/permissionless/package.json +0 -102
- package/ext/permissionless.js/packages/permissionless/types/etherspot.ts +0 -12
- package/ext/permissionless.js/packages/permissionless/types/package.json +0 -6
- package/ext/permissionless.js/packages/permissionless/types/passkeyServer.ts +0 -125
- package/ext/permissionless.js/packages/permissionless/types/pimlico.ts +0 -151
- package/ext/permissionless.js/packages/permissionless/utils/decode7579Calls.ts +0 -133
- package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.test.ts +0 -40
- package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.ts +0 -10
- package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.test.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.ts +0 -35
- package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.test.ts +0 -69
- package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.ts +0 -114
- package/ext/permissionless.js/packages/permissionless/utils/encodeInstallModule.ts +0 -91
- package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.test.ts +0 -38
- package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.ts +0 -8
- package/ext/permissionless.js/packages/permissionless/utils/encodeUninstallModule.ts +0 -88
- package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.test.ts +0 -59
- package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.ts +0 -66
- package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.test.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.ts +0 -49
- package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.test.ts +0 -31
- package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.ts +0 -13
- package/ext/permissionless.js/packages/permissionless/utils/getEstimationCallData.ts +0 -297
- package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.test.ts +0 -204
- package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.ts +0 -122
- package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.test.ts +0 -90
- package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.ts +0 -56
- package/ext/permissionless.js/packages/permissionless/utils/index.ts +0 -43
- package/ext/permissionless.js/packages/permissionless/utils/isSmartAccountDeployed.ts +0 -13
- package/ext/permissionless.js/packages/permissionless/utils/ox.ts +0 -48
- package/ext/permissionless.js/packages/permissionless/utils/toOwner.ts +0 -89
- package/ext/permissionless.js/packages/permissionless/vitest.config.ts +0 -31
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/biconomy.ts +0 -22
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/etherspot.ts +0 -12
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/kernel.ts +0 -63
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/light.ts +0 -10
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/nexus.ts +0 -16
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/safe.ts +0 -75
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/simple.ts +0 -16
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/thirdweb.ts +0 -7
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/trust.ts +0 -26
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/core.ts +0 -24
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/index.ts +0 -10
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/index.ts +0 -783
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/instance.ts +0 -290
- package/ext/permissionless.js/packages/permissionless-test/src/testWithRpc.ts +0 -128
- package/ext/permissionless.js/packages/permissionless-test/src/types.ts +0 -12
- package/ext/permissionless.js/packages/permissionless-test/src/utils.ts +0 -1091
- package/ext/permissionless.js/packages/wagmi/CHANGELOG.md +0 -53
- package/ext/permissionless.js/packages/wagmi/README.md +0 -93
- package/ext/permissionless.js/packages/wagmi/context.ts +0 -22
- package/ext/permissionless.js/packages/wagmi/hooks/useAvailableCapabilities.ts +0 -43
- package/ext/permissionless.js/packages/wagmi/hooks/useSendTransaction.ts +0 -164
- package/ext/permissionless.js/packages/wagmi/hooks/useWaitForTransactionReceipt.ts +0 -427
- package/ext/permissionless.js/packages/wagmi/index.ts +0 -15
- package/ext/permissionless.js/packages/wagmi/package.json +0 -26
- package/ext/permissionless.js/packages/wagmi/utils/observe.ts +0 -76
- package/ext/permissionless.js/packages/wagmi-demo/README.md +0 -1
- package/ext/permissionless.js/packages/wagmi-demo/biome.json +0 -13
- package/ext/permissionless.js/packages/wagmi-demo/index.html +0 -12
- package/ext/permissionless.js/packages/wagmi-demo/package.json +0 -16
- package/ext/permissionless.js/packages/wagmi-demo/src/App.tsx +0 -98
- package/ext/permissionless.js/packages/wagmi-demo/src/PasskeyServerDemo.tsx +0 -286
- package/ext/permissionless.js/packages/wagmi-demo/src/PasskeysDemo.tsx +0 -457
- package/ext/permissionless.js/packages/wagmi-demo/src/index.css +0 -21
- package/ext/permissionless.js/packages/wagmi-demo/src/main.tsx +0 -275
- package/ext/permissionless.js/packages/wagmi-demo/src/vite-env.d.ts +0 -1
- package/ext/permissionless.js/packages/wagmi-demo/src/wagmi.ts +0 -33
- package/ext/permissionless.js/packages/wagmi-demo/tsconfig.json +0 -25
- package/ext/permissionless.js/packages/wagmi-demo/tsconfig.node.json +0 -12
- package/ext/permissionless.js/packages/wagmi-demo/vite.config.ts +0 -7
- package/ext/permissionless.js/tsconfig/tsconfig.base.json +0 -42
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.cjs.json +0 -11
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.esm.json +0 -9
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.json +0 -17
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.types.json +0 -13
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.cjs.json +0 -11
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.esm.json +0 -9
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.json +0 -18
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.types.json +0 -13
- package/ext/permissionless.js/tsconfig/tsconfig.wagmi.esm.json +0 -8
- package/ext/permissionless.js/tsconfig/tsconfig.wagmi.json +0 -19
- package/ext/permissionless.js/tsconfig/tsconfig.wagmi.types.json +0 -12
- package/packages/community/package.json +0 -22
- package/packages/community/src/index.ts +0 -306
- package/packages/community/tsconfig.json +0 -8
- package/packages/core/src/abis/PaymasterV4_2.json +0 -1183
- package/packages/core/src/abis/aPNTs.json +0 -1173
- package/packages/core/src/contract-versions.ts +0 -374
- package/packages/enduser/package.json +0 -21
- package/packages/enduser/src/index.ts +0 -138
- package/packages/enduser/tsconfig.json +0 -8
- package/packages/operator/package.json +0 -21
- package/packages/operator/src/index.ts +0 -172
- package/packages/operator/tsconfig.json +0 -8
- package/run_full_regression.sh +0 -215
- package/scripts/validate_environment.ts +0 -140
- /package/{extract_addresses_to_env.sh → scripts/dev_tools/extract_addresses_to_env.sh} +0 -0
- /package/{final_safe_harmonize.py → scripts/dev_tools/final_safe_harmonize.py} +0 -0
- /package/{safe_harmonize.py → scripts/dev_tools/safe_harmonize.py} +0 -0
- /package/{surgical_harmonize.py → scripts/dev_tools/surgical_harmonize.py} +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# AAStar SDK Audit Report & Production Verification (v0.17.0)
|
|
2
|
+
|
|
3
|
+
**Date**: 2026-01-13
|
|
4
|
+
**Time**: 14:30 UTC
|
|
5
|
+
**Auditor**: Gemini Agent (Antigravity)
|
|
6
|
+
**Version Reviewed**: v0.17.0 (Post-Refactor)
|
|
7
|
+
|
|
8
|
+
## 1. Executive Summary
|
|
9
|
+
|
|
10
|
+
This audit verifies the completion of the "Phase 4" remediation plan. The critical technical debts in `EndUserClient` and `CommunityClient` have been **fully resolved**. The codebase now exhibits a uniform standard of safety, maintainability, and error handling across all client modules.
|
|
11
|
+
|
|
12
|
+
**Status**: 🟢 **Production Ready** (v0.17.0)
|
|
13
|
+
|
|
14
|
+
## 2. Comprehensive Code Audit
|
|
15
|
+
|
|
16
|
+
### 2.1 Safety & Validation (P0)
|
|
17
|
+
* **Requirement**: All user inputs must be validated before touching the network.
|
|
18
|
+
* **Verification**:
|
|
19
|
+
* `EndUserClient.executeGasless`: Now validates `target` (Address) and `operator` (Address). Validates `value` is positive.
|
|
20
|
+
* `EndUserClient.onboard`: Validates `community` and `roleId`.
|
|
21
|
+
* `CommunityClient.launch`: Enforces presence of `name`, `tokenName`, `tokenSymbol` with `AAStarError`.
|
|
22
|
+
* **Result**: ✅ **Passed**. The "Fail Fast" principle is correctly implemented.
|
|
23
|
+
|
|
24
|
+
### 2.2 ABI Management (P0)
|
|
25
|
+
* **Requirement**: No hardcoded ABIs in client files.
|
|
26
|
+
* **Verification**:
|
|
27
|
+
* `EndUserClient.ts`:
|
|
28
|
+
* Removed: Manual `parseAbi` for EntryPoint and SimpleAccount.
|
|
29
|
+
* Added: Imports `EntryPointABI`, `SimpleAccountFactoryABI` from `@aastar/core`.
|
|
30
|
+
* `CommunityClient.ts`:
|
|
31
|
+
* Removed: Manual ABI for xPNTsFactory.
|
|
32
|
+
* Added: Import `xPNTsFactoryABI` from `@aastar/core`.
|
|
33
|
+
* **Result**: ✅ **Passed**. The system is now resilient to contract upgrades (single source of truth in `packages/core`).
|
|
34
|
+
|
|
35
|
+
### 2.3 Error Handling (P1)
|
|
36
|
+
* **Requirement**: Consistent use of `AAStarError`.
|
|
37
|
+
* **Verification**:
|
|
38
|
+
* `EndUserClient`: Replaces generic `Error` with `AAStarError` (Type: `CONTRACT_ERROR`, `VALIDATION_ERROR`).
|
|
39
|
+
* `CommunityClient`: Similar adoption.
|
|
40
|
+
* **Note**: The error messages now include decoded contract revert reasons (via `decodeContractError`), significantly improving debugging (e.g., showing "InsufficientBalance" instead of "Execution reverted").
|
|
41
|
+
* **Result**: ✅ **Passed**.
|
|
42
|
+
|
|
43
|
+
### 2.4 Code Quality & Structure
|
|
44
|
+
* **Observation**:
|
|
45
|
+
* Imports are clean and organized.
|
|
46
|
+
* `createClient` factories consistently extend base actions.
|
|
47
|
+
* Helper logic (like encoding `UserOp`) is still slightly verbose in `EndUserClient`, but strictly typed and safe.
|
|
48
|
+
* **Result**: ✅ **Passed**.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 3. Comparison: v0.16.2 vs v0.17.0
|
|
53
|
+
|
|
54
|
+
| Feature | v0.16.2 (Previous) | v0.17.0 (Current) | Status |
|
|
55
|
+
| :--- | :--- | :--- | :--- |
|
|
56
|
+
| **EndUser Safety** | ❌ Unchecked Inputs | ✅ Validated Inputs | Fixed |
|
|
57
|
+
| **ABI Source** | ⚠️ Hardcoded / Mixed | ✅ Unified (@aastar/core) | Fixed |
|
|
58
|
+
| **Error Types** | ⚠️ Generic Error | ✅ AAStarError (Typed) | Fixed |
|
|
59
|
+
| **Community Launch** | ⚠️ Risky Defaults | ✅ Validated Config | Fixed |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 4. Final Verdict
|
|
64
|
+
|
|
65
|
+
The AAStar SDK has successfully transitioned from an "Advanced MVP" to a **Production-Grade Library**. The architecture is robust, the inputs are guarded, and the dependencies are clean.
|
|
66
|
+
|
|
67
|
+
**Recommendation**:
|
|
68
|
+
1. **Tag Release**: Tag this state as `v0.17.0`.
|
|
69
|
+
2. **Publish**: Safe to publish to NPM.
|
|
70
|
+
3. **Documentation**: Update the `API_REFERENCE.md` to reflect that methods now throw `AAStarError` specifically, allowing developers to catch specific error codes (e.g., `VALIDATION_ERROR`).
|
|
71
|
+
|
|
72
|
+
**Audit Sign-off**:
|
|
73
|
+
*Signature*: Gemini Agent (Antigravity)
|
|
74
|
+
*Timestamp*: 2026-01-13T14:30:00Z
|
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
# AAStar SDK Comprehensive Refactor Plan (2026-01-13)
|
|
2
|
+
|
|
3
|
+
**Expert Analysis**: TypeScript SDK Master, Web3 Architect, Account Abstraction Specialist
|
|
4
|
+
**Audit Date**: January 13, 2026
|
|
5
|
+
**Current SDK Version**: 0.16.2
|
|
6
|
+
**Previous Audits Reviewed**: GPT-5.2 (Security & Quality), Gemini CLI (DX & Architecture)
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
After conducting a comprehensive audit of the AAStar SDK, I find it in a **transitional state** - substantial foundational work has been completed, but critical gaps remain that prevent it from achieving production-grade status. The SDK demonstrates sophisticated account abstraction capabilities with gasless transaction support, but suffers from architectural inconsistencies and incomplete security hardening.
|
|
11
|
+
|
|
12
|
+
**Key Findings:**
|
|
13
|
+
- ✅ **Strong Foundation**: Core validation, ABI loading, and package consolidation completed
|
|
14
|
+
- ⚠️ **Critical Gaps**: Incomplete validation integration, inconsistent error handling, type safety issues
|
|
15
|
+
- 🎯 **Opportunity**: Transform from "Advanced MVP" to "Production SDK" with focused architectural improvements
|
|
16
|
+
|
|
17
|
+
## 1. Current Architecture Assessment
|
|
18
|
+
|
|
19
|
+
### 1.1 Package Structure Analysis
|
|
20
|
+
|
|
21
|
+
**Current State:**
|
|
22
|
+
```
|
|
23
|
+
packages/
|
|
24
|
+
├── core/ # ✅ Well-structured foundation layer
|
|
25
|
+
├── sdk/ # ⚠️ Mixed responsibilities (clients + utils)
|
|
26
|
+
├── paymaster/ # ✅ Clean separation maintained
|
|
27
|
+
├── account/ # ✅ Isolated account abstractions
|
|
28
|
+
├── dapp/ # ⚠️ React components mixed with core logic
|
|
29
|
+
├── identity/ # ✅ Focused on SBT/reputation
|
|
30
|
+
├── tokens/ # ✅ Token utilities
|
|
31
|
+
└── analytics/ # ⚠️ Uncertain scope/purpose
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Assessment:**
|
|
35
|
+
- **Strength**: Core package provides solid foundation with validation, ABIs, and actions
|
|
36
|
+
- **Issue**: SDK package is a "catch-all" with mixed concerns (clients, utils, types, errors)
|
|
37
|
+
- **Recommendation**: Implement strict separation of concerns with clear boundaries
|
|
38
|
+
|
|
39
|
+
### 1.2 Client Architecture Review
|
|
40
|
+
|
|
41
|
+
**OperatorClient Analysis:**
|
|
42
|
+
```typescript
|
|
43
|
+
// Current: Mixed extensibility patterns
|
|
44
|
+
const client = createClient({ chain, transport, account })
|
|
45
|
+
.extend(publicActions)
|
|
46
|
+
.extend(walletActions);
|
|
47
|
+
|
|
48
|
+
const spActions = superPaymasterActions(usedAddresses.superPaymaster)(client as any);
|
|
49
|
+
const regActions = registryActions(usedAddresses.registry)(client as any);
|
|
50
|
+
// ... more extensions with 'as any' casting
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Issues Identified:**
|
|
54
|
+
1. **Type Safety Degradation**: Extensive `as any` usage breaks TypeScript guarantees
|
|
55
|
+
2. **Inconsistent Validation**: `validateAddress()`, `validateAmount()` exist but not consistently applied
|
|
56
|
+
3. **Error Handling Fragmentation**: Mix of `throw Error`, `decodeContractError`, and custom handling
|
|
57
|
+
|
|
58
|
+
### 1.3 Security & Validation Audit
|
|
59
|
+
|
|
60
|
+
**Implemented Security Measures:**
|
|
61
|
+
- ✅ `validateAddress()` with checksum normalization
|
|
62
|
+
- ✅ `validateAmount()` with bounds checking
|
|
63
|
+
- ✅ `validateUint128()` for paymaster parameters
|
|
64
|
+
- ✅ `AAStarValidationError` for consistent error types
|
|
65
|
+
|
|
66
|
+
**Critical Gaps:**
|
|
67
|
+
- **Paymaster Vulnerability**: Gas limits and exchange rates not validated before contract calls
|
|
68
|
+
- **ERC20 Approval Checks**: Missing validation for token allowances
|
|
69
|
+
- **Address Spoofing**: No validation of operator/admin addresses against known registries
|
|
70
|
+
|
|
71
|
+
### 1.4 Error Handling & Result Pattern
|
|
72
|
+
|
|
73
|
+
**Current State:**
|
|
74
|
+
```typescript
|
|
75
|
+
// SDKResult<T> defined but inconsistently used
|
|
76
|
+
export type SDKResult<T> =
|
|
77
|
+
| { success: true; data: T }
|
|
78
|
+
| { success: false; error: AAStarError };
|
|
79
|
+
|
|
80
|
+
// Some methods use it, others throw directly
|
|
81
|
+
export async function safeSDKCall<T>(promise: Promise<T>): Promise<SDKResult<T>>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Assessment:**
|
|
85
|
+
- **Strength**: `SDKResult<T>` pattern established for functional error handling
|
|
86
|
+
- **Issue**: Inconsistent application across the codebase
|
|
87
|
+
- **Gap**: No standardized error codes for different failure modes
|
|
88
|
+
|
|
89
|
+
### 1.5 Testing Infrastructure
|
|
90
|
+
|
|
91
|
+
**Current State:**
|
|
92
|
+
- ✅ Vitest configured with basic validation tests
|
|
93
|
+
- ✅ Unit test coverage for validation utilities (100%)
|
|
94
|
+
- ⚠️ Missing integration tests for client orchestration
|
|
95
|
+
- ❌ No contract interaction testing
|
|
96
|
+
- ❌ No gasless flow E2E tests
|
|
97
|
+
|
|
98
|
+
## 2. Critical Architecture Issues
|
|
99
|
+
|
|
100
|
+
### 2.1 Type Safety Degradation
|
|
101
|
+
|
|
102
|
+
**Problem:** The extensibility pattern breaks TypeScript's type guarantees:
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
// Current problematic pattern
|
|
106
|
+
const spActions = superPaymasterActions(usedAddresses.superPaymaster)(client as any);
|
|
107
|
+
const regActions = registryActions(usedAddresses.registry)(client as any);
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Impact:** Developers lose autocomplete, error checking, and refactoring safety.
|
|
111
|
+
|
|
112
|
+
### 2.2 Validation Layer Disconnect
|
|
113
|
+
|
|
114
|
+
**Problem:** Validation functions exist but aren't integrated into business logic:
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// Validation exists but not used
|
|
118
|
+
export function validateAddress(address: string): `0x${string}`
|
|
119
|
+
// But in clients:
|
|
120
|
+
async onboardFully(args: { stakeAmount: bigint, depositAmount: bigint }) {
|
|
121
|
+
// ❌ No validation of addresses or amounts
|
|
122
|
+
// Direct pass-through to contracts
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 2.3 Gasless Transaction Complexity
|
|
127
|
+
|
|
128
|
+
**Problem:** The core value proposition (gasless transactions) has complex orchestration that lacks proper abstraction:
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
// Current: Manual orchestration required
|
|
132
|
+
const result = await client.onboardFully({
|
|
133
|
+
stakeAmount: 1000000000000000000n, // 1 ETH - magic number
|
|
134
|
+
depositAmount: 5000000000000000000n, // 5 ETH - magic number
|
|
135
|
+
roleId: '0x...', // Hex string requirements unclear
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Required:** Clear, validated, and well-documented gasless flows.
|
|
140
|
+
|
|
141
|
+
### 2.4 Package Responsibility Confusion
|
|
142
|
+
|
|
143
|
+
**Problem:** SDK package contains everything from clients to utilities to error handling:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
packages/sdk/src/
|
|
147
|
+
├── clients/ # Client implementations
|
|
148
|
+
├── errors/ # Error types
|
|
149
|
+
├── types/ # Type definitions
|
|
150
|
+
├── utils/ # Utility functions
|
|
151
|
+
└── index.ts # Everything exported
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Impact:** Hard to understand, maintain, and test.
|
|
155
|
+
|
|
156
|
+
## 3. Production-Grade Requirements Analysis
|
|
157
|
+
|
|
158
|
+
### 3.1 Account Abstraction SDK Standards
|
|
159
|
+
|
|
160
|
+
For a production AA SDK, the following are mandatory:
|
|
161
|
+
|
|
162
|
+
1. **Type Safety**: 100% TypeScript coverage with no `as any`
|
|
163
|
+
2. **Input Validation**: All external inputs validated before contract calls
|
|
164
|
+
3. **Error Handling**: Consistent error patterns with actionable messages
|
|
165
|
+
4. **Gas Estimation**: Accurate gas estimation for AA operations
|
|
166
|
+
5. **Security**: Comprehensive input sanitization and bounds checking
|
|
167
|
+
|
|
168
|
+
### 3.2 Gasless Transaction Requirements
|
|
169
|
+
|
|
170
|
+
**Current Gap:** The SDK supports gasless transactions but lacks:
|
|
171
|
+
- Clear pricing models
|
|
172
|
+
- Fee estimation APIs
|
|
173
|
+
- Transaction simulation
|
|
174
|
+
- Gasless flow validation
|
|
175
|
+
|
|
176
|
+
### 3.3 Multi-Role Architecture Requirements
|
|
177
|
+
|
|
178
|
+
**Current State:** Three distinct client types (Operator, Community, EndUser) with different capabilities.
|
|
179
|
+
|
|
180
|
+
**Required:**
|
|
181
|
+
- Clear permission boundaries
|
|
182
|
+
- Role validation
|
|
183
|
+
- Cross-role operation safety
|
|
184
|
+
- Administrative override capabilities
|
|
185
|
+
|
|
186
|
+
## 4. Comprehensive Refactor Plan
|
|
187
|
+
|
|
188
|
+
### Phase 1: Foundation Consolidation (Week 1-2)
|
|
189
|
+
|
|
190
|
+
#### 1.1 Type System Reformation
|
|
191
|
+
**Objective:** Eliminate all `as any` usage and establish strict typing.
|
|
192
|
+
|
|
193
|
+
**Implementation:**
|
|
194
|
+
```typescript
|
|
195
|
+
// New: Strongly typed client composition
|
|
196
|
+
interface AAStarClientConfig {
|
|
197
|
+
chain: Chain;
|
|
198
|
+
transport: Transport;
|
|
199
|
+
account?: Account;
|
|
200
|
+
addresses: AddressConfig;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export function createAAStarClient(config: AAStarClientConfig): AAStarClient {
|
|
204
|
+
// Type-safe composition without 'as any'
|
|
205
|
+
return baseClient
|
|
206
|
+
.extend(() => publicActions)
|
|
207
|
+
.extend(() => walletActions)
|
|
208
|
+
.extend(() => aastarActions(config.addresses));
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### 1.2 Validation Integration
|
|
213
|
+
**Objective:** Apply validation to all client methods.
|
|
214
|
+
|
|
215
|
+
**Implementation:**
|
|
216
|
+
```typescript
|
|
217
|
+
// New: Validation-first approach
|
|
218
|
+
export class ValidatedOperatorClient {
|
|
219
|
+
async onboardFully(args: OnboardArgs): Promise<SDKResult<OnboardResult>> {
|
|
220
|
+
// Validate all inputs first
|
|
221
|
+
const validatedArgs = await this.validateOnboardArgs(args);
|
|
222
|
+
|
|
223
|
+
// Then execute with validated data
|
|
224
|
+
return safeSDKCall(this.executeOnboardFlow(validatedArgs));
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
private async validateOnboardArgs(args: OnboardArgs): Promise<ValidatedOnboardArgs> {
|
|
228
|
+
return {
|
|
229
|
+
stakeAmount: validateAmount(args.stakeAmount, 'Stake Amount', 0n, MAX_STAKE),
|
|
230
|
+
depositAmount: validateAmount(args.depositAmount, 'Deposit Amount', 0n, MAX_DEPOSIT),
|
|
231
|
+
roleId: validateHex(args.roleId, 'Role ID'),
|
|
232
|
+
xPNTsToken: validateAddress(args.xPNTsToken, 'xPNTs Token'),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### 1.3 Package Structure Reformation
|
|
239
|
+
**Objective:** Implement clear separation of concerns.
|
|
240
|
+
|
|
241
|
+
**New Structure:**
|
|
242
|
+
```
|
|
243
|
+
packages/
|
|
244
|
+
├── core/ # Foundation: ABIs, validation, basic actions
|
|
245
|
+
├── clients/ # NEW: Unified client implementations
|
|
246
|
+
├── types/ # NEW: Shared type definitions
|
|
247
|
+
├── utils/ # NEW: Pure utilities and helpers
|
|
248
|
+
├── paymaster/ # Paymaster-specific logic
|
|
249
|
+
├── account/ # Account abstraction
|
|
250
|
+
└── examples/ # Usage examples
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Phase 2: Business Logic Hardening (Week 3-4)
|
|
254
|
+
|
|
255
|
+
#### 2.1 Gasless Flow Standardization
|
|
256
|
+
**Objective:** Create validated, documented gasless transaction flows.
|
|
257
|
+
|
|
258
|
+
**Implementation:**
|
|
259
|
+
```typescript
|
|
260
|
+
// New: Gasless transaction builder
|
|
261
|
+
export class GaslessTransactionBuilder {
|
|
262
|
+
constructor(private client: AAStarClient) {}
|
|
263
|
+
|
|
264
|
+
async buildOnboardFlow(params: OnboardParams): Promise<GaslessTransaction> {
|
|
265
|
+
// Validate economic parameters
|
|
266
|
+
await this.validateEconomicViability(params);
|
|
267
|
+
|
|
268
|
+
// Estimate total gas cost
|
|
269
|
+
const gasEstimate = await this.estimateTotalGas(params);
|
|
270
|
+
|
|
271
|
+
// Build optimized transaction sequence
|
|
272
|
+
return this.buildOptimizedSequence(params, gasEstimate);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
private async validateEconomicViability(params: OnboardParams): Promise<void> {
|
|
276
|
+
// Check if gasless transaction makes economic sense
|
|
277
|
+
const gasCost = await this.client.estimateGas(params);
|
|
278
|
+
const serviceFee = this.calculateServiceFee(params);
|
|
279
|
+
|
|
280
|
+
if (gasCost > serviceFee * 0.8) {
|
|
281
|
+
throw new AAStarError(
|
|
282
|
+
'Gasless transaction not economically viable',
|
|
283
|
+
AAStarErrorCode.ECONOMIC_INVIABILITY,
|
|
284
|
+
{ gasCost, serviceFee }
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
#### 2.2 Error Handling Standardization
|
|
292
|
+
**Objective:** Implement consistent error handling across all operations.
|
|
293
|
+
|
|
294
|
+
**Implementation:**
|
|
295
|
+
```typescript
|
|
296
|
+
// New: Standardized error handling
|
|
297
|
+
export enum AAStarErrorCode {
|
|
298
|
+
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
299
|
+
CONTRACT_ERROR = 'CONTRACT_ERROR',
|
|
300
|
+
NETWORK_ERROR = 'NETWORK_ERROR',
|
|
301
|
+
ECONOMIC_INVIABILITY = 'ECONOMIC_INVIABILITY',
|
|
302
|
+
INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS',
|
|
303
|
+
PERMISSION_DENIED = 'PERMISSION_DENIED',
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Error factory for consistent error creation
|
|
307
|
+
export class AAStarErrorFactory {
|
|
308
|
+
static validation(message: string, field: string): AAStarError {
|
|
309
|
+
return new AAStarError(
|
|
310
|
+
`Validation failed for ${field}: ${message}`,
|
|
311
|
+
AAStarErrorCode.VALIDATION_ERROR,
|
|
312
|
+
{ field }
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
static contract(revertReason: string, contract: string): AAStarError {
|
|
317
|
+
return new AAStarError(
|
|
318
|
+
`Contract ${contract} reverted: ${revertReason}`,
|
|
319
|
+
AAStarErrorCode.CONTRACT_ERROR,
|
|
320
|
+
{ contract, revertReason }
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Phase 3: Testing & Quality Assurance (Week 5-6)
|
|
327
|
+
|
|
328
|
+
#### 3.1 Comprehensive Test Suite
|
|
329
|
+
**Objective:** Achieve >90% code coverage with meaningful tests.
|
|
330
|
+
|
|
331
|
+
**Test Strategy:**
|
|
332
|
+
```typescript
|
|
333
|
+
// Unit Tests
|
|
334
|
+
describe('OperatorClient', () => {
|
|
335
|
+
describe('onboardFully', () => {
|
|
336
|
+
it('should validate all inputs before execution', async () => {
|
|
337
|
+
const invalidArgs = { stakeAmount: -1n };
|
|
338
|
+
await expect(client.onboardFully(invalidArgs)).rejects.toThrow(AAStarValidationError);
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
it('should execute complete onboarding flow', async () => {
|
|
342
|
+
// Mock all contract interactions
|
|
343
|
+
const result = await client.onboardFully(validArgs);
|
|
344
|
+
expect(result.success).toBe(true);
|
|
345
|
+
expect(result.data.txs).toHaveLength(4); // approve, stake, approve, deposit
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
// Integration Tests
|
|
351
|
+
describe('Gasless Flow E2E', () => {
|
|
352
|
+
it('should complete full operator onboarding', async () => {
|
|
353
|
+
// Deploy contracts, fund accounts, execute flow
|
|
354
|
+
const result = await runFullOnboardingFlow();
|
|
355
|
+
expect(result.operatorRegistered).toBe(true);
|
|
356
|
+
expect(result.paymasterConfigured).toBe(true);
|
|
357
|
+
});
|
|
358
|
+
});
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
#### 3.2 Performance & Gas Optimization
|
|
362
|
+
**Objective:** Optimize for gas efficiency and execution speed.
|
|
363
|
+
|
|
364
|
+
**Implementation:**
|
|
365
|
+
```typescript
|
|
366
|
+
// Gas estimation and optimization
|
|
367
|
+
export class GasOptimizer {
|
|
368
|
+
async estimateAndOptimize(txs: UserOperation[]): Promise<OptimizedUserOperation[]> {
|
|
369
|
+
// Estimate gas for each operation
|
|
370
|
+
const estimates = await Promise.all(txs.map(tx => this.estimateGas(tx)));
|
|
371
|
+
|
|
372
|
+
// Optimize execution order for gas efficiency
|
|
373
|
+
return this.optimizeExecutionOrder(txs, estimates);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
private optimizeExecutionOrder(
|
|
377
|
+
txs: UserOperation[],
|
|
378
|
+
estimates: GasEstimate[]
|
|
379
|
+
): OptimizedUserOperation[] {
|
|
380
|
+
// Sort by gas cost descending (expensive first)
|
|
381
|
+
// Bundle related operations
|
|
382
|
+
// Minimize state changes between calls
|
|
383
|
+
return txs.sort((a, b) => estimates[b.index].gas - estimates[a.index].gas);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### Phase 4: Documentation & Developer Experience (Week 7-8)
|
|
389
|
+
|
|
390
|
+
#### 4.1 API Documentation Reformation
|
|
391
|
+
**Objective:** Create comprehensive, usable documentation.
|
|
392
|
+
|
|
393
|
+
**Implementation:**
|
|
394
|
+
```typescript
|
|
395
|
+
/**
|
|
396
|
+
* Complete operator onboarding with gasless transaction support.
|
|
397
|
+
*
|
|
398
|
+
* This method orchestrates the full operator setup process including:
|
|
399
|
+
* 1. GToken approval and staking
|
|
400
|
+
* 2. Role registration with the registry
|
|
401
|
+
* 3. aPNTs approval and deposit to SuperPaymaster
|
|
402
|
+
*
|
|
403
|
+
* @param params - Onboarding configuration
|
|
404
|
+
* @param params.stakeAmount - Amount to stake (minimum: 1 ETH, maximum: 100 ETH)
|
|
405
|
+
* @param params.depositAmount - Amount to deposit for gasless operations
|
|
406
|
+
* @param params.roleId - Hex-encoded role identifier
|
|
407
|
+
* @param params.xPNTsToken - Address of the xPNTs token contract
|
|
408
|
+
* @param params.gasTokens - Optional array of accepted gas tokens
|
|
409
|
+
*
|
|
410
|
+
* @returns Promise resolving to transaction results or error
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```typescript
|
|
414
|
+
* const result = await operatorClient.onboardFully({
|
|
415
|
+
* stakeAmount: parseEther('10'),
|
|
416
|
+
* depositAmount: parseEther('50'),
|
|
417
|
+
* roleId: '0x1234...',
|
|
418
|
+
* xPNTsToken: '0x5678...'
|
|
419
|
+
* });
|
|
420
|
+
*
|
|
421
|
+
* if (result.success) {
|
|
422
|
+
* console.log('Onboarding complete:', result.data);
|
|
423
|
+
* } else {
|
|
424
|
+
* console.error('Onboarding failed:', result.error.message);
|
|
425
|
+
* }
|
|
426
|
+
* ```
|
|
427
|
+
*/
|
|
428
|
+
onboardFully(params: OnboardParams): Promise<SDKResult<OnboardResult>>
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
## 5. Implementation Priority Matrix
|
|
432
|
+
|
|
433
|
+
| Priority | Component | Effort | Risk | Impact |
|
|
434
|
+
|----------|-----------|--------|------|---------|
|
|
435
|
+
| P0 | Type Safety Fixes | Medium | Low | High |
|
|
436
|
+
| P0 | Input Validation Integration | High | Low | Critical |
|
|
437
|
+
| P1 | Package Structure Reform | High | Medium | High |
|
|
438
|
+
| P1 | Error Handling Standardization | Medium | Low | High |
|
|
439
|
+
| P2 | Gasless Flow Optimization | High | Medium | Medium |
|
|
440
|
+
| P2 | Testing Infrastructure | High | Low | High |
|
|
441
|
+
| P3 | Documentation Overhaul | Medium | Low | Medium |
|
|
442
|
+
|
|
443
|
+
## 6. Risk Assessment & Mitigation
|
|
444
|
+
|
|
445
|
+
### 6.1 Technical Risks
|
|
446
|
+
|
|
447
|
+
**Type Safety Regression:**
|
|
448
|
+
- **Risk**: Introducing new `as any` usage during refactor
|
|
449
|
+
- **Mitigation**: Strict ESLint rules, code reviews, gradual migration
|
|
450
|
+
|
|
451
|
+
**Validation Gaps:**
|
|
452
|
+
- **Risk**: Missing validation in new code paths
|
|
453
|
+
- **Mitigation**: Comprehensive test coverage, validation middleware
|
|
454
|
+
|
|
455
|
+
**Breaking Changes:**
|
|
456
|
+
- **Risk**: Existing integrations break during refactor
|
|
457
|
+
- **Mitigation**: Semantic versioning, migration guides, backward compatibility
|
|
458
|
+
|
|
459
|
+
### 6.2 Business Risks
|
|
460
|
+
|
|
461
|
+
**Timeline Delays:**
|
|
462
|
+
- **Risk**: Underestimating complexity of multi-phase refactor
|
|
463
|
+
- **Mitigation**: Incremental releases, feature flags, rollback plans
|
|
464
|
+
|
|
465
|
+
**Developer Experience:**
|
|
466
|
+
- **Risk**: Temporary DX degradation during transition
|
|
467
|
+
- **Mitigation**: Clear migration documentation, dual API support
|
|
468
|
+
|
|
469
|
+
## 7. Success Metrics
|
|
470
|
+
|
|
471
|
+
### 7.1 Technical Metrics
|
|
472
|
+
- ✅ **Type Safety**: 0 `as any` usage in production code
|
|
473
|
+
- ✅ **Test Coverage**: >90% code coverage
|
|
474
|
+
- ✅ **Validation Coverage**: 100% of external inputs validated
|
|
475
|
+
- ✅ **Error Consistency**: All methods return `SDKResult<T>`
|
|
476
|
+
|
|
477
|
+
### 7.2 Quality Metrics
|
|
478
|
+
- ✅ **Documentation**: Complete API documentation with examples
|
|
479
|
+
- ✅ **Performance**: Gas optimization within 10% of optimal
|
|
480
|
+
- ✅ **Security**: Zero critical vulnerabilities in audit
|
|
481
|
+
|
|
482
|
+
### 7.3 Adoption Metrics
|
|
483
|
+
- ✅ **Developer Experience**: SDK usage reduces boilerplate by 80%
|
|
484
|
+
- ✅ **Integration Success**: All existing integrations migrate successfully
|
|
485
|
+
- ✅ **Community Feedback**: Positive feedback on DX improvements
|
|
486
|
+
|
|
487
|
+
## 8. Next Steps
|
|
488
|
+
|
|
489
|
+
### Immediate Actions (This Week)
|
|
490
|
+
1. **Create Type Safety Task Force**: Establish strict typing guidelines
|
|
491
|
+
2. **Audit All `as any` Usage**: Create comprehensive list and fix plan
|
|
492
|
+
3. **Design Validation Middleware**: Create reusable validation patterns
|
|
493
|
+
4. **Setup Testing Infrastructure**: Configure CI/CD for comprehensive testing
|
|
494
|
+
|
|
495
|
+
### Short-term Goals (2 Weeks)
|
|
496
|
+
1. **Phase 1 Completion**: Type safety and validation integration
|
|
497
|
+
2. **Package Restructure**: Implement new package boundaries
|
|
498
|
+
3. **Error Handling Migration**: Standardize all error patterns
|
|
499
|
+
|
|
500
|
+
### Long-term Vision (2 Months)
|
|
501
|
+
1. **Production-Ready SDK**: Complete all phases with comprehensive testing
|
|
502
|
+
2. **Documentation Excellence**: World-class developer experience
|
|
503
|
+
3. **Community Adoption**: Successful migration and positive feedback
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
**Expert Recommendation**: This refactor transforms the AAStar SDK from a sophisticated prototype into a production-grade platform. The focus on type safety, validation, and consistent error handling will establish it as the gold standard for account abstraction SDKs. The gasless transaction capabilities position it uniquely in the Web3 ecosystem.
|
|
508
|
+
|
|
509
|
+
**Timeline**: 8 weeks to production-grade status
|
|
510
|
+
**Risk Level**: Medium (well-understood technical challenges)
|
|
511
|
+
**Business Impact**: High (enables mass adoption of gasless AA transactions)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# AAStar SDK 重构实施计划 (2026-Jan) [v3.0 - Comprehensive]
|
|
2
|
+
|
|
3
|
+
**目标**: 打造一个既**安全健壮** (GPT-5.2) 又**极致易用** (Gemini CLI) 的生产级 SDK。
|
|
4
|
+
**来源**: 基于 `docs/refactor/2026-01-13-audit-analysis.md` 的综合评估。
|
|
5
|
+
**核心约束**: **Gasless 核心能力零退化**。所有阶段必须通过 `run_sdk_regression.sh`。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 阶段 0: 全局安全加固 (Week 1 - P0)
|
|
10
|
+
*来源: GPT-5.2 安全建议*
|
|
11
|
+
*目标: 在不改变任何 API 结构的前提下,通过增加验证逻辑堵住安全漏洞。*
|
|
12
|
+
|
|
13
|
+
### 0.1 建立重构基准
|
|
14
|
+
- [ ] 锁定 `main` 分支代码,基于 `refactor-sdk-Jan-13` 分支工作。
|
|
15
|
+
- [ ] 确认当前全回归测试通过。
|
|
16
|
+
- [ ] **技术债务偿还**: 统一 ABI 导出机制 (消除 `{ "abi": ... }` 差异),确保后续 Typechain 能正常工作。
|
|
17
|
+
|
|
18
|
+
### 0.2 输入验证体系 (Security Hardening)
|
|
19
|
+
- [ ] **创建验证层**: `packages/utils/src/validation.ts`。
|
|
20
|
+
- 实现 `validateAddress`, `validateAmount` (防止负数/溢出), `validateChainId`。
|
|
21
|
+
- [ ] **Paymaster 深度防御**:
|
|
22
|
+
- 在 `PaymasterUtils.ts` (V4) 中增加 `paymasterAndData` 构造时的参数边界检查 (uint128)。
|
|
23
|
+
- **防止 Revert**: 在 SDK 层拦截非法参数,而不是等到链上 `AA23`。
|
|
24
|
+
- [ ] **API 守门员**:
|
|
25
|
+
- 在 `SuperPaymasterClient.submitGaslessTransaction` 等高危写入口添加校验。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 阶段 1: 架构重整与命名空间 (Week 2 - P1)
|
|
30
|
+
*来源: Gemini CLI 架构建议*
|
|
31
|
+
*目标: 解决“包碎片化”和“API 扁平化”问题。*
|
|
32
|
+
|
|
33
|
+
### 1.1 包结构物理合并 (Consolidation)
|
|
34
|
+
- [ ] **3-Package 结构**:
|
|
35
|
+
- 🔄 **`packages/sdk`**: 吞噬 `enduser`, `community`, `admin` 等业务包。
|
|
36
|
+
- 🔄 **`packages/paymaster`**: 吞噬 `superpaymaster` (物理合并,逻辑分离)。
|
|
37
|
+
- 🔄 **`packages/react`**: 接管原 `dapp`。
|
|
38
|
+
- 📦 **`packages/core`**: 保留作为 L0 基础层。
|
|
39
|
+
|
|
40
|
+
### 1.2 Admin 体系重构 (Namespacing)
|
|
41
|
+
- [ ] **实施命名空间**:
|
|
42
|
+
- 将 `AdminClient` 的 50+ 方法按功能分类:
|
|
43
|
+
- `admin.system.*` (Config, Upgrade)
|
|
44
|
+
- `admin.operators.*` (Slash, Manage)
|
|
45
|
+
- `admin.finance.*` (Fees, Revenue)
|
|
46
|
+
- [ ] **兼容性处理**: 短期内保留旧的一级方法作为 `@deprecated`,通过调用新方法实现。
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 阶段 2: 业务逻辑融合 (Week 3 - P1)
|
|
51
|
+
*来源: Gemini CLI "Thick Client" 建议*
|
|
52
|
+
*目标: 让 SDK 变得“好用”,消灭 `packages/patterns`。*
|
|
53
|
+
|
|
54
|
+
### 2.1 逻辑下沉 (Logic Fusion)
|
|
55
|
+
- [ ] **OperatorClient 进化**:
|
|
56
|
+
- 移植 `OperatorLifecycle` -> `opClient.onboard()`。
|
|
57
|
+
- 实现**智能连击**: `approve` -> `stake` -> `deposit` 一气呵成。
|
|
58
|
+
- [ ] **CommunityClient 进化**:
|
|
59
|
+
- 移植 `CommunityLaunchpad` -> `commClient.launch()`。
|
|
60
|
+
- [ ] **交互优化**:
|
|
61
|
+
- 所有涉及 ERC20 的 Action (deposit, stake),增加 `autoApprove` 逻辑。
|
|
62
|
+
|
|
63
|
+
### 2.2 废弃 Patterns
|
|
64
|
+
- [ ] ❌ Delete: `packages/patterns`。彻底移除这个中间层。
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 阶段 3: 质量与标准化 (Week 4 - P2)
|
|
69
|
+
*来源: GPT-5.2 质量建议*
|
|
70
|
+
*目标: 统一错误处理与测试体系。*
|
|
71
|
+
|
|
72
|
+
### 3.1 错误处理 (Error Handling)
|
|
73
|
+
- [ ] 定义 `AAStarError` (含 Error Code)。
|
|
74
|
+
- [ ] 定义 `SDKResult<T> = { success, data, error }`。
|
|
75
|
+
- [ ] 全局替换 `console.error` 为标准抛错或返回 Result。
|
|
76
|
+
|
|
77
|
+
### 3.2 测试分层 (Testing)
|
|
78
|
+
- [ ] 引入 `Vitest`.
|
|
79
|
+
- [ ] 单元测试: 覆盖 `utils/validation` 和 `PaymasterUtils`。
|
|
80
|
+
- [ ] 集成测试: 固化 `scripts/test-kms-gasless.ts` 为标准 Test Case。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 立即执行项 (Next Actions)
|
|
85
|
+
|
|
86
|
+
1. [ ] 创建 `packages/utils/src/validation.ts` (Phase 0)。
|
|
87
|
+
2. [ ] 在 `SuperPaymasterClient` 中应用验证 (Phase 0)。
|
|
88
|
+
3. [ ] 解决 ABI 加载格式不一致的技术债务 (Phase 0)。
|