@zerodev/sdk 4.0.21 → 4.0.23

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 (68) hide show
  1. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +2 -1
  2. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js +13 -3
  3. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
  4. package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.d.ts +3 -0
  5. package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js +16 -0
  6. package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js.map +1 -0
  7. package/dist/cjs/kernel-zerodev/owner/passkey/{getOrCreatePasskeyOwner.d.ts → getAutocompletePasskeyOwner.d.ts} +2 -2
  8. package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +46 -0
  9. package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -0
  10. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +3 -1
  11. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js +4 -1
  12. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
  13. package/dist/cjs/kernel-zerodev/owner/passkey/index.d.ts +1 -1
  14. package/dist/cjs/kernel-zerodev/owner/passkey/index.js +3 -3
  15. package/dist/cjs/kernel-zerodev/owner/passkey/index.js.map +1 -1
  16. package/dist/cjs/kernel-zerodev/owner/passkey/utils.d.ts +5 -0
  17. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js +14 -1
  18. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js.map +1 -1
  19. package/dist/cjs/kernel-zerodev/validator/session-key-validator.js +3 -0
  20. package/dist/cjs/kernel-zerodev/validator/session-key-validator.js.map +1 -1
  21. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +2 -1
  22. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js +14 -4
  23. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
  24. package/dist/esm/kernel-zerodev/owner/passkey/exceptions.d.ts +3 -0
  25. package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js +12 -0
  26. package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js.map +1 -0
  27. package/dist/esm/kernel-zerodev/owner/passkey/{getOrCreatePasskeyOwner.d.ts → getAutocompletePasskeyOwner.d.ts} +2 -2
  28. package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +39 -0
  29. package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -0
  30. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +3 -1
  31. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js +5 -2
  32. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
  33. package/dist/esm/kernel-zerodev/owner/passkey/index.d.ts +1 -1
  34. package/dist/esm/kernel-zerodev/owner/passkey/index.js +1 -1
  35. package/dist/esm/kernel-zerodev/owner/passkey/index.js.map +1 -1
  36. package/dist/esm/kernel-zerodev/owner/passkey/utils.d.ts +5 -0
  37. package/dist/esm/kernel-zerodev/owner/passkey/utils.js +12 -0
  38. package/dist/esm/kernel-zerodev/owner/passkey/utils.js.map +1 -1
  39. package/dist/esm/kernel-zerodev/validator/session-key-validator.js +3 -0
  40. package/dist/esm/kernel-zerodev/validator/session-key-validator.js.map +1 -1
  41. package/dist/types/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +2 -1
  42. package/dist/types/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts.map +1 -1
  43. package/dist/types/kernel-zerodev/owner/passkey/exceptions.d.ts +4 -0
  44. package/dist/types/kernel-zerodev/owner/passkey/exceptions.d.ts.map +1 -0
  45. package/dist/types/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.d.ts +7 -0
  46. package/dist/types/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.d.ts.map +1 -0
  47. package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +3 -1
  48. package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts.map +1 -1
  49. package/dist/types/kernel-zerodev/owner/passkey/index.d.ts +1 -1
  50. package/dist/types/kernel-zerodev/owner/passkey/index.d.ts.map +1 -1
  51. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts +5 -0
  52. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts.map +1 -1
  53. package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/src/kernel-zerodev/owner/passkey/createPasskeyOwner.ts +17 -3
  56. package/src/kernel-zerodev/owner/passkey/exceptions.ts +3 -0
  57. package/src/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.ts +78 -0
  58. package/src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts +9 -1
  59. package/src/kernel-zerodev/owner/passkey/index.ts +1 -1
  60. package/src/kernel-zerodev/owner/passkey/utils.ts +14 -0
  61. package/src/kernel-zerodev/validator/session-key-validator.ts +3 -0
  62. package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js +0 -16
  63. package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js.map +0 -1
  64. package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js +0 -12
  65. package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js.map +0 -1
  66. package/dist/types/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts +0 -7
  67. package/dist/types/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts.map +0 -1
  68. package/src/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.ts +0 -22
@@ -2,8 +2,10 @@ import { getWebAuthnAssertion } from "@turnkey/http/dist/webauthn";
2
2
  import axios from "axios";
3
3
  import type { SignTypedDataParams, SmartAccountSigner } from "@alchemy/aa-core";
4
4
  import {
5
+ abortController,
5
6
  base64UrlEncode,
6
7
  generateRandomBuffer,
8
+ getCredentials,
7
9
  signMessage,
8
10
  signTypedData,
9
11
  } from "./utils.js";
