@naculus/connect-appkit-vue 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -101,6 +101,7 @@ __export(index_exports, {
101
101
  useSolanaAccount: () => useSolanaAccount,
102
102
  useSolanaBalance: () => useSolanaBalance,
103
103
  useSolanaRoles: () => useSolanaRoles,
104
+ useSolanaSessionKey: () => useSolanaSessionKey,
104
105
  useSolanaTransaction: () => useSolanaTransaction,
105
106
  useSwitchChain: () => useSwitchChain,
106
107
  useTokenBalance: () => useTokenBalance,
@@ -2616,18 +2617,68 @@ function usePaymentFetch(pay) {
2616
2617
  };
2617
2618
  }
2618
2619
 
2619
- // src/name-lookup.ts
2620
+ // src/useSolanaSessionKey.ts
2620
2621
  var import_connect_appkit_core25 = require("@naculus/connect-appkit-core");
2621
2622
  var import_vue39 = require("vue");
2623
+ function useSolanaSessionKey(deps) {
2624
+ const guard = useActionGuard();
2625
+ const keys = (0, import_vue39.shallowRef)([]);
2626
+ let flow = null;
2627
+ let generation = 0;
2628
+ let disposed = false;
2629
+ (0, import_vue39.onScopeDispose)(() => {
2630
+ disposed = true;
2631
+ });
2632
+ const refresh = async () => {
2633
+ const own = ++generation;
2634
+ const next = flow ? await flow.list() : [];
2635
+ if (!disposed && own === generation) keys.value = next;
2636
+ };
2637
+ (0, import_vue39.watch)(
2638
+ () => (0, import_vue39.unref)(deps),
2639
+ (next) => {
2640
+ flow = next ? (0, import_connect_appkit_core25.createSolanaSessionKeyFlow)(next) : null;
2641
+ guard.invalidate();
2642
+ void refresh().catch(() => {
2643
+ });
2644
+ },
2645
+ { immediate: true }
2646
+ );
2647
+ const unavailable = () => Promise.reject(new Error("No Solana session key manager is connected"));
2648
+ const act = (action, fallback) => {
2649
+ const current = flow;
2650
+ if (!current) return unavailable();
2651
+ return guard.run(async () => {
2652
+ try {
2653
+ return await action(current);
2654
+ } finally {
2655
+ await refresh().catch(() => {
2656
+ });
2657
+ }
2658
+ }, fallback);
2659
+ };
2660
+ return {
2661
+ keys,
2662
+ create: (scope) => act((f) => f.create(scope), "Could not create the key"),
2663
+ revoke: (id) => act((f) => f.revoke(id), "Could not revoke the key"),
2664
+ refresh,
2665
+ isPending: guard.busy,
2666
+ error: guard.error
2667
+ };
2668
+ }
2669
+
2670
+ // src/name-lookup.ts
2671
+ var import_connect_appkit_core26 = require("@naculus/connect-appkit-core");
2672
+ var import_vue40 = require("vue");
2622
2673
  function useNameLookup(options) {
2623
2674
  const guard = useActionGuard();
2624
- const data = (0, import_vue39.shallowRef)(null);
2625
- const loading = (0, import_vue39.shallowRef)(false);
2675
+ const data = (0, import_vue40.shallowRef)(null);
2676
+ const loading = (0, import_vue40.shallowRef)(false);
2626
2677
  const run = () => {
2627
- const input = (0, import_vue39.toValue)(options.input).trim();
2628
- const skip = (0, import_vue39.toValue)(options.skip) ?? false;
2629
- const scope = (0, import_vue39.toValue)(options.scope);
2630
- const config = (0, import_vue39.toValue)(options.resolverConfig);
2678
+ const input = (0, import_vue40.toValue)(options.input).trim();
2679
+ const skip = (0, import_vue40.toValue)(options.skip) ?? false;
2680
+ const scope = (0, import_vue40.toValue)(options.scope);
2681
+ const config = (0, import_vue40.toValue)(options.resolverConfig);
2631
2682
  if (!input || skip) {
2632
2683
  guard.reset();
2633
2684
  data.value = null;
@@ -2640,7 +2691,7 @@ function useNameLookup(options) {
2640
2691
  async (commit) => {
2641
2692
  try {
2642
2693
  const result = await Promise.resolve().then(
2643
- () => options.query((0, import_connect_appkit_core25.getResolver)(config), input, scope)
2694
+ () => options.query((0, import_connect_appkit_core26.getResolver)(config), input, scope)
2644
2695
  );
2645
2696
  commit(() => {
2646
2697
  data.value = result;
@@ -2662,19 +2713,19 @@ function useNameLookup(options) {
2662
2713
  ).catch(() => {
2663
2714
  });
2664
2715
  };
2665
- (0, import_vue39.watch)(
2716
+ (0, import_vue40.watch)(
2666
2717
  () => [
2667
- (0, import_vue39.toValue)(options.input),
2668
- (0, import_vue39.toValue)(options.skip),
2669
- (0, import_vue39.toValue)(options.scope),
2670
- (0, import_vue39.toValue)(options.resolverConfig)
2718
+ (0, import_vue40.toValue)(options.input),
2719
+ (0, import_vue40.toValue)(options.skip),
2720
+ (0, import_vue40.toValue)(options.scope),
2721
+ (0, import_vue40.toValue)(options.resolverConfig)
2671
2722
  ],
2672
2723
  run,
2673
2724
  { immediate: true, flush: "sync", deep: true }
2674
2725
  );
2675
2726
  return {
2676
2727
  data,
2677
- isLoading: (0, import_vue39.computed)(() => loading.value),
2728
+ isLoading: (0, import_vue40.computed)(() => loading.value),
2678
2729
  error: guard.error,
2679
2730
  refetch: run
2680
2731
  };
@@ -2702,21 +2753,21 @@ function useLookupAddress(address, options) {
2702
2753
  }
2703
2754
 
2704
2755
  // src/useSolanaAccount.ts
2705
- var import_vue40 = require("vue");
2756
+ var import_vue41 = require("vue");
2706
2757
  function useSolanaAccount(accounts, connected) {
2707
- const isConnected = (0, import_vue40.computed)(() => (0, import_vue40.toValue)(connected));
2708
- const caip10 = (0, import_vue40.computed)(
2709
- () => isConnected.value ? ((0, import_vue40.toValue)(accounts) ?? []).find(
2758
+ const isConnected = (0, import_vue41.computed)(() => (0, import_vue41.toValue)(connected));
2759
+ const caip10 = (0, import_vue41.computed)(
2760
+ () => isConnected.value ? ((0, import_vue41.toValue)(accounts) ?? []).find(
2710
2761
  (account) => account.startsWith("solana:")
2711
2762
  ) ?? null : null
2712
2763
  );
2713
- const parts = (0, import_vue40.computed)(() => caip10.value?.split(":") ?? []);
2764
+ const parts = (0, import_vue41.computed)(() => caip10.value?.split(":") ?? []);
2714
2765
  return {
2715
- address: (0, import_vue40.computed)(
2766
+ address: (0, import_vue41.computed)(
2716
2767
  () => parts.value.length >= 3 ? parts.value.at(-1) ?? null : null
2717
2768
  ),
2718
2769
  caip10,
2719
- chainId: (0, import_vue40.computed)(
2770
+ chainId: (0, import_vue41.computed)(
2720
2771
  () => parts.value.length >= 3 ? parts.value.slice(0, -1).join(":") : null
2721
2772
  ),
2722
2773
  isConnected
@@ -2724,35 +2775,35 @@ function useSolanaAccount(accounts, connected) {
2724
2775
  }
2725
2776
 
2726
2777
  // src/useChain.ts
2727
- var import_connect_appkit_core26 = require("@naculus/connect-appkit-core");
2728
- var import_vue41 = require("vue");
2778
+ var import_connect_appkit_core27 = require("@naculus/connect-appkit-core");
2779
+ var import_vue42 = require("vue");
2729
2780
  function useChain(chains, chainId) {
2730
- const list = (0, import_vue41.computed)(() => (0, import_vue41.toValue)(chains) ?? []);
2731
- const id = (0, import_vue41.computed)(() => (0, import_vue41.toValue)(chainId) ?? null);
2732
- const currentChain = (0, import_vue41.computed)(() => (0, import_connect_appkit_core26.resolveChain)(list.value, id.value));
2781
+ const list = (0, import_vue42.computed)(() => (0, import_vue42.toValue)(chains) ?? []);
2782
+ const id = (0, import_vue42.computed)(() => (0, import_vue42.toValue)(chainId) ?? null);
2783
+ const currentChain = (0, import_vue42.computed)(() => (0, import_connect_appkit_core27.resolveChain)(list.value, id.value));
2733
2784
  return {
2734
2785
  currentChain,
2735
- chainInfo: (0, import_vue41.computed)(() => (0, import_connect_appkit_core26.describeChain)(list.value, id.value)),
2736
- availableChains: (0, import_vue41.computed)(() => (0, import_connect_appkit_core26.chainsForNamespace)(list.value, id.value)),
2737
- currentChainNumber: (0, import_vue41.computed)(
2738
- () => currentChain.value ? (0, import_connect_appkit_core26.chainNumber)(currentChain.value) : null
2786
+ chainInfo: (0, import_vue42.computed)(() => (0, import_connect_appkit_core27.describeChain)(list.value, id.value)),
2787
+ availableChains: (0, import_vue42.computed)(() => (0, import_connect_appkit_core27.chainsForNamespace)(list.value, id.value)),
2788
+ currentChainNumber: (0, import_vue42.computed)(
2789
+ () => currentChain.value ? (0, import_connect_appkit_core27.chainNumber)(currentChain.value) : null
2739
2790
  ),
2740
- namespace: (0, import_vue41.computed)(
2741
- () => currentChain.value ? (0, import_connect_appkit_core26.chainNamespace)(currentChain.value) : null
2791
+ namespace: (0, import_vue42.computed)(
2792
+ () => currentChain.value ? (0, import_connect_appkit_core27.chainNamespace)(currentChain.value) : null
2742
2793
  )
2743
2794
  };
2744
2795
  }
2745
2796
 
2746
2797
  // src/usePassphraseGate.ts
2747
- var import_vue42 = require("vue");
2798
+ var import_vue43 = require("vue");
2748
2799
  function usePassphraseGate(gate) {
2749
- const request = (0, import_vue42.shallowRef)(gate.getSnapshot());
2800
+ const request = (0, import_vue43.shallowRef)(gate.getSnapshot());
2750
2801
  const unsubscribe = gate.subscribe(() => {
2751
2802
  request.value = gate.getSnapshot();
2752
2803
  });
2753
- (0, import_vue42.onScopeDispose)(unsubscribe);
2804
+ (0, import_vue43.onScopeDispose)(unsubscribe);
2754
2805
  return {
2755
- request: (0, import_vue42.readonly)(request),
2806
+ request: (0, import_vue43.readonly)(request),
2756
2807
  submit: (passphrase) => gate.submit(passphrase),
2757
2808
  cancel: (reason) => gate.cancel(reason),
2758
2809
  forget: (reason) => gate.forget(reason)
@@ -2761,14 +2812,14 @@ function usePassphraseGate(gate) {
2761
2812
 
2762
2813
  // src/useSolanaBalance.ts
2763
2814
  var import_connect_core17 = require("@naculus/connect-core");
2764
- var import_vue43 = require("vue");
2815
+ var import_vue44 = require("vue");
2765
2816
  function useSolanaBalance(address, rpcUrl) {
2766
2817
  const guard = useActionGuard();
2767
- const balance = (0, import_vue43.shallowRef)(null);
2768
- const isFetching = (0, import_vue43.ref)(false);
2818
+ const balance = (0, import_vue44.shallowRef)(null);
2819
+ const isFetching = (0, import_vue44.ref)(false);
2769
2820
  const refetch = async () => {
2770
- const addr = (0, import_vue43.toValue)(address);
2771
- const url = (0, import_vue43.toValue)(rpcUrl);
2821
+ const addr = (0, import_vue44.toValue)(address);
2822
+ const url = (0, import_vue44.toValue)(rpcUrl);
2772
2823
  if (!addr || !url) {
2773
2824
  guard.invalidate();
2774
2825
  isFetching.value = false;
@@ -2800,22 +2851,22 @@ function useSolanaBalance(address, rpcUrl) {
2800
2851
  ).catch(() => {
2801
2852
  });
2802
2853
  };
2803
- (0, import_vue43.watchEffect)(() => {
2804
- (0, import_vue43.toValue)(address);
2805
- (0, import_vue43.toValue)(rpcUrl);
2854
+ (0, import_vue44.watchEffect)(() => {
2855
+ (0, import_vue44.toValue)(address);
2856
+ (0, import_vue44.toValue)(rpcUrl);
2806
2857
  void refetch();
2807
2858
  });
2808
2859
  return { balance, isFetching, error: guard.error, refetch };
2809
2860
  }
2810
2861
 
2811
2862
  // src/useLastTx.ts
2812
- var import_vue44 = require("vue");
2863
+ var import_vue45 = require("vue");
2813
2864
  function useLastTx(monitor) {
2814
- const lastTx = (0, import_vue44.shallowRef)(null);
2815
- const lastConfirmedTx = (0, import_vue44.shallowRef)(null);
2816
- const lastFailedTx = (0, import_vue44.shallowRef)(null);
2817
- (0, import_vue44.watch)(
2818
- () => (0, import_vue44.toValue)(monitor),
2865
+ const lastTx = (0, import_vue45.shallowRef)(null);
2866
+ const lastConfirmedTx = (0, import_vue45.shallowRef)(null);
2867
+ const lastFailedTx = (0, import_vue45.shallowRef)(null);
2868
+ (0, import_vue45.watch)(
2869
+ () => (0, import_vue45.toValue)(monitor),
2819
2870
  (activeMonitor, _previous, onCleanup) => {
2820
2871
  if (!activeMonitor) return;
2821
2872
  const recordLatest = (entry) => {
@@ -2853,13 +2904,13 @@ function useLastTx(monitor) {
2853
2904
  }
2854
2905
 
2855
2906
  // src/useTxHistory.ts
2856
- var import_vue45 = require("vue");
2907
+ var import_vue46 = require("vue");
2857
2908
  function useTxHistory(address, chainId, monitor) {
2858
2909
  const guard = useActionGuard();
2859
- const entries = (0, import_vue45.shallowRef)([]);
2860
- const isLoading = (0, import_vue45.shallowRef)(false);
2910
+ const entries = (0, import_vue46.shallowRef)([]);
2911
+ const isLoading = (0, import_vue46.shallowRef)(false);
2861
2912
  const refresh = async () => {
2862
- const activeMonitor = (0, import_vue45.toValue)(monitor);
2913
+ const activeMonitor = (0, import_vue46.toValue)(monitor);
2863
2914
  if (!activeMonitor) {
2864
2915
  guard.reset();
2865
2916
  entries.value = [];
@@ -2870,8 +2921,8 @@ function useTxHistory(address, chainId, monitor) {
2870
2921
  await guard.run(
2871
2922
  async (commit) => {
2872
2923
  const result = await activeMonitor.getTxHistory(
2873
- (0, import_vue45.toValue)(address) ?? void 0,
2874
- (0, import_vue45.toValue)(chainId) ?? void 0
2924
+ (0, import_vue46.toValue)(address) ?? void 0,
2925
+ (0, import_vue46.toValue)(chainId) ?? void 0
2875
2926
  );
2876
2927
  commit(() => {
2877
2928
  entries.value = result;
@@ -2887,8 +2938,8 @@ function useTxHistory(address, chainId, monitor) {
2887
2938
  ).catch(() => {
2888
2939
  });
2889
2940
  };
2890
- (0, import_vue45.watch)(
2891
- [() => (0, import_vue45.toValue)(monitor), () => (0, import_vue45.toValue)(address), () => (0, import_vue45.toValue)(chainId)],
2941
+ (0, import_vue46.watch)(
2942
+ [() => (0, import_vue46.toValue)(monitor), () => (0, import_vue46.toValue)(address), () => (0, import_vue46.toValue)(chainId)],
2892
2943
  ([activeMonitor], _previous, onCleanup) => {
2893
2944
  if (!activeMonitor) {
2894
2945
  void refresh();
@@ -2908,7 +2959,7 @@ function useTxHistory(address, chainId, monitor) {
2908
2959
  isLoading,
2909
2960
  error: guard.error,
2910
2961
  refresh,
2911
- summary: (0, import_vue45.computed)(() => ({
2962
+ summary: (0, import_vue46.computed)(() => ({
2912
2963
  pending: entries.value.filter((item) => item.status === "pending").length,
2913
2964
  confirmed: entries.value.filter((item) => item.status === "confirmed").length,
2914
2965
  failed: entries.value.filter((item) => item.status === "failed").length
@@ -2917,17 +2968,17 @@ function useTxHistory(address, chainId, monitor) {
2917
2968
  }
2918
2969
 
2919
2970
  // src/useTxMonitor.ts
2920
- var import_vue46 = require("vue");
2971
+ var import_vue47 = require("vue");
2921
2972
  function useTxMonitor(hash, chainId, monitor) {
2922
- const entry = (0, import_vue46.shallowRef)(null);
2923
- const isLoading = (0, import_vue46.shallowRef)(false);
2924
- const isWatching = (0, import_vue46.shallowRef)(false);
2925
- const error = (0, import_vue46.shallowRef)(null);
2973
+ const entry = (0, import_vue47.shallowRef)(null);
2974
+ const isLoading = (0, import_vue47.shallowRef)(false);
2975
+ const isWatching = (0, import_vue47.shallowRef)(false);
2976
+ const error = (0, import_vue47.shallowRef)(null);
2926
2977
  let generation = 0;
2927
2978
  const refresh = async () => {
2928
- const activeMonitor = (0, import_vue46.toValue)(monitor);
2929
- const activeHash = (0, import_vue46.toValue)(hash);
2930
- const activeChainId = (0, import_vue46.toValue)(chainId);
2979
+ const activeMonitor = (0, import_vue47.toValue)(monitor);
2980
+ const activeHash = (0, import_vue47.toValue)(hash);
2981
+ const activeChainId = (0, import_vue47.toValue)(chainId);
2931
2982
  if (!activeMonitor || !activeHash) return;
2932
2983
  isLoading.value = true;
2933
2984
  error.value = null;
@@ -2945,15 +2996,15 @@ function useTxMonitor(hash, chainId, monitor) {
2945
2996
  }
2946
2997
  };
2947
2998
  const stopWatching = () => {
2948
- const activeMonitor = (0, import_vue46.toValue)(monitor);
2949
- const activeHash = (0, import_vue46.toValue)(hash);
2950
- const activeChainId = (0, import_vue46.toValue)(chainId);
2999
+ const activeMonitor = (0, import_vue47.toValue)(monitor);
3000
+ const activeHash = (0, import_vue47.toValue)(hash);
3001
+ const activeChainId = (0, import_vue47.toValue)(chainId);
2951
3002
  if (!activeMonitor || !activeHash) return;
2952
3003
  activeMonitor.stopWatching(activeHash, activeChainId ?? void 0);
2953
3004
  isWatching.value = false;
2954
3005
  };
2955
- (0, import_vue46.watch)(
2956
- [() => (0, import_vue46.toValue)(monitor), () => (0, import_vue46.toValue)(hash), () => (0, import_vue46.toValue)(chainId)],
3006
+ (0, import_vue47.watch)(
3007
+ [() => (0, import_vue47.toValue)(monitor), () => (0, import_vue47.toValue)(hash), () => (0, import_vue47.toValue)(chainId)],
2957
3008
  ([activeMonitor, activeHash, activeChainId], _previous, onCleanup) => {
2958
3009
  const mine = ++generation;
2959
3010
  if (!activeMonitor || !activeHash || !activeChainId) {
@@ -2993,7 +3044,7 @@ function useTxMonitor(hash, chainId, monitor) {
2993
3044
  );
2994
3045
  return {
2995
3046
  entry,
2996
- status: (0, import_vue46.computed)(() => entry.value?.status ?? "idle"),
3047
+ status: (0, import_vue47.computed)(() => entry.value?.status ?? "idle"),
2997
3048
  isLoading,
2998
3049
  isWatching,
2999
3050
  error,
@@ -3003,17 +3054,17 @@ function useTxMonitor(hash, chainId, monitor) {
3003
3054
  }
3004
3055
 
3005
3056
  // src/useCapabilities.ts
3006
- var import_connect_appkit_core27 = require("@naculus/connect-appkit-core");
3007
- var import_vue47 = require("vue");
3057
+ var import_connect_appkit_core28 = require("@naculus/connect-appkit-core");
3058
+ var import_vue48 = require("vue");
3008
3059
  function useCapabilities(client, session, chainId) {
3009
3060
  const guard = useActionGuard();
3010
- const capabilities = (0, import_vue47.shallowRef)(
3061
+ const capabilities = (0, import_vue48.shallowRef)(
3011
3062
  null
3012
3063
  );
3013
- const isFetching = (0, import_vue47.shallowRef)(false);
3064
+ const isFetching = (0, import_vue48.shallowRef)(false);
3014
3065
  const refetch = async () => {
3015
- const activeClient = (0, import_vue47.toValue)(client);
3016
- const activeSession = (0, import_vue47.toValue)(session);
3066
+ const activeClient = (0, import_vue48.toValue)(client);
3067
+ const activeSession = (0, import_vue48.toValue)(session);
3017
3068
  if (!activeClient?.getCapabilities || !activeSession) {
3018
3069
  guard.reset();
3019
3070
  capabilities.value = null;
@@ -3026,7 +3077,7 @@ function useCapabilities(client, session, chainId) {
3026
3077
  try {
3027
3078
  const raw = await activeClient.getCapabilities(activeSession);
3028
3079
  commit(() => {
3029
- capabilities.value = (0, import_connect_appkit_core27.normalizeCapabilities)(raw);
3080
+ capabilities.value = (0, import_connect_appkit_core28.normalizeCapabilities)(raw);
3030
3081
  });
3031
3082
  } catch (err) {
3032
3083
  commit(() => {
@@ -3045,18 +3096,18 @@ function useCapabilities(client, session, chainId) {
3045
3096
  ).catch(() => {
3046
3097
  });
3047
3098
  };
3048
- (0, import_vue47.watchEffect)(() => {
3049
- void (0, import_vue47.toValue)(client);
3050
- void (0, import_vue47.toValue)(session);
3099
+ (0, import_vue48.watchEffect)(() => {
3100
+ void (0, import_vue48.toValue)(client);
3101
+ void (0, import_vue48.toValue)(session);
3051
3102
  void refetch();
3052
3103
  });
3053
3104
  return {
3054
3105
  capabilities,
3055
- current: (0, import_vue47.computed)(
3056
- () => (0, import_connect_appkit_core27.selectChainCapabilities)(capabilities.value, (0, import_vue47.toValue)(chainId))
3106
+ current: (0, import_vue48.computed)(
3107
+ () => (0, import_connect_appkit_core28.selectChainCapabilities)(capabilities.value, (0, import_vue48.toValue)(chainId))
3057
3108
  ),
3058
- atomic: (0, import_vue47.computed)(
3059
- () => (0, import_connect_appkit_core27.atomicSupportFor)(capabilities.value, (0, import_vue47.toValue)(chainId))
3109
+ atomic: (0, import_vue48.computed)(
3110
+ () => (0, import_connect_appkit_core28.atomicSupportFor)(capabilities.value, (0, import_vue48.toValue)(chainId))
3060
3111
  ),
3061
3112
  isFetching,
3062
3113
  error: guard.error,
@@ -3065,18 +3116,18 @@ function useCapabilities(client, session, chainId) {
3065
3116
  }
3066
3117
 
3067
3118
  // src/useSolanaRoles.ts
3068
- var import_connect_appkit_core28 = require("@naculus/connect-appkit-core");
3069
- var import_vue48 = require("vue");
3119
+ var import_connect_appkit_core29 = require("@naculus/connect-appkit-core");
3120
+ var import_vue49 = require("vue");
3070
3121
  function useSolanaRoles(connector, session) {
3071
- const state = (0, import_vue48.computed)(
3072
- () => (0, import_connect_appkit_core28.readSolanaRoles)((0, import_vue48.toValue)(connector), (0, import_vue48.toValue)(session))
3122
+ const state = (0, import_vue49.computed)(
3123
+ () => (0, import_connect_appkit_core29.readSolanaRoles)((0, import_vue49.toValue)(connector), (0, import_vue49.toValue)(session))
3073
3124
  );
3074
3125
  return {
3075
- roles: (0, import_vue48.computed)(() => state.value.roles),
3076
- absence: (0, import_vue48.computed)(() => state.value.absence),
3077
- identity: (0, import_vue48.computed)(() => state.value.roles?.identity ?? null),
3078
- signer: (0, import_vue48.computed)(() => state.value.roles?.signer ?? null),
3079
- payer: (0, import_vue48.computed)(() => state.value.roles?.payer ?? null)
3126
+ roles: (0, import_vue49.computed)(() => state.value.roles),
3127
+ absence: (0, import_vue49.computed)(() => state.value.absence),
3128
+ identity: (0, import_vue49.computed)(() => state.value.roles?.identity ?? null),
3129
+ signer: (0, import_vue49.computed)(() => state.value.roles?.signer ?? null),
3130
+ payer: (0, import_vue49.computed)(() => state.value.roles?.payer ?? null)
3080
3131
  };
3081
3132
  }
3082
3133
  // Annotate the CommonJS export names for ESM import in node:
@@ -3152,6 +3203,7 @@ function useSolanaRoles(connector, session) {
3152
3203
  useSolanaAccount,
3153
3204
  useSolanaBalance,
3154
3205
  useSolanaRoles,
3206
+ useSolanaSessionKey,
3155
3207
  useSolanaTransaction,
3156
3208
  useSwitchChain,
3157
3209
  useTokenBalance,