@chipi-stack/chipi-react 13.11.0 → 13.12.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/hooks.js +26 -7
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.mjs +26 -7
- package/dist/hooks.mjs.map +1 -1
- package/dist/index.d.mts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +39 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +39 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -7,21 +7,28 @@ export { Chain, ChainToken } from '@chipi-stack/types';
|
|
|
7
7
|
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetSkuPurchase, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer } from './hooks.js';
|
|
8
8
|
import '@tanstack/react-query';
|
|
9
9
|
|
|
10
|
+
interface PasskeyAdapter {
|
|
11
|
+
getWalletEncryptKey: (input: {
|
|
12
|
+
externalUserId: string;
|
|
13
|
+
}) => Promise<string | null>;
|
|
14
|
+
}
|
|
10
15
|
interface ChipiContextValue {
|
|
11
16
|
chipiSDK: ChipiSDK;
|
|
12
17
|
config: ChipiSDKConfig;
|
|
18
|
+
passkeyAdapter: PasskeyAdapter;
|
|
13
19
|
}
|
|
14
20
|
interface ChipiProviderProps {
|
|
15
21
|
children: ReactNode;
|
|
16
22
|
config: ChipiSDKConfig;
|
|
23
|
+
passkeyAdapter?: PasskeyAdapter;
|
|
17
24
|
}
|
|
18
25
|
/**
|
|
19
26
|
* Provider component that wraps your app and provides Chipi SDK context with QueryClient
|
|
20
27
|
*/
|
|
21
|
-
declare function ChipiProvider({ children, config }: ChipiProviderProps): react_jsx_runtime.JSX.Element;
|
|
28
|
+
declare function ChipiProvider({ children, config, passkeyAdapter, }: ChipiProviderProps): react_jsx_runtime.JSX.Element;
|
|
22
29
|
/**
|
|
23
30
|
* Hook to access Chipi SDK context
|
|
24
31
|
*/
|
|
25
32
|
declare function useChipiContext(): ChipiContextValue;
|
|
26
33
|
|
|
27
|
-
export { ChipiProvider, useChipiContext };
|
|
34
|
+
export { ChipiProvider, type PasskeyAdapter, useChipiContext };
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var reactQuery = require('@tanstack/react-query');
|
|
5
5
|
var backend = require('@chipi-stack/backend');
|
|
6
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
7
6
|
var chipiPasskey = require('@chipi-stack/chipi-passkey');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
var shared = require('@chipi-stack/shared');
|
|
9
9
|
var types = require('@chipi-stack/types');
|
|
10
10
|
|
|
@@ -14,6 +14,10 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
14
14
|
|
|
15
15
|
// src/context/ChipiProvider.tsx
|
|
16
16
|
var ChipiContext = React.createContext(null);
|
|
17
|
+
var defaultPasskeyAdapter = {
|
|
18
|
+
// Web default: externalUserId is accepted for cross-platform API consistency
|
|
19
|
+
getWalletEncryptKey: async () => chipiPasskey.getWalletEncryptKey()
|
|
20
|
+
};
|
|
17
21
|
var createDefaultQueryClient = () => new reactQuery.QueryClient({
|
|
18
22
|
defaultOptions: {
|
|
19
23
|
queries: {
|
|
@@ -33,15 +37,21 @@ var createDefaultQueryClient = () => new reactQuery.QueryClient({
|
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
});
|
|
36
|
-
function ChipiProvider({
|
|
40
|
+
function ChipiProvider({
|
|
41
|
+
children,
|
|
42
|
+
config,
|
|
43
|
+
passkeyAdapter
|
|
44
|
+
}) {
|
|
37
45
|
const queryClient = React__default.default.useMemo(() => createDefaultQueryClient(), []);
|
|
38
46
|
const chipiSDK = React__default.default.useMemo(() => new backend.ChipiSDK(config), [config]);
|
|
47
|
+
const resolvedPasskeyAdapter = passkeyAdapter ?? defaultPasskeyAdapter;
|
|
39
48
|
const value = React__default.default.useMemo(
|
|
40
49
|
() => ({
|
|
41
50
|
chipiSDK,
|
|
42
|
-
config
|
|
51
|
+
config,
|
|
52
|
+
passkeyAdapter: resolvedPasskeyAdapter
|
|
43
53
|
}),
|
|
44
|
-
[chipiSDK, config]
|
|
54
|
+
[chipiSDK, config, resolvedPasskeyAdapter]
|
|
45
55
|
);
|
|
46
56
|
return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntime.jsx(ChipiContext.Provider, { value, children }) });
|
|
47
57
|
}
|
|
@@ -558,14 +568,21 @@ function useMigrateWalletToPasskey() {
|
|
|
558
568
|
};
|
|
559
569
|
}
|
|
560
570
|
function useTransfer() {
|
|
561
|
-
const { chipiSDK } = useChipiContext();
|
|
571
|
+
const { chipiSDK, passkeyAdapter } = useChipiContext();
|
|
562
572
|
const mutation = reactQuery.useMutation(
|
|
563
573
|
{
|
|
564
574
|
mutationFn: async (input) => {
|
|
565
575
|
let encryptKey = input.params.encryptKey;
|
|
566
576
|
if (input.params.usePasskey) {
|
|
577
|
+
if (!input.params.externalUserId) {
|
|
578
|
+
throw new Error(
|
|
579
|
+
"externalUserId is required when usePasskey is true"
|
|
580
|
+
);
|
|
581
|
+
}
|
|
567
582
|
try {
|
|
568
|
-
const key = await
|
|
583
|
+
const key = await passkeyAdapter.getWalletEncryptKey({
|
|
584
|
+
externalUserId: input.params.externalUserId
|
|
585
|
+
});
|
|
569
586
|
if (!key) {
|
|
570
587
|
throw new Error("Passkey authentication was cancelled");
|
|
571
588
|
}
|
|
@@ -602,13 +619,18 @@ function useTransfer() {
|
|
|
602
619
|
};
|
|
603
620
|
}
|
|
604
621
|
function useApprove() {
|
|
605
|
-
const { chipiSDK } = useChipiContext();
|
|
622
|
+
const { chipiSDK, passkeyAdapter } = useChipiContext();
|
|
606
623
|
const mutation = reactQuery.useMutation({
|
|
607
624
|
mutationFn: async (params) => {
|
|
608
625
|
let encryptKey = params.params.encryptKey;
|
|
609
626
|
if (params.params.usePasskey) {
|
|
627
|
+
if (!params.params.externalUserId) {
|
|
628
|
+
throw new Error("externalUserId is required when usePasskey is true");
|
|
629
|
+
}
|
|
610
630
|
try {
|
|
611
|
-
const key = await
|
|
631
|
+
const key = await passkeyAdapter.getWalletEncryptKey({
|
|
632
|
+
externalUserId: params.params.externalUserId
|
|
633
|
+
});
|
|
612
634
|
if (!key) {
|
|
613
635
|
throw new Error("Passkey authentication was cancelled");
|
|
614
636
|
}
|
|
@@ -842,13 +864,20 @@ function useGetSku(input) {
|
|
|
842
864
|
};
|
|
843
865
|
}
|
|
844
866
|
function useCallAnyContract() {
|
|
845
|
-
const { chipiSDK } = useChipiContext();
|
|
867
|
+
const { chipiSDK, passkeyAdapter } = useChipiContext();
|
|
846
868
|
const mutation = reactQuery.useMutation({
|
|
847
869
|
mutationFn: async (params) => {
|
|
848
870
|
let encryptKey = params.params.encryptKey;
|
|
849
871
|
if (params.params.usePasskey) {
|
|
872
|
+
if (!params.params.externalUserId) {
|
|
873
|
+
throw new Error(
|
|
874
|
+
"externalUserId is required when usePasskey is true"
|
|
875
|
+
);
|
|
876
|
+
}
|
|
850
877
|
try {
|
|
851
|
-
const key = await
|
|
878
|
+
const key = await passkeyAdapter.getWalletEncryptKey({
|
|
879
|
+
externalUserId: params.params.externalUserId
|
|
880
|
+
});
|
|
852
881
|
if (!key) {
|
|
853
882
|
throw new Error("Passkey authentication was cancelled");
|
|
854
883
|
}
|