@@ -11,22 +13,28 @@ import { API_URL } from "../../constants.js";
11
13
 
12
14
  export async function getPasskeyOwner({
13
15
  projectId,
16
+ name,
14
17
  apiUrl = API_URL,
18
+ withCredentials = false
15
19
  }: {
16
20
  projectId: string;
21
+ name?: string;
17
22
  apiUrl?: string;
23
+ withCredentials?: boolean;
18
24
  }): Promise<SmartAccountSigner | undefined> {
19
25
  //@ts-expect-error
20
26
  if (typeof window !== "undefined") {
21
27
  const challenge = generateRandomBuffer();
22
28
  try {
29
+ abortController.controller.abort()
30
+ abortController.controller = new AbortController()
23
31
  const assertion = JSON.parse(
24
32
  await getWebAuthnAssertion(base64UrlEncode(challenge), {
25
33
  publicKey: {
26
34
  //@ts-expect-error
27
35
  rpId: window.location.hostname,
28
36
  userVerification: "required",
29
- // allowCredentials: await getCredentials(projectId),
37
+ allowCredentials: withCredentials ? await getCredentials(projectId, name) : undefined,
30
38
  },
31
39
  })
32
40
  );
@@ -1,3 +1,3 @@
1
1
  export { getPasskeyOwner } from "./getPasskeyOwner.js";
2
2
  export { createPasskeyOwner } from "./createPasskeyOwner.js";
3
- export { getOrCreatePasskeyOwner } from "./getOrCreatePasskeyOwner.js";
3
+ export { getAutocompletePasskeyOwner } from "./getAutocompletePasskeyOwner.js";
@@ -8,6 +8,10 @@ browserInit({
8
8
  baseUrl: "https://api.turnkey.com",
9
9
  });
10
10
 
11
+ export const abortController = {
12
+ controller: new AbortController(),
13
+ }
14
+
11
15
  export const publicKey = "public-key";
12
16
 
13
17
  export const es256 = -7;
@@ -122,6 +126,16 @@ export const signTypedData = async (
122
126
  );
123
127
  };
124
128
 
129
+ export const getCredentials = async (projectId: string, name?: string, apiUrl = API_URL) => {
130
+ const url = `${apiUrl}/projects/${projectId}/wallets` + (name ? `/${name}` : '')
131
+ const response = await axios.get(url);
132
+ const credentials = response.data;
133
+ return credentials.map((credential: string) => ({
134
+ id: base64URLStringToBuffer(credential),
135
+ type: "public-key",
136
+ }));
137
+ };
138
+
125
139
  // https://github.com/MasterKale/SimpleWebAuthn/blob/master/packages/browser/src/helpers/base64URLStringToBuffer.ts#L8
126
140
  export function base64URLStringToBuffer(base64URLString: string): ArrayBuffer {
127
141
  // Convert from Base64URL to Base64
@@ -100,6 +100,9 @@ export class SessionKeyValidator extends KernelBaseValidator {
100
100
  paymaster: params.sessionKeyData.paymaster ?? zeroAddress,
101
101
  };
102
102
  this.merkleTree = this.getMerkleTree();
103
+ if (this.shouldDelegateViaFallback()) {
104
+ throw Error("Session key permissions not set");
105
+ }
103
106
  this.selector =
104
107
  params.selector ??
105
108
  getFunctionSelector("execute(address, uint256, bytes, uint8)");
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOrCreatePasskeyOwner = void 0;
4
- const constants_js_1 = require("../../constants.js");
5
- const createPasskeyOwner_js_1 = require("./createPasskeyOwner.js");
6
- const getPasskeyOwner_js_1 = require("./getPasskeyOwner.js");
7
- async function getOrCreatePasskeyOwner({ name, projectId, apiUrl = constants_js_1.API_URL, }) {
8
- return await (0, createPasskeyOwner_js_1.createPasskeyOwner)({
9
- name,
10
- projectId,
11
- apiUrl,
12
- fallback: () => (0, getPasskeyOwner_js_1.getPasskeyOwner)({ projectId, apiUrl }),
13
- });
14
- }
15
- exports.getOrCreatePasskeyOwner = getOrCreatePasskeyOwner;
16
- //# sourceMappingURL=getOrCreatePasskeyOwner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOrCreatePasskeyOwner.js","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.ts"],"names":[],"mappings":";;;AACA,qDAA6C;AAE7C,mEAA6D;AAC7D,6DAAuD;AAEhD,KAAK,UAAU,uBAAuB,CAAC,EAC5C,IAAI,EACJ,SAAS,EACT,MAAM,GAAG,sBAAO,GAKjB;IACC,OAAO,MAAM,IAAA,0CAAkB,EAAC;QAC9B,IAAI;QACJ,SAAS;QACT,MAAM;QACN,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,oCAAe,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;KACvD,CAAC,CAAC;AACL,CAAC;AAfD,0DAeC","sourcesContent":["import type { SmartAccountSigner } from \"@alchemy/aa-core\";\nimport { API_URL } from \"../../constants.js\";\n// import { getPasskeyOwner } from \"./getPasskeyOwner.js\";\nimport { createPasskeyOwner } from \"./createPasskeyOwner.js\";\nimport { getPasskeyOwner } from \"./getPasskeyOwner.js\";\n\nexport async function getOrCreatePasskeyOwner({\n name,\n projectId,\n apiUrl = API_URL,\n}: {\n name: string;\n projectId: string;\n apiUrl?: string;\n}): Promise<SmartAccountSigner | undefined> {\n return await createPasskeyOwner({\n name,\n projectId,\n apiUrl,\n fallback: () => getPasskeyOwner({ projectId, apiUrl }),\n });\n}\n"]}
@@ -1,12 +0,0 @@
1
- import { API_URL } from "../../constants.js";
2
- import { createPasskeyOwner } from "./createPasskeyOwner.js";
3
- import { getPasskeyOwner } from "./getPasskeyOwner.js";
4
- export async function getOrCreatePasskeyOwner({ name, projectId, apiUrl = API_URL, }) {
5
- return await createPasskeyOwner({
6
- name,
7
- projectId,
8
- apiUrl,
9
- fallback: () => getPasskeyOwner({ projectId, apiUrl }),
10
- });
11
- }
12
- //# sourceMappingURL=getOrCreatePasskeyOwner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOrCreatePasskeyOwner.js","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,IAAI,EACJ,SAAS,EACT,MAAM,GAAG,OAAO,GAKjB;IACC,OAAO,MAAM,kBAAkB,CAAC;QAC9B,IAAI;QACJ,SAAS;QACT,MAAM;QACN,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;KACvD,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { SmartAccountSigner } from \"@alchemy/aa-core\";\nimport { API_URL } from \"../../constants.js\";\n// import { getPasskeyOwner } from \"./getPasskeyOwner.js\";\nimport { createPasskeyOwner } from \"./createPasskeyOwner.js\";\nimport { getPasskeyOwner } from \"./getPasskeyOwner.js\";\n\nexport async function getOrCreatePasskeyOwner({\n name,\n projectId,\n apiUrl = API_URL,\n}: {\n name: string;\n projectId: string;\n apiUrl?: string;\n}): Promise<SmartAccountSigner | undefined> {\n return await createPasskeyOwner({\n name,\n projectId,\n apiUrl,\n fallback: () => getPasskeyOwner({ projectId, apiUrl }),\n });\n}\n"]}
@@ -1,7 +0,0 @@
1
- import type { SmartAccountSigner } from "@alchemy/aa-core";
2
- export declare function getOrCreatePasskeyOwner({ name, projectId, apiUrl, }: {
3
- name: string;
4
- projectId: string;
5
- apiUrl?: string;
6
- }): Promise<SmartAccountSigner | undefined>;
7
- //# sourceMappingURL=getOrCreatePasskeyOwner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOrCreatePasskeyOwner.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM3D,wBAAsB,uBAAuB,CAAC,EAC5C,IAAI,EACJ,SAAS,EACT,MAAgB,GACjB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAO1C"}
@@ -1,22 +0,0 @@
1
- import type { SmartAccountSigner } from "@alchemy/aa-core";
2
- import { API_URL } from "../../constants.js";
3
- // import { getPasskeyOwner } from "./getPasskeyOwner.js";
4
- import { createPasskeyOwner } from "./createPasskeyOwner.js";
5
- import { getPasskeyOwner } from "./getPasskeyOwner.js";
6
-
7
- export async function getOrCreatePasskeyOwner({
8
- name,
9
- projectId,
10
- apiUrl = API_URL,
11
- }: {
12
- name: string;
13
- projectId: string;
14
- apiUrl?: string;
15
- }): Promise<SmartAccountSigner | undefined> {
16
- return await createPasskeyOwner({
17
- name,
18
- projectId,
19
- apiUrl,
20
- fallback: () => getPasskeyOwner({ projectId, apiUrl }),
21
- });
22
- }