@haneullabs/dapp-kit 1.0.4 → 1.0.6

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.
Files changed (63) hide show
  1. package/dist/components/AccountDropdownMenu.mjs +8 -8
  2. package/dist/components/AccountDropdownMenu.mjs.map +2 -2
  3. package/dist/components/ConnectButton.mjs +12 -12
  4. package/dist/components/ConnectButton.mjs.map +2 -2
  5. package/dist/components/HaneulClientProvider.d.ts.map +1 -1
  6. package/dist/components/HaneulClientProvider.mjs +2 -2
  7. package/dist/components/HaneulClientProvider.mjs.map +2 -2
  8. package/dist/components/WalletProvider.mjs +23 -23
  9. package/dist/components/WalletProvider.mjs.map +2 -2
  10. package/dist/components/connect-modal/ConnectModal.mjs +4 -4
  11. package/dist/components/connect-modal/ConnectModal.mjs.map +2 -2
  12. package/dist/hooks/networkConfig.mjs +6 -6
  13. package/dist/hooks/networkConfig.mjs.map +2 -2
  14. package/dist/hooks/useHaneulClient.d.ts +2 -2
  15. package/dist/hooks/useHaneulClient.d.ts.map +1 -1
  16. package/dist/hooks/useHaneulClient.mjs +9 -9
  17. package/dist/hooks/useHaneulClient.mjs.map +2 -2
  18. package/dist/hooks/useHaneulClientInfiniteQuery.d.ts +2 -2
  19. package/dist/hooks/useHaneulClientInfiniteQuery.d.ts.map +1 -1
  20. package/dist/hooks/useHaneulClientInfiniteQuery.mjs +8 -8
  21. package/dist/hooks/useHaneulClientInfiniteQuery.mjs.map +2 -2
  22. package/dist/hooks/useHaneulClientMutation.d.ts +2 -2
  23. package/dist/hooks/useHaneulClientMutation.d.ts.map +1 -1
  24. package/dist/hooks/useHaneulClientMutation.mjs +8 -8
  25. package/dist/hooks/useHaneulClientMutation.mjs.map +2 -2
  26. package/dist/hooks/useHaneulClientQueries.d.ts +6 -6
  27. package/dist/hooks/useHaneulClientQueries.d.ts.map +1 -1
  28. package/dist/hooks/useHaneulClientQueries.mjs +8 -8
  29. package/dist/hooks/useHaneulClientQueries.mjs.map +2 -2
  30. package/dist/hooks/useHaneulClientQuery.d.ts +5 -5
  31. package/dist/hooks/useHaneulClientQuery.d.ts.map +1 -1
  32. package/dist/hooks/useHaneulClientQuery.mjs +14 -14
  33. package/dist/hooks/useHaneulClientQuery.mjs.map +2 -2
  34. package/dist/hooks/useResolveHaneulNSNames.mjs +8 -8
  35. package/dist/hooks/useResolveHaneulNSNames.mjs.map +2 -2
  36. package/dist/hooks/wallet/useAutoConnectWallet.mjs +4 -4
  37. package/dist/hooks/wallet/useAutoConnectWallet.mjs.map +2 -2
  38. package/dist/hooks/wallet/useConnectWallet.mjs +4 -4
  39. package/dist/hooks/wallet/useConnectWallet.mjs.map +2 -2
  40. package/dist/hooks/wallet/useSignAndExecuteTransaction.mjs +6 -6
  41. package/dist/hooks/wallet/useSignAndExecuteTransaction.mjs.map +2 -2
  42. package/dist/hooks/wallet/useSignPersonalMessage.mjs +6 -6
  43. package/dist/hooks/wallet/useSignPersonalMessage.mjs.map +2 -2
  44. package/dist/hooks/wallet/useSignTransaction.mjs +6 -6
  45. package/dist/hooks/wallet/useSignTransaction.mjs.map +2 -2
  46. package/dist/hooks/wallet/useUnsafeBurnerWallet.mjs +19 -19
  47. package/dist/hooks/wallet/useUnsafeBurnerWallet.mjs.map +2 -2
  48. package/dist/index.mjs +49 -49
  49. package/dist/index.mjs.map +2 -2
  50. package/package.json +5 -5
  51. package/src/components/HaneulClientProvider.tsx +2 -2
  52. package/src/hooks/networkConfig.ts +2 -2
  53. package/src/hooks/useHaneulClient.ts +6 -6
  54. package/src/hooks/useHaneulClientInfiniteQuery.ts +5 -5
  55. package/src/hooks/useHaneulClientMutation.ts +5 -5
  56. package/src/hooks/useHaneulClientQueries.ts +9 -9
  57. package/src/hooks/useHaneulClientQuery.ts +13 -13
  58. package/src/hooks/useResolveHaneulNSNames.ts +2 -2
  59. package/src/hooks/wallet/useConnectWallet.ts +4 -4
  60. package/src/hooks/wallet/useSignAndExecuteTransaction.ts +2 -2
  61. package/src/hooks/wallet/useSignPersonalMessage.ts +2 -2
  62. package/src/hooks/wallet/useSignTransaction.ts +2 -2
  63. package/src/hooks/wallet/useUnsafeBurnerWallet.ts +13 -13
@@ -6,7 +6,7 @@ import { useMemo as useMemo2 } from "react";
6
6
  import { useContext } from "react";
7
7
 
8
8
  // src/components/HaneulClientProvider.tsx
