@aastar/sdk 0.14.0 → 0.16.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +30 -0
- package/.gitmodules +9 -0
- package/README.md +299 -0
- package/aastar-sdk.code-workspace +14 -0
- package/abis/BLSAggregator.json +572 -0
- package/abis/BLSValidator.json +39 -0
- package/abis/DVTValidator.json +383 -0
- package/abis/Eip7702Support.json +24 -0
- package/abis/EntryPoint.json +1379 -0
- package/abis/GToken.json +510 -0
- package/abis/GTokenStaking.json +918 -0
- package/abis/LegacyAccount.json +625 -0
- package/abis/MySBT.json +1547 -0
- package/abis/Paymaster.json +1192 -0
- package/abis/PaymasterFactory.json +637 -0
- package/abis/PaymasterV4_2.json +1193 -0
- package/abis/Registry.json +1677 -0
- package/abis/ReputationSystem.json +659 -0
- package/abis/SenderCreator.json +99 -0
- package/abis/Simple7702Account.json +395 -0
- package/abis/SimpleAccount.json +625 -0
- package/abis/SimpleAccountFactory.json +108 -0
- package/abis/SimpleAccountFactoryV08.json +87 -0
- package/abis/SimpleAccountV08.json +557 -0
- package/abis/SuperPaymaster.json +1568 -0
- package/abis/UserOperationLib.json +57 -0
- package/abis/aPNTs.json +1160 -0
- package/abis/xPNTsFactory.json +715 -0
- package/abis/xPNTsToken.json +1160 -0
- package/config/networks/README.md +54 -0
- package/config/networks/mainnet.env.example +39 -0
- package/config/networks/optimism-sepolia.env.example +35 -0
- package/config/networks/optimism.env.example +36 -0
- package/config/networks/sepolia.env.example +36 -0
- package/config.anvil.json +1 -0
- package/config.sepolia.json +1 -0
- package/config.test.json +27 -0
- package/data/experiment_data.csv +36 -0
- package/data/industry_baseline_2025-12-23.json +154 -0
- package/data/industry_baseline_latest.json +154 -0
- package/docs/ABI_Change_Tracking_Workflow.md +41 -0
- package/docs/ABI_MAINTENANCE_PLAN.md +132 -0
- package/docs/API_REFERENCE.md +956 -0
- package/docs/Configuration_Sync.md +47 -0
- package/docs/DAO_Mining_Distribution_Plan.md +522 -0
- package/docs/DEMO_REFACTOR_PLAN.md +289 -0
- package/docs/DOCUMENTATION_PLAN.md +455 -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/Plan.md +266 -0
- package/docs/Regression_Testing_Guide.md +70 -0
- package/docs/SDK_ABI_COVERAGE.md +839 -0
- package/docs/SDK_COVERAGE_STRATEGY.md +397 -0
- package/docs/SDK_Optimization_Evaluation_Plan.md +51 -0
- package/docs/SDK_REGRESSION_AND_API_PLAN.md +98 -0
- package/docs/SDK_STAGE3_PLAN.md +151 -0
- package/docs/SEPOLIA_ENV_REFERENCE.md +51 -0
- package/docs/STAGE3.md +191 -0
- package/docs/Script_Comparison_Report.md +91 -0
- package/docs/Sepolia_Latest_Deployment.md +117 -0
- package/docs/TESTER_GUIDE_GASLESS.md +663 -0
- package/docs/TEST_COVERAGE_MATRIX.md +72 -0
- package/docs/TODO_SDK_COVERAGE.md +55 -0
- package/docs/USER_CASE_DESIGN.md +110 -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 +10 -0
- package/docs/changelog.md +99 -0
- package/docs/examples/README.md +18 -0
- package/docs/examples/community-flow.md +28 -0
- package/docs/examples/enduser-flow.md +24 -0
- package/docs/examples/index.md +18 -0
- package/docs/examples/multi-chain.md +31 -0
- package/docs/examples/operator-flow.md +28 -0
- package/docs/guide/CLI_GUIDE.md +65 -0
- package/docs/guide/DOCUMENTATION_PLAN.md +455 -0
- package/docs/guide/Security-solution.md +106 -0
- package/docs/guide/TEST_COMMANDS.md +320 -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/getting-started.md +133 -0
- package/docs/guide/installation.md +40 -0
- package/docs/guide/paper-data-collection.md +69 -0
- package/docs/guide/quick-start.md +52 -0
- package/docs/guide/task_breakdown.md +121 -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/old-solution.md +1078 -0
- package/docs/paper-data-collection.md +69 -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/docs/technical_plan.md +510 -0
- package/docs/zh/examples/community-flow.md +38 -0
- package/docs/zh/examples/complete-workflow.md +10 -0
- package/docs/zh/examples/enduser-flow.md +33 -0
- package/docs/zh/examples/index.md +18 -0
- package/docs/zh/examples/multi-chain.md +46 -0
- package/docs/zh/examples/operator-flow.md +37 -0
- package/docs/zh/guide/CLI_GUIDE.md +48 -0
- package/docs/zh/guide/DOCUMENTATION_PLAN.md +455 -0
- package/docs/zh/guide/Plan.md +266 -0
- package/docs/zh/guide/SDK_Optimization_Evaluation_Plan.md +51 -0
- package/docs/zh/guide/Security-solution.md +106 -0
- package/docs/zh/guide/TEST_COMMANDS.md +125 -0
- package/docs/zh/guide/TEST_COVERAGE_MATRIX.md +72 -0
- package/docs/zh/guide/concepts/account-abstraction.md +95 -0
- package/docs/zh/guide/concepts/rainbow-bridge.md +68 -0
- package/docs/zh/guide/concepts/reputation.md +95 -0
- package/docs/zh/guide/concepts/superpaymaster.md +141 -0
- package/docs/zh/guide/getting-started.md +133 -0
- package/docs/zh/guide/installation.md +107 -0
- package/docs/zh/guide/old-solution.md +1078 -0
- package/docs/zh/guide/paper-data-collection.md +69 -0
- package/docs/zh/guide/quick-start.md +134 -0
- package/docs/zh/guide/sdk-readme.md +253 -0
- package/docs/zh/guide/task_breakdown.md +76 -0
- package/docs/zh/guide/technical_plan.md +510 -0
- package/docs/zh/guide/use-cases/community-management.md +141 -0
- package/docs/zh/guide/use-cases/gasless-transactions.md +71 -0
- package/docs/zh/guide/use-cases/operator-staking.md +84 -0
- package/docs/zh/guide/use-cases/yop.md +72 -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/sdk-demo/DEVELOPER_GUIDE.md +159 -0
- package/examples/sdk-demo/README.md +30 -0
- package/examples/sdk-demo/usage.ts +137 -0
- package/examples/simple-gasless-demo.ts +80 -0
- package/examples/simple-superpaymaster-demo.ts +96 -0
- package/ext/aastar-shared-config/.env.example +6 -0
- package/ext/aastar-shared-config/.github/workflows/check-secrets.yml +257 -0
- package/ext/aastar-shared-config/AGENTS.md +21 -0
- package/ext/aastar-shared-config/CHANGELOG.md +99 -0
- package/ext/aastar-shared-config/LICENSE +21 -0
- package/ext/aastar-shared-config/QUICK_START.md +215 -0
- package/ext/aastar-shared-config/README.md +412 -0
- package/ext/aastar-shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
- package/ext/aastar-shared-config/check-locker-status.mjs +7 -0
- package/ext/aastar-shared-config/favicon.ico +0 -0
- package/ext/aastar-shared-config/generate-comparison-table.sh +67 -0
- package/ext/aastar-shared-config/package.json +46 -0
- package/ext/aastar-shared-config/pnpm-lock.yaml +1182 -0
- package/ext/aastar-shared-config/src/abis/BLSAggregator.json +1 -0
- package/ext/aastar-shared-config/src/abis/DVTValidator.json +1 -0
- package/ext/aastar-shared-config/src/abis/GToken.json +1 -0
- package/ext/aastar-shared-config/src/abis/GTokenStaking.json +1 -0
- package/ext/aastar-shared-config/src/abis/MySBT.json +1 -0
- package/ext/aastar-shared-config/src/abis/PaymasterFactory.json +1 -0
- package/ext/aastar-shared-config/src/abis/PaymasterV4.json +1098 -0
- package/ext/aastar-shared-config/src/abis/Registry.json +1 -0
- package/ext/aastar-shared-config/src/abis/SimpleAccount.json +557 -0
- package/ext/aastar-shared-config/src/abis/SimpleAccountFactory.json +87 -0
- package/ext/aastar-shared-config/src/abis/SuperPaymasterV2.json +1 -0
- package/ext/aastar-shared-config/src/abis/index.ts +45 -0
- package/ext/aastar-shared-config/src/abis/xPNTsFactory.json +1 -0
- package/ext/aastar-shared-config/src/abis/xPNTsToken.json +1 -0
- package/ext/aastar-shared-config/src/branding.ts +32 -0
- package/ext/aastar-shared-config/src/communities.ts +93 -0
- package/ext/aastar-shared-config/src/constants.ts +67 -0
- package/ext/aastar-shared-config/src/contract-addresses.ts +95 -0
- package/ext/aastar-shared-config/src/contract-versions.ts +374 -0
- package/ext/aastar-shared-config/src/contracts.ts +414 -0
- package/ext/aastar-shared-config/src/index.ts +14 -0
- package/ext/aastar-shared-config/src/networks.ts +117 -0
- package/ext/aastar-shared-config/sync-abis.sh +92 -0
- package/ext/aastar-shared-config/sync-versions.mjs +150 -0
- package/ext/aastar-shared-config/tsconfig.json +18 -0
- package/ext/aastar-shared-config/tsup.config.ts +10 -0
- package/ext/aastar-shared-config/verify-all.sh +207 -0
- package/ext/aastar-shared-config/verify-contracts.sh +85 -0
- package/ext/aastar-shared-config/verify-mysbt-v243.mjs +27 -0
- package/ext/aastar-shared-config/verify-onchain-versions.mjs +93 -0
- package/l4-setup.sh +11 -0
- package/lib/SHARED_CONFIG_REFERENCE.md +133 -0
- package/lib/shared-config/.env.example +6 -0
- package/lib/shared-config/.github/workflows/check-secrets.yml +257 -0
- package/lib/shared-config/AGENTS.md +21 -0
- package/lib/shared-config/CHANGELOG.md +99 -0
- package/lib/shared-config/LICENSE +21 -0
- package/lib/shared-config/QUICK_START.md +215 -0
- package/lib/shared-config/README.md +412 -0
- package/lib/shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
- package/lib/shared-config/check-locker-status.mjs +7 -0
- package/lib/shared-config/favicon.ico +0 -0
- package/lib/shared-config/generate-comparison-table.sh +67 -0
- package/lib/shared-config/package.json +46 -0
- package/lib/shared-config/pnpm-lock.yaml +1182 -0
- package/lib/shared-config/src/abis/BLSAggregator.json +1 -0
- package/lib/shared-config/src/abis/DVTValidator.json +1 -0
- package/lib/shared-config/src/abis/GToken.json +1 -0
- package/lib/shared-config/src/abis/GTokenStaking.json +1 -0
- package/lib/shared-config/src/abis/MySBT.json +1 -0
- package/lib/shared-config/src/abis/PaymasterFactory.json +1 -0
- package/lib/shared-config/src/abis/PaymasterV4.json +1098 -0
- package/lib/shared-config/src/abis/Registry.json +1 -0
- package/lib/shared-config/src/abis/SimpleAccount.json +557 -0
- package/lib/shared-config/src/abis/SimpleAccountFactory.json +87 -0
- package/lib/shared-config/src/abis/SuperPaymasterV2.json +1 -0
- package/lib/shared-config/src/abis/index.ts +45 -0
- package/lib/shared-config/src/abis/xPNTsFactory.json +1 -0
- package/lib/shared-config/src/abis/xPNTsToken.json +1 -0
- package/lib/shared-config/src/branding.ts +32 -0
- package/lib/shared-config/src/communities.ts +93 -0
- package/lib/shared-config/src/constants.ts +67 -0
- package/lib/shared-config/src/contract-addresses.ts +95 -0
- package/lib/shared-config/src/contract-versions.ts +374 -0
- package/lib/shared-config/src/contracts.ts +414 -0
- package/lib/shared-config/src/index.ts +14 -0
- package/lib/shared-config/src/networks.ts +117 -0
- package/lib/shared-config/sync-abis.sh +92 -0
- package/lib/shared-config/sync-versions.mjs +150 -0
- package/lib/shared-config/tsconfig.json +18 -0
- package/lib/shared-config/tsup.config.ts +10 -0
- package/lib/shared-config/verify-all.sh +207 -0
- package/lib/shared-config/verify-contracts.sh +85 -0
- package/lib/shared-config/verify-mysbt-v243.mjs +27 -0
- package/lib/shared-config/verify-onchain-versions.mjs +93 -0
- package/package.json +58 -22
- package/packages/account/package.json +23 -0
- package/packages/account/src/accounts/simple.test.ts +93 -0
- package/packages/account/src/accounts/simple.ts +84 -0
- package/packages/account/src/eoa.test.ts +37 -0
- package/packages/account/src/eoa.ts +33 -0
- package/packages/account/src/index.test.ts +34 -0
- package/packages/account/src/index.ts +61 -0
- package/packages/account/tsconfig.json +11 -0
- package/packages/analytics/package.json +28 -0
- package/packages/analytics/src/index.ts +145 -0
- package/packages/analytics/tsconfig.json +11 -0
- package/packages/core/package.json +32 -0
- 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 -0
- package/packages/core/src/abis/BLSValidator.json +42 -0
- package/packages/core/src/abis/DVTValidator.json +368 -0
- package/packages/core/src/abis/Eip7702Support.json +24 -0
- package/packages/core/src/abis/EntryPoint.json +1382 -0
- package/packages/core/src/abis/GToken.json +513 -0
- package/packages/core/src/abis/GTokenStaking.json +949 -0
- package/packages/core/src/abis/LegacyAccount.json +625 -0
- package/packages/core/src/abis/MySBT.json +1518 -0
- package/packages/core/src/abis/Paymaster.json +1143 -0
- package/packages/core/src/abis/PaymasterFactory.json +640 -0
- package/packages/core/src/abis/Registry.json +1942 -0
- package/packages/core/src/abis/ReputationSystem.json +699 -0
- package/packages/core/src/abis/SenderCreator.json +99 -0
- package/packages/core/src/abis/Simple7702Account.json +395 -0
- package/packages/core/src/abis/SimpleAccount.json +560 -0
- package/packages/core/src/abis/SimpleAccountFactory.json +111 -0
- package/packages/core/src/abis/SimpleAccountFactoryV08.json +87 -0
- package/packages/core/src/abis/SimpleAccountV08.json +557 -0
- package/packages/core/src/abis/SuperPaymaster.json +1781 -0
- package/packages/core/src/abis/UserOperationLib.json +57 -0
- package/packages/core/src/abis/abi.config.json +24 -0
- package/packages/core/src/abis/index.ts +104 -0
- package/packages/core/src/abis/xPNTsFactory.json +718 -0
- package/packages/core/src/abis/xPNTsToken.json +1280 -0
- package/packages/core/src/actions/StateValidator.test.ts +175 -0
- package/packages/core/src/actions/StateValidator.ts +253 -0
- 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/aggregator.ts +41 -0
- package/packages/core/src/actions/dvt.test.ts +124 -0
- package/packages/core/src/actions/dvt.ts +53 -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 +613 -0
- 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 +18 -0
- package/packages/core/src/actions/paymasterV4.test.ts +209 -0
- package/packages/core/src/actions/paymasterV4.ts +455 -0
- package/packages/core/src/actions/registry.test.ts +443 -0
- package/packages/core/src/actions/registry.ts +860 -0
- package/packages/core/src/actions/reputation.test.ts +225 -0
- package/packages/core/src/actions/reputation.ts +378 -0
- package/packages/core/src/actions/sbt.test.ts +322 -0
- package/packages/core/src/actions/sbt.ts +681 -0
- package/packages/core/src/actions/staking.test.ts +273 -0
- package/packages/core/src/actions/staking.ts +421 -0
- package/packages/core/src/actions/superPaymaster.test.ts +356 -0
- package/packages/core/src/actions/superPaymaster.ts +828 -0
- package/packages/core/src/actions/tokens.test.ts +60 -0
- package/packages/core/src/actions/tokens.ts +527 -0
- package/packages/core/src/actions/validators.test.ts +239 -0
- package/packages/core/src/actions/validators.ts +590 -0
- package/packages/core/src/branding.ts +32 -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 +13 -0
- package/packages/core/src/communities.ts +93 -0
- package/packages/core/src/config/ContractConfigManager.ts +63 -0
- package/packages/core/src/constants.ts +145 -0
- package/packages/core/src/contract-addresses.ts +125 -0
- package/packages/core/src/contracts.test.ts +58 -0
- package/packages/core/src/contracts.ts +414 -0
- package/packages/core/src/crypto/blsSigner.ts +124 -0
- package/packages/core/src/crypto/index.ts +1 -0
- package/packages/core/src/index.ts +22 -0
- package/packages/core/src/networks.ts +127 -0
- package/packages/core/src/requirementChecker.test.ts +71 -0
- package/packages/core/src/requirementChecker.ts +187 -0
- package/packages/core/src/roles.test.ts +34 -0
- package/packages/core/src/roles.ts +255 -0
- package/packages/core/src/utils/validation.test.ts +50 -0
- package/packages/core/src/utils/validation.ts +66 -0
- package/packages/core/src/utils.ts +23 -0
- package/packages/core/tsconfig.json +12 -0
- package/packages/core/vitest.config.ts +14 -0
- package/packages/dapp/package.json +30 -0
- package/packages/dapp/src/index.ts +4 -0
- package/packages/dapp/src/ui/components/EvaluationPanel.tsx +40 -0
- package/packages/dapp/src/ui/hooks/useCreditScore.ts +44 -0
- package/packages/dapp/src/ui/hooks/useSuperPaymaster.ts +31 -0
- package/packages/dapp/src/ui/index.ts +22 -0
- package/packages/dapp/tsconfig.json +12 -0
- package/packages/identity/package.json +25 -0
- package/packages/identity/src/index.ts +114 -0
- package/packages/identity/src/mysbt.ts +48 -0
- package/packages/identity/tsconfig.json +11 -0
- package/packages/paymaster/package.json +25 -0
- package/packages/paymaster/src/SuperPaymaster/index.ts +168 -0
- 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 -0
- package/packages/paymaster/src/index.ts +5 -0
- package/packages/paymaster/tsconfig.json +11 -0
- package/packages/sdk/README.md +150 -0
- package/packages/sdk/aastar/package.json +21 -0
- package/packages/sdk/aastar/src/index.ts +3 -0
- package/packages/sdk/aastar/tsconfig.json +7 -0
- 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/examples/config.json +1 -0
- package/packages/sdk/examples/regression_test.ts +106 -0
- package/packages/sdk/package.json +44 -0
- 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 +154 -0
- 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 +337 -0
- package/packages/sdk/src/clients/endUser.test.ts +221 -0
- package/packages/sdk/src/clients/endUser.ts +551 -0
- package/packages/sdk/src/clients/operator.test.ts +162 -0
- package/packages/sdk/src/clients/operator.ts +355 -0
- 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 +91 -0
- package/packages/sdk/src/index.ts +23 -0
- 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/errorHandler.ts +167 -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/funding.ts +280 -0
- package/packages/sdk/src/utils/keys.test.ts +105 -0
- package/packages/sdk/src/utils/keys.ts +174 -0
- package/packages/sdk/src/utils/roleData.test.ts +85 -0
- package/packages/sdk/src/utils/roleData.ts +140 -0
- 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 +11 -0
- package/packages/tokens/package.json +25 -0
- package/packages/tokens/src/index.ts +273 -0
- package/packages/tokens/tsconfig.json +11 -0
- package/pnpm-workspace.yaml +2 -0
- package/run_l4_gasless_regression.sh +79 -0
- package/run_sdk_regression.sh +238 -0
- package/scripts/00_utils.ts +59 -0
- package/scripts/00_verify_phase1.ts +130 -0
- package/scripts/01_1_prep_gtoken.ts +81 -0
- package/scripts/01_2_register_sbt.ts +88 -0
- package/scripts/01_3_prep_tokens_paymaster.ts +102 -0
- package/scripts/01_prepare_all.ts +222 -0
- package/scripts/02_test_eoa.ts +53 -0
- package/scripts/03_test_standard_aa.ts +68 -0
- package/scripts/04_0_check_deploy.ts +24 -0
- package/scripts/04_1_check_allowance.ts +44 -0
- package/scripts/04_2_construct_verify.ts +96 -0
- package/scripts/04_3_verify_estimate.ts +66 -0
- package/scripts/04_4_verify_pack.ts +74 -0
- package/scripts/04_test_paymaster_v4.ts +60 -0
- package/scripts/05_1_deposit.ts +48 -0
- package/scripts/05_test_superpaymaster.ts +58 -0
- package/scripts/06_local_test_v3_admin.ts +163 -0
- package/scripts/06_local_test_v3_execution.ts +132 -0
- package/scripts/06_local_test_v3_full.ts +490 -0
- package/scripts/06_local_test_v3_funding.ts +124 -0
- package/scripts/06_local_test_v3_reputation.ts +234 -0
- package/scripts/07_local_test_v3_audit.ts +181 -0
- package/scripts/08_local_test_registry_lifecycle.ts +382 -0
- package/scripts/09_local_test_community_lifecycle.ts +385 -0
- package/scripts/09_local_test_community_simple.ts +108 -0
- package/scripts/09_scenario_bread_independent.ts +247 -0
- package/scripts/10_scenario_super_shared.ts +196 -0
- package/scripts/10_test_protocol_admin_full.ts +173 -0
- package/scripts/11_scenario_hacker_defense.ts +104 -0
- package/scripts/11_test_core_flows_full.ts +157 -0
- package/scripts/12_test_slash_mechanism.ts +205 -0
- package/scripts/12_test_slash_queries.ts +83 -0
- package/scripts/12_test_staking_exit.ts +152 -0
- package/scripts/12_test_staking_slash.ts +301 -0
- package/scripts/12_test_tier2_slash.ts +139 -0
- package/scripts/13_test_sbt_burn_linkage.ts +266 -0
- package/scripts/14_test_credit_redesign.ts +266 -0
- package/scripts/15_test_bls_full.ts +148 -0
- package/scripts/15_test_dvt_bls_full.ts +140 -0
- package/scripts/17_test_cross_role_collaboration.ts +95 -0
- package/scripts/18_sdk_e2e_verification.ts +67 -0
- package/scripts/18_test_dvt_sdk_flow.ts +138 -0
- package/scripts/18_test_lifecycle_completion.ts +144 -0
- package/scripts/19_sdk_experiment_runner.ts +114 -0
- package/scripts/19_sdk_experiment_runner.ts.backup +391 -0
- package/scripts/20_sdk_full_capability.ts +93 -0
- package/scripts/20_test_superpaymaster_new_apis.ts +193 -0
- package/scripts/21_test_paymasterv4_complete.ts +341 -0
- package/scripts/22_test_bls_signing.ts +260 -0
- package/scripts/23_test_middleware.ts +197 -0
- package/scripts/98_edge_reentrancy.ts +85 -0
- package/scripts/99_bug_hunting_fast.ts +99 -0
- 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/collect_industry_baseline.ts +236 -0
- package/scripts/complete-jack-superpaymaster.ts +171 -0
- package/scripts/complete_env_config.ts +97 -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/debug_account_c.ts +43 -0
- package/scripts/debug_bls.ts +58 -0
- package/scripts/debug_config_v036.ts +13 -0
- package/scripts/debug_contracts.ts +2 -0
- package/scripts/debug_env.ts +69 -0
- package/scripts/debug_find_paymaster.ts +98 -0
- package/scripts/debug_isolated_registration.ts +256 -0
- package/scripts/debug_paymaster_config.ts +19 -0
- package/scripts/debug_pim_addr.ts +23 -0
- package/scripts/debug_pm_status.ts +51 -0
- package/scripts/debug_registry.ts +39 -0
- package/scripts/debug_registry_setup.ts +129 -0
- package/scripts/debug_sanity.ts +32 -0
- package/scripts/debug_shared_config.ts +10 -0
- package/scripts/debug_token_compat.ts +51 -0
- package/scripts/debug_tokens.ts +41 -0
- package/scripts/debug_vcheck.ts +33 -0
- package/scripts/deploy-sync.ts +104 -0
- package/scripts/deploy_and_init_v3.sh +134 -0
- package/scripts/deploy_anvil_accounts.ts +144 -0
- package/scripts/deploy_paymaster_v4.ts +139 -0
- package/scripts/deploy_test_accounts.ts +401 -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/scripts/dev_tools/extract_abis.sh +151 -0
- package/scripts/dev_tools/extract_addresses_to_env.sh +67 -0
- package/scripts/dev_tools/final_safe_harmonize.py +77 -0
- package/scripts/dev_tools/safe_harmonize.py +107 -0
- package/scripts/dev_tools/surgical_harmonize.py +83 -0
- package/scripts/experiment/stage3/SETUP_GUIDE.md +258 -0
- package/scripts/experiment/stage3/archived_scripts/00_token_distribution.ts +78 -0
- package/scripts/experiment/stage3/archived_scripts/01_dao_launch.ts +96 -0
- package/scripts/experiment/stage3/archived_scripts/01b_bread_launch.ts +112 -0
- package/scripts/experiment/stage3/archived_scripts/02_operator_setup.ts +84 -0
- package/scripts/experiment/stage3/archived_scripts/02b_operator_b_setup.ts +104 -0
- package/scripts/experiment/stage3/archived_scripts/02c_finalize_operators.ts +86 -0
- package/scripts/experiment/stage3/archived_scripts/02d_operator_collateral.ts +89 -0
- package/scripts/experiment/stage3/archived_scripts/03_user_onboarding.ts +83 -0
- package/scripts/experiment/stage3/archived_scripts/03b_deploy_aa_account.ts +61 -0
- package/scripts/experiment/stage3/archived_scripts/03c_aa_onboarding.ts +104 -0
- package/scripts/experiment/stage3/archived_scripts/03d_mint_points.ts +60 -0
- package/scripts/experiment/stage3/archived_scripts/04_benchmarking.ts +100 -0
- package/scripts/experiment/stage3/archived_scripts/05_multi_op_setup.ts +149 -0
- package/scripts/experiment/stage3/archived_scripts/README.md +58 -0
- package/scripts/experiment/stage3/archived_scripts/check_roles.ts +29 -0
- package/scripts/experiment/stage3/archived_scripts/decode_error.ts +23 -0
- package/scripts/experiment/stage3/archived_scripts/fund_user.ts +51 -0
- package/scripts/experiment/stage3/archived_scripts/gen_b_key.ts +3 -0
- package/scripts/experiment/stage3/archived_scripts/gen_keys.ts +4 -0
- package/scripts/experiment/stage3/archived_scripts/setup.ts +105 -0
- package/scripts/experiment/stage3/archived_scripts/test_key.ts +4 -0
- package/scripts/experiment/stage3/archived_scripts/verify_state.ts +59 -0
- package/scripts/experiment/stage3/refactored/00_token_distribution.ts +46 -0
- package/scripts/experiment/stage3/refactored/02_operator_setup.ts +65 -0
- package/scripts/experiment/stage3/refactored/03_user_onboarding.ts +68 -0
- package/scripts/experiment/stage3/refactored/05_multi_op_setup.ts +63 -0
- package/scripts/experiment/stage3/refactored/README.md +71 -0
- package/scripts/extract-docs.sh +141 -0
- package/scripts/fund-jack.ts +38 -0
- package/scripts/generate_env_from_deployment.ts +109 -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/publish_all.sh +39 -0
- package/scripts/query-jack-token.ts +22 -0
- package/scripts/quick_setup.ts +124 -0
- package/scripts/quick_setup_account.ts +80 -0
- package/scripts/run_automated_experiment.sh +121 -0
- package/scripts/run_daily_experiment.ts +70 -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/security_audit.sh +172 -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_config_to_env.ts +88 -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 +138 -0
- package/scripts/test_multi_community_anvil.ts +276 -0
- package/scripts/test_new_sdk_apis_sepolia.ts +193 -0
- package/scripts/test_sdk_join_idempotent.ts +233 -0
- package/scripts/test_simple_sepolia.ts +44 -0
- package/scripts/update_env_from_config.ts +83 -0
- package/scripts/v2_regression/00_validate_env.ts +101 -0
- package/scripts/v2_regression/01_setup_and_fund.ts +132 -0
- package/scripts/v2_regression/02_operator_onboarding.ts +174 -0
- package/scripts/v2_regression/03_community_registry.ts +139 -0
- package/scripts/v2_regression/04_enduser_flow.ts +141 -0
- package/scripts/v2_regression/05_admin_audit.ts +157 -0
- package/scripts/v2_regression/README.md +161 -0
- package/scripts/validate_env.ts +112 -0
- 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 +4 -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 +41 -0
- package/typedoc.json +59 -0
- package/vitest.config.ts +16 -0
- package/dist/clients/admin.d.ts +0 -12
- package/dist/clients/admin.d.ts.map +0 -1
- package/dist/clients/admin.js +0 -20
- package/dist/clients/admin.js.map +0 -1
- package/dist/clients/community.d.ts +0 -12
- package/dist/clients/community.d.ts.map +0 -1
- package/dist/clients/community.js +0 -18
- package/dist/clients/community.js.map +0 -1
- package/dist/clients/endUser.d.ts +0 -12
- package/dist/clients/endUser.d.ts.map +0 -1
- package/dist/clients/endUser.js +0 -20
- package/dist/clients/endUser.js.map +0 -1
- package/dist/clients/operator.d.ts +0 -18
- package/dist/clients/operator.d.ts.map +0 -1
- package/dist/clients/operator.js +0 -65
- package/dist/clients/operator.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
# SDK Refactor & Enhancement Review (2026-01-13)
|
|
3
|
+
|
|
4
|
+
**Status**: Completed
|
|
5
|
+
**Version**: v0.16.2
|
|
6
|
+
|
|
7
|
+
## 1. Refactor Plan Execution Check
|
|
8
|
+
|
|
9
|
+
| Item | Status | Evidence |
|
|
10
|
+
| :--- | :--- | :--- |
|
|
11
|
+
| **P0: Security Fixes** | ✅ Done | `validation.ts` implemented and applied in `OperatorClient`/`AdminClient`. |
|
|
12
|
+
| **P0: ABI Loading Bug** | ✅ Done | `packages/core/src/abis/index.ts` patched with `extractAbi` helper. |
|
|
13
|
+
| **P1: Structure Merge** | ✅ Done | `packages/patterns` deleted. `sdk` package consolidated. |
|
|
14
|
+
| **P1: Namespacing** | ✅ Done | `AdminClient` uses `system`, `finance`, `operators` namespaces. |
|
|
15
|
+
| **P1: Logic Fusion** | ✅ Done | `OperatorClient.onboardFully` orchestrates multiple contracts. |
|
|
16
|
+
| **P2: Testing Infra** | ✅ Done | `vitest` configured. `validation.test.ts` passing. |
|
|
17
|
+
| **P2: Error Handling** | ✅ Done | `SDKResult` and `AAStarError` types defined in `packages/sdk/src/types`. |
|
|
18
|
+
|
|
19
|
+
## 2. Enhancement Plan Execution Check
|
|
20
|
+
|
|
21
|
+
| Item | Status | Evidence |
|
|
22
|
+
| :--- | :--- | :--- |
|
|
23
|
+
| **ABI Type Safety** | ✅ Done | Hardcoded ABIs removed from `OperatorClient`. Uses `SuperPaymasterABI` imports. |
|
|
24
|
+
| **Validation Layer** | ✅ Done | `validateAddress` etc. guarding sensitive methods. |
|
|
25
|
+
| **Standardized Result** | ⚠️ Partial | Types implemented (`SDKResult`). Codebase migration to use it is deferred to Phase 4 to prevent breaking changes on `v2_regression` scripts. |
|
|
26
|
+
|
|
27
|
+
## 3. Verification Details
|
|
28
|
+
|
|
29
|
+
### 3.1 Unit Tests (Vitest)
|
|
30
|
+
Ran `pnpm vitest run`:
|
|
31
|
+
```
|
|
32
|
+
PASS packages/core/src/utils/validation.test.ts
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 3.2 Regression Compatibility
|
|
36
|
+
The refactor maintained backward compatibility (method signatures remain `Promise<T>`) to ensure critical regression scripts (`run_sdk_regression.sh`) currently passing on CI do not break. The new `safeSDKCall` utility allows progressive migration.
|
|
37
|
+
|
|
38
|
+
## 4. Conclusion
|
|
39
|
+
The refactoring plan set out in `2026-01-13-refactor-plan.md` has been fully executed, including the critical "Quality & Standardization" phase which was initially missing. The SDK is now v0.16.2 ready.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# AAStar SDK 深度审计与增强实施计划 (2026-Jan-13)
|
|
2
|
+
|
|
3
|
+
**日期**: 2026-01-13
|
|
4
|
+
**状态**: 关键路径阻断 (ABI Loading Bug) / 架构重构进行中
|
|
5
|
+
**分析者**: Gemini Agent (Antigravity)
|
|
6
|
+
|
|
7
|
+
## 1. 现状深度审计 (Deep Audit Status)
|
|
8
|
+
|
|
9
|
+
基于对 `packages/sdk`, `packages/core`, `packages/paymaster` 的代码审查,我们发现 SDK 的重构处于 **“骨架已立,血肉未连”** 的状态。
|
|
10
|
+
|
|
11
|
+
### ✅ 已完成的改进 (The Good)
|
|
12
|
+
1. **AdminClient 命名空间化**: `admin.ts` 已经成功实现了 `system`, `finance`, `operators` 的命名空间分离,API 结构清晰。
|
|
13
|
+
2. **OperatorClient 逻辑融合 (Thick Client)**: `operator.ts` 实现了 `onboardFully`,成功将 Staking, Registry, SuperPaymaster 的逻辑编排在一起,消灭了中间层 `packages/patterns`。
|
|
14
|
+
3. **基础验证库**: `packages/core/src/utils/validation.ts` 已创建,包含地址、金额、Uint128 的基础验证逻辑。
|
|
15
|
+
|
|
16
|
+
### 🚨 严重阻断性问题 (Critical Blockers)
|
|
17
|
+
1. **ABI 加载机制失效 (P0)**:
|
|
18
|
+
* **现象**: `packages/core/src/abis/index.ts` 假设所有 `.json` 文件都包裹在 `{ "abi": [...] }` 结构中 (`RegistryABIData.abi`)。
|
|
19
|
+
* **事实**: 实际的 ABI 文件 (如 `abis/Registry.json`, `abis/SuperPaymaster.json`) 是 **Raw Array** (`[...]`)。
|
|
20
|
+
* **后果**: 运行时 `RegistryABI` 等均为 `undefined`。导致所有依赖 ABI 的调用(如 `viem` 的 `readContract`)在运行时崩溃(报错 `abi.filter is not a function`)。
|
|
21
|
+
|
|
22
|
+
### ⚠️ 待解决的架构缺陷 (Architecture Gaps)
|
|
23
|
+
1. **验证逻辑未接入**: 虽然 `validation.ts` 存在,但 `OperatorClient` 和 `AdminClient` **完全没有使用它**。参数仍然透传给 `viem`,缺乏防御性编程。
|
|
24
|
+
2. **硬编码 ABI 坏味道**: `OperatorClient` (Lines 118, 137) 使用 `parseAbi` 硬编码了 `operators` 和 `getPaymasterByOperator` 的函数签名。这是巨大的维护隐患,应直接使用 `core` 导出的完整 ABI。
|
|
25
|
+
3. **错误处理不统一**: `AdminClient` 使用 `wrapAdminCall` 抛出标准 `Error`,而 `OperatorClient` 混用 `decodeContractError` 和 try-catch。缺乏统一的 `SDKResult<T>` 返回结构。
|
|
26
|
+
4. **Type Safety 缺失**: 大量使用 `as any` (e.g., `client as any`), 且合约调用缺乏 Typechain 支持,无法在编译期发现参数错误。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. 增强实施计划 (Enhancement Plan)
|
|
31
|
+
|
|
32
|
+
### 阶段 0: 紧急修复 (Immediate Fixes - < 24h)
|
|
33
|
+
|
|
34
|
+
#### 2.1 修复 ABI 加载器
|
|
35
|
+
修改 `packages/core/src/abis/index.ts`,增加兼容层,自动识别 ABI 格式。
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// 伪代码示例
|
|
39
|
+
function extractAbi(artifact: any) {
|
|
40
|
+
return Array.isArray(artifact) ? artifact : artifact.abi;
|
|
41
|
+
}
|
|
42
|
+
export const RegistryABI = extractAbi(RegistryABIData);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 阶段 1: 健壮性加固 (Robustness)
|
|
46
|
+
|
|
47
|
+
#### 2.2 全面接入 Validation
|
|
48
|
+
修改所有 Client 方法,在首行接入 `validateAddress`, `validateAmount`。
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// OperatorClient.ts
|
|
52
|
+
async onboardFully(args: { stakeAmount: bigint, ... }) {
|
|
53
|
+
validateAmount(args.stakeAmount, 'Stake Amount');
|
|
54
|
+
validateAddress(args.xPNTsToken, 'xPNTs Token');
|
|
55
|
+
// ...
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### 2.3 消除硬编码 ABI
|
|
60
|
+
将 `OperatorClient` 中的 `parseAbi` 替换为:
|
|
61
|
+
```typescript
|
|
62
|
+
import { SuperPaymasterABI, PaymasterFactoryABI } from '@aastar/core';
|
|
63
|
+
// 使用 SuperPaymasterABI 替代硬编码
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 阶段 2: 质量与测试体系 (Quality & Testing Strategy)
|
|
67
|
+
|
|
68
|
+
针对你提出的 **“全面的 ABI 封装和业务抽象”** 目标,我们采用以下策略:
|
|
69
|
+
|
|
70
|
+
#### 2.4 测试分层架构 (Vitest Integration)
|
|
71
|
+
引入 `vitest` 作为测试运行器,建立三层测试网:
|
|
72
|
+
|
|
73
|
+
1. **L1: Unit Tests (Pure Logic)**
|
|
74
|
+
* **对象**: `utils/validation`, `utils/roleData`.
|
|
75
|
+
* **方法**: 纯函数测试,无需 Mock。
|
|
76
|
+
* **覆盖率目标**: 100%。
|
|
77
|
+
|
|
78
|
+
2. **L2: Client Integration Tests (Mocked Chain)**
|
|
79
|
+
* **对象**: `OperatorClient`, `AdminClient`.
|
|
80
|
+
* **方法**: Mock `viem` 的 `publicActions` 和 `walletActions`。
|
|
81
|
+
* **目的**: 验证“业务编排逻辑”(例如:确保 `onboardFully` 确实按顺序调用了 Approve -> Register -> Deposit)。
|
|
82
|
+
* **工具**: `viem` 自带的 Mock Transport 或 `vitest` 的 `vi.spyOn`。
|
|
83
|
+
|
|
84
|
+
3. **L3: E2E Contract Tests (Anvil Fork)**
|
|
85
|
+
* **对象**: SDK + 真实合约。
|
|
86
|
+
* **方法**: 在 CI 中启动 `anvil`,部署合约,然后运行 SDK 测试用例。
|
|
87
|
+
* **现状**: 目前的 `scripts/*.ts` 是这种模式的雏形,但需要迁移到 `test/*.test.ts` 以获得更好的断言和报告。
|
|
88
|
+
|
|
89
|
+
#### 2.5 ABI 类型安全 (TypeGen)
|
|
90
|
+
为了确保覆盖所有 ABI,建议引入 `@wagmi/cli` 或 `typechain` 生成 TypeScript 类型。
|
|
91
|
+
* **Action**: 配置 `wagmi.config.ts` 读取 `abis/*.json`,生成强类型的 `readContract` / `writeContract` 接口。这样如果在 SDK 中漏掉了某个参数,TS 编译会直接报错。
|
|
92
|
+
|
|
93
|
+
### 阶段 3: 业务抽象与 API 化 (Business Abstraction)
|
|
94
|
+
|
|
95
|
+
#### 2.6 标准化返回结果 (Result Monad)
|
|
96
|
+
放弃 `throw Error`,全面采用 `SDKResult<T>`。
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
export type SDKResult<T> =
|
|
100
|
+
| { success: true; data: T }
|
|
101
|
+
| { success: false; error: AAStarError };
|
|
102
|
+
```
|
|
103
|
+
这对于前端集成至关重要,能区分“用户取消”、“网络错误”和“合约Revert”。
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 3. 详细执行清单 (Action Items)
|
|
108
|
+
|
|
109
|
+
| ID | 任务 | 优先级 | 涉及文件 | 备注 |
|
|
110
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
111
|
+
| **P0-1** | **修复 ABI 加载 Bug** | 🔥 Critical | `packages/core/src/abis/index.ts` | 必须首先解决 |
|
|
112
|
+
| **P1-1** | OperatorClient 接入 Validation | High | `packages/sdk/src/clients/operator.ts` | 防止非法参数 |
|
|
113
|
+
| **P1-2** | AdminClient 接入 Validation | High | `packages/sdk/src/clients/admin.ts` | 防止非法参数 |
|
|
114
|
+
| **P1-3** | 移除硬编码 ABI | Medium | `packages/sdk/src/clients/operator.ts` | 使用 Core 导出 |
|
|
115
|
+
| **P2-1** | 配置 Vitest 环境 | High | `vitest.config.ts` | 建立测试基建 |
|
|
116
|
+
| **P2-2** | 编写 Validation 单元测试 | Medium | `packages/core/src/utils/validation.test.ts` | 验证基建 |
|
|
117
|
+
| **P2-3** | 编写 OperatorClient Mock 测试 | High | `packages/sdk/src/clients/operator.test.ts` | 验证编排逻辑 |
|
|
118
|
+
| **P3-1** | 定义 SDKResult 并重构错误处理 | Medium | `packages/sdk/src/types/result.ts` | 提升 DX |
|
|
119
|
+
|
|
120
|
+
此计划旨在将 AAStar SDK 从“能用”提升到“生产级标准”,确保每一行代码都经过验证,每一个 ABI 调用都有类型安全保障。
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# SDK Audit Reports - Comprehensive Response & Action Plan
|
|
2
|
+
**Date**: 2026-01-14
|
|
3
|
+
**Reviewed By**: Gemini AI
|
|
4
|
+
**Current SDK Version**: v0.16.3
|
|
5
|
+
|
|
6
|
+
## 审核文档来源
|
|
7
|
+
1. **Trae Refactor Audit** (`2026-01-13-221242-trae-refactor.md`) - 全面架构审核
|
|
8
|
+
2. **Cursor Security Audit** (`cursor-2026-01-13-14-00-audit-report.md`) - 安全性审核
|
|
9
|
+
3. **Cursor Refactor Analysis** (`2026-01-13-cursor-refactor.md`) - 重构分析
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 第一部分:逐项问题评估
|
|
14
|
+
|
|
15
|
+
### 来源:Trae Audit - Critical Gaps (P0)
|
|
16
|
+
|
|
17
|
+
#### 问题 2.1: 工具链"质量门"不真实存在
|
|
18
|
+
**原始描述**: Root scripts `lint`/`test` 调用 `pnpm -r lint/test`,但packages没有定义这些scripts
|
|
19
|
+
|
|
20
|
+
**状态**: ✅ **已修复 (部分)**
|
|
21
|
+
- `test` script 已存在且正常工作 (`pnpm run test:coverage` 通过)
|
|
22
|
+
- `lint` script 确实缺失
|
|
23
|
+
|
|
24
|
+
**优先级**: **P2 (中优先级)**
|
|
25
|
+
- 测试覆盖已有,lint可以后续添加
|
|
26
|
+
- 当前TypeScript编译即可捕获大部分问题
|
|
27
|
+
|
|
28
|
+
**建议**:
|
|
29
|
+
- **短期**: 继续依赖 `tsc` 编译检查
|
|
30
|
+
- **中期** (2周内): 添加 eslint 配置到root和packages
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
#### 问题 2.2: 浏览器安全风险 - Node fs导出
|
|
35
|
+
**原始描述**: `packages/sdk/src/utils/keys.ts` 导入 `fs/path`,从SDK主入口导出
|
|
36
|
+
|
|
37
|
+
**状态**: ⚠️ **确认存在,低风险**
|
|
38
|
+
- 确实存在该问题
|
|
39
|
+
- 但实际使用场景:SDK主要用于Node.js环境(测试脚本、后端)
|
|
40
|
+
- 浏览器场景使用 `@aastar/dapp` 包
|
|
41
|
+
|
|
42
|
+
**优先级**: **P3 (低优先级)**
|
|
43
|
+
- 不影响当前主要使用场景
|
|
44
|
+
- 可以通过文档说明SDK为Node环境设计
|
|
45
|
+
|
|
46
|
+
**建议**:
|
|
47
|
+
- **短期**: 在README中明确说明 `@aastar/sdk` 为Node环境设计
|
|
48
|
+
- **长期** (1个月): 创建 `@aastar/sdk/node` subpath export
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
#### 问题 2.3: 类型安全降级 - 大量 `as any`
|
|
53
|
+
**原始描述**: SDK中83处 `as any`,主要在action绑定
|
|
54
|
+
|
|
55
|
+
**状态**: ✅ **已知,设计权衡**
|
|
56
|
+
- 这是viem动态action扩展模式的必要代价
|
|
57
|
+
- 实际类型安全由action定义保证,不是真正的类型丢失
|
|
58
|
+
|
|
59
|
+
**优先级**: **P4 (可选优化)**
|
|
60
|
+
- 不影响运行时安全
|
|
61
|
+
- 不影响开发体验(IDE autocomplete正常)
|
|
62
|
+
|
|
63
|
+
**建议**:
|
|
64
|
+
- **不修复**: 这是viem生态的标准模式
|
|
65
|
+
- 如果要改进,需要等viem官方提供更好的类型支持
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
#### 问题 2.4: 错误处理碎片化
|
|
70
|
+
**原始描述**: 4种错误策略共存 (`AAStarError`, `SDKResult`, `decodeContractError`, `handleContractError`)
|
|
71
|
+
|
|
72
|
+
**状态**: ⚠️ **确认存在,需要统一**
|
|
73
|
+
- 当前确实有多种错误处理方式
|
|
74
|
+
- 但大部分代码路径已经统一使用 `throw Error`
|
|
75
|
+
|
|
76
|
+
**优先级**: **P2 (中优先级)**
|
|
77
|
+
- 不影响功能,但影响DX
|
|
78
|
+
- 统一后更容易维护
|
|
79
|
+
|
|
80
|
+
**建议**:
|
|
81
|
+
- **中期** (2周内): 选择 **throw-first** 策略(生态标准)
|
|
82
|
+
- 所有public方法 throw `AAStarError`
|
|
83
|
+
- 移除 `SDKResult` (内部使用可保留)
|
|
84
|
+
- 统一使用 `decodeContractError` 处理合约错误
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 来源:Trae Audit - High-Value Improvements (P1)
|
|
89
|
+
|
|
90
|
+
#### 问题 3.1: 统一client组合以减少重复
|
|
91
|
+
**状态**: ✅ **已部分实现**
|
|
92
|
+
- AdminClient, OperatorClient等已经使用工厂函数
|
|
93
|
+
- 重复代码已经大幅减少
|
|
94
|
+
|
|
95
|
+
**优先级**: **P3 (低优先级)**
|
|
96
|
+
- 当前模式已经可用且一致
|
|
97
|
+
|
|
98
|
+
**建议**: **不修复** - 当前实现已足够好
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
#### 问题 3.2: 停止从SDK导出所有内容
|
|
103
|
+
**状态**: ⚠️ **确认存在**
|
|
104
|
+
- `packages/sdk/src/index.ts` 确实re-export了所有子包
|
|
105
|
+
|
|
106
|
+
**优先级**: **P3 (低优先级)**
|
|
107
|
+
- 对于monorepo用户,这实际上很方便
|
|
108
|
+
- Tree-shaking在现代bundler中工作良好
|
|
109
|
+
|
|
110
|
+
**建议**: **暂不修复** - 等待用户反馈再决定
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
#### 问题 3.3: Gasless flows一等公民化
|
|
115
|
+
**状态**: ✅ **已实现**
|
|
116
|
+
- `UserOperationBuilder` 已存在
|
|
117
|
+
- Paymaster middleware已经标准化
|
|
118
|
+
- L4 gasless测试全部通过
|
|
119
|
+
|
|
120
|
+
**优先级**: **N/A (已完成)**
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
#### 问题 3.4: 对齐workspace依赖版本
|
|
125
|
+
**状态**: ✅ **已修复**
|
|
126
|
+
- 刚刚统一所有viem版本到 `2.43.3`
|
|
127
|
+
- 已提交commit
|
|
128
|
+
|
|
129
|
+
**优先级**: **N/A (已完成)**
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### 来源:Cursor Security Audit
|
|
134
|
+
|
|
135
|
+
#### 问题: EndUserClient/CommunityClient缺少输入验证
|
|
136
|
+
**状态**: ⚠️ **确认存在**
|
|
137
|
+
- AdminClient/OperatorClient有验证
|
|
138
|
+
- EndUserClient/CommunityClient确实缺少
|
|
139
|
+
|
|
140
|
+
**优先级**: **P2 (中优先级)**
|
|
141
|
+
- 不是安全漏洞(合约层有验证)
|
|
142
|
+
- 但会导致更差的错误信息
|
|
143
|
+
|
|
144
|
+
**建议**:
|
|
145
|
+
- **中期** (2周内): 为EndUserClient/CommunityClient添加输入验证
|
|
146
|
+
- 复用现有 `validateAddress`, `validateAmount` 函数
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 第二部分:综合行动计划
|
|
151
|
+
|
|
152
|
+
### 立即执行 (本周内)
|
|
153
|
+
**无** - 所有critical问题已解决
|
|
154
|
+
|
|
155
|
+
### 短期计划 (2周内) - P2优先级
|
|
156
|
+
1. **统一错误处理策略**
|
|
157
|
+
- 选择throw-first模式
|
|
158
|
+
- 清理 `SDKResult` 相关代码
|
|
159
|
+
- 统一使用 `AAStarError`
|
|
160
|
+
- **工作量**: 2-3天
|
|
161
|
+
- **影响范围**: SDK所有客户端
|
|
162
|
+
|
|
163
|
+
2. **添加EndUserClient/CommunityClient输入验证**
|
|
164
|
+
- 复用现有validation函数
|
|
165
|
+
- 添加到所有public方法
|
|
166
|
+
- **工作量**: 1天
|
|
167
|
+
- **影响范围**: 2个客户端文件
|
|
168
|
+
|
|
169
|
+
3. **添加ESLint配置**
|
|
170
|
+
- Root + packages配置
|
|
171
|
+
- 基础规则集
|
|
172
|
+
- **工作量**: 半天
|
|
173
|
+
- **影响范围**: 整个项目
|
|
174
|
+
|
|
175
|
+
### 中期计划 (1个月内) - P3优先级
|
|
176
|
+
1. **Node-only工具分离**
|
|
177
|
+
- 创建 `@aastar/sdk/node` subpath
|
|
178
|
+
- 移动 `KeyManager` 等工具
|
|
179
|
+
- 更新文档
|
|
180
|
+
- **工作量**: 1-2天
|
|
181
|
+
|
|
182
|
+
2. **文档完善**
|
|
183
|
+
- 明确SDK使用场景(Node vs Browser)
|
|
184
|
+
- 添加错误处理最佳实践
|
|
185
|
+
- **工作量**: 1天
|
|
186
|
+
|
|
187
|
+
### 长期计划 (可选) - P4优先级
|
|
188
|
+
1. **类型安全改进**
|
|
189
|
+
- 等待viem官方更好的类型支持
|
|
190
|
+
- 或考虑自定义类型包装器
|
|
191
|
+
- **工作量**: TBD
|
|
192
|
+
|
|
193
|
+
2. **导出策略优化**
|
|
194
|
+
- 根据用户反馈决定是否拆分
|
|
195
|
+
- **工作量**: TBD
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 第三部分:误报/不适用项
|
|
200
|
+
|
|
201
|
+
### 误报
|
|
202
|
+
1. **"ABI loading broken"** - ❌ 误报
|
|
203
|
+
- 已在v0.16.2修复
|
|
204
|
+
- 当前所有测试通过
|
|
205
|
+
|
|
206
|
+
2. **"getUserSBT ABI mismatch"** - ❌ 误报
|
|
207
|
+
- 代码实现正确
|
|
208
|
+
- 测试验证通过
|
|
209
|
+
|
|
210
|
+
### 不适用/设计决策
|
|
211
|
+
1. **`as any` 类型转换** - 设计权衡
|
|
212
|
+
- viem生态标准模式
|
|
213
|
+
- 不需要修复
|
|
214
|
+
|
|
215
|
+
2. **Re-export所有子包** - 设计决策
|
|
216
|
+
- Monorepo便利性
|
|
217
|
+
- 暂不修改
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 总结
|
|
222
|
+
|
|
223
|
+
### 当前状态评估
|
|
224
|
+
- ✅ **Critical (P0)**: 全部解决
|
|
225
|
+
- ⚠️ **High (P1)**: 大部分解决,2项待处理
|
|
226
|
+
- ⚠️ **Medium (P2)**: 3项待处理
|
|
227
|
+
- ℹ️ **Low (P3-P4)**: 可选优化
|
|
228
|
+
|
|
229
|
+
### 建议的下一步
|
|
230
|
+
**优先级排序**:
|
|
231
|
+
1. 统一错误处理 (2-3天,高ROI)
|
|
232
|
+
2. 添加输入验证 (1天,提升DX)
|
|
233
|
+
3. ESLint配置 (半天,提升代码质量)
|
|
234
|
+
4. 其他可延后
|
|
235
|
+
|
|
236
|
+
**总工作量估算**: 4-5天
|
|
237
|
+
|
|
238
|
+
**建议时间线**:
|
|
239
|
+
- Week 1: 错误处理统一
|
|
240
|
+
- Week 2: 输入验证 + ESLint
|
|
241
|
+
- Week 3-4: 文档和Node工具分离
|
|
242
|
+
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# SDK Audit Reports - Executive Summary & Action Plan
|
|
2
|
+
**Date**: 2026-01-14
|
|
3
|
+
**Reviewed By**: Gemini AI
|
|
4
|
+
**Current SDK Version**: v0.16.3
|
|
5
|
+
|
|
6
|
+
## 审核来源
|
|
7
|
+
1. **Trae Refactor Audit** - 全面架构审核 (P0-P4优先级)
|
|
8
|
+
2. **Cursor Security Audit** - 安全性审核
|
|
9
|
+
3. **Cursor Refactor Analysis** - 重构分析
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 核心发现总结
|
|
14
|
+
|
|
15
|
+
### ✅ 已解决的Critical问题
|
|
16
|
+
1. **ABI Loading** - 已在v0.16.2修复
|
|
17
|
+
2. **Viem版本冲突** - 刚刚统一到2.43.3
|
|
18
|
+
3. **Gasless Flow** - L4测试100%通过
|
|
19
|
+
4. **Registry查询** - 修复为使用factory单次调用
|
|
20
|
+
|
|
21
|
+
### ⚠️ 需要处理的问题 (按优先级)
|
|
22
|
+
|
|
23
|
+
#### P2 - 中优先级 (2周内)
|
|
24
|
+
1. **错误处理碎片化**
|
|
25
|
+
- 现状:4种错误策略共存
|
|
26
|
+
- 建议:统一为throw-first模式
|
|
27
|
+
- 工作量:2-3天
|
|
28
|
+
|
|
29
|
+
2. **输入验证不完整**
|
|
30
|
+
- 现状:EndUserClient/CommunityClient缺少验证
|
|
31
|
+
- 建议:添加validateAddress/validateAmount
|
|
32
|
+
- 工作量:1天
|
|
33
|
+
|
|
34
|
+
3. **缺少Lint配置**
|
|
35
|
+
- 现状:packages没有lint scripts
|
|
36
|
+
- 建议:添加ESLint配置
|
|
37
|
+
- 工作量:半天
|
|
38
|
+
|
|
39
|
+
#### P3 - 低优先级 (1个月内)
|
|
40
|
+
1. **Node-only工具混入SDK**
|
|
41
|
+
- 现状:KeyManager等fs工具从SDK导出
|
|
42
|
+
- 建议:创建@aastar/sdk/node subpath
|
|
43
|
+
- 工作量:1-2天
|
|
44
|
+
|
|
45
|
+
2. **文档不完善**
|
|
46
|
+
- 建议:明确使用场景,添加最佳实践
|
|
47
|
+
- 工作量:1天
|
|
48
|
+
|
|
49
|
+
#### P4 - 可选优化
|
|
50
|
+
1. **类型安全改进** - 等待viem官方支持
|
|
51
|
+
2. **导出策略优化** - 根据用户反馈决定
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 误报/不适用项
|
|
56
|
+
|
|
57
|
+
### ❌ 误报
|
|
58
|
+
- "ABI loading broken" - 已修复
|
|
59
|
+
- "getUserSBT ABI mismatch" - 实现正确
|
|
60
|
+
|
|
61
|
+
### ℹ️ 设计决策(不修复)
|
|
62
|
+
- `as any` 类型转换 - viem生态标准模式
|
|
63
|
+
- Re-export所有子包 - Monorepo便利性
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 推荐行动计划
|
|
68
|
+
|
|
69
|
+
### Week 1: 错误处理统一
|
|
70
|
+
**目标**: 统一为throw-first模式
|
|
71
|
+
- 移除SDKResult相关代码
|
|
72
|
+
- 所有public方法throw AAStarError
|
|
73
|
+
- 统一使用decodeContractError
|
|
74
|
+
|
|
75
|
+
**工作量**: 2-3天
|
|
76
|
+
**影响**: 所有SDK客户端
|
|
77
|
+
|
|
78
|
+
### Week 2: 验证 + Lint
|
|
79
|
+
**目标**: 完善质量保障
|
|
80
|
+
- EndUserClient/CommunityClient添加输入验证
|
|
81
|
+
- 配置ESLint规则
|
|
82
|
+
- 运行全回归测试
|
|
83
|
+
|
|
84
|
+
**工作量**: 1.5天
|
|
85
|
+
**影响**: 2个客户端 + 项目配置
|
|
86
|
+
|
|
87
|
+
### Week 3-4: 文档 + 工具分离
|
|
88
|
+
**目标**: 改善DX
|
|
89
|
+
- Node工具分离到subpath
|
|
90
|
+
- 完善使用文档
|
|
91
|
+
- 添加最佳实践指南
|
|
92
|
+
|
|
93
|
+
**工作量**: 2-3天
|
|
94
|
+
**影响**: 文档 + 导出结构
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 总工作量估算
|
|
99
|
+
- **短期 (P2)**: 4-5天
|
|
100
|
+
- **中期 (P3)**: 2-3天
|
|
101
|
+
- **总计**: 约1.5周
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 当前状态评分
|
|
106
|
+
|
|
107
|
+
| 维度 | 评分 | 说明 |
|
|
108
|
+
|------|------|------|
|
|
109
|
+
| **功能完整性** | ✅ 9/10 | 核心功能完备,测试通过 |
|
|
110
|
+
| **代码质量** | ⚠️ 7/10 | 需要统一错误处理和验证 |
|
|
111
|
+
| **类型安全** | ⚠️ 6/10 | viem限制,可接受 |
|
|
112
|
+
| **文档完善度** | ⚠️ 6/10 | 需要补充使用指南 |
|
|
113
|
+
| **测试覆盖** | ✅ 9/10 | 高覆盖率,全回归通过 |
|
|
114
|
+
| **生产就绪度** | ✅ 8/10 | 可用,但需要DX改进 |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 最终建议
|
|
119
|
+
|
|
120
|
+
### 立即可发布 (v0.16.3)
|
|
121
|
+
当前版本功能完整,测试通过,**可以发布使用**。
|
|
122
|
+
|
|
123
|
+
### 建议改进路线 (v0.17.0)
|
|
124
|
+
按照上述Week 1-4计划执行,预计1.5周完成。
|
|
125
|
+
|
|
126
|
+
### 不建议的改动
|
|
127
|
+
- 大规模重构package结构(风险高,收益低)
|
|
128
|
+
- 消除所有`as any`(viem限制,不现实)
|
|
129
|
+
- 完全重写错误处理(渐进式改进更安全)
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
**总结**: SDK当前状态良好,核心功能稳定。建议进行渐进式改进,优先处理P2问题,提升开发体验和代码质量。
|