@chipi-stack/chipi-react 13.10.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/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({ children, config }) {
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 chipiPasskey.getWalletEncryptKey();
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 chipiPasskey.getWalletEncryptKey();
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 chipiPasskey.getWalletEncryptKey();
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
  }