9
- import { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
9
+ import { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
10
10
  import { createContext, useMemo, useState } from "react";
11
11
  import { jsx } from "react/jsx-runtime";
12
12
  var HaneulClientContext = createContext(null);
@@ -15,18 +15,18 @@ var DEFAULT_NETWORKS = {
15
15
  };
16
16
 
17
17
  // src/hooks/useHaneulClient.ts
18
- function useSuiClientContext() {
19
- const suiClient = useContext(HaneulClientContext);
20
- if (!suiClient) {
18
+ function useHaneulClientContext() {
19
+ const haneulClient = useContext(HaneulClientContext);
20
+ if (!haneulClient) {
21
21
  throw new Error(
22
22
  "Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider"
23
23
  );
24
24
  }
25
- return suiClient;
25
+ return haneulClient;
26
26
  }
27
27
 
28
28
  // src/hooks/useHaneulClientQuery.ts
29
- function getSuiClientQuery({
29
+ function getHaneulClientQuery({
30
30
  client,
31
31
  network,
32
32
  method,
@@ -41,9 +41,9 @@ function getSuiClientQuery({
41
41
  }
42
42
  });
43
43
  }
44
- function useSuiClientQuery(...args) {
44
+ function useHaneulClientQuery(...args) {
45
45
  const [method, params, { queryKey = [], ...options } = {}] = args;
46
- const suiContext = useSuiClientContext();
46
+ const suiContext = useHaneulClientContext();
47
47
  return useQuery({
48
48
  ...options,
49
49
  queryKey: [suiContext.network, method, params, ...queryKey],
@@ -52,11 +52,11 @@ function useSuiClientQuery(...args) {
52
52
  }
53
53
  });
54
54
  }
55
- function useSuiClientSuspenseQuery(...args) {
55
+ function useHaneulClientSuspenseQuery(...args) {
56
56
  const [method, params, options = {}] = args;
57
- const suiContext = useSuiClientContext();
57
+ const suiContext = useHaneulClientContext();
58
58
  const query = useMemo2(() => {
59
- return getSuiClientQuery({
59
+ return getHaneulClientQuery({
60
60
  client: suiContext.client,
61
61
  network: suiContext.network,
62
62
  method,
@@ -67,8 +67,8 @@ function useSuiClientSuspenseQuery(...args) {
67
67
  return useSuspenseQuery(query);
68
68
  }
69
69
  export {
70
- getSuiClientQuery,
71
- useSuiClientQuery,
72
- useSuiClientSuspenseQuery
70
+ getHaneulClientQuery,
71
+ useHaneulClientQuery,
72
+ useHaneulClientSuspenseQuery
73
73
  };
74
74
  //# sourceMappingURL=useHaneulClientQuery.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/hooks/useHaneulClientQuery.ts", "../../src/hooks/useHaneulClient.ts", "../../src/components/HaneulClientProvider.tsx"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type {\n\tUndefinedInitialDataOptions,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from '@tanstack/react-query';\nimport { queryOptions, useQuery, useSuspenseQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useSuiClientContext } from './useHaneulClient.js';\n\nexport type HaneulRpcMethodName = {\n\t[K in keyof HaneulJsonRpcClient]: HaneulJsonRpcClient[K] extends\n\t\t| ((input: any) => Promise<any>)\n\t\t| (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof HaneulJsonRpcClient];\n\nexport type HaneulRpcMethods = {\n\t[K in HaneulRpcMethodName]: HaneulJsonRpcClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t\t}\n\t\t: HaneulJsonRpcClient[K] extends () => Promise<infer R>\n\t\t\t? {\n\t\t\t\t\tname: K;\n\t\t\t\t\tresult: R;\n\t\t\t\t\tparams: undefined | object;\n\t\t\t\t}\n\t\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof HaneulRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<HaneulRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport type GetSuiClientQueryOptions<T extends keyof HaneulRpcMethods> = {\n\tclient: HaneulJsonRpcClient;\n\tnetwork: string;\n\tmethod: T;\n\toptions?: PartialBy<\n\t\tOmit<UndefinedInitialDataOptions<HaneulRpcMethods[T]['result']>, 'queryFn'>,\n\t\t'queryKey'\n\t>;\n} & (undefined extends HaneulRpcMethods[T]['params']\n\t? { params?: HaneulRpcMethods[T]['params'] }\n\t: { params: HaneulRpcMethods[T]['params'] });\n\nexport function getSuiClientQuery<T extends keyof HaneulRpcMethods>({\n\tclient,\n\tnetwork,\n\tmethod,\n\tparams,\n\toptions,\n}: GetSuiClientQueryOptions<T>) {\n\treturn queryOptions<HaneulRpcMethods[T]['result']>({\n\t\t...options,\n\t\tqueryKey: [network, method, params],\n\t\tqueryFn: async () => {\n\t\t\treturn await client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useSuiClientQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n): UseQueryResult<TData, Error> {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UseSuiClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useSuiClientSuspenseQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n) {\n\tconst [method, params, options = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UndefinedInitialDataOptions<TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\tconst query = useMemo(() => {\n\t\treturn getSuiClientQuery<T>({\n\t\t\tclient: suiContext.client,\n\t\t\tnetwork: suiContext.network,\n\t\t\tmethod,\n\t\t\tparams,\n\t\t\toptions,\n\t\t});\n\t}, [suiContext.client, suiContext.network, method, params, options]);\n\n\treturn useSuspenseQuery(query);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport { useContext } from 'react';\n\nimport { HaneulClientContext } from '../components/HaneulClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(HaneulClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): HaneulJsonRpcClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type { HaneulJsonRpcClientOptions } from '@haneullabs/haneul/jsonRpc';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | HaneulJsonRpcClient = NetworkConfig | HaneulJsonRpcClient> =\n\tRecord<string, T>;\n\nexport interface HaneulClientProviderContext {\n\tclient: HaneulJsonRpcClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const HaneulClientContext = createContext<HaneulClientProviderContext | null>(null);\n\nexport type HaneulClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => HaneulJsonRpcClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getJsonRpcFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | HaneulJsonRpcClient,\n) {\n\tif (isSuiJsonRpcClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new HaneulJsonRpcClient(config);\n};\n\nexport function HaneulClientProvider<T extends NetworkConfigs>(props: HaneulClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): HaneulClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof HaneulJsonRpcClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as HaneulJsonRpcClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <HaneulClientContext.Provider value={ctx}>{children}</HaneulClientContext.Provider>;\n}\n"],
5
- "mappings": ";AASA,SAAS,cAAc,UAAU,wBAAwB;AACzD,SAAS,WAAAA,gBAAe;;;ACNxB,SAAS,kBAAkB;;;ACD3B,SAAS,uBAAuB,oBAAoB,2BAA2B;AAE/E,SAAS,eAAe,SAAS,gBAAgB;AAuFzC;AAxED,IAAM,sBAAsB,cAAkD,IAAI;AAkBzF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,sBAAsB,UAAU,EAAE;AACpD;;;ADhCO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,mBAAmB;AAEhD,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADsCO,SAAS,kBAAoD;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAgC;AAC/B,SAAO,aAA4C;AAAA,IAClD,GAAG;AAAA,IACH,UAAU,CAAC,SAAS,QAAQ,MAAM;AAAA,IAClC,SAAS,YAAY;AACpB,aAAO,MAAM,OAAO,MAAM,EAAE,MAAe;AAAA,IAC5C;AAAA,EACD,CAAC;AACF;AAEO,SAAS,qBAIZ,MAG4B;AAC/B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,oBAAoB;AAEvC,SAAO,SAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;AAEO,SAAS,6BAIZ,MAGF;AACD,QAAM,CAAC,QAAQ,QAAQ,UAAU,CAAC,CAAC,IAAI;AAMvC,QAAM,aAAa,oBAAoB;AAEvC,QAAM,QAAQC,SAAQ,MAAM;AAC3B,WAAO,kBAAqB;AAAA,MAC3B,QAAQ,WAAW;AAAA,MACnB,SAAS,WAAW;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,EACF,GAAG,CAAC,WAAW,QAAQ,WAAW,SAAS,QAAQ,QAAQ,OAAO,CAAC;AAEnE,SAAO,iBAAiB,KAAK;AAC9B;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type {\n\tUndefinedInitialDataOptions,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from '@tanstack/react-query';\nimport { queryOptions, useQuery, useSuspenseQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useHaneulClientContext } from './useHaneulClient.js';\n\nexport type HaneulRpcMethodName = {\n\t[K in keyof HaneulJsonRpcClient]: HaneulJsonRpcClient[K] extends\n\t\t| ((input: any) => Promise<any>)\n\t\t| (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof HaneulJsonRpcClient];\n\nexport type HaneulRpcMethods = {\n\t[K in HaneulRpcMethodName]: HaneulJsonRpcClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t\t}\n\t\t: HaneulJsonRpcClient[K] extends () => Promise<infer R>\n\t\t\t? {\n\t\t\t\t\tname: K;\n\t\t\t\t\tresult: R;\n\t\t\t\t\tparams: undefined | object;\n\t\t\t\t}\n\t\t\t: never;\n};\n\nexport type UseHaneulClientQueryOptions<T extends keyof HaneulRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<HaneulRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport type GetHaneulClientQueryOptions<T extends keyof HaneulRpcMethods> = {\n\tclient: HaneulJsonRpcClient;\n\tnetwork: string;\n\tmethod: T;\n\toptions?: PartialBy<\n\t\tOmit<UndefinedInitialDataOptions<HaneulRpcMethods[T]['result']>, 'queryFn'>,\n\t\t'queryKey'\n\t>;\n} & (undefined extends HaneulRpcMethods[T]['params']\n\t? { params?: HaneulRpcMethods[T]['params'] }\n\t: { params: HaneulRpcMethods[T]['params'] });\n\nexport function getHaneulClientQuery<T extends keyof HaneulRpcMethods>({\n\tclient,\n\tnetwork,\n\tmethod,\n\tparams,\n\toptions,\n}: GetHaneulClientQueryOptions<T>) {\n\treturn queryOptions<HaneulRpcMethods[T]['result']>({\n\t\t...options,\n\t\tqueryKey: [network, method, params],\n\t\tqueryFn: async () => {\n\t\t\treturn await client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useHaneulClientQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UseHaneulClientQueryOptions<T, TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UseHaneulClientQueryOptions<T, TData>]\n): UseQueryResult<TData, Error> {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UseHaneulClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useHaneulClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useHaneulClientSuspenseQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n) {\n\tconst [method, params, options = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UndefinedInitialDataOptions<TData>,\n\t];\n\n\tconst suiContext = useHaneulClientContext();\n\n\tconst query = useMemo(() => {\n\t\treturn getHaneulClientQuery<T>({\n\t\t\tclient: suiContext.client,\n\t\t\tnetwork: suiContext.network,\n\t\t\tmethod,\n\t\t\tparams,\n\t\t\toptions,\n\t\t});\n\t}, [suiContext.client, suiContext.network, method, params, options]);\n\n\treturn useSuspenseQuery(query);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport { useContext } from 'react';\n\nimport { HaneulClientContext } from '../components/HaneulClientProvider.js';\n\nexport function useHaneulClientContext() {\n\tconst haneulClient = useContext(HaneulClientContext);\n\n\tif (!haneulClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider',\n\t\t);\n\t}\n\n\treturn haneulClient;\n}\n\nexport function useHaneulClient(): HaneulJsonRpcClient {\n\treturn useHaneulClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type { HaneulJsonRpcClientOptions } from '@haneullabs/haneul/jsonRpc';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | HaneulJsonRpcClient = NetworkConfig | HaneulJsonRpcClient> =\n\tRecord<string, T>;\n\nexport interface HaneulClientProviderContext {\n\tclient: HaneulJsonRpcClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const HaneulClientContext = createContext<HaneulClientProviderContext | null>(null);\n\nexport type HaneulClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => HaneulJsonRpcClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getJsonRpcFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | HaneulJsonRpcClient,\n) {\n\tif (isHaneulJsonRpcClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new HaneulJsonRpcClient(config);\n};\n\nexport function HaneulClientProvider<T extends NetworkConfigs>(props: HaneulClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): HaneulClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof HaneulJsonRpcClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as HaneulJsonRpcClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <HaneulClientContext.Provider value={ctx}>{children}</HaneulClientContext.Provider>;\n}\n"],
5
+ "mappings": ";AASA,SAAS,cAAc,UAAU,wBAAwB;AACzD,SAAS,WAAAA,gBAAe;;;ACNxB,SAAS,kBAAkB;;;ACD3B,SAAS,uBAAuB,uBAAuB,2BAA2B;AAElF,SAAS,eAAe,SAAS,gBAAgB;AAuFzC;AAxED,IAAM,sBAAsB,cAAkD,IAAI;AAkBzF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,sBAAsB,UAAU,EAAE;AACpD;;;ADhCO,SAAS,yBAAyB;AACxC,QAAM,eAAe,WAAW,mBAAmB;AAEnD,MAAI,CAAC,cAAc;AAClB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADsCO,SAAS,qBAAuD;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAmC;AAClC,SAAO,aAA4C;AAAA,IAClD,GAAG;AAAA,IACH,UAAU,CAAC,SAAS,QAAQ,MAAM;AAAA,IAClC,SAAS,YAAY;AACpB,aAAO,MAAM,OAAO,MAAM,EAAE,MAAe;AAAA,IAC5C;AAAA,EACD,CAAC;AACF;AAEO,SAAS,wBAIZ,MAG4B;AAC/B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,uBAAuB;AAE1C,SAAO,SAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;AAEO,SAAS,gCAIZ,MAGF;AACD,QAAM,CAAC,QAAQ,QAAQ,UAAU,CAAC,CAAC,IAAI;AAMvC,QAAM,aAAa,uBAAuB;AAE1C,QAAM,QAAQC,SAAQ,MAAM;AAC3B,WAAO,qBAAwB;AAAA,MAC9B,QAAQ,WAAW;AAAA,MACnB,SAAS,WAAW;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,EACF,GAAG,CAAC,WAAW,QAAQ,WAAW,SAAS,QAAQ,QAAQ,OAAO,CAAC;AAEnE,SAAO,iBAAiB,KAAK;AAC9B;",
6
6
  "names": ["useMemo", "useMemo"]
7
7
  }
@@ -6,7 +6,7 @@ import { useMemo as useMemo2 } from "react";
6
6
  import { useContext } from "react";
7
7
 
8
8
  // src/components/HaneulClientProvider.tsx
9
- import { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
9
+ import { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
10
10
  import { createContext, useMemo, useState } from "react";
11
11
  import { jsx } from "react/jsx-runtime";
12
12
  var HaneulClientContext = createContext(null);
@@ -15,20 +15,20 @@ var DEFAULT_NETWORKS = {
15
15
  };
16
16
 
17
17
  // src/hooks/useHaneulClient.ts
18
- function useSuiClientContext() {
19
- const suiClient = useContext(HaneulClientContext);
20
- if (!suiClient) {
18
+ function useHaneulClientContext() {
19
+ const haneulClient = useContext(HaneulClientContext);
20
+ if (!haneulClient) {
21
21
  throw new Error(
22
22
  "Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider"
23
23
  );
24
24
  }
25
- return suiClient;
25
+ return haneulClient;
26
26
  }
27
27
 
28
28
  // src/hooks/useHaneulClientQuery.ts
29
- function useSuiClientQuery(...args) {
29
+ function useHaneulClientQuery(...args) {
30
30
  const [method, params, { queryKey = [], ...options } = {}] = args;
31
- const suiContext = useSuiClientContext();
31
+ const suiContext = useHaneulClientContext();
32
32
  return useQuery({
33
33
  ...options,
34
34
  queryKey: [suiContext.network, method, params, ...queryKey],
@@ -40,7 +40,7 @@ function useSuiClientQuery(...args) {
40
40
 
41
41
  // src/hooks/useResolveHaneulNSNames.ts
42
42
  function useResolveHaneulNSName(address, options) {
43
- return useSuiClientQuery(
43
+ return useHaneulClientQuery(
44
44
  "resolveNameServiceNames",
45
45
  {
46
46
  address,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/hooks/useHaneulClientQuery.ts", "../../src/hooks/useHaneulClient.ts", "../../src/components/HaneulClientProvider.tsx", "../../src/hooks/useResolveHaneulNSNames.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type {\n\tUndefinedInitialDataOptions,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from '@tanstack/react-query';\nimport { queryOptions, useQuery, useSuspenseQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useSuiClientContext } from './useHaneulClient.js';\n\nexport type HaneulRpcMethodName = {\n\t[K in keyof HaneulJsonRpcClient]: HaneulJsonRpcClient[K] extends\n\t\t| ((input: any) => Promise<any>)\n\t\t| (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof HaneulJsonRpcClient];\n\nexport type HaneulRpcMethods = {\n\t[K in HaneulRpcMethodName]: HaneulJsonRpcClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t\t}\n\t\t: HaneulJsonRpcClient[K] extends () => Promise<infer R>\n\t\t\t? {\n\t\t\t\t\tname: K;\n\t\t\t\t\tresult: R;\n\t\t\t\t\tparams: undefined | object;\n\t\t\t\t}\n\t\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof HaneulRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<HaneulRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport type GetSuiClientQueryOptions<T extends keyof HaneulRpcMethods> = {\n\tclient: HaneulJsonRpcClient;\n\tnetwork: string;\n\tmethod: T;\n\toptions?: PartialBy<\n\t\tOmit<UndefinedInitialDataOptions<HaneulRpcMethods[T]['result']>, 'queryFn'>,\n\t\t'queryKey'\n\t>;\n} & (undefined extends HaneulRpcMethods[T]['params']\n\t? { params?: HaneulRpcMethods[T]['params'] }\n\t: { params: HaneulRpcMethods[T]['params'] });\n\nexport function getSuiClientQuery<T extends keyof HaneulRpcMethods>({\n\tclient,\n\tnetwork,\n\tmethod,\n\tparams,\n\toptions,\n}: GetSuiClientQueryOptions<T>) {\n\treturn queryOptions<HaneulRpcMethods[T]['result']>({\n\t\t...options,\n\t\tqueryKey: [network, method, params],\n\t\tqueryFn: async () => {\n\t\t\treturn await client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useSuiClientQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n): UseQueryResult<TData, Error> {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UseSuiClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useSuiClientSuspenseQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n) {\n\tconst [method, params, options = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UndefinedInitialDataOptions<TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\tconst query = useMemo(() => {\n\t\treturn getSuiClientQuery<T>({\n\t\t\tclient: suiContext.client,\n\t\t\tnetwork: suiContext.network,\n\t\t\tmethod,\n\t\t\tparams,\n\t\t\toptions,\n\t\t});\n\t}, [suiContext.client, suiContext.network, method, params, options]);\n\n\treturn useSuspenseQuery(query);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport { useContext } from 'react';\n\nimport { HaneulClientContext } from '../components/HaneulClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(HaneulClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): HaneulJsonRpcClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type { HaneulJsonRpcClientOptions } from '@haneullabs/haneul/jsonRpc';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | HaneulJsonRpcClient = NetworkConfig | HaneulJsonRpcClient> =\n\tRecord<string, T>;\n\nexport interface HaneulClientProviderContext {\n\tclient: HaneulJsonRpcClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const HaneulClientContext = createContext<HaneulClientProviderContext | null>(null);\n\nexport type HaneulClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => HaneulJsonRpcClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getJsonRpcFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | HaneulJsonRpcClient,\n) {\n\tif (isSuiJsonRpcClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new HaneulJsonRpcClient(config);\n};\n\nexport function HaneulClientProvider<T extends NetworkConfigs>(props: HaneulClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): HaneulClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof HaneulJsonRpcClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as HaneulJsonRpcClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <HaneulClientContext.Provider value={ctx}>{children}</HaneulClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@haneullabs/haneul/jsonRpc';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\n\nimport { useSuiClientQuery } from './useHaneulClientQuery.js';\n\nexport function useResolveHaneulNSName(\n\taddress?: string | null,\n\toptions?: Omit<\n\t\tUseQueryOptions<ResolvedNameServiceNames, Error, string | null, unknown[]>,\n\t\t'queryFn' | 'queryKey' | 'select'\n\t>,\n): UseQueryResult<string | null, Error> {\n\treturn useSuiClientQuery(\n\t\t'resolveNameServiceNames',\n\t\t{\n\t\t\taddress: address!,\n\t\t\tlimit: 1,\n\t\t},\n\t\t{\n\t\t\t...options,\n\t\t\trefetchOnWindowFocus: false,\n\t\t\tretry: false,\n\t\t\tselect: (data) => (data.data.length > 0 ? data.data[0] : null),\n\t\t\tenabled: !!address && options?.enabled !== false,\n\t\t},\n\t);\n}\n"],
5
- "mappings": ";AASA,SAAS,cAAc,UAAU,wBAAwB;AACzD,SAAS,WAAAA,gBAAe;;;ACNxB,SAAS,kBAAkB;;;ACD3B,SAAS,uBAAuB,oBAAoB,2BAA2B;AAE/E,SAAS,eAAe,SAAS,gBAAgB;AAuFzC;AAxED,IAAM,sBAAsB,cAAkD,IAAI;AAkBzF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,sBAAsB,UAAU,EAAE;AACpD;;;ADhCO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,mBAAmB;AAEhD,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADsDO,SAAS,qBAIZ,MAG4B;AAC/B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,oBAAoB;AAEvC,SAAO,SAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;;;AGvFO,SAAS,uBACf,SACA,SAIuC;AACvC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,GAAG;AAAA,MACH,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP,QAAQ,CAAC,SAAU,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,IAAI;AAAA,MACzD,SAAS,CAAC,CAAC,WAAW,SAAS,YAAY;AAAA,IAC5C;AAAA,EACD;AACD;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type {\n\tUndefinedInitialDataOptions,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from '@tanstack/react-query';\nimport { queryOptions, useQuery, useSuspenseQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useHaneulClientContext } from './useHaneulClient.js';\n\nexport type HaneulRpcMethodName = {\n\t[K in keyof HaneulJsonRpcClient]: HaneulJsonRpcClient[K] extends\n\t\t| ((input: any) => Promise<any>)\n\t\t| (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof HaneulJsonRpcClient];\n\nexport type HaneulRpcMethods = {\n\t[K in HaneulRpcMethodName]: HaneulJsonRpcClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t\t}\n\t\t: HaneulJsonRpcClient[K] extends () => Promise<infer R>\n\t\t\t? {\n\t\t\t\t\tname: K;\n\t\t\t\t\tresult: R;\n\t\t\t\t\tparams: undefined | object;\n\t\t\t\t}\n\t\t\t: never;\n};\n\nexport type UseHaneulClientQueryOptions<T extends keyof HaneulRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<HaneulRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport type GetHaneulClientQueryOptions<T extends keyof HaneulRpcMethods> = {\n\tclient: HaneulJsonRpcClient;\n\tnetwork: string;\n\tmethod: T;\n\toptions?: PartialBy<\n\t\tOmit<UndefinedInitialDataOptions<HaneulRpcMethods[T]['result']>, 'queryFn'>,\n\t\t'queryKey'\n\t>;\n} & (undefined extends HaneulRpcMethods[T]['params']\n\t? { params?: HaneulRpcMethods[T]['params'] }\n\t: { params: HaneulRpcMethods[T]['params'] });\n\nexport function getHaneulClientQuery<T extends keyof HaneulRpcMethods>({\n\tclient,\n\tnetwork,\n\tmethod,\n\tparams,\n\toptions,\n}: GetHaneulClientQueryOptions<T>) {\n\treturn queryOptions<HaneulRpcMethods[T]['result']>({\n\t\t...options,\n\t\tqueryKey: [network, method, params],\n\t\tqueryFn: async () => {\n\t\t\treturn await client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useHaneulClientQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UseHaneulClientQueryOptions<T, TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UseHaneulClientQueryOptions<T, TData>]\n): UseQueryResult<TData, Error> {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UseHaneulClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useHaneulClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n\nexport function useHaneulClientSuspenseQuery<\n\tT extends keyof HaneulRpcMethods,\n\tTData = HaneulRpcMethods[T]['result'],\n>(\n\t...args: undefined extends HaneulRpcMethods[T]['params']\n\t\t? [method: T, params?: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n\t\t: [method: T, params: HaneulRpcMethods[T]['params'], options?: UndefinedInitialDataOptions<TData>]\n) {\n\tconst [method, params, options = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: HaneulRpcMethods[T]['params'],\n\t\toptions?: UndefinedInitialDataOptions<TData>,\n\t];\n\n\tconst suiContext = useHaneulClientContext();\n\n\tconst query = useMemo(() => {\n\t\treturn getHaneulClientQuery<T>({\n\t\t\tclient: suiContext.client,\n\t\t\tnetwork: suiContext.network,\n\t\t\tmethod,\n\t\t\tparams,\n\t\t\toptions,\n\t\t});\n\t}, [suiContext.client, suiContext.network, method, params, options]);\n\n\treturn useSuspenseQuery(query);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport { useContext } from 'react';\n\nimport { HaneulClientContext } from '../components/HaneulClientProvider.js';\n\nexport function useHaneulClientContext() {\n\tconst haneulClient = useContext(HaneulClientContext);\n\n\tif (!haneulClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider',\n\t\t);\n\t}\n\n\treturn haneulClient;\n}\n\nexport function useHaneulClient(): HaneulJsonRpcClient {\n\treturn useHaneulClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type { HaneulJsonRpcClientOptions } from '@haneullabs/haneul/jsonRpc';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | HaneulJsonRpcClient = NetworkConfig | HaneulJsonRpcClient> =\n\tRecord<string, T>;\n\nexport interface HaneulClientProviderContext {\n\tclient: HaneulJsonRpcClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const HaneulClientContext = createContext<HaneulClientProviderContext | null>(null);\n\nexport type HaneulClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => HaneulJsonRpcClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getJsonRpcFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | HaneulJsonRpcClient,\n) {\n\tif (isHaneulJsonRpcClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new HaneulJsonRpcClient(config);\n};\n\nexport function HaneulClientProvider<T extends NetworkConfigs>(props: HaneulClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): HaneulClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof HaneulJsonRpcClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as HaneulJsonRpcClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <HaneulClientContext.Provider value={ctx}>{children}</HaneulClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@haneullabs/haneul/jsonRpc';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\n\nimport { useHaneulClientQuery } from './useHaneulClientQuery.js';\n\nexport function useResolveHaneulNSName(\n\taddress?: string | null,\n\toptions?: Omit<\n\t\tUseQueryOptions<ResolvedNameServiceNames, Error, string | null, unknown[]>,\n\t\t'queryFn' | 'queryKey' | 'select'\n\t>,\n): UseQueryResult<string | null, Error> {\n\treturn useHaneulClientQuery(\n\t\t'resolveNameServiceNames',\n\t\t{\n\t\t\taddress: address!,\n\t\t\tlimit: 1,\n\t\t},\n\t\t{\n\t\t\t...options,\n\t\t\trefetchOnWindowFocus: false,\n\t\t\tretry: false,\n\t\t\tselect: (data) => (data.data.length > 0 ? data.data[0] : null),\n\t\t\tenabled: !!address && options?.enabled !== false,\n\t\t},\n\t);\n}\n"],
5
+ "mappings": ";AASA,SAAS,cAAc,UAAU,wBAAwB;AACzD,SAAS,WAAAA,gBAAe;;;ACNxB,SAAS,kBAAkB;;;ACD3B,SAAS,uBAAuB,uBAAuB,2BAA2B;AAElF,SAAS,eAAe,SAAS,gBAAgB;AAuFzC;AAxED,IAAM,sBAAsB,cAAkD,IAAI;AAkBzF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,sBAAsB,UAAU,EAAE;AACpD;;;ADhCO,SAAS,yBAAyB;AACxC,QAAM,eAAe,WAAW,mBAAmB;AAEnD,MAAI,CAAC,cAAc;AAClB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADsDO,SAAS,wBAIZ,MAG4B;AAC/B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,uBAAuB;AAE1C,SAAO,SAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;;;AGvFO,SAAS,uBACf,SACA,SAIuC;AACvC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,GAAG;AAAA,MACH,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP,QAAQ,CAAC,SAAU,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,IAAI;AAAA,MACzD,SAAS,CAAC,CAAC,WAAW,SAAS,YAAY;AAAA,IAC5C;AAAA,EACD;AACD;",
6
6
  "names": ["useMemo"]
7
7
  }
@@ -64,12 +64,12 @@ function useConnectWallet({
64
64
  if (!supportedIntents && wallet.features["haneul:getCapabilities"]) {
65
65
  supportedIntents = (await wallet.features["haneul:getCapabilities"].getCapabilities()).supportedIntents ?? [];
66
66
  }
67
- const connectedSuiAccounts = connectResult.accounts.filter(
67
+ const connectedHaneulAccounts = connectResult.accounts.filter(
68
68
  (account) => account.chains.some((chain) => chain.split(":")[0] === "haneul")
69
69
  );
70
- const selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);
71
- setWalletConnected(wallet, connectedSuiAccounts, selectedAccount, supportedIntents);
72
- return { accounts: connectedSuiAccounts };
70
+ const selectedAccount = getSelectedAccount(connectedHaneulAccounts, accountAddress);
71
+ setWalletConnected(wallet, connectedHaneulAccounts, selectedAccount, supportedIntents);
72
+ return { accounts: connectedHaneulAccounts };
73
73
  } catch (error) {
74
74
  setConnectionStatus("disconnected");
75
75
  throw error;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../src/utils/walletUtils.ts", "../../../src/hooks/wallet/useConnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useWallets.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from '@tanstack/react-query';\nimport { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {\n\tconst { mutateAsync: connectWallet } = useConnectWallet();\n\tconst autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);\n\tconst lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n\tconst lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);\n\tconst wallets = useWallets();\n\tconst { isConnected } = useCurrentWallet();\n\n\tconst [clientOnly, setClientOnly] = useState(false);\n\tconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\tuseIsomorphicLayoutEffect(() => {\n\t\tsetClientOnly(true);\n\t}, []);\n\n\tconst { data, isError } = useQuery({\n\t\tqueryKey: [\n\t\t\t'@haneullabs/dapp-kit',\n\t\t\t'autoconnect',\n\t\t\t{\n\t\t\t\tisConnected,\n\t\t\t\tautoConnectEnabled,\n\t\t\t\tlastConnectedWalletName,\n\t\t\t\tlastConnectedAccountAddress,\n\t\t\t\twalletCount: wallets.length,\n\t\t\t},\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\tif (!autoConnectEnabled) {\n\t\t\t\treturn 'disabled';\n\t\t\t}\n\n\t\t\tif (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {\n\t\t\t\treturn 'attempted';\n\t\t\t}\n\n\t\t\tconst wallet = wallets.find(\n\t\t\t\t(wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,\n\t\t\t);\n\t\t\tif (wallet) {\n\t\t\t\tawait connectWallet({\n\t\t\t\t\twallet,\n\t\t\t\t\taccountAddress: lastConnectedAccountAddress,\n\t\t\t\t\tsilent: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn 'attempted';\n\t\t},\n\t\tenabled: autoConnectEnabled,\n\t\tpersister: undefined,\n\t\tgcTime: 0,\n\t\tstaleTime: 0,\n\t\tnetworkMode: 'always',\n\t\tretry: false,\n\t\tretryOnMount: false,\n\t\trefetchInterval: false,\n\t\trefetchIntervalInBackground: false,\n\t\trefetchOnMount: false,\n\t\trefetchOnReconnect: false,\n\t\trefetchOnWindowFocus: false,\n\t});\n\n\tif (!autoConnectEnabled) {\n\t\treturn 'disabled';\n\t}\n\n\t// We always initialize with \"idle\" so that in SSR environments, we guarantee that the initial render states always agree:\n\tif (!clientOnly) {\n\t\treturn 'idle';\n\t}\n\n\tif (isConnected) {\n\t\treturn 'attempted';\n\t}\n\n\tif (!lastConnectedWalletName) {\n\t\treturn 'attempted';\n\t}\n\n\treturn isError ? 'attempted' : (data ?? 'idle');\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tMinimallyRequiredFeatures,\n\tWallet,\n\tWalletWithFeatures,\n\tWalletWithRequiredFeatures,\n} from '@haneullabs/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@haneullabs/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n\tpreferredWallets: string[],\n\twalletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\n) {\n\tconst walletsApi = getWallets();\n\tconst wallets = walletsApi.get();\n\n\tconst haneulWallets = wallets.filter(\n\t\t(wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n\t\t\tisWalletWithRequiredFeatureSet(wallet) && (!walletFilter || walletFilter(wallet)),\n\t);\n\n\treturn [\n\t\t// Preferred wallets, in order:\n\t\t...(preferredWallets\n\t\t\t.map((name) => haneulWallets.find((wallet) => wallet.name === name))\n\t\t\t.filter(Boolean) as WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures>[]),\n\n\t\t// Wallets in default order:\n\t\t...haneulWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n\t];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n\treturn wallet?.id ?? wallet?.name;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@haneullabs/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\tconst setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n\t\t\ttry {\n\t\t\t\tsetConnectionStatus('connecting');\n\n\t\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(connectArgs);\n\t\t\t\tlet supportedIntents = connectResult.supportedIntents;\n\t\t\t\tif (!supportedIntents && wallet.features['haneul:getCapabilities']) {\n\t\t\t\t\tsupportedIntents =\n\t\t\t\t\t\t(await wallet.features['haneul:getCapabilities'].getCapabilities()).supportedIntents ?? [];\n\t\t\t\t}\n\t\t\t\tconst connectedSuiAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'haneul'),\n\t\t\t\t);\n\t\t\t\tconst selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);\n\n\t\t\t\tsetWalletConnected(wallet, connectedSuiAccounts, selectedAccount, supportedIntents);\n\n\t\t\t\treturn { accounts: connectedSuiAccounts };\n\t\t\t} catch (error) {\n\t\t\t\tsetConnectionStatus('disconnected');\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransaction: formMutationKeyFn('sign-transaction'),\n\tsignAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\tconst supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t\tsupportedIntents,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n\treturn useWalletStore((state) => state.wallets);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from '@tanstack/react-query';\nimport { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {\n\tconst { mutateAsync: connectWallet } = useConnectWallet();\n\tconst autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);\n\tconst lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n\tconst lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);\n\tconst wallets = useWallets();\n\tconst { isConnected } = useCurrentWallet();\n\n\tconst [clientOnly, setClientOnly] = useState(false);\n\tconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\tuseIsomorphicLayoutEffect(() => {\n\t\tsetClientOnly(true);\n\t}, []);\n\n\tconst { data, isError } = useQuery({\n\t\tqueryKey: [\n\t\t\t'@haneullabs/dapp-kit',\n\t\t\t'autoconnect',\n\t\t\t{\n\t\t\t\tisConnected,\n\t\t\t\tautoConnectEnabled,\n\t\t\t\tlastConnectedWalletName,\n\t\t\t\tlastConnectedAccountAddress,\n\t\t\t\twalletCount: wallets.length,\n\t\t\t},\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\tif (!autoConnectEnabled) {\n\t\t\t\treturn 'disabled';\n\t\t\t}\n\n\t\t\tif (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {\n\t\t\t\treturn 'attempted';\n\t\t\t}\n\n\t\t\tconst wallet = wallets.find(\n\t\t\t\t(wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,\n\t\t\t);\n\t\t\tif (wallet) {\n\t\t\t\tawait connectWallet({\n\t\t\t\t\twallet,\n\t\t\t\t\taccountAddress: lastConnectedAccountAddress,\n\t\t\t\t\tsilent: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn 'attempted';\n\t\t},\n\t\tenabled: autoConnectEnabled,\n\t\tpersister: undefined,\n\t\tgcTime: 0,\n\t\tstaleTime: 0,\n\t\tnetworkMode: 'always',\n\t\tretry: false,\n\t\tretryOnMount: false,\n\t\trefetchInterval: false,\n\t\trefetchIntervalInBackground: false,\n\t\trefetchOnMount: false,\n\t\trefetchOnReconnect: false,\n\t\trefetchOnWindowFocus: false,\n\t});\n\n\tif (!autoConnectEnabled) {\n\t\treturn 'disabled';\n\t}\n\n\t// We always initialize with \"idle\" so that in SSR environments, we guarantee that the initial render states always agree:\n\tif (!clientOnly) {\n\t\treturn 'idle';\n\t}\n\n\tif (isConnected) {\n\t\treturn 'attempted';\n\t}\n\n\tif (!lastConnectedWalletName) {\n\t\treturn 'attempted';\n\t}\n\n\treturn isError ? 'attempted' : (data ?? 'idle');\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tMinimallyRequiredFeatures,\n\tWallet,\n\tWalletWithFeatures,\n\tWalletWithRequiredFeatures,\n} from '@haneullabs/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@haneullabs/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n\tpreferredWallets: string[],\n\twalletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\n) {\n\tconst walletsApi = getWallets();\n\tconst wallets = walletsApi.get();\n\n\tconst haneulWallets = wallets.filter(\n\t\t(wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n\t\t\tisWalletWithRequiredFeatureSet(wallet) && (!walletFilter || walletFilter(wallet)),\n\t);\n\n\treturn [\n\t\t// Preferred wallets, in order:\n\t\t...(preferredWallets\n\t\t\t.map((name) => haneulWallets.find((wallet) => wallet.name === name))\n\t\t\t.filter(Boolean) as WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures>[]),\n\n\t\t// Wallets in default order:\n\t\t...haneulWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n\t];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n\treturn wallet?.id ?? wallet?.name;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@haneullabs/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\tconst setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n\t\t\ttry {\n\t\t\t\tsetConnectionStatus('connecting');\n\n\t\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(connectArgs);\n\t\t\t\tlet supportedIntents = connectResult.supportedIntents;\n\t\t\t\tif (!supportedIntents && wallet.features['haneul:getCapabilities']) {\n\t\t\t\t\tsupportedIntents =\n\t\t\t\t\t\t(await wallet.features['haneul:getCapabilities'].getCapabilities()).supportedIntents ?? [];\n\t\t\t\t}\n\t\t\t\tconst connectedHaneulAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'haneul'),\n\t\t\t\t);\n\t\t\t\tconst selectedAccount = getSelectedAccount(connectedHaneulAccounts, accountAddress);\n\n\t\t\t\tsetWalletConnected(wallet, connectedHaneulAccounts, selectedAccount, supportedIntents);\n\n\t\t\t\treturn { accounts: connectedHaneulAccounts };\n\t\t\t} catch (error) {\n\t\t\t\tsetConnectionStatus('disconnected');\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransaction: formMutationKeyFn('sign-transaction'),\n\tsignAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\tconst supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t\tsupportedIntents,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n\treturn useWalletStore((state) => state.wallets);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["wallet"]
7
7
  }
@@ -54,12 +54,12 @@ function useConnectWallet({
54
54
  if (!supportedIntents && wallet.features["haneul:getCapabilities"]) {
55
55
  supportedIntents = (await wallet.features["haneul:getCapabilities"].getCapabilities()).supportedIntents ?? [];
56
56
  }
57
- const connectedSuiAccounts = connectResult.accounts.filter(
57
+ const connectedHaneulAccounts = connectResult.accounts.filter(
58
58
  (account) => account.chains.some((chain) => chain.split(":")[0] === "haneul")
59
59
  );
60
- const selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);
61
- setWalletConnected(wallet, connectedSuiAccounts, selectedAccount, supportedIntents);
62
- return { accounts: connectedSuiAccounts };
60
+ const selectedAccount = getSelectedAccount(connectedHaneulAccounts, accountAddress);
61
+ setWalletConnected(wallet, connectedHaneulAccounts, selectedAccount, supportedIntents);
62
+ return { accounts: connectedHaneulAccounts };
63
63
  } catch (error) {
64
64
  setConnectionStatus("disconnected");
65
65
  throw error;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/wallet/useConnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@haneullabs/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\tconst setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n\t\t\ttry {\n\t\t\t\tsetConnectionStatus('connecting');\n\n\t\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(connectArgs);\n\t\t\t\tlet supportedIntents = connectResult.supportedIntents;\n\t\t\t\tif (!supportedIntents && wallet.features['haneul:getCapabilities']) {\n\t\t\t\t\tsupportedIntents =\n\t\t\t\t\t\t(await wallet.features['haneul:getCapabilities'].getCapabilities()).supportedIntents ?? [];\n\t\t\t\t}\n\t\t\t\tconst connectedSuiAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'haneul'),\n\t\t\t\t);\n\t\t\t\tconst selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);\n\n\t\t\t\tsetWalletConnected(wallet, connectedSuiAccounts, selectedAccount, supportedIntents);\n\n\t\t\t\treturn { accounts: connectedSuiAccounts };\n\t\t\t} catch (error) {\n\t\t\t\tsetConnectionStatus('disconnected');\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransaction: formMutationKeyFn('sign-transaction'),\n\tsignAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
- "mappings": ";AAUA,SAAS,mBAAmB;;;ACLrB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,iBAAiB,kBAAkB,kBAAkB;AAAA,EACrD,2BAA2B,kBAAkB,8BAA8B;AAAA,EAC3E,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;ACjBA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAKpC;AACD,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAE/E,SAAO,YAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,YAAY,MAAM;AACjE,UAAI;AACH,4BAAoB,YAAY;AAEhC,cAAM,gBAAgB,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,WAAW;AACnF,YAAI,mBAAmB,cAAc;AACrC,YAAI,CAAC,oBAAoB,OAAO,SAAS,wBAAwB,GAAG;AACnE,8BACE,MAAM,OAAO,SAAS,wBAAwB,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;AAAA,QAC3F;AACA,cAAM,uBAAuB,cAAc,SAAS;AAAA,UAAO,CAAC,YAC3D,QAAQ,OAAO,KAAK,CAAC,UAAU,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,QAAQ;AAAA,QAChE;AACA,cAAM,kBAAkB,mBAAmB,sBAAsB,cAAc;AAE/E,2BAAmB,QAAQ,sBAAsB,iBAAiB,gBAAgB;AAElF,eAAO,EAAE,UAAU,qBAAqB;AAAA,MACzC,SAAS,OAAO;AACf,4BAAoB,cAAc;AAClC,cAAM;AAAA,MACP;AAAA,IACD;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AACjG,MAAI,kBAAkB,WAAW,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,gBAAgB;AACnB,UAAM,kBAAkB,kBAAkB,KAAK,CAAC,YAAY,QAAQ,YAAY,cAAc;AAC9F,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EAC9C;AAEA,SAAO,kBAAkB,CAAC;AAC3B;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@haneullabs/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\tconst setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n\t\t\ttry {\n\t\t\t\tsetConnectionStatus('connecting');\n\n\t\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(connectArgs);\n\t\t\t\tlet supportedIntents = connectResult.supportedIntents;\n\t\t\t\tif (!supportedIntents && wallet.features['haneul:getCapabilities']) {\n\t\t\t\t\tsupportedIntents =\n\t\t\t\t\t\t(await wallet.features['haneul:getCapabilities'].getCapabilities()).supportedIntents ?? [];\n\t\t\t\t}\n\t\t\t\tconst connectedHaneulAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'haneul'),\n\t\t\t\t);\n\t\t\t\tconst selectedAccount = getSelectedAccount(connectedHaneulAccounts, accountAddress);\n\n\t\t\t\tsetWalletConnected(wallet, connectedHaneulAccounts, selectedAccount, supportedIntents);\n\n\t\t\t\treturn { accounts: connectedHaneulAccounts };\n\t\t\t} catch (error) {\n\t\t\t\tsetConnectionStatus('disconnected');\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransaction: formMutationKeyFn('sign-transaction'),\n\tsignAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
+ "mappings": ";AAUA,SAAS,mBAAmB;;;ACLrB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,iBAAiB,kBAAkB,kBAAkB;AAAA,EACrD,2BAA2B,kBAAkB,8BAA8B;AAAA,EAC3E,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;ACjBA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAKpC;AACD,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAE/E,SAAO,YAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,YAAY,MAAM;AACjE,UAAI;AACH,4BAAoB,YAAY;AAEhC,cAAM,gBAAgB,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,WAAW;AACnF,YAAI,mBAAmB,cAAc;AACrC,YAAI,CAAC,oBAAoB,OAAO,SAAS,wBAAwB,GAAG;AACnE,8BACE,MAAM,OAAO,SAAS,wBAAwB,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;AAAA,QAC3F;AACA,cAAM,0BAA0B,cAAc,SAAS;AAAA,UAAO,CAAC,YAC9D,QAAQ,OAAO,KAAK,CAAC,UAAU,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,QAAQ;AAAA,QAChE;AACA,cAAM,kBAAkB,mBAAmB,yBAAyB,cAAc;AAElF,2BAAmB,QAAQ,yBAAyB,iBAAiB,gBAAgB;AAErF,eAAO,EAAE,UAAU,wBAAwB;AAAA,MAC5C,SAAS,OAAO;AACf,4BAAoB,cAAc;AAClC,cAAM;AAAA,MACP;AAAA,IACD;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AACjG,MAAI,kBAAkB,WAAW,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,gBAAgB;AACnB,UAAM,kBAAkB,kBAAkB,KAAK,CAAC,YAAY,QAAQ,YAAY,cAAc;AAC9F,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EAC9C;AAEA,SAAO,kBAAkB,CAAC;AAC3B;",
6
6
  "names": []
7
7
  }
@@ -32,7 +32,7 @@ var WalletFeatureNotSupportedError = class extends Error {
32
32
  import { useContext } from "react";
33
33
 
34
34
  // src/components/HaneulClientProvider.tsx
35
- import { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
35
+ import { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
36
36
  import { createContext, useMemo, useState } from "react";
37
37
  import { jsx } from "react/jsx-runtime";
38
38
  var HaneulClientContext = createContext(null);
@@ -41,14 +41,14 @@ var DEFAULT_NETWORKS = {
41
41
  };
42
42
 
43
43
  // src/hooks/useHaneulClient.ts
44
- function useSuiClientContext() {
45
- const suiClient = useContext(HaneulClientContext);
46
- if (!suiClient) {
44
+ function useHaneulClientContext() {
45
+ const haneulClient = useContext(HaneulClientContext);
46
+ if (!haneulClient) {
47
47
  throw new Error(
48
48
  "Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider"
49
49
  );
50
50
  }
51
- return suiClient;
51
+ return haneulClient;
52
52
  }
53
53
 
54
54
  // src/hooks/wallet/useWalletStore.ts
@@ -120,7 +120,7 @@ function useSignAndExecuteTransaction({
120
120
  } = {}) {
121
121
  const { currentWallet, supportedIntents } = useCurrentWallet();
122
122
  const currentAccount = useCurrentAccount();
123
- const { client, network } = useSuiClientContext();
123
+ const { client, network } = useHaneulClientContext();
124
124
  const executeTransaction = execute ?? (async ({ bytes, signature }) => {
125
125
  const { digest, rawEffects } = await client.executeTransactionBlock({
126
126
  transactionBlock: bytes,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/wallet/useSignAndExecuteTransaction.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/errors/walletErrors.ts", "../../../src/hooks/useHaneulClient.ts", "../../../src/components/HaneulClientProvider.tsx", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useCurrentAccount.ts", "../../../src/hooks/wallet/useCurrentWallet.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction } from '@haneullabs/haneul/transactions';\nimport { toBase64 } from '@haneullabs/haneul/utils';\nimport type {\n\tHaneulSignAndExecuteTransactionInput,\n\tHaneulSignAndExecuteTransactionOutput,\n} from '@haneullabs/wallet-standard';\nimport { signTransaction } from '@haneullabs/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport {\n\tWalletFeatureNotSupportedError,\n\tWalletNoAccountSelectedError,\n\tWalletNotConnectedError,\n} from '../../errors/walletErrors.js';\nimport type { PartialBy } from '../../types/utilityTypes.js';\nimport { useSuiClientContext } from '../useHaneulClient.js';\nimport { useCurrentAccount } from './useCurrentAccount.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\n\ntype UseSignAndExecuteTransactionArgs = PartialBy<\n\tOmit<HaneulSignAndExecuteTransactionInput, 'transaction'>,\n\t'account' | 'chain'\n> & {\n\ttransaction: Transaction | string;\n};\n\ntype UseSignAndExecuteTransactionResult = HaneulSignAndExecuteTransactionOutput;\n\ntype UseSignAndExecuteTransactionError =\n\t| WalletFeatureNotSupportedError\n\t| WalletNoAccountSelectedError\n\t| WalletNotConnectedError\n\t| Error;\n\ntype ExecuteTransactionResult =\n\t| {\n\t\t\tdigest: string;\n\t\t\trawEffects?: number[];\n\t }\n\t| {\n\t\t\teffects?: {\n\t\t\t\tbcs?: string;\n\t\t\t};\n\t };\n\ntype UseSignAndExecuteTransactionMutationOptions<Result extends ExecuteTransactionResult> = Omit<\n\tUseMutationOptions<\n\t\tResult,\n\t\tUseSignAndExecuteTransactionError,\n\t\tUseSignAndExecuteTransactionArgs,\n\t\tunknown\n\t>,\n\t'mutationFn'\n> & {\n\texecute?: ({ bytes, signature }: { bytes: string; signature: string }) => Promise<Result>;\n};\n\n/**\n * Mutation hook for prompting the user to sign and execute a transaction.\n */\nexport function useSignAndExecuteTransaction<\n\tResult extends ExecuteTransactionResult = UseSignAndExecuteTransactionResult,\n>({\n\tmutationKey,\n\texecute,\n\t...mutationOptions\n}: UseSignAndExecuteTransactionMutationOptions<Result> = {}): UseMutationResult<\n\tResult,\n\tUseSignAndExecuteTransactionError,\n\tUseSignAndExecuteTransactionArgs\n> {\n\tconst { currentWallet, supportedIntents } = useCurrentWallet();\n\tconst currentAccount = useCurrentAccount();\n\tconst { client, network } = useSuiClientContext();\n\n\tconst executeTransaction: ({\n\t\tbytes,\n\t\tsignature,\n\t}: {\n\t\tbytes: string;\n\t\tsignature: string;\n\t}) => Promise<ExecuteTransactionResult> =\n\t\texecute ??\n\t\t(async ({ bytes, signature }) => {\n\t\t\tconst { digest, rawEffects } = await client.executeTransactionBlock({\n\t\t\t\ttransactionBlock: bytes,\n\t\t\t\tsignature,\n\t\t\t\toptions: {\n\t\t\t\t\tshowRawEffects: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdigest,\n\t\t\t\trawEffects,\n\t\t\t\teffects: toBase64(new Uint8Array(rawEffects!)),\n\t\t\t\tbytes,\n\t\t\t\tsignature,\n\t\t\t};\n\t\t});\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.signAndExecuteTransaction(mutationKey),\n\t\tmutationFn: async ({ transaction, ...signTransactionArgs }): Promise<Result> => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\tconst signerAccount = signTransactionArgs.account ?? currentAccount;\n\t\t\tif (!signerAccount) {\n\t\t\t\tthrow new WalletNoAccountSelectedError(\n\t\t\t\t\t'No wallet account is selected to sign the transaction with.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!currentWallet.features['haneul:signTransaction'] &&\n\t\t\t\t!currentWallet.features['haneul:signTransactionBlock']\n\t\t\t) {\n\t\t\t\tthrow new WalletFeatureNotSupportedError(\n\t\t\t\t\t\"This wallet doesn't support the `signTransaction` feature.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof transaction !== 'string' && 'setSenderIfNotSet' in transaction) {\n\t\t\t\ttransaction.setSenderIfNotSet(signerAccount.address);\n\t\t\t}\n\n\t\t\tconst chain = signTransactionArgs.chain ?? `haneul:${network}`;\n\t\t\tconst { signature, bytes } = await signTransaction(currentWallet, {\n\t\t\t\t...signTransactionArgs,\n\t\t\t\ttransaction: {\n\t\t\t\t\tasync toJSON() {\n\t\t\t\t\t\treturn typeof transaction === 'string'\n\t\t\t\t\t\t\t? transaction\n\t\t\t\t\t\t\t: await transaction.toJSON({\n\t\t\t\t\t\t\t\t\tsupportedIntents,\n\t\t\t\t\t\t\t\t\tclient,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taccount: signerAccount,\n\t\t\t\tchain,\n\t\t\t});\n\n\t\t\tconst result = await executeTransaction({ bytes, signature });\n\n\t\t\treturn result as Result;\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransaction: formMutationKeyFn('sign-transaction'),\n\tsignAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport { useContext } from 'react';\n\nimport { HaneulClientContext } from '../components/HaneulClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(HaneulClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): HaneulJsonRpcClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type { HaneulJsonRpcClientOptions } from '@haneullabs/haneul/jsonRpc';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | HaneulJsonRpcClient = NetworkConfig | HaneulJsonRpcClient> =\n\tRecord<string, T>;\n\nexport interface HaneulClientProviderContext {\n\tclient: HaneulJsonRpcClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const HaneulClientContext = createContext<HaneulClientProviderContext | null>(null);\n\nexport type HaneulClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => HaneulJsonRpcClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getJsonRpcFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | HaneulJsonRpcClient,\n) {\n\tif (isSuiJsonRpcClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new HaneulJsonRpcClient(config);\n};\n\nexport function HaneulClientProvider<T extends NetworkConfigs>(props: HaneulClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): HaneulClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof HaneulJsonRpcClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as HaneulJsonRpcClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <HaneulClientContext.Provider value={ctx}>{children}</HaneulClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@haneullabs/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet account that is currently selected, if one exists.\n */\nexport function useCurrentAccount(): WalletAccount | null {\n\treturn useWalletStore((state) => state.currentAccount);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\tconst supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t\tsupportedIntents,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction } from '@haneullabs/haneul/transactions';\nimport { toBase64 } from '@haneullabs/haneul/utils';\nimport type {\n\tHaneulSignAndExecuteTransactionInput,\n\tHaneulSignAndExecuteTransactionOutput,\n} from '@haneullabs/wallet-standard';\nimport { signTransaction } from '@haneullabs/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport {\n\tWalletFeatureNotSupportedError,\n\tWalletNoAccountSelectedError,\n\tWalletNotConnectedError,\n} from '../../errors/walletErrors.js';\nimport type { PartialBy } from '../../types/utilityTypes.js';\nimport { useHaneulClientContext } from '../useHaneulClient.js';\nimport { useCurrentAccount } from './useCurrentAccount.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\n\ntype UseSignAndExecuteTransactionArgs = PartialBy<\n\tOmit<HaneulSignAndExecuteTransactionInput, 'transaction'>,\n\t'account' | 'chain'\n> & {\n\ttransaction: Transaction | string;\n};\n\ntype UseSignAndExecuteTransactionResult = HaneulSignAndExecuteTransactionOutput;\n\ntype UseSignAndExecuteTransactionError =\n\t| WalletFeatureNotSupportedError\n\t| WalletNoAccountSelectedError\n\t| WalletNotConnectedError\n\t| Error;\n\ntype ExecuteTransactionResult =\n\t| {\n\t\t\tdigest: string;\n\t\t\trawEffects?: number[];\n\t }\n\t| {\n\t\t\teffects?: {\n\t\t\t\tbcs?: string;\n\t\t\t};\n\t };\n\ntype UseSignAndExecuteTransactionMutationOptions<Result extends ExecuteTransactionResult> = Omit<\n\tUseMutationOptions<\n\t\tResult,\n\t\tUseSignAndExecuteTransactionError,\n\t\tUseSignAndExecuteTransactionArgs,\n\t\tunknown\n\t>,\n\t'mutationFn'\n> & {\n\texecute?: ({ bytes, signature }: { bytes: string; signature: string }) => Promise<Result>;\n};\n\n/**\n * Mutation hook for prompting the user to sign and execute a transaction.\n */\nexport function useSignAndExecuteTransaction<\n\tResult extends ExecuteTransactionResult = UseSignAndExecuteTransactionResult,\n>({\n\tmutationKey,\n\texecute,\n\t...mutationOptions\n}: UseSignAndExecuteTransactionMutationOptions<Result> = {}): UseMutationResult<\n\tResult,\n\tUseSignAndExecuteTransactionError,\n\tUseSignAndExecuteTransactionArgs\n> {\n\tconst { currentWallet, supportedIntents } = useCurrentWallet();\n\tconst currentAccount = useCurrentAccount();\n\tconst { client, network } = useHaneulClientContext();\n\n\tconst executeTransaction: ({\n\t\tbytes,\n\t\tsignature,\n\t}: {\n\t\tbytes: string;\n\t\tsignature: string;\n\t}) => Promise<ExecuteTransactionResult> =\n\t\texecute ??\n\t\t(async ({ bytes, signature }) => {\n\t\t\tconst { digest, rawEffects } = await client.executeTransactionBlock({\n\t\t\t\ttransactionBlock: bytes,\n\t\t\t\tsignature,\n\t\t\t\toptions: {\n\t\t\t\t\tshowRawEffects: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdigest,\n\t\t\t\trawEffects,\n\t\t\t\teffects: toBase64(new Uint8Array(rawEffects!)),\n\t\t\t\tbytes,\n\t\t\t\tsignature,\n\t\t\t};\n\t\t});\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.signAndExecuteTransaction(mutationKey),\n\t\tmutationFn: async ({ transaction, ...signTransactionArgs }): Promise<Result> => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\tconst signerAccount = signTransactionArgs.account ?? currentAccount;\n\t\t\tif (!signerAccount) {\n\t\t\t\tthrow new WalletNoAccountSelectedError(\n\t\t\t\t\t'No wallet account is selected to sign the transaction with.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!currentWallet.features['haneul:signTransaction'] &&\n\t\t\t\t!currentWallet.features['haneul:signTransactionBlock']\n\t\t\t) {\n\t\t\t\tthrow new WalletFeatureNotSupportedError(\n\t\t\t\t\t\"This wallet doesn't support the `signTransaction` feature.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof transaction !== 'string' && 'setSenderIfNotSet' in transaction) {\n\t\t\t\ttransaction.setSenderIfNotSet(signerAccount.address);\n\t\t\t}\n\n\t\t\tconst chain = signTransactionArgs.chain ?? `haneul:${network}`;\n\t\t\tconst { signature, bytes } = await signTransaction(currentWallet, {\n\t\t\t\t...signTransactionArgs,\n\t\t\t\ttransaction: {\n\t\t\t\t\tasync toJSON() {\n\t\t\t\t\t\treturn typeof transaction === 'string'\n\t\t\t\t\t\t\t? transaction\n\t\t\t\t\t\t\t: await transaction.toJSON({\n\t\t\t\t\t\t\t\t\tsupportedIntents,\n\t\t\t\t\t\t\t\t\tclient,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taccount: signerAccount,\n\t\t\t\tchain,\n\t\t\t});\n\n\t\t\tconst result = await executeTransaction({ bytes, signature });\n\n\t\t\treturn result as Result;\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransaction: formMutationKeyFn('sign-transaction'),\n\tsignAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport { useContext } from 'react';\n\nimport { HaneulClientContext } from '../components/HaneulClientProvider.js';\n\nexport function useHaneulClientContext() {\n\tconst haneulClient = useContext(HaneulClientContext);\n\n\tif (!haneulClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider',\n\t\t);\n\t}\n\n\treturn haneulClient;\n}\n\nexport function useHaneulClient(): HaneulJsonRpcClient {\n\treturn useHaneulClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from '@haneullabs/haneul/jsonRpc';\nimport type { HaneulJsonRpcClientOptions } from '@haneullabs/haneul/jsonRpc';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | HaneulJsonRpcClient = NetworkConfig | HaneulJsonRpcClient> =\n\tRecord<string, T>;\n\nexport interface HaneulClientProviderContext {\n\tclient: HaneulJsonRpcClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const HaneulClientContext = createContext<HaneulClientProviderContext | null>(null);\n\nexport type HaneulClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => HaneulJsonRpcClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getJsonRpcFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | HaneulJsonRpcClient,\n) {\n\tif (isHaneulJsonRpcClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new HaneulJsonRpcClient(config);\n};\n\nexport function HaneulClientProvider<T extends NetworkConfigs>(props: HaneulClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): HaneulClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof HaneulJsonRpcClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as HaneulJsonRpcClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <HaneulClientContext.Provider value={ctx}>{children}</HaneulClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@haneullabs/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet account that is currently selected, if one exists.\n */\nexport function useCurrentAccount(): WalletAccount | null {\n\treturn useWalletStore((state) => state.currentAccount);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\tconst supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t\tsupportedIntents,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["useContext", "createContext", "useContext"]
7
7
  }
@@ -30,7 +30,7 @@ function formMutationKeyFn(baseEntity) {
30
30
  import { useContext } from "react";
31
31
 
32
32
  // src/components/HaneulClientProvider.tsx
33
- import { getJsonRpcFullnodeUrl, isSuiJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
33
+ import { getJsonRpcFullnodeUrl, isHaneulJsonRpcClient, HaneulJsonRpcClient } from "@haneullabs/haneul/jsonRpc";
34
34
  import { createContext, useMemo, useState } from "react";
35
35
  import { jsx } from "react/jsx-runtime";
36
36
  var HaneulClientContext = createContext(null);
@@ -39,14 +39,14 @@ var DEFAULT_NETWORKS = {
39
39
  };
40
40
 
41
41
  // src/hooks/useHaneulClient.ts
42
- function useSuiClientContext() {
43
- const suiClient = useContext(HaneulClientContext);
44
- if (!suiClient) {
42
+ function useHaneulClientContext() {
43
+ const haneulClient = useContext(HaneulClientContext);
44
+ if (!haneulClient) {
45
45
  throw new Error(
46
46
  "Could not find HaneulClientContext. Ensure that you have set up the HaneulClientProvider"
47
47
  );
48
48
  }
49
- return suiClient;
49
+ return haneulClient;
50
50
  }
51
51
 
52
52
  // src/hooks/wallet/useWalletStore.ts
@@ -117,7 +117,7 @@ function useSignPersonalMessage({
117
117
  } = {}) {
118
118
  const { currentWallet } = useCurrentWallet();
119
119
  const currentAccount = useCurrentAccount();
120
- const { network } = useSuiClientContext();
120
+ const { network } = useHaneulClientContext();
121
121
  return useMutation({
122
122
  mutationKey: walletMutationKeys.signPersonalMessage(mutationKey),
123
123
  mutationFn: async (signPersonalMessageArgs) => {