@aastar/sdk 0.14.3 → 0.16.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +30 -0
- package/README.md +148 -19
- package/abis/BLSAggregator.json +13 -13
- package/abis/BLSValidator.json +13 -0
- package/abis/DVTValidator.json +13 -0
- package/abis/GToken.json +57 -26
- package/abis/GTokenStaking.json +13 -39
- package/abis/MySBT.json +0 -39
- package/abis/Paymaster.json +0 -13
- package/abis/PaymasterFactory.json +26 -39
- package/abis/PaymasterV4_2.json +68 -58
- package/abis/Registry.json +57 -16
- package/abis/ReputationSystem.json +182 -0
- package/abis/SuperPaymaster.json +169 -0
- package/abis/aPNTs.json +13 -26
- package/abis/xPNTsFactory.json +13 -26
- package/abis/xPNTsToken.json +13 -26
- package/config.anvil.json +1 -0
- package/config.sepolia.json +1 -0
- package/config.test.json +27 -0
- package/docs/ABI_Change_Tracking_Workflow.md +41 -0
- package/docs/ABI_MAINTENANCE_PLAN.md +132 -0
- package/docs/API_REFERENCE.md +169 -9
- package/docs/Configuration_Sync.md +47 -0
- package/docs/DEMO_REFACTOR_PLAN.md +289 -0
- package/docs/ENV_SEPOLIA_UPDATE.md +68 -0
- package/docs/Faucet_Gasless_Plan.md +56 -0
- package/docs/L2_BUSINESS_CLIENTS_PLAN.md +394 -0
- package/docs/L4_Manual_Test_CheatSheet.md +215 -0
- package/docs/SDK_ABI_COVERAGE.md +839 -0
- package/docs/SDK_COVERAGE_STRATEGY.md +397 -0
- package/docs/SDK_REGRESSION_AND_API_PLAN.md +98 -0
- package/docs/SDK_STAGE3_PLAN.md +151 -0
- package/docs/STAGE3.md +191 -0
- package/docs/TESTER_GUIDE_GASLESS.md +663 -0
- package/docs/Verifier_L4_Gasless_Plan.md +454 -0
- package/docs/api/@aastar/account.md +235 -0
- package/docs/api/@aastar/analytics.md +219 -0
- package/docs/api/@aastar/core.md +26830 -0
- package/docs/api/@aastar/dapp.md +130 -0
- package/docs/api/@aastar/identity.md +482 -0
- package/docs/api/@aastar/paymaster.md +1387 -0
- package/docs/api/@aastar/sdk/README.md +155 -0
- package/docs/api/@aastar/sdk/node.md +4044 -0
- package/docs/api/@aastar/tokens.md +1971 -0
- package/docs/api/README.md +8 -4
- package/docs/changelog.md +99 -0
- package/docs/examples/README.md +18 -0
- package/docs/guide/concepts/account-abstraction.md +95 -0
- package/docs/guide/concepts/rainbow-bridge.md +68 -0
- package/docs/guide/concepts/reputation.md +95 -0
- package/docs/guide/concepts/superpaymaster.md +141 -0
- package/docs/guide/use-cases/community-management.md +141 -0
- package/docs/guide/use-cases/gasless-transactions.md +71 -0
- package/docs/guide/use-cases/operator-staking.md +84 -0
- package/docs/guide/use-cases/yop.md +72 -0
- package/docs/refactor/2026-01-13-221242-trae-refactor.md +224 -0
- package/docs/refactor/2026-01-13-audit-analysis.md +96 -0
- package/docs/refactor/2026-01-13-audit-report-v0.16.2.md +76 -0
- package/docs/refactor/2026-01-13-audit-report-v0.17.0.md +74 -0
- package/docs/refactor/2026-01-13-cursor-refactor.md +511 -0
- package/docs/refactor/2026-01-13-refactor-plan.md +88 -0
- package/docs/refactor/2026-01-13-refactor-response-plan.md +77 -0
- package/docs/refactor/2026-01-13-refactor-review.md +39 -0
- package/docs/refactor/2026-01-13-sdk-enhancement-plan.md +120 -0
- package/docs/refactor/2026-01-14-audit-response.md +242 -0
- package/docs/refactor/2026-01-14-audit-summary.md +133 -0
- package/docs/refactor/cursor-2026-01-13-14-00-audit-report.md +267 -0
- package/env.template +32 -0
- package/examples/l1-api-demo.ts +184 -0
- package/examples/l2-clients-demo.ts +138 -0
- package/examples/l3-user-onboarding.ts +74 -0
- package/examples/prepare-gasless.ts +89 -0
- package/examples/simple-gasless-demo.ts +80 -0
- package/examples/simple-superpaymaster-demo.ts +96 -0
- package/l4-setup.sh +11 -0
- package/package.json +12 -8
- package/packages/account/package.json +6 -3
- package/packages/account/src/accounts/simple.test.ts +93 -0
- package/packages/account/src/eoa.test.ts +37 -0
- package/packages/account/src/eoa.ts +4 -2
- package/packages/account/src/index.test.ts +34 -0
- package/packages/account/tsconfig.json +0 -1
- package/packages/analytics/package.json +12 -5
- package/packages/analytics/tsconfig.json +0 -5
- package/packages/core/package.json +16 -6
- package/packages/core/scripts/audit-abi-coverage.ts +165 -0
- package/packages/core/scripts/debug-regex.ts +36 -0
- package/packages/core/src/abis/.abi-hashes.json +26 -0
- package/packages/core/src/abis/BLSAggregator.json +686 -572
- package/packages/core/src/abis/BLSValidator.json +42 -26
- package/packages/core/src/abis/DVTValidator.json +368 -370
- package/packages/core/src/abis/EntryPoint.json +1382 -1379
- package/packages/core/src/abis/GToken.json +513 -523
- package/packages/core/src/abis/GTokenStaking.json +949 -931
- package/packages/core/src/abis/MySBT.json +1518 -1586
- package/packages/core/src/abis/Paymaster.json +1143 -1205
- package/packages/core/src/abis/PaymasterFactory.json +640 -650
- package/packages/core/src/abis/Registry.json +1942 -1636
- package/packages/core/src/abis/ReputationSystem.json +699 -477
- package/packages/core/src/abis/SimpleAccount.json +560 -625
- package/packages/core/src/abis/SimpleAccountFactory.json +111 -108
- package/packages/core/src/abis/SuperPaymaster.json +1781 -1399
- package/packages/core/src/abis/abi.config.json +24 -0
- package/packages/core/src/abis/index.ts +74 -38
- package/packages/core/src/abis/xPNTsFactory.json +718 -728
- package/packages/core/src/abis/xPNTsToken.json +1280 -1173
- package/packages/core/src/actions/StateValidator.test.ts +175 -0
- package/packages/{sdk/src/utils/validation.ts → core/src/actions/StateValidator.ts} +22 -125
- package/packages/core/src/actions/account.test.ts +155 -0
- package/packages/core/src/actions/account.ts +179 -0
- package/packages/core/src/actions/aggregator.test.ts +88 -0
- package/packages/core/src/actions/dvt.test.ts +124 -0
- package/packages/core/src/actions/entryPoint.test.ts +176 -0
- package/packages/core/src/actions/entryPoint.ts +266 -0
- package/packages/core/src/actions/factory.test.ts +250 -0
- package/packages/core/src/actions/factory.ts +586 -14
- package/packages/core/src/actions/faucet.test.ts +202 -0
- package/packages/core/src/actions/faucet.ts +421 -0
- package/packages/core/src/actions/gtokenExtended.test.ts +162 -0
- package/packages/core/src/actions/gtokenExtended.ts +153 -0
- package/packages/core/src/actions/index.ts +8 -0
- package/packages/core/src/actions/paymasterV4.test.ts +209 -0
- package/packages/core/src/actions/paymasterV4.ts +330 -138
- package/packages/core/src/actions/registry.test.ts +443 -0
- package/packages/core/src/actions/registry.ts +768 -28
- package/packages/core/src/actions/reputation.test.ts +225 -0
- package/packages/core/src/actions/reputation.ts +351 -0
- package/packages/core/src/actions/sbt.test.ts +322 -0
- package/packages/core/src/actions/sbt.ts +614 -30
- package/packages/core/src/actions/staking.test.ts +273 -0
- package/packages/core/src/actions/staking.ts +350 -8
- package/packages/core/src/actions/superPaymaster.test.ts +356 -0
- package/packages/core/src/actions/superPaymaster.ts +746 -35
- package/packages/core/src/actions/tokens.test.ts +60 -0
- package/packages/core/src/actions/tokens.ts +482 -20
- package/packages/core/src/actions/validators.test.ts +239 -0
- package/packages/core/src/actions/validators.ts +590 -0
- package/packages/core/src/clients/BaseClient.ts +78 -0
- package/packages/core/src/clients/types.ts +69 -0
- package/packages/core/src/clients.ts +1 -1
- package/packages/core/src/communities.ts +2 -2
- package/packages/core/src/config/ContractConfigManager.ts +63 -0
- package/packages/core/src/constants.ts +64 -0
- package/packages/core/src/contract-addresses.ts +42 -18
- package/packages/core/src/contracts.test.ts +58 -0
- package/packages/core/src/contracts.ts +2 -2
- package/packages/core/src/index.ts +4 -1
- package/packages/core/src/requirementChecker.test.ts +71 -0
- package/packages/core/src/requirementChecker.ts +1 -39
- package/packages/core/src/roles.test.ts +34 -0
- package/packages/core/src/roles.ts +61 -50
- package/packages/core/src/utils/validation.test.ts +50 -0
- package/packages/core/src/utils/validation.ts +66 -0
- package/packages/core/tsconfig.json +2 -2
- package/packages/core/vitest.config.ts +14 -0
- package/packages/dapp/package.json +6 -3
- package/packages/dapp/src/ui/hooks/useCreditScore.ts +1 -1
- package/packages/dapp/tsconfig.json +0 -1
- package/packages/identity/package.json +6 -3
- package/packages/identity/src/index.ts +49 -17
- package/packages/identity/tsconfig.json +0 -1
- package/packages/paymaster/package.json +6 -3
- package/packages/paymaster/src/SuperPaymaster/index.ts +2 -2
- package/packages/paymaster/src/V4/PaymasterClient.test.ts +114 -0
- package/packages/paymaster/src/V4/PaymasterClient.ts +385 -0
- package/packages/paymaster/src/V4/PaymasterOperator.test.ts +80 -0
- package/packages/paymaster/src/V4/PaymasterOperator.ts +282 -0
- package/packages/paymaster/src/V4/PaymasterUtils.test.ts +54 -0
- package/packages/paymaster/src/V4/PaymasterUtils.ts +185 -0
- package/packages/paymaster/src/V4/SuperPaymasterClient.test.ts +79 -0
- package/packages/paymaster/src/V4/SuperPaymasterClient.ts +123 -0
- package/packages/paymaster/src/V4/index.ts +4 -123
- package/packages/paymaster/tsconfig.json +0 -1
- package/packages/sdk/aastar/tsconfig.json +0 -1
- package/packages/sdk/coverage_output.txt +393 -0
- package/packages/sdk/coverage_output_final.txt +739 -0
- package/packages/sdk/coverage_output_final_v2.txt +722 -0
- package/packages/sdk/coverage_output_final_v3.txt +722 -0
- package/packages/sdk/package.json +14 -2
- package/packages/sdk/src/clients/ExperimentClient.test.ts +65 -0
- package/packages/sdk/src/clients/ExperimentClient.ts +80 -0
- package/packages/sdk/src/clients/admin.test.ts +98 -0
- package/packages/sdk/src/clients/admin.ts +108 -8
- package/packages/sdk/src/clients/clients.test.ts +104 -0
- package/packages/sdk/src/clients/community.test.ts +118 -0
- package/packages/sdk/src/clients/community.ts +175 -241
- package/packages/sdk/src/clients/endUser.test.ts +221 -0
- package/packages/sdk/src/clients/endUser.ts +430 -52
- package/packages/sdk/src/clients/operator.test.ts +162 -0
- package/packages/sdk/src/clients/operator.ts +168 -90
- package/packages/sdk/src/errors/AAStarError.test.ts +92 -0
- package/packages/sdk/src/errors/AAStarError.ts +70 -0
- package/packages/sdk/src/errors/decoder.test.ts +107 -0
- package/packages/sdk/src/errors/decoder.ts +84 -41
- package/packages/sdk/src/index.ts +11 -8
- package/packages/sdk/src/node/index.ts +8 -0
- package/packages/sdk/src/types/result.ts +29 -0
- package/packages/sdk/src/utils/errorHandler.test.ts +102 -0
- package/packages/sdk/src/utils/eventDecoder.test.ts +56 -0
- package/packages/sdk/src/utils/eventDecoder.ts +66 -0
- package/packages/sdk/src/utils/funding.test.ts +117 -0
- package/packages/sdk/src/utils/keys.test.ts +105 -0
- package/packages/sdk/src/utils/keys.ts +15 -0
- package/packages/sdk/src/utils/roleData.test.ts +85 -0
- package/packages/sdk/src/utils/roleData.ts +15 -26
- package/packages/sdk/src/utils/testScenarios.test.ts +79 -0
- package/packages/sdk/src/utils/testScenarios.ts +128 -0
- package/packages/sdk/src/utils/userOp.test.ts +190 -0
- package/packages/sdk/src/utils/userOp.ts +265 -0
- package/packages/sdk/tests/scenarios/01_onboard_community.ts +62 -0
- package/packages/sdk/tests/scenarios/02_onboard_operator.ts +109 -0
- package/packages/sdk/tests/scenarios/03_onboard_user.ts +53 -0
- package/packages/sdk/tests/scenarios/04_gasless_tx_flow.ts +68 -0
- package/packages/sdk/tests/scenarios/check_entrypoint.ts +19 -0
- package/packages/sdk/tests/scenarios/check_initialization.ts +65 -0
- package/packages/sdk/tests/scenarios/debug_addresses.ts +26 -0
- package/packages/sdk/tests/scenarios/diagnose_scenario4.ts +55 -0
- package/packages/sdk/tests/scenarios/setup.ts +33 -0
- package/packages/sdk/tests/scenarios/test_entrypoint_nonce.ts +46 -0
- package/packages/sdk/tsconfig.json +0 -1
- package/packages/tokens/package.json +6 -3
- package/packages/tokens/src/index.ts +92 -64
- package/packages/tokens/tsconfig.json +0 -1
- package/run_l4_gasless_regression.sh +79 -0
- package/run_sdk_regression.sh +200 -175
- package/scripts/00_utils.ts +1 -1
- package/scripts/01_prepare_all.ts +149 -198
- package/scripts/02_test_eoa.ts +27 -24
- package/scripts/03_test_standard_aa.ts +48 -153
- package/scripts/04_test_paymaster_v4.ts +41 -198
- package/scripts/05_test_superpaymaster.ts +40 -362
- package/scripts/09_local_test_community_lifecycle.ts +4 -3
- package/scripts/11_test_core_flows_full.ts +75 -197
- package/scripts/15_test_bls_full.ts +25 -2
- package/scripts/15_test_dvt_bls_full.ts +11 -4
- package/scripts/18_test_lifecycle_completion.ts +2 -2
- package/scripts/19_sdk_experiment_runner.ts +41 -16
- package/scripts/20_sdk_full_capability.ts +75 -77
- package/scripts/99_bug_hunting_fast.ts +55 -172
- package/scripts/analyze_abi_coverage.ts +169 -0
- package/scripts/check-admin.ts +95 -0
- package/scripts/check-jason-status.ts +184 -0
- package/scripts/check-roles.ts +36 -0
- package/scripts/clear-nonce.ts +47 -0
- package/scripts/complete-jack-superpaymaster.ts +171 -0
- package/scripts/debug-addr.ts +43 -0
- package/scripts/debug-community-registration.ts +92 -0
- package/scripts/debug-deploy-v4.ts +116 -0
- package/scripts/debug-paymaster.ts +127 -0
- package/scripts/debug-register-role.ts +101 -0
- package/scripts/debug-version.ts +71 -0
- package/scripts/deploy-sync.ts +104 -0
- package/scripts/deprecated/check_aa_entrypoint.ts +29 -0
- package/scripts/deprecated/check_paymaster_deposits.ts +45 -0
- package/scripts/deprecated/debug_aoa_function.ts +28 -0
- package/scripts/deprecated/debug_aoa_issue.ts +16 -0
- package/scripts/deprecated/debug_pimlico_aa23.ts +40 -0
- package/scripts/deprecated/debug_summary.ts +34 -0
- package/scripts/deprecated/deploy_v07_aa.ts +99 -0
- package/scripts/deprecated/fix_all_issues.ts +61 -0
- package/scripts/deprecated/fund_bpnts.ts +52 -0
- package/scripts/deprecated/get_factory_addresses.ts +28 -0
- package/scripts/deprecated/recheck_pim.ts +34 -0
- package/{extract_abis.sh → scripts/dev_tools/extract_abis.sh} +13 -2
- package/scripts/extract-docs.sh +78 -9
- package/scripts/fund-jack.ts +38 -0
- package/scripts/inspect-anni-token.ts +116 -0
- package/scripts/inspect-factory.ts +83 -0
- package/scripts/l4-paymasterv4-transfer-test.ts +228 -0
- package/scripts/l4-setup.ts +453 -0
- package/scripts/l4-state.json +80 -0
- package/scripts/phase1_verify_contracts.ts +207 -0
- package/scripts/pre_test_sync.ts +83 -0
- package/scripts/prepare_sepolia_resources.ts +154 -0
- package/scripts/query-jack-token.ts +22 -0
- package/scripts/quick_setup_account.ts +80 -0
- package/scripts/run_l4_gasless_regression.sh +32 -0
- package/scripts/run_sdk_experiment.sh +13 -0
- package/scripts/run_sdk_regression-v2.sh +38 -0
- package/scripts/sdk_regression_v2.ts +162 -0
- package/scripts/setup-bbq-community.ts +187 -0
- package/scripts/setup-dancing-community.ts +223 -0
- package/scripts/setup_test_accounts.ts +88 -0
- package/scripts/setup_test_environment.ts +147 -0
- package/scripts/sync_anvil_config.cjs +44 -0
- package/scripts/sync_contract_addresses.ts +186 -0
- package/scripts/sync_sepolia_config.cjs +90 -0
- package/scripts/sync_sepolia_config.mjs +74 -0
- package/scripts/test-brown-v4-deploy.ts +90 -0
- package/scripts/test-faucet-and-gasless.ts +170 -0
- package/scripts/test-jack-gasless.ts +119 -0
- package/scripts/test-jack-registration.ts +133 -0
- package/scripts/test-jack-superpaymaster-api.ts +112 -0
- package/scripts/test-kms-gasless.ts +138 -0
- package/scripts/test_groups.ts +63 -192
- package/scripts/test_new_sdk_apis_sepolia.ts +78 -0
- package/scripts/update_env_from_config.ts +83 -0
- package/scripts/v2_regression/00_validate_env.ts +28 -4
- package/scripts/v2_regression/02_operator_onboarding.ts +15 -141
- package/scripts/v2_regression/03_community_registry.ts +23 -57
- package/scripts/v2_regression/04_enduser_flow.ts +15 -48
- package/scripts/verify-tx-status.ts +81 -0
- package/scripts/verify_onchain_milestone.ts +114 -0
- package/scripts/verify_phase1.ts +66 -0
- package/scripts/verify_phase2.ts +66 -0
- package/sdk_experiment_data.csv +2 -0
- package/simple-test-paymaster.sh +2 -0
- package/simple-test-superpaymaster.sh +1 -0
- package/tests/l1-regression.test.ts +458 -0
- package/tests/l4-test-anni-gasless.ts +105 -0
- package/tests/l4-test-jason1-gasless.ts +150 -0
- package/tests/l4-test-jason2-gasless.ts +174 -0
- package/tests/l4-test-pmv4-deposit.ts +111 -0
- package/tests/l4-test-pmv4-gasless.ts +166 -0
- package/tests/l4-test-pmv4-submit.ts +223 -0
- package/tests/regression/README.md +168 -0
- package/tests/regression/config.ts +215 -0
- package/tests/regression/display-versions.ts +85 -0
- package/tests/regression/index.ts +67 -0
- package/tests/regression/l1-tests.ts +267 -0
- package/tests/regression/l2-tests.ts +171 -0
- package/tests/regression/l3-tests.ts +125 -0
- package/tests/regression/l4-gasless.ts +897 -0
- package/tests/regression/l4-runner.ts +52 -0
- package/tests/reports/phase1_contract_verification.md +45 -0
- package/tests/utils/contractVerifier.ts +237 -0
- package/tests/utils/userOpHelper.ts +194 -0
- package/tsconfig.json +32 -6
- package/typedoc.json +39 -5
- package/vitest.config.ts +16 -0
- package/.eslintrc.js +0 -28
- package/docs/STAGE_3_SCENARIO_EXP_PLAN.md +0 -77
- package/docs/api/@aastar/account/README.md +0 -15
- package/docs/api/@aastar/account/classes/UserOpClient.md +0 -87
- package/docs/api/@aastar/account/functions/createEOAWalletClient.md +0 -21
- package/docs/api/@aastar/account/functions/getUserOpHash.md +0 -23
- package/docs/api/@aastar/account/functions/packUserOpLimits.md +0 -19
- package/docs/api/@aastar/account/functions/toSimpleSmartAccount.md +0 -83
- package/docs/api/@aastar/account/type-aliases/EOAWalletClient.md +0 -37
- package/docs/api/@aastar/account/type-aliases/SimpleSmartAccount.md +0 -39
- package/docs/api/@aastar/core/README.md +0 -136
- package/docs/api/@aastar/core/classes/BLSSigner.md +0 -147
- package/docs/api/@aastar/core/enumerations/NodeType.md +0 -33
- package/docs/api/@aastar/core/functions/aggregatorActions.md +0 -2714
- package/docs/api/@aastar/core/functions/createAAStarPublicClient.md +0 -3105
- package/docs/api/@aastar/core/functions/dvtActions.md +0 -2714
- package/docs/api/@aastar/core/functions/factoryActions.md +0 -2714
- package/docs/api/@aastar/core/functions/getAddressUrl.md +0 -32
- package/docs/api/@aastar/core/functions/getAllCommunityConfigs.md +0 -9
- package/docs/api/@aastar/core/functions/getAllV2Contracts.md +0 -20
- package/docs/api/@aastar/core/functions/getBlockExplorer.md +0 -26
- package/docs/api/@aastar/core/functions/getChainId.md +0 -26
- package/docs/api/@aastar/core/functions/getCommunities.md +0 -76
- package/docs/api/@aastar/core/functions/getCommunity.md +0 -32
- package/docs/api/@aastar/core/functions/getCommunityConfig.md +0 -15
- package/docs/api/@aastar/core/functions/getContract.md +0 -37
- package/docs/api/@aastar/core/functions/getContractNetworks.md +0 -18
- package/docs/api/@aastar/core/functions/getContracts.md +0 -178
- package/docs/api/@aastar/core/functions/getCoreContracts.md +0 -55
- package/docs/api/@aastar/core/functions/getDeploymentDate.md +0 -32
- package/docs/api/@aastar/core/functions/getEntryPoint.md +0 -25
- package/docs/api/@aastar/core/functions/getNetwork.md +0 -26
- package/docs/api/@aastar/core/functions/getPaymasterV4_1.md +0 -25
- package/docs/api/@aastar/core/functions/getRpcUrl.md +0 -25
- package/docs/api/@aastar/core/functions/getSimpleAccountFactory.md +0 -25
- package/docs/api/@aastar/core/functions/getSuperPaymasterV2.md +0 -25
- package/docs/api/@aastar/core/functions/getTestAccounts.md +0 -30
- package/docs/api/@aastar/core/functions/getTestTokenContracts.md +0 -38
- package/docs/api/@aastar/core/functions/getTokenContracts.md +0 -31
- package/docs/api/@aastar/core/functions/getTxUrl.md +0 -32
- package/docs/api/@aastar/core/functions/getV2ContractByAddress.md +0 -28
- package/docs/api/@aastar/core/functions/getV2ContractByName.md +0 -28
- package/docs/api/@aastar/core/functions/getV2ContractsByDate.md +0 -26
- package/docs/api/@aastar/core/functions/isContractNetworkSupported.md +0 -27
- package/docs/api/@aastar/core/functions/isRegisteredCommunity.md +0 -15
- package/docs/api/@aastar/core/functions/isV2Contract.md +0 -27
- package/docs/api/@aastar/core/functions/paymasterV4Actions.md +0 -2719
- package/docs/api/@aastar/core/functions/registryActions.md +0 -2720
- package/docs/api/@aastar/core/functions/reputationActions.md +0 -2720
- package/docs/api/@aastar/core/functions/sbtActions.md +0 -2720
- package/docs/api/@aastar/core/functions/stakingActions.md +0 -2720
- package/docs/api/@aastar/core/functions/superPaymasterActions.md +0 -2720
- package/docs/api/@aastar/core/functions/tokenActions.md +0 -2714
- package/docs/api/@aastar/core/interfaces/CommunityConfig.md +0 -81
- package/docs/api/@aastar/core/interfaces/ContractVersion.md +0 -63
- package/docs/api/@aastar/core/type-aliases/AggregatorActions.md +0 -79
- package/docs/api/@aastar/core/type-aliases/ContractCategory.md +0 -5
- package/docs/api/@aastar/core/type-aliases/ContractNetwork.md +0 -5
- package/docs/api/@aastar/core/type-aliases/DVTActions.md +0 -139
- package/docs/api/@aastar/core/type-aliases/FactoryActions.md +0 -99
- package/docs/api/@aastar/core/type-aliases/NetworkContracts.md +0 -5
- package/docs/api/@aastar/core/type-aliases/PaymasterV4Actions.md +0 -422
- package/docs/api/@aastar/core/type-aliases/RegistryActions.md +0 -263
- package/docs/api/@aastar/core/type-aliases/ReputationActions.md +0 -47
- package/docs/api/@aastar/core/type-aliases/RoleConfig.md +0 -83
- package/docs/api/@aastar/core/type-aliases/SBTActions.md +0 -203
- package/docs/api/@aastar/core/type-aliases/StakingActions.md +0 -179
- package/docs/api/@aastar/core/type-aliases/SuperPaymasterActions.md +0 -219
- package/docs/api/@aastar/core/type-aliases/SupportedNetwork.md +0 -3
- package/docs/api/@aastar/core/type-aliases/TokenActions.md +0 -151
- package/docs/api/@aastar/core/variables/AASTAR_COMMUNITY.md +0 -8
- package/docs/api/@aastar/core/variables/ALL_ADDRESSES.md +0 -71
- package/docs/api/@aastar/core/variables/BLSAggregatorABI.md +0 -3
- package/docs/api/@aastar/core/variables/BLSHelpers.md +0 -91
- package/docs/api/@aastar/core/variables/BPS_DENOMINATOR.md +0 -5
- package/docs/api/@aastar/core/variables/BRANDING.md +0 -67
- package/docs/api/@aastar/core/variables/BREAD_COMMUNITY.md +0 -8
- package/docs/api/@aastar/core/variables/COMMUNITIES.md +0 -5
- package/docs/api/@aastar/core/variables/COMMUNITY_OWNERS.md +0 -15
- package/docs/api/@aastar/core/variables/CONTRACTS.md +0 -163
- package/docs/api/@aastar/core/variables/CONTRACT_METADATA.md +0 -67
- package/docs/api/@aastar/core/variables/CORE_ADDRESSES.md +0 -35
- package/docs/api/@aastar/core/variables/DEFAULT_APNTS_PRICE_USD.md +0 -5
- package/docs/api/@aastar/core/variables/DEFAULT_GAS_TOKEN_MINT_AMOUNT.md +0 -5
- package/docs/api/@aastar/core/variables/DEFAULT_USDT_MINT_AMOUNT.md +0 -5
- package/docs/api/@aastar/core/variables/DVTValidatorABI.md +0 -3
- package/docs/api/@aastar/core/variables/EntryPointABI.md +0 -3
- package/docs/api/@aastar/core/variables/FAUCET_API_URL.md +0 -5
- package/docs/api/@aastar/core/variables/GTokenABI.md +0 -3
- package/docs/api/@aastar/core/variables/GTokenStakingABI.md +0 -3
- package/docs/api/@aastar/core/variables/LINKS.md +0 -33
- package/docs/api/@aastar/core/variables/MAX_SERVICE_FEE.md +0 -5
- package/docs/api/@aastar/core/variables/MONITORING_ADDRESSES.md +0 -15
- package/docs/api/@aastar/core/variables/MySBTABI.md +0 -3
- package/docs/api/@aastar/core/variables/NETWORKS.md +0 -79
- package/docs/api/@aastar/core/variables/NODE_STAKE_AMOUNTS.md +0 -31
- package/docs/api/@aastar/core/variables/OFFICIAL_ADDRESSES.md +0 -11
- package/docs/api/@aastar/core/variables/PAYMASTER_ADDRESSES.md +0 -15
- package/docs/api/@aastar/core/variables/PaymasterABI.md +0 -3
- package/docs/api/@aastar/core/variables/PaymasterFactoryABI.md +0 -3
- package/docs/api/@aastar/core/variables/PaymasterV4ABI.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_ANODE.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_COMMUNITY.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_ENDUSER.md +0 -5
- package/docs/api/@aastar/core/variables/ROLE_KMS.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_AOA.md +0 -3
- package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_SUPER.md +0 -3
- package/docs/api/@aastar/core/variables/RegistryABI.md +0 -3
- package/docs/api/@aastar/core/variables/ReputationSystemABI.md +0 -3
- package/docs/api/@aastar/core/variables/ReputationSystemV3ABI.md +0 -3
- package/docs/api/@aastar/core/variables/SEPOLIA_CONTRACTS.md +0 -159
- package/docs/api/@aastar/core/variables/SEPOLIA_V2_VERSIONS.md +0 -67
- package/docs/api/@aastar/core/variables/SERVICE_FEE_RATE.md +0 -5
- package/docs/api/@aastar/core/variables/Simple7702AccountABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountFactoryABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountFactoryV08ABI.md +0 -3
- package/docs/api/@aastar/core/variables/SimpleAccountV08ABI.md +0 -3
- package/docs/api/@aastar/core/variables/SuperPaymasterABI.md +0 -3
- package/docs/api/@aastar/core/variables/SuperPaymasterV3ABI.md +0 -3
- package/docs/api/@aastar/core/variables/TEST_ACCOUNT_ADDRESSES.md +0 -11
- package/docs/api/@aastar/core/variables/TEST_ACCOUNT_POOL_SIZE.md +0 -5
- package/docs/api/@aastar/core/variables/TEST_COMMUNITIES.md +0 -19
- package/docs/api/@aastar/core/variables/TEST_TOKEN_ADDRESSES.md +0 -19
- package/docs/api/@aastar/core/variables/TOKEN_ADDRESSES.md +0 -11
- package/docs/api/@aastar/core/variables/V2_SUMMARY.md +0 -39
- package/docs/api/@aastar/core/variables/xPNTsFactoryABI.md +0 -3
- package/docs/api/@aastar/core/variables/xPNTsTokenABI.md +0 -3
- package/docs/api/@aastar/paymaster/README.md +0 -14
- package/docs/api/@aastar/paymaster/classes/SuperPaymasterClient.md +0 -163
- package/docs/api/@aastar/paymaster/functions/checkEligibility.md +0 -28
- package/docs/api/@aastar/paymaster/functions/getPaymasterV4Middleware.md +0 -32
- package/docs/api/@aastar/paymaster/functions/getSuperPaymasterMiddleware.md +0 -32
- package/docs/api/@aastar/paymaster/type-aliases/PaymasterConfig.md +0 -35
- package/docs/api/@aastar/paymaster/type-aliases/PaymasterV4MiddlewareConfig.md +0 -35
- package/docs/api/@aastar/tokens/README.md +0 -3
- package/docs/api/@aastar/tokens/classes/FinanceClient.md +0 -8653
- package/ext/permissionless.js/.changeset/README.md +0 -8
- package/ext/permissionless.js/.changeset/config.json +0 -11
- package/ext/permissionless.js/.env-example +0 -2
- package/ext/permissionless.js/.github/actions/install-dependencies/action.yml +0 -17
- package/ext/permissionless.js/.github/dependabot.yaml +0 -10
- package/ext/permissionless.js/.github/workflows/canary.yml +0 -49
- package/ext/permissionless.js/.github/workflows/on-pull-request.yml +0 -61
- package/ext/permissionless.js/.github/workflows/on-push-to-main.yml +0 -59
- package/ext/permissionless.js/.github/workflows/prune-tags.yml +0 -92
- package/ext/permissionless.js/.github/workflows/verify.yml +0 -114
- package/ext/permissionless.js/.size-limit.json +0 -13
- package/ext/permissionless.js/LICENSE +0 -21
- package/ext/permissionless.js/assets/banner.png +0 -0
- package/ext/permissionless.js/biome.json +0 -46
- package/ext/permissionless.js/bun.lock +0 -2340
- package/ext/permissionless.js/bun.lockb +0 -0
- package/ext/permissionless.js/package.json +0 -82
- package/ext/permissionless.js/packages/mock-paymaster/CHANGELOG.md +0 -31
- package/ext/permissionless.js/packages/mock-paymaster/constants.ts +0 -84
- package/ext/permissionless.js/packages/mock-paymaster/helpers/abi.ts +0 -1048
- package/ext/permissionless.js/packages/mock-paymaster/helpers/erc20-utils.ts +0 -105
- package/ext/permissionless.js/packages/mock-paymaster/helpers/schema.ts +0 -307
- package/ext/permissionless.js/packages/mock-paymaster/helpers/utils.ts +0 -78
- package/ext/permissionless.js/packages/mock-paymaster/index.ts +0 -63
- package/ext/permissionless.js/packages/mock-paymaster/package.json +0 -33
- package/ext/permissionless.js/packages/mock-paymaster/relay.ts +0 -424
- package/ext/permissionless.js/packages/mock-paymaster/setup.ts +0 -163
- package/ext/permissionless.js/packages/mock-paymaster/singletonPaymasters.ts +0 -230
- package/ext/permissionless.js/packages/permissionless/CHANGELOG.md +0 -893
- package/ext/permissionless.js/packages/permissionless/README.md +0 -122
- package/ext/permissionless.js/packages/permissionless/accounts/biconomy/abi/BiconomySmartAccountAbi.ts +0 -128
- package/ext/permissionless.js/packages/permissionless/accounts/biconomy/toBiconomySmartAccount.ts +0 -374
- package/ext/permissionless.js/packages/permissionless/accounts/decodeCalls.test.ts +0 -505
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/abi/EtherspotBootstrapAbi.ts +0 -94
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/constants.ts +0 -27
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/toEtherspotSmartAccount.ts +0 -369
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getInitMSAData.ts +0 -56
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getNonceKey.ts +0 -21
- package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/wrapMessageHash.ts +0 -43
- package/ext/permissionless.js/packages/permissionless/accounts/index.ts +0 -86
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelAccountAbi.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3AccountAbi.ts +0 -813
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3FactoryAbi.ts +0 -12
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3MetaFactoryAbi.ts +0 -17
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/constants.ts +0 -14
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/to7702KernelSmartAccount.ts +0 -63
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/toEcdsaKernelSmartAccount.ts +0 -62
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/toKernelSmartAccount.ts +0 -984
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/decodeCallData.ts +0 -43
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/encodeCallData.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/getNonceKey.ts +0 -33
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isKernelV2.ts +0 -6
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isWebAuthnAccount.ts +0 -8
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signMessage.ts +0 -115
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signTypedData.ts +0 -97
- package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/wrapMessageHash.ts +0 -44
- package/ext/permissionless.js/packages/permissionless/accounts/light/toLightSmartAccount.ts +0 -496
- package/ext/permissionless.js/packages/permissionless/accounts/nexus/toNexusSmartAccount.ts +0 -351
- package/ext/permissionless.js/packages/permissionless/accounts/safe/index.ts +0 -14
- package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.test.ts +0 -275
- package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.ts +0 -316
- package/ext/permissionless.js/packages/permissionless/accounts/safe/toSafeSmartAccount.ts +0 -1980
- package/ext/permissionless.js/packages/permissionless/accounts/simple/to7702SimpleSmartAccount.ts +0 -51
- package/ext/permissionless.js/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts +0 -585
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/toThirdwebSmartAccount.ts +0 -221
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/decodeCallData.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/encodeCallData.ts +0 -81
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getAccountAddress.ts +0 -48
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getFactoryData.ts +0 -40
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signMessage.ts +0 -33
- package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signTypedData.ts +0 -67
- package/ext/permissionless.js/packages/permissionless/accounts/trust/toTrustSmartAccount.ts +0 -232
- package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/decodeCallData.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/encodeCallData.ts +0 -81
- package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/getFactoryData.ts +0 -51
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.test.ts +0 -39
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.ts +0 -93
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.test.ts +0 -216
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.ts +0 -99
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.test.ts +0 -237
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.ts +0 -96
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.test.ts +0 -72
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.ts +0 -132
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.test.ts +0 -108
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.ts +0 -158
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.test.ts +0 -35
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.ts +0 -120
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.test.ts +0 -129
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.ts +0 -98
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.test.ts +0 -117
- package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.ts +0 -87
- package/ext/permissionless.js/packages/permissionless/actions/erc7579.ts +0 -103
- package/ext/permissionless.js/packages/permissionless/actions/etherspot/getUserOperationGasPrice.ts +0 -32
- package/ext/permissionless.js/packages/permissionless/actions/etherspot.ts +0 -4
- package/ext/permissionless.js/packages/permissionless/actions/index.ts +0 -9
- package/ext/permissionless.js/packages/permissionless/actions/package.json +0 -6
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/getCredentials.ts +0 -47
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startAuthentication.ts +0 -39
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startRegistration.ts +0 -126
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyAuthentication.ts +0 -142
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyRegistration.ts +0 -132
- package/ext/permissionless.js/packages/permissionless/actions/passkeyServer.ts +0 -17
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/estimateErc20PaymasterCost.ts +0 -102
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.test.ts +0 -90
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.ts +0 -77
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.test.ts +0 -82
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.ts +0 -67
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.test.ts +0 -199
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.ts +0 -49
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/sendCompressedUserOperation.ts +0 -59
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.test.ts +0 -236
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.ts +0 -151
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.test.ts +0 -153
- package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.ts +0 -74
- package/ext/permissionless.js/packages/permissionless/actions/pimlico.ts +0 -38
- package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.test.ts +0 -96
- package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.ts +0 -75
- package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.test.ts +0 -154
- package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.ts +0 -129
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.test.ts +0 -255
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.ts +0 -91
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.test.ts +0 -571
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.ts +0 -38
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.test.ts +0 -416
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.ts +0 -133
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.test.ts +0 -219
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.ts +0 -73
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.test.ts +0 -228
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.ts +0 -157
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount/writeContract.ts +0 -70
- package/ext/permissionless.js/packages/permissionless/actions/smartAccount.ts +0 -7
- package/ext/permissionless.js/packages/permissionless/clients/createSmartAccountClient.ts +0 -181
- package/ext/permissionless.js/packages/permissionless/clients/decorators/passkeyServer.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/clients/decorators/pimlico.ts +0 -189
- package/ext/permissionless.js/packages/permissionless/clients/decorators/smartAccount.ts +0 -350
- package/ext/permissionless.js/packages/permissionless/clients/index.ts +0 -2
- package/ext/permissionless.js/packages/permissionless/clients/passkeyServer.ts +0 -69
- package/ext/permissionless.js/packages/permissionless/clients/pimlico.ts +0 -124
- package/ext/permissionless.js/packages/permissionless/errors/index.ts +0 -17
- package/ext/permissionless.js/packages/permissionless/experimental/pimlico/index.ts +0 -1
- package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.test.ts +0 -523
- package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts +0 -369
- package/ext/permissionless.js/packages/permissionless/index.ts +0 -3
- package/ext/permissionless.js/packages/permissionless/package.json +0 -102
- package/ext/permissionless.js/packages/permissionless/types/etherspot.ts +0 -12
- package/ext/permissionless.js/packages/permissionless/types/package.json +0 -6
- package/ext/permissionless.js/packages/permissionless/types/passkeyServer.ts +0 -125
- package/ext/permissionless.js/packages/permissionless/types/pimlico.ts +0 -151
- package/ext/permissionless.js/packages/permissionless/utils/decode7579Calls.ts +0 -133
- package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.test.ts +0 -40
- package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.ts +0 -10
- package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.test.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.ts +0 -35
- package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.test.ts +0 -69
- package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.ts +0 -114
- package/ext/permissionless.js/packages/permissionless/utils/encodeInstallModule.ts +0 -91
- package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.test.ts +0 -38
- package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.ts +0 -8
- package/ext/permissionless.js/packages/permissionless/utils/encodeUninstallModule.ts +0 -88
- package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.test.ts +0 -59
- package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.ts +0 -66
- package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.test.ts +0 -57
- package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.ts +0 -49
- package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.test.ts +0 -31
- package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.ts +0 -13
- package/ext/permissionless.js/packages/permissionless/utils/getEstimationCallData.ts +0 -297
- package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.test.ts +0 -204
- package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.ts +0 -122
- package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.test.ts +0 -90
- package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.ts +0 -56
- package/ext/permissionless.js/packages/permissionless/utils/index.ts +0 -43
- package/ext/permissionless.js/packages/permissionless/utils/isSmartAccountDeployed.ts +0 -13
- package/ext/permissionless.js/packages/permissionless/utils/ox.ts +0 -48
- package/ext/permissionless.js/packages/permissionless/utils/toOwner.ts +0 -89
- package/ext/permissionless.js/packages/permissionless/vitest.config.ts +0 -31
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/biconomy.ts +0 -22
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/etherspot.ts +0 -12
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/kernel.ts +0 -63
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/light.ts +0 -10
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/nexus.ts +0 -16
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/safe.ts +0 -75
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/simple.ts +0 -16
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/thirdweb.ts +0 -7
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/trust.ts +0 -26
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/core.ts +0 -24
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/index.ts +0 -10
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/index.ts +0 -783
- package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/instance.ts +0 -290
- package/ext/permissionless.js/packages/permissionless-test/src/testWithRpc.ts +0 -128
- package/ext/permissionless.js/packages/permissionless-test/src/types.ts +0 -12
- package/ext/permissionless.js/packages/permissionless-test/src/utils.ts +0 -1091
- package/ext/permissionless.js/packages/wagmi/CHANGELOG.md +0 -53
- package/ext/permissionless.js/packages/wagmi/README.md +0 -93
- package/ext/permissionless.js/packages/wagmi/context.ts +0 -22
- package/ext/permissionless.js/packages/wagmi/hooks/useAvailableCapabilities.ts +0 -43
- package/ext/permissionless.js/packages/wagmi/hooks/useSendTransaction.ts +0 -164
- package/ext/permissionless.js/packages/wagmi/hooks/useWaitForTransactionReceipt.ts +0 -427
- package/ext/permissionless.js/packages/wagmi/index.ts +0 -15
- package/ext/permissionless.js/packages/wagmi/package.json +0 -26
- package/ext/permissionless.js/packages/wagmi/utils/observe.ts +0 -76
- package/ext/permissionless.js/packages/wagmi-demo/README.md +0 -1
- package/ext/permissionless.js/packages/wagmi-demo/biome.json +0 -13
- package/ext/permissionless.js/packages/wagmi-demo/index.html +0 -12
- package/ext/permissionless.js/packages/wagmi-demo/package.json +0 -16
- package/ext/permissionless.js/packages/wagmi-demo/src/App.tsx +0 -98
- package/ext/permissionless.js/packages/wagmi-demo/src/PasskeyServerDemo.tsx +0 -286
- package/ext/permissionless.js/packages/wagmi-demo/src/PasskeysDemo.tsx +0 -457
- package/ext/permissionless.js/packages/wagmi-demo/src/index.css +0 -21
- package/ext/permissionless.js/packages/wagmi-demo/src/main.tsx +0 -275
- package/ext/permissionless.js/packages/wagmi-demo/src/vite-env.d.ts +0 -1
- package/ext/permissionless.js/packages/wagmi-demo/src/wagmi.ts +0 -33
- package/ext/permissionless.js/packages/wagmi-demo/tsconfig.json +0 -25
- package/ext/permissionless.js/packages/wagmi-demo/tsconfig.node.json +0 -12
- package/ext/permissionless.js/packages/wagmi-demo/vite.config.ts +0 -7
- package/ext/permissionless.js/tsconfig/tsconfig.base.json +0 -42
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.cjs.json +0 -11
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.esm.json +0 -9
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.json +0 -17
- package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.types.json +0 -13
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.cjs.json +0 -11
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.esm.json +0 -9
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.json +0 -18
- package/ext/permissionless.js/tsconfig/tsconfig.permissionless.types.json +0 -13
- package/ext/permissionless.js/tsconfig/tsconfig.wagmi.esm.json +0 -8
- package/ext/permissionless.js/tsconfig/tsconfig.wagmi.json +0 -19
- package/ext/permissionless.js/tsconfig/tsconfig.wagmi.types.json +0 -12
- package/packages/community/package.json +0 -22
- package/packages/community/src/index.ts +0 -306
- package/packages/community/tsconfig.json +0 -8
- package/packages/core/src/abis/PaymasterV4_2.json +0 -1183
- package/packages/core/src/abis/aPNTs.json +0 -1173
- package/packages/core/src/contract-versions.ts +0 -374
- package/packages/enduser/package.json +0 -21
- package/packages/enduser/src/index.ts +0 -138
- package/packages/enduser/tsconfig.json +0 -8
- package/packages/operator/package.json +0 -21
- package/packages/operator/src/index.ts +0 -172
- package/packages/operator/tsconfig.json +0 -8
- package/run_full_regression.sh +0 -215
- package/scripts/validate_environment.ts +0 -140
- /package/{extract_addresses_to_env.sh → scripts/dev_tools/extract_addresses_to_env.sh} +0 -0
- /package/{final_safe_harmonize.py → scripts/dev_tools/final_safe_harmonize.py} +0 -0
- /package/{safe_harmonize.py → scripts/dev_tools/safe_harmonize.py} +0 -0
- /package/{surgical_harmonize.py → scripts/dev_tools/surgical_harmonize.py} +0 -0
|
@@ -1,380 +1,58 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
import { http, parseEther, formatEther, type Hex, Address } from 'viem';
|
|
2
3
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createEndUserClient,
|
|
6
|
+
parseKey,
|
|
7
|
+
CORE_ADDRESSES
|
|
8
|
+
} from '../packages/sdk/src/index.ts';
|
|
4
9
|
import * as dotenv from 'dotenv';
|
|
5
10
|
import * as path from 'path';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
6
12
|
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = path.dirname(__filename);
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
16
|
+
// Dynamic Env Loading
|
|
17
|
+
const NETWORK = process.env.EXPERIMENT_NETWORK || 'anvil';
|
|
18
|
+
const envFile = NETWORK === 'sepolia' ? '.env.sepolia' : '.env.anvil';
|
|
19
|
+
dotenv.config({ path: path.resolve(process.cwd(), envFile) });
|
|
13
20
|
|
|
14
|
-
const
|
|
15
|
-
const SIGNER_KEY = (process.env.PRIVATE_KEY_JASON || process.env.USER_KEY) as Hex;
|
|
16
|
-
const
|
|
17
|
-
const APNTS = process.env.APNTS_ADDRESS as Hex;
|
|
18
|
-
const SUPER_PAYMASTER = (process.env.SUPER_PAYMASTER_ADDRESS || process.env.SUPER_PAYMASTER) as Hex;
|
|
19
|
-
const ANNI_KEY = (process.env.PRIVATE_KEY_ANNI || process.env.OPERATOR_KEY) as Hex;
|
|
21
|
+
const RPC_URL = process.env.RPC_URL || (NETWORK === 'sepolia' ? process.env.SEPOLIA_RPC_URL : "http://127.0.0.1:8545");
|
|
22
|
+
const SIGNER_KEY = (process.env.PRIVATE_KEY_JASON || process.env.USER_KEY) as Hex;
|
|
23
|
+
const ACCOUNT_ADDRESS = (process.env.TEST_SIMPLE_ACCOUNT_C) as Address;
|
|
20
24
|
const RECEIVER = "0x93E67dbB7B2431dE61a9F6c7E488e7F0E2eD2B3e";
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// Helper: Pack 128-bit values for PaymasterAndData (Legacy view for packing)
|
|
25
|
-
function packUint(high128: bigint, low128: bigint): Hex {
|
|
26
|
-
return `0x${((high128 << 128n) | low128).toString(16).padStart(64, '0')}`;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export async function runSuperPaymasterTest() {
|
|
30
|
-
console.log("🚀 Starting Group C: SuperPaymaster...");
|
|
31
|
-
const publicClient = createPublicClient({ chain: foundry, transport: http(RPC_URL) });
|
|
32
|
-
const bundlerClient = createPublicClient({ chain: foundry, transport: http(BUNDLER_RPC) });
|
|
33
|
-
const signer = privateKeyToAccount(SIGNER_KEY);
|
|
34
|
-
const anniWallet = createWalletClient({ account: privateKeyToAccount(ANNI_KEY), chain: foundry, transport: http(RPC_URL) });
|
|
35
|
-
|
|
36
|
-
const erc20Abi = parseAbi([
|
|
37
|
-
'function balanceOf(address) view returns (uint256)',
|
|
38
|
-
'function transfer(address, uint256) returns (bool)',
|
|
39
|
-
'function approve(address, uint256) returns (bool)',
|
|
40
|
-
'function allowance(address, address) view returns (uint256)'
|
|
41
|
-
]);
|
|
42
|
-
const epAbi = parseAbi(['function balanceOf(address) view returns (uint256)', 'function depositTo(address) payable']);
|
|
43
|
-
|
|
44
|
-
// 1. Check SuperPaymaster Deposit
|
|
45
|
-
const pmDeposit = await publicClient.readContract({ address: ENTRY_POINT, abi: epAbi, functionName: 'balanceOf', args: [SUPER_PAYMASTER] });
|
|
46
|
-
console.log(` 🏦 PM Deposit: ${formatEther(pmDeposit)} ETH`);
|
|
47
|
-
if (pmDeposit < parseEther("0.05")) {
|
|
48
|
-
console.log(" ⚠️ Low Deposit. Converting Anni ETH -> EntryPoint Deposit...");
|
|
49
|
-
const feeData = await publicClient.estimateFeesPerGas();
|
|
50
|
-
const maxPriority = (feeData.maxPriorityFeePerGas || parseEther("1.5", "gwei")) * 2n;
|
|
51
|
-
const maxFee = (feeData.maxFeePerGas || parseEther("20", "gwei")) * 2n;
|
|
52
|
-
|
|
53
|
-
try {
|
|
54
|
-
const hash = await anniWallet.writeContract({
|
|
55
|
-
address: ENTRY_POINT, abi: epAbi, functionName: 'depositTo', args: [SUPER_PAYMASTER], value: parseEther("0.05"),
|
|
56
|
-
maxPriorityFeePerGas: maxPriority, maxFeePerGas: maxFee
|
|
57
|
-
});
|
|
58
|
-
console.log(` ⏳ Deposited: ${hash}`);
|
|
59
|
-
await publicClient.waitForTransactionReceipt({ hash });
|
|
60
|
-
} catch (e) {
|
|
61
|
-
console.warn("Deposit failed, hoping existing balance is enough.");
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// 2. Check Allowance
|
|
66
|
-
const allow = await publicClient.readContract({ address: BPNTS, abi: erc20Abi, functionName: 'allowance', args: [ACCOUNT_C, SUPER_PAYMASTER] });
|
|
67
|
-
console.log(` 🔓 bPNTs Allowance: ${formatEther(allow)}`);
|
|
68
|
-
|
|
69
|
-
if (allow < parseEther("100")) {
|
|
70
|
-
console.log(" ⚠️ Allowance low. Sending Approve Ops...");
|
|
71
|
-
await sendUserOp(
|
|
72
|
-
publicClient, bundlerClient, signer, ACCOUNT_C,
|
|
73
|
-
BPNTS, 0n,
|
|
74
|
-
encodeFunctionData({ abi: erc20Abi, functionName: 'approve', args: [SUPER_PAYMASTER, parseEther("1000000")] }),
|
|
75
|
-
undefined, // No Paymaster, use ETH
|
|
76
|
-
true // isApproval
|
|
77
|
-
);
|
|
78
|
-
console.log(" ✅ Approved.");
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// 3. Prepare Transfer UserOp (aPNTs Transfer, bPNTs Gas)
|
|
82
|
-
console.log(" 🔄 Sending Test Transfer...");
|
|
83
|
-
|
|
84
|
-
const transferData = encodeFunctionData({ abi: erc20Abi, functionName: 'transfer', args: [RECEIVER, parseEther("1")] });
|
|
85
|
-
|
|
86
|
-
// 4. Setup Operator (Self-Sponsorship)
|
|
87
|
-
await setupOperator(publicClient, bundlerClient, signer, SUPER_PAYMASTER, APNTS, signer.address);
|
|
88
|
-
|
|
89
|
-
// 5. Prepare Transfer UserOp (aPNTs Transfer, bPNTs Gas)
|
|
90
|
-
console.log(" 🔄 Sending Test Transfer...");
|
|
91
|
-
|
|
92
|
-
// For V4/SuperPaymaster, we construct the Paymaster struct.
|
|
93
|
-
const pmStruct = {
|
|
94
|
-
paymaster: SUPER_PAYMASTER,
|
|
95
|
-
paymasterVerificationGasLimit: 300000n,
|
|
96
|
-
paymasterPostOpGasLimit: 10000n,
|
|
97
|
-
paymasterData: signer.address // Use OUR address as Operator
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
const metrics = await sendUserOp(
|
|
101
|
-
publicClient, bundlerClient, signer, ACCOUNT_C,
|
|
102
|
-
APNTS, 0n, transferData,
|
|
103
|
-
pmStruct // Pass struct, NOT packed hex
|
|
104
|
-
);
|
|
105
|
-
console.log(" ✅ Group C Test Passed!");
|
|
106
|
-
|
|
107
|
-
return {
|
|
108
|
-
group: 'SuperPaymaster',
|
|
109
|
-
...metrics
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Ensure Signer is a valid Operator
|
|
114
|
-
async function setupOperator(publicClient: any, bundlerClient: any, signer: any, pm: Hex, token: Hex, treasury: Hex) {
|
|
115
|
-
console.log(" 🛠️ Setting up Operator...");
|
|
116
|
-
const wallet = createWalletClient({ account: signer, chain: foundry, transport: http(process.env.SEPOLIA_RPC_URL) });
|
|
26
|
+
async function main() {
|
|
27
|
+
console.log(`🚀 Group C: SuperPaymaster (Network: ${NETWORK})`);
|
|
117
28
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
'function configureOperator(address, address, uint256)',
|
|
121
|
-
'function deposit(uint256)',
|
|
122
|
-
'function depositFor(address, uint256)',
|
|
123
|
-
'function notifyDeposit(uint256)',
|
|
124
|
-
'function REGISTRY() view returns (address)'
|
|
125
|
-
]);
|
|
126
|
-
const registryAbi = parseAbi(['function hasRole(bytes32, address) view returns (bool)']);
|
|
127
|
-
const erc20Abi = parseAbi(['function approve(address, uint256) returns (bool)', 'function allowance(address, address) view returns (uint256)', 'function transfer(address, uint256) returns (bool)']);
|
|
29
|
+
if (!SIGNER_KEY) throw new Error("Missing Private Key (PRIVATE_KEY_JASON)");
|
|
30
|
+
if (!ACCOUNT_ADDRESS) throw new Error("Missing TEST_SIMPLE_ACCOUNT_C");
|
|
128
31
|
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
const COMMUNITY = keccak256(new TextEncoder().encode("COMMUNITY"));
|
|
132
|
-
const hasRole = await publicClient.readContract({ address: regAddr, abi: registryAbi, functionName: 'hasRole', args: [COMMUNITY, signer.address] });
|
|
133
|
-
|
|
134
|
-
if (!hasRole) {
|
|
135
|
-
console.warn(" ⚠️ Signer missing COMMUNITY role! Assuming Admin key can grant it or ignoring (might fail).");
|
|
136
|
-
// Try to grant? Need Admin Key. Assuming signer IS admin for now.
|
|
137
|
-
}
|
|
32
|
+
const account = privateKeyToAccount(parseKey(SIGNER_KEY));
|
|
33
|
+
const user = createEndUserClient({ transport: http(RPC_URL), account });
|
|
138
34
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
// struct OperatorAccount { balance, exchangeRate, isConfigured, isPaused, token, reputation, treasury, spent, txSponsored }
|
|
142
|
-
// New Tuple Return: (uint128, uint96, bool, bool, address, uint32, address, uint256, uint256)
|
|
143
|
-
// 0: balance, 1: exRate, 2: isConfigured, 3: isPaused, 4: token, 5: reputation, 6: treasury, 7: spent, 8: txSponsored
|
|
144
|
-
const isConfigured = opData[2];
|
|
145
|
-
const balance = opData[0];
|
|
35
|
+
console.log(` 👤 Signer: ${account.address}`);
|
|
36
|
+
console.log(` 🏭 Smart Account: ${ACCOUNT_ADDRESS}`);
|
|
146
37
|
|
|
147
|
-
|
|
148
|
-
console.log("
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
38
|
+
try {
|
|
39
|
+
console.log(" ⚡ Executing Gasless Transfer (via SuperPaymaster)...");
|
|
40
|
+
// The SDK will probe the Registry and find the SuperPaymaster role.
|
|
41
|
+
// It handles all the packing and estimation internally.
|
|
42
|
+
const result = await user.executeGasless({
|
|
43
|
+
target: RECEIVER,
|
|
44
|
+
data: '0x',
|
|
45
|
+
value: parseEther("0")
|
|
153
46
|
});
|
|
154
|
-
await publicClient.waitForTransactionReceipt({ hash });
|
|
155
|
-
console.log(" ✅ Configured.");
|
|
156
|
-
}
|
|
157
47
|
|
|
158
|
-
|
|
159
|
-
if (balance < parseEther("75")) {
|
|
160
|
-
console.log(` 💰 Operator Balance Low (${formatEther(balance)}). Depositing...`);
|
|
161
|
-
// Approve
|
|
162
|
-
const allow = await publicClient.readContract({ address: token, abi: erc20Abi, functionName: 'allowance', args: [signer.address, pm] });
|
|
163
|
-
if (allow < parseEther("100")) {
|
|
164
|
-
const tx = await wallet.writeContract({ address: token, abi: erc20Abi, functionName: 'approve', args: [pm, parseEther("1000")], account: signer });
|
|
165
|
-
await publicClient.waitForTransactionReceipt({ hash: tx });
|
|
166
|
-
console.log(" 🔓 Approved.");
|
|
167
|
-
}
|
|
48
|
+
console.log(` ⏳ UserOp Hash: ${result.hash}`);
|
|
168
49
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
} catch (e: any) {
|
|
175
|
-
console.warn(` ⚠️ Legacy Deposit failed (Likely blocked by Token). Switching to Push Mode...`);
|
|
176
|
-
|
|
177
|
-
// Push Mode: Transfer + Notify
|
|
178
|
-
// 1. Transfer
|
|
179
|
-
const txTrans = await wallet.writeContract({
|
|
180
|
-
address: token, abi: erc20Abi, functionName: 'transfer',
|
|
181
|
-
args: [pm, parseEther("100")],
|
|
182
|
-
account: signer
|
|
183
|
-
});
|
|
184
|
-
await publicClient.waitForTransactionReceipt({ hash: txTrans });
|
|
185
|
-
console.log(" ➡ Transferred tokens.");
|
|
186
|
-
|
|
187
|
-
// 2. Deposit via depositFor (Push)
|
|
188
|
-
const txDep = await wallet.writeContract({
|
|
189
|
-
address: pm,
|
|
190
|
-
abi: pmAbi,
|
|
191
|
-
functionName: 'depositFor',
|
|
192
|
-
args: [wallet.account.address, parseEther('100')],
|
|
193
|
-
account: signer
|
|
194
|
-
});
|
|
195
|
-
await publicClient.waitForTransactionReceipt({ hash: txDep });
|
|
196
|
-
console.log(" ✅ Deposited (Push + DepositFor): 100 aPNTs");
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Support both struct (for Paymaster) and undefined (for ETH)
|
|
202
|
-
async function sendUserOp(
|
|
203
|
-
client: any,
|
|
204
|
-
bundler: any,
|
|
205
|
-
signer: any,
|
|
206
|
-
sender: Address,
|
|
207
|
-
target: Address,
|
|
208
|
-
value: bigint,
|
|
209
|
-
innerData: Hex,
|
|
210
|
-
paymasterStruct?: { paymaster: Address, paymasterVerificationGasLimit: bigint, paymasterPostOpGasLimit: bigint, paymasterData: Hex },
|
|
211
|
-
isApproval = false
|
|
212
|
-
) {
|
|
213
|
-
const executeAbi = parseAbi(['function execute(address, uint256, bytes)']);
|
|
214
|
-
const callData = encodeFunctionData({ abi: executeAbi, functionName: 'execute', args: [target, value, innerData] });
|
|
215
|
-
|
|
216
|
-
const nonce = await client.readContract({
|
|
217
|
-
address: ENTRY_POINT,
|
|
218
|
-
abi: [{ inputs: [{ name: "sender", type: "address" }, { name: "key", type: "uint192" }], name: "getNonce", outputs: [{ name: "nonce", type: "uint256" }], stateMutability: "view", type: "function" }],
|
|
219
|
-
functionName: 'getNonce', args: [sender, 0n]
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
// 1. Estimation
|
|
223
|
-
// MUST unpack Paymaster fields for Alchemy v0.7
|
|
224
|
-
let estOp: any = {
|
|
225
|
-
sender,
|
|
226
|
-
nonce: toHex(nonce),
|
|
227
|
-
initCode: "0x",
|
|
228
|
-
callData,
|
|
229
|
-
signature: "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c" as Hex
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
if (paymasterStruct) {
|
|
233
|
-
estOp.paymaster = paymasterStruct.paymaster;
|
|
234
|
-
estOp.paymasterVerificationGasLimit = toHex(paymasterStruct.paymasterVerificationGasLimit);
|
|
235
|
-
estOp.paymasterPostOpGasLimit = toHex(paymasterStruct.paymasterPostOpGasLimit);
|
|
236
|
-
estOp.paymasterData = paymasterStruct.paymasterData;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
console.log(" ☁️ Estimating...");
|
|
240
|
-
const estRes: any = await bundler.request({
|
|
241
|
-
method: 'eth_estimateUserOperationGas',
|
|
242
|
-
params: [estOp, ENTRY_POINT]
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
const verificationGasLimit = BigInt(estRes.verificationGasLimit ?? estRes.verificationGas ?? 500000n);
|
|
246
|
-
const callGasLimit = BigInt(estRes.callGasLimit ?? 100000n);
|
|
247
|
-
const preVerificationGas = BigInt(estRes.preVerificationGas ?? 50000n);
|
|
248
|
-
|
|
249
|
-
// Update PM limits from estimation if available, else keep defaults
|
|
250
|
-
const pmVerif = estRes.paymasterVerificationGasLimit ? BigInt(estRes.paymasterVerificationGasLimit) : (paymasterStruct?.paymasterVerificationGasLimit ?? 0n);
|
|
251
|
-
const pmPost = estRes.paymasterPostOpGasLimit ? BigInt(estRes.paymasterPostOpGasLimit) : (paymasterStruct?.paymasterPostOpGasLimit ?? 0n);
|
|
252
|
-
|
|
253
|
-
// Add buffer
|
|
254
|
-
const finalPmVerif = pmVerif + 50000n;
|
|
255
|
-
const finalPmPost = pmPost + 10000n;
|
|
256
|
-
|
|
257
|
-
const block = await client.getBlock();
|
|
258
|
-
const priority = parseEther("5", "gwei");
|
|
259
|
-
const maxFee = block.baseFeePerGas! * 2n + priority;
|
|
260
|
-
|
|
261
|
-
// 2. Hashing (Requires Packed Fields)
|
|
262
|
-
const accountGasLimits = packUint(verificationGasLimit + 50000n, callGasLimit + 20000n);
|
|
263
|
-
// FIX: gasFees = (maxPriorityFeePerGas << 128) | maxFeePerGas
|
|
264
|
-
const gasFees = packUint(priority, maxFee);
|
|
265
|
-
|
|
266
|
-
let paymasterAndData = "0x" as Hex;
|
|
267
|
-
if (paymasterStruct) {
|
|
268
|
-
// Re-pack for the hash
|
|
269
|
-
const pmLimits = packUint(finalPmVerif, finalPmPost);
|
|
270
|
-
// Supports Operator(20) + optional MaxRate(32)
|
|
271
|
-
// If paymasterData is JUST address, concat works.
|
|
272
|
-
// If we want maxRate, we append it.
|
|
273
|
-
// Let's assume paymasterStruct can have 'paymasterMaxRate'
|
|
274
|
-
let extraData = paymasterStruct.paymasterData;
|
|
275
|
-
if ((paymasterStruct as any).paymasterMaxRate) {
|
|
276
|
-
extraData = concat([paymasterStruct.paymasterData, pad(toHex((paymasterStruct as any).paymasterMaxRate as bigint), { size: 32 })]);
|
|
277
|
-
}
|
|
278
|
-
paymasterAndData = concat([paymasterStruct.paymaster, pmLimits, extraData]);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
const packedUserOp = {
|
|
282
|
-
sender,
|
|
283
|
-
nonce,
|
|
284
|
-
initCode: "0x" as Hex,
|
|
285
|
-
callData,
|
|
286
|
-
accountGasLimits,
|
|
287
|
-
preVerificationGas,
|
|
288
|
-
gasFees,
|
|
289
|
-
paymasterAndData,
|
|
290
|
-
signature: "0x" as Hex
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
// Debug: Use Local Hashing to be 100% sure of what we are signing
|
|
294
|
-
const userOpHash = entryPointGetUserOpHash(packedUserOp, ENTRY_POINT, sepolia.id);
|
|
295
|
-
console.log(` #️⃣ UserOpHash (Local): ${userOpHash}`);
|
|
296
|
-
|
|
297
|
-
// Standard SimpleAccount expects EIP-191 signature (toEthSignedMessageHash)
|
|
298
|
-
const sig = await signer.signMessage({ message: { raw: userOpHash } });
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
// 3. Sending (Requires Unpacked Fields)
|
|
302
|
-
const unpackedUserOp: any = {
|
|
303
|
-
sender,
|
|
304
|
-
nonce: toHex(nonce),
|
|
305
|
-
initCode: "0x",
|
|
306
|
-
callData,
|
|
307
|
-
callGasLimit: toHex(callGasLimit + 20000n),
|
|
308
|
-
verificationGasLimit: toHex(verificationGasLimit + 50000n),
|
|
309
|
-
preVerificationGas: toHex(preVerificationGas),
|
|
310
|
-
maxFeePerGas: toHex(maxFee),
|
|
311
|
-
maxPriorityFeePerGas: toHex(priority),
|
|
312
|
-
signature: sig
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
if (paymasterStruct) {
|
|
316
|
-
unpackedUserOp.paymaster = paymasterStruct.paymaster;
|
|
317
|
-
unpackedUserOp.paymasterVerificationGasLimit = toHex(finalPmVerif);
|
|
318
|
-
unpackedUserOp.paymasterPostOpGasLimit = toHex(finalPmPost);
|
|
319
|
-
unpackedUserOp.paymasterData = paymasterStruct.paymasterData;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
console.log(" 🚀 Sending Unpacked...");
|
|
323
|
-
const userOpHashRes = await bundler.request({
|
|
324
|
-
method: 'eth_sendUserOperation',
|
|
325
|
-
params: [unpackedUserOp, ENTRY_POINT]
|
|
326
|
-
});
|
|
327
|
-
console.log(` ✅ Sent: ${userOpHashRes}`);
|
|
328
|
-
|
|
329
|
-
const startTime = Date.now();
|
|
330
|
-
let receipt: any = null;
|
|
331
|
-
|
|
332
|
-
for(let i=0; i<60; i++) {
|
|
333
|
-
const r = await bundler.request({ method: 'eth_getUserOperationReceipt', params: [userOpHashRes] });
|
|
334
|
-
if(r) {
|
|
335
|
-
receipt = (r as any).receipt;
|
|
336
|
-
console.log(` ✅ Mined: ${receipt.transactionHash}`);
|
|
337
|
-
break;
|
|
338
|
-
}
|
|
339
|
-
await new Promise(res => setTimeout(res, 2000));
|
|
50
|
+
const receipt = await user.waitForTransactionReceipt({ hash: result.hash });
|
|
51
|
+
console.log(` ✅ Success! Tx: ${receipt.transactionHash}`);
|
|
52
|
+
console.log(` ⛽ Gas Used: ${receipt.gasUsed.toString()}`);
|
|
53
|
+
} catch (error: any) {
|
|
54
|
+
console.error(" ❌ SuperPaymaster Test Failed:", error.message.split('\n')[0]);
|
|
340
55
|
}
|
|
341
|
-
|
|
342
|
-
if (!receipt) throw new Error("Timeout waiting for receipt");
|
|
343
|
-
|
|
344
|
-
// Return Metrics
|
|
345
|
-
return {
|
|
346
|
-
gasUsed: BigInt(receipt.gasUsed),
|
|
347
|
-
l1Fee: BigInt(receipt.l1Fee || 0), // Alchemy specific field?
|
|
348
|
-
gasPrice: BigInt(receipt.effectiveGasPrice),
|
|
349
|
-
totalCost: BigInt(receipt.gasUsed) * BigInt(receipt.effectiveGasPrice),
|
|
350
|
-
status: receipt.status === '0x1' ? 'Success' : 'Failed',
|
|
351
|
-
txHash: receipt.transactionHash,
|
|
352
|
-
time: (Date.now() - startTime) / 1000
|
|
353
|
-
};
|
|
354
56
|
}
|
|
355
57
|
|
|
356
|
-
|
|
357
|
-
const packed = encodeAbiParameters(
|
|
358
|
-
[
|
|
359
|
-
{ type: 'address' }, { type: 'uint256' }, { type: 'bytes32' }, { type: 'bytes32' },
|
|
360
|
-
{ type: 'bytes32' }, { type: 'uint256' }, { type: 'bytes32' }, { type: 'bytes32' }
|
|
361
|
-
],
|
|
362
|
-
[
|
|
363
|
-
op.sender, BigInt(op.nonce),
|
|
364
|
-
keccak256(op.initCode && op.initCode !== "0x" ? op.initCode : '0x'),
|
|
365
|
-
keccak256(op.callData),
|
|
366
|
-
op.accountGasLimits, BigInt(op.preVerificationGas), op.gasFees,
|
|
367
|
-
keccak256(op.paymasterAndData)
|
|
368
|
-
]
|
|
369
|
-
);
|
|
370
|
-
const enc = encodeAbiParameters(
|
|
371
|
-
[{ type: 'bytes32' }, { type: 'address' }, { type: 'uint256' }],
|
|
372
|
-
[keccak256(packed), ep, BigInt(chainId)]
|
|
373
|
-
);
|
|
374
|
-
return keccak256(enc);
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
import { fileURLToPath } from 'url';
|
|
378
|
-
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
379
|
-
runSuperPaymasterTest().catch(console.error);
|
|
380
|
-
}
|
|
58
|
+
main().catch(console.error);
|
|
@@ -60,7 +60,7 @@ const reputationAbi = parseAbi([
|
|
|
60
60
|
]);
|
|
61
61
|
|
|
62
62
|
const xpntsFactoryAbi = parseAbi([
|
|
63
|
-
'function
|
|
63
|
+
'function deployxPNTsToken(string, string, string, string, uint256, address) external returns (address)',
|
|
64
64
|
'function communityTokens(address) view returns (address)'
|
|
65
65
|
]);
|
|
66
66
|
|
|
@@ -339,13 +339,14 @@ async function runCommunityLifecycleTest() {
|
|
|
339
339
|
const createTokenTx = await walletClient.writeContract({
|
|
340
340
|
address: XPNTS_FACTORY_ADDR,
|
|
341
341
|
abi: xpntsFactoryAbi,
|
|
342
|
-
functionName: '
|
|
342
|
+
functionName: 'deployxPNTsToken',
|
|
343
343
|
args: [
|
|
344
344
|
'Test Community PNTs',
|
|
345
345
|
'tcPNTs',
|
|
346
346
|
'Test DAO',
|
|
347
347
|
'testdao.eth',
|
|
348
|
-
parseEther('1')
|
|
348
|
+
parseEther('1'),
|
|
349
|
+
'0x0000000000000000000000000000000000000000' // No specific AOA Paymaster in this test
|
|
349
350
|
]
|
|
350
351
|
});
|
|
351
352
|
await publicClient.waitForTransactionReceipt({ hash: createTokenTx });
|