@alchemy/wallet-apis 0.0.0-alpha.14 → 0.0.0-alpha.16

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.
Files changed (92) hide show
  1. package/dist/esm/actions/grantPermissions.js +9 -2
  2. package/dist/esm/actions/grantPermissions.js.map +1 -1
  3. package/dist/esm/actions/listAccounts.d.ts +10 -2
  4. package/dist/esm/actions/listAccounts.js +23 -2
  5. package/dist/esm/actions/listAccounts.js.map +1 -1
  6. package/dist/esm/actions/requestAccount.d.ts +10 -3
  7. package/dist/esm/actions/requestAccount.js +43 -15
  8. package/dist/esm/actions/requestAccount.js.map +1 -1
  9. package/dist/esm/actions/sendCalls.d.ts +4 -0
  10. package/dist/esm/actions/sendCalls.js +26 -4
  11. package/dist/esm/actions/sendCalls.js.map +1 -1
  12. package/dist/esm/actions/sendPreparedCalls.js +2 -0
  13. package/dist/esm/actions/sendPreparedCalls.js.map +1 -1
  14. package/dist/esm/actions/signMessage.js +5 -1
  15. package/dist/esm/actions/signMessage.js.map +1 -1
  16. package/dist/esm/actions/signPreparedCalls.js +6 -1
  17. package/dist/esm/actions/signPreparedCalls.js.map +1 -1
  18. package/dist/esm/actions/signSignatureRequest.d.ts +10 -3
  19. package/dist/esm/actions/signSignatureRequest.js +93 -42
  20. package/dist/esm/actions/signSignatureRequest.js.map +1 -1
  21. package/dist/esm/actions/signTypedData.js +5 -1
  22. package/dist/esm/actions/signTypedData.js.map +1 -1
  23. package/dist/esm/client.d.ts +4 -4
  24. package/dist/esm/client.js +3 -13
  25. package/dist/esm/client.js.map +1 -1
  26. package/dist/esm/types.d.ts +4 -7
  27. package/dist/esm/types.js.map +1 -1
  28. package/dist/esm/utils/assertions.d.ts +6 -2
  29. package/dist/esm/utils/assertions.js +9 -0
  30. package/dist/esm/utils/assertions.js.map +1 -1
  31. package/dist/esm/utils/capabilities.d.ts +13 -4
  32. package/dist/esm/utils/capabilities.js +37 -11
  33. package/dist/esm/utils/capabilities.js.map +1 -1
  34. package/dist/esm/utils/format.d.ts +3 -1
  35. package/dist/esm/utils/format.js +11 -1
  36. package/dist/esm/utils/format.js.map +1 -1
  37. package/dist/esm/utils/signer.d.ts +10 -0
  38. package/dist/esm/utils/signer.js +28 -0
  39. package/dist/esm/utils/signer.js.map +1 -0
  40. package/dist/esm/utils/viemDecode.d.ts +1 -1
  41. package/dist/esm/utils/viemDecode.js.map +1 -1
  42. package/dist/esm/utils/viemEncode.js.map +1 -1
  43. package/dist/esm/version.d.ts +1 -1
  44. package/dist/esm/version.js +1 -1
  45. package/dist/esm/version.js.map +1 -1
  46. package/dist/types/actions/grantPermissions.d.ts.map +1 -1
  47. package/dist/types/actions/listAccounts.d.ts +10 -2
  48. package/dist/types/actions/listAccounts.d.ts.map +1 -1
  49. package/dist/types/actions/requestAccount.d.ts +10 -3
  50. package/dist/types/actions/requestAccount.d.ts.map +1 -1
  51. package/dist/types/actions/sendCalls.d.ts +4 -0
  52. package/dist/types/actions/sendCalls.d.ts.map +1 -1
  53. package/dist/types/actions/sendPreparedCalls.d.ts.map +1 -1
  54. package/dist/types/actions/signMessage.d.ts.map +1 -1
  55. package/dist/types/actions/signPreparedCalls.d.ts.map +1 -1
  56. package/dist/types/actions/signSignatureRequest.d.ts +10 -3
  57. package/dist/types/actions/signSignatureRequest.d.ts.map +1 -1
  58. package/dist/types/actions/signTypedData.d.ts.map +1 -1
  59. package/dist/types/client.d.ts +4 -4
  60. package/dist/types/client.d.ts.map +1 -1
  61. package/dist/types/types.d.ts +4 -7
  62. package/dist/types/types.d.ts.map +1 -1
  63. package/dist/types/utils/assertions.d.ts +6 -2
  64. package/dist/types/utils/assertions.d.ts.map +1 -1
  65. package/dist/types/utils/capabilities.d.ts +13 -4
  66. package/dist/types/utils/capabilities.d.ts.map +1 -1
  67. package/dist/types/utils/format.d.ts +3 -1
  68. package/dist/types/utils/format.d.ts.map +1 -1
  69. package/dist/types/utils/signer.d.ts +11 -0
  70. package/dist/types/utils/signer.d.ts.map +1 -0
  71. package/dist/types/utils/viemDecode.d.ts +1 -1
  72. package/dist/types/utils/viemDecode.d.ts.map +1 -1
  73. package/dist/types/version.d.ts +1 -1
  74. package/package.json +7 -6
  75. package/src/actions/grantPermissions.ts +13 -2
  76. package/src/actions/listAccounts.ts +39 -5
  77. package/src/actions/requestAccount.ts +67 -22
  78. package/src/actions/sendCalls.ts +40 -4
  79. package/src/actions/sendPreparedCalls.ts +3 -0
  80. package/src/actions/signMessage.ts +8 -0
  81. package/src/actions/signPreparedCalls.ts +14 -1
  82. package/src/actions/signSignatureRequest.ts +165 -54
  83. package/src/actions/signTypedData.ts +8 -0
  84. package/src/client.ts +5 -23
  85. package/src/types.ts +5 -5
  86. package/src/utils/assertions.ts +21 -2
  87. package/src/utils/capabilities.ts +56 -15
  88. package/src/utils/format.ts +20 -1
  89. package/src/utils/signer.ts +36 -0
  90. package/src/utils/viemDecode.ts +1 -1
  91. package/src/utils/viemEncode.ts +1 -1
  92. package/src/version.ts +1 -1
@@ -0,0 +1,28 @@
1
+ import { toHex } from "viem";
2
+ import { parsePublicKey } from "webauthn-p256";
3
+ export function getSignerAddressOrPublicKey(signer) {
4
+ // SignerClient.
5
+ if ("request" in signer) {
6
+ return {
7
+ type: "secp256k1",
8
+ address: signer.account.address,
9
+ };
10
+ }
11
+ // LocalAccount.
12
+ if (signer.type === "local") {
13
+ return {
14
+ type: "secp256k1",
15
+ address: signer.address,
16
+ };
17
+ }
18
+ // WebAuthnAccount.
19
+ const key = parsePublicKey(signer.publicKey);
20
+ return {
21
+ type: "webauthn-p256",
22
+ publicKey: {
23
+ x: toHex(key.x),
24
+ y: toHex(key.y),
25
+ },
26
+ };
27
+ }
28
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,UAAU,2BAA2B,CACzC,MAAyB;IAIzB,gBAAgB;IAChB,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;SAChC,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE;YACT,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACf,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAChB;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { toHex, type Address } from \"viem\";\nimport type { SmartWalletSigner } from \"../types\";\nimport type { WebAuthnPublicKey } from \"@alchemy/wallet-api-types\";\nimport { parsePublicKey } from \"webauthn-p256\";\n\nexport function getSignerAddressOrPublicKey(\n signer: SmartWalletSigner,\n):\n | { type: \"secp256k1\"; address: Address }\n | { type: \"webauthn-p256\"; publicKey: WebAuthnPublicKey } {\n // SignerClient.\n if (\"request\" in signer) {\n return {\n type: \"secp256k1\",\n address: signer.account.address,\n };\n }\n\n // LocalAccount.\n if (signer.type === \"local\") {\n return {\n type: \"secp256k1\",\n address: signer.address,\n };\n }\n\n // WebAuthnAccount.\n const key = parsePublicKey(signer.publicKey);\n return {\n type: \"webauthn-p256\",\n publicKey: {\n x: toHex(key.x),\n y: toHex(key.y),\n },\n };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { type Capabilities } from "viem";
2
2
  import { type PrepareCallsResult } from "@alchemy/wallet-apis";
3
3
  import type { PreparedCall_Authorization, PreparedCall_Permit, PreparedCall_UserOpV060, PreparedCall_UserOpV070 } from "@alchemy/wallet-api-types";
4
- import type { Capabilities as WalletApiCapabilities } from "@alchemy/wallet-api-types/capabilities";
4
+ import type { PrepareCallsCapabilities as WalletApiCapabilities } from "@alchemy/wallet-api-types/capabilities";
5
5
  import type { ViemEncodedAuthorizationCall, ViemEncodedPaymasterPermitCall, ViemEncodedPreparedCalls, ViemEncodedUserOperationCall } from "./viemEncode.js";
6
6
  export declare const viemDecodePreparedCalls: (encodedCalls: ViemEncodedPreparedCalls) => PrepareCallsResult;
7
7
  export declare const viemDecodePreparedCall: (call: ViemEncodedUserOperationCall | ViemEncodedPaymasterPermitCall | ViemEncodedAuthorizationCall) => PreparedCall_UserOpV060 | PreparedCall_UserOpV070 | PreparedCall_Permit | PreparedCall_Authorization;
