phygital-token-sdk 0.7.2 → 0.8.0
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/instructions/internal/secp256r1Verify.d.ts +4 -4
- package/dist/instructions/internal/secp256r1Verify.d.ts.map +1 -1
- package/dist/instructions/internal/secp256r1Verify.js +4 -4
- package/dist/instructions/internal/secp256r1Verify.js.map +1 -1
- package/dist/instructions/transfer.d.ts +2 -2
- package/dist/instructions/verifyAsset.d.ts +3 -3
- package/dist/utils/passkey/secp256r1.d.ts +7 -6
- package/dist/utils/passkey/secp256r1.d.ts.map +1 -1
- package/dist/utils/passkey/secp256r1.js +8 -7
- package/dist/utils/passkey/secp256r1.js.map +1 -1
- package/package.json +4 -2
package/dist/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@ export { verifyDynamicUrl, verifyDynamicUrlWithoutCounterCheck, startAuthenticat
|
|
|
7
7
|
export { findAssetPda } from "./utils/pdas/index.js";
|
|
8
8
|
export { evaluateAssetGating, evaluateGatingTiers, evaluateGatingFilter, assetMatchesPredicate, Gating, GatingTraitValue, formatGatingPredicate, summarizeGatingEvaluationFailure, summarizeGatingFailure, summarizeGatingTierFailure, type EvaluateAssetGatingOptions, type GatingAssetPredicate, type GatingEvaluationResult, type GatingFilter, type GatingFilterResult, type GatingTier, type GatingTierEvaluationResult, type GatingTiersEvaluationResult, } from "./utils/gating.js";
|
|
9
9
|
export * from "./generated/index.js";
|
|
10
|
+
export { getSecp256r1VerifyInstruction, type Secp256r1VerifyEntry, type Secp256r1VerifyInstruction, } from "./instructions/internal/secp256r1Verify.js";
|
|
11
|
+
export { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildVerifyAssetChallenge, buildTransferChallenge, buildVerifyInputFromWebAuthn, type WebAuthnSecp256r1Verification, } from "./utils/passkey/secp256r1.js";
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EACjC,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mCAAmC,EACnC,wCAAwC,EACxC,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,GAC1C,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,EACN,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,mBAAmB,CAAC;AAE3B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EACjC,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mCAAmC,EACnC,wCAAwC,EACxC,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,GAC1C,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,EACN,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,mBAAmB,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,mDAAmD,EACnD,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,4 +7,6 @@ export { verifyDynamicUrl, verifyDynamicUrlWithoutCounterCheck, startAuthenticat
|
|
|
7
7
|
export { findAssetPda } from "./utils/pdas/index.js";
|
|
8
8
|
export { evaluateAssetGating, evaluateGatingTiers, evaluateGatingFilter, assetMatchesPredicate, Gating, GatingTraitValue, formatGatingPredicate, summarizeGatingEvaluationFailure, summarizeGatingFailure, summarizeGatingTierFailure, } from "./utils/gating.js";
|
|
9
9
|
export * from "./generated/index.js";
|
|
10
|
+
export { getSecp256r1VerifyInstruction, } from "./instructions/internal/secp256r1Verify.js";
|
|
11
|
+
export { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildVerifyAssetChallenge, buildTransferChallenge, buildVerifyInputFromWebAuthn, } from "./utils/passkey/secp256r1.js";
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,8BAA8B,GAE/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,GAElC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,YAAY,GAOb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mCAAmC,EACnC,wCAAwC,EACxC,2BAA2B,GAM5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,EACN,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,sBAAsB,EACtB,0BAA0B,GAS3B,MAAM,mBAAmB,CAAC;AAE3B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,8BAA8B,GAE/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,GAElC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,YAAY,GAOb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mCAAmC,EACnC,wCAAwC,EACxC,2BAA2B,GAM5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,EACN,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,sBAAsB,EACtB,0BAA0B,GAS3B,MAAM,mBAAmB,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,6BAA6B,GAG9B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,mDAAmD,EACnD,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,GAE7B,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type Address, type Codec, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyUint8Array } from "@solana/kit";
|
|
2
2
|
import { SECP256R1_PROGRAM_ADDRESS } from "../../utils/consts.js";
|
|
3
|
-
export type
|
|
3
|
+
export type Secp256r1VerifyEntry = {
|
|
4
4
|
publicKey: ReadonlyUint8Array;
|
|
5
5
|
signature: ReadonlyUint8Array;
|
|
6
6
|
message: ReadonlyUint8Array;
|
|
7
|
-
}
|
|
7
|
+
};
|
|
8
8
|
export type Secp256r1VerifyInstruction<TProgram extends string = typeof SECP256R1_PROGRAM_ADDRESS> = Instruction<TProgram> & InstructionWithData<Uint8Array<ArrayBuffer>> & InstructionWithAccounts<[]>;
|
|
9
9
|
export type Secp256r1SignatureOffsetsDataArgs = {
|
|
10
10
|
signatureOffset: number;
|
|
@@ -19,11 +19,11 @@ export type Secp256r1VerifyInstructionData = {
|
|
|
19
19
|
numSignatures: number;
|
|
20
20
|
padding: number;
|
|
21
21
|
offsets: Secp256r1SignatureOffsetsDataArgs[];
|
|
22
|
-
payload:
|
|
22
|
+
payload: Secp256r1VerifyEntry[];
|
|
23
23
|
};
|
|
24
24
|
export type Secp256r1VerifyInstructionDataArgs = Secp256r1VerifyInstructionData;
|
|
25
25
|
export declare function getSecp256r1VerifyInstructionDataCodec(): Codec<Secp256r1VerifyInstructionDataArgs, Secp256r1VerifyInstructionData>;
|
|
26
|
-
export declare function getSecp256r1VerifyInstruction<TProgramAddress extends Address = typeof SECP256R1_PROGRAM_ADDRESS>(
|
|
26
|
+
export declare function getSecp256r1VerifyInstruction<TProgramAddress extends Address = typeof SECP256R1_PROGRAM_ADDRESS>(entries: Secp256r1VerifyEntry[], config?: {
|
|
27
27
|
programAddress?: TProgramAddress;
|
|
28
28
|
}): Secp256r1VerifyInstruction<TProgramAddress>;
|
|
29
29
|
//# sourceMappingURL=secp256r1Verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256r1Verify.d.ts","sourceRoot":"","sources":["../../../src/instructions/internal/secp256r1Verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"secp256r1Verify.d.ts","sourceRoot":"","sources":["../../../src/instructions/internal/secp256r1Verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAQlE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,QAAQ,SAAS,MAAM,GAAG,OAAO,yBAAyB,IACxD,WAAW,CAAC,QAAQ,CAAC,GACvB,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAC5C,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAE9B,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC7C,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,8BAA8B,CAAC;AA0HhF,wBAAgB,sCAAsC,IAAI,KAAK,CAC7D,kCAAkC,EAClC,8BAA8B,CAC/B,CAKA;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,SAAS,OAAO,GAAG,OAAO,yBAAyB,EAElE,OAAO,EAAE,oBAAoB,EAAE,EAC/B,MAAM,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,eAAe,CAAA;CAAE,GAC5C,0BAA0B,CAAC,eAAe,CAAC,CAyC7C"}
|
|
@@ -93,12 +93,12 @@ function getSecp256r1VerifyInstructionDataDecoder() {
|
|
|
93
93
|
export function getSecp256r1VerifyInstructionDataCodec() {
|
|
94
94
|
return combineCodec(getSecp256r1VerifyInstructionDataEncoder(), getSecp256r1VerifyInstructionDataDecoder());
|
|
95
95
|
}
|
|
96
|
-
export function getSecp256r1VerifyInstruction(
|
|
97
|
-
const numSignatures =
|
|
96
|
+
export function getSecp256r1VerifyInstruction(entries, config) {
|
|
97
|
+
const numSignatures = entries.length;
|
|
98
98
|
let currentOffset = SIGNATURE_OFFSETS_START + numSignatures * SIGNATURE_OFFSETS_SERIALIZED_SIZE;
|
|
99
99
|
const offsets = [];
|
|
100
100
|
for (let i = 0; i < numSignatures; i += 1) {
|
|
101
|
-
const { message } =
|
|
101
|
+
const { message } = entries[i];
|
|
102
102
|
const publicKeyOffset = currentOffset;
|
|
103
103
|
const signatureOffset = publicKeyOffset + COMPRESSED_PUBKEY_SERIALIZED_SIZE;
|
|
104
104
|
const messageDataOffset = signatureOffset + SIGNATURE_SERIALIZED_SIZE;
|
|
@@ -121,7 +121,7 @@ export function getSecp256r1VerifyInstruction(input, config) {
|
|
|
121
121
|
numSignatures,
|
|
122
122
|
padding: 0,
|
|
123
123
|
offsets,
|
|
124
|
-
payload:
|
|
124
|
+
payload: entries,
|
|
125
125
|
};
|
|
126
126
|
return {
|
|
127
127
|
accounts: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256r1Verify.js","sourceRoot":"","sources":["../../../src/instructions/internal/secp256r1Verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,GASb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAC7C,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAC7C,MAAM,uBAAuB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"secp256r1Verify.js","sourceRoot":"","sources":["../../../src/instructions/internal/secp256r1Verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Instruction, type Rpc, type SolanaRpcApi, type TransactionSigner } from "@solana/kit";
|
|
2
2
|
import { type AuthenticationResponseJSON } from "@simplewebauthn/browser";
|
|
3
3
|
import { type AssetDisplayInfo } from "../utils/metadata.js";
|
|
4
|
-
import { type
|
|
4
|
+
import { type Secp256r1VerifyEntry } from "../utils/passkey/secp256r1.js";
|
|
5
5
|
export type TransferSession = {
|
|
6
6
|
rpc: Rpc<SolanaRpcApi>;
|
|
7
7
|
displayInfo: AssetDisplayInfo;
|
|
@@ -14,5 +14,5 @@ export declare function beginTransfer(input: {
|
|
|
14
14
|
displayInfo: AssetDisplayInfo;
|
|
15
15
|
}): Promise<TransferSession>;
|
|
16
16
|
export declare function authenticatePasskeyForTransfer(session: TransferSession): Promise<AuthenticationResponseJSON>;
|
|
17
|
-
export declare function completeTransfer(session: TransferSession, response: AuthenticationResponseJSON, recipient: TransactionSigner, existingSecp256r1VerifyInputs?:
|
|
17
|
+
export declare function completeTransfer(session: TransferSession, response: AuthenticationResponseJSON, recipient: TransactionSigner, existingSecp256r1VerifyInputs?: Secp256r1VerifyEntry[]): Promise<Instruction[]>;
|
|
18
18
|
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AuthenticationResponseJSON } from "@simplewebauthn/browser";
|
|
2
2
|
import type { Address, Instruction, Rpc, SolanaRpcApi } from "@solana/kit";
|
|
3
|
-
import { type
|
|
3
|
+
import { type Secp256r1VerifyEntry } from "../utils/passkey/secp256r1.js";
|
|
4
4
|
import { type Asset } from "../generated/index.js";
|
|
5
5
|
export type VerifyAssetSession = {
|
|
6
6
|
rpc: Rpc<SolanaRpcApi>;
|
|
@@ -14,12 +14,12 @@ export declare function beginVerifyAsset(input: {
|
|
|
14
14
|
message: Uint8Array;
|
|
15
15
|
}): Promise<VerifyAssetSession>;
|
|
16
16
|
export declare function authenticatePasskeyForVerifyAsset(session: VerifyAssetSession): Promise<AuthenticationResponseJSON>;
|
|
17
|
-
export declare function buildVerifyAssetArgs(session: VerifyAssetSession, response: AuthenticationResponseJSON, existingSecp256r1VerifyInputs?:
|
|
17
|
+
export declare function buildVerifyAssetArgs(session: VerifyAssetSession, response: AuthenticationResponseJSON, existingSecp256r1VerifyInputs?: Secp256r1VerifyEntry[]): Promise<{
|
|
18
18
|
asset: Asset;
|
|
19
19
|
assetPda: Address;
|
|
20
20
|
secp256r1Verify: Instruction;
|
|
21
21
|
signedMessageIndex: number;
|
|
22
22
|
clientDataJson: Uint8Array;
|
|
23
23
|
}>;
|
|
24
|
-
export declare function completeVerifyAsset(session: VerifyAssetSession, response: AuthenticationResponseJSON, existingSecp256r1VerifyInputs?:
|
|
24
|
+
export declare function completeVerifyAsset(session: VerifyAssetSession, response: AuthenticationResponseJSON, existingSecp256r1VerifyInputs?: Secp256r1VerifyEntry[]): Promise<Instruction[]>;
|
|
25
25
|
//# sourceMappingURL=verifyAsset.d.ts.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { AuthenticationResponseJSON } from "@simplewebauthn/browser";
|
|
2
2
|
import { type Address, type Instruction } from "@solana/kit";
|
|
3
|
+
import { type Secp256r1VerifyEntry } from "../../instructions/internal/secp256r1Verify.js";
|
|
3
4
|
import { SECP256R1_PROGRAM_ADDRESS } from "../consts.js";
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
5
|
+
export type { Secp256r1VerifyEntry };
|
|
6
|
+
export declare function buildVerifyInputFromWebAuthn(input: {
|
|
7
|
+
publicKey: string;
|
|
8
|
+
response: AuthenticationResponseJSON;
|
|
9
|
+
}): Secp256r1VerifyEntry;
|
|
9
10
|
export declare function buildTransferChallenge(input: {
|
|
10
11
|
asset: Address;
|
|
11
12
|
slotHash: Uint8Array;
|
|
@@ -22,6 +23,6 @@ export type WebAuthnSecp256r1Verification = {
|
|
|
22
23
|
export declare function buildSecp256r1VerifyInstructionFromWebAuthnResponse(input: {
|
|
23
24
|
publicKey: string;
|
|
24
25
|
response: AuthenticationResponseJSON;
|
|
25
|
-
existingSecp256r1VerifyInputs?:
|
|
26
|
+
existingSecp256r1VerifyInputs?: Secp256r1VerifyEntry[];
|
|
26
27
|
}): Promise<WebAuthnSecp256r1Verification>;
|
|
27
28
|
//# sourceMappingURL=secp256r1.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256r1.d.ts","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"secp256r1.d.ts","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,yBAAyB,EAG1B,MAAM,cAAc,CAAC;AAStB,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAiBrC,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,0BAA0B,CAAC;CACtC,GAAG,oBAAoB,CAWvB;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAUtB;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAUtB;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC/D,cAAc,EAAE,UAAU,CAAC;CAC5B,CAAC;AAEF,wBAAsB,mDAAmD,CAAC,KAAK,EAAE;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,0BAA0B,CAAC;IACrC,6BAA6B,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACxD,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAazC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getAddressEncoder } from "@solana/kit";
|
|
2
|
-
import { getSecp256r1VerifyInstruction } from "../../instructions/internal/secp256r1Verify.js";
|
|
2
|
+
import { getSecp256r1VerifyInstruction, } from "../../instructions/internal/secp256r1Verify.js";
|
|
3
3
|
import { SECP256R1_PROGRAM_ADDRESS, TRANSFER_ACTION_BYTES, VERIFY_ASSET_ACTION_BYTES, } from "../consts.js";
|
|
4
4
|
import { base64URLStringToBuffer, convertSignatureDERtoRS, getClientDataJsonBytes, getSecp256r1Message, } from "./internal.js";
|
|
5
5
|
import { sha256 } from "@noble/hashes/sha2.js";
|
|
@@ -16,7 +16,7 @@ function concatBytes(...parts) {
|
|
|
16
16
|
function encodeAddress(addressValue) {
|
|
17
17
|
return new Uint8Array(getAddressEncoder().encode(addressValue));
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
export function buildVerifyInputFromWebAuthn(input) {
|
|
20
20
|
const signature = convertSignatureDERtoRS(base64URLStringToBuffer(input.response.response.signature));
|
|
21
21
|
const message = getSecp256r1Message(input.response);
|
|
22
22
|
return {
|
|
@@ -34,15 +34,16 @@ export async function buildVerifyAssetChallenge(input) {
|
|
|
34
34
|
return sha256(concatBytes(VERIFY_ASSET_ACTION_BYTES, messageHash, new Uint8Array(input.slotHash)));
|
|
35
35
|
}
|
|
36
36
|
export async function buildSecp256r1VerifyInstructionFromWebAuthnResponse(input) {
|
|
37
|
-
const
|
|
37
|
+
const existing = input.existingSecp256r1VerifyInputs;
|
|
38
|
+
const parsed = buildVerifyInputFromWebAuthn(input);
|
|
38
39
|
let signedMessageIndex = 0;
|
|
39
|
-
if (
|
|
40
|
-
signedMessageIndex =
|
|
41
|
-
|
|
40
|
+
if (existing?.length) {
|
|
41
|
+
signedMessageIndex = existing.length;
|
|
42
|
+
existing.push(parsed);
|
|
42
43
|
}
|
|
43
44
|
return {
|
|
44
45
|
signedMessageIndex,
|
|
45
|
-
secp256r1Verify: getSecp256r1VerifyInstruction(
|
|
46
|
+
secp256r1Verify: getSecp256r1VerifyInstruction(existing ?? [parsed]),
|
|
46
47
|
clientDataJson: getClientDataJsonBytes(input.response),
|
|
47
48
|
};
|
|
48
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256r1.js","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAkC,MAAM,aAAa,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"secp256r1.js","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAkC,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,6BAA6B,GAE9B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI/C,SAAS,WAAW,CAAC,GAAG,KAAmB;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtB,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,YAAqB;IAC1C,OAAO,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAG5C;IACC,MAAM,SAAS,GAAG,uBAAuB,CACvC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC3D,CAAC;IACF,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO;QACL,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;QACnD,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAG5C;IACC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvD,OAAO,MAAM,CACX,WAAW,CACT,qBAAqB,EACrB,WAAW,EACX,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC/B,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,KAG/C;IACC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,MAAM,CACX,WAAW,CACT,yBAAyB,EACzB,WAAW,EACX,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC/B,CACF,CAAC;AACJ,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,mDAAmD,CAAC,KAIzE;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,6BAA6B,CAAC;IACrD,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,OAAO;QACL,kBAAkB;QAClB,eAAe,EAAE,6BAA6B,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC;KACvD,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "phygital-token-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "TypeScript client for the Phygital Token Solana program (generated via Codama)",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"type": "module",
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
|
-
"import": "./dist/index.js"
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/index.js",
|
|
15
|
+
"default": "./dist/index.js"
|
|
14
16
|
}
|
|
15
17
|
},
|
|
16
18
|
"files": [
|