@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,95 @@
|
|
|
1
|
+
# Account Abstraction
|
|
2
|
+
|
|
3
|
+
Understanding Account Abstraction (ERC-4337) in AAStar SDK.
|
|
4
|
+
|
|
5
|
+
## What is Account Abstraction?
|
|
6
|
+
|
|
7
|
+
Account Abstraction (AA) allows users to use smart contract wallets instead of traditional Externally Owned Accounts (EOAs). This enables advanced features like:
|
|
8
|
+
|
|
9
|
+
- **Gasless Transactions**: Users don't need ETH for gas
|
|
10
|
+
- **Social Recovery**: Recover accounts without seed phrases
|
|
11
|
+
- **Session Keys**: Temporary permissions for DApps
|
|
12
|
+
- **Batch Transactions**: Multiple operations in one transaction
|
|
13
|
+
- **Custom Validation**: Flexible signature schemes
|
|
14
|
+
|
|
15
|
+
## ERC-4337 Overview
|
|
16
|
+
|
|
17
|
+
ERC-4337 is the standard for Account Abstraction. Key components:
|
|
18
|
+
|
|
19
|
+
### UserOperation
|
|
20
|
+
|
|
21
|
+
A pseudo-transaction object that represents a user's intent:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
interface UserOperation {
|
|
25
|
+
sender: Address; // Smart account address
|
|
26
|
+
nonce: bigint; // Anti-replay protection
|
|
27
|
+
callData: Hex; // Actual transaction data
|
|
28
|
+
paymasterAndData: Hex; // Paymaster info (for gasless tx)
|
|
29
|
+
signature: Hex; // User signature
|
|
30
|
+
// ... gas fields
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### EntryPoint
|
|
35
|
+
|
|
36
|
+
The singleton contract that processes UserOperations.
|
|
37
|
+
|
|
38
|
+
### Bundler
|
|
39
|
+
|
|
40
|
+
Off-chain service that bundles UserOperations and submits them to the EntryPoint.
|
|
41
|
+
|
|
42
|
+
### Paymaster
|
|
43
|
+
|
|
44
|
+
Contract that sponsors gas fees for users.
|
|
45
|
+
|
|
46
|
+
## AAStar Implementation
|
|
47
|
+
|
|
48
|
+
AAStar SDK provides a complete AA infrastructure:
|
|
49
|
+
|
|
50
|
+
### Smart Accounts
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
import { createSmartAccount } from '@aastar/account';
|
|
54
|
+
|
|
55
|
+
const account = await createSmartAccount({
|
|
56
|
+
owner: ownerAddress,
|
|
57
|
+
salt: 0n,
|
|
58
|
+
factoryAddress: CONTRACTS.sepolia.simpleAccountFactory,
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Gasless Transactions
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
import { createEndUserClient } from '@aastar/core';
|
|
66
|
+
|
|
67
|
+
const user = createEndUserClient({...});
|
|
68
|
+
|
|
69
|
+
// Check eligibility
|
|
70
|
+
const eligible = await user.checkEligibility(communityAddress);
|
|
71
|
+
|
|
72
|
+
if (eligible) {
|
|
73
|
+
// Send gasless transaction
|
|
74
|
+
await sendGaslessTransaction();
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Benefits
|
|
79
|
+
|
|
80
|
+
1. **Better UX**: Users don't need to understand gas or hold ETH
|
|
81
|
+
2. **Security**: Smart contract wallets are more secure than EOAs
|
|
82
|
+
3. **Flexibility**: Custom validation logic and recovery mechanisms
|
|
83
|
+
4. **Programmability**: Wallets can have complex logic
|
|
84
|
+
|
|
85
|
+
## Learn More
|
|
86
|
+
|
|
87
|
+
- [ERC-4337 Specification](https://eips.ethereum.org/EIPS/eip-4337)
|
|
88
|
+
- [Account Module API](/api/modules/account)
|
|
89
|
+
- [End User API](/api/roles/enduser)
|
|
90
|
+
|
|
91
|
+
## Next Steps
|
|
92
|
+
|
|
93
|
+
- [SuperPaymaster (AOA+)](/guide/concepts/superpaymaster)
|
|
94
|
+
- [Quick Start](/guide/quick-start)
|
|
95
|
+
- [Examples](/examples/)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# EOA Rainbow Bridge
|
|
2
|
+
|
|
3
|
+
Seamlessly bridge between traditional EOA wallets and smart contract accounts.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The EOA Rainbow Bridge enables users to:
|
|
8
|
+
- Use existing EOA wallets
|
|
9
|
+
- Upgrade to smart accounts
|
|
10
|
+
- Maintain backward compatibility
|
|
11
|
+
- Seamless transition
|
|
12
|
+
|
|
13
|
+
## How It Works
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
EOA Wallet → Rainbow Bridge → Smart Account
|
|
17
|
+
↓ ↓ ↓
|
|
18
|
+
Private Key Ownership Advanced Features
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Implementation
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { createSmartAccount } from '@aastar/account';
|
|
25
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
26
|
+
|
|
27
|
+
// 1. Start with EOA
|
|
28
|
+
const eoaAccount = privateKeyToAccount(process.env.PRIVATE_KEY);
|
|
29
|
+
|
|
30
|
+
// 2. Create smart account owned by EOA
|
|
31
|
+
const smartAccount = await createSmartAccount({
|
|
32
|
+
owner: eoaAccount.address,
|
|
33
|
+
salt: 0n,
|
|
34
|
+
factoryAddress: CONTRACTS.sepolia.simpleAccountFactory,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// 3. Use smart account for advanced features
|
|
38
|
+
const user = createEndUserClient({
|
|
39
|
+
chain: sepolia,
|
|
40
|
+
transport: http(),
|
|
41
|
+
account: smartAccount,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Now user has:
|
|
45
|
+
// - Gasless transactions
|
|
46
|
+
// - Social recovery
|
|
47
|
+
// - Session keys
|
|
48
|
+
// - Batch operations
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Benefits
|
|
52
|
+
|
|
53
|
+
1. **No Learning Curve**: Users keep their familiar wallets
|
|
54
|
+
2. **Gradual Adoption**: Upgrade when needed
|
|
55
|
+
3. **Best of Both Worlds**: EOA simplicity + smart account features
|
|
56
|
+
4. **Backward Compatible**: Works with existing DApps
|
|
57
|
+
|
|
58
|
+
## Use Cases
|
|
59
|
+
|
|
60
|
+
- Onboarding new users
|
|
61
|
+
- Migrating existing users
|
|
62
|
+
- Multi-wallet support
|
|
63
|
+
- Progressive enhancement
|
|
64
|
+
|
|
65
|
+
## Related
|
|
66
|
+
|
|
67
|
+
- [Account Module](/api/modules/account)
|
|
68
|
+
- [Account Abstraction](/guide/concepts/account-abstraction)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Reputation System
|
|
2
|
+
|
|
3
|
+
On-chain reputation tracking with customizable rules and scoring.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Reputation System enables:
|
|
8
|
+
- On-chain reputation tracking
|
|
9
|
+
- Customizable scoring rules
|
|
10
|
+
- Community-specific metrics
|
|
11
|
+
- Credit limit calculation
|
|
12
|
+
|
|
13
|
+
## Architecture
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
User Actions → Metrics → Reputation Score → Credit Limit
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Components
|
|
20
|
+
|
|
21
|
+
### 1. Metrics
|
|
22
|
+
|
|
23
|
+
Measurable user activities:
|
|
24
|
+
- Code contributions
|
|
25
|
+
- Community engagement
|
|
26
|
+
- Governance participation
|
|
27
|
+
- Transaction history
|
|
28
|
+
|
|
29
|
+
### 2. Scoring Rules
|
|
30
|
+
|
|
31
|
+
Community-defined weights:
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
await community.setReputationRules({
|
|
35
|
+
rules: [
|
|
36
|
+
{ metric: 'contributions', weight: 40 },
|
|
37
|
+
{ metric: 'engagement', weight: 30 },
|
|
38
|
+
{ metric: 'governance', weight: 30 },
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. Reputation Score
|
|
44
|
+
|
|
45
|
+
Calculated from metrics and weights:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
score = (metric1 * weight1) + (metric2 * weight2) + ...
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 4. Credit Limit
|
|
52
|
+
|
|
53
|
+
Based on reputation:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
creditLimit = baseLimit * (reputationScore / 1000)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Usage
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
import { getReputationScore } from '@aastar/identity';
|
|
63
|
+
|
|
64
|
+
// Get user's reputation
|
|
65
|
+
const score = await getReputationScore(
|
|
66
|
+
client,
|
|
67
|
+
userAddress,
|
|
68
|
+
communityAddress
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
console.log('Reputation:', score.toString());
|
|
72
|
+
|
|
73
|
+
// Higher reputation = higher credit limit
|
|
74
|
+
const credit = await user.getCreditLimit();
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Benefits
|
|
78
|
+
|
|
79
|
+
1. **Trustless**: On-chain, verifiable
|
|
80
|
+
2. **Customizable**: Each community sets rules
|
|
81
|
+
3. **Fair**: Transparent scoring
|
|
82
|
+
4. **Dynamic**: Updates with user activity
|
|
83
|
+
|
|
84
|
+
## Use Cases
|
|
85
|
+
|
|
86
|
+
- Gas credit limits
|
|
87
|
+
- Governance voting power
|
|
88
|
+
- Access control
|
|
89
|
+
- Reward distribution
|
|
90
|
+
|
|
91
|
+
## Related
|
|
92
|
+
|
|
93
|
+
- [Identity Module](/api/modules/identity)
|
|
94
|
+
- [Community API](/api/roles/community)
|
|
95
|
+
- [End User API](/api/roles/enduser)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# SuperPaymaster (AOA+)
|
|
2
|
+
|
|
3
|
+
Advanced On-chain Accounting Paymaster with credit system.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
SuperPaymaster is AAStar's innovative gas sponsorship solution that enables truly gasless transactions through an on-chain credit system.
|
|
8
|
+
|
|
9
|
+
## Key Features
|
|
10
|
+
|
|
11
|
+
### 1. Credit-Based System
|
|
12
|
+
|
|
13
|
+
Users get gas credit based on:
|
|
14
|
+
- **SBT Ownership**: Community membership tokens
|
|
15
|
+
- **Reputation Score**: On-chain reputation
|
|
16
|
+
- **Historical Behavior**: Past transaction patterns
|
|
17
|
+
- **Community Rules**: Custom eligibility criteria
|
|
18
|
+
|
|
19
|
+
### 2. Operator Network
|
|
20
|
+
|
|
21
|
+
Decentralized network of Paymaster operators who:
|
|
22
|
+
- Stake GTokens to participate
|
|
23
|
+
- Deposit funds for gas sponsorship
|
|
24
|
+
- Earn fees from communities
|
|
25
|
+
- Get slashed for misbehavior
|
|
26
|
+
|
|
27
|
+
### 3. Community Governance
|
|
28
|
+
|
|
29
|
+
Communities can:
|
|
30
|
+
- Set their own eligibility rules
|
|
31
|
+
- Configure credit limits
|
|
32
|
+
- Manage operator selection
|
|
33
|
+
- Customize fee structures
|
|
34
|
+
|
|
35
|
+
## How It Works
|
|
36
|
+
|
|
37
|
+
```mermaid
|
|
38
|
+
sequenceDiagram
|
|
39
|
+
User->>SuperPaymaster: Request gasless tx
|
|
40
|
+
SuperPaymaster->>Registry: Check eligibility
|
|
41
|
+
Registry->>SuperPaymaster: Return credit limit
|
|
42
|
+
SuperPaymaster->>Operator: Sponsor gas
|
|
43
|
+
Operator->>EntryPoint: Pay gas
|
|
44
|
+
EntryPoint->>User: Execute transaction
|
|
45
|
+
User->>SuperPaymaster: Repay debt (later)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Architecture
|
|
49
|
+
|
|
50
|
+
### Components
|
|
51
|
+
|
|
52
|
+
1. **SuperPaymaster Contract**: Core logic for gas sponsorship
|
|
53
|
+
2. **Registry**: Manages communities, operators, and users
|
|
54
|
+
3. **GTokenStaking**: Operator stake management
|
|
55
|
+
4. **ReputationSystem**: On-chain reputation tracking
|
|
56
|
+
|
|
57
|
+
### Credit Calculation
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
credit = baseCreditLimit
|
|
61
|
+
* reputationMultiplier
|
|
62
|
+
* communityBonus
|
|
63
|
+
- outstandingDebt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Usage Example
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { createEndUserClient } from '@aastar/core';
|
|
70
|
+
import { getPaymasterAndData } from '@aastar/paymaster';
|
|
71
|
+
|
|
72
|
+
// 1. Check eligibility
|
|
73
|
+
const user = createEndUserClient({...});
|
|
74
|
+
const eligible = await user.checkEligibility(communityAddress);
|
|
75
|
+
|
|
76
|
+
if (!eligible) {
|
|
77
|
+
throw new Error('Not eligible for gasless transactions');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 2. Get credit limit
|
|
81
|
+
const creditLimit = await user.getCreditLimit();
|
|
82
|
+
console.log('Available credit:', formatEther(creditLimit));
|
|
83
|
+
|
|
84
|
+
// 3. Create UserOperation with paymaster data
|
|
85
|
+
const paymasterAndData = getPaymasterAndData(userOp, {
|
|
86
|
+
paymasterAddress: CONTRACTS.sepolia.superPaymaster,
|
|
87
|
+
communityAddress,
|
|
88
|
+
xPNTsAddress: CONTRACTS.sepolia.xPNTsToken,
|
|
89
|
+
verificationGasLimit: 100000n,
|
|
90
|
+
postOpGasLimit: 50000n,
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// 4. Submit gasless transaction
|
|
94
|
+
const txHash = await submitUserOperation({
|
|
95
|
+
...userOp,
|
|
96
|
+
paymasterAndData,
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Benefits
|
|
101
|
+
|
|
102
|
+
### For Users
|
|
103
|
+
- ✅ No need to hold ETH for gas
|
|
104
|
+
- ✅ Seamless transaction experience
|
|
105
|
+
- ✅ Credit-based system (pay later)
|
|
106
|
+
- ✅ Community-specific benefits
|
|
107
|
+
|
|
108
|
+
### For Communities
|
|
109
|
+
- ✅ Attract more users
|
|
110
|
+
- ✅ Customizable rules
|
|
111
|
+
- ✅ Better user retention
|
|
112
|
+
- ✅ Governance control
|
|
113
|
+
|
|
114
|
+
### For Operators
|
|
115
|
+
- ✅ Earn fees from gas sponsorship
|
|
116
|
+
- ✅ Decentralized network
|
|
117
|
+
- ✅ Stake-based participation
|
|
118
|
+
- ✅ Performance incentives
|
|
119
|
+
|
|
120
|
+
## Comparison with Traditional Paymasters
|
|
121
|
+
|
|
122
|
+
| Feature | Traditional Paymaster | SuperPaymaster (AOA+) |
|
|
123
|
+
|---------|----------------------|----------------------|
|
|
124
|
+
| Gas Sponsorship | ✅ | ✅ |
|
|
125
|
+
| Credit System | ❌ | ✅ |
|
|
126
|
+
| Decentralized | ❌ | ✅ |
|
|
127
|
+
| Community Governance | ❌ | ✅ |
|
|
128
|
+
| Reputation-Based | ❌ | ✅ |
|
|
129
|
+
| Operator Network | ❌ | ✅ |
|
|
130
|
+
|
|
131
|
+
## Learn More
|
|
132
|
+
|
|
133
|
+
- [Operator API](/api/roles/operator) - Become an operator
|
|
134
|
+
- [Community API](/api/roles/community) - Set up gas sponsorship
|
|
135
|
+
- [End User API](/api/roles/enduser) - Use gasless transactions
|
|
136
|
+
|
|
137
|
+
## Next Steps
|
|
138
|
+
|
|
139
|
+
- [EOA Rainbow Bridge](/guide/concepts/rainbow-bridge)
|
|
140
|
+
- [Reputation System](/guide/concepts/reputation)
|
|
141
|
+
- [Quick Start](/guide/quick-start)
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# 开始使用 (Getting Started)
|
|
2
|
+
|
|
3
|
+
<p align="left">
|
|
4
|
+
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" style="display:inline-block; margin-right: 10px;" />
|
|
5
|
+
<img src="https://img.shields.io/badge/TypeScript-5.0-blue" alt="TypeScript" style="display:inline-block; margin-right: 10px;" />
|
|
6
|
+
<img src="https://img.shields.io/badge/Status-0.14.0-green" alt="Status" style="display:inline-block;" />
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
**完整的账户抽象基础设施 SDK - 为 Mycelium 网络提供动力**
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 📚 目录
|
|
14
|
+
|
|
15
|
+
- [简介](#简介)
|
|
16
|
+
- [SDK v2 架构设计](#sdk-v2-架构设计)
|
|
17
|
+
- [安装](#安装)
|
|
18
|
+
- [快速开始](#快速开始)
|
|
19
|
+
- [测试命令](#测试命令)
|
|
20
|
+
- [开发指南](#开发指南)
|
|
21
|
+
- [学术研究](#学术研究)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 简介 (Introduction)
|
|
26
|
+
|
|
27
|
+
**AAStar SDK** 是 Mycelium 网络的高集成度开发工具包。我们将原有的 17 个碎片化模块重构为 7 个专业核心包,旨在提供统一、高性能且易于维护的开发体验。
|
|
28
|
+
|
|
29
|
+
### 核心特性
|
|
30
|
+
|
|
31
|
+
- ✅ **角色化客户端**: 为终端用户、社区、运营商和协议管理员提供专属 API
|
|
32
|
+
- ✅ **基础设施就绪**: 深度集成 SuperPaymaster 与 EOA Rainbow Bridge
|
|
33
|
+
- ✅ **无感交互体验**: 基于社区信用系统的 Gasless 交易
|
|
34
|
+
- ✅ **DVT 安全模块**: 去中心化验证与聚合签名
|
|
35
|
+
- ✅ **科学可复现**: 锁定依赖版本,支持学术论文数据采集
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## SDK v2 架构设计
|
|
40
|
+
|
|
41
|
+
AAStar SDK v2 采用 **「装饰器 (Actions-Decorator)」** 模式(借鉴自 `viem` 与 `permissionless.js`)。它将低层次的合约交互与高层次的业务逻辑解耦,为生态系统中的四种角色提供专属的 Client 封装。
|
|
42
|
+
|
|
43
|
+
### 核心理念
|
|
44
|
+
|
|
45
|
+
- **语义化 Action**: 将复杂流程(如「运营商入驻」)封装为单次 SDK 调用
|
|
46
|
+
- **Provider 无关性**: 完美适配任何 `viem` 传输层(Pimlico, Alchemy 或本地 Anvil)
|
|
47
|
+
- **安全加固**: 锁定依赖版本并实施自动化供应链审计
|
|
48
|
+
|
|
49
|
+
### 角色化 API 矩阵
|
|
50
|
+
|
|
51
|
+
| 客户端 | 目标开发者 | 核心职责 |
|
|
52
|
+
| :--- | :--- | :--- |
|
|
53
|
+
| **`EndUserClient`** | dApp 开发者 | 核心账户抽象交互、Gasless UX、查询信用状态 |
|
|
54
|
+
| **`CommunityClient`** | 社区/DAO 管理者 | 自动化入驻、部署 xPNTs 代币、配置 SBT 规则 |
|
|
55
|
+
| **`OperatorClient`** | 节点/运营商 | SuperPaymaster 注册与质押、资金池管理 |
|
|
56
|
+
| **`AdminClient`** | 协议维护者 | 提交 DVT 聚合签名、执行奖惩、调整全局参数 |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 安装 (Installation)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
pnpm install @aastar/sdk @aastar/core viem
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 快速开始 (Quick Start)
|
|
69
|
+
|
|
70
|
+
### 基础示例 (Operator)
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import { createOperatorClient } from '@aastar/sdk';
|
|
74
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
75
|
+
import { foundry } from 'viem/chains';
|
|
76
|
+
import { http } from 'viem';
|
|
77
|
+
|
|
78
|
+
// 创建运营商客户端
|
|
79
|
+
const operatorClient = createOperatorClient({
|
|
80
|
+
chain: foundry,
|
|
81
|
+
transport: http('http://127.0.0.1:8545'),
|
|
82
|
+
account: privateKeyToAccount('0x...'),
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// 一键入驻 SuperPaymaster(质押 + 存款)
|
|
86
|
+
await operatorClient.onboardToSuperPaymaster({
|
|
87
|
+
stakeAmount: parseEther('50'),
|
|
88
|
+
depositAmount: parseEther('50')
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 核心测试场景 (Core Testing)
|
|
95
|
+
|
|
96
|
+
本项目提供两套完整的回归测试。
|
|
97
|
+
|
|
98
|
+
### SDK 回归测试(使用 SDK 客户端)
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pnpm run test:full_sdk
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
- **测试场景**:
|
|
105
|
+
- ✅ Operator Staking (质押)
|
|
106
|
+
- ✅ Paymaster Deposit (存款)
|
|
107
|
+
- ✅ Community Registration (社区注册)
|
|
108
|
+
- ✅ SBT Minting (SBT 铸造)
|
|
109
|
+
- ✅ Admin Slashing (惩罚)
|
|
110
|
+
- ✅ Credit Query (信用查询)
|
|
111
|
+
|
|
112
|
+
### 完整协议回归测试(Anvil 专用,72 场景)
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
pnpm run test:full_anvil
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 学术研究 (Research)
|
|
121
|
+
|
|
122
|
+
本 SDK 支撑了 SuperPaymaster 论文的博士实验数据采集:
|
|
123
|
+
|
|
124
|
+
- **`scripts/19_sdk_experiment_runner.ts`**: 官方实验记录器
|
|
125
|
+
- **覆盖率**: 95% 用户用例分支,72 个完整场景
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 支持与贡献 (Support)
|
|
130
|
+
|
|
131
|
+
- **代码仓库**: [AAStarCommunity/aastar-sdk](https://github.com/AAStarCommunity/aastar-sdk)
|
|
132
|
+
- **Discord**: [加入我们的社区](https://discord.gg/aastar)
|
|
133
|
+
- **许可证**: MIT
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# 安装 (Installation)
|
|
2
|
+
|
|
3
|
+
## 包管理器
|
|
4
|
+
|
|
5
|
+
AAStar SDK 可通过 npm 获得。为了获得最佳体验,我们推荐使用 **pnpm**。
|
|
6
|
+
|
|
7
|
+
### 使用 pnpm (推荐)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm add @aastar/sdk
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### 使用 npm
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @aastar/sdk
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 使用 yarn
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
yarn add @aastar/sdk
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 独立安装包
|
|
26
|
+
|
|
27
|
+
你也可以根据需求安装特定模块:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 核心工具与客户端创建
|
|
31
|
+
pnpm add @aastar/core
|
|
32
|
+
|
|
33
|
+
# 账户抽象 (Account Abstraction)
|
|
34
|
+
pnpm add @aastar/account
|
|
35
|
+
|
|
36
|
+
# Paymaster 與贊助邏輯
|
|
37
|
+
pnpm add @aastar/paymaster
|
|
38
|
+
|
|
39
|
+
# 代幣工具 (GToken, xPNTs, SBT)
|
|
40
|
+
pnpm add @aastar/tokens
|
|
41
|
+
|
|
42
|
+
# 身份與聲譽系統
|
|
43
|
+
pnpm add @aastar/identity
|
|
44
|
+
|
|
45
|
+
# React Hook 支持
|
|
46
|
+
pnpm add @aastar/dapp
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 同行依赖 (Peer Dependencies)
|
|
50
|
+
|
|
51
|
+
SDK 需要以下同行依赖:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pnpm add viem@^2.43.0
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## TypeScript 配置
|
|
58
|
+
|
|
59
|
+
为了获得最佳的 TypeScript 体验,请在 `tsconfig.json` 中添加以下设置:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"compilerOptions": {
|
|
64
|
+
"target": "ES2020",
|
|
65
|
+
"module": "ESNext",
|
|
66
|
+
"moduleResolution": "bundler",
|
|
67
|
+
"strict": true,
|
|
68
|
+
"esModuleInterop": true,
|
|
69
|
+
"skipLibCheck": true
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 环境配置
|
|
75
|
+
|
|
76
|
+
创建一个 `.env` 文件用于存储配置:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 网络 RPC 节点
|
|
80
|
+
RPC_URL=https://rpc.sepolia.org
|
|
81
|
+
|
|
82
|
+
# 你的私钥 (千万不要提交此文件!)
|
|
83
|
+
PRIVATE_KEY=0x...
|
|
84
|
+
|
|
85
|
+
# 合约地址 (可选,SDK 默认提供官方地址)
|
|
86
|
+
REGISTRY_ADDRESS=0x...
|
|
87
|
+
PAYMASTER_ADDRESS=0x...
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 验证安装
|
|
91
|
+
|
|
92
|
+
编写一段简单的代码验证安装是否成功:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import { getNetwork, CONTRACTS } from '@aastar/core';
|
|
96
|
+
|
|
97
|
+
const network = getNetwork('sepolia');
|
|
98
|
+
console.log('Network:', network.name);
|
|
99
|
+
console.log('Chain ID:', network.chainId);
|
|
100
|
+
console.log('Registry:', CONTRACTS.sepolia.registry);
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 下一步
|
|
104
|
+
|
|
105
|
+
- [快速开始](/guide/quick-start)
|
|
106
|
+
- [核心概念](/guide/concepts/account-abstraction)
|
|
107
|
+
- [API 参考](/api/)
|