phygital-token-sdk 0.5.2 → 0.5.3
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/instructions/transfer.d.ts +1 -3
- package/dist/instructions/transfer.d.ts.map +1 -1
- package/dist/instructions/transfer.js +4 -5
- package/dist/instructions/transfer.js.map +1 -1
- package/dist/utils/passkey/secp256r1.d.ts +1 -1
- package/dist/utils/passkey/secp256r1.d.ts.map +1 -1
- package/dist/utils/passkey/secp256r1.js +2 -2
- package/dist/utils/passkey/secp256r1.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,12 +7,10 @@ export type TransferSession = {
|
|
|
7
7
|
slotHash: Uint8Array;
|
|
8
8
|
slotNumber: bigint;
|
|
9
9
|
challenge: Uint8Array;
|
|
10
|
-
recipient: TransactionSigner;
|
|
11
10
|
};
|
|
12
11
|
export declare function beginTransfer(input: {
|
|
13
12
|
rpc: Rpc<SolanaRpcApi>;
|
|
14
13
|
displayInfo: AssetDisplayInfo;
|
|
15
|
-
recipient: TransactionSigner;
|
|
16
14
|
}): Promise<TransferSession>;
|
|
17
15
|
export declare function authenticateDiscoverablePasskey(input: {
|
|
18
16
|
challenge: Uint8Array;
|
|
@@ -22,5 +20,5 @@ export declare function authenticatePasskey(input: {
|
|
|
22
20
|
credentialId: string;
|
|
23
21
|
}): Promise<AuthenticationResponseJSON>;
|
|
24
22
|
export declare function authenticateToken(session: TransferSession): Promise<AuthenticationResponseJSON>;
|
|
25
|
-
export declare function completeTransfer(session: TransferSession, response: AuthenticationResponseJSON): Promise<Instruction[]>;
|
|
23
|
+
export declare function completeTransfer(session: TransferSession, response: AuthenticationResponseJSON, recipient: TransactionSigner): Promise<Instruction[]>;
|
|
26
24
|
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/instructions/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAS7D,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/instructions/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAS7D,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAOF,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;CAC/B,GAAG,OAAO,CAAC,eAAe,CAAC,CAc3B;AAMD,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,SAAS,EAAE,UAAU,CAAC;CACvB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAiBtC;AAGD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAiBtC;AAGD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,0BAA0B,CAAC,CAKrC;AAGD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,0BAA0B,EACpC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,WAAW,EAAE,CAAC,CAoCxB"}
|
|
@@ -9,7 +9,7 @@ import { findAssociatedTokenAddress } from "../utils/associatedToken.js";
|
|
|
9
9
|
export async function beginTransfer(input) {
|
|
10
10
|
const { slotHash, slotNumber } = await getLatestSlotHash(input.rpc);
|
|
11
11
|
const challenge = await buildTransferChallenge({
|
|
12
|
-
|
|
12
|
+
asset: input.displayInfo.asset,
|
|
13
13
|
slotHash,
|
|
14
14
|
});
|
|
15
15
|
return {
|
|
@@ -18,7 +18,6 @@ export async function beginTransfer(input) {
|
|
|
18
18
|
slotHash,
|
|
19
19
|
slotNumber,
|
|
20
20
|
challenge,
|
|
21
|
-
recipient: input.recipient,
|
|
22
21
|
};
|
|
23
22
|
}
|
|
24
23
|
export async function authenticateDiscoverablePasskey(input) {
|
|
@@ -59,16 +58,16 @@ export async function authenticateToken(session) {
|
|
|
59
58
|
credentialId: session.displayInfo.credentialId,
|
|
60
59
|
});
|
|
61
60
|
}
|
|
62
|
-
export async function completeTransfer(session, response) {
|
|
61
|
+
export async function completeTransfer(session, response, recipient) {
|
|
63
62
|
const tokenProgram = TOKEN_2022_PROGRAM_ADDRESS;
|
|
64
63
|
const { secp256r1Verify, clientDataJson } = await buildSecp256r1VerifyInstructionFromWebAuthnResponse({
|
|
65
64
|
response,
|
|
66
65
|
publicKey: session.displayInfo.publicKey,
|
|
67
66
|
});
|
|
68
|
-
const recipientTokenAccount = await findAssociatedTokenAddress(
|
|
67
|
+
const recipientTokenAccount = await findAssociatedTokenAddress(recipient.address, session.displayInfo.mint, tokenProgram);
|
|
69
68
|
const senderTokenAccount = await findAssociatedTokenAddress(session.displayInfo.currentOwner, session.displayInfo.mint, tokenProgram);
|
|
70
69
|
const executeTransfer = await getExecuteTransferInstructionAsync({
|
|
71
|
-
recipient
|
|
70
|
+
recipient,
|
|
72
71
|
sender: session.displayInfo.currentOwner,
|
|
73
72
|
asset: session.displayInfo.asset,
|
|
74
73
|
mint: session.displayInfo.mint,
|
|
@@ -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,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,mDAAmD,EACnD,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/instructions/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { AuthenticationResponseJSON } from "@simplewebauthn/browser";
|
|
|
2
2
|
import { type Address, type Instruction } from "@solana/kit";
|
|
3
3
|
import { SECP256R1_PROGRAM_ADDRESS } from "../consts.js";
|
|
4
4
|
export declare function buildTransferChallenge(input: {
|
|
5
|
-
|
|
5
|
+
asset: Address;
|
|
6
6
|
slotHash: Uint8Array;
|
|
7
7
|
}): Promise<Uint8Array>;
|
|
8
8
|
export declare function buildVerifyChallenge(input: {
|
|
@@ -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;AAEhF,OAAO,EAAE,yBAAyB,EAA8C,MAAM,cAAc,CAAC;AAoDrG,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,
|
|
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;AAEhF,OAAO,EAAE,yBAAyB,EAA8C,MAAM,cAAc,CAAC;AAoDrG,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAYtB;AAGD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAUtB;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAKtB;AAGD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,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;CACtC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAOzC"}
|
|
@@ -30,11 +30,11 @@ function buildSecp256r1VerifyInputFromWebAuthn(input) {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
async function buildTransferMessageHash(input) {
|
|
33
|
-
return sha256(concatBytes(encodeAddress(input.
|
|
33
|
+
return sha256(concatBytes(encodeAddress(input.asset)));
|
|
34
34
|
}
|
|
35
35
|
export async function buildTransferChallenge(input) {
|
|
36
36
|
const messageHash = await buildTransferMessageHash({
|
|
37
|
-
|
|
37
|
+
asset: input.asset,
|
|
38
38
|
});
|
|
39
39
|
return sha256(concatBytes(TRANSFER_ACTION_BYTES, messageHash, new Uint8Array(input.slotHash)));
|
|
40
40
|
}
|
|
@@ -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,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/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,SAAS,qCAAqC,CAAC,KAG9C;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,WAAW,EAAE;YACX;gBACE,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;gBACnD,SAAS;gBACT,OAAO;aACR;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,KAEvC;IACC,OAAO,MAAM,CACX,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"secp256r1.js","sourceRoot":"","sources":["../../../src/utils/passkey/secp256r1.ts"],"names":[],"mappings":"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"}
|