passkey-kit 0.7.12 → 0.7.14
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/package.json +3 -3
- package/src/index.ts +2 -2
- package/src/kit.ts +44 -54
- package/types/index.d.ts +2 -2
- package/types/kit.d.ts +9 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "passkey-kit",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.14",
|
|
4
4
|
"description": "A helper library for creating and using passkey accounts on the Stellar blockchain.",
|
|
5
5
|
"author": "Tyler van der Hoeven",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"base64url": "^3.0.1",
|
|
15
15
|
"buffer": "^6.0.3",
|
|
16
16
|
"passkey-factory-sdk": "0.3.4",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
17
|
+
"passkey-kit-sdk": "0.3.4",
|
|
18
|
+
"sac-sdk": "0.1.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@simplewebauthn/types": "^10.0.0",
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PasskeyServer } from "./server"
|
|
2
|
-
import { PasskeyKit, SignerStore, SignerKey, type SignerLimits } from "./kit"
|
|
2
|
+
import { PasskeyKit, PasskeyClient, FactoryClient, SignerStore, SignerKey, type SignerLimits } from "./kit"
|
|
3
3
|
import { SACClient } from "./sac"
|
|
4
4
|
|
|
5
|
-
export {
|
|
5
|
+
export { PasskeyKit, PasskeyClient, FactoryClient, PasskeyServer, SACClient, SignerStore, SignerKey, type SignerLimits }
|
package/src/kit.ts
CHANGED
|
@@ -8,21 +8,22 @@ import { Buffer } from 'buffer'
|
|
|
8
8
|
import { PasskeyBase } from './base'
|
|
9
9
|
import { AssembledTransaction, DEFAULT_TIMEOUT } from '@stellar/stellar-sdk/contract'
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
export { Client as PasskeyClient } from 'passkey-kit-sdk'
|
|
12
|
+
export { Client as FactoryClient } from 'passkey-factory-sdk'
|
|
12
13
|
|
|
13
14
|
export class SignerKey {
|
|
14
|
-
private constructor(public
|
|
15
|
+
private constructor(public key: "Policy" | "Ed25519" | "Secp256r1", public value: string) { }
|
|
15
16
|
|
|
16
|
-
static Policy(
|
|
17
|
-
return new SignerKey("Policy",
|
|
17
|
+
static Policy(policy: string): SignerKey {
|
|
18
|
+
return new SignerKey("Policy", policy);
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
static Ed25519(
|
|
21
|
-
return new SignerKey("Ed25519",
|
|
21
|
+
static Ed25519(publicKey: string): SignerKey {
|
|
22
|
+
return new SignerKey("Ed25519", publicKey);
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
static Secp256r1(
|
|
25
|
-
return new SignerKey("Secp256r1",
|
|
25
|
+
static Secp256r1(id: string): SignerKey {
|
|
26
|
+
return new SignerKey("Secp256r1", id);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -219,7 +220,7 @@ export class PasskeyKit extends PasskeyBase {
|
|
|
219
220
|
if ([keyId, keypair, policy].filter((arg) => !!arg).length > 1)
|
|
220
221
|
throw new Error('Exactly one of `options.keyId`, `options.keypair`, or `options.policy` must be provided.');
|
|
221
222
|
|
|
222
|
-
const credentials = entry.credentials().address();
|
|
223
|
+
const credentials = entry.credentials().address();
|
|
223
224
|
|
|
224
225
|
if (!expiration) {
|
|
225
226
|
expiration = credentials.signatureExpirationLedger()
|
|
@@ -402,6 +403,8 @@ export class PasskeyKit extends PasskeyBase {
|
|
|
402
403
|
expiration?: number
|
|
403
404
|
}
|
|
404
405
|
) {
|
|
406
|
+
// TODO ensure we're outputting a built transaction that's actually useful in the case you don't intend to use launchtube
|
|
407
|
+
// Pretty sure we'll always be woefully under budget
|
|
405
408
|
return txn.signAuthEntries({
|
|
406
409
|
address: this.wallet!.options.contractId,
|
|
407
410
|
authorizeEntry: (entry) => {
|
|
@@ -449,32 +452,9 @@ export class PasskeyKit extends PasskeyBase {
|
|
|
449
452
|
});
|
|
450
453
|
}
|
|
451
454
|
|
|
452
|
-
public remove(
|
|
453
|
-
let signer_key: SDKSignerKey
|
|
454
|
-
|
|
455
|
-
switch (key.type) {
|
|
456
|
-
case 'Policy':
|
|
457
|
-
signer_key = {
|
|
458
|
-
tag: key.type,
|
|
459
|
-
values: [key.value as string]
|
|
460
|
-
}
|
|
461
|
-
break;
|
|
462
|
-
case 'Ed25519':
|
|
463
|
-
signer_key = {
|
|
464
|
-
tag: key.type,
|
|
465
|
-
values: [key.value as Buffer]
|
|
466
|
-
}
|
|
467
|
-
break;
|
|
468
|
-
case 'Secp256r1':
|
|
469
|
-
signer_key = {
|
|
470
|
-
tag: key.type,
|
|
471
|
-
values: [key.value as Buffer]
|
|
472
|
-
}
|
|
473
|
-
break;
|
|
474
|
-
}
|
|
475
|
-
|
|
455
|
+
public remove(signer: SignerKey) {
|
|
476
456
|
return this.wallet!.remove({
|
|
477
|
-
signer_key
|
|
457
|
+
signer_key: this.getSignerKey(signer)
|
|
478
458
|
});
|
|
479
459
|
}
|
|
480
460
|
|
|
@@ -493,26 +473,9 @@ export class PasskeyKit extends PasskeyBase {
|
|
|
493
473
|
sdk_signer_keys = []
|
|
494
474
|
|
|
495
475
|
for (const signer_key of signer_keys) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
tag: signer_key.type,
|
|
500
|
-
values: [signer_key.value as string]
|
|
501
|
-
})
|
|
502
|
-
break;
|
|
503
|
-
case 'Ed25519':
|
|
504
|
-
sdk_signer_keys.push({
|
|
505
|
-
tag: signer_key.type,
|
|
506
|
-
values: [signer_key.value as Buffer]
|
|
507
|
-
})
|
|
508
|
-
break;
|
|
509
|
-
case 'Secp256r1':
|
|
510
|
-
sdk_signer_keys.push({
|
|
511
|
-
tag: signer_key.type,
|
|
512
|
-
values: [signer_key.value as Buffer]
|
|
513
|
-
})
|
|
514
|
-
break;
|
|
515
|
-
}
|
|
476
|
+
sdk_signer_keys.push(
|
|
477
|
+
this.getSignerKey(signer_key)
|
|
478
|
+
)
|
|
516
479
|
}
|
|
517
480
|
}
|
|
518
481
|
|
|
@@ -522,6 +485,33 @@ export class PasskeyKit extends PasskeyBase {
|
|
|
522
485
|
return sdk_limits
|
|
523
486
|
}
|
|
524
487
|
|
|
488
|
+
private getSignerKey({ key: tag, value }: SignerKey) {
|
|
489
|
+
let signer_key: SDKSignerKey
|
|
490
|
+
|
|
491
|
+
switch (tag) {
|
|
492
|
+
case 'Policy':
|
|
493
|
+
signer_key = {
|
|
494
|
+
tag,
|
|
495
|
+
values: [value]
|
|
496
|
+
}
|
|
497
|
+
break;
|
|
498
|
+
case 'Ed25519':
|
|
499
|
+
signer_key = {
|
|
500
|
+
tag,
|
|
501
|
+
values: [Keypair.fromPublicKey(value).rawPublicKey()]
|
|
502
|
+
}
|
|
503
|
+
break;
|
|
504
|
+
case 'Secp256r1':
|
|
505
|
+
signer_key = {
|
|
506
|
+
tag,
|
|
507
|
+
values: [base64url.toBuffer(value)]
|
|
508
|
+
}
|
|
509
|
+
break;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
return signer_key
|
|
513
|
+
}
|
|
514
|
+
|
|
525
515
|
private async getPublicKey(response: AuthenticatorAttestationResponseJSON) {
|
|
526
516
|
let publicKey: Buffer | undefined
|
|
527
517
|
|
package/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { PasskeyServer } from "./server";
|
|
2
|
-
import { PasskeyKit, SignerStore, SignerKey, type SignerLimits } from "./kit";
|
|
2
|
+
import { PasskeyKit, PasskeyClient, FactoryClient, SignerStore, SignerKey, type SignerLimits } from "./kit";
|
|
3
3
|
import { SACClient } from "./sac";
|
|
4
|
-
export {
|
|
4
|
+
export { PasskeyKit, PasskeyClient, FactoryClient, PasskeyServer, SACClient, SignerStore, SignerKey, type SignerLimits };
|
package/types/kit.d.ts
CHANGED
|
@@ -6,13 +6,15 @@ import type { AuthenticatorSelectionCriteria } from "@simplewebauthn/types";
|
|
|
6
6
|
import { Buffer } from 'buffer';
|
|
7
7
|
import { PasskeyBase } from './base';
|
|
8
8
|
import { AssembledTransaction } from '@stellar/stellar-sdk/contract';
|
|
9
|
+
export { Client as PasskeyClient } from 'passkey-kit-sdk';
|
|
10
|
+
export { Client as FactoryClient } from 'passkey-factory-sdk';
|
|
9
11
|
export declare class SignerKey {
|
|
10
|
-
|
|
11
|
-
value: string
|
|
12
|
+
key: "Policy" | "Ed25519" | "Secp256r1";
|
|
13
|
+
value: string;
|
|
12
14
|
private constructor();
|
|
13
|
-
static Policy(
|
|
14
|
-
static Ed25519(
|
|
15
|
-
static Secp256r1(
|
|
15
|
+
static Policy(policy: string): SignerKey;
|
|
16
|
+
static Ed25519(publicKey: string): SignerKey;
|
|
17
|
+
static Secp256r1(id: string): SignerKey;
|
|
16
18
|
}
|
|
17
19
|
export type SignerLimits = Map<string, SignerKey[] | undefined>;
|
|
18
20
|
export declare enum SignerStore {
|
|
@@ -76,8 +78,9 @@ export declare class PasskeyKit extends PasskeyBase {
|
|
|
76
78
|
addSecp256r1(keyId: Uint8Array, publicKey: Uint8Array, limits: SignerLimits, store: SignerStore): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
|
|
77
79
|
addEd25519(publicKey: string, limits: SignerLimits, store: SignerStore): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
|
|
78
80
|
addPolicy(policy: string, limits: SignerLimits, store: SignerStore): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
|
|
79
|
-
remove(
|
|
81
|
+
remove(signer: SignerKey): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
|
|
80
82
|
private getSignerLimits;
|
|
83
|
+
private getSignerKey;
|
|
81
84
|
private getPublicKey;
|
|
82
85
|
private compactSignature;
|
|
83
86
|
}
|