@@ -1 +1 @@
1
- {"version":3,"file":"viemDecode.js","sourceRoot":"","sources":["../../../src/utils/viemDecode.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isHex,\n numberToHex,\n toHex,\n type Capabilities,\n type Hex,\n type Signature,\n} from \"viem\";\nimport { type PrepareCallsResult } from \"@alchemy/wallet-apis\";\nimport { assertNever } from \"@alchemy/common\";\nimport type {\n EcdsaSig,\n PreparedCall_Authorization,\n PreparedCall_Permit,\n PreparedCall_UserOpV060,\n PreparedCall_UserOpV070,\n} from \"@alchemy/wallet-api-types\";\nimport type { Capabilities as WalletApiCapabilities } from \"@alchemy/wallet-api-types/capabilities\";\nimport type {\n ViemEncodedAuthorizationCall,\n ViemEncodedPaymasterPermitCall,\n ViemEncodedPreparedCalls,\n ViemEncodedUserOperationCall,\n} from \"./viemEncode.js\";\n\nexport const viemDecodePreparedCalls = (\n encodedCalls: ViemEncodedPreparedCalls,\n): PrepareCallsResult => {\n if (encodedCalls.type === \"array\") {\n return {\n type: \"array\",\n data: encodedCalls.data.map((call) => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemDecodeUserOperationCall(call);\n case \"authorization\":\n return viemDecodeAuthorization(call);\n default:\n return assertNever(call, \"Unexpected encoded call type in array\");\n }\n }),\n };\n }\n\n switch (encodedCalls.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemDecodeUserOperationCall(encodedCalls);\n case \"paymaster-permit\":\n return viemDecodePaymasterPermitCall(encodedCalls);\n default:\n return assertNever(encodedCalls, \"Unexpected encoded call type\");\n }\n};\n\nexport const viemDecodePreparedCall = (\n call:\n | ViemEncodedUserOperationCall\n | ViemEncodedPaymasterPermitCall\n | ViemEncodedAuthorizationCall,\n):\n | PreparedCall_UserOpV060\n | PreparedCall_UserOpV070\n | PreparedCall_Permit\n | PreparedCall_Authorization => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\": {\n return viemDecodeUserOperationCall(call);\n }\n case \"paymaster-permit\": {\n return viemDecodePaymasterPermitCall(call);\n }\n case \"authorization\": {\n return viemDecodeAuthorization(call);\n }\n default: {\n return assertNever(call, \"Unexpected prepared call type\");\n }\n }\n};\n\nconst viemDecodeUserOperationCall = (\n call: ViemEncodedUserOperationCall,\n): PreparedCall_UserOpV060 | PreparedCall_UserOpV070 => {\n switch (call.type) {\n case \"user-operation-v060\": {\n return {\n type: call.type,\n chainId: numberToHex(call.chainId),\n data: {\n sender: call.data.sender,\n nonce: toHex(call.data.nonce),\n initCode: call.data.initCode!,\n callData: call.data.callData,\n callGasLimit: toHex(call.data.callGasLimit),\n verificationGasLimit: toHex(call.data.verificationGasLimit),\n preVerificationGas: toHex(call.data.preVerificationGas),\n maxFeePerGas: toHex(call.data.maxFeePerGas),\n maxPriorityFeePerGas: toHex(call.data.maxPriorityFeePerGas),\n paymasterAndData: \"0x\",\n },\n signatureRequest: call.signatureRequest,\n feePayment: {\n sponsored: call.feePayment.sponsored,\n tokenAddress: call.feePayment.tokenAddress,\n maxAmount: toHex(call.feePayment.maxAmount),\n },\n } satisfies PreparedCall_UserOpV060;\n }\n case \"user-operation-v070\": {\n return {\n type: call.type,\n chainId: numberToHex(call.chainId),\n data: {\n sender: call.data.sender,\n nonce: toHex(call.data.nonce),\n factory: call.data.factory,\n factoryData: call.data.factoryData,\n callData: call.data.callData,\n callGasLimit: toHex(call.data.callGasLimit),\n verificationGasLimit: toHex(call.data.verificationGasLimit),\n preVerificationGas: toHex(call.data.preVerificationGas),\n maxFeePerGas: toHex(call.data.maxFeePerGas),\n maxPriorityFeePerGas: toHex(call.data.maxPriorityFeePerGas),\n paymaster: call.data.paymaster,\n paymasterData: call.data.paymasterData,\n paymasterVerificationGasLimit:\n call.data.paymasterVerificationGasLimit != null\n ? toHex(call.data.paymasterVerificationGasLimit)\n : undefined,\n paymasterPostOpGasLimit:\n call.data.paymasterPostOpGasLimit != null\n ? toHex(call.data.paymasterPostOpGasLimit)\n : undefined,\n },\n signatureRequest: call.signatureRequest,\n feePayment: {\n sponsored: call.feePayment.sponsored,\n tokenAddress: call.feePayment.tokenAddress,\n maxAmount: toHex(call.feePayment.maxAmount),\n },\n } satisfies PreparedCall_UserOpV070;\n }\n default: {\n return assertNever(\n call.type,\n `Unexpected user operation type in 'viemDecodeUserOperationCall'`,\n );\n }\n }\n};\n\nconst viemDecodeAuthorization = (\n call: ViemEncodedAuthorizationCall,\n): PreparedCall_Authorization => {\n return {\n type: call.type,\n chainId: numberToHex(call.chainId),\n data: {\n address: call.data.address,\n nonce: numberToHex(call.data.nonce),\n },\n signatureRequest: call.signatureRequest,\n };\n};\n\nconst viemDecodePaymasterPermitCall = (\n call: ViemEncodedPaymasterPermitCall,\n): PreparedCall_Permit => {\n return {\n type: call.type,\n data: call.data,\n signatureRequest: call.signatureRequest,\n modifiedRequest: {\n from: call.modifiedRequest.from,\n paymasterPermitSignature: viemDecodeSignature(\n call.modifiedRequest.paymasterPermitSignature,\n ),\n calls: call.modifiedRequest.calls.map((it) => ({\n to: it.to,\n data: it.data,\n value: it.value != null ? toHex(it.value) : undefined,\n })),\n capabilities: viemDecodeCapabilities(call.modifiedRequest.capabilities),\n chainId: numberToHex(call.modifiedRequest.chainId),\n },\n };\n};\n\ntype DecodedSignature = EcdsaSig[\"signature\"];\n\nconst viemDecodeSignature = (\n signature:\n | {\n type: EcdsaSig[\"signature\"][\"type\"];\n data: Signature | Hex;\n }\n | undefined,\n): DecodedSignature | undefined => {\n if (!signature) {\n return undefined;\n }\n const { type, data } = signature;\n if (isHex(data)) {\n return { type, data };\n }\n if (\"yParity\" in data && data.yParity != null) {\n return { type, data: { ...data, yParity: toHex(data.yParity) } };\n }\n if (\"v\" in data) {\n return { type, data: { ...data, v: toHex(data.v) } };\n }\n return assertNever(data, \"Signature object must include 'v' or 'yParity'\");\n};\n\nexport const viemDecodeCapabilities = (\n capabilities: Capabilities | undefined,\n): WalletApiCapabilities => {\n const { alchemyPaymaster, ...rest } = capabilities ?? {};\n return {\n ...rest,\n ...(rest?.gasParamsOverride && {\n gasParamsOverride: Object.fromEntries(\n Object.entries(rest.gasParamsOverride).map(([key, value]) => [\n key,\n typeof value === \"bigint\" ? toHex(value) : value,\n ]),\n ),\n }),\n ...(rest?.nonceOverride && {\n nonceOverride: {\n nonceKey: toHex(rest.nonceOverride.nonceKey),\n },\n }),\n ...(alchemyPaymaster && {\n paymasterService: {\n ...(\"policyId\" in alchemyPaymaster && {\n policyId: alchemyPaymaster.policyId,\n }),\n ...(\"policyIds\" in alchemyPaymaster && {\n policyIds: alchemyPaymaster.policyIds,\n }),\n ...(alchemyPaymaster.onlyEstimation && {\n onlyEstimation: alchemyPaymaster.onlyEstimation,\n }),\n ...(alchemyPaymaster.erc20 && {\n erc20: {\n ...alchemyPaymaster.erc20,\n maxTokenAmount:\n alchemyPaymaster.erc20.maxTokenAmount != null\n ? toHex(alchemyPaymaster.erc20.maxTokenAmount)\n : undefined,\n ...(\"preOpSettings\" in alchemyPaymaster.erc20 && {\n preOpSettings: {\n ...alchemyPaymaster.erc20.preOpSettings,\n ...(\"autoPermit\" in alchemyPaymaster.erc20.preOpSettings && {\n autoPermit: {\n below: toHex(\n alchemyPaymaster.erc20.preOpSettings.autoPermit.below,\n ),\n amount: toHex(\n alchemyPaymaster.erc20.preOpSettings.autoPermit.amount,\n ),\n durationSeconds:\n alchemyPaymaster.erc20.preOpSettings.autoPermit\n .durationSeconds != null\n ? toHex(\n alchemyPaymaster.erc20.preOpSettings.autoPermit\n .durationSeconds,\n )\n : undefined,\n },\n }),\n ...(\"permitDetails\" in alchemyPaymaster.erc20.preOpSettings && {\n permitDetails: {\n deadline: toHex(\n alchemyPaymaster.erc20.preOpSettings.permitDetails\n .deadline,\n ),\n value: toHex(\n alchemyPaymaster.erc20.preOpSettings.permitDetails.value,\n ),\n },\n }),\n },\n }),\n ...(\"postOpSettings\" in alchemyPaymaster.erc20 && {\n postOpSettings: {\n ...(alchemyPaymaster.erc20.postOpSettings.autoApprove && {\n autoApprove: {\n below: toHex(\n alchemyPaymaster.erc20.postOpSettings.autoApprove.below,\n ),\n amount:\n alchemyPaymaster.erc20.postOpSettings.autoApprove\n .amount != null\n ? toHex(\n alchemyPaymaster.erc20.postOpSettings.autoApprove\n .amount,\n )\n : undefined,\n },\n }),\n },\n }),\n },\n }),\n },\n }),\n };\n};\n"]}
1
+ {"version":3,"file":"viemDecode.js","sourceRoot":"","sources":["../../../src/utils/viemDecode.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isHex,\n numberToHex,\n toHex,\n type Capabilities,\n type Hex,\n type Signature,\n} from \"viem\";\nimport { type PrepareCallsResult } from \"@alchemy/wallet-apis\";\nimport { assertNever } from \"@alchemy/common\";\nimport type {\n EcdsaSig,\n PreparedCall_Authorization,\n PreparedCall_Permit,\n PreparedCall_UserOpV060,\n PreparedCall_UserOpV070,\n} from \"@alchemy/wallet-api-types\";\nimport type { PrepareCallsCapabilities as WalletApiCapabilities } from \"@alchemy/wallet-api-types/capabilities\";\nimport type {\n ViemEncodedAuthorizationCall,\n ViemEncodedPaymasterPermitCall,\n ViemEncodedPreparedCalls,\n ViemEncodedUserOperationCall,\n} from \"./viemEncode.js\";\n\nexport const viemDecodePreparedCalls = (\n encodedCalls: ViemEncodedPreparedCalls,\n): PrepareCallsResult => {\n if (encodedCalls.type === \"array\") {\n return {\n type: \"array\",\n data: encodedCalls.data.map((call) => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemDecodeUserOperationCall(call);\n case \"authorization\":\n return viemDecodeAuthorization(call);\n default:\n return assertNever(call, \"Unexpected encoded call type in array\");\n }\n }),\n };\n }\n\n switch (encodedCalls.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemDecodeUserOperationCall(encodedCalls);\n case \"paymaster-permit\":\n return viemDecodePaymasterPermitCall(encodedCalls);\n default:\n return assertNever(encodedCalls, \"Unexpected encoded call type\");\n }\n};\n\nexport const viemDecodePreparedCall = (\n call:\n | ViemEncodedUserOperationCall\n | ViemEncodedPaymasterPermitCall\n | ViemEncodedAuthorizationCall,\n):\n | PreparedCall_UserOpV060\n | PreparedCall_UserOpV070\n | PreparedCall_Permit\n | PreparedCall_Authorization => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\": {\n return viemDecodeUserOperationCall(call);\n }\n case \"paymaster-permit\": {\n return viemDecodePaymasterPermitCall(call);\n }\n case \"authorization\": {\n return viemDecodeAuthorization(call);\n }\n default: {\n return assertNever(call, \"Unexpected prepared call type\");\n }\n }\n};\n\nconst viemDecodeUserOperationCall = (\n call: ViemEncodedUserOperationCall,\n): PreparedCall_UserOpV060 | PreparedCall_UserOpV070 => {\n switch (call.type) {\n case \"user-operation-v060\": {\n return {\n type: call.type,\n chainId: numberToHex(call.chainId),\n data: {\n sender: call.data.sender,\n nonce: toHex(call.data.nonce),\n initCode: call.data.initCode!,\n callData: call.data.callData,\n callGasLimit: toHex(call.data.callGasLimit),\n verificationGasLimit: toHex(call.data.verificationGasLimit),\n preVerificationGas: toHex(call.data.preVerificationGas),\n maxFeePerGas: toHex(call.data.maxFeePerGas),\n maxPriorityFeePerGas: toHex(call.data.maxPriorityFeePerGas),\n paymasterAndData: \"0x\",\n },\n signatureRequest: call.signatureRequest,\n feePayment: {\n sponsored: call.feePayment.sponsored,\n tokenAddress: call.feePayment.tokenAddress,\n maxAmount: toHex(call.feePayment.maxAmount),\n },\n } satisfies PreparedCall_UserOpV060;\n }\n case \"user-operation-v070\": {\n return {\n type: call.type,\n chainId: numberToHex(call.chainId),\n data: {\n sender: call.data.sender,\n nonce: toHex(call.data.nonce),\n factory: call.data.factory,\n factoryData: call.data.factoryData,\n callData: call.data.callData,\n callGasLimit: toHex(call.data.callGasLimit),\n verificationGasLimit: toHex(call.data.verificationGasLimit),\n preVerificationGas: toHex(call.data.preVerificationGas),\n maxFeePerGas: toHex(call.data.maxFeePerGas),\n maxPriorityFeePerGas: toHex(call.data.maxPriorityFeePerGas),\n paymaster: call.data.paymaster,\n paymasterData: call.data.paymasterData,\n paymasterVerificationGasLimit:\n call.data.paymasterVerificationGasLimit != null\n ? toHex(call.data.paymasterVerificationGasLimit)\n : undefined,\n paymasterPostOpGasLimit:\n call.data.paymasterPostOpGasLimit != null\n ? toHex(call.data.paymasterPostOpGasLimit)\n : undefined,\n },\n signatureRequest: call.signatureRequest,\n feePayment: {\n sponsored: call.feePayment.sponsored,\n tokenAddress: call.feePayment.tokenAddress,\n maxAmount: toHex(call.feePayment.maxAmount),\n },\n } satisfies PreparedCall_UserOpV070;\n }\n default: {\n return assertNever(\n call.type,\n `Unexpected user operation type in 'viemDecodeUserOperationCall'`,\n );\n }\n }\n};\n\nconst viemDecodeAuthorization = (\n call: ViemEncodedAuthorizationCall,\n): PreparedCall_Authorization => {\n return {\n type: call.type,\n chainId: numberToHex(call.chainId),\n data: {\n address: call.data.address,\n nonce: numberToHex(call.data.nonce),\n },\n signatureRequest: call.signatureRequest,\n };\n};\n\nconst viemDecodePaymasterPermitCall = (\n call: ViemEncodedPaymasterPermitCall,\n): PreparedCall_Permit => {\n return {\n type: call.type,\n data: call.data,\n signatureRequest: call.signatureRequest,\n modifiedRequest: {\n from: call.modifiedRequest.from,\n paymasterPermitSignature: viemDecodeSignature(\n call.modifiedRequest.paymasterPermitSignature,\n ),\n calls: call.modifiedRequest.calls.map((it) => ({\n to: it.to,\n data: it.data,\n value: it.value != null ? toHex(it.value) : undefined,\n })),\n capabilities: viemDecodeCapabilities(call.modifiedRequest.capabilities),\n chainId: numberToHex(call.modifiedRequest.chainId),\n },\n };\n};\n\ntype DecodedSignature = EcdsaSig[\"signature\"];\n\nconst viemDecodeSignature = (\n signature:\n | {\n type: EcdsaSig[\"signature\"][\"type\"];\n data: Signature | Hex;\n }\n | undefined,\n): DecodedSignature | undefined => {\n if (!signature) {\n return undefined;\n }\n const { type, data } = signature;\n if (isHex(data)) {\n return { type, data };\n }\n if (\"yParity\" in data && data.yParity != null) {\n return { type, data: { ...data, yParity: toHex(data.yParity) } };\n }\n if (\"v\" in data) {\n return { type, data: { ...data, v: toHex(data.v) } };\n }\n return assertNever(data, \"Signature object must include 'v' or 'yParity'\");\n};\n\nexport const viemDecodeCapabilities = (\n capabilities: Capabilities | undefined,\n): WalletApiCapabilities => {\n const { alchemyPaymaster, ...rest } = capabilities ?? {};\n return {\n ...rest,\n ...(rest?.gasParamsOverride && {\n gasParamsOverride: Object.fromEntries(\n Object.entries(rest.gasParamsOverride).map(([key, value]) => [\n key,\n typeof value === \"bigint\" ? toHex(value) : value,\n ]),\n ),\n }),\n ...(rest?.nonceOverride && {\n nonceOverride: {\n nonceKey: toHex(rest.nonceOverride.nonceKey),\n },\n }),\n ...(alchemyPaymaster && {\n paymasterService: {\n ...(\"policyId\" in alchemyPaymaster && {\n policyId: alchemyPaymaster.policyId,\n }),\n ...(\"policyIds\" in alchemyPaymaster && {\n policyIds: alchemyPaymaster.policyIds,\n }),\n ...(alchemyPaymaster.onlyEstimation && {\n onlyEstimation: alchemyPaymaster.onlyEstimation,\n }),\n ...(alchemyPaymaster.erc20 && {\n erc20: {\n ...alchemyPaymaster.erc20,\n maxTokenAmount:\n alchemyPaymaster.erc20.maxTokenAmount != null\n ? toHex(alchemyPaymaster.erc20.maxTokenAmount)\n : undefined,\n ...(\"preOpSettings\" in alchemyPaymaster.erc20 && {\n preOpSettings: {\n ...alchemyPaymaster.erc20.preOpSettings,\n ...(\"autoPermit\" in alchemyPaymaster.erc20.preOpSettings && {\n autoPermit: {\n below: toHex(\n alchemyPaymaster.erc20.preOpSettings.autoPermit.below,\n ),\n amount: toHex(\n alchemyPaymaster.erc20.preOpSettings.autoPermit.amount,\n ),\n durationSeconds:\n alchemyPaymaster.erc20.preOpSettings.autoPermit\n .durationSeconds != null\n ? toHex(\n alchemyPaymaster.erc20.preOpSettings.autoPermit\n .durationSeconds,\n )\n : undefined,\n },\n }),\n ...(\"permitDetails\" in alchemyPaymaster.erc20.preOpSettings && {\n permitDetails: {\n deadline: toHex(\n alchemyPaymaster.erc20.preOpSettings.permitDetails\n .deadline,\n ),\n value: toHex(\n alchemyPaymaster.erc20.preOpSettings.permitDetails.value,\n ),\n },\n }),\n },\n }),\n ...(\"postOpSettings\" in alchemyPaymaster.erc20 && {\n postOpSettings: {\n ...(alchemyPaymaster.erc20.postOpSettings.autoApprove && {\n autoApprove: {\n below: toHex(\n alchemyPaymaster.erc20.postOpSettings.autoApprove.below,\n ),\n amount:\n alchemyPaymaster.erc20.postOpSettings.autoApprove\n .amount != null\n ? toHex(\n alchemyPaymaster.erc20.postOpSettings.autoApprove\n .amount,\n )\n : undefined,\n },\n }),\n },\n }),\n },\n }),\n },\n }),\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"viemEncode.js","sourceRoot":"","sources":["../../../src/utils/viemEncode.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n hexToBigInt,\n hexToNumber,\n isHex,\n type Address,\n type Authorization,\n type Capabilities,\n type Hex,\n type Signature,\n type UnionOmit,\n} from \"viem\";\nimport type { PrepareCallsResult } from \"@alchemy/wallet-apis\";\nimport { assertNever } from \"@alchemy/common\";\nimport type { UserOperation } from \"viem/account-abstraction\";\nimport type {\n EcdsaSig,\n PreparedCall_Authorization,\n PreparedCall_Permit,\n PreparedCall_UserOpV060,\n PreparedCall_UserOpV070,\n} from \"@alchemy/wallet-api-types\";\nimport type { Capabilities as WalletApiCapabilities } from \"@alchemy/wallet-api-types/capabilities\";\n\nexport type ViemEncodedPreparedCalls =\n | (ViemEncodedUserOperationCall | ViemEncodedPaymasterPermitCall)\n | {\n type: \"array\";\n data: (ViemEncodedUserOperationCall | ViemEncodedAuthorizationCall)[];\n };\n\nexport const viemEncodePreparedCalls = (\n preparedCalls: PrepareCallsResult,\n): ViemEncodedPreparedCalls => {\n if (preparedCalls.type === \"array\") {\n return {\n type: \"array\",\n data: preparedCalls.data.map((call) => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemEncodeUserOperationCall(call);\n case \"authorization\":\n return viemEncodeAuthorization(call);\n default:\n return assertNever(call, \"Unexpected prepared call type in array\");\n }\n }),\n };\n }\n\n switch (preparedCalls.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemEncodeUserOperationCall(preparedCalls);\n case \"paymaster-permit\":\n return viemEncodePaymasterPermitCall(preparedCalls);\n default:\n return assertNever(preparedCalls, \"Unexpected prepared call type\");\n }\n};\n\nexport const viemEncodePreparedCall = (\n call:\n | PreparedCall_UserOpV060\n | PreparedCall_UserOpV070\n | PreparedCall_Permit\n | PreparedCall_Authorization,\n):\n | ViemEncodedUserOperationCall\n | ViemEncodedPaymasterPermitCall\n | ViemEncodedAuthorizationCall => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\": {\n return viemEncodeUserOperationCall(call);\n }\n case \"paymaster-permit\": {\n return viemEncodePaymasterPermitCall(call);\n }\n case \"authorization\": {\n return viemEncodeAuthorization(call);\n }\n default: {\n return assertNever(call, \"Unexpected prepared call type\");\n }\n }\n};\n\nexport type ViemEncodedUserOperationCall = {\n type: \"user-operation-v070\" | \"user-operation-v060\";\n chainId: number;\n data: UnionOmit<UserOperation, \"signature\">;\n signatureRequest: Pick<\n PreparedCall_UserOpV070,\n \"signatureRequest\"\n >[\"signatureRequest\"];\n feePayment: Omit<PreparedCall_UserOpV070[\"feePayment\"], \"maxAmount\"> & {\n maxAmount: bigint;\n };\n};\n\nconst viemEncodeUserOperationCall = (\n call: PreparedCall_UserOpV060 | PreparedCall_UserOpV070,\n): ViemEncodedUserOperationCall => {\n return {\n type: call.type,\n chainId: hexToNumber(call.chainId),\n data:\n call.type === \"user-operation-v070\"\n ? viemEncodeUoData070(call.data)\n : call.type === \"user-operation-v060\"\n ? viemEncodeUoData060(call.data)\n : assertNever(\n call,\n `Unexpected user operation type in 'viemEncodeUserOperationCall'`,\n ),\n signatureRequest: call.signatureRequest,\n feePayment: {\n sponsored: call.feePayment.sponsored,\n tokenAddress: call.feePayment.tokenAddress,\n maxAmount: hexToBigInt(call.feePayment.maxAmount),\n },\n };\n};\n\nconst viemEncodeUoData060 = (\n uo: PreparedCall_UserOpV060[\"data\"],\n): Omit<UserOperation<\"0.6\">, \"signature\"> => {\n return {\n sender: uo.sender,\n nonce: hexToBigInt(uo.nonce),\n initCode: uo.initCode,\n callData: uo.callData,\n callGasLimit: hexToBigInt(uo.callGasLimit),\n verificationGasLimit: hexToBigInt(uo.verificationGasLimit),\n preVerificationGas: hexToBigInt(uo.preVerificationGas),\n maxFeePerGas: hexToBigInt(uo.maxFeePerGas),\n maxPriorityFeePerGas: hexToBigInt(uo.maxPriorityFeePerGas),\n };\n};\n\nconst viemEncodeUoData070 = (\n uo: PreparedCall_UserOpV070[\"data\"],\n): Omit<UserOperation<\"0.7\">, \"signature\"> => {\n return {\n sender: uo.sender,\n nonce: hexToBigInt(uo.nonce),\n factory: uo.factory,\n factoryData: uo.factoryData,\n callData: uo.callData,\n callGasLimit: hexToBigInt(uo.callGasLimit),\n verificationGasLimit: hexToBigInt(uo.verificationGasLimit),\n preVerificationGas: hexToBigInt(uo.preVerificationGas),\n maxFeePerGas: hexToBigInt(uo.maxFeePerGas),\n maxPriorityFeePerGas: hexToBigInt(uo.maxPriorityFeePerGas),\n paymaster: uo.paymaster,\n paymasterData: uo.paymasterData,\n paymasterVerificationGasLimit:\n uo.paymasterVerificationGasLimit != null\n ? hexToBigInt(uo.paymasterVerificationGasLimit)\n : undefined,\n paymasterPostOpGasLimit:\n uo.paymasterPostOpGasLimit != null\n ? hexToBigInt(uo.paymasterPostOpGasLimit)\n : undefined,\n };\n};\n\nexport type ViemEncodedAuthorizationCall = Pick<\n PreparedCall_Authorization,\n \"type\" | \"signatureRequest\"\n> &\n Pick<Authorization, \"chainId\"> & {\n data: Pick<Authorization, \"nonce\" | \"address\">;\n };\n\nconst viemEncodeAuthorization = (\n call: PreparedCall_Authorization,\n): ViemEncodedAuthorizationCall => {\n return {\n ...call,\n chainId: hexToNumber(call.chainId),\n data: {\n ...call.data,\n nonce: hexToNumber(call.data.nonce),\n },\n };\n};\n\nexport type ViemEncodedPaymasterPermitCall = Pick<\n PreparedCall_Permit,\n \"type\" | \"data\" | \"signatureRequest\"\n> & {\n modifiedRequest: {\n from: Address;\n paymasterPermitSignature: ViemEncodedSignature | undefined;\n calls: { to: Address; data?: Hex; value?: bigint }[];\n capabilities?: Capabilities;\n chainId: number;\n };\n};\n\nconst viemEncodePaymasterPermitCall = (\n call: PreparedCall_Permit,\n): ViemEncodedPaymasterPermitCall => {\n return {\n ...call,\n modifiedRequest: {\n ...call.modifiedRequest,\n paymasterPermitSignature: viemEncodeSignature(\n call.modifiedRequest.paymasterPermitSignature,\n ),\n calls: call.modifiedRequest.calls.map((it) => ({\n to: it.to,\n data: it.data,\n value: it.value != null ? hexToBigInt(it.value) : undefined,\n })),\n capabilities: viemEncodeCapabilities(call.modifiedRequest.capabilities),\n chainId: hexToNumber(call.modifiedRequest.chainId),\n },\n };\n};\n\ntype ViemEncodedSignature = {\n type: EcdsaSig[\"signature\"][\"type\"];\n data: Signature | Hex;\n};\n\nconst viemEncodeSignature = (\n signature: EcdsaSig[\"signature\"] | undefined,\n): ViemEncodedSignature | undefined => {\n if (!signature) {\n return undefined;\n }\n const { type, data } = signature;\n if (typeof data === \"string\") {\n return { type, data };\n }\n if (\"yParity\" in data) {\n return { type, data: { ...data, yParity: Number(data.yParity) } };\n }\n if (\"v\" in data) {\n return { type, data: { ...data, v: hexToBigInt(data.v) } };\n }\n return assertNever(data, \"Signature object must include 'v' or 'yParity'\");\n};\n\ntype ViemEncodedCapabilities = Capabilities;\n\nconst viemEncodeCapabilities = (\n capabilities: WalletApiCapabilities | undefined,\n): ViemEncodedCapabilities => {\n const { paymasterService, ...rest } = capabilities ?? {};\n return {\n ...rest,\n ...(rest?.gasParamsOverride && {\n gasParamsOverride: Object.fromEntries(\n Object.entries(rest.gasParamsOverride).map(([key, value]) => [\n key,\n isHex(value) ? hexToBigInt(value) : value,\n ]),\n ),\n }),\n ...(rest?.nonceOverride && {\n nonceOverride: {\n nonceKey: hexToBigInt(rest.nonceOverride.nonceKey),\n },\n }),\n ...(paymasterService && {\n alchemyPaymaster: {\n ...(\"policyId\" in paymasterService && {\n policyId: paymasterService.policyId,\n }),\n ...(\"policyIds\" in paymasterService && {\n policyIds: paymasterService.policyIds,\n }),\n ...(paymasterService.onlyEstimation && {\n onlyEstimation: paymasterService.onlyEstimation,\n }),\n ...(paymasterService.erc20 && {\n erc20: {\n ...paymasterService.erc20,\n maxTokenAmount:\n paymasterService.erc20.maxTokenAmount != null\n ? hexToBigInt(paymasterService.erc20.maxTokenAmount)\n : undefined,\n ...(\"preOpSettings\" in paymasterService.erc20 && {\n preOpSettings: {\n ...paymasterService.erc20.preOpSettings,\n ...(\"autoPermit\" in paymasterService.erc20.preOpSettings && {\n autoPermit: {\n below: hexToBigInt(\n paymasterService.erc20.preOpSettings.autoPermit.below,\n ),\n amount: hexToBigInt(\n paymasterService.erc20.preOpSettings.autoPermit.amount,\n ),\n durationSeconds:\n paymasterService.erc20.preOpSettings.autoPermit\n .durationSeconds != null\n ? hexToBigInt(\n paymasterService.erc20.preOpSettings.autoPermit\n .durationSeconds,\n )\n : undefined,\n },\n }),\n ...(\"permitDetails\" in paymasterService.erc20.preOpSettings && {\n permitDetails: {\n deadline: hexToBigInt(\n paymasterService.erc20.preOpSettings.permitDetails\n .deadline,\n ),\n value: hexToBigInt(\n paymasterService.erc20.preOpSettings.permitDetails.value,\n ),\n },\n }),\n },\n }),\n ...(\"postOpSettings\" in paymasterService.erc20 && {\n postOpSettings: {\n ...(paymasterService.erc20.postOpSettings.autoApprove && {\n autoApprove: {\n below: hexToBigInt(\n paymasterService.erc20.postOpSettings.autoApprove.below,\n ),\n amount:\n paymasterService.erc20.postOpSettings.autoApprove\n .amount != null\n ? hexToBigInt(\n paymasterService.erc20.postOpSettings.autoApprove\n .amount,\n )\n : undefined,\n },\n }),\n },\n }),\n },\n }),\n },\n }),\n };\n};\n"]}
1
+ {"version":3,"file":"viemEncode.js","sourceRoot":"","sources":["../../../src/utils/viemEncode.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n hexToBigInt,\n hexToNumber,\n isHex,\n type Address,\n type Authorization,\n type Capabilities,\n type Hex,\n type Signature,\n type UnionOmit,\n} from \"viem\";\nimport type { PrepareCallsResult } from \"@alchemy/wallet-apis\";\nimport { assertNever } from \"@alchemy/common\";\nimport type { UserOperation } from \"viem/account-abstraction\";\nimport type {\n EcdsaSig,\n PreparedCall_Authorization,\n PreparedCall_Permit,\n PreparedCall_UserOpV060,\n PreparedCall_UserOpV070,\n} from \"@alchemy/wallet-api-types\";\nimport type { PrepareCallsCapabilities as WalletApiCapabilities } from \"@alchemy/wallet-api-types/capabilities\";\n\nexport type ViemEncodedPreparedCalls =\n | (ViemEncodedUserOperationCall | ViemEncodedPaymasterPermitCall)\n | {\n type: \"array\";\n data: (ViemEncodedUserOperationCall | ViemEncodedAuthorizationCall)[];\n };\n\nexport const viemEncodePreparedCalls = (\n preparedCalls: PrepareCallsResult,\n): ViemEncodedPreparedCalls => {\n if (preparedCalls.type === \"array\") {\n return {\n type: \"array\",\n data: preparedCalls.data.map((call) => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemEncodeUserOperationCall(call);\n case \"authorization\":\n return viemEncodeAuthorization(call);\n default:\n return assertNever(call, \"Unexpected prepared call type in array\");\n }\n }),\n };\n }\n\n switch (preparedCalls.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\":\n return viemEncodeUserOperationCall(preparedCalls);\n case \"paymaster-permit\":\n return viemEncodePaymasterPermitCall(preparedCalls);\n default:\n return assertNever(preparedCalls, \"Unexpected prepared call type\");\n }\n};\n\nexport const viemEncodePreparedCall = (\n call:\n | PreparedCall_UserOpV060\n | PreparedCall_UserOpV070\n | PreparedCall_Permit\n | PreparedCall_Authorization,\n):\n | ViemEncodedUserOperationCall\n | ViemEncodedPaymasterPermitCall\n | ViemEncodedAuthorizationCall => {\n switch (call.type) {\n case \"user-operation-v060\":\n case \"user-operation-v070\": {\n return viemEncodeUserOperationCall(call);\n }\n case \"paymaster-permit\": {\n return viemEncodePaymasterPermitCall(call);\n }\n case \"authorization\": {\n return viemEncodeAuthorization(call);\n }\n default: {\n return assertNever(call, \"Unexpected prepared call type\");\n }\n }\n};\n\nexport type ViemEncodedUserOperationCall = {\n type: \"user-operation-v070\" | \"user-operation-v060\";\n chainId: number;\n data: UnionOmit<UserOperation, \"signature\">;\n signatureRequest: Pick<\n PreparedCall_UserOpV070,\n \"signatureRequest\"\n >[\"signatureRequest\"];\n feePayment: Omit<PreparedCall_UserOpV070[\"feePayment\"], \"maxAmount\"> & {\n maxAmount: bigint;\n };\n};\n\nconst viemEncodeUserOperationCall = (\n call: PreparedCall_UserOpV060 | PreparedCall_UserOpV070,\n): ViemEncodedUserOperationCall => {\n return {\n type: call.type,\n chainId: hexToNumber(call.chainId),\n data:\n call.type === \"user-operation-v070\"\n ? viemEncodeUoData070(call.data)\n : call.type === \"user-operation-v060\"\n ? viemEncodeUoData060(call.data)\n : assertNever(\n call,\n `Unexpected user operation type in 'viemEncodeUserOperationCall'`,\n ),\n signatureRequest: call.signatureRequest,\n feePayment: {\n sponsored: call.feePayment.sponsored,\n tokenAddress: call.feePayment.tokenAddress,\n maxAmount: hexToBigInt(call.feePayment.maxAmount),\n },\n };\n};\n\nconst viemEncodeUoData060 = (\n uo: PreparedCall_UserOpV060[\"data\"],\n): Omit<UserOperation<\"0.6\">, \"signature\"> => {\n return {\n sender: uo.sender,\n nonce: hexToBigInt(uo.nonce),\n initCode: uo.initCode,\n callData: uo.callData,\n callGasLimit: hexToBigInt(uo.callGasLimit),\n verificationGasLimit: hexToBigInt(uo.verificationGasLimit),\n preVerificationGas: hexToBigInt(uo.preVerificationGas),\n maxFeePerGas: hexToBigInt(uo.maxFeePerGas),\n maxPriorityFeePerGas: hexToBigInt(uo.maxPriorityFeePerGas),\n };\n};\n\nconst viemEncodeUoData070 = (\n uo: PreparedCall_UserOpV070[\"data\"],\n): Omit<UserOperation<\"0.7\">, \"signature\"> => {\n return {\n sender: uo.sender,\n nonce: hexToBigInt(uo.nonce),\n factory: uo.factory,\n factoryData: uo.factoryData,\n callData: uo.callData,\n callGasLimit: hexToBigInt(uo.callGasLimit),\n verificationGasLimit: hexToBigInt(uo.verificationGasLimit),\n preVerificationGas: hexToBigInt(uo.preVerificationGas),\n maxFeePerGas: hexToBigInt(uo.maxFeePerGas),\n maxPriorityFeePerGas: hexToBigInt(uo.maxPriorityFeePerGas),\n paymaster: uo.paymaster,\n paymasterData: uo.paymasterData,\n paymasterVerificationGasLimit:\n uo.paymasterVerificationGasLimit != null\n ? hexToBigInt(uo.paymasterVerificationGasLimit)\n : undefined,\n paymasterPostOpGasLimit:\n uo.paymasterPostOpGasLimit != null\n ? hexToBigInt(uo.paymasterPostOpGasLimit)\n : undefined,\n };\n};\n\nexport type ViemEncodedAuthorizationCall = Pick<\n PreparedCall_Authorization,\n \"type\" | \"signatureRequest\"\n> &\n Pick<Authorization, \"chainId\"> & {\n data: Pick<Authorization, \"nonce\" | \"address\">;\n };\n\nconst viemEncodeAuthorization = (\n call: PreparedCall_Authorization,\n): ViemEncodedAuthorizationCall => {\n return {\n ...call,\n chainId: hexToNumber(call.chainId),\n data: {\n ...call.data,\n nonce: hexToNumber(call.data.nonce),\n },\n };\n};\n\nexport type ViemEncodedPaymasterPermitCall = Pick<\n PreparedCall_Permit,\n \"type\" | \"data\" | \"signatureRequest\"\n> & {\n modifiedRequest: {\n from: Address;\n paymasterPermitSignature: ViemEncodedSignature | undefined;\n calls: { to: Address; data?: Hex; value?: bigint }[];\n capabilities?: Capabilities;\n chainId: number;\n };\n};\n\nconst viemEncodePaymasterPermitCall = (\n call: PreparedCall_Permit,\n): ViemEncodedPaymasterPermitCall => {\n return {\n ...call,\n modifiedRequest: {\n ...call.modifiedRequest,\n paymasterPermitSignature: viemEncodeSignature(\n call.modifiedRequest.paymasterPermitSignature,\n ),\n calls: call.modifiedRequest.calls.map((it) => ({\n to: it.to,\n data: it.data,\n value: it.value != null ? hexToBigInt(it.value) : undefined,\n })),\n capabilities: viemEncodeCapabilities(call.modifiedRequest.capabilities),\n chainId: hexToNumber(call.modifiedRequest.chainId),\n },\n };\n};\n\ntype ViemEncodedSignature = {\n type: EcdsaSig[\"signature\"][\"type\"];\n data: Signature | Hex;\n};\n\nconst viemEncodeSignature = (\n signature: EcdsaSig[\"signature\"] | undefined,\n): ViemEncodedSignature | undefined => {\n if (!signature) {\n return undefined;\n }\n const { type, data } = signature;\n if (typeof data === \"string\") {\n return { type, data };\n }\n if (\"yParity\" in data) {\n return { type, data: { ...data, yParity: Number(data.yParity) } };\n }\n if (\"v\" in data) {\n return { type, data: { ...data, v: hexToBigInt(data.v) } };\n }\n return assertNever(data, \"Signature object must include 'v' or 'yParity'\");\n};\n\ntype ViemEncodedCapabilities = Capabilities;\n\nconst viemEncodeCapabilities = (\n capabilities: WalletApiCapabilities | undefined,\n): ViemEncodedCapabilities => {\n const { paymasterService, ...rest } = capabilities ?? {};\n return {\n ...rest,\n ...(rest?.gasParamsOverride && {\n gasParamsOverride: Object.fromEntries(\n Object.entries(rest.gasParamsOverride).map(([key, value]) => [\n key,\n isHex(value) ? hexToBigInt(value) : value,\n ]),\n ),\n }),\n ...(rest?.nonceOverride && {\n nonceOverride: {\n nonceKey: hexToBigInt(rest.nonceOverride.nonceKey),\n },\n }),\n ...(paymasterService && {\n alchemyPaymaster: {\n ...(\"policyId\" in paymasterService && {\n policyId: paymasterService.policyId,\n }),\n ...(\"policyIds\" in paymasterService && {\n policyIds: paymasterService.policyIds,\n }),\n ...(paymasterService.onlyEstimation && {\n onlyEstimation: paymasterService.onlyEstimation,\n }),\n ...(paymasterService.erc20 && {\n erc20: {\n ...paymasterService.erc20,\n maxTokenAmount:\n paymasterService.erc20.maxTokenAmount != null\n ? hexToBigInt(paymasterService.erc20.maxTokenAmount)\n : undefined,\n ...(\"preOpSettings\" in paymasterService.erc20 && {\n preOpSettings: {\n ...paymasterService.erc20.preOpSettings,\n ...(\"autoPermit\" in paymasterService.erc20.preOpSettings && {\n autoPermit: {\n below: hexToBigInt(\n paymasterService.erc20.preOpSettings.autoPermit.below,\n ),\n amount: hexToBigInt(\n paymasterService.erc20.preOpSettings.autoPermit.amount,\n ),\n durationSeconds:\n paymasterService.erc20.preOpSettings.autoPermit\n .durationSeconds != null\n ? hexToBigInt(\n paymasterService.erc20.preOpSettings.autoPermit\n .durationSeconds,\n )\n : undefined,\n },\n }),\n ...(\"permitDetails\" in paymasterService.erc20.preOpSettings && {\n permitDetails: {\n deadline: hexToBigInt(\n paymasterService.erc20.preOpSettings.permitDetails\n .deadline,\n ),\n value: hexToBigInt(\n paymasterService.erc20.preOpSettings.permitDetails.value,\n ),\n },\n }),\n },\n }),\n ...(\"postOpSettings\" in paymasterService.erc20 && {\n postOpSettings: {\n ...(paymasterService.erc20.postOpSettings.autoApprove && {\n autoApprove: {\n below: hexToBigInt(\n paymasterService.erc20.postOpSettings.autoApprove.below,\n ),\n amount:\n paymasterService.erc20.postOpSettings.autoApprove\n .amount != null\n ? hexToBigInt(\n paymasterService.erc20.postOpSettings.autoApprove\n .amount,\n )\n : undefined,\n },\n }),\n },\n }),\n },\n }),\n },\n }),\n };\n};\n"]}
@@ -1 +1 @@
1
- export declare const VERSION = "0.0.0-alpha.13";
1
+ export declare const VERSION = "0.0.0-alpha.15";
@@ -1,4 +1,4 @@
1
1
  // This file is autogenerated by inject-version.ts. Any changes will be
