phygital-token-sdk 0.16.0 → 0.18.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/README.md +9 -6
- package/dist/generated/accounts/asset.d.ts +2 -2
- package/dist/generated/accounts/asset.d.ts.map +1 -1
- package/dist/generated/accounts/asset.js +4 -4
- package/dist/generated/accounts/asset.js.map +1 -1
- package/dist/generated/errors/phygitalToken.d.ts +2 -2
- package/dist/generated/errors/phygitalToken.d.ts.map +1 -1
- package/dist/generated/errors/phygitalToken.js +2 -2
- package/dist/generated/errors/phygitalToken.js.map +1 -1
- package/dist/generated/instructions/executeTransfer.d.ts +3 -0
- package/dist/generated/instructions/executeTransfer.d.ts.map +1 -1
- package/dist/generated/instructions/executeTransfer.js +3 -1
- package/dist/generated/instructions/executeTransfer.js.map +1 -1
- package/dist/generated/instructions/verifyAsset.d.ts +8 -11
- package/dist/generated/instructions/verifyAsset.d.ts.map +1 -1
- package/dist/generated/instructions/verifyAsset.js +5 -15
- package/dist/generated/instructions/verifyAsset.js.map +1 -1
- package/dist/generated/types/secp256r1VerifyArgs.d.ts +0 -2
- package/dist/generated/types/secp256r1VerifyArgs.d.ts.map +1 -1
- package/dist/generated/types/secp256r1VerifyArgs.js +1 -3
- package/dist/generated/types/secp256r1VerifyArgs.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/instructions/initialize.js +1 -1
- package/dist/instructions/initialize.js.map +1 -1
- package/dist/instructions/transfer.js +1 -1
- package/dist/instructions/transfer.js.map +1 -1
- package/dist/instructions/verifyAsset.d.ts +4 -12
- package/dist/instructions/verifyAsset.d.ts.map +1 -1
- package/dist/instructions/verifyAsset.js +11 -18
- package/dist/instructions/verifyAsset.js.map +1 -1
- package/dist/utils/consts.d.ts +0 -1
- package/dist/utils/consts.d.ts.map +1 -1
- package/dist/utils/consts.js +0 -1
- package/dist/utils/consts.js.map +1 -1
- package/dist/utils/metadata.d.ts +1 -1
- package/dist/utils/metadata.d.ts.map +1 -1
- package/dist/utils/metadata.js +9 -9
- package/dist/utils/metadata.js.map +1 -1
- package/dist/utils/passkey/secp256r1.d.ts +3 -1
- package/dist/utils/passkey/secp256r1.d.ts.map +1 -1
- package/dist/utils/passkey/secp256r1.js +9 -5
- package/dist/utils/passkey/secp256r1.js.map +1 -1
- package/dist/utils/pdas/asset.d.ts +1 -1
- package/dist/utils/pdas/asset.d.ts.map +1 -1
- package/dist/utils/pdas/asset.js +2 -2
- package/dist/utils/pdas/asset.js.map +1 -1
- package/dist/utils/verify.d.ts.map +1 -1
- package/dist/utils/verify.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,16 +10,16 @@ pnpm add phygital-token-sdk @solana/kit
|
|
|
10
10
|
|
|
11
11
|
## Authenticate with NFC device
|
|
12
12
|
|
|
13
|
-
The custom authenticator uses the compressed secp256r1 **public key** as the WebAuthn `credential.id` and `user.id`. After a tap, `response.id` is that public key.
|
|
14
|
-
|
|
15
|
-
The on-chain asset PDA is seeded by a separate chip **`identifier`**, which is distinct from the passkey public key. Use `findAssetPda(identifier)` when you know the identifier, or `fetchAssetsByPublicKey` to look up by passkey after a tap.
|
|
13
|
+
The custom authenticator uses the compressed secp256r1 **public key** as the WebAuthn `credential.id` and `user.id`. After a tap, `response.id` is that public key — and the on-chain asset PDA is seeded by that same public key. A separate chip `identifier` is stored on the asset for binding.
|
|
16
14
|
|
|
17
15
|
```ts
|
|
18
16
|
import { createSolanaRpc } from "@solana/kit";
|
|
19
17
|
import {
|
|
20
18
|
startAuthentication,
|
|
21
19
|
verifyResponse,
|
|
22
|
-
|
|
20
|
+
parseSecp256r1Pubkey,
|
|
21
|
+
findAssetPda,
|
|
22
|
+
fetchAsset,
|
|
23
23
|
} from "phygital-token-sdk";
|
|
24
24
|
|
|
25
25
|
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
|
|
@@ -35,8 +35,11 @@ const { isVerified, secp256r1PublicKey } = verifyResponse({
|
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
if (isVerified) {
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const asset = await fetchAsset(
|
|
39
|
+
rpc,
|
|
40
|
+
await findAssetPda(parseSecp256r1Pubkey(secp256r1PublicKey)),
|
|
41
|
+
);
|
|
42
|
+
// Continue with asset.data.owner / asset.data.identifier
|
|
40
43
|
}
|
|
41
44
|
```
|
|
42
45
|
|
|
@@ -6,7 +6,7 @@ export type Asset = {
|
|
|
6
6
|
discriminator: ReadonlyUint8Array;
|
|
7
7
|
assetType: AssetType;
|
|
8
8
|
owner: Address;
|
|
9
|
-
|
|
9
|
+
lastSignCount: number;
|
|
10
10
|
isLocked: boolean;
|
|
11
11
|
publicKey: Secp256r1Pubkey;
|
|
12
12
|
identifier: Secp256r1Pubkey;
|
|
@@ -14,7 +14,7 @@ export type Asset = {
|
|
|
14
14
|
export type AssetArgs = {
|
|
15
15
|
assetType: AssetTypeArgs;
|
|
16
16
|
owner: Address;
|
|
17
|
-
|
|
17
|
+
lastSignCount: number;
|
|
18
18
|
isLocked: boolean;
|
|
19
19
|
publicKey: Secp256r1PubkeyArgs;
|
|
20
20
|
identifier: Secp256r1PubkeyArgs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/generated/accounts/asset.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,mBAAmB,EACnB,oBAAoB,EAcpB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,mBAAmB,EAAE,kBAEhC,CAAC;AAEH,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,aAAa,EAAE,kBAAkB,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/generated/accounts/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder,
|
|
1
|
+
import { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, transformEncoder, } from "@solana/kit";
|
|
2
2
|
import { getAssetTypeDecoder, getAssetTypeEncoder, getSecp256r1PubkeyDecoder, getSecp256r1PubkeyEncoder, } from "../types/index.js";
|
|
3
3
|
export const ASSET_DISCRIMINATOR = new Uint8Array([
|
|
4
4
|
234, 180, 241, 252, 139, 224, 160, 8,
|
|
@@ -11,7 +11,7 @@ export function getAssetEncoder() {
|
|
|
11
11
|
["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
|
|
12
12
|
["assetType", getAssetTypeEncoder()],
|
|
13
13
|
["owner", getAddressEncoder()],
|
|
14
|
-
["
|
|
14
|
+
["lastSignCount", getU32Encoder()],
|
|
15
15
|
["isLocked", getBooleanEncoder()],
|
|
16
16
|
["publicKey", getSecp256r1PubkeyEncoder()],
|
|
17
17
|
["identifier", getSecp256r1PubkeyEncoder()],
|
|
@@ -22,7 +22,7 @@ export function getAssetDecoder() {
|
|
|
22
22
|
["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
|
|
23
23
|
["assetType", getAssetTypeDecoder()],
|
|
24
24
|
["owner", getAddressDecoder()],
|
|
25
|
-
["
|
|
25
|
+
["lastSignCount", getU32Decoder()],
|
|
26
26
|
["isLocked", getBooleanDecoder()],
|
|
27
27
|
["publicKey", getSecp256r1PubkeyDecoder()],
|
|
28
28
|
["identifier", getSecp256r1PubkeyDecoder()],
|
|
@@ -53,6 +53,6 @@ export async function fetchAllMaybeAsset(rpc, addresses, config) {
|
|
|
53
53
|
return maybeAccounts.map((maybeAccount) => decodeAsset(maybeAccount));
|
|
54
54
|
}
|
|
55
55
|
export function getAssetSize() {
|
|
56
|
-
return
|
|
56
|
+
return 112;
|
|
57
57
|
}
|
|
58
58
|
//# sourceMappingURL=asset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/generated/accounts/asset.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,gBAAgB,GAYjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,GAK1B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,mBAAmB,GAAuB,IAAI,UAAU,CAAC;IACpE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,UAAU,0BAA0B;IACxC,OAAO,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC1E,CAAC;AAsBD,MAAM,UAAU,eAAe;IAC7B,OAAO,gBAAgB,CACrB,gBAAgB,CAAC;QACf,CAAC,eAAe,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,WAAW,EAAE,mBAAmB,EAAE,CAAC;QACpC,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC9B,CAAC,
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/generated/accounts/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare const PHYGITAL_TOKEN_ERROR__INVALID_SECP256R1_PUBLIC_KEY = 6003;
|
|
|
6
6
|
export declare const PHYGITAL_TOKEN_ERROR__SECP256R1_PUBKEY_MISMATCH = 6004;
|
|
7
7
|
export declare const PHYGITAL_TOKEN_ERROR__OWNER_MISMATCH = 6005;
|
|
8
8
|
export declare const PHYGITAL_TOKEN_ERROR__INVALID_SLOT_HASH = 6006;
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const PHYGITAL_TOKEN_ERROR__STALE_SIGN_COUNT = 6007;
|
|
10
10
|
export declare const PHYGITAL_TOKEN_ERROR__CLIENT_DATA_HASH_MISMATCH = 6008;
|
|
11
11
|
export declare const PHYGITAL_TOKEN_ERROR__MISSING_INSTRUCTIONS_SYSVAR = 6009;
|
|
12
12
|
export declare const PHYGITAL_TOKEN_ERROR__INVALID_SYSVAR_DATA_FORMAT = 6010;
|
|
@@ -19,7 +19,7 @@ export declare const PHYGITAL_TOKEN_ERROR__INVALID_AUTHENTICATOR_DATA = 6016;
|
|
|
19
19
|
export declare const PHYGITAL_TOKEN_ERROR__USER_PRESENCE_NOT_VERIFIED = 6017;
|
|
20
20
|
export declare const PHYGITAL_TOKEN_ERROR__RP_ID_MISMATCH = 6018;
|
|
21
21
|
export declare const PHYGITAL_TOKEN_ERROR__ORIGIN_MISMATCH = 6019;
|
|
22
|
-
export type PhygitalTokenError = typeof PHYGITAL_TOKEN_ERROR__ASSET_IS_CURRENTLY_LOCKED | typeof PHYGITAL_TOKEN_ERROR__ASSET_IS_NOT_LOCKABLE | typeof PHYGITAL_TOKEN_ERROR__CHALLENGE_HASH_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__CLIENT_DATA_HASH_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__INVALID_AUTHENTICATOR_DATA | typeof PHYGITAL_TOKEN_ERROR__INVALID_RECIPIENT | typeof PHYGITAL_TOKEN_ERROR__INVALID_SECP256R1_INSTRUCTION | typeof PHYGITAL_TOKEN_ERROR__INVALID_SECP256R1_PUBLIC_KEY | typeof PHYGITAL_TOKEN_ERROR__INVALID_SIGNATURE_OFFSETS | typeof PHYGITAL_TOKEN_ERROR__INVALID_SLOT_HASH | typeof PHYGITAL_TOKEN_ERROR__INVALID_SYSVAR_DATA_FORMAT | typeof PHYGITAL_TOKEN_ERROR__MISSING_INSTRUCTIONS_SYSVAR | typeof PHYGITAL_TOKEN_ERROR__ORIGIN_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__OWNER_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__RP_ID_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__SECP256R1_PUBKEY_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__SIGNATURE_INDEX_OUT_OF_BOUNDS | typeof
|
|
22
|
+
export type PhygitalTokenError = typeof PHYGITAL_TOKEN_ERROR__ASSET_IS_CURRENTLY_LOCKED | typeof PHYGITAL_TOKEN_ERROR__ASSET_IS_NOT_LOCKABLE | typeof PHYGITAL_TOKEN_ERROR__CHALLENGE_HASH_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__CLIENT_DATA_HASH_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__INVALID_AUTHENTICATOR_DATA | typeof PHYGITAL_TOKEN_ERROR__INVALID_RECIPIENT | typeof PHYGITAL_TOKEN_ERROR__INVALID_SECP256R1_INSTRUCTION | typeof PHYGITAL_TOKEN_ERROR__INVALID_SECP256R1_PUBLIC_KEY | typeof PHYGITAL_TOKEN_ERROR__INVALID_SIGNATURE_OFFSETS | typeof PHYGITAL_TOKEN_ERROR__INVALID_SLOT_HASH | typeof PHYGITAL_TOKEN_ERROR__INVALID_SYSVAR_DATA_FORMAT | typeof PHYGITAL_TOKEN_ERROR__MISSING_INSTRUCTIONS_SYSVAR | typeof PHYGITAL_TOKEN_ERROR__ORIGIN_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__OWNER_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__RP_ID_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__SECP256R1_PUBKEY_MISMATCH | typeof PHYGITAL_TOKEN_ERROR__SIGNATURE_INDEX_OUT_OF_BOUNDS | typeof PHYGITAL_TOKEN_ERROR__STALE_SIGN_COUNT | typeof PHYGITAL_TOKEN_ERROR__UNABLE_TO_PARSE_CLIENT_DATA | typeof PHYGITAL_TOKEN_ERROR__USER_PRESENCE_NOT_VERIFIED;
|
|
23
23
|
export declare function getPhygitalTokenErrorMessage(code: PhygitalTokenError): string;
|
|
24
24
|
export declare function isPhygitalTokenError<TProgramErrorCode extends PhygitalTokenError>(error: unknown, transactionMessage: {
|
|
25
25
|
instructions: Record<number, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phygitalToken.d.ts","sourceRoot":"","sources":["../../../src/generated/errors/phygitalToken.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uCAAuC,EAC5C,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,mDAAmD,OAAS,CAAC;AAE1E,eAAO,MAAM,mDAAmD,OAAS,CAAC;AAE1E,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,eAAO,MAAM,kDAAkD,OAAS,CAAC;AAEzE,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,eAAO,MAAM,oCAAoC,OAAS,CAAC;AAE3D,eAAO,MAAM,uCAAuC,OAAS,CAAC;AAE9D,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"phygitalToken.d.ts","sourceRoot":"","sources":["../../../src/generated/errors/phygitalToken.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uCAAuC,EAC5C,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,mDAAmD,OAAS,CAAC;AAE1E,eAAO,MAAM,mDAAmD,OAAS,CAAC;AAE1E,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,eAAO,MAAM,kDAAkD,OAAS,CAAC;AAEzE,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,eAAO,MAAM,oCAAoC,OAAS,CAAC;AAE3D,eAAO,MAAM,uCAAuC,OAAS,CAAC;AAE9D,eAAO,MAAM,sCAAsC,OAAS,CAAC;AAE7D,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,eAAO,MAAM,iDAAiD,OAAS,CAAC;AAExE,eAAO,MAAM,gDAAgD,OAAS,CAAC;AAEvE,eAAO,MAAM,uCAAuC,OAAS,CAAC;AAE9D,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,eAAO,MAAM,2CAA2C,OAAS,CAAC;AAElE,eAAO,MAAM,iDAAiD,OAAS,CAAC;AAExE,eAAO,MAAM,6CAA6C,OAAS,CAAC;AAEpE,eAAO,MAAM,gDAAgD,OAAS,CAAC;AAEvE,eAAO,MAAM,gDAAgD,OAAS,CAAC;AAEvE,eAAO,MAAM,oCAAoC,OAAS,CAAC;AAE3D,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAC1B,OAAO,+CAA+C,GACtD,OAAO,2CAA2C,GAClD,OAAO,6CAA6C,GACpD,OAAO,+CAA+C,GACtD,OAAO,gDAAgD,GACvD,OAAO,uCAAuC,GAC9C,OAAO,mDAAmD,GAC1D,OAAO,kDAAkD,GACzD,OAAO,+CAA+C,GACtD,OAAO,uCAAuC,GAC9C,OAAO,gDAAgD,GACvD,OAAO,iDAAiD,GACxD,OAAO,qCAAqC,GAC5C,OAAO,oCAAoC,GAC3C,OAAO,oCAAoC,GAC3C,OAAO,+CAA+C,GACtD,OAAO,mDAAmD,GAC1D,OAAO,sCAAsC,GAC7C,OAAO,iDAAiD,GACxD,OAAO,gDAAgD,CAAC;AA4B5D,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAQ7E;AAED,wBAAgB,oBAAoB,CAClC,iBAAiB,SAAS,kBAAkB,EAE5C,KAAK,EAAE,OAAO,EACd,kBAAkB,EAAE;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3D,EACD,IAAI,CAAC,EAAE,iBAAiB,GACvB,KAAK,IAAI,WAAW,CAAC,OAAO,uCAAuC,CAAC,GACrE,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAO7D"}
|
|
@@ -7,7 +7,7 @@ export const PHYGITAL_TOKEN_ERROR__INVALID_SECP256R1_PUBLIC_KEY = 0x1773;
|
|
|
7
7
|
export const PHYGITAL_TOKEN_ERROR__SECP256R1_PUBKEY_MISMATCH = 0x1774;
|
|
8
8
|
export const PHYGITAL_TOKEN_ERROR__OWNER_MISMATCH = 0x1775;
|
|
9
9
|
export const PHYGITAL_TOKEN_ERROR__INVALID_SLOT_HASH = 0x1776;
|
|
10
|
-
export const
|
|
10
|
+
export const PHYGITAL_TOKEN_ERROR__STALE_SIGN_COUNT = 0x1777;
|
|
11
11
|
export const PHYGITAL_TOKEN_ERROR__CLIENT_DATA_HASH_MISMATCH = 0x1778;
|
|
12
12
|
export const PHYGITAL_TOKEN_ERROR__MISSING_INSTRUCTIONS_SYSVAR = 0x1779;
|
|
13
13
|
export const PHYGITAL_TOKEN_ERROR__INVALID_SYSVAR_DATA_FORMAT = 0x177a;
|
|
@@ -40,7 +40,7 @@ if (process.env["NODE_ENV"] !== "production") {
|
|
|
40
40
|
[PHYGITAL_TOKEN_ERROR__RP_ID_MISMATCH]: `WebAuthn rpId hash does not match the expected relying party id.`,
|
|
41
41
|
[PHYGITAL_TOKEN_ERROR__SECP256R1_PUBKEY_MISMATCH]: `secp256r1 pubkey does not match token record`,
|
|
42
42
|
[PHYGITAL_TOKEN_ERROR__SIGNATURE_INDEX_OUT_OF_BOUNDS]: `The signature index provided is out of bounds for the secp256r1 instruction`,
|
|
43
|
-
[
|
|
43
|
+
[PHYGITAL_TOKEN_ERROR__STALE_SIGN_COUNT]: `WebAuthn signCount must be greater than the last accepted signCount`,
|
|
44
44
|
[PHYGITAL_TOKEN_ERROR__UNABLE_TO_PARSE_CLIENT_DATA]: `Unable to parse client data JSON.`,
|
|
45
45
|
[PHYGITAL_TOKEN_ERROR__USER_PRESENCE_NOT_VERIFIED]: `WebAuthn user presence flag (UP) was not set by the authenticator.`,
|
|
46
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phygitalToken.js","sourceRoot":"","sources":["../../../src/generated/errors/phygitalToken.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAGtE,MAAM,CAAC,MAAM,mDAAmD,GAAG,MAAM,CAAC;AAE1E,MAAM,CAAC,MAAM,mDAAmD,GAAG,MAAM,CAAC;AAE1E,MAAM,CAAC,MAAM,+CAA+C,GAAG,MAAM,CAAC;AAEtE,MAAM,CAAC,MAAM,kDAAkD,GAAG,MAAM,CAAC;AAEzE,MAAM,CAAC,MAAM,+CAA+C,GAAG,MAAM,CAAC;AAEtE,MAAM,CAAC,MAAM,oCAAoC,GAAG,MAAM,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAC;AAE9D,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"phygitalToken.js","sourceRoot":"","sources":["../../../src/generated/errors/phygitalToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,11 @@ export type ExecuteTransferInstruction<TProgram extends string = typeof PHYGITAL
|
|
|
13
13
|
export type ExecuteTransferInstructionData = {
|
|
14
14
|
discriminator: ReadonlyUint8Array;
|
|
15
15
|
secp256r1VerifyArgs: Secp256r1VerifyArgs;
|
|
16
|
+
slotNumber: bigint;
|
|
16
17
|
};
|
|
17
18
|
export type ExecuteTransferInstructionDataArgs = {
|
|
18
19
|
secp256r1VerifyArgs: Secp256r1VerifyArgsArgs;
|
|
20
|
+
slotNumber: number | bigint;
|
|
19
21
|
};
|
|
20
22
|
export declare function getExecuteTransferInstructionDataEncoder(): Encoder<ExecuteTransferInstructionDataArgs>;
|
|
21
23
|
export declare function getExecuteTransferInstructionDataDecoder(): Decoder<ExecuteTransferInstructionData>;
|
|
@@ -26,6 +28,7 @@ export type ExecuteTransferInput<TAccountRecipient extends string = string, TAcc
|
|
|
26
28
|
slotHashes?: Address<TAccountSlotHashes>;
|
|
27
29
|
instructionsSysvar?: Address<TAccountInstructionsSysvar>;
|
|
28
30
|
secp256r1VerifyArgs: ExecuteTransferInstructionDataArgs["secp256r1VerifyArgs"];
|
|
31
|
+
slotNumber: ExecuteTransferInstructionDataArgs["slotNumber"];
|
|
29
32
|
};
|
|
30
33
|
export declare function getExecuteTransferInstruction<TAccountRecipient extends string, TAccountAsset extends string, TAccountSlotHashes extends string, TAccountInstructionsSysvar extends string, TProgramAddress extends Address = typeof PHYGITAL_TOKEN_PROGRAM_ADDRESS>(input: ExecuteTransferInput<TAccountRecipient, TAccountAsset, TAccountSlotHashes, TAccountInstructionsSysvar>, config?: {
|
|
31
34
|
programAddress?: TProgramAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeTransfer.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/executeTransfer.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"executeTransfer.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/executeTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, } from "@solana/kit";
|
|
1
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, } from "@solana/kit";
|
|
2
2
|
import { getAccountMetaFactory, } from "@solana/kit/program-client-core";
|
|
3
3
|
import { PHYGITAL_TOKEN_PROGRAM_ADDRESS } from "../programs/index.js";
|
|
4
4
|
import { getSecp256r1VerifyArgsDecoder, getSecp256r1VerifyArgsEncoder, } from "../types/index.js";
|
|
@@ -10,12 +10,14 @@ export function getExecuteTransferInstructionDataEncoder() {
|
|
|
10
10
|
return transformEncoder(getStructEncoder([
|
|
11
11
|
["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
|
|
12
12
|
["secp256r1VerifyArgs", getSecp256r1VerifyArgsEncoder()],
|
|
13
|
+
["slotNumber", getU64Encoder()],
|
|
13
14
|
]), (value) => ({ ...value, discriminator: EXECUTE_TRANSFER_DISCRIMINATOR }));
|
|
14
15
|
}
|
|
15
16
|
export function getExecuteTransferInstructionDataDecoder() {
|
|
16
17
|
return getStructDecoder([
|
|
17
18
|
["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
|
|
18
19
|
["secp256r1VerifyArgs", getSecp256r1VerifyArgsDecoder()],
|
|
20
|
+
["slotNumber", getU64Decoder()],
|
|
19
21
|
]);
|
|
20
22
|
}
|
|
21
23
|
export function getExecuteTransferInstructionDataCodec() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeTransfer.js","sourceRoot":"","sources":["../../../src/generated/instructions/executeTransfer.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,yDAAyD,EACzD,WAAW,EACX,gBAAgB,GAYjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,8BAA8B,GACzC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,UAAU,oCAAoC;IAClD,OAAO,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAChD,8BAA8B,CAC/B,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"executeTransfer.js","sourceRoot":"","sources":["../../../src/generated/instructions/executeTransfer.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,yDAAyD,EACzD,WAAW,EACX,gBAAgB,GAYjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,8BAA8B,GACzC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,UAAU,oCAAoC;IAClD,OAAO,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAChD,8BAA8B,CAC/B,CAAC;AACJ,CAAC;AA0CD,MAAM,UAAU,wCAAwC;IACtD,OAAO,gBAAgB,CACrB,gBAAgB,CAAC;QACf,CAAC,eAAe,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,CAAC;QACxD,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;KAChC,CAAC,EACF,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,8BAA8B,EAAE,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC;IACtD,OAAO,gBAAgB,CAAC;QACtB,CAAC,eAAe,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,CAAC;QACxD,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sCAAsC;IAIpD,OAAO,YAAY,CACjB,wCAAwC,EAAE,EAC1C,wCAAwC,EAAE,CAC3C,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,6BAA6B,CAO3C,KAKC,EACD,MAA6C;IAS7C,MAAM,cAAc,GAClB,MAAM,EAAE,cAAc,IAAI,8BAA8B,CAAC;IAG3D,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAChE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QACvD,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAClE,kBAAkB,EAAE;YAClB,KAAK,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;YACvC,UAAU,EAAE,KAAK;SAClB;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,gBAGhB,CAAC;IAGF,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAG1B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC/B,QAAQ,CAAC,UAAU,CAAC,KAAK;YACvB,6CAAuG,CAAC;IAC5G,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACvC,QAAQ,CAAC,kBAAkB,CAAC,KAAK;YAC/B,6CAAuG,CAAC;IAC5G,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE;YACR,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC;YAC/C,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;YACvC,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC;YACjD,cAAc,CAAC,oBAAoB,EAAE,QAAQ,CAAC,kBAAkB,CAAC;SAClE;QACD,IAAI,EAAE,wCAAwC,EAAE,CAAC,MAAM,CACrD,IAA0C,CAC3C;QACD,cAAc;KAOf,CAAC,CAAC;AACL,CAAC;AAgBD,MAAM,UAAU,+BAA+B,CAI7C,WAEyC;IAEzC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CACnB,yDAAyD,EACzD;YACE,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM;YAC/C,oBAAoB,EAAE,CAAC;SACxB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,WAAW,GAAI,WAAW,CAAC,QAA0B,CAAC,YAAY,CAAE,CAAC;QAC3E,YAAY,IAAI,CAAC,CAAC;QAClB,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IACF,OAAO;QACL,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,QAAQ,EAAE;YACR,SAAS,EAAE,cAAc,EAAE;YAC3B,KAAK,EAAE,cAAc,EAAE;YACvB,UAAU,EAAE,cAAc,EAAE;YAC5B,kBAAkB,EAAE,cAAc,EAAE;SACrC;QACD,IAAI,EAAE,wCAAwC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;KAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -3,46 +3,43 @@ import { PHYGITAL_TOKEN_PROGRAM_ADDRESS } from "../programs/index.js";
|
|
|
3
3
|
import { type Secp256r1VerifyArgs, type Secp256r1VerifyArgsArgs } from "../types/index.js";
|
|
4
4
|
export declare const VERIFY_ASSET_DISCRIMINATOR: ReadonlyUint8Array;
|
|
5
5
|
export declare function getVerifyAssetDiscriminatorBytes(): ReadonlyUint8Array;
|
|
6
|
-
export type VerifyAssetInstruction<TProgram extends string = typeof PHYGITAL_TOKEN_PROGRAM_ADDRESS, TAccountAsset extends string | AccountMeta<string> = string,
|
|
6
|
+
export type VerifyAssetInstruction<TProgram extends string = typeof PHYGITAL_TOKEN_PROGRAM_ADDRESS, TAccountAsset extends string | AccountMeta<string> = string, TAccountInstructionsSysvar extends string | AccountMeta<string> = "Sysvar1nstructions1111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
|
|
7
7
|
TAccountAsset extends string ? WritableAccount<TAccountAsset> : TAccountAsset,
|
|
8
|
-
TAccountSlotHashes extends string ? ReadonlyAccount<TAccountSlotHashes> : TAccountSlotHashes,
|
|
9
8
|
TAccountInstructionsSysvar extends string ? ReadonlyAccount<TAccountInstructionsSysvar> : TAccountInstructionsSysvar,
|
|
10
9
|
...TRemainingAccounts
|
|
11
10
|
]>;
|
|
12
11
|
export type VerifyAssetInstructionData = {
|
|
13
12
|
discriminator: ReadonlyUint8Array;
|
|
14
13
|
secp256r1VerifyArgs: Secp256r1VerifyArgs;
|
|
15
|
-
|
|
14
|
+
messageHash: ReadonlyUint8Array;
|
|
16
15
|
expectedRpId: Option<string>;
|
|
17
16
|
expectedOrigin: Option<string>;
|
|
18
17
|
};
|
|
19
18
|
export type VerifyAssetInstructionDataArgs = {
|
|
20
19
|
secp256r1VerifyArgs: Secp256r1VerifyArgsArgs;
|
|
21
|
-
|
|
20
|
+
messageHash: ReadonlyUint8Array;
|
|
22
21
|
expectedRpId: OptionOrNullable<string>;
|
|
23
22
|
expectedOrigin: OptionOrNullable<string>;
|
|
24
23
|
};
|
|
25
24
|
export declare function getVerifyAssetInstructionDataEncoder(): Encoder<VerifyAssetInstructionDataArgs>;
|
|
26
25
|
export declare function getVerifyAssetInstructionDataDecoder(): Decoder<VerifyAssetInstructionData>;
|
|
27
26
|
export declare function getVerifyAssetInstructionDataCodec(): Codec<VerifyAssetInstructionDataArgs, VerifyAssetInstructionData>;
|
|
28
|
-
export type VerifyAssetInput<TAccountAsset extends string = string,
|
|
27
|
+
export type VerifyAssetInput<TAccountAsset extends string = string, TAccountInstructionsSysvar extends string = string> = {
|
|
29
28
|
asset: Address<TAccountAsset>;
|
|
30
|
-
slotHashes?: Address<TAccountSlotHashes>;
|
|
31
29
|
instructionsSysvar?: Address<TAccountInstructionsSysvar>;
|
|
32
30
|
secp256r1VerifyArgs: VerifyAssetInstructionDataArgs["secp256r1VerifyArgs"];
|
|
33
|
-
|
|
31
|
+
messageHash: VerifyAssetInstructionDataArgs["messageHash"];
|
|
34
32
|
expectedRpId: VerifyAssetInstructionDataArgs["expectedRpId"];
|
|
35
33
|
expectedOrigin: VerifyAssetInstructionDataArgs["expectedOrigin"];
|
|
36
34
|
};
|
|
37
|
-
export declare function getVerifyAssetInstruction<TAccountAsset extends string,
|
|
35
|
+
export declare function getVerifyAssetInstruction<TAccountAsset extends string, TAccountInstructionsSysvar extends string, TProgramAddress extends Address = typeof PHYGITAL_TOKEN_PROGRAM_ADDRESS>(input: VerifyAssetInput<TAccountAsset, TAccountInstructionsSysvar>, config?: {
|
|
38
36
|
programAddress?: TProgramAddress;
|
|
39
|
-
}): VerifyAssetInstruction<TProgramAddress, TAccountAsset,
|
|
37
|
+
}): VerifyAssetInstruction<TProgramAddress, TAccountAsset, TAccountInstructionsSysvar>;
|
|
40
38
|
export type ParsedVerifyAssetInstruction<TProgram extends string = typeof PHYGITAL_TOKEN_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
|
|
41
39
|
programAddress: Address<TProgram>;
|
|
42
40
|
accounts: {
|
|
43
41
|
asset: TAccountMetas[0];
|
|
44
|
-
|
|
45
|
-
instructionsSysvar: TAccountMetas[2];
|
|
42
|
+
instructionsSysvar: TAccountMetas[1];
|
|
46
43
|
};
|
|
47
44
|
data: VerifyAssetInstructionData;
|
|
48
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAsset.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/verifyAsset.ts"],"names":[],"mappings":"AAQA,OAAO,EAmBL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,0BAA0B,EAAE,kBAEvC,CAAC;AAEH,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,MAAM,MAAM,sBAAsB,CAChC,QAAQ,SAAS,MAAM,GAAG,OAAO,8BAA8B,EAC/D,aAAa,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAC3D,
|
|
1
|
+
{"version":3,"file":"verifyAsset.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/verifyAsset.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export function getVerifyAssetInstructionDataEncoder() {
|
|
|
12
12
|
return transformEncoder(getStructEncoder([
|
|
13
13
|
["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
|
|
14
14
|
["secp256r1VerifyArgs", getSecp256r1VerifyArgsEncoder()],
|
|
15
|
-
["
|
|
15
|
+
["messageHash", fixEncoderSize(getBytesEncoder(), 32)],
|
|
16
16
|
[
|
|
17
17
|
"expectedRpId",
|
|
18
18
|
getOptionEncoder(addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())),
|
|
@@ -27,7 +27,7 @@ export function getVerifyAssetInstructionDataDecoder() {
|
|
|
27
27
|
return getStructDecoder([
|
|
28
28
|
["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
|
|
29
29
|
["secp256r1VerifyArgs", getSecp256r1VerifyArgsDecoder()],
|
|
30
|
-
["
|
|
30
|
+
["messageHash", fixDecoderSize(getBytesDecoder(), 32)],
|
|
31
31
|
[
|
|
32
32
|
"expectedRpId",
|
|
33
33
|
getOptionDecoder(addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())),
|
|
@@ -45,7 +45,6 @@ export function getVerifyAssetInstruction(input, config) {
|
|
|
45
45
|
const programAddress = config?.programAddress ?? PHYGITAL_TOKEN_PROGRAM_ADDRESS;
|
|
46
46
|
const originalAccounts = {
|
|
47
47
|
asset: { value: input.asset ?? null, isWritable: true },
|
|
48
|
-
slotHashes: { value: input.slotHashes ?? null, isWritable: false },
|
|
49
48
|
instructionsSysvar: {
|
|
50
49
|
value: input.instructionsSysvar ?? null,
|
|
51
50
|
isWritable: false,
|
|
@@ -53,10 +52,6 @@ export function getVerifyAssetInstruction(input, config) {
|
|
|
53
52
|
};
|
|
54
53
|
const accounts = originalAccounts;
|
|
55
54
|
const args = { ...input };
|
|
56
|
-
if (!accounts.slotHashes.value) {
|
|
57
|
-
accounts.slotHashes.value =
|
|
58
|
-
"SysvarS1otHashes111111111111111111111111111";
|
|
59
|
-
}
|
|
60
55
|
if (!accounts.instructionsSysvar.value) {
|
|
61
56
|
accounts.instructionsSysvar.value =
|
|
62
57
|
"Sysvar1nstructions1111111111111111111111111";
|
|
@@ -65,7 +60,6 @@ export function getVerifyAssetInstruction(input, config) {
|
|
|
65
60
|
return Object.freeze({
|
|
66
61
|
accounts: [
|
|
67
62
|
getAccountMeta("asset", accounts.asset),
|
|
68
|
-
getAccountMeta("slotHashes", accounts.slotHashes),
|
|
69
63
|
getAccountMeta("instructionsSysvar", accounts.instructionsSysvar),
|
|
70
64
|
],
|
|
71
65
|
data: getVerifyAssetInstructionDataEncoder().encode(args),
|
|
@@ -73,10 +67,10 @@ export function getVerifyAssetInstruction(input, config) {
|
|
|
73
67
|
});
|
|
74
68
|
}
|
|
75
69
|
export function parseVerifyAssetInstruction(instruction) {
|
|
76
|
-
if (instruction.accounts.length <
|
|
70
|
+
if (instruction.accounts.length < 2) {
|
|
77
71
|
throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {
|
|
78
72
|
actualAccountMetas: instruction.accounts.length,
|
|
79
|
-
expectedAccountMetas:
|
|
73
|
+
expectedAccountMetas: 2,
|
|
80
74
|
});
|
|
81
75
|
}
|
|
82
76
|
let accountIndex = 0;
|
|
@@ -87,11 +81,7 @@ export function parseVerifyAssetInstruction(instruction) {
|
|
|
87
81
|
};
|
|
88
82
|
return {
|
|
89
83
|
programAddress: instruction.programAddress,
|
|
90
|
-
accounts: {
|
|
91
|
-
asset: getNextAccount(),
|
|
92
|
-
slotHashes: getNextAccount(),
|
|
93
|
-
instructionsSysvar: getNextAccount(),
|
|
94
|
-
},
|
|
84
|
+
accounts: { asset: getNextAccount(), instructionsSysvar: getNextAccount() },
|
|
95
85
|
data: getVerifyAssetInstructionDataDecoder().decode(instruction.data),
|
|
96
86
|
};
|
|
97
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAsset.js","sourceRoot":"","sources":["../../../src/generated/instructions/verifyAsset.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,yDAAyD,EACzD,WAAW,EACX,gBAAgB,GAcjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,0BAA0B,GAAuB,IAAI,UAAU,CAAC;IAC3E,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;CACrC,CAAC,CAAC;AAEH,MAAM,UAAU,gCAAgC;IAC9C,OAAO,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAChD,0BAA0B,CAC3B,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"verifyAsset.js","sourceRoot":"","sources":["../../../src/generated/instructions/verifyAsset.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,11 @@ import { type Codec, type Decoder, type Encoder, type ReadonlyUint8Array } from
|
|
|
2
2
|
export type Secp256r1VerifyArgs = {
|
|
3
3
|
verifyArgsRelativeIndex: bigint;
|
|
4
4
|
signedMessageIndex: number;
|
|
5
|
-
slotNumber: bigint;
|
|
6
5
|
clientDataJson: ReadonlyUint8Array;
|
|
7
6
|
};
|
|
8
7
|
export type Secp256r1VerifyArgsArgs = {
|
|
9
8
|
verifyArgsRelativeIndex: number | bigint;
|
|
10
9
|
signedMessageIndex: number;
|
|
11
|
-
slotNumber: number | bigint;
|
|
12
10
|
clientDataJson: ReadonlyUint8Array;
|
|
13
11
|
};
|
|
14
12
|
export declare function getSecp256r1VerifyArgsEncoder(): Encoder<Secp256r1VerifyArgsArgs>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256r1VerifyArgs.d.ts","sourceRoot":"","sources":["../../../src/generated/types/secp256r1VerifyArgs.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"secp256r1VerifyArgs.d.ts","sourceRoot":"","sources":["../../../src/generated/types/secp256r1VerifyArgs.ts"],"names":[],"mappings":"AAQA,OAAO,EAcL,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,uBAAuB,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,wBAAgB,6BAA6B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAShF;AAED,wBAAgB,6BAA6B,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAS5E;AAED,wBAAgB,2BAA2B,IAAI,KAAK,CAClD,uBAAuB,EACvB,mBAAmB,CACpB,CAKA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { addDecoderSizePrefix, addEncoderSizePrefix, combineCodec, getBytesDecoder, getBytesEncoder, getI64Decoder, getI64Encoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder,
|
|
1
|
+
import { addDecoderSizePrefix, addEncoderSizePrefix, combineCodec, getBytesDecoder, getBytesEncoder, getI64Decoder, getI64Encoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU8Decoder, getU8Encoder, } from "@solana/kit";
|
|
2
2
|
export function getSecp256r1VerifyArgsEncoder() {
|
|
3
3
|
return getStructEncoder([
|
|
4
4
|
["verifyArgsRelativeIndex", getI64Encoder()],
|
|
5
5
|
["signedMessageIndex", getU8Encoder()],
|
|
6
|
-
["slotNumber", getU64Encoder()],
|
|
7
6
|
[
|
|
8
7
|
"clientDataJson",
|
|
9
8
|
addEncoderSizePrefix(getBytesEncoder(), getU32Encoder()),
|
|
@@ -14,7 +13,6 @@ export function getSecp256r1VerifyArgsDecoder() {
|
|
|
14
13
|
return getStructDecoder([
|
|
15
14
|
["verifyArgsRelativeIndex", getI64Decoder()],
|
|
16
15
|
["signedMessageIndex", getU8Decoder()],
|
|
17
|
-
["slotNumber", getU64Decoder()],
|
|
18
16
|
[
|
|
19
17
|
"clientDataJson",
|
|
20
18
|
addDecoderSizePrefix(getBytesDecoder(), getU32Decoder()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256r1VerifyArgs.js","sourceRoot":"","sources":["../../../src/generated/types/secp256r1VerifyArgs.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"secp256r1VerifyArgs.js","sourceRoot":"","sources":["../../../src/generated/types/secp256r1VerifyArgs.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,GAKb,MAAM,aAAa,CAAC;AAcrB,MAAM,UAAU,6BAA6B;IAC3C,OAAO,gBAAgB,CAAC;QACtB,CAAC,yBAAyB,EAAE,aAAa,EAAE,CAAC;QAC5C,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;QACtC;YACE,gBAAgB;YAChB,oBAAoB,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC;SACzD;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,gBAAgB,CAAC;QACtB,CAAC,yBAAyB,EAAE,aAAa,EAAE,CAAC;QAC5C,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;QACtC;YACE,gBAAgB;YAChB,oBAAoB,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC;SACzD;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B;IAIzC,OAAO,YAAY,CACjB,6BAA6B,EAAE,EAC/B,6BAA6B,EAAE,CAChC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { beginTransfer, completeTransfer, authenticatePasskeyForTransfer, type TransferSession, } from "./instructions/transfer.js";
|
|
2
2
|
export { beginVerifyAsset, completeVerifyAsset, authenticatePasskeyForVerifyAsset, buildVerifyAssetArgs, type VerifyAssetSession, } from "./instructions/verifyAsset.js";
|
|
3
3
|
export { buildInitializeInstruction, parseSecp256r1Pubkey, parseIdentifier, type InitializeParams, } from "./instructions/initialize.js";
|
|
4
|
-
export {
|
|
4
|
+
export { fetchAssetByIdentifier, fetchAllAssetsFromOwner, } from "./utils/metadata.js";
|
|
5
5
|
export { startAuthentication, verifyResponse, type VerifyResponseResult, type VerifyResponseOptions, } from "./utils/verify.js";
|
|
6
6
|
export { findAssetPda } from "./utils/pdas/index.js";
|
|
7
7
|
export * from "./generated/index.js";
|
|
8
8
|
export { getSecp256r1VerifyInstruction, type Secp256r1VerifyEntry, type Secp256r1VerifyInstruction, } from "./instructions/internal/secp256r1Verify.js";
|
|
9
|
-
export { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildTransferChallenge, buildVerifyAssetChallenge, buildVerifyInputFromWebAuthn, type WebAuthnSecp256r1Verification, } from "./utils/passkey/secp256r1.js";
|
|
9
|
+
export { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildTransferChallenge, buildVerifyAssetChallenge, buildVerifyAssetChallengeFromMessage, buildVerifyInputFromWebAuthn, type WebAuthnSecp256r1Verification, } from "./utils/passkey/secp256r1.js";
|
|
10
10
|
//# 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,iCAAiC,EACjC,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,mDAAmD,EACnD,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,8BAA8B,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,iCAAiC,EACjC,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,mDAAmD,EACnD,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { beginTransfer, completeTransfer, authenticatePasskeyForTransfer, } from "./instructions/transfer.js";
|
|
2
2
|
export { beginVerifyAsset, completeVerifyAsset, authenticatePasskeyForVerifyAsset, buildVerifyAssetArgs, } from "./instructions/verifyAsset.js";
|
|
3
3
|
export { buildInitializeInstruction, parseSecp256r1Pubkey, parseIdentifier, } from "./instructions/initialize.js";
|
|
4
|
-
export {
|
|
4
|
+
export { fetchAssetByIdentifier, fetchAllAssetsFromOwner, } from "./utils/metadata.js";
|
|
5
5
|
export { startAuthentication, verifyResponse, } from "./utils/verify.js";
|
|
6
6
|
export { findAssetPda } from "./utils/pdas/index.js";
|
|
7
7
|
export * from "./generated/index.js";
|
|
8
8
|
export { getSecp256r1VerifyInstruction, } from "./instructions/internal/secp256r1Verify.js";
|
|
9
|
-
export { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildTransferChallenge, buildVerifyAssetChallenge, buildVerifyInputFromWebAuthn, } from "./utils/passkey/secp256r1.js";
|
|
9
|
+
export { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildTransferChallenge, buildVerifyAssetChallenge, buildVerifyAssetChallengeFromMessage, buildVerifyInputFromWebAuthn, } from "./utils/passkey/secp256r1.js";
|
|
10
10
|
//# 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,iCAAiC,EACjC,oBAAoB,GAErB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,GAEhB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,6BAA6B,GAG9B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,mDAAmD,EACnD,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,GAE7B,MAAM,8BAA8B,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,iCAAiC,EACjC,oBAAoB,GAErB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,GAEhB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,6BAA6B,GAG9B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,mDAAmD,EACnD,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,4BAA4B,GAE7B,MAAM,8BAA8B,CAAC"}
|
|
@@ -24,7 +24,7 @@ export function parseSecp256r1Pubkey(input) {
|
|
|
24
24
|
}
|
|
25
25
|
export const parseIdentifier = parseSecp256r1Pubkey;
|
|
26
26
|
export async function buildInitializeInstruction(input) {
|
|
27
|
-
const asset = await findAssetPda(input.
|
|
27
|
+
const asset = await findAssetPda(input.secp256r1Pubkey);
|
|
28
28
|
const instruction = getInitializeInstruction({
|
|
29
29
|
authority: input.authority,
|
|
30
30
|
asset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/instructions/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAGnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAOtD,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAGD,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAepD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAuB;IAEvB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/instructions/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAGnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAOtD,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAGD,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAepD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAuB;IAEvB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,wBAAwB,CAAC;QAC3C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -30,10 +30,10 @@ export async function completeTransfer(session, response, recipient, existingSec
|
|
|
30
30
|
const executeTransfer = getExecuteTransferInstruction({
|
|
31
31
|
recipient,
|
|
32
32
|
asset: session.asset,
|
|
33
|
+
slotNumber: session.slotNumber,
|
|
33
34
|
secp256r1VerifyArgs: {
|
|
34
35
|
verifyArgsRelativeIndex: -1,
|
|
35
36
|
signedMessageIndex,
|
|
36
|
-
slotNumber: session.slotNumber,
|
|
37
37
|
clientDataJson,
|
|
38
38
|
},
|
|
39
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/instructions/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,GAE1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mDAAmD,EACnD,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAgBvD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAGnC;IACC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;QAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;QACR,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAwB;IAExB,OAAO,wBAAwB,CAC7B,yBAAyB,CACvB,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAC3C,CACF,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB,EACxB,QAAoC,EACpC,SAAkB,EAClB,6BAAsD;IAEtD,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAC3D,MAAM,mDAAmD,CAAC;QACxD,QAAQ;QACR,kBAAkB,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,6BAA6B;KAC9B,CAAC,CAAC;IAEL,MAAM,eAAe,GAAG,6BAA6B,CAAC;QACpD,SAAS;QACT,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,mBAAmB,EAAE;YACnB,uBAAuB,EAAE,CAAC,CAAC;YAC3B,kBAAkB;YAClB,
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/instructions/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,GAE1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mDAAmD,EACnD,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAgBvD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAGnC;IACC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;QAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;QACR,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAwB;IAExB,OAAO,wBAAwB,CAC7B,yBAAyB,CACvB,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAC3C,CACF,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB,EACxB,QAAoC,EACpC,SAAkB,EAClB,6BAAsD;IAEtD,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAC3D,MAAM,mDAAmD,CAAC;QACxD,QAAQ;QACR,kBAAkB,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,6BAA6B;KAC9B,CAAC,CAAC;IAEL,MAAM,eAAe,GAAG,6BAA6B,CAAC;QACpD,SAAS;QACT,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,mBAAmB,EAAE;YACnB,uBAAuB,EAAE,CAAC,CAAC;YAC3B,kBAAkB;YAClB,cAAc;SACf;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
import { type AuthenticationResponseJSON } from "../utils/passkey/webauthn.js";
|
|
2
|
-
import type { Address, Instruction
|
|
2
|
+
import type { Address, Instruction } from "@solana/kit";
|
|
3
3
|
import { type Secp256r1VerifyEntry } from "../utils/passkey/secp256r1.js";
|
|
4
|
-
import { type Asset } from "../generated/index.js";
|
|
5
4
|
export type VerifyAssetSession = {
|
|
6
|
-
|
|
7
|
-
asset: Address;
|
|
8
|
-
slotHash: Uint8Array;
|
|
9
|
-
slotNumber: bigint;
|
|
5
|
+
messageHash: Uint8Array;
|
|
10
6
|
challenge: Uint8Array;
|
|
11
|
-
message: Uint8Array;
|
|
12
7
|
expectedRpId?: string;
|
|
13
8
|
expectedOrigin?: string;
|
|
14
9
|
};
|
|
15
10
|
export declare function beginVerifyAsset(input: {
|
|
16
|
-
|
|
17
|
-
asset: Address;
|
|
18
|
-
message: Uint8Array;
|
|
11
|
+
messageHash: Uint8Array;
|
|
19
12
|
expectedRpId?: string;
|
|
20
13
|
expectedOrigin?: string;
|
|
21
14
|
}): Promise<VerifyAssetSession>;
|
|
22
15
|
export declare function authenticatePasskeyForVerifyAsset(session: VerifyAssetSession): Promise<AuthenticationResponseJSON>;
|
|
23
|
-
export declare function buildVerifyAssetArgs(
|
|
24
|
-
asset: Asset;
|
|
16
|
+
export declare function buildVerifyAssetArgs(response: AuthenticationResponseJSON, existingSecp256r1VerifyInputs?: Secp256r1VerifyEntry[]): Promise<{
|
|
25
17
|
assetPda: Address;
|
|
26
18
|
secp256r1Verify: Instruction;
|
|
27
19
|
signedMessageIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAsset.d.ts","sourceRoot":"","sources":["../../src/instructions/verifyAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAIhC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"verifyAsset.d.ts","sourceRoot":"","sources":["../../src/instructions/verifyAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAIhC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,aAAa,CAAC;AAC3E,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAKvC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAQF,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW9B;AAMD,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,0BAA0B,CAAC,CAIrC;AAMD,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,0BAA0B,EACpC,6BAA6B,CAAC,EAAE,oBAAoB,EAAE,GACrD,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,WAAW,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,UAAU,CAAC;CAC5B,CAAC,CAeD;AAOD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,0BAA0B,EACpC,6BAA6B,CAAC,EAAE,oBAAoB,EAAE,GACrD,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBxB"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import { authenticateWithWebauthn, bufferToBase64URLString, nfcWebAuthnRequestOptions, } from "../utils/passkey/webauthn.js";
|
|
2
2
|
import { buildSecp256r1VerifyInstructionFromWebAuthnResponse, buildVerifyAssetChallenge, } from "../utils/passkey/secp256r1.js";
|
|
3
|
-
import {
|
|
4
|
-
import { fetchAsset, getVerifyAssetInstruction, } from "../generated/index.js";
|
|
3
|
+
import { getVerifyAssetInstruction } from "../generated/index.js";
|
|
5
4
|
import { parseSecp256r1Pubkey } from "./initialize.js";
|
|
5
|
+
import { findAssetPda } from "../utils/pdas/asset.js";
|
|
6
6
|
export async function beginVerifyAsset(input) {
|
|
7
|
-
const { slotHash, slotNumber } = await getLatestSlotHash(input.rpc);
|
|
8
7
|
const challenge = await buildVerifyAssetChallenge({
|
|
9
|
-
|
|
10
|
-
slotHash,
|
|
8
|
+
messageHash: input.messageHash,
|
|
11
9
|
});
|
|
12
10
|
return {
|
|
13
|
-
|
|
14
|
-
asset: input.asset,
|
|
15
|
-
slotHash,
|
|
16
|
-
slotNumber,
|
|
11
|
+
messageHash: input.messageHash,
|
|
17
12
|
challenge,
|
|
18
|
-
message: input.message,
|
|
19
13
|
expectedRpId: input.expectedRpId,
|
|
20
14
|
expectedOrigin: input.expectedOrigin,
|
|
21
15
|
};
|
|
@@ -23,32 +17,31 @@ export async function beginVerifyAsset(input) {
|
|
|
23
17
|
export async function authenticatePasskeyForVerifyAsset(session) {
|
|
24
18
|
return authenticateWithWebauthn(nfcWebAuthnRequestOptions(bufferToBase64URLString(session.challenge)));
|
|
25
19
|
}
|
|
26
|
-
export async function buildVerifyAssetArgs(
|
|
27
|
-
const
|
|
20
|
+
export async function buildVerifyAssetArgs(response, existingSecp256r1VerifyInputs) {
|
|
21
|
+
const secp256r1PublicKey = parseSecp256r1Pubkey(response.id);
|
|
22
|
+
const assetPda = await findAssetPda(secp256r1PublicKey);
|
|
28
23
|
const { secp256r1Verify, signedMessageIndex, clientDataJson } = await buildSecp256r1VerifyInstructionFromWebAuthnResponse({
|
|
29
|
-
secp256r1PublicKey
|
|
24
|
+
secp256r1PublicKey,
|
|
30
25
|
response,
|
|
31
26
|
existingSecp256r1VerifyInputs,
|
|
32
27
|
});
|
|
33
28
|
return {
|
|
34
|
-
|
|
35
|
-
assetPda: session.asset,
|
|
29
|
+
assetPda,
|
|
36
30
|
secp256r1Verify,
|
|
37
31
|
signedMessageIndex,
|
|
38
32
|
clientDataJson,
|
|
39
33
|
};
|
|
40
34
|
}
|
|
41
35
|
export async function completeVerifyAsset(session, response, existingSecp256r1VerifyInputs) {
|
|
42
|
-
const { assetPda, secp256r1Verify, signedMessageIndex, clientDataJson } = await buildVerifyAssetArgs(
|
|
36
|
+
const { assetPda, secp256r1Verify, signedMessageIndex, clientDataJson } = await buildVerifyAssetArgs(response, existingSecp256r1VerifyInputs);
|
|
43
37
|
const verifyAssetInstruction = getVerifyAssetInstruction({
|
|
44
38
|
asset: assetPda,
|
|
45
39
|
secp256r1VerifyArgs: {
|
|
46
40
|
verifyArgsRelativeIndex: -1,
|
|
47
41
|
signedMessageIndex,
|
|
48
|
-
slotNumber: session.slotNumber,
|
|
49
42
|
clientDataJson,
|
|
50
43
|
},
|
|
51
|
-
|
|
44
|
+
messageHash: session.messageHash,
|
|
52
45
|
expectedRpId: session.expectedRpId ?? null,
|
|
53
46
|
expectedOrigin: session.expectedOrigin ?? null,
|
|
54
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAsset.js","sourceRoot":"","sources":["../../src/instructions/verifyAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,mDAAmD,EACnD,yBAAyB,GAE1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"verifyAsset.js","sourceRoot":"","sources":["../../src/instructions/verifyAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,mDAAmD,EACnD,yBAAyB,GAE1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAiBtD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAItC;IACC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;QAChD,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS;QACT,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,OAA2B;IAE3B,OAAO,wBAAwB,CAC7B,yBAAyB,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAoC,EACpC,6BAAsD;IAOtD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAC3D,MAAM,mDAAmD,CAAC;QACxD,kBAAkB;QAClB,QAAQ;QACR,6BAA6B;KAC9B,CAAC,CAAC;IACL,OAAO;QACL,QAAQ;QACR,eAAe;QACf,kBAAkB;QAClB,cAAc;KACf,CAAC;AACJ,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA2B,EAC3B,QAAoC,EACpC,6BAAsD;IAEtD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,GACrE,MAAM,oBAAoB,CACxB,QAAQ,EACR,6BAA6B,CAC9B,CAAC;IAEJ,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;QACvD,KAAK,EAAE,QAAQ;QACf,mBAAmB,EAAE;YACnB,uBAAuB,EAAE,CAAC,CAAC;YAC3B,kBAAkB;YAClB,cAAc;SACf;QACD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;KAC/C,CAAC,CAAC;IAEH,OAAO,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/utils/consts.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export declare const SECP256R1_PROGRAM_ADDRESS: import("@solana/kit").Address<"Secp256r1SigVerify1111111111111111111111111">;
|
|
2
2
|
export declare const SLOT_HASHES_SYSVAR_ADDRESS: import("@solana/kit").Address<"SysvarS1otHashes111111111111111111111111111">;
|
|
3
3
|
export declare const TRANSFER_ACTION_BYTES: Uint8Array<ArrayBuffer>;
|
|
4
|
-
export declare const VERIFY_ASSET_ACTION_BYTES: Uint8Array<ArrayBuffer>;
|
|
5
4
|
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/utils/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,8EAErC,CAAC;AAEF,eAAO,MAAM,0BAA0B,8EAEtC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAAuC,CAAC
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/utils/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,8EAErC,CAAC;AAEF,eAAO,MAAM,0BAA0B,8EAEtC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAAuC,CAAC"}
|
package/dist/utils/consts.js
CHANGED
|
@@ -2,5 +2,4 @@ import { address } from "@solana/kit";
|
|
|
2
2
|
export const SECP256R1_PROGRAM_ADDRESS = address("Secp256r1SigVerify1111111111111111111111111");
|
|
3
3
|
export const SLOT_HASHES_SYSVAR_ADDRESS = address("SysvarS1otHashes111111111111111111111111111");
|
|
4
4
|
export const TRANSFER_ACTION_BYTES = new TextEncoder().encode("transfer");
|
|
5
|
-
export const VERIFY_ASSET_ACTION_BYTES = new TextEncoder().encode("verify_asset");
|
|
6
5
|
//# sourceMappingURL=consts.js.map
|
package/dist/utils/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/utils/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAC9C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAC/C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/utils/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAC9C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAC/C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"}
|
package/dist/utils/metadata.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Address, type Rpc, type SolanaRpcApi } from "@solana/kit";
|
|
2
2
|
import { type Asset, type Secp256r1Pubkey } from "../generated/index.js";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function fetchAssetByIdentifier(rpc: Rpc<SolanaRpcApi>, identifier: string | Secp256r1Pubkey): Promise<Asset | null>;
|
|
4
4
|
export declare function fetchAllAssetsFromOwner(owner: Address, rpc: Rpc<SolanaRpcApi>): Promise<Asset[]>;
|
|
5
5
|
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EAEZ,KAAK,GAAG,EACR,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EAEZ,KAAK,GAAG,EACR,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAc/B,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,UAAU,EAAE,MAAM,GAAG,eAAe,GACnC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CA+BvB;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,GACrB,OAAO,CAAC,KAAK,EAAE,CAAC,CA0BlB"}
|
package/dist/utils/metadata.js
CHANGED
|
@@ -3,11 +3,11 @@ import { getAssetDecoder, PHYGITAL_TOKEN_PROGRAM_ADDRESS, } from "../generated/i
|
|
|
3
3
|
import { parseSecp256r1Pubkey } from "../instructions/initialize.js";
|
|
4
4
|
const ASSET_ACCOUNT_DATA_SIZE = 116;
|
|
5
5
|
const ASSET_OWNER_OFFSET = 9;
|
|
6
|
-
const
|
|
7
|
-
export async function
|
|
8
|
-
const
|
|
9
|
-
? parseSecp256r1Pubkey(
|
|
10
|
-
:
|
|
6
|
+
const ASSET_IDENTIFIER_OFFSET = 83;
|
|
7
|
+
export async function fetchAssetByIdentifier(rpc, identifier) {
|
|
8
|
+
const parsed = typeof identifier === "string"
|
|
9
|
+
? parseSecp256r1Pubkey(identifier)
|
|
10
|
+
: identifier;
|
|
11
11
|
const data = await rpc
|
|
12
12
|
.getProgramAccounts(PHYGITAL_TOKEN_PROGRAM_ADDRESS, {
|
|
13
13
|
encoding: "base64",
|
|
@@ -16,17 +16,17 @@ export async function fetchAssetsByPublicKey(rpc, secp256r1PublicKey) {
|
|
|
16
16
|
{
|
|
17
17
|
memcmp: {
|
|
18
18
|
encoding: "base64",
|
|
19
|
-
offset: BigInt(
|
|
20
|
-
bytes: getBase64Decoder().decode(
|
|
19
|
+
offset: BigInt(ASSET_IDENTIFIER_OFFSET),
|
|
20
|
+
bytes: getBase64Decoder().decode(parsed[0]),
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
],
|
|
24
24
|
})
|
|
25
25
|
.send();
|
|
26
26
|
if (!data.length) {
|
|
27
|
-
return
|
|
27
|
+
return null;
|
|
28
28
|
}
|
|
29
|
-
return
|
|
29
|
+
return getAssetDecoder().decode(getBase64Encoder().encode(data[0].account.data[0]));
|
|
30
30
|
}
|
|
31
31
|
export async function fetchAllAssetsFromOwner(owner, rpc) {
|
|
32
32
|
const data = await rpc
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,8BAA8B,GAG/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,uBAAuB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,8BAA8B,GAG/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAOnC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAsB,EACtB,UAAoC;IAEpC,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,QAAQ;QAC5B,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAClC,CAAC,CAAC,UAAU,CAAC;IAEjB,MAAM,IAAI,GAAG,MAAM,GAAG;SACnB,kBAAkB,CAAC,8BAA8B,EAAE;QAClD,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,EAAE,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAAE;YAC7C;gBACE,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAiB;oBAC3B,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC;oBACvC,KAAK,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAC9B,MAAM,CAAC,CAAC,CAAC,CACY;iBACxB;aACF;SACF;KACF,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,eAAe,EAAE,CAAC,MAAM,CAC7B,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,GAAG;SACnB,kBAAkB,CAAC,8BAA8B,EAAE;QAClD,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,EAAE,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAAE;YAC7C;gBACE,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAiB;oBAC3B,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC;oBAClC,KAAK,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAC9B,iBAAiB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CACZ;iBACxB;aACF;SACF;KACF,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,eAAe,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC"}
|
|
@@ -13,8 +13,10 @@ export declare function buildTransferChallenge(input: {
|
|
|
13
13
|
slotHash: Uint8Array;
|
|
14
14
|
}): Promise<Uint8Array>;
|
|
15
15
|
export declare function buildVerifyAssetChallenge(input: {
|
|
16
|
+
messageHash: Uint8Array;
|
|
17
|
+
}): Promise<Uint8Array>;
|
|
18
|
+
export declare function buildVerifyAssetChallengeFromMessage(input: {
|
|
16
19
|
message: Uint8Array;
|
|
17
|
-
slotHash: Uint8Array;
|
|
18
20
|
}): Promise<Uint8Array>;
|
|
19
21
|
export type WebAuthnSecp256r1Verification = {
|
|
20
22
|
signedMessageIndex: number;
|
|
@@ -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,eAAe,CAAC;AAChE,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,yBAAyB,
|
|
1
|
+
{"version":3,"file":"secp256r1.d.ts","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,yBAAyB,EAE1B,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAiBrC,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,kBAAkB,EAAE,eAAe,CAAC;IACpC,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,CAQtB;AAGD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,WAAW,EAAE,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,UAAU,CAAC,CAKtB;AAGD,wBAAsB,oCAAoC,CAAC,KAAK,EAAE;IAChE,OAAO,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtB;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,kBAAkB,EAAE,eAAe,CAAC;IACpC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,6BAA6B,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACxD,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAazC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getAddressEncoder } from "@solana/kit";
|
|
2
2
|
import { getSecp256r1VerifyInstruction, } from "../../instructions/internal/secp256r1Verify.js";
|
|
3
|
-
import { SECP256R1_PROGRAM_ADDRESS, TRANSFER_ACTION_BYTES,
|
|
3
|
+
import { SECP256R1_PROGRAM_ADDRESS, TRANSFER_ACTION_BYTES, } from "../consts.js";
|
|
4
4
|
import { base64URLStringToBuffer, convertSignatureDERtoRS, getClientDataJsonBytes, getSecp256r1Message, } from "./internal.js";
|
|
5
5
|
import { sha256 } from "@noble/hashes/sha2.js";
|
|
6
6
|
function concatBytes(...parts) {
|
|
@@ -26,12 +26,16 @@ export function buildVerifyInputFromWebAuthn(input) {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
export async function buildTransferChallenge(input) {
|
|
29
|
-
|
|
30
|
-
return sha256(concatBytes(TRANSFER_ACTION_BYTES, messageHash, new Uint8Array(input.slotHash)));
|
|
29
|
+
return sha256(concatBytes(TRANSFER_ACTION_BYTES, encodeAddress(input.asset), new Uint8Array(input.slotHash)));
|
|
31
30
|
}
|
|
32
31
|
export async function buildVerifyAssetChallenge(input) {
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
if (input.messageHash.length !== 32) {
|
|
33
|
+
throw new Error("messageHash must be 32 bytes");
|
|
34
|
+
}
|
|
35
|
+
return new Uint8Array(input.messageHash);
|
|
36
|
+
}
|
|
37
|
+
export async function buildVerifyAssetChallengeFromMessage(input) {
|
|
38
|
+
return buildVerifyAssetChallenge({ messageHash: sha256(input.message) });
|
|
35
39
|
}
|
|
36
40
|
export async function buildSecp256r1VerifyInstructionFromWebAuthnResponse(input) {
|
|
37
41
|
const existing = input.existingSecp256r1VerifyInputs;
|
|
@@ -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,EACL,6BAA6B,GAE9B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"secp256r1.js","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type Address } from "@solana/kit";
|
|
2
2
|
import { type Secp256r1Pubkey } from "../../generated/index.js";
|
|
3
|
-
export declare function findAssetPda(
|
|
3
|
+
export declare function findAssetPda(secp256r1Pubkey: Secp256r1Pubkey): Promise<Address>;
|
|
4
4
|
//# sourceMappingURL=asset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/utils/pdas/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAQlC,wBAAsB,YAAY,CAChC,
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/utils/pdas/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAQlC,wBAAsB,YAAY,CAChC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
package/dist/utils/pdas/asset.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { getProgramDerivedAddress, getBytesEncoder, } from "@solana/kit";
|
|
2
2
|
import { PHYGITAL_TOKEN_PROGRAM_ADDRESS, } from "../../generated/index.js";
|
|
3
3
|
const ASSET_SEED = new TextEncoder().encode("asset");
|
|
4
|
-
export async function findAssetPda(
|
|
4
|
+
export async function findAssetPda(secp256r1Pubkey) {
|
|
5
5
|
const [asset] = await getProgramDerivedAddress({
|
|
6
6
|
programAddress: PHYGITAL_TOKEN_PROGRAM_ADDRESS,
|
|
7
7
|
seeds: [
|
|
8
8
|
getBytesEncoder().encode(ASSET_SEED),
|
|
9
|
-
getBytesEncoder().encode(
|
|
9
|
+
getBytesEncoder().encode(secp256r1Pubkey[0].slice(1)),
|
|
10
10
|
],
|
|
11
11
|
});
|
|
12
12
|
return asset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/utils/pdas/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAMrD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/utils/pdas/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAMrD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,eAAgC;IAEhC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,wBAAwB,CAAC;QAC7C,cAAc,EAAE,8BAA8B;QAC9C,KAAK,EAAE;YACL,eAAe,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;YACpC,eAAe,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtD;KACF,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/utils/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,0BAA0B,EAChC,MAAM,uBAAuB,CAAC;AAW/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,OAAO,CAAC;IAEpB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,GACrD,OAAO,CAAC,0BAA0B,CAAC,CAuBrC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/utils/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,0BAA0B,EAChC,MAAM,uBAAuB,CAAC;AAW/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,OAAO,CAAC;IAEpB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,GACrD,OAAO,CAAC,0BAA0B,CAAC,CAuBrC;AAiBD,wBAAgB,cAAc,CAAC,EAC7B,eAAe,EACf,QAAQ,GACT,EAAE,qBAAqB,GAAG,oBAAoB,CAwB9C"}
|
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,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAqBrE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,UAAsD;IAEtD,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,oBAAoB,CACzB;YACE,SAAS;YACT,IAAI,EAAE,EAAE;YACR,gBAAgB,EAAE,WAAW;YAC7B,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE;gBAChB;oBACE,EAAE,EAAE,EAAE;oBACN,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,CAAC,KAAK,CAAC;iBACpB;aACF;SACF,EACD,UAAU,CACX,CAAC;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC;AACxE,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/utils/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAqBrE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,UAAsD;IAEtD,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,oBAAoB,CACzB;YACE,SAAS;YACT,IAAI,EAAE,EAAE;YACR,gBAAgB,EAAE,WAAW;YAC7B,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE;gBAChB;oBACE,EAAE,EAAE,EAAE;oBACN,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,CAAC,KAAK,CAAC;iBACpB;aACF;SACF,EACD,UAAU,CACX,CAAC;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC;AACxE,CAAC;AAiBD,MAAM,UAAU,cAAc,CAAC,EAC7B,eAAe,EACf,QAAQ,GACc;IACtB,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE7E,IAAI,UAAU,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,SAAS,GAAG,uBAAuB,CACvC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CACrD,CAAC;IACF,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAC5B,SAAS,EACT,OAAO,EACP,IAAI,UAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;IAEF,OAAO;QACL,UAAU;QACV,kBAAkB,EAAE,QAAQ,CAAC,EAAE;KAChC,CAAC;AACJ,CAAC"}
|