phygital-token-sdk 0.4.0 → 0.5.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/generated/errors/phygitalToken.d.ts +6 -2
- package/dist/generated/errors/phygitalToken.d.ts.map +1 -1
- package/dist/generated/errors/phygitalToken.js +11 -3
- package/dist/generated/errors/phygitalToken.js.map +1 -1
- package/dist/generated/instructions/executeSpend.d.ts +86 -0
- package/dist/generated/instructions/executeSpend.d.ts.map +1 -0
- package/dist/generated/instructions/executeSpend.js +187 -0
- package/dist/generated/instructions/executeSpend.js.map +1 -0
- package/dist/generated/instructions/verifyAsset.d.ts +2 -2
- package/dist/generated/instructions/verifyAsset.d.ts.map +1 -1
- package/dist/generated/instructions/verifyAsset.js +3 -3
- package/dist/generated/instructions/verifyAsset.js.map +1 -1
- package/dist/generated/pdas/spendAuthority.d.ts +8 -0
- package/dist/generated/pdas/spendAuthority.d.ts.map +1 -0
- package/dist/generated/pdas/spendAuthority.js +15 -0
- package/dist/generated/pdas/spendAuthority.js.map +1 -0
- package/dist/generated/types/assetType.d.ts +2 -2
- package/dist/generated/types/assetType.d.ts.map +1 -1
- package/dist/generated/types/assetType.js +2 -2
- package/dist/generated/types/assetType.js.map +1 -1
- package/dist/generated/types/secp256r1VerifyArgs.d.ts +2 -6
- package/dist/generated/types/secp256r1VerifyArgs.d.ts.map +1 -1
- package/dist/generated/types/secp256r1VerifyArgs.js +3 -7
- package/dist/generated/types/secp256r1VerifyArgs.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions/transfer.d.ts +10 -1
- package/dist/instructions/transfer.d.ts.map +1 -1
- package/dist/instructions/transfer.js +32 -11
- package/dist/instructions/transfer.js.map +1 -1
- package/dist/utils/assetCredential.d.ts +8 -0
- package/dist/utils/assetCredential.d.ts.map +1 -0
- package/dist/utils/assetCredential.js +32 -0
- package/dist/utils/assetCredential.js.map +1 -0
- package/dist/utils/metadata.d.ts +8 -18
- package/dist/utils/metadata.d.ts.map +1 -1
- package/dist/utils/metadata.js +2 -32
- package/dist/utils/metadata.js.map +1 -1
- package/dist/utils/passkey/internal.d.ts +1 -0
- package/dist/utils/passkey/internal.d.ts.map +1 -1
- package/dist/utils/passkey/internal.js +3 -0
- package/dist/utils/passkey/internal.js.map +1 -1
- package/dist/utils/passkey/secp256r1.d.ts +6 -4
- package/dist/utils/passkey/secp256r1.d.ts.map +1 -1
- package/dist/utils/passkey/secp256r1.js +11 -17
- package/dist/utils/passkey/secp256r1.js.map +1 -1
- package/dist/utils/verify.d.ts.map +1 -1
- package/dist/utils/verify.js +9 -37
- package/dist/utils/verify.js.map +1 -1
- package/package.json +1 -1
package/dist/utils/verify.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { Endian,
|
|
1
|
+
import { Endian, getU32Encoder, } from "@solana/kit";
|
|
2
2
|
import { base64URLStringToBuffer, convertSignatureDERtoRS, getSecp256r1Message, normalizeSignatureToLowS, parseWebAuthnClientData, } from "./passkey/internal.js";
|
|
3
3
|
import { p256 } from "@noble/curves/nist.js";
|
|
4
4
|
import { startAuthentication, bufferToBase64URLString, } from "@simplewebauthn/browser";
|
|
5
|
-
import {
|
|
5
|
+
import { getVerifyAssetInstruction, PHYGITAL_TOKEN_PROGRAM_ADDRESS, } from "../generated/index.js";
|
|
6
6
|
import { authenticateWithNfc } from "./passkey/nfc/index.js";
|
|
7
7
|
import { sendInstructions } from "./sendInstructions.js";
|
|
8
8
|
import { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildVerifyMessage, } from "./passkey/secp256r1.js";
|
|
9
9
|
import { getLatestSlotHash } from "./slotHash.js";
|
|
10
10
|
import { findAssetPda } from "./pdas/index.js";
|
|
11
11
|
import { parseSecp256r1Pubkey } from "../instructions/mint.js";
|
|
12
|
+
import { fetchAssetCredentialFromCredentialId } from "./assetCredential.js";
|
|
12
13
|
const DEFAULT_VERIFY_DYNAMIC_URL_ENDPOINT = `https://revibase.com/api/verifyDynamicUrl`;
|
|
13
14
|
const defaultVerifyDynamicUrlCallback = async (params) => {
|
|
14
15
|
const url = new URL(DEFAULT_VERIFY_DYNAMIC_URL_ENDPOINT);
|
|
@@ -62,31 +63,6 @@ export function verifyDynamicUrlWithoutCounterCheck(params) {
|
|
|
62
63
|
counter: currentCounter,
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
|
-
async function fetchAssetCredentialFromCredentialId(credentialId, rpc) {
|
|
66
|
-
const data = await rpc
|
|
67
|
-
.getProgramAccounts(PHYGITAL_TOKEN_PROGRAM_ADDRESS, {
|
|
68
|
-
encoding: "base64",
|
|
69
|
-
filters: [
|
|
70
|
-
{ dataSize: BigInt(179) },
|
|
71
|
-
{
|
|
72
|
-
memcmp: {
|
|
73
|
-
encoding: "base64",
|
|
74
|
-
offset: BigInt(115),
|
|
75
|
-
bytes: getBase64Decoder().decode(base64URLStringToBuffer(credentialId)),
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
})
|
|
80
|
-
.send();
|
|
81
|
-
if (!data.length) {
|
|
82
|
-
throw new Error("No account found.");
|
|
83
|
-
}
|
|
84
|
-
const asset = getAssetDecoder().decode(getBase64Encoder().encode(data[0].account.data[0]));
|
|
85
|
-
return {
|
|
86
|
-
publicKey: bufferToBase64URLString(new Uint8Array(asset.publicKey[0]).buffer),
|
|
87
|
-
asset: data[0].pubkey,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
66
|
async function fetchPublicKeyFromCredentialId(credentialId, rpc) {
|
|
91
67
|
if (!rpc)
|
|
92
68
|
return null;
|
|
@@ -157,7 +133,7 @@ export async function verifyWithChallengeResponse(input) {
|
|
|
157
133
|
if (!message) {
|
|
158
134
|
throw new Error("message is missing.");
|
|
159
135
|
}
|
|
160
|
-
const { secp256r1Verify,
|
|
136
|
+
const { secp256r1Verify, clientDataJson } = await buildSecp256r1VerifyInstructionFromWebAuthnResponse({
|
|
161
137
|
response,
|
|
162
138
|
publicKey: result.publicKey,
|
|
163
139
|
});
|
|
@@ -166,11 +142,9 @@ export async function verifyWithChallengeResponse(input) {
|
|
|
166
142
|
secp256r1VerifyArgs: {
|
|
167
143
|
signedMessageIndex: 0,
|
|
168
144
|
slotNumber,
|
|
169
|
-
|
|
170
|
-
crossOrigin,
|
|
171
|
-
truncatedClientDataJson,
|
|
145
|
+
clientDataJson,
|
|
172
146
|
},
|
|
173
|
-
message,
|
|
147
|
+
message: new TextEncoder().encode(message),
|
|
174
148
|
});
|
|
175
149
|
const signature = await sendInstructions({
|
|
176
150
|
rpc: input.rpc,
|
|
@@ -224,7 +198,7 @@ export async function verifyWithChallengeResponseOverNfc(input) {
|
|
|
224
198
|
if (!message) {
|
|
225
199
|
throw new Error("message is missing.");
|
|
226
200
|
}
|
|
227
|
-
const { secp256r1Verify,
|
|
201
|
+
const { secp256r1Verify, clientDataJson } = await buildSecp256r1VerifyInstructionFromWebAuthnResponse({
|
|
228
202
|
response,
|
|
229
203
|
publicKey: result.publicKey,
|
|
230
204
|
});
|
|
@@ -233,11 +207,9 @@ export async function verifyWithChallengeResponseOverNfc(input) {
|
|
|
233
207
|
secp256r1VerifyArgs: {
|
|
234
208
|
signedMessageIndex: 0,
|
|
235
209
|
slotNumber,
|
|
236
|
-
|
|
237
|
-
crossOrigin,
|
|
238
|
-
truncatedClientDataJson,
|
|
210
|
+
clientDataJson,
|
|
239
211
|
},
|
|
240
|
-
message,
|
|
212
|
+
message: new TextEncoder().encode(message),
|
|
241
213
|
});
|
|
242
214
|
const signature = await sendInstructions({
|
|
243
215
|
rpc: input.rpc,
|
package/dist/utils/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/utils/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/utils/verify.ts"],"names":[],"mappings":"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"}
|