2
2
  // overwritten on commit!
3
- export const VERSION = "0.0.0-alpha.13";
3
+ export const VERSION = "0.0.0-alpha.15";
4
4
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC","sourcesContent":["// This file is autogenerated by inject-version.ts. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"0.0.0-alpha.13\";\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC","sourcesContent":["// This file is autogenerated by inject-version.ts. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"0.0.0-alpha.15\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"grantPermissions.d.ts","sourceRoot":"","sources":["../../../src/actions/grantPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,QAAQ,EAEd,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,sBAAsB,CAAC;KAChC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD,QAAQ,CACV,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GACjE,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAC/B;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACpB;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC;CACd,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAE1D,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,sBAAsB,CAAC,CA4BjC"}
1
+ {"version":3,"file":"grantPermissions.d.ts","sourceRoot":"","sources":["../../../src/actions/grantPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,QAAQ,EAEd,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,sBAAsB,CAAC;KAChC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD,QAAQ,CACV,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GACjE,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAC/B;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACpB;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC;CACd,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAE1D,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,sBAAsB,CAAC,CAsCjC"}
@@ -1,14 +1,22 @@
1
1
  import type { InnerWalletApiClient } from "../types.ts";
2
2
  import type { Address, Prettify } from "viem";
3
3
  import type { WalletServerRpcSchemaType } from "@alchemy/wallet-api-types/rpc";
4
+ import type { WebAuthnPublicKey } from "@alchemy/wallet-api-types";
4
5
  type RpcSchema = Extract<WalletServerRpcSchemaType, {
5
6
  Request: {
6
7
  method: "wallet_listAccounts";
7
8
  };
8
9
  }>;
9
- export type ListAccountsParams = Prettify<Omit<RpcSchema["Request"]["params"][0], "signerAddress"> & {
10
+ export type ListAccountsParams = Prettify<Omit<RpcSchema["Request"]["params"][0], "signerAddress"> & ({
10
11
  signerAddress?: Address;
11
- }>;
12
+ signerPublicKey?: never;
13
+ } | {
14
+ signerPublicKey: WebAuthnPublicKey;
15
+ signerAddress?: never;
16
+ } | {
17
+ signerAddress?: never;
18
+ signerPublicKey?: never;
19
+ })>;
12
20
  export type ListAccountsResult = Prettify<RpcSchema["ReturnType"]>;
13
21
  /**
14
22
  * Lists all smart accounts for a given signer using the wallet API client.
@@ -1 +1 @@
1
- {"version":3,"file":"listAccounts.d.ts","sourceRoot":"","sources":["../../../src/actions/listAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,qBAAqB,CAAC;KAC/B,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CACvC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CACF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAc7B"}
1
+ {"version":3,"file":"listAccounts.d.ts","sourceRoot":"","sources":["../../../src/actions/listAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,qBAAqB,CAAC;KAC/B,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CACvC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,GACtD,CACI;IACE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,GACD;IAAE,eAAe,EAAE,iBAAiB,CAAC;IAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7D;IACE,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,CACJ,CACJ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAqC7B"}
@@ -1,13 +1,20 @@
1
1
  import type { Address } from "abitype";
2
- import type { Prettify, UnionOmit } from "viem";
2
+ import { type Prettify } from "viem";
3
3
  import type { WalletServerRpcSchemaType } from "@alchemy/wallet-api-types/rpc";
4
- import type { InnerWalletApiClient, OptionalSignerAddress } from "../types";
4
+ import type { InnerWalletApiClient } from "../types";
5
+ import type { WebAuthnPublicKey } from "@alchemy/wallet-api-types";
5
6
  type RpcSchema = Extract<WalletServerRpcSchemaType, {
6
7
  Request: {
7
8
  method: "wallet_requestAccount";
8
9
  };
9
10
  }>;
10
- export type RequestAccountParams = Prettify<OptionalSignerAddress<UnionOmit<RpcSchema["Request"]["params"][0], "includeCounterfactualInfo">>>;
11
+ export type RequestAccountParams = Prettify<Omit<Extract<RpcSchema["Request"]["params"][0], {
12
+ signerAddress: Address;
13
+ } | {
14
+ signerPublicKey: WebAuthnPublicKey;
15
+ }>, "signerAddress" | "signerPublicKey" | "includeCounterfactualInfo"> & {
16
+ accountAddress?: Address;
17
+ }>;
11
18
  export type RequestAccountResult = Prettify<{
12
19
  address: Address;
13
20
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"requestAccount.d.ts","sourceRoot":"","sources":["../../../src/actions/requestAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAG5E,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,uBAAuB,CAAC;KACjC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,qBAAqB,CACnB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAC1E,CACF,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAsD/B"}
1
+ {"version":3,"file":"requestAccount.d.ts","sourceRoot":"","sources":["../../../src/actions/requestAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAInC,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,uBAAuB,CAAC;KACjC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CACF,OAAO,CACL,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACjC;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,eAAe,EAAE,iBAAiB,CAAA;CAAE,CACpE,EACD,eAAe,GAAG,iBAAiB,GAAG,2BAA2B,CAClE,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAwF/B"}
@@ -30,6 +30,10 @@ export type SendCallsResult = Prettify<SendPreparedCallsResult>;
30
30
  * // The result contains the prepared call IDs
31
31
  * console.log(result.preparedCallIds);
32
32
  * ```
33
+ * <Note>
34
+ * If using this action with an ERC-20 paymaster in pre-operation mode with `autoPermit`, the contents of the permit will be hidden
35
+ * from the user. It is recommended to use the `prepareCalls` action instead to manually handle the permit signature.
36
+ * </Note>
33
37
  */
34
38
  export declare function sendCalls<TAccount extends Address | undefined = Address | undefined>(client: InnerWalletApiClient, params: SendCallsParams<TAccount>): Promise<SendCallsResult>;
35
39
  //# sourceMappingURL=sendCalls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sendCalls.d.ts","sourceRoot":"","sources":["../../../src/actions/sendCalls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAE1D,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC,CAkB1B"}
1
+ {"version":3,"file":"sendCalls.d.ts","sourceRoot":"","sources":["../../../src/actions/sendCalls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAOhC,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAE1D,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC,CA8C1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"sendPreparedCalls.d.ts","sourceRoot":"","sources":["../../../src/actions/sendPreparedCalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGzE,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,0BAA0B,CAAC;KACpC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC5C,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAelC"}
1
+ {"version":3,"file":"sendPreparedCalls.d.ts","sourceRoot":"","sources":["../../../src/actions/sendPreparedCalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIzE,KAAK,SAAS,GAAG,OAAO,CACtB,yBAAyB,EACzB;IACE,OAAO,EAAE;QACP,MAAM,EAAE,0BAA0B,CAAC;KACpC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC5C,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAiBlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../src/actions/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CA8B5B"}
1
+ {"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../src/actions/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,KAAK,eAAe,EAErB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAqC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"signPreparedCalls.d.ts","sourceRoot":"","sources":["../../../src/actions/signPreparedCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAMrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CA0ElC"}
1
+ {"version":3,"file":"signPreparedCalls.d.ts","sourceRoot":"","sources":["../../../src/actions/signPreparedCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAMrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAsFlC"}
@@ -1,18 +1,25 @@
1
1
  import { type Hex, type Prettify } from "viem";
2
2
  import type { PersonalSignSignatureRequest, TypedDataSignatureRequest, AuthorizationSignatureRequest, Eip7702UnsignedAuth } from "@alchemy/wallet-api-types";
3
3
  import type { InnerWalletApiClient, WithoutRawPayload } from "../types";
4
+ import type { WebAuthnSignReturnType } from "viem/account-abstraction";
4
5
  export type SignSignatureRequestParams = Prettify<WithoutRawPayload<PersonalSignSignatureRequest | TypedDataSignatureRequest | (AuthorizationSignatureRequest & {
5
6
  data: Eip7702UnsignedAuth;
6
7
  })>>;
7
- export type SignSignatureRequestResult = Prettify<{
8
+ export type SignSignatureRequestResult = {
8
9
  type: "secp256k1";
9
10
  data: Hex;
10
- }>;
11
+ } | {
12
+ type: "webauthn-p256";
13
+ data: {
14
+ signature: Hex;
15
+ metadata: Pick<WebAuthnSignReturnType["webauthn"], "clientDataJSON" | "authenticatorData">;
16
+ };
17
+ };
11
18
  /**
12
19
  * Signs a signature request using the provided signer.
13
20
  * This method handles different types of signature requests including personal_sign, eth_signTypedData_v4, and authorization.
14
21
  *
15
- * @param {SmartAccountSigner} signer - The signer to use for signing the request
22
+ * @param {InnerWalletApiClient} client - The wallet client to use for signing
16
23
  * @param {SignSignatureRequestParams} params - The signature request parameters
17
24
  * @param {string} params.type - The type of signature request ('personal_sign', 'eth_signTypedData_v4', or 'signature_with_authorization')
18
25
  * @param {SignSignatureRequestParams["data"]} params.data - The data to sign, format depends on the signature type
@@ -1 +1 @@
1
- {"version":3,"file":"signSignatureRequest.d.ts","sourceRoot":"","sources":["../../../src/actions/signSignatureRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAe,KAAK,QAAQ,EAAsB,MAAM,MAAM,CAAC;AAChF,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMxE,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAC/C,iBAAiB,CACb,4BAA4B,GAC5B,yBAAyB,GACzB,CAAC,6BAA6B,GAAG;IAC/B,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC,CACL,CACF,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAuErC"}
1
+ {"version":3,"file":"signSignatureRequest.d.ts","sourceRoot":"","sources":["../../../src/actions/signSignatureRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAe,KAAK,QAAQ,EAAsB,MAAM,MAAM,CAAC;AAChF,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EACV,oBAAoB,EAEpB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAMlB,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAC/C,iBAAiB,CACb,4BAA4B,GAC5B,yBAAyB,GACzB,CAAC,6BAA6B,GAAG;IAC/B,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC,CACL,CACF,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;CACX,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE;QACJ,SAAS,EAAE,GAAG,CAAC;QACf,QAAQ,EAAE,IAAI,CACZ,sBAAsB,CAAC,UAAU,CAAC,EAClC,gBAAgB,GAAG,mBAAmB,CACvC,CAAC;KACH,CAAC;CACH,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAYrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../src/actions/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CACxC,mBAAmB,GAAG;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,wBAAsB,aAAa,CACjC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA8B9B"}
1
+ {"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../src/actions/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CACxC,mBAAmB,GAAG;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,wBAAsB,aAAa,CACjC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAqC9B"}
@@ -1,9 +1,9 @@
1
- import { type Address, type Chain, type LocalAccount } from "viem";
1
+ import { type Address, type Chain } from "viem";
2
2
  import { type AlchemyTransport } from "@alchemy/common";
3
- import type { SignerClient, SmartWalletClient } from "./types.js";
3
+ import type { SmartWalletClient, SmartWalletSigner } from "./types.js";
4
4
  import type { CreationOptionsBySignerAddress } from "@alchemy/wallet-api-types";
5
5
  export type CreateSmartWalletClientParams<TAccount extends Address | undefined = Address | undefined> = {
6
- signer: LocalAccount | SignerClient;
6
+ signer: SmartWalletSigner;
7
7
  transport: AlchemyTransport;
8
8
  chain: Chain;
9
9
  account?: TAccount;
@@ -14,7 +14,7 @@ export type CreateSmartWalletClientParams<TAccount extends Address | undefined =
14
14
  * Creates a smart wallet client with wallet API actions.
15
15
  *
16
16
  * @param {CreateSmartWalletClientParams} params - Parameters for creating the smart wallet client.
17
- * @param {LocalAccount | JsonRpcAccount} params.account - The account to use for signing.
17
+ * @param {SmartWalletSigner} params.account - The account to use for signing.
18
18
  * @param {AlchemyTransport} params.transport - The transport to use for RPC calls.
19
19
  * @param {Chain} params.chain - The blockchain network to connect to.
20
20
  * @param {string[]} params.policyIds - Optional policy IDs for paymaster service.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,MAAM,MAAM,6BAA6B,CACvC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD;IACF,MAAM,EAAE,YAAY,GAAG,YAAY,CAAC;IACpC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;IAKnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAC1D,6DAOC,6BAA6B,CAAC,QAAQ,CAAC,KAAG,iBAAiB,CAAC,QAAQ,CA2BtE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wCAAwC,GACnD,cAAc,6BAA6B,CAAC,SAAS,CAAC,EACtD,iBACI,8BAA8B,GAC9B;IAAE,cAAc,EAAE,OAAO,CAAA;CAAO,KACnC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAiBpC,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,MAAM,MAAM,6BAA6B,CACvC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD;IACF,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;IAKnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAC1D,6DAOC,6BAA6B,CAAC,QAAQ,CAAC,KAAG,iBAAiB,CAAC,QAAQ,CAetE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wCAAwC,GACnD,cAAc,6BAA6B,CAAC,SAAS,CAAC,EACtD,iBACI,8BAA8B,GAC9B;IAAE,cAAc,EAAE,OAAO,CAAA;CAAO,KACnC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAiBpC,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import type { WalletServerViemRpcSchema } from "@alchemy/wallet-api-types/rpc";
2
- import type { Account, Address, Chain, Client, EIP1193Events, EIP1193RequestFn, Hex, JsonRpcAccount, Prettify, Transport, WalletClient } from "viem";
2
+ import type { Account, Address, Chain, Client, EIP1193Events, EIP1193RequestFn, Hex, JsonRpcAccount, Prettify, Transport, WalletClient, LocalAccount } from "viem";
3
3
  import type { InternalState } from "./internal";
4
4
  import type { SmartWalletClient1193Methods } from "./provider";
5
5
  import type { SmartWalletActions } from "./decorators/smartWalletActions";
6
+ import type { WebAuthnAccount } from "viem/account-abstraction";
6
7
  export type BaseWalletClient<TExtend extends {
7
8
  [key: string]: unknown;
8
9
  } | undefined = {
@@ -10,10 +11,11 @@ export type BaseWalletClient<TExtend extends {
10
11
  } | undefined> = Client<Transport<"alchemyHttp">, Chain, JsonRpcAccount<Address> | undefined, WalletServerViemRpcSchema, TExtend>;
11
12
  export type InnerWalletApiClient = BaseWalletClient<{
12
13
  internal: InternalState | undefined;
13
- owner: SignerClient;
14
+ owner: SmartWalletSigner;
14
15
  policyIds?: string[];
15
16
  }>;
16
17
  export type SignerClient = WalletClient<Transport, Chain | undefined, Account>;
18
+ export type SmartWalletSigner = LocalAccount | WebAuthnAccount | SignerClient;
17
19
  export type SmartWalletClientEip1193Provider = Prettify<EIP1193Events & {
18
20
  request: EIP1193RequestFn<SmartWalletClient1193Methods>;
19
21
  }>;
@@ -23,11 +25,6 @@ export type OptionalChainId<T> = T extends {
23
25
  } ? Omit<T, "chainId"> & {
24
26
  chainId?: Hex | undefined;
25
27
  } : T;
26
- export type OptionalSignerAddress<T> = T extends {
27
- signerAddress: Address;
28
- } ? Omit<T, "signerAddress"> & {
29
- signerAddress?: Address | undefined;
30
- } : T;
31
28
  export type WithoutRawPayload<T> = T extends {
32
29
  rawPayload: Hex;
33
30
  } ? Omit<T, "rawPayload"> : T;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,cAAc,EACd,QAAQ,EACR,SAAS,EACT,YAAY,EACb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,GAClD;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC1B,SAAS,IACX,MAAM,CACR,SAAS,CAAC,aAAa,CAAC,EACxB,KAAK,EACL,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,EACnC,yBAAyB,EACzB,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;IAClD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC;AAE/E,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CACrD,aAAa,GAAG;IACd,OAAO,EAAE,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;CACzD,CACF,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACvD,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,CAAC;AAEN,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GACvE,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAClE,CAAC,CAAC;AAEN,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,UAAU,EAAE,GAAG,CAAA;CAAE,GAC5D,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GACrB,CAAC,CAAC;AAEN,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,cAAc,EACd,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,GAClD;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC1B,SAAS,IACX,MAAM,CACR,SAAS,CAAC,aAAa,CAAC,EACxB,KAAK,EACL,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,EACnC,yBAAyB,EACzB,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;IAClD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;AAE9E,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CACrD,aAAa,GAAG;IACd,OAAO,EAAE,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;CACzD,CACF,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACxD,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACvD,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,CAAC;AAEN,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,UAAU,EAAE,GAAG,CAAA;CAAE,GAC5D,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GACrB,CAAC,CAAC;AAEN,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
- import type { Client } from "viem";
2
- import type { InnerWalletApiClient } from "../types.js";
1
+ import type { Client, LocalAccount } from "viem";
2
+ import type { InnerWalletApiClient, SignerClient } from "../types.js";
3
+ import type { WebAuthnAccount } from "viem/account-abstraction";
3
4
  /**
4
5
  * Type guard function to check if a client is an Alchemy Smart Wallet Client.
5
6
  *
@@ -16,4 +17,7 @@ export declare function isSmartWalletClient(client: Client): client is InnerWall
16
17
  * @throws {Error} Throws an error if the client is not an Alchemy Smart Wallet Client
17
18
  */
18
19
  export declare function assertSmartWalletClient(client: Client, message?: string): asserts client is InnerWalletApiClient;
20
+ export declare function isLocalAccount(signer: LocalAccount | WebAuthnAccount | SignerClient): signer is LocalAccount;
21
+ export declare function isWebAuthnAccount(signer: LocalAccount | WebAuthnAccount | SignerClient): signer is WebAuthnAccount;
22
+ export declare function isSignerClient(signer: LocalAccount | WebAuthnAccount | SignerClient): signer is SignerClient;
19
23
  //# sourceMappingURL=assertions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../src/utils/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,oBAAoB,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,SAA4C,GAClD,OAAO,CAAC,MAAM,IAAI,oBAAoB,CAIxC"}
1
+ {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../src/utils/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,oBAAoB,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,SAA4C,GAClD,OAAO,CAAC,MAAM,IAAI,oBAAoB,CAIxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,YAAY,GACpD,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,YAAY,GACpD,MAAM,IAAI,eAAe,CAE3B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,YAAY,GACpD,MAAM,IAAI,YAAY,CAExB"}
@@ -1,11 +1,20 @@
1
- import type { Capabilities } from "@alchemy/wallet-api-types/capabilities";
1
+ import type { PrepareCallsCapabilities, SendPreparedCallsCapabilities } from "@alchemy/wallet-api-types/capabilities";
2
2
  import type { InnerWalletApiClient } from "../types.js";
3
3
  /**
4
4
  * Merges client capabilities with capabilities from the request.
5
+ * Uses policyId (singular) when there's one policy, policyIds (array) when multiple.
5
6
  *
6
7
  * @param {InnerWalletApiClient} client - The inner wallet API client (potentially including global capabilities like policy IDs)
7
- * @param {Capabilities | undefined} capabilities - Request capabilities to merge with, if any
8
- * @returns {Capabilities | undefined} The merged capabilities object, or original capabilities if no capability configuration exists on the client
8
+ * @param {T | undefined} capabilities - Request capabilities to merge with, if any
9
+ * @returns {T | undefined} The merged capabilities object, or original capabilities if no capability configuration exists on the client
9
10
  */
10
- export declare const mergeClientCapabilities: (client: InnerWalletApiClient, capabilities: Capabilities | undefined) => Capabilities | undefined;
11
+ export declare const mergeClientCapabilities: <T extends PrepareCallsCapabilities | SendPreparedCallsCapabilities>(client: InnerWalletApiClient, capabilities: T | undefined) => T | undefined;
12
+ /**
13
+ * Extracts capabilities from prepareCalls that are usable for sendPreparedCalls.
14
+ * Only permissions and paymasterService (policyId/policyIds & webhookData) are supported.
15
+ *
16
+ * @param {PrepareCallsCapabilities | undefined} capabilities - The prepareCalls capabilities
17
+ * @returns {SendPreparedCallsCapabilities | undefined} The sendPreparedCalls capabilities, or undefined if no relevant capabilities exist
18
+ */
19
+ export declare const extractCapabilitiesForSending: (capabilities: PrepareCallsCapabilities | undefined) => SendPreparedCallsCapabilities | undefined;
11
20
  //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/utils/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,oBAAoB,EAC5B,cAAc,YAAY,GAAG,SAAS,KACrC,YAAY,GAAG,SAUjB,CAAC"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/utils/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,CAAC,SAAS,wBAAwB,GAAG,6BAA6B,EAElE,QAAQ,oBAAoB,EAC5B,cAAc,CAAC,GAAG,SAAS,KAC1B,CAAC,GAAG,SAYN,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GACxC,cAAc,wBAAwB,GAAG,SAAS,KACjD,6BAA6B,GAAG,SAsBlC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { type Hex, type SignableMessage, type TypedDataDefinition } from "viem";
2
- import type { TypedDataDefinition as WalletServerTypedDataDefinition } from "@alchemy/wallet-api-types";
2
+ import type { TypedDataDefinition as WalletServerTypedDataDefinition, WebAuthnPublicKey } from "@alchemy/wallet-api-types";
3
+ import type { ToWebAuthnAccountParameters } from "viem/account-abstraction";
3
4
  export declare const castToHex: (val: string | number | bigint | Hex) => Hex;
4
5
  export declare const signableMessageToJsonSafe: (message: SignableMessage) => string | {
5
6
  raw: Hex;
6
7
  };
7
8
  export declare const typedDataToJsonSafe: ({ domain, primaryType, message, types, }: TypedDataDefinition) => WalletServerTypedDataDefinition;
9
+ export declare function credentialToWebAuthnPublicKey(credential: ToWebAuthnAccountParameters["credential"]): WebAuthnPublicKey;
8
10
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EAEzB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,mBAAmB,IAAI,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAExG,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,KAAG,GAK/D,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,eAAe,KACvB,MAAM,GAAG;IAAE,GAAG,EAAE,GAAG,CAAA;CAQrB,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAAI,0CAKjC,mBAAmB,KAAG,+BAuBxB,CAAC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,mBAAmB,IAAI,+BAA+B,EACtD,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,KAAG,GAK/D,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,eAAe,KACvB,MAAM,GAAG;IAAE,GAAG,EAAE,GAAG,CAAA;CAQrB,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAAI,0CAKjC,mBAAmB,KAAG,+BAuBxB,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,2BAA2B,CAAC,YAAY,CAAC,GACpD,iBAAiB,CAUnB"}
@@ -0,0 +1,11 @@
1
+ import { type Address } from "viem";
2
+ import type { SmartWalletSigner } from "../types";
3
+ import type { WebAuthnPublicKey } from "@alchemy/wallet-api-types";
4
+ export declare function getSignerAddressOrPublicKey(signer: SmartWalletSigner): {
5
+ type: "secp256k1";
6
+ address: Address;
7
+ } | {
8
+ type: "webauthn-p256";
9
+ publicKey: WebAuthnPublicKey;
10
+ };
11
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iBAAiB,GAEvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CA0B1D"}
@@ -1,7 +1,7 @@
1
1
  import { type Capabilities } from "viem";
2
2
  import { type PrepareCallsResult } from "@alchemy/wallet-apis";
3
3
  import type { PreparedCall_Authorization, PreparedCall_Permit, PreparedCall_UserOpV060, PreparedCall_UserOpV070 } from "@alchemy/wallet-api-types";
4
- import type { Capabilities as WalletApiCapabilities } from "@alchemy/wallet-api-types/capabilities";
4
+ import type { PrepareCallsCapabilities as WalletApiCapabilities } from "@alchemy/wallet-api-types/capabilities";
5
5
  import type { ViemEncodedAuthorizationCall, ViemEncodedPaymasterPermitCall, ViemEncodedPreparedCalls, ViemEncodedUserOperationCall } from "./viemEncode.js";
6
6
  export declare const viemDecodePreparedCalls: (encodedCalls: ViemEncodedPreparedCalls) => PrepareCallsResult;
7
7
  export declare const viemDecodePreparedCall: (call: ViemEncodedUserOperationCall | ViemEncodedPaymasterPermitCall | ViemEncodedAuthorizationCall) => PreparedCall_UserOpV060 | PreparedCall_UserOpV070 | PreparedCall_Permit | PreparedCall_Authorization;