@aa-sdk/core 4.0.0-alpha.0
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/LICENSE +21 -0
- package/README.md +54 -0
- package/dist/cjs/abis/EntryPointAbi_v6.d.ts +1018 -0
- package/dist/cjs/abis/EntryPointAbi_v6.js +1313 -0
- package/dist/cjs/abis/EntryPointAbi_v6.js.map +1 -0
- package/dist/cjs/abis/EntryPointAbi_v7.d.ts +775 -0
- package/dist/cjs/abis/EntryPointAbi_v7.js +661 -0
- package/dist/cjs/abis/EntryPointAbi_v7.js.map +1 -0
- package/dist/cjs/abis/SimpleAccountAbi_v6.d.ts +405 -0
- package/dist/cjs/abis/SimpleAccountAbi_v6.js +528 -0
- package/dist/cjs/abis/SimpleAccountAbi_v6.js.map +1 -0
- package/dist/cjs/abis/SimpleAccountAbi_v7.d.ts +410 -0
- package/dist/cjs/abis/SimpleAccountAbi_v7.js +538 -0
- package/dist/cjs/abis/SimpleAccountAbi_v7.js.map +1 -0
- package/dist/cjs/abis/SimpleAccountFactoryAbi.d.ts +55 -0
- package/dist/cjs/abis/SimpleAccountFactoryAbi.js +78 -0
- package/dist/cjs/abis/SimpleAccountFactoryAbi.js.map +1 -0
- package/dist/cjs/account/base.d.ts +49 -0
- package/dist/cjs/account/base.js +257 -0
- package/dist/cjs/account/base.js.map +1 -0
- package/dist/cjs/account/schema.d.ts +100 -0
- package/dist/cjs/account/schema.js +43 -0
- package/dist/cjs/account/schema.js.map +1 -0
- package/dist/cjs/account/simple.d.ts +14 -0
- package/dist/cjs/account/simple.js +119 -0
- package/dist/cjs/account/simple.js.map +1 -0
- package/dist/cjs/account/smartContractAccount.d.ts +68 -0
- package/dist/cjs/account/smartContractAccount.js +174 -0
- package/dist/cjs/account/smartContractAccount.js.map +1 -0
- package/dist/cjs/account/types.d.ts +30 -0
- package/dist/cjs/account/types.js +3 -0
- package/dist/cjs/account/types.js.map +1 -0
- package/dist/cjs/actions/bundler/estimateUserOperationGas.d.ts +8 -0
- package/dist/cjs/actions/bundler/estimateUserOperationGas.js +18 -0
- package/dist/cjs/actions/bundler/estimateUserOperationGas.js.map +1 -0
- package/dist/cjs/actions/bundler/getSupportedEntryPoints.d.ts +3 -0
- package/dist/cjs/actions/bundler/getSupportedEntryPoints.js +11 -0
- package/dist/cjs/actions/bundler/getSupportedEntryPoints.js.map +1 -0
- package/dist/cjs/actions/bundler/getUserOperationByHash.d.ts +6 -0
- package/dist/cjs/actions/bundler/getUserOperationByHash.js +11 -0
- package/dist/cjs/actions/bundler/getUserOperationByHash.js.map +1 -0
- package/dist/cjs/actions/bundler/getUserOperationReceipt.d.ts +6 -0
- package/dist/cjs/actions/bundler/getUserOperationReceipt.js +11 -0
- package/dist/cjs/actions/bundler/getUserOperationReceipt.js.map +1 -0
- package/dist/cjs/actions/bundler/sendRawUserOperation.d.ts +7 -0
- package/dist/cjs/actions/bundler/sendRawUserOperation.js +11 -0
- package/dist/cjs/actions/bundler/sendRawUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/buildUserOperation.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/buildUserOperation.js +25 -0
- package/dist/cjs/actions/smartAccount/buildUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/buildUserOperationFromTx.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/buildUserOperationFromTx.js +39 -0
- package/dist/cjs/actions/smartAccount/buildUserOperationFromTx.js.map +1 -0
- package/dist/cjs/actions/smartAccount/buildUserOperationFromTxs.d.ts +4 -0
- package/dist/cjs/actions/smartAccount/buildUserOperationFromTxs.js +62 -0
- package/dist/cjs/actions/smartAccount/buildUserOperationFromTxs.js.map +1 -0
- package/dist/cjs/actions/smartAccount/checkGasSponsorshipEligibility.d.ts +4 -0
- package/dist/cjs/actions/smartAccount/checkGasSponsorshipEligibility.js +34 -0
- package/dist/cjs/actions/smartAccount/checkGasSponsorshipEligibility.js.map +1 -0
- package/dist/cjs/actions/smartAccount/dropAndReplaceUserOperation.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/dropAndReplaceUserOperation.js +64 -0
- package/dist/cjs/actions/smartAccount/dropAndReplaceUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/estimateUserOperationGas.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/estimateUserOperationGas.js +23 -0
- package/dist/cjs/actions/smartAccount/estimateUserOperationGas.js.map +1 -0
- package/dist/cjs/actions/smartAccount/getAddress.d.ts +4 -0
- package/dist/cjs/actions/smartAccount/getAddress.js +13 -0
- package/dist/cjs/actions/smartAccount/getAddress.js.map +1 -0
- package/dist/cjs/actions/smartAccount/internal/initUserOperation.d.ts +7 -0
- package/dist/cjs/actions/smartAccount/internal/initUserOperation.js +42 -0
- package/dist/cjs/actions/smartAccount/internal/initUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/internal/runMiddlewareStack.d.ts +10 -0
- package/dist/cjs/actions/smartAccount/internal/runMiddlewareStack.js +47 -0
- package/dist/cjs/actions/smartAccount/internal/runMiddlewareStack.js.map +1 -0
- package/dist/cjs/actions/smartAccount/internal/sendUserOperation.d.ts +10 -0
- package/dist/cjs/actions/smartAccount/internal/sendUserOperation.js +28 -0
- package/dist/cjs/actions/smartAccount/internal/sendUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/sendTransaction.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/sendTransaction.js +35 -0
- package/dist/cjs/actions/smartAccount/sendTransaction.js.map +1 -0
- package/dist/cjs/actions/smartAccount/sendTransactions.d.ts +4 -0
- package/dist/cjs/actions/smartAccount/sendTransactions.js +36 -0
- package/dist/cjs/actions/smartAccount/sendTransactions.js.map +1 -0
- package/dist/cjs/actions/smartAccount/sendUserOperation.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/sendUserOperation.js +31 -0
- package/dist/cjs/actions/smartAccount/sendUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/signMessage.d.ts +6 -0
- package/dist/cjs/actions/smartAccount/signMessage.js +12 -0
- package/dist/cjs/actions/smartAccount/signMessage.js.map +1 -0
- package/dist/cjs/actions/smartAccount/signMessageWith6492.d.ts +4 -0
- package/dist/cjs/actions/smartAccount/signMessageWith6492.js +12 -0
- package/dist/cjs/actions/smartAccount/signMessageWith6492.js.map +1 -0
- package/dist/cjs/actions/smartAccount/signTypedData.d.ts +10 -0
- package/dist/cjs/actions/smartAccount/signTypedData.js +12 -0
- package/dist/cjs/actions/smartAccount/signTypedData.js.map +1 -0
- package/dist/cjs/actions/smartAccount/signTypedDataWith6492.d.ts +6 -0
- package/dist/cjs/actions/smartAccount/signTypedDataWith6492.js +12 -0
- package/dist/cjs/actions/smartAccount/signTypedDataWith6492.js.map +1 -0
- package/dist/cjs/actions/smartAccount/signUserOperation.d.ts +5 -0
- package/dist/cjs/actions/smartAccount/signUserOperation.js +30 -0
- package/dist/cjs/actions/smartAccount/signUserOperation.js.map +1 -0
- package/dist/cjs/actions/smartAccount/types.d.ts +42 -0
- package/dist/cjs/actions/smartAccount/types.js +3 -0
- package/dist/cjs/actions/smartAccount/types.js.map +1 -0
- package/dist/cjs/actions/smartAccount/upgradeAccount.d.ts +4 -0
- package/dist/cjs/actions/smartAccount/upgradeAccount.js +38 -0
- package/dist/cjs/actions/smartAccount/upgradeAccount.js.map +1 -0
- package/dist/cjs/actions/smartAccount/waitForUserOperationTransacation.d.ts +3 -0
- package/dist/cjs/actions/smartAccount/waitForUserOperationTransacation.js +36 -0
- package/dist/cjs/actions/smartAccount/waitForUserOperationTransacation.js.map +1 -0
- package/dist/cjs/chains/index.d.ts +20 -0
- package/dist/cjs/chains/index.js +169 -0
- package/dist/cjs/chains/index.js.map +1 -0
- package/dist/cjs/client/bundlerClient.d.ts +10 -0
- package/dist/cjs/client/bundlerClient.js +51 -0
- package/dist/cjs/client/bundlerClient.js.map +1 -0
- package/dist/cjs/client/decorators/bundlerClient.d.ts +41 -0
- package/dist/cjs/client/decorators/bundlerClient.js +17 -0
- package/dist/cjs/client/decorators/bundlerClient.js.map +1 -0
- package/dist/cjs/client/decorators/smartAccountClient.d.ts +35 -0
- package/dist/cjs/client/decorators/smartAccountClient.js +43 -0
- package/dist/cjs/client/decorators/smartAccountClient.js.map +1 -0
- package/dist/cjs/client/isSmartAccountClient.d.ts +5 -0
- package/dist/cjs/client/isSmartAccountClient.js +18 -0
- package/dist/cjs/client/isSmartAccountClient.js.map +1 -0
- package/dist/cjs/client/schema.d.ts +767 -0
- package/dist/cjs/client/schema.js +63 -0
- package/dist/cjs/client/schema.js.map +1 -0
- package/dist/cjs/client/smartAccountClient.d.ts +33 -0
- package/dist/cjs/client/smartAccountClient.js +93 -0
- package/dist/cjs/client/smartAccountClient.js.map +1 -0
- package/dist/cjs/client/types.d.ts +26 -0
- package/dist/cjs/client/types.js +3 -0
- package/dist/cjs/client/types.js.map +1 -0
- package/dist/cjs/ens/utils.d.ts +6 -0
- package/dist/cjs/ens/utils.js +53 -0
- package/dist/cjs/ens/utils.js.map +1 -0
- package/dist/cjs/entrypoint/0.6.d.ts +1029 -0
- package/dist/cjs/entrypoint/0.6.js +49 -0
- package/dist/cjs/entrypoint/0.6.js.map +1 -0
- package/dist/cjs/entrypoint/0.7.d.ts +792 -0
- package/dist/cjs/entrypoint/0.7.js +88 -0
- package/dist/cjs/entrypoint/0.7.js.map +1 -0
- package/dist/cjs/entrypoint/index.d.ts +8 -0
- package/dist/cjs/entrypoint/index.js +53 -0
- package/dist/cjs/entrypoint/index.js.map +1 -0
- package/dist/cjs/entrypoint/types.d.ts +46 -0
- package/dist/cjs/entrypoint/types.js +3 -0
- package/dist/cjs/entrypoint/types.js.map +1 -0
- package/dist/cjs/errors/account.d.ts +47 -0
- package/dist/cjs/errors/account.js +140 -0
- package/dist/cjs/errors/account.js.map +1 -0
- package/dist/cjs/errors/base.d.ts +18 -0
- package/dist/cjs/errors/base.js +39 -0
- package/dist/cjs/errors/base.js.map +1 -0
- package/dist/cjs/errors/client.d.ts +14 -0
- package/dist/cjs/errors/client.js +44 -0
- package/dist/cjs/errors/client.js.map +1 -0
- package/dist/cjs/errors/entrypoint.d.ts +10 -0
- package/dist/cjs/errors/entrypoint.js +32 -0
- package/dist/cjs/errors/entrypoint.js.map +1 -0
- package/dist/cjs/errors/signer.d.ts +5 -0
- package/dist/cjs/errors/signer.js +20 -0
- package/dist/cjs/errors/signer.js.map +1 -0
- package/dist/cjs/errors/transaction.d.ts +10 -0
- package/dist/cjs/errors/transaction.js +29 -0
- package/dist/cjs/errors/transaction.js.map +1 -0
- package/dist/cjs/errors/useroperation.d.ts +10 -0
- package/dist/cjs/errors/useroperation.js +34 -0
- package/dist/cjs/errors/useroperation.js.map +1 -0
- package/dist/cjs/index.d.ts +63 -0
- package/dist/cjs/index.js +198 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger.d.ts +20 -0
- package/dist/cjs/logger.js +60 -0
- package/dist/cjs/logger.js.map +1 -0
- package/dist/cjs/middleware/actions.d.ts +12 -0
- package/dist/cjs/middleware/actions.js +37 -0
- package/dist/cjs/middleware/actions.js.map +1 -0
- package/dist/cjs/middleware/defaults/feeEstimator.d.ts +3 -0
- package/dist/cjs/middleware/defaults/feeEstimator.js +21 -0
- package/dist/cjs/middleware/defaults/feeEstimator.js.map +1 -0
- package/dist/cjs/middleware/defaults/gasEstimator.d.ts +3 -0
- package/dist/cjs/middleware/defaults/gasEstimator.js +26 -0
- package/dist/cjs/middleware/defaults/gasEstimator.js.map +1 -0
- package/dist/cjs/middleware/defaults/paymasterAndData.d.ts +2 -0
- package/dist/cjs/middleware/defaults/paymasterAndData.js +12 -0
- package/dist/cjs/middleware/defaults/paymasterAndData.js.map +1 -0
- package/dist/cjs/middleware/defaults/userOpSigner.d.ts +2 -0
- package/dist/cjs/middleware/defaults/userOpSigner.js +26 -0
- package/dist/cjs/middleware/defaults/userOpSigner.js.map +1 -0
- package/dist/cjs/middleware/noopMiddleware.d.ts +2 -0
- package/dist/cjs/middleware/noopMiddleware.js +8 -0
- package/dist/cjs/middleware/noopMiddleware.js.map +1 -0
- package/dist/cjs/middleware/types.d.ts +21 -0
- package/dist/cjs/middleware/types.js +3 -0
- package/dist/cjs/middleware/types.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/signer/local-account.d.ts +219 -0
- package/dist/cjs/signer/local-account.js +56 -0
- package/dist/cjs/signer/local-account.js.map +1 -0
- package/dist/cjs/signer/schema.d.ts +4 -0
- package/dist/cjs/signer/schema.js +16 -0
- package/dist/cjs/signer/schema.js.map +1 -0
- package/dist/cjs/signer/types.d.ts +15 -0
- package/dist/cjs/signer/types.js +3 -0
- package/dist/cjs/signer/types.js.map +1 -0
- package/dist/cjs/signer/utils.d.ts +15 -0
- package/dist/cjs/signer/utils.js +31 -0
- package/dist/cjs/signer/utils.js.map +1 -0
- package/dist/cjs/signer/wallet-client.d.ts +217 -0
- package/dist/cjs/signer/wallet-client.js +58 -0
- package/dist/cjs/signer/wallet-client.js.map +1 -0
- package/dist/cjs/transport/split.d.ts +9 -0
- package/dist/cjs/transport/split.js +26 -0
- package/dist/cjs/transport/split.js.map +1 -0
- package/dist/cjs/types.d.ts +158 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/bigint.d.ts +10 -0
- package/dist/cjs/utils/bigint.js +55 -0
- package/dist/cjs/utils/bigint.js.map +1 -0
- package/dist/cjs/utils/bytes.d.ts +7 -0
- package/dist/cjs/utils/bytes.js +11 -0
- package/dist/cjs/utils/bytes.js.map +1 -0
- package/dist/cjs/utils/defaults.d.ts +6 -0
- package/dist/cjs/utils/defaults.js +59 -0
- package/dist/cjs/utils/defaults.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +23 -0
- package/dist/cjs/utils/index.js +127 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/schema.d.ts +25 -0
- package/dist/cjs/utils/schema.js +35 -0
- package/dist/cjs/utils/schema.js.map +1 -0
- package/dist/cjs/utils/stateOverride.d.ts +4 -0
- package/dist/cjs/utils/stateOverride.js +52 -0
- package/dist/cjs/utils/stateOverride.js.map +1 -0
- package/dist/cjs/utils/testUtils.d.ts +6 -0
- package/dist/cjs/utils/testUtils.js +33 -0
- package/dist/cjs/utils/testUtils.js.map +1 -0
- package/dist/cjs/utils/types.d.ts +16 -0
- package/dist/cjs/utils/types.js +3 -0
- package/dist/cjs/utils/types.js.map +1 -0
- package/dist/cjs/utils/userop.d.ts +49 -0
- package/dist/cjs/utils/userop.js +75 -0
- package/dist/cjs/utils/userop.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -0
- package/dist/cjs/version.js +5 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/abis/EntryPointAbi_v6.d.ts +1018 -0
- package/dist/esm/abis/EntryPointAbi_v6.js +1310 -0
- package/dist/esm/abis/EntryPointAbi_v6.js.map +1 -0
- package/dist/esm/abis/EntryPointAbi_v7.d.ts +775 -0
- package/dist/esm/abis/EntryPointAbi_v7.js +658 -0
- package/dist/esm/abis/EntryPointAbi_v7.js.map +1 -0
- package/dist/esm/abis/SimpleAccountAbi_v6.d.ts +405 -0
- package/dist/esm/abis/SimpleAccountAbi_v6.js +525 -0
- package/dist/esm/abis/SimpleAccountAbi_v6.js.map +1 -0
- package/dist/esm/abis/SimpleAccountAbi_v7.d.ts +410 -0
- package/dist/esm/abis/SimpleAccountAbi_v7.js +535 -0
- package/dist/esm/abis/SimpleAccountAbi_v7.js.map +1 -0
- package/dist/esm/abis/SimpleAccountFactoryAbi.d.ts +55 -0
- package/dist/esm/abis/SimpleAccountFactoryAbi.js +75 -0
- package/dist/esm/abis/SimpleAccountFactoryAbi.js.map +1 -0
- package/dist/esm/account/base.d.ts +49 -0
- package/dist/esm/account/base.js +253 -0
- package/dist/esm/account/base.js.map +1 -0
- package/dist/esm/account/schema.d.ts +100 -0
- package/dist/esm/account/schema.js +35 -0
- package/dist/esm/account/schema.js.map +1 -0
- package/dist/esm/account/simple.d.ts +14 -0
- package/dist/esm/account/simple.js +115 -0
- package/dist/esm/account/simple.js.map +1 -0
- package/dist/esm/account/smartContractAccount.d.ts +68 -0
- package/dist/esm/account/smartContractAccount.js +167 -0
- package/dist/esm/account/smartContractAccount.js.map +1 -0
- package/dist/esm/account/types.d.ts +30 -0
- package/dist/esm/account/types.js +2 -0
- package/dist/esm/account/types.js.map +1 -0
- package/dist/esm/actions/bundler/estimateUserOperationGas.d.ts +8 -0
- package/dist/esm/actions/bundler/estimateUserOperationGas.js +14 -0
- package/dist/esm/actions/bundler/estimateUserOperationGas.js.map +1 -0
- package/dist/esm/actions/bundler/getSupportedEntryPoints.d.ts +3 -0
- package/dist/esm/actions/bundler/getSupportedEntryPoints.js +7 -0
- package/dist/esm/actions/bundler/getSupportedEntryPoints.js.map +1 -0
- package/dist/esm/actions/bundler/getUserOperationByHash.d.ts +6 -0
- package/dist/esm/actions/bundler/getUserOperationByHash.js +7 -0
- package/dist/esm/actions/bundler/getUserOperationByHash.js.map +1 -0
- package/dist/esm/actions/bundler/getUserOperationReceipt.d.ts +6 -0
- package/dist/esm/actions/bundler/getUserOperationReceipt.js +7 -0
- package/dist/esm/actions/bundler/getUserOperationReceipt.js.map +1 -0
- package/dist/esm/actions/bundler/sendRawUserOperation.d.ts +7 -0
- package/dist/esm/actions/bundler/sendRawUserOperation.js +7 -0
- package/dist/esm/actions/bundler/sendRawUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/buildUserOperation.d.ts +5 -0
- package/dist/esm/actions/smartAccount/buildUserOperation.js +22 -0
- package/dist/esm/actions/smartAccount/buildUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/buildUserOperationFromTx.d.ts +5 -0
- package/dist/esm/actions/smartAccount/buildUserOperationFromTx.js +36 -0
- package/dist/esm/actions/smartAccount/buildUserOperationFromTx.js.map +1 -0
- package/dist/esm/actions/smartAccount/buildUserOperationFromTxs.d.ts +4 -0
- package/dist/esm/actions/smartAccount/buildUserOperationFromTxs.js +58 -0
- package/dist/esm/actions/smartAccount/buildUserOperationFromTxs.js.map +1 -0
- package/dist/esm/actions/smartAccount/checkGasSponsorshipEligibility.d.ts +4 -0
- package/dist/esm/actions/smartAccount/checkGasSponsorshipEligibility.js +30 -0
- package/dist/esm/actions/smartAccount/checkGasSponsorshipEligibility.js.map +1 -0
- package/dist/esm/actions/smartAccount/dropAndReplaceUserOperation.d.ts +5 -0
- package/dist/esm/actions/smartAccount/dropAndReplaceUserOperation.js +60 -0
- package/dist/esm/actions/smartAccount/dropAndReplaceUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/estimateUserOperationGas.d.ts +5 -0
- package/dist/esm/actions/smartAccount/estimateUserOperationGas.js +20 -0
- package/dist/esm/actions/smartAccount/estimateUserOperationGas.js.map +1 -0
- package/dist/esm/actions/smartAccount/getAddress.d.ts +4 -0
- package/dist/esm/actions/smartAccount/getAddress.js +9 -0
- package/dist/esm/actions/smartAccount/getAddress.js.map +1 -0
- package/dist/esm/actions/smartAccount/internal/initUserOperation.d.ts +7 -0
- package/dist/esm/actions/smartAccount/internal/initUserOperation.js +38 -0
- package/dist/esm/actions/smartAccount/internal/initUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/internal/runMiddlewareStack.d.ts +10 -0
- package/dist/esm/actions/smartAccount/internal/runMiddlewareStack.js +43 -0
- package/dist/esm/actions/smartAccount/internal/runMiddlewareStack.js.map +1 -0
- package/dist/esm/actions/smartAccount/internal/sendUserOperation.d.ts +10 -0
- package/dist/esm/actions/smartAccount/internal/sendUserOperation.js +24 -0
- package/dist/esm/actions/smartAccount/internal/sendUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/sendTransaction.d.ts +5 -0
- package/dist/esm/actions/smartAccount/sendTransaction.js +31 -0
- package/dist/esm/actions/smartAccount/sendTransaction.js.map +1 -0
- package/dist/esm/actions/smartAccount/sendTransactions.d.ts +4 -0
- package/dist/esm/actions/smartAccount/sendTransactions.js +32 -0
- package/dist/esm/actions/smartAccount/sendTransactions.js.map +1 -0
- package/dist/esm/actions/smartAccount/sendUserOperation.d.ts +5 -0
- package/dist/esm/actions/smartAccount/sendUserOperation.js +27 -0
- package/dist/esm/actions/smartAccount/sendUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/signMessage.d.ts +6 -0
- package/dist/esm/actions/smartAccount/signMessage.js +8 -0
- package/dist/esm/actions/smartAccount/signMessage.js.map +1 -0
- package/dist/esm/actions/smartAccount/signMessageWith6492.d.ts +4 -0
- package/dist/esm/actions/smartAccount/signMessageWith6492.js +8 -0
- package/dist/esm/actions/smartAccount/signMessageWith6492.js.map +1 -0
- package/dist/esm/actions/smartAccount/signTypedData.d.ts +10 -0
- package/dist/esm/actions/smartAccount/signTypedData.js +8 -0
- package/dist/esm/actions/smartAccount/signTypedData.js.map +1 -0
- package/dist/esm/actions/smartAccount/signTypedDataWith6492.d.ts +6 -0
- package/dist/esm/actions/smartAccount/signTypedDataWith6492.js +8 -0
- package/dist/esm/actions/smartAccount/signTypedDataWith6492.js.map +1 -0
- package/dist/esm/actions/smartAccount/signUserOperation.d.ts +5 -0
- package/dist/esm/actions/smartAccount/signUserOperation.js +26 -0
- package/dist/esm/actions/smartAccount/signUserOperation.js.map +1 -0
- package/dist/esm/actions/smartAccount/types.d.ts +42 -0
- package/dist/esm/actions/smartAccount/types.js +2 -0
- package/dist/esm/actions/smartAccount/types.js.map +1 -0
- package/dist/esm/actions/smartAccount/upgradeAccount.d.ts +4 -0
- package/dist/esm/actions/smartAccount/upgradeAccount.js +34 -0
- package/dist/esm/actions/smartAccount/upgradeAccount.js.map +1 -0
- package/dist/esm/actions/smartAccount/waitForUserOperationTransacation.d.ts +3 -0
- package/dist/esm/actions/smartAccount/waitForUserOperationTransacation.js +32 -0
- package/dist/esm/actions/smartAccount/waitForUserOperationTransacation.js.map +1 -0
- package/dist/esm/chains/index.d.ts +20 -0
- package/dist/esm/chains/index.js +166 -0
- package/dist/esm/chains/index.js.map +1 -0
- package/dist/esm/client/bundlerClient.d.ts +10 -0
- package/dist/esm/client/bundlerClient.js +46 -0
- package/dist/esm/client/bundlerClient.js.map +1 -0
- package/dist/esm/client/decorators/bundlerClient.d.ts +41 -0
- package/dist/esm/client/decorators/bundlerClient.js +13 -0
- package/dist/esm/client/decorators/bundlerClient.js.map +1 -0
- package/dist/esm/client/decorators/smartAccountClient.d.ts +35 -0
- package/dist/esm/client/decorators/smartAccountClient.js +40 -0
- package/dist/esm/client/decorators/smartAccountClient.js.map +1 -0
- package/dist/esm/client/isSmartAccountClient.d.ts +5 -0
- package/dist/esm/client/isSmartAccountClient.js +13 -0
- package/dist/esm/client/isSmartAccountClient.js.map +1 -0
- package/dist/esm/client/schema.d.ts +767 -0
- package/dist/esm/client/schema.js +59 -0
- package/dist/esm/client/schema.js.map +1 -0
- package/dist/esm/client/smartAccountClient.d.ts +33 -0
- package/dist/esm/client/smartAccountClient.js +90 -0
- package/dist/esm/client/smartAccountClient.js.map +1 -0
- package/dist/esm/client/types.d.ts +26 -0
- package/dist/esm/client/types.js +2 -0
- package/dist/esm/client/types.js.map +1 -0
- package/dist/esm/ens/utils.d.ts +6 -0
- package/dist/esm/ens/utils.js +24 -0
- package/dist/esm/ens/utils.js.map +1 -0
- package/dist/esm/entrypoint/0.6.d.ts +1029 -0
- package/dist/esm/entrypoint/0.6.js +47 -0
- package/dist/esm/entrypoint/0.6.js.map +1 -0
- package/dist/esm/entrypoint/0.7.d.ts +792 -0
- package/dist/esm/entrypoint/0.7.js +82 -0
- package/dist/esm/entrypoint/0.7.js.map +1 -0
- package/dist/esm/entrypoint/index.d.ts +8 -0
- package/dist/esm/entrypoint/index.js +46 -0
- package/dist/esm/entrypoint/index.js.map +1 -0
- package/dist/esm/entrypoint/types.d.ts +46 -0
- package/dist/esm/entrypoint/types.js +2 -0
- package/dist/esm/entrypoint/types.js.map +1 -0
- package/dist/esm/errors/account.d.ts +47 -0
- package/dist/esm/errors/account.js +126 -0
- package/dist/esm/errors/account.js.map +1 -0
- package/dist/esm/errors/base.d.ts +18 -0
- package/dist/esm/errors/base.js +35 -0
- package/dist/esm/errors/base.js.map +1 -0
- package/dist/esm/errors/client.d.ts +14 -0
- package/dist/esm/errors/client.js +38 -0
- package/dist/esm/errors/client.js.map +1 -0
- package/dist/esm/errors/entrypoint.d.ts +10 -0
- package/dist/esm/errors/entrypoint.js +27 -0
- package/dist/esm/errors/entrypoint.js.map +1 -0
- package/dist/esm/errors/signer.d.ts +5 -0
- package/dist/esm/errors/signer.js +16 -0
- package/dist/esm/errors/signer.js.map +1 -0
- package/dist/esm/errors/transaction.d.ts +10 -0
- package/dist/esm/errors/transaction.js +24 -0
- package/dist/esm/errors/transaction.js.map +1 -0
- package/dist/esm/errors/useroperation.d.ts +10 -0
- package/dist/esm/errors/useroperation.js +29 -0
- package/dist/esm/errors/useroperation.js.map +1 -0
- package/dist/esm/index.d.ts +63 -0
- package/dist/esm/index.js +48 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logger.d.ts +20 -0
- package/dist/esm/logger.js +56 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/middleware/actions.d.ts +12 -0
- package/dist/esm/middleware/actions.js +33 -0
- package/dist/esm/middleware/actions.js.map +1 -0
- package/dist/esm/middleware/defaults/feeEstimator.d.ts +3 -0
- package/dist/esm/middleware/defaults/feeEstimator.js +17 -0
- package/dist/esm/middleware/defaults/feeEstimator.js.map +1 -0
- package/dist/esm/middleware/defaults/gasEstimator.d.ts +3 -0
- package/dist/esm/middleware/defaults/gasEstimator.js +22 -0
- package/dist/esm/middleware/defaults/gasEstimator.js.map +1 -0
- package/dist/esm/middleware/defaults/paymasterAndData.d.ts +2 -0
- package/dist/esm/middleware/defaults/paymasterAndData.js +8 -0
- package/dist/esm/middleware/defaults/paymasterAndData.js.map +1 -0
- package/dist/esm/middleware/defaults/userOpSigner.d.ts +2 -0
- package/dist/esm/middleware/defaults/userOpSigner.js +22 -0
- package/dist/esm/middleware/defaults/userOpSigner.js.map +1 -0
- package/dist/esm/middleware/noopMiddleware.d.ts +2 -0
- package/dist/esm/middleware/noopMiddleware.js +4 -0
- package/dist/esm/middleware/noopMiddleware.js.map +1 -0
- package/dist/esm/middleware/types.d.ts +21 -0
- package/dist/esm/middleware/types.js +2 -0
- package/dist/esm/middleware/types.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/signer/local-account.d.ts +219 -0
- package/dist/esm/signer/local-account.js +53 -0
- package/dist/esm/signer/local-account.js.map +1 -0
- package/dist/esm/signer/schema.d.ts +4 -0
- package/dist/esm/signer/schema.js +12 -0
- package/dist/esm/signer/schema.js.map +1 -0
- package/dist/esm/signer/types.d.ts +15 -0
- package/dist/esm/signer/types.js +2 -0
- package/dist/esm/signer/types.js.map +1 -0
- package/dist/esm/signer/utils.d.ts +15 -0
- package/dist/esm/signer/utils.js +26 -0
- package/dist/esm/signer/utils.js.map +1 -0
- package/dist/esm/signer/wallet-client.d.ts +217 -0
- package/dist/esm/signer/wallet-client.js +54 -0
- package/dist/esm/signer/wallet-client.js.map +1 -0
- package/dist/esm/transport/split.d.ts +9 -0
- package/dist/esm/transport/split.js +22 -0
- package/dist/esm/transport/split.js.map +1 -0
- package/dist/esm/types.d.ts +158 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/bigint.d.ts +10 -0
- package/dist/esm/utils/bigint.js +47 -0
- package/dist/esm/utils/bigint.js.map +1 -0
- package/dist/esm/utils/bytes.d.ts +7 -0
- package/dist/esm/utils/bytes.js +7 -0
- package/dist/esm/utils/bytes.js.map +1 -0
- package/dist/esm/utils/defaults.d.ts +6 -0
- package/dist/esm/utils/defaults.js +55 -0
- package/dist/esm/utils/defaults.js.map +1 -0
- package/dist/esm/utils/index.d.ts +23 -0
- package/dist/esm/utils/index.js +88 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/schema.d.ts +25 -0
- package/dist/esm/utils/schema.js +30 -0
- package/dist/esm/utils/schema.js.map +1 -0
- package/dist/esm/utils/stateOverride.d.ts +4 -0
- package/dist/esm/utils/stateOverride.js +48 -0
- package/dist/esm/utils/stateOverride.js.map +1 -0
- package/dist/esm/utils/testUtils.d.ts +6 -0
- package/dist/esm/utils/testUtils.js +28 -0
- package/dist/esm/utils/testUtils.js.map +1 -0
- package/dist/esm/utils/types.d.ts +16 -0
- package/dist/esm/utils/types.js +2 -0
- package/dist/esm/utils/types.js.map +1 -0
- package/dist/esm/utils/userop.d.ts +49 -0
- package/dist/esm/utils/userop.js +62 -0
- package/dist/esm/utils/userop.js.map +1 -0
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/abis/EntryPointAbi_v6.d.ts +1019 -0
- package/dist/types/abis/EntryPointAbi_v6.d.ts.map +1 -0
- package/dist/types/abis/EntryPointAbi_v7.d.ts +776 -0
- package/dist/types/abis/EntryPointAbi_v7.d.ts.map +1 -0
- package/dist/types/abis/SimpleAccountAbi_v6.d.ts +406 -0
- package/dist/types/abis/SimpleAccountAbi_v6.d.ts.map +1 -0
- package/dist/types/abis/SimpleAccountAbi_v7.d.ts +411 -0
- package/dist/types/abis/SimpleAccountAbi_v7.d.ts.map +1 -0
- package/dist/types/abis/SimpleAccountFactoryAbi.d.ts +56 -0
- package/dist/types/abis/SimpleAccountFactoryAbi.d.ts.map +1 -0
- package/dist/types/account/base.d.ts +128 -0
- package/dist/types/account/base.d.ts.map +1 -0
- package/dist/types/account/schema.d.ts +101 -0
- package/dist/types/account/schema.d.ts.map +1 -0
- package/dist/types/account/simple.d.ts +15 -0
- package/dist/types/account/simple.d.ts.map +1 -0
- package/dist/types/account/smartContractAccount.d.ts +69 -0
- package/dist/types/account/smartContractAccount.d.ts.map +1 -0
- package/dist/types/account/types.d.ts +144 -0
- package/dist/types/account/types.d.ts.map +1 -0
- package/dist/types/actions/bundler/estimateUserOperationGas.d.ts +9 -0
- package/dist/types/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
- package/dist/types/actions/bundler/getSupportedEntryPoints.d.ts +4 -0
- package/dist/types/actions/bundler/getSupportedEntryPoints.d.ts.map +1 -0
- package/dist/types/actions/bundler/getUserOperationByHash.d.ts +7 -0
- package/dist/types/actions/bundler/getUserOperationByHash.d.ts.map +1 -0
- package/dist/types/actions/bundler/getUserOperationReceipt.d.ts +7 -0
- package/dist/types/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
- package/dist/types/actions/bundler/sendRawUserOperation.d.ts +8 -0
- package/dist/types/actions/bundler/sendRawUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/buildUserOperation.d.ts +6 -0
- package/dist/types/actions/smartAccount/buildUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/buildUserOperationFromTx.d.ts +45 -0
- package/dist/types/actions/smartAccount/buildUserOperationFromTx.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/buildUserOperationFromTxs.d.ts +75 -0
- package/dist/types/actions/smartAccount/buildUserOperationFromTxs.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/checkGasSponsorshipEligibility.d.ts +33 -0
- package/dist/types/actions/smartAccount/checkGasSponsorshipEligibility.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/dropAndReplaceUserOperation.d.ts +6 -0
- package/dist/types/actions/smartAccount/dropAndReplaceUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/estimateUserOperationGas.d.ts +19 -0
- package/dist/types/actions/smartAccount/estimateUserOperationGas.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/getAddress.d.ts +5 -0
- package/dist/types/actions/smartAccount/getAddress.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/internal/initUserOperation.d.ts +22 -0
- package/dist/types/actions/smartAccount/internal/initUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/internal/runMiddlewareStack.d.ts +25 -0
- package/dist/types/actions/smartAccount/internal/runMiddlewareStack.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/internal/sendUserOperation.d.ts +18 -0
- package/dist/types/actions/smartAccount/internal/sendUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/sendTransaction.d.ts +6 -0
- package/dist/types/actions/smartAccount/sendTransaction.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/sendTransactions.d.ts +5 -0
- package/dist/types/actions/smartAccount/sendTransactions.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/sendUserOperation.d.ts +13 -0
- package/dist/types/actions/smartAccount/sendUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/signMessage.d.ts +7 -0
- package/dist/types/actions/smartAccount/signMessage.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/signMessageWith6492.d.ts +5 -0
- package/dist/types/actions/smartAccount/signMessageWith6492.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/signTypedData.d.ts +11 -0
- package/dist/types/actions/smartAccount/signTypedData.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/signTypedDataWith6492.d.ts +7 -0
- package/dist/types/actions/smartAccount/signTypedDataWith6492.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/signUserOperation.d.ts +6 -0
- package/dist/types/actions/smartAccount/signUserOperation.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/types.d.ts +57 -0
- package/dist/types/actions/smartAccount/types.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/upgradeAccount.d.ts +5 -0
- package/dist/types/actions/smartAccount/upgradeAccount.d.ts.map +1 -0
- package/dist/types/actions/smartAccount/waitForUserOperationTransacation.d.ts +4 -0
- package/dist/types/actions/smartAccount/waitForUserOperationTransacation.d.ts.map +1 -0
- package/dist/types/chains/index.d.ts +21 -0
- package/dist/types/chains/index.d.ts.map +1 -0
- package/dist/types/client/bundlerClient.d.ts +17 -0
- package/dist/types/client/bundlerClient.d.ts.map +1 -0
- package/dist/types/client/decorators/bundlerClient.d.ts +74 -0
- package/dist/types/client/decorators/bundlerClient.d.ts.map +1 -0
- package/dist/types/client/decorators/smartAccountClient.d.ts +36 -0
- package/dist/types/client/decorators/smartAccountClient.d.ts.map +1 -0
- package/dist/types/client/isSmartAccountClient.d.ts +22 -0
- package/dist/types/client/isSmartAccountClient.d.ts.map +1 -0
- package/dist/types/client/schema.d.ts +780 -0
- package/dist/types/client/schema.d.ts.map +1 -0
- package/dist/types/client/smartAccountClient.d.ts +34 -0
- package/dist/types/client/smartAccountClient.d.ts.map +1 -0
- package/dist/types/client/types.d.ts +27 -0
- package/dist/types/client/types.d.ts.map +1 -0
- package/dist/types/ens/utils.d.ts +7 -0
- package/dist/types/ens/utils.d.ts.map +1 -0
- package/dist/types/entrypoint/0.6.d.ts +1030 -0
- package/dist/types/entrypoint/0.6.d.ts.map +1 -0
- package/dist/types/entrypoint/0.7.d.ts +793 -0
- package/dist/types/entrypoint/0.7.d.ts.map +1 -0
- package/dist/types/entrypoint/index.d.ts +9 -0
- package/dist/types/entrypoint/index.d.ts.map +1 -0
- package/dist/types/entrypoint/types.d.ts +64 -0
- package/dist/types/entrypoint/types.d.ts.map +1 -0
- package/dist/types/errors/account.d.ts +48 -0
- package/dist/types/errors/account.d.ts.map +1 -0
- package/dist/types/errors/base.d.ts +19 -0
- package/dist/types/errors/base.d.ts.map +1 -0
- package/dist/types/errors/client.d.ts +15 -0
- package/dist/types/errors/client.d.ts.map +1 -0
- package/dist/types/errors/entrypoint.d.ts +11 -0
- package/dist/types/errors/entrypoint.d.ts.map +1 -0
- package/dist/types/errors/signer.d.ts +6 -0
- package/dist/types/errors/signer.d.ts.map +1 -0
- package/dist/types/errors/transaction.d.ts +11 -0
- package/dist/types/errors/transaction.d.ts.map +1 -0
- package/dist/types/errors/useroperation.d.ts +36 -0
- package/dist/types/errors/useroperation.d.ts.map +1 -0
- package/dist/types/index.d.ts +64 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger.d.ts +21 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/middleware/actions.d.ts +27 -0
- package/dist/types/middleware/actions.d.ts.map +1 -0
- package/dist/types/middleware/defaults/feeEstimator.d.ts +4 -0
- package/dist/types/middleware/defaults/feeEstimator.d.ts.map +1 -0
- package/dist/types/middleware/defaults/gasEstimator.d.ts +12 -0
- package/dist/types/middleware/defaults/gasEstimator.d.ts.map +1 -0
- package/dist/types/middleware/defaults/paymasterAndData.d.ts +3 -0
- package/dist/types/middleware/defaults/paymasterAndData.d.ts.map +1 -0
- package/dist/types/middleware/defaults/userOpSigner.d.ts +3 -0
- package/dist/types/middleware/defaults/userOpSigner.d.ts.map +1 -0
- package/dist/types/middleware/noopMiddleware.d.ts +10 -0
- package/dist/types/middleware/noopMiddleware.d.ts.map +1 -0
- package/dist/types/middleware/types.d.ts +22 -0
- package/dist/types/middleware/types.d.ts.map +1 -0
- package/dist/types/signer/local-account.d.ts +220 -0
- package/dist/types/signer/local-account.d.ts.map +1 -0
- package/dist/types/signer/schema.d.ts +5 -0
- package/dist/types/signer/schema.d.ts.map +1 -0
- package/dist/types/signer/types.d.ts +28 -0
- package/dist/types/signer/types.d.ts.map +1 -0
- package/dist/types/signer/utils.d.ts +16 -0
- package/dist/types/signer/utils.d.ts.map +1 -0
- package/dist/types/signer/wallet-client.d.ts +218 -0
- package/dist/types/signer/wallet-client.d.ts.map +1 -0
- package/dist/types/transport/split.d.ts +42 -0
- package/dist/types/transport/split.d.ts.map +1 -0
- package/dist/types/types.d.ts +176 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils/bigint.d.ts +56 -0
- package/dist/types/utils/bigint.d.ts.map +1 -0
- package/dist/types/utils/bytes.d.ts +17 -0
- package/dist/types/utils/bytes.d.ts.map +1 -0
- package/dist/types/utils/defaults.d.ts +15 -0
- package/dist/types/utils/defaults.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +63 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/schema.d.ts +29 -0
- package/dist/types/utils/schema.d.ts.map +1 -0
- package/dist/types/utils/stateOverride.d.ts +5 -0
- package/dist/types/utils/stateOverride.d.ts.map +1 -0
- package/dist/types/utils/testUtils.d.ts +7 -0
- package/dist/types/utils/testUtils.d.ts.map +1 -0
- package/dist/types/utils/types.d.ts +39 -0
- package/dist/types/utils/types.d.ts.map +1 -0
- package/dist/types/utils/userop.d.ts +129 -0
- package/dist/types/utils/userop.d.ts.map +1 -0
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +70 -0
- package/src/abis/EntryPointAbi_v6.ts +1309 -0
- package/src/abis/EntryPointAbi_v7.ts +658 -0
- package/src/abis/SimpleAccountAbi_v6.ts +524 -0
- package/src/abis/SimpleAccountAbi_v7.ts +534 -0
- package/src/abis/SimpleAccountFactoryAbi.ts +74 -0
- package/src/account/base.ts +415 -0
- package/src/account/schema.ts +51 -0
- package/src/account/simple.ts +215 -0
- package/src/account/smartContractAccount.ts +406 -0
- package/src/account/types.ts +184 -0
- package/src/actions/bundler/estimateUserOperationGas.ts +32 -0
- package/src/actions/bundler/getSupportedEntryPoints.ts +13 -0
- package/src/actions/bundler/getUserOperationByHash.ts +17 -0
- package/src/actions/bundler/getUserOperationReceipt.ts +17 -0
- package/src/actions/bundler/sendRawUserOperation.ts +20 -0
- package/src/actions/smartAccount/buildUserOperation.ts +52 -0
- package/src/actions/smartAccount/buildUserOperationFromTx.ts +112 -0
- package/src/actions/smartAccount/buildUserOperationFromTxs.ts +168 -0
- package/src/actions/smartAccount/checkGasSponsorshipEligibility.ts +86 -0
- package/src/actions/smartAccount/dropAndReplaceUserOperation.ts +111 -0
- package/src/actions/smartAccount/estimateUserOperationGas.ts +65 -0
- package/src/actions/smartAccount/getAddress.ts +25 -0
- package/src/actions/smartAccount/internal/initUserOperation.ts +93 -0
- package/src/actions/smartAccount/internal/runMiddlewareStack.ts +121 -0
- package/src/actions/smartAccount/internal/sendUserOperation.ts +64 -0
- package/src/actions/smartAccount/sendTransaction.ts +73 -0
- package/src/actions/smartAccount/sendTransactions.ts +53 -0
- package/src/actions/smartAccount/sendUserOperation.ts +65 -0
- package/src/actions/smartAccount/signMessage.ts +28 -0
- package/src/actions/smartAccount/signMessageWith6492.ts +21 -0
- package/src/actions/smartAccount/signTypedData.ts +42 -0
- package/src/actions/smartAccount/signTypedDataWith6492.ts +23 -0
- package/src/actions/smartAccount/signUserOperation.ts +54 -0
- package/src/actions/smartAccount/types.ts +158 -0
- package/src/actions/smartAccount/upgradeAccount.ts +66 -0
- package/src/actions/smartAccount/waitForUserOperationTransacation.ts +58 -0
- package/src/chains/index.ts +194 -0
- package/src/client/bundlerClient.ts +107 -0
- package/src/client/decorators/bundlerClient.ts +129 -0
- package/src/client/decorators/smartAccountClient.ts +177 -0
- package/src/client/isSmartAccountClient.ts +53 -0
- package/src/client/schema.ts +92 -0
- package/src/client/smartAccountClient.ts +276 -0
- package/src/client/types.ts +51 -0
- package/src/ens/utils.ts +37 -0
- package/src/entrypoint/0.6.ts +74 -0
- package/src/entrypoint/0.7.ts +153 -0
- package/src/entrypoint/index.ts +152 -0
- package/src/entrypoint/types.ts +120 -0
- package/src/errors/account.ts +87 -0
- package/src/errors/base.ts +48 -0
- package/src/errors/client.ts +28 -0
- package/src/errors/entrypoint.ts +25 -0
- package/src/errors/signer.ts +13 -0
- package/src/errors/transaction.ts +16 -0
- package/src/errors/useroperation.ts +54 -0
- package/src/index.ts +172 -0
- package/src/logger.ts +58 -0
- package/src/middleware/actions.ts +92 -0
- package/src/middleware/defaults/feeEstimator.ts +50 -0
- package/src/middleware/defaults/gasEstimator.ts +66 -0
- package/src/middleware/defaults/paymasterAndData.ts +13 -0
- package/src/middleware/defaults/userOpSigner.ts +35 -0
- package/src/middleware/noopMiddleware.ts +12 -0
- package/src/middleware/types.ts +49 -0
- package/src/signer/local-account.ts +59 -0
- package/src/signer/schema.ts +16 -0
- package/src/signer/types.ts +46 -0
- package/src/signer/utils.ts +68 -0
- package/src/signer/wallet-client.ts +49 -0
- package/src/transport/split.ts +69 -0
- package/src/types.ts +411 -0
- package/src/utils/bigint.ts +118 -0
- package/src/utils/bytes.ts +23 -0
- package/src/utils/defaults.ts +93 -0
- package/src/utils/index.ts +173 -0
- package/src/utils/schema.ts +52 -0
- package/src/utils/stateOverride.ts +80 -0
- package/src/utils/testUtils.ts +42 -0
- package/src/utils/types.ts +94 -0
- package/src/utils/userop.ts +220 -0
- package/src/version.ts +3 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export const SimpleAccountFactoryAbi = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [
|
|
4
|
+
{
|
|
5
|
+
internalType: "contract IEntryPoint",
|
|
6
|
+
name: "_entryPoint",
|
|
7
|
+
type: "address",
|
|
8
|
+
},
|
|
9
|
+
],
|
|
10
|
+
stateMutability: "nonpayable",
|
|
11
|
+
type: "constructor",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
inputs: [],
|
|
15
|
+
name: "accountImplementation",
|
|
16
|
+
outputs: [
|
|
17
|
+
{
|
|
18
|
+
internalType: "contract SimpleAccount",
|
|
19
|
+
name: "",
|
|
20
|
+
type: "address",
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
stateMutability: "view",
|
|
24
|
+
type: "function",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
inputs: [
|
|
28
|
+
{
|
|
29
|
+
internalType: "address",
|
|
30
|
+
name: "owner",
|
|
31
|
+
type: "address",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
internalType: "uint256",
|
|
35
|
+
name: "salt",
|
|
36
|
+
type: "uint256",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
name: "createAccount",
|
|
40
|
+
outputs: [
|
|
41
|
+
{
|
|
42
|
+
internalType: "contract SimpleAccount",
|
|
43
|
+
name: "ret",
|
|
44
|
+
type: "address",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
stateMutability: "nonpayable",
|
|
48
|
+
type: "function",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
inputs: [
|
|
52
|
+
{
|
|
53
|
+
internalType: "address",
|
|
54
|
+
name: "owner",
|
|
55
|
+
type: "address",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
internalType: "uint256",
|
|
59
|
+
name: "salt",
|
|
60
|
+
type: "uint256",
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
name: "getAddress",
|
|
64
|
+
outputs: [
|
|
65
|
+
{
|
|
66
|
+
internalType: "address",
|
|
67
|
+
name: "",
|
|
68
|
+
type: "address",
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
stateMutability: "view",
|
|
72
|
+
type: "function",
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
//# sourceMappingURL=SimpleAccountFactoryAbi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleAccountFactoryAbi.js","sourceRoot":"","sources":["../../../src/abis/SimpleAccountFactoryAbi.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,sBAAsB;gBACpC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,wBAAwB;gBACtC,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,wBAAwB;gBACtC,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAC","sourcesContent":["export const SimpleAccountFactoryAbi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"_entryPoint\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"accountImplementation\",\n outputs: [\n {\n internalType: \"contract SimpleAccount\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n name: \"createAccount\",\n outputs: [\n {\n internalType: \"contract SimpleAccount\",\n name: \"ret\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n name: \"getAddress\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Address } from "abitype";
|
|
2
|
+
import { type GetContractReturnType, type Hash, type Hex, type HttpTransport, type PublicClient, type Transport } from "viem";
|
|
3
|
+
import { EntryPointAbi_v6 as EntryPointAbi } from "../abis/EntryPointAbi_v6.js";
|
|
4
|
+
import { type BundlerClient } from "../client/bundlerClient.js";
|
|
5
|
+
import type { SmartAccountSigner } from "../signer/types.js";
|
|
6
|
+
import type { BatchUserOperationCallData, NullAddress } from "../types.js";
|
|
7
|
+
import type { BaseSmartAccountParams, ISmartContractAccount, SignTypedDataParams } from "./types.js";
|
|
8
|
+
export declare enum DeploymentState {
|
|
9
|
+
UNDEFINED = "0x0",
|
|
10
|
+
NOT_DEPLOYED = "0x1",
|
|
11
|
+
DEPLOYED = "0x2"
|
|
12
|
+
}
|
|
13
|
+
export declare abstract class BaseSmartContractAccount<TTransport extends Transport = Transport, TSigner extends SmartAccountSigner = SmartAccountSigner> implements ISmartContractAccount<TTransport, TSigner> {
|
|
14
|
+
protected factoryAddress: Address;
|
|
15
|
+
protected deploymentState: DeploymentState;
|
|
16
|
+
protected accountAddress?: Address;
|
|
17
|
+
protected accountInitCode?: Hex;
|
|
18
|
+
protected signer: TSigner;
|
|
19
|
+
protected entryPoint: GetContractReturnType<typeof EntryPointAbi, PublicClient>;
|
|
20
|
+
protected entryPointAddress: Address;
|
|
21
|
+
readonly rpcProvider: BundlerClient<TTransport> | BundlerClient<HttpTransport>;
|
|
22
|
+
constructor(params_: BaseSmartAccountParams<TTransport, TSigner>);
|
|
23
|
+
abstract getDummySignature(): Hex | Promise<Hex>;
|
|
24
|
+
abstract encodeExecute(target: string, value: bigint, data: string): Promise<Hash>;
|
|
25
|
+
abstract signMessage(msg: string | Uint8Array): Promise<Hash>;
|
|
26
|
+
protected abstract getAccountInitCode(): Promise<Hash>;
|
|
27
|
+
signUserOperationHash(uoHash: Hash): Promise<Hash>;
|
|
28
|
+
signTypedData(_params: SignTypedDataParams): Promise<`0x${string}`>;
|
|
29
|
+
signMessageWith6492(msg: string | Uint8Array): Promise<`0x${string}`>;
|
|
30
|
+
signTypedDataWith6492(params: SignTypedDataParams): Promise<`0x${string}`>;
|
|
31
|
+
encodeBatchExecute(_txs: BatchUserOperationCallData): Promise<`0x${string}`>;
|
|
32
|
+
encodeUpgradeToAndCall: (_upgradeToImplAddress: Address, _upgradeToInitData: Hex) => Promise<Hex>;
|
|
33
|
+
getNonce(): Promise<bigint>;
|
|
34
|
+
getInitCode(): Promise<Hex>;
|
|
35
|
+
getAddress(): Promise<Address>;
|
|
36
|
+
extend: <R>(fn: (self: this) => R) => this & R;
|
|
37
|
+
getSigner(): TSigner;
|
|
38
|
+
getFactoryAddress(): Address;
|
|
39
|
+
getEntryPointAddress(): Address;
|
|
40
|
+
isAccountDeployed(): Promise<boolean>;
|
|
41
|
+
getDeploymentState(): Promise<DeploymentState>;
|
|
42
|
+
protected parseFactoryAddressFromAccountInitCode(): Promise<[
|
|
43
|
+
Address,
|
|
44
|
+
Hex
|
|
45
|
+
]>;
|
|
46
|
+
protected getImplementationAddress(): Promise<NullAddress | Address>;
|
|
47
|
+
private _getAccountInitCode;
|
|
48
|
+
private create6492Signature;
|
|
49
|
+
}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { getContract, http, trim, } from "viem";
|
|
2
|
+
import { EntryPointAbi_v6 as EntryPointAbi } from "../abis/EntryPointAbi_v6.js";
|
|
3
|
+
import { createBundlerClient, } from "../client/bundlerClient.js";
|
|
4
|
+
import { getEntryPoint } from "../entrypoint/index.js";
|
|
5
|
+
import { BatchExecutionNotSupportedError, FailedToGetStorageSlotError, GetCounterFactualAddressError, UpgradeToAndCallNotSupportedError, } from "../errors/account.js";
|
|
6
|
+
import { InvalidRpcUrlError } from "../errors/client.js";
|
|
7
|
+
import { Logger } from "../logger.js";
|
|
8
|
+
import { wrapSignatureWith6492 } from "../signer/utils.js";
|
|
9
|
+
import { createBaseSmartAccountParamsSchema } from "./schema.js";
|
|
10
|
+
export var DeploymentState;
|
|
11
|
+
(function (DeploymentState) {
|
|
12
|
+
DeploymentState["UNDEFINED"] = "0x0";
|
|
13
|
+
DeploymentState["NOT_DEPLOYED"] = "0x1";
|
|
14
|
+
DeploymentState["DEPLOYED"] = "0x2";
|
|
15
|
+
})(DeploymentState || (DeploymentState = {}));
|
|
16
|
+
export class BaseSmartContractAccount {
|
|
17
|
+
constructor(params_) {
|
|
18
|
+
Object.defineProperty(this, "factoryAddress", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: void 0
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(this, "deploymentState", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: DeploymentState.UNDEFINED
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(this, "accountAddress", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
configurable: true,
|
|
33
|
+
writable: true,
|
|
34
|
+
value: void 0
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(this, "accountInitCode", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: void 0
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(this, "signer", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
value: void 0
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(this, "entryPoint", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
configurable: true,
|
|
51
|
+
writable: true,
|
|
52
|
+
value: void 0
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(this, "entryPointAddress", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
writable: true,
|
|
58
|
+
value: void 0
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(this, "rpcProvider", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
configurable: true,
|
|
63
|
+
writable: true,
|
|
64
|
+
value: void 0
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(this, "encodeUpgradeToAndCall", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
configurable: true,
|
|
69
|
+
writable: true,
|
|
70
|
+
value: async (_upgradeToImplAddress, _upgradeToInitData) => {
|
|
71
|
+
throw new UpgradeToAndCallNotSupportedError("BaseAccount");
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
Object.defineProperty(this, "extend", {
|
|
75
|
+
enumerable: true,
|
|
76
|
+
configurable: true,
|
|
77
|
+
writable: true,
|
|
78
|
+
value: (fn) => {
|
|
79
|
+
const extended = fn(this);
|
|
80
|
+
for (const key in this) {
|
|
81
|
+
delete extended[key];
|
|
82
|
+
}
|
|
83
|
+
return Object.assign(this, extended);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const params = createBaseSmartAccountParamsSchema().parse(params_);
|
|
87
|
+
this.entryPointAddress =
|
|
88
|
+
params.entryPointAddress ?? getEntryPoint(params.chain).address;
|
|
89
|
+
const rpcUrl = typeof params.rpcClient === "string"
|
|
90
|
+
? params.rpcClient
|
|
91
|
+
: params.rpcClient.transport.type === "http"
|
|
92
|
+
? params.rpcClient.transport.url || params.chain.rpcUrls.default.http[0]
|
|
93
|
+
: undefined;
|
|
94
|
+
const fetchOptions = typeof params.rpcClient === "string"
|
|
95
|
+
? undefined
|
|
96
|
+
: params.rpcClient.transport.type === "http"
|
|
97
|
+
? params.rpcClient.transport.fetchOptions
|
|
98
|
+
: undefined;
|
|
99
|
+
this.rpcProvider = rpcUrl
|
|
100
|
+
? createBundlerClient({
|
|
101
|
+
chain: params.chain,
|
|
102
|
+
transport: http(rpcUrl, {
|
|
103
|
+
fetchOptions: {
|
|
104
|
+
...fetchOptions,
|
|
105
|
+
headers: {
|
|
106
|
+
...fetchOptions?.headers,
|
|
107
|
+
...(rpcUrl.toLowerCase().indexOf("alchemy") > -1
|
|
108
|
+
? {
|
|
109
|
+
"Alchemy-Aa-Sdk-Signer": params.signer?.signerType || "unknown",
|
|
110
|
+
"Alchemy-Aa-Sdk-Factory-Address": params.factoryAddress,
|
|
111
|
+
}
|
|
112
|
+
: undefined),
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
}),
|
|
116
|
+
})
|
|
117
|
+
: params.rpcClient;
|
|
118
|
+
this.accountAddress = params.accountAddress;
|
|
119
|
+
this.factoryAddress = params.factoryAddress;
|
|
120
|
+
this.signer = params.signer;
|
|
121
|
+
this.accountInitCode = params.initCode;
|
|
122
|
+
this.entryPoint = getContract({
|
|
123
|
+
address: this.entryPointAddress,
|
|
124
|
+
abi: EntryPointAbi,
|
|
125
|
+
client: this.rpcProvider,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
async signUserOperationHash(uoHash) {
|
|
129
|
+
return this.signMessage(uoHash);
|
|
130
|
+
}
|
|
131
|
+
async signTypedData(_params) {
|
|
132
|
+
throw new Error("signTypedData not supported");
|
|
133
|
+
}
|
|
134
|
+
async signMessageWith6492(msg) {
|
|
135
|
+
const [isDeployed, signature] = await Promise.all([
|
|
136
|
+
this.isAccountDeployed(),
|
|
137
|
+
this.signMessage(msg),
|
|
138
|
+
]);
|
|
139
|
+
return this.create6492Signature(isDeployed, signature);
|
|
140
|
+
}
|
|
141
|
+
async signTypedDataWith6492(params) {
|
|
142
|
+
const [isDeployed, signature] = await Promise.all([
|
|
143
|
+
this.isAccountDeployed(),
|
|
144
|
+
this.signTypedData(params),
|
|
145
|
+
]);
|
|
146
|
+
return this.create6492Signature(isDeployed, signature);
|
|
147
|
+
}
|
|
148
|
+
async encodeBatchExecute(_txs) {
|
|
149
|
+
throw new BatchExecutionNotSupportedError("BaseAccount");
|
|
150
|
+
}
|
|
151
|
+
async getNonce() {
|
|
152
|
+
if (!(await this.isAccountDeployed())) {
|
|
153
|
+
return 0n;
|
|
154
|
+
}
|
|
155
|
+
const address = await this.getAddress();
|
|
156
|
+
return this.entryPoint.read.getNonce([address, BigInt(0)]);
|
|
157
|
+
}
|
|
158
|
+
async getInitCode() {
|
|
159
|
+
if (this.deploymentState === DeploymentState.DEPLOYED) {
|
|
160
|
+
return "0x";
|
|
161
|
+
}
|
|
162
|
+
const contractCode = await this.rpcProvider.getBytecode({
|
|
163
|
+
address: await this.getAddress(),
|
|
164
|
+
});
|
|
165
|
+
if ((contractCode?.length ?? 0) > 2) {
|
|
166
|
+
this.deploymentState = DeploymentState.DEPLOYED;
|
|
167
|
+
return "0x";
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.deploymentState = DeploymentState.NOT_DEPLOYED;
|
|
171
|
+
}
|
|
172
|
+
return this._getAccountInitCode();
|
|
173
|
+
}
|
|
174
|
+
async getAddress() {
|
|
175
|
+
if (!this.accountAddress) {
|
|
176
|
+
const initCode = await this._getAccountInitCode();
|
|
177
|
+
Logger.verbose("[BaseSmartContractAccount](getAddress) initCode: ", initCode);
|
|
178
|
+
try {
|
|
179
|
+
await this.entryPoint.simulate.getSenderAddress([initCode]);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
Logger.verbose("[BaseSmartContractAccount](getAddress) getSenderAddress err: ", err);
|
|
183
|
+
if (err.cause?.data?.errorName === "SenderAddressResult") {
|
|
184
|
+
this.accountAddress = err.cause.data.args[0];
|
|
185
|
+
Logger.verbose("[BaseSmartContractAccount](getAddress) entryPoint.getSenderAddress result:", this.accountAddress);
|
|
186
|
+
return this.accountAddress;
|
|
187
|
+
}
|
|
188
|
+
if (err.details === "Invalid URL") {
|
|
189
|
+
throw new InvalidRpcUrlError();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
throw new GetCounterFactualAddressError();
|
|
193
|
+
}
|
|
194
|
+
return this.accountAddress;
|
|
195
|
+
}
|
|
196
|
+
getSigner() {
|
|
197
|
+
return this.signer;
|
|
198
|
+
}
|
|
199
|
+
getFactoryAddress() {
|
|
200
|
+
return this.factoryAddress;
|
|
201
|
+
}
|
|
202
|
+
getEntryPointAddress() {
|
|
203
|
+
return this.entryPointAddress;
|
|
204
|
+
}
|
|
205
|
+
async isAccountDeployed() {
|
|
206
|
+
return (await this.getDeploymentState()) === DeploymentState.DEPLOYED;
|
|
207
|
+
}
|
|
208
|
+
async getDeploymentState() {
|
|
209
|
+
if (this.deploymentState === DeploymentState.UNDEFINED) {
|
|
210
|
+
const initCode = await this.getInitCode();
|
|
211
|
+
return initCode === "0x"
|
|
212
|
+
? DeploymentState.DEPLOYED
|
|
213
|
+
: DeploymentState.NOT_DEPLOYED;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
return this.deploymentState;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async parseFactoryAddressFromAccountInitCode() {
|
|
220
|
+
const initCode = await this._getAccountInitCode();
|
|
221
|
+
const factoryAddress = `0x${initCode.substring(2, 42)}`;
|
|
222
|
+
const factoryCalldata = `0x${initCode.substring(42)}`;
|
|
223
|
+
return [factoryAddress, factoryCalldata];
|
|
224
|
+
}
|
|
225
|
+
async getImplementationAddress() {
|
|
226
|
+
const accountAddress = await this.getAddress();
|
|
227
|
+
const storage = await this.rpcProvider.getStorageAt({
|
|
228
|
+
address: accountAddress,
|
|
229
|
+
slot: "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
|
|
230
|
+
});
|
|
231
|
+
if (storage == null) {
|
|
232
|
+
throw new FailedToGetStorageSlotError("0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", "Proxy Implementation Address");
|
|
233
|
+
}
|
|
234
|
+
return trim(storage);
|
|
235
|
+
}
|
|
236
|
+
async _getAccountInitCode() {
|
|
237
|
+
return this.accountInitCode ?? this.getAccountInitCode();
|
|
238
|
+
}
|
|
239
|
+
async create6492Signature(isDeployed, signature) {
|
|
240
|
+
if (isDeployed) {
|
|
241
|
+
return signature;
|
|
242
|
+
}
|
|
243
|
+
const [factoryAddress, factoryCalldata] = await this.parseFactoryAddressFromAccountInitCode();
|
|
244
|
+
Logger.verbose(`[BaseSmartContractAccount](create6492Signature)\
|
|
245
|
+
factoryAddress: ${factoryAddress}, factoryCalldata: ${factoryCalldata}`);
|
|
246
|
+
return wrapSignatureWith6492({
|
|
247
|
+
factoryAddress,
|
|
248
|
+
factoryCalldata,
|
|
249
|
+
signature,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/account/base.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address } from \"abitype\";\nimport {\n getContract,\n http,\n trim,\n type GetContractReturnType,\n type Hash,\n type Hex,\n type HttpTransport,\n type PublicClient,\n type Transport,\n} from \"viem\";\nimport { EntryPointAbi_v6 as EntryPointAbi } from \"../abis/EntryPointAbi_v6.js\";\nimport {\n createBundlerClient,\n type BundlerClient,\n} from \"../client/bundlerClient.js\";\nimport { getEntryPoint } from \"../entrypoint/index.js\";\nimport {\n BatchExecutionNotSupportedError,\n FailedToGetStorageSlotError,\n GetCounterFactualAddressError,\n UpgradeToAndCallNotSupportedError,\n} from \"../errors/account.js\";\nimport { InvalidRpcUrlError } from \"../errors/client.js\";\nimport { Logger } from \"../logger.js\";\nimport type { SmartAccountSigner } from \"../signer/types.js\";\nimport { wrapSignatureWith6492 } from \"../signer/utils.js\";\nimport type { BatchUserOperationCallData, NullAddress } from \"../types.js\";\nimport { createBaseSmartAccountParamsSchema } from \"./schema.js\";\nimport type {\n BaseSmartAccountParams,\n ISmartContractAccount,\n SignTypedDataParams,\n} from \"./types.js\";\n\nexport enum DeploymentState {\n UNDEFINED = \"0x0\",\n NOT_DEPLOYED = \"0x1\",\n DEPLOYED = \"0x2\",\n}\n\n/**\n * @deprecated use `toSmartContractAccount` instead for creating SmartAccountInstances\n */\nexport abstract class BaseSmartContractAccount<\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n> implements ISmartContractAccount<TTransport, TSigner>\n{\n protected factoryAddress: Address;\n protected deploymentState: DeploymentState = DeploymentState.UNDEFINED;\n protected accountAddress?: Address;\n protected accountInitCode?: Hex;\n protected signer: TSigner;\n protected entryPoint: GetContractReturnType<\n typeof EntryPointAbi,\n PublicClient\n >;\n protected entryPointAddress: Address;\n readonly rpcProvider:\n | BundlerClient<TTransport>\n | BundlerClient<HttpTransport>;\n\n constructor(params_: BaseSmartAccountParams<TTransport, TSigner>) {\n const params = createBaseSmartAccountParamsSchema<\n TTransport,\n TSigner\n >().parse(params_);\n\n this.entryPointAddress =\n params.entryPointAddress ?? getEntryPoint(params.chain).address;\n\n const rpcUrl =\n typeof params.rpcClient === \"string\"\n ? params.rpcClient\n : params.rpcClient.transport.type === \"http\"\n ? (\n params.rpcClient.transport as ReturnType<HttpTransport>[\"config\"] &\n ReturnType<HttpTransport>[\"value\"]\n ).url || params.chain.rpcUrls.default.http[0]\n : undefined;\n\n const fetchOptions =\n typeof params.rpcClient === \"string\"\n ? undefined\n : params.rpcClient.transport.type === \"http\"\n ? (\n params.rpcClient.transport as ReturnType<HttpTransport>[\"config\"] &\n ReturnType<HttpTransport>[\"value\"]\n ).fetchOptions\n : undefined;\n\n this.rpcProvider = rpcUrl\n ? createBundlerClient({\n chain: params.chain,\n transport: http(rpcUrl, {\n fetchOptions: {\n ...fetchOptions,\n headers: {\n ...fetchOptions?.headers,\n ...(rpcUrl.toLowerCase().indexOf(\"alchemy\") > -1\n ? {\n \"Alchemy-Aa-Sdk-Signer\":\n params.signer?.signerType || \"unknown\",\n \"Alchemy-Aa-Sdk-Factory-Address\": params.factoryAddress,\n }\n : undefined),\n },\n },\n }),\n })\n : (params.rpcClient as BundlerClient<TTransport>);\n\n this.accountAddress = params.accountAddress;\n this.factoryAddress = params.factoryAddress;\n this.signer = params.signer as TSigner;\n this.accountInitCode = params.initCode as Hex;\n\n this.entryPoint = getContract({\n address: this.entryPointAddress,\n abi: EntryPointAbi,\n client: this.rpcProvider as PublicClient,\n });\n }\n\n //#region abstract-methods\n\n /**\n * This method should return a signature that will not `revert` during validation.\n * It does not have to pass validation, just not cause the contract to revert.\n * This is required for gas estimation so that the gas estimate are accurate.\n *\n */\n abstract getDummySignature(): Hex | Promise<Hex>;\n\n /**\n * this method should return the abi encoded function data for a call to your contract's `execute` method\n *\n * @param target -- equivalent to `to` in a normal transaction\n * @param value -- equivalent to `value` in a normal transaction\n * @param data -- equivalent to `data` in a normal transaction\n * @returns abi encoded function data for a call to your contract's `execute` method\n */\n abstract encodeExecute(\n target: string,\n value: bigint,\n data: string\n ): Promise<Hash>;\n\n /**\n * this should return an ERC-191 compliant message and is used to sign UO Hashes\n *\n * @param msg -- the message to sign\n */\n abstract signMessage(msg: string | Uint8Array): Promise<Hash>;\n\n /**\n * this should return the init code that will be used to create an account if one does not exist.\n * This is the concatenation of the account's factory address and the abi encoded function data of the account factory's `createAccount` method.\n * https://github.com/eth-infinitism/account-abstraction/blob/abff2aca61a8f0934e533d0d352978055fddbd96/contracts/core/SenderCreator.sol#L12\n */\n protected abstract getAccountInitCode(): Promise<Hash>;\n\n //#endregion abstract-methods\n\n //#region optional-methods\n\n /**\n * If your account handles 1271 signatures of personal_sign differently\n * than it does UserOperations, you can implement two different approaches to signing\n *\n * @param uoHash -- The hash of the UserOperation to sign\n * @returns the signature of the UserOperation\n */\n async signUserOperationHash(uoHash: Hash): Promise<Hash> {\n return this.signMessage(uoHash);\n }\n\n /**\n * If your contract supports signing and verifying typed data,\n * you should implement this method.\n *\n * @param _params -- Typed Data params to sign\n */\n async signTypedData(_params: SignTypedDataParams): Promise<`0x${string}`> {\n throw new Error(\"signTypedData not supported\");\n }\n\n /**\n * This method should wrap the result of `signMessage` as per\n * [EIP-6492](https://eips.ethereum.org/EIPS/eip-6492)\n *\n * @param msg -- the message to sign\n * @returns the signature wrapped in 6492 format\n */\n async signMessageWith6492(msg: string | Uint8Array): Promise<`0x${string}`> {\n const [isDeployed, signature] = await Promise.all([\n this.isAccountDeployed(),\n this.signMessage(msg),\n ]);\n\n return this.create6492Signature(isDeployed, signature);\n }\n\n /**\n * Similar to the signMessageWith6492 method above,\n * this method should wrap the result of `signTypedData` as per\n * [EIP-6492](https://eips.ethereum.org/EIPS/eip-6492)\n *\n * @param params -- Typed Data params to sign\n * @returns the signature wrapped in 6492 format\n */\n async signTypedDataWith6492(\n params: SignTypedDataParams\n ): Promise<`0x${string}`> {\n const [isDeployed, signature] = await Promise.all([\n this.isAccountDeployed(),\n this.signTypedData(params),\n ]);\n\n return this.create6492Signature(isDeployed, signature);\n }\n\n /**\n * Not all contracts support batch execution.\n * If your contract does, this method should encode a list of\n * transactions into the call data that will be passed to your\n * contract's batch execution method.\n *\n * @param _txs -- the transactions to batch execute\n */\n async encodeBatchExecute(\n _txs: BatchUserOperationCallData\n ): Promise<`0x${string}`> {\n throw new BatchExecutionNotSupportedError(\"BaseAccount\");\n }\n\n /**\n * If your contract supports UUPS, you can implement this method which can be\n * used to upgrade the implementation of the account.\n *\n * @param _upgradeToImplAddress -- the implementation address of the contract you want to upgrade to\n * @param _upgradeToInitData -- the initialization data required by that account\n */\n encodeUpgradeToAndCall = async (\n _upgradeToImplAddress: Address,\n _upgradeToInitData: Hex\n ): Promise<Hex> => {\n throw new UpgradeToAndCallNotSupportedError(\"BaseAccount\");\n };\n //#endregion optional-methods\n\n // Extra implementations\n async getNonce(): Promise<bigint> {\n if (!(await this.isAccountDeployed())) {\n return 0n;\n }\n const address = await this.getAddress();\n return this.entryPoint.read.getNonce([address, BigInt(0)]);\n }\n\n async getInitCode(): Promise<Hex> {\n if (this.deploymentState === DeploymentState.DEPLOYED) {\n return \"0x\";\n }\n\n const contractCode = await this.rpcProvider.getBytecode({\n address: await this.getAddress(),\n });\n\n if ((contractCode?.length ?? 0) > 2) {\n this.deploymentState = DeploymentState.DEPLOYED;\n return \"0x\";\n } else {\n this.deploymentState = DeploymentState.NOT_DEPLOYED;\n }\n\n return this._getAccountInitCode();\n }\n\n async getAddress(): Promise<Address> {\n if (!this.accountAddress) {\n const initCode = await this._getAccountInitCode();\n Logger.verbose(\n \"[BaseSmartContractAccount](getAddress) initCode: \",\n initCode\n );\n try {\n await this.entryPoint.simulate.getSenderAddress([initCode]);\n } catch (err: any) {\n Logger.verbose(\n \"[BaseSmartContractAccount](getAddress) getSenderAddress err: \",\n err\n );\n\n if (err.cause?.data?.errorName === \"SenderAddressResult\") {\n this.accountAddress = err.cause.data.args[0] as Address;\n Logger.verbose(\n \"[BaseSmartContractAccount](getAddress) entryPoint.getSenderAddress result:\",\n this.accountAddress\n );\n return this.accountAddress;\n }\n\n if (err.details === \"Invalid URL\") {\n throw new InvalidRpcUrlError();\n }\n }\n\n throw new GetCounterFactualAddressError();\n }\n\n return this.accountAddress;\n }\n\n extend = <R>(fn: (self: this) => R): this & R => {\n const extended = fn(this) as any;\n // this should make it so extensions can't overwrite the base methods\n for (const key in this) {\n delete extended[key];\n }\n return Object.assign(this, extended);\n };\n\n getSigner(): TSigner {\n return this.signer;\n }\n\n getFactoryAddress(): Address {\n return this.factoryAddress;\n }\n\n getEntryPointAddress(): Address {\n return this.entryPointAddress;\n }\n\n async isAccountDeployed(): Promise<boolean> {\n return (await this.getDeploymentState()) === DeploymentState.DEPLOYED;\n }\n\n async getDeploymentState(): Promise<DeploymentState> {\n if (this.deploymentState === DeploymentState.UNDEFINED) {\n const initCode = await this.getInitCode();\n return initCode === \"0x\"\n ? DeploymentState.DEPLOYED\n : DeploymentState.NOT_DEPLOYED;\n } else {\n return this.deploymentState;\n }\n }\n\n /**\n * https://eips.ethereum.org/EIPS/eip-4337#first-time-account-creation\n * The initCode field (if non-zero length) is parsed as a 20-byte address,\n * followed by calldata to pass to this address.\n * The factory address is the first 40 char after the 0x, and the callData is the rest.\n *\n * @returns [factoryAddress, factoryCalldata]\n */\n protected async parseFactoryAddressFromAccountInitCode(): Promise<\n [Address, Hex]\n > {\n const initCode = await this._getAccountInitCode();\n const factoryAddress: Address = `0x${initCode.substring(2, 42)}`;\n const factoryCalldata: Hex = `0x${initCode.substring(42)}`;\n return [factoryAddress, factoryCalldata];\n }\n\n protected async getImplementationAddress(): Promise<NullAddress | Address> {\n const accountAddress = await this.getAddress();\n\n const storage = await this.rpcProvider.getStorageAt({\n address: accountAddress,\n // This is the default slot for the implementation address for Proxies\n slot: \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n });\n\n if (storage == null) {\n throw new FailedToGetStorageSlotError(\n \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n \"Proxy Implementation Address\"\n );\n }\n\n return trim(storage);\n }\n\n private async _getAccountInitCode(): Promise<Hash> {\n return this.accountInitCode ?? this.getAccountInitCode();\n }\n\n private async create6492Signature(\n isDeployed: boolean,\n signature: Hash\n ): Promise<Hash> {\n if (isDeployed) {\n return signature;\n }\n\n const [factoryAddress, factoryCalldata] =\n await this.parseFactoryAddressFromAccountInitCode();\n\n Logger.verbose(\n `[BaseSmartContractAccount](create6492Signature)\\\n factoryAddress: ${factoryAddress}, factoryCalldata: ${factoryCalldata}`\n );\n\n return wrapSignatureWith6492({\n factoryAddress,\n factoryCalldata,\n signature,\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { type Transport } from "viem";
|
|
2
|
+
import z from "zod";
|
|
3
|
+
import type { SmartAccountSigner } from "../signer/types.js";
|
|
4
|
+
export declare const createBaseSmartAccountParamsSchema: <TTransport extends Transport = Transport, TSigner extends SmartAccountSigner<any> = SmartAccountSigner<any>>() => z.ZodObject<{
|
|
5
|
+
rpcClient: z.ZodUnion<[z.ZodString, z.ZodType<import("../index.js").BundlerClient<TTransport>, z.ZodTypeDef, import("../index.js").BundlerClient<TTransport>>]>;
|
|
6
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
7
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
8
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
9
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
10
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
11
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
12
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, { [k_1 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
14
|
+
rpcClient: z.ZodUnion<[z.ZodString, z.ZodType<import("../index.js").BundlerClient<TTransport>, z.ZodTypeDef, import("../index.js").BundlerClient<TTransport>>]>;
|
|
15
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
16
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
17
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
18
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
19
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
20
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
21
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
22
|
+
}>, "chain" | "factoryAddress" | "rpcClient" | (undefined extends TSigner ? never : "signer")>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
23
|
+
rpcClient: z.ZodUnion<[z.ZodString, z.ZodType<import("../index.js").BundlerClient<TTransport>, z.ZodTypeDef, import("../index.js").BundlerClient<TTransport>>]>;
|
|
24
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
25
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
26
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
27
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
28
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
29
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
30
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
31
|
+
}>, "chain" | "factoryAddress" | "rpcClient" | (undefined extends TSigner ? never : "signer")>[k_1]; }, { [k_2 in keyof z.baseObjectInputType<{
|
|
32
|
+
rpcClient: z.ZodUnion<[z.ZodString, z.ZodType<import("../index.js").BundlerClient<TTransport>, z.ZodTypeDef, import("../index.js").BundlerClient<TTransport>>]>;
|
|
33
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
34
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
35
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
36
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
37
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
38
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
39
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
40
|
+
}>]: z.baseObjectInputType<{
|
|
41
|
+
rpcClient: z.ZodUnion<[z.ZodString, z.ZodType<import("../index.js").BundlerClient<TTransport>, z.ZodTypeDef, import("../index.js").BundlerClient<TTransport>>]>;
|
|
42
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
43
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
44
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
45
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
46
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
47
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
48
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
49
|
+
}>[k_2]; }>;
|
|
50
|
+
export declare const SimpleSmartAccountParamsSchema: <TTransport extends Transport = Transport, TSigner extends SmartAccountSigner<any> = SmartAccountSigner<any>>() => z.ZodObject<{
|
|
51
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
52
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
53
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
54
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
55
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
56
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
57
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
58
|
+
transport: z.ZodType<TTransport, z.ZodTypeDef, TTransport>;
|
|
59
|
+
salt: z.ZodOptional<z.ZodBigInt>;
|
|
60
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
61
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
62
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
63
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
64
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
65
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
66
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
67
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
68
|
+
transport: z.ZodType<TTransport, z.ZodTypeDef, TTransport>;
|
|
69
|
+
salt: z.ZodOptional<z.ZodBigInt>;
|
|
70
|
+
}>, "chain" | "factoryAddress" | (undefined extends TTransport ? never : "transport") | (undefined extends TSigner ? never : "signer")> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
71
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
72
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
73
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
74
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
75
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
76
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
77
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
78
|
+
transport: z.ZodType<TTransport, z.ZodTypeDef, TTransport>;
|
|
79
|
+
salt: z.ZodOptional<z.ZodBigInt>;
|
|
80
|
+
}>, "chain" | "factoryAddress" | (undefined extends TTransport ? never : "transport") | (undefined extends TSigner ? never : "signer")>[k]; } : never, z.baseObjectInputType<{
|
|
81
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
82
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
83
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
84
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
85
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
86
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
87
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
88
|
+
transport: z.ZodType<TTransport, z.ZodTypeDef, TTransport>;
|
|
89
|
+
salt: z.ZodOptional<z.ZodBigInt>;
|
|
90
|
+
}> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{
|
|
91
|
+
initCode: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
92
|
+
chain: z.ZodType<import("viem").Chain, z.ZodTypeDef, import("viem").Chain>;
|
|
93
|
+
factoryAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
94
|
+
signer: z.ZodType<TSigner, z.ZodTypeDef, TSigner>;
|
|
95
|
+
entryPointAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
96
|
+
accountAddress: z.ZodOptional<z.ZodEffects<z.ZodString, `0x${string}`, string>>;
|
|
97
|
+
entryPointVersion: z.ZodOptional<z.ZodType<keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>, z.ZodTypeDef, keyof import("../entrypoint/types.js").EntryPointRegistryBase<unknown>>>;
|
|
98
|
+
transport: z.ZodType<TTransport, z.ZodTypeDef, TTransport>;
|
|
99
|
+
salt: z.ZodOptional<z.ZodBigInt>;
|
|
100
|
+
}>[k_1]; } : never>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Address } from "abitype/zod";
|
|
2
|
+
import { isHex } from "viem";
|
|
3
|
+
import z from "zod";
|
|
4
|
+
import { createPublicErc4337ClientSchema } from "../client/schema.js";
|
|
5
|
+
import { isEntryPointVersion } from "../entrypoint/index.js";
|
|
6
|
+
import { isSigner } from "../signer/schema.js";
|
|
7
|
+
import { ChainSchema } from "../utils/index.js";
|
|
8
|
+
export const createBaseSmartAccountParamsSchema = () => z.object({
|
|
9
|
+
rpcClient: z.union([
|
|
10
|
+
z.string(),
|
|
11
|
+
createPublicErc4337ClientSchema(),
|
|
12
|
+
]),
|
|
13
|
+
factoryAddress: Address,
|
|
14
|
+
signer: z.custom(isSigner),
|
|
15
|
+
entryPointAddress: Address.optional(),
|
|
16
|
+
chain: ChainSchema,
|
|
17
|
+
accountAddress: Address.optional().describe("Optional override for the account address."),
|
|
18
|
+
initCode: z
|
|
19
|
+
.string()
|
|
20
|
+
.refine((x) => isHex(x, { strict: true }), "initCode must be a valid hex.")
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("Optional override for the account init code."),
|
|
23
|
+
entryPointVersion: z
|
|
24
|
+
.custom(isEntryPointVersion)
|
|
25
|
+
.optional(),
|
|
26
|
+
});
|
|
27
|
+
export const SimpleSmartAccountParamsSchema = () => createBaseSmartAccountParamsSchema()
|
|
28
|
+
.omit({
|
|
29
|
+
rpcClient: true,
|
|
30
|
+
})
|
|
31
|
+
.extend({
|
|
32
|
+
transport: z.custom(),
|
|
33
|
+
salt: z.bigint().optional(),
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/account/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAkB,MAAM,MAAM,CAAC;AAC7C,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAG9C,EAAE,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,MAAM,EAAE;QACV,+BAA+B,EAAc;KAC9C,CAAC;IACF,cAAc,EAAE,OAAO;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAU,QAAQ,CAAC;IACnC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,WAAW;IAClB,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACzC,4CAA4C,CAC7C;IACD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EACjC,+BAA+B,CAChC;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,iBAAiB,EAAE,CAAC;SACjB,MAAM,CAAoB,mBAAmB,CAAC;SAC9C,QAAQ,EAAE;CACd,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAG1C,EAAE,CACJ,kCAAkC,EAAuB;KACtD,IAAI,CAAC;IACJ,SAAS,EAAE,IAAI;CAChB,CAAC;KACD,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAc;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC","sourcesContent":["import { Address } from \"abitype/zod\";\nimport { isHex, type Transport } from \"viem\";\nimport z from \"zod\";\nimport { createPublicErc4337ClientSchema } from \"../client/schema.js\";\nimport { isEntryPointVersion } from \"../entrypoint/index.js\";\nimport type { EntryPointVersion } from \"../entrypoint/types.js\";\nimport { isSigner } from \"../signer/schema.js\";\nimport type { SmartAccountSigner } from \"../signer/types.js\";\nimport { ChainSchema } from \"../utils/index.js\";\n\nexport const createBaseSmartAccountParamsSchema = <\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n>() =>\n z.object({\n rpcClient: z.union([\n z.string(),\n createPublicErc4337ClientSchema<TTransport>(),\n ]),\n factoryAddress: Address,\n signer: z.custom<TSigner>(isSigner),\n entryPointAddress: Address.optional(),\n chain: ChainSchema,\n accountAddress: Address.optional().describe(\n \"Optional override for the account address.\"\n ),\n initCode: z\n .string()\n .refine(\n (x) => isHex(x, { strict: true }),\n \"initCode must be a valid hex.\"\n )\n .optional()\n .describe(\"Optional override for the account init code.\"),\n entryPointVersion: z\n .custom<EntryPointVersion>(isEntryPointVersion)\n .optional(),\n });\n\nexport const SimpleSmartAccountParamsSchema = <\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n>() =>\n createBaseSmartAccountParamsSchema<TTransport, TSigner>()\n .omit({\n rpcClient: true,\n })\n .extend({\n transport: z.custom<TTransport>(),\n salt: z.bigint().optional(),\n });\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Address } from "abitype";
|
|
2
|
+
import { type Chain, type Hex, type Transport } from "viem";
|
|
3
|
+
import type { DefaultEntryPointVersion, EntryPointParameter, EntryPointVersion } from "../entrypoint/types.js";
|
|
4
|
+
import type { SmartAccountSigner } from "../signer/types.js";
|
|
5
|
+
import { type SmartContractAccountWithSigner, type ToSmartContractAccountParams } from "./smartContractAccount.js";
|
|
6
|
+
export type SimpleSmartAccount<TSigner extends SmartAccountSigner = SmartAccountSigner, TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = SmartContractAccountWithSigner<"SimpleAccount", TSigner, TEntryPointVersion>;
|
|
7
|
+
export type CreateSimpleAccountParams<TTransport extends Transport = Transport, TSigner extends SmartAccountSigner = SmartAccountSigner, TEntryPointVersion extends EntryPointVersion = DefaultEntryPointVersion> = Pick<ToSmartContractAccountParams<"SimpleAccount", TTransport, Chain, TEntryPointVersion>, "chain" | "transport"> & {
|
|
8
|
+
signer: TSigner;
|
|
9
|
+
salt?: bigint;
|
|
10
|
+
accountAddress?: Address;
|
|
11
|
+
factoryAddress?: Address;
|
|
12
|
+
initCode?: Hex;
|
|
13
|
+
} & EntryPointParameter<TEntryPointVersion, Chain>;
|
|
14
|
+
export declare function createSimpleSmartAccount<TTransport extends Transport = Transport, TSigner extends SmartAccountSigner = SmartAccountSigner, TEntryPointVersion extends EntryPointVersion = DefaultEntryPointVersion>(config: CreateSimpleAccountParams<TTransport, TSigner, TEntryPointVersion>): Promise<SimpleSmartAccount<TSigner, TEntryPointVersion>>;
|