@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.
- package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +2 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js +13 -3
- package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.d.ts +3 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js +16 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js.map +1 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/{getOrCreatePasskeyOwner.d.ts → getAutocompletePasskeyOwner.d.ts} +2 -2
- package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +46 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +3 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js +4 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/index.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/index.js +3 -3
- package/dist/cjs/kernel-zerodev/owner/passkey/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/utils.d.ts +5 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/utils.js +14 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/utils.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/session-key-validator.js +3 -0
- package/dist/cjs/kernel-zerodev/validator/session-key-validator.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +2 -1
- package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js +14 -4
- package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/exceptions.d.ts +3 -0
- package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js +12 -0
- package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js.map +1 -0
- package/dist/esm/kernel-zerodev/owner/passkey/{getOrCreatePasskeyOwner.d.ts → getAutocompletePasskeyOwner.d.ts} +2 -2
- package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +39 -0
- package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -0
- package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +3 -1
- package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js +5 -2
- package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/index.d.ts +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/index.js +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/utils.d.ts +5 -0
- package/dist/esm/kernel-zerodev/owner/passkey/utils.js +12 -0
- package/dist/esm/kernel-zerodev/owner/passkey/utils.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/session-key-validator.js +3 -0
- package/dist/esm/kernel-zerodev/validator/session-key-validator.js.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +2 -1
- package/dist/types/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/exceptions.d.ts +4 -0
- package/dist/types/kernel-zerodev/owner/passkey/exceptions.d.ts.map +1 -0
- package/dist/types/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.d.ts +7 -0
- package/dist/types/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.d.ts.map +1 -0
- package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +3 -1
- package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/index.d.ts +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts +5 -0
- package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/kernel-zerodev/owner/passkey/createPasskeyOwner.ts +17 -3
- package/src/kernel-zerodev/owner/passkey/exceptions.ts +3 -0
- package/src/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.ts +78 -0
- package/src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts +9 -1
- package/src/kernel-zerodev/owner/passkey/index.ts +1 -1
- package/src/kernel-zerodev/owner/passkey/utils.ts +14 -0
- package/src/kernel-zerodev/validator/session-key-validator.ts +3 -0
- package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js +0 -16
- package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js.map +0 -1
- package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js +0 -12
- package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js.map +0 -1
- package/dist/types/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts +0 -7
- package/dist/types/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts.map +0 -1
- 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
|
-
|
|
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 {
|
|
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
|
-
}
|