@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.
- package/dist/esm/actions/grantPermissions.js +9 -2
- package/dist/esm/actions/grantPermissions.js.map +1 -1
- package/dist/esm/actions/listAccounts.d.ts +10 -2
- package/dist/esm/actions/listAccounts.js +23 -2
- package/dist/esm/actions/listAccounts.js.map +1 -1
- package/dist/esm/actions/requestAccount.d.ts +10 -3
- package/dist/esm/actions/requestAccount.js +43 -15
- package/dist/esm/actions/requestAccount.js.map +1 -1
- package/dist/esm/actions/sendCalls.d.ts +4 -0
- package/dist/esm/actions/sendCalls.js +26 -4
- package/dist/esm/actions/sendCalls.js.map +1 -1
- package/dist/esm/actions/sendPreparedCalls.js +2 -0
- package/dist/esm/actions/sendPreparedCalls.js.map +1 -1
- package/dist/esm/actions/signMessage.js +5 -1
- package/dist/esm/actions/signMessage.js.map +1 -1
- package/dist/esm/actions/signPreparedCalls.js +6 -1
- package/dist/esm/actions/signPreparedCalls.js.map +1 -1
- package/dist/esm/actions/signSignatureRequest.d.ts +10 -3
- package/dist/esm/actions/signSignatureRequest.js +93 -42
- package/dist/esm/actions/signSignatureRequest.js.map +1 -1
- package/dist/esm/actions/signTypedData.js +5 -1
- package/dist/esm/actions/signTypedData.js.map +1 -1
- package/dist/esm/client.d.ts +4 -4
- package/dist/esm/client.js +3 -13
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/types.d.ts +4 -7
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/assertions.d.ts +6 -2
- package/dist/esm/utils/assertions.js +9 -0
- package/dist/esm/utils/assertions.js.map +1 -1
- package/dist/esm/utils/capabilities.d.ts +13 -4
- package/dist/esm/utils/capabilities.js +37 -11
- package/dist/esm/utils/capabilities.js.map +1 -1
- package/dist/esm/utils/format.d.ts +3 -1
- package/dist/esm/utils/format.js +11 -1
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/signer.d.ts +10 -0
- package/dist/esm/utils/signer.js +28 -0
- package/dist/esm/utils/signer.js.map +1 -0
- package/dist/esm/utils/viemDecode.d.ts +1 -1
- package/dist/esm/utils/viemDecode.js.map +1 -1
- package/dist/esm/utils/viemEncode.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/actions/grantPermissions.d.ts.map +1 -1
- package/dist/types/actions/listAccounts.d.ts +10 -2
- package/dist/types/actions/listAccounts.d.ts.map +1 -1
- package/dist/types/actions/requestAccount.d.ts +10 -3
- package/dist/types/actions/requestAccount.d.ts.map +1 -1
- package/dist/types/actions/sendCalls.d.ts +4 -0
- package/dist/types/actions/sendCalls.d.ts.map +1 -1
- package/dist/types/actions/sendPreparedCalls.d.ts.map +1 -1
- package/dist/types/actions/signMessage.d.ts.map +1 -1
- package/dist/types/actions/signPreparedCalls.d.ts.map +1 -1
- package/dist/types/actions/signSignatureRequest.d.ts +10 -3
- package/dist/types/actions/signSignatureRequest.d.ts.map +1 -1
- package/dist/types/actions/signTypedData.d.ts.map +1 -1
- package/dist/types/client.d.ts +4 -4
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/types.d.ts +4 -7
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/assertions.d.ts +6 -2
- package/dist/types/utils/assertions.d.ts.map +1 -1
- package/dist/types/utils/capabilities.d.ts +13 -4
- package/dist/types/utils/capabilities.d.ts.map +1 -1
- package/dist/types/utils/format.d.ts +3 -1
- package/dist/types/utils/format.d.ts.map +1 -1
- package/dist/types/utils/signer.d.ts +11 -0
- package/dist/types/utils/signer.d.ts.map +1 -0
- package/dist/types/utils/viemDecode.d.ts +1 -1
- package/dist/types/utils/viemDecode.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -6
- package/src/actions/grantPermissions.ts +13 -2
- package/src/actions/listAccounts.ts +39 -5
- package/src/actions/requestAccount.ts +67 -22
- package/src/actions/sendCalls.ts +40 -4
- package/src/actions/sendPreparedCalls.ts +3 -0
- package/src/actions/signMessage.ts +8 -0
- package/src/actions/signPreparedCalls.ts +14 -1
- package/src/actions/signSignatureRequest.ts +165 -54
- package/src/actions/signTypedData.ts +8 -0
- package/src/client.ts +5 -23
- package/src/types.ts +5 -5
- package/src/utils/assertions.ts +21 -2
- package/src/utils/capabilities.ts +56 -15
- package/src/utils/format.ts +20 -1
- package/src/utils/signer.ts +36 -0
- package/src/utils/viemDecode.ts +1 -1
- package/src/utils/viemEncode.ts +1 -1
- 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 {
|
|
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"]}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "0.0.0-alpha.
|
|
1
|
+
export declare const VERSION = "0.0.0-alpha.15";
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -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.
|
|
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;
|
|
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,
|
|
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
|
|
2
|
+
import { type Prettify } from "viem";
|
|
3
3
|
import type { WalletServerRpcSchemaType } from "@alchemy/wallet-api-types/rpc";
|
|
4
|
-
import type { InnerWalletApiClient
|
|
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<
|
|
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,
|
|
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;
|
|
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;
|
|
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,
|
|
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;
|
|
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 =
|
|
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 {
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/types/client.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type Address, type Chain
|
|
1
|
+
import { type Address, type Chain } from "viem";
|
|
2
2
|
import { type AlchemyTransport } from "@alchemy/common";
|
|
3
|
-
import type {
|
|
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:
|
|
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 {
|
|
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,
|
|
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"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -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:
|
|
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;
|
|
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;
|
|
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 {
|
|
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 {
|
|
8
|
-
* @returns {
|
|
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:
|
|
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,
|
|
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,
|
|
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 {
|
|
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;
|