viem 2.17.11 → 2.18.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +8 -2
- package/_cjs/account-abstraction/accounts/createWebAuthnCredential.js +6 -0
- package/_cjs/account-abstraction/accounts/createWebAuthnCredential.js.map +1 -0
- package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +688 -0
- package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -0
- package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js +704 -0
- package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -0
- package/_cjs/account-abstraction/accounts/toSmartAccount.js +93 -0
- package/_cjs/account-abstraction/accounts/toSmartAccount.js.map +1 -0
- package/_cjs/account-abstraction/accounts/toWebAuthnAccount.js +24 -0
- package/_cjs/account-abstraction/accounts/toWebAuthnAccount.js.map +1 -0
- package/_cjs/account-abstraction/accounts/types.js +3 -0
- package/_cjs/account-abstraction/accounts/types.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js +37 -0
- package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/getSupportedEntryPoints.js +7 -0
- package/_cjs/account-abstraction/actions/bundler/getSupportedEntryPoints.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/getUserOperation.js +22 -0
- package/_cjs/account-abstraction/actions/bundler/getUserOperation.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/getUserOperationReceipt.js +15 -0
- package/_cjs/account-abstraction/actions/bundler/getUserOperationReceipt.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js +239 -0
- package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js +36 -0
- package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -0
- package/_cjs/account-abstraction/actions/bundler/waitForUserOperationReceipt.js +48 -0
- package/_cjs/account-abstraction/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
- package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js +34 -0
- package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -0
- package/_cjs/account-abstraction/actions/paymaster/getPaymasterStubData.js +34 -0
- package/_cjs/account-abstraction/actions/paymaster/getPaymasterStubData.js.map +1 -0
- package/_cjs/account-abstraction/clients/createBundlerClient.js +18 -0
- package/_cjs/account-abstraction/clients/createBundlerClient.js.map +1 -0
- package/_cjs/account-abstraction/clients/createPaymasterClient.js +17 -0
- package/_cjs/account-abstraction/clients/createPaymasterClient.js.map +1 -0
- package/_cjs/account-abstraction/clients/decorators/bundler.js +24 -0
- package/_cjs/account-abstraction/clients/decorators/bundler.js.map +1 -0
- package/_cjs/account-abstraction/clients/decorators/paymaster.js +12 -0
- package/_cjs/account-abstraction/clients/decorators/paymaster.js.map +1 -0
- package/_cjs/account-abstraction/constants/abis.js +1318 -0
- package/_cjs/account-abstraction/constants/abis.js.map +1 -0
- package/_cjs/account-abstraction/constants/address.js +6 -0
- package/_cjs/account-abstraction/constants/address.js.map +1 -0
- package/_cjs/account-abstraction/errors/bundler.js +813 -0
- package/_cjs/account-abstraction/errors/bundler.js.map +1 -0
- package/_cjs/account-abstraction/errors/userOperation.js +91 -0
- package/_cjs/account-abstraction/errors/userOperation.js.map +1 -0
- package/_cjs/account-abstraction/index.js +90 -0
- package/_cjs/account-abstraction/index.js.map +1 -0
- package/_cjs/account-abstraction/types/account.js +3 -0
- package/_cjs/account-abstraction/types/account.js.map +1 -0
- package/_cjs/account-abstraction/types/entryPointVersion.js +3 -0
- package/_cjs/account-abstraction/types/entryPointVersion.js.map +1 -0
- package/_cjs/account-abstraction/types/rpc.js +3 -0
- package/_cjs/account-abstraction/types/rpc.js.map +1 -0
- package/_cjs/account-abstraction/types/userOperation.js +3 -0
- package/_cjs/account-abstraction/types/userOperation.js.map +1 -0
- package/_cjs/account-abstraction/utils/errors/getBundlerError.js +186 -0
- package/_cjs/account-abstraction/utils/errors/getBundlerError.js.map +1 -0
- package/_cjs/account-abstraction/utils/errors/getUserOperationError.js +87 -0
- package/_cjs/account-abstraction/utils/errors/getUserOperationError.js.map +1 -0
- package/_cjs/account-abstraction/utils/formatters/userOperation.js +24 -0
- package/_cjs/account-abstraction/utils/formatters/userOperation.js.map +1 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationGas.js +18 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationGas.js.map +1 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationReceipt.js +18 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationReceipt.js.map +1 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js +43 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -0
- package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js +88 -0
- package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -0
- package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js +44 -0
- package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -0
- package/_cjs/accounts/index.js +1 -3
- package/_cjs/accounts/index.js.map +1 -1
- package/_cjs/accounts/privateKeyToAccount.js +4 -0
- package/_cjs/accounts/privateKeyToAccount.js.map +1 -1
- package/_cjs/accounts/toAccount.js +1 -0
- package/_cjs/accounts/toAccount.js.map +1 -1
- package/_cjs/accounts/utils/parseAccount.js.map +1 -1
- package/_cjs/accounts/utils/sign.js +8 -2
- package/_cjs/accounts/utils/sign.js.map +1 -1
- package/_cjs/accounts/utils/signMessage.js +1 -3
- package/_cjs/accounts/utils/signMessage.js.map +1 -1
- package/_cjs/accounts/utils/signTypedData.js +2 -3
- package/_cjs/accounts/utils/signTypedData.js.map +1 -1
- package/_cjs/actions/wallet/sendTransaction.js +35 -22
- package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/_cjs/actions/wallet/signMessage.js +1 -1
- package/_cjs/actions/wallet/signMessage.js.map +1 -1
- package/_cjs/actions/wallet/signTransaction.js +1 -2
- package/_cjs/actions/wallet/signTransaction.js.map +1 -1
- package/_cjs/actions/wallet/signTypedData.js +1 -1
- package/_cjs/actions/wallet/signTypedData.js.map +1 -1
- package/_cjs/constants/abis.js +0 -3
- package/_cjs/constants/abis.js.map +1 -1
- package/_cjs/constants/address.js +3 -1
- package/_cjs/constants/address.js.map +1 -1
- package/_cjs/errors/account.js +17 -2
- package/_cjs/errors/account.js.map +1 -1
- package/_cjs/errors/contract.js +1 -1
- package/_cjs/errors/contract.js.map +1 -1
- package/_cjs/errors/rpc.js +6 -6
- package/_cjs/errors/rpc.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/index.js +5 -3
- package/_cjs/index.js.map +1 -1
- package/_cjs/types/eip1193.js.map +1 -1
- package/_cjs/utils/buildRequest.js +4 -2
- package/_cjs/utils/buildRequest.js.map +1 -1
- package/_cjs/utils/errors/getNodeError.js +1 -2
- package/_cjs/utils/errors/getNodeError.js.map +1 -1
- package/_cjs/utils/index.js +3 -1
- package/_cjs/utils/index.js.map +1 -1
- package/_cjs/utils/signature/serializeErc6492Signature.js +6 -2
- package/_cjs/utils/signature/serializeErc6492Signature.js.map +1 -1
- package/_cjs/utils/signature/serializeSignature.js +6 -2
- package/_cjs/utils/signature/serializeSignature.js.map +1 -1
- package/_cjs/utils/signature/verifyHash.js +10 -0
- package/_cjs/utils/signature/verifyHash.js.map +1 -0
- package/_esm/account-abstraction/accounts/createWebAuthnCredential.js +3 -0
- package/_esm/account-abstraction/accounts/createWebAuthnCredential.js.map +1 -0
- package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +709 -0
- package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -0
- package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js +718 -0
- package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -0
- package/_esm/account-abstraction/accounts/toSmartAccount.js +96 -0
- package/_esm/account-abstraction/accounts/toSmartAccount.js.map +1 -0
- package/_esm/account-abstraction/accounts/toWebAuthnAccount.js +26 -0
- package/_esm/account-abstraction/accounts/toWebAuthnAccount.js.map +1 -0
- package/_esm/account-abstraction/accounts/types.js +2 -0
- package/_esm/account-abstraction/accounts/types.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js +61 -0
- package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/getSupportedEntryPoints.js +25 -0
- package/_esm/account-abstraction/actions/bundler/getSupportedEntryPoints.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/getUserOperation.js +42 -0
- package/_esm/account-abstraction/actions/bundler/getUserOperation.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/getUserOperationReceipt.js +35 -0
- package/_esm/account-abstraction/actions/bundler/getUserOperationReceipt.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js +323 -0
- package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/sendUserOperation.js +60 -0
- package/_esm/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -0
- package/_esm/account-abstraction/actions/bundler/waitForUserOperationReceipt.js +68 -0
- package/_esm/account-abstraction/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
- package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js +56 -0
- package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -0
- package/_esm/account-abstraction/actions/paymaster/getPaymasterStubData.js +56 -0
- package/_esm/account-abstraction/actions/paymaster/getPaymasterStubData.js.map +1 -0
- package/_esm/account-abstraction/clients/createBundlerClient.js +15 -0
- package/_esm/account-abstraction/clients/createBundlerClient.js.map +1 -0
- package/_esm/account-abstraction/clients/createPaymasterClient.js +14 -0
- package/_esm/account-abstraction/clients/createPaymasterClient.js.map +1 -0
- package/_esm/account-abstraction/clients/decorators/bundler.js +21 -0
- package/_esm/account-abstraction/clients/decorators/bundler.js.map +1 -0
- package/_esm/account-abstraction/clients/decorators/paymaster.js +9 -0
- package/_esm/account-abstraction/clients/decorators/paymaster.js.map +1 -0
- package/_esm/account-abstraction/constants/abis.js +1315 -0
- package/_esm/account-abstraction/constants/abis.js.map +1 -0
- package/_esm/account-abstraction/constants/address.js +3 -0
- package/_esm/account-abstraction/constants/address.js.map +1 -0
- package/_esm/account-abstraction/errors/bundler.js +774 -0
- package/_esm/account-abstraction/errors/bundler.js.map +1 -0
- package/_esm/account-abstraction/errors/userOperation.js +84 -0
- package/_esm/account-abstraction/errors/userOperation.js.map +1 -0
- package/_esm/account-abstraction/index.js +31 -0
- package/_esm/account-abstraction/index.js.map +1 -0
- package/_esm/account-abstraction/types/account.js +2 -0
- package/_esm/account-abstraction/types/account.js.map +1 -0
- package/_esm/account-abstraction/types/entryPointVersion.js +2 -0
- package/_esm/account-abstraction/types/entryPointVersion.js.map +1 -0
- package/_esm/account-abstraction/types/rpc.js +2 -0
- package/_esm/account-abstraction/types/rpc.js.map +1 -0
- package/_esm/account-abstraction/types/userOperation.js +2 -0
- package/_esm/account-abstraction/types/userOperation.js.map +1 -0
- package/_esm/account-abstraction/utils/errors/getBundlerError.js +183 -0
- package/_esm/account-abstraction/utils/errors/getBundlerError.js.map +1 -0
- package/_esm/account-abstraction/utils/errors/getUserOperationError.js +85 -0
- package/_esm/account-abstraction/utils/errors/getUserOperationError.js.map +1 -0
- package/_esm/account-abstraction/utils/formatters/userOperation.js +21 -0
- package/_esm/account-abstraction/utils/formatters/userOperation.js.map +1 -0
- package/_esm/account-abstraction/utils/formatters/userOperationGas.js +15 -0
- package/_esm/account-abstraction/utils/formatters/userOperationGas.js.map +1 -0
- package/_esm/account-abstraction/utils/formatters/userOperationReceipt.js +15 -0
- package/_esm/account-abstraction/utils/formatters/userOperationReceipt.js.map +1 -0
- package/_esm/account-abstraction/utils/formatters/userOperationRequest.js +40 -0
- package/_esm/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -0
- package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js +85 -0
- package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -0
- package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js +41 -0
- package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -0
- package/_esm/accounts/index.js +0 -1
- package/_esm/accounts/index.js.map +1 -1
- package/_esm/accounts/privateKeyToAccount.js +4 -0
- package/_esm/accounts/privateKeyToAccount.js.map +1 -1
- package/_esm/accounts/toAccount.js +2 -0
- package/_esm/accounts/toAccount.js.map +1 -1
- package/_esm/accounts/utils/parseAccount.js.map +1 -1
- package/_esm/accounts/utils/sign.js +9 -3
- package/_esm/accounts/utils/sign.js.map +1 -1
- package/_esm/accounts/utils/signMessage.js +1 -3
- package/_esm/accounts/utils/signMessage.js.map +1 -1
- package/_esm/accounts/utils/signTypedData.js +2 -3
- package/_esm/accounts/utils/signTypedData.js.map +1 -1
- package/_esm/actions/wallet/sendTransaction.js +37 -24
- package/_esm/actions/wallet/sendTransaction.js.map +1 -1
- package/_esm/actions/wallet/signMessage.js +1 -1
- package/_esm/actions/wallet/signMessage.js.map +1 -1
- package/_esm/actions/wallet/signTransaction.js +1 -2
- package/_esm/actions/wallet/signTransaction.js.map +1 -1
- package/_esm/actions/wallet/signTypedData.js +1 -1
- package/_esm/actions/wallet/signTypedData.js.map +1 -1
- package/_esm/constants/abis.js +0 -3
- package/_esm/constants/abis.js.map +1 -1
- package/_esm/constants/address.js +2 -0
- package/_esm/constants/address.js.map +1 -1
- package/_esm/errors/account.js +15 -1
- package/_esm/errors/account.js.map +1 -1
- package/_esm/errors/contract.js +1 -1
- package/_esm/errors/contract.js.map +1 -1
- package/_esm/errors/rpc.js +6 -6
- package/_esm/errors/rpc.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/index.js +1 -0
- package/_esm/index.js.map +1 -1
- package/_esm/types/eip1193.js.map +1 -1
- package/_esm/utils/buildRequest.js +4 -2
- package/_esm/utils/buildRequest.js.map +1 -1
- package/_esm/utils/errors/getNodeError.js +1 -2
- package/_esm/utils/errors/getNodeError.js.map +1 -1
- package/_esm/utils/index.js +1 -0
- package/_esm/utils/index.js.map +1 -1
- package/_esm/utils/signature/serializeErc6492Signature.js +6 -2
- package/_esm/utils/signature/serializeErc6492Signature.js.map +1 -1
- package/_esm/utils/signature/serializeSignature.js +6 -2
- package/_esm/utils/signature/serializeSignature.js.map +1 -1
- package/_esm/utils/signature/verifyHash.js +19 -0
- package/_esm/utils/signature/verifyHash.js.map +1 -0
- package/_types/account-abstraction/accounts/createWebAuthnCredential.d.ts +2 -0
- package/_types/account-abstraction/accounts/createWebAuthnCredential.d.ts.map +1 -0
- package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts +648 -0
- package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts.map +1 -0
- package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts +464 -0
- package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts.map +1 -0
- package/_types/account-abstraction/accounts/toSmartAccount.d.ts +14 -0
- package/_types/account-abstraction/accounts/toSmartAccount.d.ts.map +1 -0
- package/_types/account-abstraction/accounts/toWebAuthnAccount.d.ts +32 -0
- package/_types/account-abstraction/accounts/toWebAuthnAccount.d.ts.map +1 -0
- package/_types/account-abstraction/accounts/types.d.ts +174 -0
- package/_types/account-abstraction/accounts/types.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts +62 -0
- package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/getSupportedEntryPoints.d.ts +30 -0
- package/_types/account-abstraction/actions/bundler/getSupportedEntryPoints.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/getUserOperation.d.ts +57 -0
- package/_types/account-abstraction/actions/bundler/getUserOperation.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/getUserOperationReceipt.d.ts +39 -0
- package/_types/account-abstraction/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts +106 -0
- package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/sendUserOperation.d.ts +60 -0
- package/_types/account-abstraction/actions/bundler/sendUserOperation.d.ts.map +1 -0
- package/_types/account-abstraction/actions/bundler/waitForUserOperationReceipt.d.ts +52 -0
- package/_types/account-abstraction/actions/bundler/waitForUserOperationReceipt.d.ts.map +1 -0
- package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts +49 -0
- package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts.map +1 -0
- package/_types/account-abstraction/actions/paymaster/getPaymasterStubData.d.ts +55 -0
- package/_types/account-abstraction/actions/paymaster/getPaymasterStubData.d.ts.map +1 -0
- package/_types/account-abstraction/clients/createBundlerClient.d.ts +66 -0
- package/_types/account-abstraction/clients/createBundlerClient.d.ts.map +1 -0
- package/_types/account-abstraction/clients/createPaymasterClient.d.ts +27 -0
- package/_types/account-abstraction/clients/createPaymasterClient.d.ts.map +1 -0
- package/_types/account-abstraction/clients/decorators/bundler.d.ts +206 -0
- package/_types/account-abstraction/clients/decorators/bundler.d.ts.map +1 -0
- package/_types/account-abstraction/clients/decorators/paymaster.d.ts +60 -0
- package/_types/account-abstraction/clients/decorators/paymaster.d.ts.map +1 -0
- package/_types/account-abstraction/constants/abis.d.ts +1468 -0
- package/_types/account-abstraction/constants/abis.d.ts.map +1 -0
- package/_types/account-abstraction/constants/address.d.ts +3 -0
- package/_types/account-abstraction/constants/address.d.ts.map +1 -0
- package/_types/account-abstraction/errors/bundler.d.ts +391 -0
- package/_types/account-abstraction/errors/bundler.d.ts.map +1 -0
- package/_types/account-abstraction/errors/userOperation.d.ts +41 -0
- package/_types/account-abstraction/errors/userOperation.d.ts.map +1 -0
- package/_types/account-abstraction/index.d.ts +34 -0
- package/_types/account-abstraction/index.d.ts.map +1 -0
- package/_types/account-abstraction/types/account.d.ts +11 -0
- package/_types/account-abstraction/types/account.d.ts.map +1 -0
- package/_types/account-abstraction/types/entryPointVersion.d.ts +9 -0
- package/_types/account-abstraction/types/entryPointVersion.d.ts.map +1 -0
- package/_types/account-abstraction/types/rpc.d.ts +9 -0
- package/_types/account-abstraction/types/rpc.d.ts.map +1 -0
- package/_types/account-abstraction/types/userOperation.d.ts +157 -0
- package/_types/account-abstraction/types/userOperation.d.ts.map +1 -0
- package/_types/account-abstraction/utils/errors/getBundlerError.d.ts +8 -0
- package/_types/account-abstraction/utils/errors/getBundlerError.d.ts.map +1 -0
- package/_types/account-abstraction/utils/errors/getUserOperationError.d.ts +15 -0
- package/_types/account-abstraction/utils/errors/getUserOperationError.d.ts.map +1 -0
- package/_types/account-abstraction/utils/formatters/userOperation.d.ts +6 -0
- package/_types/account-abstraction/utils/formatters/userOperation.d.ts.map +1 -0
- package/_types/account-abstraction/utils/formatters/userOperationGas.d.ts +6 -0
- package/_types/account-abstraction/utils/formatters/userOperationGas.d.ts.map +1 -0
- package/_types/account-abstraction/utils/formatters/userOperationReceipt.d.ts +6 -0
- package/_types/account-abstraction/utils/formatters/userOperationReceipt.d.ts.map +1 -0
- package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts +7 -0
- package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts.map +1 -0
- package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts +13 -0
- package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts.map +1 -0
- package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts +3 -0
- package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts.map +1 -0
- package/_types/accounts/index.d.ts +0 -1
- package/_types/accounts/index.d.ts.map +1 -1
- package/_types/accounts/privateKeyToAccount.d.ts +2 -1
- package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
- package/_types/accounts/toAccount.d.ts.map +1 -1
- package/_types/accounts/types.d.ts +14 -7
- package/_types/accounts/types.d.ts.map +1 -1
- package/_types/accounts/utils/parseAccount.d.ts +1 -1
- package/_types/accounts/utils/parseAccount.d.ts.map +1 -1
- package/_types/accounts/utils/sign.d.ts +9 -6
- package/_types/accounts/utils/sign.d.ts.map +1 -1
- package/_types/accounts/utils/signMessage.d.ts +1 -2
- package/_types/accounts/utils/signMessage.d.ts.map +1 -1
- package/_types/accounts/utils/signTypedData.d.ts +1 -2
- package/_types/accounts/utils/signTypedData.d.ts.map +1 -1
- package/_types/actions/wallet/sendTransaction.d.ts +2 -1
- package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/_types/actions/wallet/signMessage.d.ts.map +1 -1
- package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
- package/_types/chains/definitions/lisk.d.ts +2 -2
- package/_types/chains/definitions/playfiAlbireo.d.ts +2 -2
- package/_types/chains/definitions/zkSync.d.ts +2 -2
- package/_types/chains/definitions/zkSyncInMemoryNode.d.ts +2 -2
- package/_types/chains/definitions/zkSyncLocalNode.d.ts +2 -2
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +2 -2
- package/_types/chains/definitions/zkSyncTestnet.d.ts +2 -2
- package/_types/clients/decorators/public.d.ts +1 -1
- package/_types/clients/decorators/public.d.ts.map +1 -1
- package/_types/constants/abis.d.ts +0 -3
- package/_types/constants/abis.d.ts.map +1 -1
- package/_types/constants/address.d.ts +2 -0
- package/_types/constants/address.d.ts.map +1 -1
- package/_types/errors/account.d.ts +11 -0
- package/_types/errors/account.d.ts.map +1 -1
- package/_types/errors/rpc.d.ts +9 -3
- package/_types/errors/rpc.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/index.d.ts +5 -3
- package/_types/index.d.ts.map +1 -1
- package/_types/types/eip1193.d.ts +239 -2
- package/_types/types/eip1193.d.ts.map +1 -1
- package/_types/types/multicall.d.ts +1 -1
- package/_types/types/multicall.d.ts.map +1 -1
- package/_types/utils/buildRequest.d.ts.map +1 -1
- package/_types/utils/errors/getNodeError.d.ts.map +1 -1
- package/_types/utils/formatters/transaction.d.ts +1 -1
- package/_types/utils/index.d.ts +1 -0
- package/_types/utils/index.d.ts.map +1 -1
- package/_types/utils/signature/hashTypedData.d.ts +2 -2
- package/_types/utils/signature/hashTypedData.d.ts.map +1 -1
- package/_types/utils/signature/serializeErc6492Signature.d.ts +7 -4
- package/_types/utils/signature/serializeErc6492Signature.d.ts.map +1 -1
- package/_types/utils/signature/serializeSignature.d.ts +8 -2
- package/_types/utils/signature/serializeSignature.d.ts.map +1 -1
- package/_types/utils/signature/verifyHash.d.ts +30 -0
- package/_types/utils/signature/verifyHash.d.ts.map +1 -0
- package/_types/zksync/chainConfig.d.ts +2 -2
- package/_types/zksync/formatters.d.ts +2 -2
- package/account-abstraction/accounts/createWebAuthnCredential.ts +7 -0
- package/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +817 -0
- package/account-abstraction/accounts/implementations/toSoladySmartAccount.ts +794 -0
- package/account-abstraction/accounts/toSmartAccount.ts +126 -0
- package/account-abstraction/accounts/toWebAuthnAccount.ts +56 -0
- package/account-abstraction/accounts/types.ts +208 -0
- package/account-abstraction/actions/bundler/estimateUserOperationGas.ts +170 -0
- package/account-abstraction/actions/bundler/getSupportedEntryPoints.ts +33 -0
- package/account-abstraction/actions/bundler/getUserOperation.ts +85 -0
- package/account-abstraction/actions/bundler/getUserOperationReceipt.ts +64 -0
- package/account-abstraction/actions/bundler/prepareUserOperation.ts +637 -0
- package/account-abstraction/actions/bundler/sendUserOperation.ts +149 -0
- package/account-abstraction/actions/bundler/waitForUserOperationReceipt.ts +139 -0
- package/account-abstraction/actions/paymaster/getPaymasterData.ts +135 -0
- package/account-abstraction/actions/paymaster/getPaymasterStubData.ts +138 -0
- package/account-abstraction/clients/createBundlerClient.ts +155 -0
- package/account-abstraction/clients/createPaymasterClient.ts +78 -0
- package/account-abstraction/clients/decorators/bundler.ts +296 -0
- package/account-abstraction/clients/decorators/paymaster.ts +81 -0
- package/account-abstraction/constants/abis.ts +1404 -0
- package/account-abstraction/constants/address.ts +4 -0
- package/account-abstraction/errors/bundler.ts +781 -0
- package/account-abstraction/errors/userOperation.ts +111 -0
- package/account-abstraction/index.ts +228 -0
- package/account-abstraction/package.json +6 -0
- package/account-abstraction/types/account.ts +21 -0
- package/account-abstraction/types/entryPointVersion.ts +24 -0
- package/account-abstraction/types/rpc.ts +29 -0
- package/account-abstraction/types/userOperation.ts +262 -0
- package/account-abstraction/utils/errors/getBundlerError.ts +309 -0
- package/account-abstraction/utils/errors/getUserOperationError.ts +153 -0
- package/account-abstraction/utils/formatters/userOperation.ts +31 -0
- package/account-abstraction/utils/formatters/userOperationGas.ts +26 -0
- package/account-abstraction/utils/formatters/userOperationReceipt.ts +24 -0
- package/account-abstraction/utils/formatters/userOperationRequest.ts +53 -0
- package/account-abstraction/utils/userOperation/getUserOperationHash.ts +138 -0
- package/account-abstraction/utils/userOperation/toPackedUserOperation.ts +64 -0
- package/accounts/index.ts +1 -1
- package/accounts/privateKeyToAccount.ts +5 -0
- package/accounts/toAccount.ts +3 -0
- package/accounts/types.ts +34 -12
- package/accounts/utils/parseAccount.ts +6 -3
- package/accounts/utils/sign.ts +24 -8
- package/accounts/utils/signMessage.ts +1 -7
- package/accounts/utils/signTypedData.ts +2 -7
- package/actions/wallet/sendTransaction.ts +48 -27
- package/actions/wallet/signMessage.ts +2 -1
- package/actions/wallet/signTransaction.ts +1 -2
- package/actions/wallet/signTypedData.ts +1 -1
- package/clients/decorators/public.ts +1 -1
- package/constants/abis.ts +0 -3
- package/constants/address.ts +4 -0
- package/errors/account.ts +22 -1
- package/errors/contract.ts +1 -1
- package/errors/rpc.ts +6 -6
- package/errors/version.ts +1 -1
- package/index.ts +20 -3
- package/package.json +7 -1
- package/types/eip1193.ts +314 -2
- package/types/multicall.ts +1 -1
- package/utils/buildRequest.ts +4 -2
- package/utils/errors/getNodeError.ts +1 -2
- package/utils/index.ts +6 -0
- package/utils/signature/hashTypedData.ts +6 -6
- package/utils/signature/serializeErc6492Signature.ts +17 -8
- package/utils/signature/serializeSignature.ts +24 -4
- package/utils/signature/verifyHash.ts +54 -0
@@ -0,0 +1,155 @@
|
|
1
|
+
import type { EstimateFeesPerGasReturnType } from '../../actions/public/estimateFeesPerGas.js'
|
2
|
+
import {
|
3
|
+
type Client,
|
4
|
+
type ClientConfig,
|
5
|
+
type CreateClientErrorType,
|
6
|
+
createClient,
|
7
|
+
} from '../../clients/createClient.js'
|
8
|
+
import type { Transport } from '../../clients/transports/createTransport.js'
|
9
|
+
import type { ErrorType } from '../../errors/utils.js'
|
10
|
+
import type { Chain } from '../../types/chain.js'
|
11
|
+
import type { RpcSchema } from '../../types/eip1193.js'
|
12
|
+
import type { BundlerRpcSchema } from '../../types/eip1193.js'
|
13
|
+
import type { Prettify } from '../../types/utils.js'
|
14
|
+
import type { SmartAccount } from '../accounts/types.js'
|
15
|
+
import type { UserOperationRequest } from '../types/userOperation.js'
|
16
|
+
import { type BundlerActions, bundlerActions } from './decorators/bundler.js'
|
17
|
+
import type { PaymasterActions } from './decorators/paymaster.js'
|
18
|
+
|
19
|
+
export type BundlerClientConfig<
|
20
|
+
transport extends Transport = Transport,
|
21
|
+
chain extends Chain | undefined = Chain | undefined,
|
22
|
+
account extends SmartAccount | undefined = SmartAccount | undefined,
|
23
|
+
client extends Client | undefined = Client | undefined,
|
24
|
+
rpcSchema extends RpcSchema | undefined = undefined,
|
25
|
+
> = Prettify<
|
26
|
+
Pick<
|
27
|
+
ClientConfig<transport, chain, account, rpcSchema>,
|
28
|
+
| 'account'
|
29
|
+
| 'cacheTime'
|
30
|
+
| 'chain'
|
31
|
+
| 'key'
|
32
|
+
| 'name'
|
33
|
+
| 'pollingInterval'
|
34
|
+
| 'rpcSchema'
|
35
|
+
| 'transport'
|
36
|
+
>
|
37
|
+
> & {
|
38
|
+
/** Client that points to an Execution RPC URL. */
|
39
|
+
client?: client | Client | undefined
|
40
|
+
/** Paymaster configuration. */
|
41
|
+
paymaster?:
|
42
|
+
| true
|
43
|
+
| {
|
44
|
+
/** Retrieves paymaster-related User Operation properties to be used for sending the User Operation. */
|
45
|
+
getPaymasterData?: PaymasterActions['getPaymasterData'] | undefined
|
46
|
+
/** Retrieves paymaster-related User Operation properties to be used for gas estimation. */
|
47
|
+
getPaymasterStubData?:
|
48
|
+
| PaymasterActions['getPaymasterStubData']
|
49
|
+
| undefined
|
50
|
+
}
|
51
|
+
| undefined
|
52
|
+
/** Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls. */
|
53
|
+
paymasterContext?: unknown
|
54
|
+
/** User Operation configuration. */
|
55
|
+
userOperation?:
|
56
|
+
| {
|
57
|
+
/** Prepares fee properties for the User Operation request. */
|
58
|
+
estimateFeesPerGas?:
|
59
|
+
| ((parameters: {
|
60
|
+
account: account | SmartAccount
|
61
|
+
bundlerClient: Client
|
62
|
+
userOperation: UserOperationRequest
|
63
|
+
}) => Promise<EstimateFeesPerGasReturnType<'eip1559'>>)
|
64
|
+
| undefined
|
65
|
+
}
|
66
|
+
| undefined
|
67
|
+
}
|
68
|
+
|
69
|
+
export type BundlerClient<
|
70
|
+
transport extends Transport = Transport,
|
71
|
+
chain extends Chain | undefined = Chain | undefined,
|
72
|
+
account extends SmartAccount | undefined = SmartAccount | undefined,
|
73
|
+
client extends Client | undefined = Client | undefined,
|
74
|
+
rpcSchema extends RpcSchema | undefined = undefined,
|
75
|
+
> = Prettify<
|
76
|
+
Client<
|
77
|
+
transport,
|
78
|
+
chain extends Chain
|
79
|
+
? chain
|
80
|
+
: client extends Client<any, infer chain>
|
81
|
+
? chain
|
82
|
+
: undefined,
|
83
|
+
account,
|
84
|
+
rpcSchema extends RpcSchema
|
85
|
+
? [...BundlerRpcSchema, ...rpcSchema]
|
86
|
+
: BundlerRpcSchema,
|
87
|
+
BundlerActions<account>
|
88
|
+
>
|
89
|
+
> & {
|
90
|
+
client: client
|
91
|
+
paymaster: BundlerClientConfig['paymaster'] | undefined
|
92
|
+
paymasterContext: BundlerClientConfig['paymasterContext'] | undefined
|
93
|
+
userOperation: BundlerClientConfig['userOperation'] | undefined
|
94
|
+
}
|
95
|
+
|
96
|
+
export type CreateBundlerClientErrorType = CreateClientErrorType | ErrorType
|
97
|
+
|
98
|
+
/**
|
99
|
+
* Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).
|
100
|
+
*
|
101
|
+
* - Docs: https://viem.sh/account-abstraction/clients/bundler
|
102
|
+
*
|
103
|
+
* @param config - {@link BundlerClientConfig}
|
104
|
+
* @returns A Bundler Client. {@link BundlerClient}
|
105
|
+
*
|
106
|
+
* @example
|
107
|
+
* import { createPublicClient, http } from 'viem'
|
108
|
+
* import { createBundlerClient } from 'viem/account-abstraction'
|
109
|
+
* import { mainnet } from 'viem/chains'
|
110
|
+
*
|
111
|
+
* const client = createPublicClient({
|
112
|
+
* chain: mainnet,
|
113
|
+
* transport: http(),
|
114
|
+
* })
|
115
|
+
*
|
116
|
+
* const bundlerClient = createBundlerClient({
|
117
|
+
* client,
|
118
|
+
* transport: http('https://public.pimlico.io/v2/1/rpc'),
|
119
|
+
* })
|
120
|
+
*/
|
121
|
+
export function createBundlerClient<
|
122
|
+
transport extends Transport,
|
123
|
+
chain extends Chain | undefined = undefined,
|
124
|
+
account extends SmartAccount | undefined = undefined,
|
125
|
+
client extends Client | undefined = undefined,
|
126
|
+
rpcSchema extends RpcSchema | undefined = undefined,
|
127
|
+
>(
|
128
|
+
parameters: BundlerClientConfig<transport, chain, account, client, rpcSchema>,
|
129
|
+
): BundlerClient<transport, chain, account, client, rpcSchema>
|
130
|
+
|
131
|
+
export function createBundlerClient(
|
132
|
+
parameters: BundlerClientConfig,
|
133
|
+
): BundlerClient {
|
134
|
+
const {
|
135
|
+
client: client_,
|
136
|
+
key = 'bundler',
|
137
|
+
name = 'Bundler Client',
|
138
|
+
paymaster,
|
139
|
+
paymasterContext,
|
140
|
+
transport,
|
141
|
+
userOperation,
|
142
|
+
} = parameters
|
143
|
+
const client = Object.assign(
|
144
|
+
createClient({
|
145
|
+
...parameters,
|
146
|
+
chain: parameters.chain ?? client_?.chain,
|
147
|
+
key,
|
148
|
+
name,
|
149
|
+
transport,
|
150
|
+
type: 'bundlerClient',
|
151
|
+
}),
|
152
|
+
{ client: client_, paymaster, paymasterContext, userOperation },
|
153
|
+
)
|
154
|
+
return client.extend(bundlerActions) as any
|
155
|
+
}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
import {
|
2
|
+
type Client,
|
3
|
+
type ClientConfig,
|
4
|
+
type CreateClientErrorType,
|
5
|
+
createClient,
|
6
|
+
} from '../../clients/createClient.js'
|
7
|
+
import type { Transport } from '../../clients/transports/createTransport.js'
|
8
|
+
import type { ErrorType } from '../../errors/utils.js'
|
9
|
+
import type { PaymasterRpcSchema, RpcSchema } from '../../types/eip1193.js'
|
10
|
+
import type { Prettify } from '../../types/utils.js'
|
11
|
+
import {
|
12
|
+
type PaymasterActions,
|
13
|
+
paymasterActions,
|
14
|
+
} from './decorators/paymaster.js'
|
15
|
+
|
16
|
+
export type PaymasterClientConfig<
|
17
|
+
transport extends Transport = Transport,
|
18
|
+
rpcSchema extends RpcSchema | undefined = undefined,
|
19
|
+
> = Prettify<
|
20
|
+
Pick<
|
21
|
+
ClientConfig<transport, undefined, undefined, rpcSchema>,
|
22
|
+
'cacheTime' | 'key' | 'name' | 'pollingInterval' | 'rpcSchema' | 'transport'
|
23
|
+
>
|
24
|
+
>
|
25
|
+
|
26
|
+
export type PaymasterClient<
|
27
|
+
transport extends Transport = Transport,
|
28
|
+
rpcSchema extends RpcSchema | undefined = undefined,
|
29
|
+
> = Prettify<
|
30
|
+
Client<
|
31
|
+
transport,
|
32
|
+
undefined,
|
33
|
+
undefined,
|
34
|
+
rpcSchema extends RpcSchema
|
35
|
+
? [...PaymasterRpcSchema, ...rpcSchema]
|
36
|
+
: PaymasterRpcSchema,
|
37
|
+
PaymasterActions
|
38
|
+
>
|
39
|
+
>
|
40
|
+
|
41
|
+
export type CreatePaymasterClientErrorType = CreateClientErrorType | ErrorType
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Creates a Paymaster Client.
|
45
|
+
*
|
46
|
+
* - Docs: https://viem.sh/account-abstraction/clients/paymaster
|
47
|
+
*
|
48
|
+
* @param config - {@link PaymasterClientConfig}
|
49
|
+
* @returns A Paymaster Client. {@link PaymasterClient}
|
50
|
+
*
|
51
|
+
* @example
|
52
|
+
* import { http } from 'viem'
|
53
|
+
* import { createPaymasterClient } from 'viem/account-abstraction'
|
54
|
+
*
|
55
|
+
* const paymasterClient = createPaymasterClient({
|
56
|
+
* transport: http('https://...'),
|
57
|
+
* })
|
58
|
+
*/
|
59
|
+
export function createPaymasterClient<
|
60
|
+
transport extends Transport,
|
61
|
+
rpcSchema extends RpcSchema | undefined = undefined,
|
62
|
+
>(
|
63
|
+
parameters: PaymasterClientConfig<transport, rpcSchema>,
|
64
|
+
): PaymasterClient<transport, rpcSchema>
|
65
|
+
|
66
|
+
export function createPaymasterClient(
|
67
|
+
parameters: PaymasterClientConfig,
|
68
|
+
): PaymasterClient {
|
69
|
+
const { key = 'bundler', name = 'Bundler Client', transport } = parameters
|
70
|
+
const client = createClient({
|
71
|
+
...parameters,
|
72
|
+
key,
|
73
|
+
name,
|
74
|
+
transport,
|
75
|
+
type: 'PaymasterClient',
|
76
|
+
})
|
77
|
+
return client.extend(paymasterActions)
|
78
|
+
}
|
@@ -0,0 +1,296 @@
|
|
1
|
+
import {
|
2
|
+
type GetChainIdReturnType,
|
3
|
+
getChainId,
|
4
|
+
} from '../../../actions/public/getChainId.js'
|
5
|
+
import type { Client } from '../../../clients/createClient.js'
|
6
|
+
import type { Transport } from '../../../clients/transports/createTransport.js'
|
7
|
+
import type { Chain } from '../../../types/chain.js'
|
8
|
+
import type { SmartAccount } from '../../accounts/types.js'
|
9
|
+
import {
|
10
|
+
type EstimateUserOperationGasParameters,
|
11
|
+
type EstimateUserOperationGasReturnType,
|
12
|
+
estimateUserOperationGas,
|
13
|
+
} from '../../actions/bundler/estimateUserOperationGas.js'
|
14
|
+
import {
|
15
|
+
type GetSupportedEntryPointsReturnType,
|
16
|
+
getSupportedEntryPoints,
|
17
|
+
} from '../../actions/bundler/getSupportedEntryPoints.js'
|
18
|
+
import {
|
19
|
+
type GetUserOperationParameters,
|
20
|
+
type GetUserOperationReturnType,
|
21
|
+
getUserOperation,
|
22
|
+
} from '../../actions/bundler/getUserOperation.js'
|
23
|
+
import {
|
24
|
+
type GetUserOperationReceiptParameters,
|
25
|
+
type GetUserOperationReceiptReturnType,
|
26
|
+
getUserOperationReceipt,
|
27
|
+
} from '../../actions/bundler/getUserOperationReceipt.js'
|
28
|
+
import {
|
29
|
+
type PrepareUserOperationParameters,
|
30
|
+
type PrepareUserOperationRequest,
|
31
|
+
type PrepareUserOperationReturnType,
|
32
|
+
prepareUserOperation,
|
33
|
+
} from '../../actions/bundler/prepareUserOperation.js'
|
34
|
+
import {
|
35
|
+
type SendUserOperationParameters,
|
36
|
+
type SendUserOperationReturnType,
|
37
|
+
sendUserOperation,
|
38
|
+
} from '../../actions/bundler/sendUserOperation.js'
|
39
|
+
import {
|
40
|
+
type WaitForUserOperationReceiptParameters,
|
41
|
+
type WaitForUserOperationReceiptReturnType,
|
42
|
+
waitForUserOperationReceipt,
|
43
|
+
} from '../../actions/bundler/waitForUserOperationReceipt.js'
|
44
|
+
|
45
|
+
export type BundlerActions<
|
46
|
+
account extends SmartAccount | undefined = SmartAccount | undefined,
|
47
|
+
> = {
|
48
|
+
/**
|
49
|
+
* Returns an estimate of gas values necessary to execute the User Operation.
|
50
|
+
*
|
51
|
+
* - Docs: https://viem.sh/actions/bundler/estimateUserOperationGas
|
52
|
+
*
|
53
|
+
* @param client - Client to use
|
54
|
+
* @param parameters - {@link EstimateUserOperationGasParameters}
|
55
|
+
* @returns The gas estimate (in wei). {@link EstimateUserOperationGasReturnType}
|
56
|
+
*
|
57
|
+
* @example
|
58
|
+
* import { createBundlerClient, http, parseEther } from 'viem'
|
59
|
+
* import { mainnet } from 'viem/chains'
|
60
|
+
* import { toSmartAccount } from 'viem/accounts'
|
61
|
+
*
|
62
|
+
* const account = await toSmartAccount({ ... })
|
63
|
+
*
|
64
|
+
* const bundlerClient = createBundlerClient({
|
65
|
+
* chain: mainnet,
|
66
|
+
* transport: http(),
|
67
|
+
* })
|
68
|
+
*
|
69
|
+
* const values = await bundlerClient.estimateUserOperationGas({
|
70
|
+
* account,
|
71
|
+
* calls: [{ to: '0x...', value: parseEther('1') }],
|
72
|
+
* })
|
73
|
+
*/
|
74
|
+
estimateUserOperationGas: <
|
75
|
+
const calls extends readonly unknown[],
|
76
|
+
accountOverride extends SmartAccount | undefined = undefined,
|
77
|
+
>(
|
78
|
+
parameters: EstimateUserOperationGasParameters<
|
79
|
+
account,
|
80
|
+
accountOverride,
|
81
|
+
calls
|
82
|
+
>,
|
83
|
+
) => Promise<EstimateUserOperationGasReturnType<account, accountOverride>>
|
84
|
+
/**
|
85
|
+
* Returns the chain ID associated with the bundler.
|
86
|
+
*
|
87
|
+
* - Docs: https://viem.sh/docs/actions/public/getChainId
|
88
|
+
* - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)
|
89
|
+
*
|
90
|
+
* @returns The current chain ID. {@link GetChainIdReturnType}
|
91
|
+
*
|
92
|
+
* @example
|
93
|
+
* import { http } from 'viem'
|
94
|
+
* import { createBundlerClient, mainnet } from 'viem/chains'
|
95
|
+
*
|
96
|
+
* const client = createPublicClient({
|
97
|
+
* chain: mainnet,
|
98
|
+
* transport: http(),
|
99
|
+
* })
|
100
|
+
* const chainId = await client.getChainId()
|
101
|
+
* // 1
|
102
|
+
*/
|
103
|
+
getChainId: () => Promise<GetChainIdReturnType>
|
104
|
+
/**
|
105
|
+
* Returns the EntryPoints that the bundler supports.
|
106
|
+
*
|
107
|
+
* - Docs: https://viem.sh/actions/bundler/getSupportedEntryPoints
|
108
|
+
*
|
109
|
+
* @param client - Client to use
|
110
|
+
* @param parameters - {@link GetSupportedEntryPointsParameters}
|
111
|
+
* @returns Supported Entry Points. {@link GetSupportedEntryPointsReturnType}
|
112
|
+
*
|
113
|
+
* @example
|
114
|
+
* import { createBundlerClient, http, parseEther } from 'viem'
|
115
|
+
* import { mainnet } from 'viem/chains'
|
116
|
+
*
|
117
|
+
* const bundlerClient = createBundlerClient({
|
118
|
+
* chain: mainnet,
|
119
|
+
* transport: http(),
|
120
|
+
* })
|
121
|
+
*
|
122
|
+
* const addresses = await bundlerClient.getSupportedEntryPoints()
|
123
|
+
*/
|
124
|
+
getSupportedEntryPoints: () => Promise<GetSupportedEntryPointsReturnType>
|
125
|
+
/**
|
126
|
+
* Returns the information about a User Operation given a hash.
|
127
|
+
*
|
128
|
+
* - Docs: https://viem.sh/docs/actions/bundler/getUserOperation
|
129
|
+
*
|
130
|
+
* @param client - Client to use
|
131
|
+
* @param parameters - {@link GetUserOperationParameters}
|
132
|
+
* @returns The receipt. {@link GetUserOperationReturnType}
|
133
|
+
*
|
134
|
+
* @example
|
135
|
+
* import { createBundlerClient, http } from 'viem'
|
136
|
+
* import { mainnet } from 'viem/chains'
|
137
|
+
*
|
138
|
+
* const client = createBundlerClient({
|
139
|
+
* chain: mainnet,
|
140
|
+
* transport: http(),
|
141
|
+
* })
|
142
|
+
*
|
143
|
+
* const receipt = await client.getUserOperation({
|
144
|
+
* hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
|
145
|
+
* })
|
146
|
+
*/
|
147
|
+
getUserOperation: (
|
148
|
+
parameters: GetUserOperationParameters,
|
149
|
+
) => Promise<GetUserOperationReturnType>
|
150
|
+
/**
|
151
|
+
* Returns the User Operation Receipt given a User Operation hash.
|
152
|
+
*
|
153
|
+
* - Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt
|
154
|
+
*
|
155
|
+
* @param client - Client to use
|
156
|
+
* @param parameters - {@link GetUserOperationReceiptParameters}
|
157
|
+
* @returns The receipt. {@link GetUserOperationReceiptReturnType}
|
158
|
+
*
|
159
|
+
* @example
|
160
|
+
* import { createBundlerClient, http } from 'viem'
|
161
|
+
* import { mainnet } from 'viem/chains'
|
162
|
+
*
|
163
|
+
* const client = createBundlerClient({
|
164
|
+
* chain: mainnet,
|
165
|
+
* transport: http(),
|
166
|
+
* })
|
167
|
+
*
|
168
|
+
* const receipt = await client.getUserOperationReceipt({
|
169
|
+
* hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
|
170
|
+
* })
|
171
|
+
*/
|
172
|
+
getUserOperationReceipt: (
|
173
|
+
parameters: GetUserOperationReceiptParameters,
|
174
|
+
) => Promise<GetUserOperationReceiptReturnType>
|
175
|
+
/**
|
176
|
+
* Prepares a User Operation and fills in missing properties.
|
177
|
+
*
|
178
|
+
* - Docs: https://viem.sh/actions/bundler/prepareUserOperation
|
179
|
+
*
|
180
|
+
* @param args - {@link PrepareUserOperationParameters}
|
181
|
+
* @returns The User Operation. {@link PrepareUserOperationReturnType}
|
182
|
+
*
|
183
|
+
* @example
|
184
|
+
* import { createBundlerClient, http } from 'viem'
|
185
|
+
* import { mainnet } from 'viem/chains'
|
186
|
+
* import { toSmartAccount } from 'viem/accounts'
|
187
|
+
*
|
188
|
+
* const account = await toSmartAccount({ ... })
|
189
|
+
*
|
190
|
+
* const client = createBundlerClient({
|
191
|
+
* chain: mainnet,
|
192
|
+
* transport: http(),
|
193
|
+
* })
|
194
|
+
*
|
195
|
+
* const request = await client.prepareUserOperation({
|
196
|
+
* account,
|
197
|
+
* calls: [{ to: '0x...', value: parseEther('1') }],
|
198
|
+
* })
|
199
|
+
*/
|
200
|
+
prepareUserOperation: <
|
201
|
+
const calls extends readonly unknown[],
|
202
|
+
const request extends PrepareUserOperationRequest<
|
203
|
+
account,
|
204
|
+
accountOverride,
|
205
|
+
calls
|
206
|
+
>,
|
207
|
+
accountOverride extends SmartAccount | undefined = undefined,
|
208
|
+
>(
|
209
|
+
parameters: PrepareUserOperationParameters<
|
210
|
+
account,
|
211
|
+
accountOverride,
|
212
|
+
calls,
|
213
|
+
request
|
214
|
+
>,
|
215
|
+
) => Promise<
|
216
|
+
PrepareUserOperationReturnType<account, accountOverride, calls, request>
|
217
|
+
>
|
218
|
+
/**
|
219
|
+
* Broadcasts a User Operation to the Bundler.
|
220
|
+
*
|
221
|
+
* - Docs: https://viem.sh/actions/bundler/sendUserOperation
|
222
|
+
*
|
223
|
+
* @param client - Client to use
|
224
|
+
* @param parameters - {@link SendUserOperationParameters}
|
225
|
+
* @returns The User Operation hash. {@link SendUserOperationReturnType}
|
226
|
+
*
|
227
|
+
* @example
|
228
|
+
* import { createBundlerClient, http, parseEther } from 'viem'
|
229
|
+
* import { mainnet } from 'viem/chains'
|
230
|
+
* import { toSmartAccount } from 'viem/accounts'
|
231
|
+
*
|
232
|
+
* const account = toSmartAccount({ ... })
|
233
|
+
*
|
234
|
+
* const bundlerClient = createBundlerClient({
|
235
|
+
* chain: mainnet,
|
236
|
+
* transport: http(),
|
237
|
+
* })
|
238
|
+
*
|
239
|
+
* const values = await bundlerClient.sendUserOperation({
|
240
|
+
* account,
|
241
|
+
* calls: [{ to: '0x...', value: parseEther('1') }],
|
242
|
+
* })
|
243
|
+
*/
|
244
|
+
sendUserOperation: <
|
245
|
+
const calls extends readonly unknown[],
|
246
|
+
accountOverride extends SmartAccount | undefined = undefined,
|
247
|
+
>(
|
248
|
+
parameters: SendUserOperationParameters<account, accountOverride, calls>,
|
249
|
+
) => Promise<SendUserOperationReturnType>
|
250
|
+
/**
|
251
|
+
* Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.
|
252
|
+
*
|
253
|
+
* - Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt
|
254
|
+
*
|
255
|
+
* @param client - Client to use
|
256
|
+
* @param parameters - {@link WaitForUserOperationReceiptParameters}
|
257
|
+
* @returns The receipt. {@link WaitForUserOperationReceiptReturnType}
|
258
|
+
*
|
259
|
+
* @example
|
260
|
+
* import { createBundlerClient, http } from 'viem'
|
261
|
+
* import { mainnet } from 'viem/chains'
|
262
|
+
*
|
263
|
+
* const client = createBundlerClient({
|
264
|
+
* chain: mainnet,
|
265
|
+
* transport: http(),
|
266
|
+
* })
|
267
|
+
*
|
268
|
+
* const receipt = await client.waitForUserOperationReceipt({
|
269
|
+
* hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
|
270
|
+
* })
|
271
|
+
*/
|
272
|
+
waitForUserOperationReceipt: (
|
273
|
+
parameters: WaitForUserOperationReceiptParameters,
|
274
|
+
) => Promise<WaitForUserOperationReceiptReturnType>
|
275
|
+
}
|
276
|
+
|
277
|
+
export function bundlerActions<
|
278
|
+
transport extends Transport = Transport,
|
279
|
+
chain extends Chain | undefined = Chain | undefined,
|
280
|
+
account extends SmartAccount | undefined = SmartAccount | undefined,
|
281
|
+
>(client: Client<transport, chain, account>): BundlerActions<account> {
|
282
|
+
return {
|
283
|
+
estimateUserOperationGas: (parameters) =>
|
284
|
+
estimateUserOperationGas(client, parameters),
|
285
|
+
getChainId: () => getChainId(client),
|
286
|
+
getSupportedEntryPoints: () => getSupportedEntryPoints(client),
|
287
|
+
getUserOperation: (parameters) => getUserOperation(client, parameters),
|
288
|
+
getUserOperationReceipt: (parameters) =>
|
289
|
+
getUserOperationReceipt(client, parameters),
|
290
|
+
prepareUserOperation: (parameters) =>
|
291
|
+
prepareUserOperation(client, parameters),
|
292
|
+
sendUserOperation: (parameters) => sendUserOperation(client, parameters),
|
293
|
+
waitForUserOperationReceipt: (parameters) =>
|
294
|
+
waitForUserOperationReceipt(client, parameters),
|
295
|
+
}
|
296
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import type { Client } from '../../../clients/createClient.js'
|
2
|
+
import type { Transport } from '../../../clients/transports/createTransport.js'
|
3
|
+
import {
|
4
|
+
type GetPaymasterDataParameters,
|
5
|
+
type GetPaymasterDataReturnType,
|
6
|
+
getPaymasterData,
|
7
|
+
} from '../../actions/paymaster/getPaymasterData.js'
|
8
|
+
import {
|
9
|
+
type GetPaymasterStubDataParameters,
|
10
|
+
type GetPaymasterStubDataReturnType,
|
11
|
+
getPaymasterStubData,
|
12
|
+
} from '../../actions/paymaster/getPaymasterStubData.js'
|
13
|
+
|
14
|
+
export type PaymasterActions = {
|
15
|
+
/**
|
16
|
+
* Retrieves paymaster-related User Operation properties to be used for sending the User Operation.
|
17
|
+
*
|
18
|
+
* - Docs: https://viem.sh/account-abstraction/actions/paymaster/getPaymasterData
|
19
|
+
*
|
20
|
+
* @param client - Client to use
|
21
|
+
* @param parameters - {@link GetPaymasterDataParameters}
|
22
|
+
* @returns Paymaster-related User Operation properties. {@link GetPaymasterDataReturnType}
|
23
|
+
*
|
24
|
+
* @example
|
25
|
+
* import { http } from 'viem'
|
26
|
+
* import { createPaymasterClient } from 'viem/account-abstraction'
|
27
|
+
*
|
28
|
+
* const paymasterClient = createPaymasterClient({
|
29
|
+
* transport: http('https://...'),
|
30
|
+
* })
|
31
|
+
*
|
32
|
+
* const userOperation = { ... }
|
33
|
+
*
|
34
|
+
* const values = await paymasterClient.getPaymasterData({
|
35
|
+
* chainId: 1,
|
36
|
+
* entryPointAddress: '0x...',
|
37
|
+
* ...userOperation,
|
38
|
+
* })
|
39
|
+
*/
|
40
|
+
getPaymasterData: (
|
41
|
+
parameters: GetPaymasterDataParameters,
|
42
|
+
) => Promise<GetPaymasterDataReturnType>
|
43
|
+
/**
|
44
|
+
* Retrieves paymaster-related User Operation properties to be used for gas estimation.
|
45
|
+
*
|
46
|
+
* - Docs: https://viem.sh/account-abstraction/actions/paymaster/getPaymasterStubData
|
47
|
+
*
|
48
|
+
* @param client - Client to use
|
49
|
+
* @param parameters - {@link GetPaymasterStubDataParameters}
|
50
|
+
* @returns Paymaster-related User Operation properties. {@link GetPaymasterStubDataReturnType}
|
51
|
+
*
|
52
|
+
* @example
|
53
|
+
* import { http } from 'viem'
|
54
|
+
* import { createPaymasterClient } from 'viem/account-abstraction'
|
55
|
+
*
|
56
|
+
* const paymasterClient = createPaymasterClient({
|
57
|
+
* transport: http('https://...'),
|
58
|
+
* })
|
59
|
+
*
|
60
|
+
* const userOperation = { ... }
|
61
|
+
*
|
62
|
+
* const values = await paymasterClient.getPaymasterStubData({
|
63
|
+
* chainId: 1,
|
64
|
+
* entryPointAddress: '0x...',
|
65
|
+
* ...userOperation,
|
66
|
+
* })
|
67
|
+
*/
|
68
|
+
getPaymasterStubData: (
|
69
|
+
parameters: GetPaymasterStubDataParameters,
|
70
|
+
) => Promise<GetPaymasterStubDataReturnType>
|
71
|
+
}
|
72
|
+
|
73
|
+
export function paymasterActions<transport extends Transport = Transport>(
|
74
|
+
client: Client<transport>,
|
75
|
+
): PaymasterActions {
|
76
|
+
return {
|
77
|
+
getPaymasterData: (parameters) => getPaymasterData(client, parameters),
|
78
|
+
getPaymasterStubData: (parameters) =>
|
79
|
+
getPaymasterStubData(client, parameters),
|
80
|
+
}
|
81
|
+
}
|