@wallet-ui/react 1.0.0 → 1.1.0-canary-20250302003059

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 (33) hide show
  1. package/dist/index.browser.cjs +54 -78
  2. package/dist/index.browser.cjs.map +1 -1
  3. package/dist/index.browser.mjs +42 -69
  4. package/dist/index.browser.mjs.map +1 -1
  5. package/dist/index.native.mjs +42 -69
  6. package/dist/index.native.mjs.map +1 -1
  7. package/dist/index.node.cjs +54 -78
  8. package/dist/index.node.cjs.map +1 -1
  9. package/dist/index.node.mjs +42 -69
  10. package/dist/index.node.mjs.map +1 -1
  11. package/dist/types/index.d.ts +5 -4
  12. package/dist/types/index.d.ts.map +1 -1
  13. package/dist/types/solana-client-context.d.ts +3 -0
  14. package/dist/types/solana-client-context.d.ts.map +1 -0
  15. package/dist/types/solana-client-provider.d.ts +7 -0
  16. package/dist/types/solana-client-provider.d.ts.map +1 -0
  17. package/dist/types/solana-cluster-context.d.ts +17 -0
  18. package/dist/types/solana-cluster-context.d.ts.map +1 -0
  19. package/dist/types/solana-cluster-provider.d.ts +7 -0
  20. package/dist/types/solana-cluster-provider.d.ts.map +1 -0
  21. package/dist/types/solana-provider.d.ts +3 -3
  22. package/dist/types/solana-provider.d.ts.map +1 -1
  23. package/dist/types/solana-wallet-context.d.ts +1 -1
  24. package/dist/types/solana-wallet-context.d.ts.map +1 -1
  25. package/package.json +3 -3
  26. package/dist/types/solana-chain-context.d.ts +0 -20
  27. package/dist/types/solana-chain-context.d.ts.map +0 -1
  28. package/dist/types/solana-chain-provider.d.ts +0 -7
  29. package/dist/types/solana-chain-provider.d.ts.map +0 -1
  30. package/dist/types/solana-rpc-context.d.ts +0 -11
  31. package/dist/types/solana-rpc-context.d.ts.map +0 -1
  32. package/dist/types/solana-rpc-provider.d.ts +0 -7
  33. package/dist/types/solana-rpc-provider.d.ts.map +0 -1
@@ -1,29 +1,12 @@
1
- import { devnet, testnet, createSolanaRpc, createSolanaRpcSubscriptions, address } from '@solana/web3.js';
1
+ export * from '@wallet-ui/core';
2
2
  import React4, { createContext, useContext, useMemo, useState, useEffect, useCallback } from 'react';
3
+ import { createSolanaClient, address } from 'gill';
3
4
  import { useWallets, uiWalletAccountsAreSame, uiWalletAccountBelongsToUiWallet, getUiWalletAccountStorageKey } from '@wallet-standard/react';
4
5
 
5
- // src/solana-chain-context.tsx
6
- var CHAIN_CONFIG_DEVNET = Object.freeze({
7
- id: "solana:devnet",
8
- label: "Devnet",
9
- rpcSubscriptionsUrl: devnet("wss://api.devnet.solana.com"),
10
- rpcUrl: devnet("https://api.devnet.solana.com")
11
- });
12
- var CHAIN_CONFIG_LOCAL = Object.freeze({
13
- id: "solana:local",
14
- label: "Local",
15
- rpcSubscriptionsUrl: "ws://localhost:8900",
16
- rpcUrl: "http://localhost:8899"
17
- });
18
- var CHAIN_CONFIG_TESTNET = Object.freeze({
19
- id: "solana:testnet",
20
- label: "Testnet",
21
- rpcSubscriptionsUrl: testnet("wss://api.testnet.solana.com"),
22
- rpcUrl: testnet("https://api.testnet.solana.com")
23
- });
24
- var SolanaChainContext = createContext({});
25
- function useSolanaChain() {
26
- return useContext(SolanaChainContext);
6
+ // src/index.ts
7
+ var SolanaClusterContext = createContext({});
8
+ function useSolanaCluster() {
9
+ return useContext(SolanaClusterContext);
27
10
  }
28
11
  function useLocalStorage(key, initialValue) {
29
12
  const [storedValue, setStoredValue] = useState(() => {
@@ -62,65 +45,51 @@ function useLocalStorage(key, initialValue) {
62
45
  return [storedValue, setValue];
63
46
  }
64
47
 
65
- // src/solana-chain-provider.tsx
66
- var STORAGE_KEY = "placeholder:selected-chain";
67
- function SolanaChainProvider({ chains, children }) {
68
- const [chainId, setChainId] = useLocalStorage(STORAGE_KEY, "solana:devnet");
69
- if (!chains.length) {
70
- throw new Error("No chains provided");
48
+ // src/solana-cluster-provider.tsx
49
+ var STORAGE_KEY = "placeholder:selected-cluster";
50
+ function SolanaClusterProvider({ clusters, children }) {
51
+ const [clusterId, setClusterId] = useLocalStorage(STORAGE_KEY, "solana:devnet");
52
+ if (!clusters.length) {
53
+ throw new Error("No clusters provided");
71
54
  }
72
- const chain = useMemo(() => {
73
- for (const chain2 of chains) {
74
- if (chain2.id === chainId) {
75
- return chain2;
55
+ const cluster = useMemo(() => {
56
+ for (const cluster2 of clusters) {
57
+ if (cluster2.id === clusterId) {
58
+ return cluster2;
76
59
  }
77
60
  }
78
- return chains[0];
79
- }, [chainId, chains]);
61
+ return clusters[0];
62
+ }, [clusterId, clusters]);
80
63
  return /* @__PURE__ */ React4.createElement(
81
- SolanaChainContext.Provider,
64
+ SolanaClusterContext.Provider,
82
65
  {
83
66
  value: useMemo(
84
67
  () => ({
85
- chain,
86
- chains,
87
- setChain(chain2) {
88
- localStorage.setItem(STORAGE_KEY, chain2);
89
- setChainId(chain2);
68
+ cluster,
69
+ clusters,
70
+ setCluster(cluster2) {
71
+ localStorage.setItem(STORAGE_KEY, cluster2);
72
+ setClusterId(cluster2);
90
73
  }
91
74
  }),
92
- [chain, chains]
75
+ [cluster, clusters]
93
76
  )
94
77
  },
95
78
  children
96
79
  );
97
80
  }
98
- var SolanaRpcContext = createContext({
99
- rpc: createSolanaRpc(devnet("https://api.devnet.solana.com")),
100
- rpcSubscriptions: createSolanaRpcSubscriptions(devnet("wss://api.devnet.solana.com"))
101
- });
102
- function useSolanaRpc() {
103
- return useContext(SolanaRpcContext);
81
+ var SolanaClientContext = createContext({});
82
+ function useSolanaClient() {
83
+ return useContext(SolanaClientContext);
104
84
  }
105
85
 
106
- // src/solana-rpc-provider.tsx
107
- function SolanaRpcProvider({ children }) {
108
- const { chain } = useSolanaChain();
109
- return /* @__PURE__ */ React4.createElement(
110
- SolanaRpcContext.Provider,
111
- {
112
- value: useMemo(
113
- () => ({
114
- rpc: createSolanaRpc(chain.rpcUrl),
115
- rpcSubscriptions: createSolanaRpcSubscriptions(
116
- chain.rpcSubscriptionsUrl ? chain.rpcSubscriptionsUrl : chain.rpcUrl.replace("https", "wss").replace("8899", "8900")
117
- )
118
- }),
119
- [chain]
120
- )
121
- },
122
- children
123
- );
86
+ // src/solana-client-provider.tsx
87
+ function SolanaClientProvider({
88
+ children,
89
+ urlOrMoniker
90
+ }) {
91
+ const value = useMemo(() => createSolanaClient({ urlOrMoniker }), [urlOrMoniker]);
92
+ return /* @__PURE__ */ React4.createElement(SolanaClientContext.Provider, { value }, children);
124
93
  }
125
94
  var SolanaWalletContext = createContext([
126
95
  void 0,
@@ -210,10 +179,14 @@ function SolanaWalletProvider({ children }) {
210
179
  }
211
180
 
212
181
  // src/solana-provider.tsx
213
- function SolanaProvider({ chains, children }) {
214
- return /* @__PURE__ */ React4.createElement(SolanaChainProvider, { chains }, /* @__PURE__ */ React4.createElement(SolanaRpcProvider, null, /* @__PURE__ */ React4.createElement(SolanaWalletProvider, null, children)));
182
+ function SolanaProvider({ clusters, children }) {
183
+ return /* @__PURE__ */ React4.createElement(SolanaClusterProvider, { clusters }, /* @__PURE__ */ React4.createElement(SolanaClientProviderLoader, null, /* @__PURE__ */ React4.createElement(SolanaWalletProvider, null, children)));
184
+ }
185
+ function SolanaClientProviderLoader({ children }) {
186
+ const { cluster } = useSolanaCluster();
187
+ return /* @__PURE__ */ React4.createElement(SolanaClientProvider, { urlOrMoniker: cluster.urlOrMoniker }, children);
215
188
  }
216
189
 
217
- export { CHAIN_CONFIG_DEVNET, CHAIN_CONFIG_LOCAL, CHAIN_CONFIG_TESTNET, SolanaChainContext, SolanaChainProvider, SolanaProvider, SolanaRpcContext, SolanaRpcProvider, SolanaWalletContext, SolanaWalletProvider, useSolanaChain, useSolanaRpc, useSolanaWallet, useSolanaWalletAddress };
190
+ export { SolanaClientContext, SolanaClientProvider, SolanaClusterContext, SolanaClusterProvider, SolanaProvider, SolanaWalletContext, SolanaWalletProvider, useSolanaClient, useSolanaCluster, useSolanaWallet, useSolanaWalletAddress };
218
191
  //# sourceMappingURL=index.node.mjs.map
219
192
  //# sourceMappingURL=index.node.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/solana-chain-context.tsx","../src/use-local-storage.ts","../src/solana-chain-provider.tsx","../src/solana-rpc-context.tsx","../src/solana-rpc-provider.tsx","../src/solana-wallet-context.tsx","../src/solana-wallet-provider.tsx","../src/solana-provider.tsx"],"names":["chain","React","createContext","devnet","useContext","useMemo","createSolanaRpc","createSolanaRpcSubscriptions","STORAGE_KEY","useState","setSelectedWalletAccount"],"mappings":"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","file":"index.node.mjs","sourcesContent":["import { devnet, testnet } from '@solana/web3.js';\nimport { SolanaChain } from '@wallet-ui/core';\nimport { createContext, useContext } from 'react';\n\nexport type SolanaChainContextProps = Readonly<{\n chain: SolanaChain;\n chains: SolanaChain[];\n setChain?(chain: `solana:${string}`): void;\n}>;\n\nexport const CHAIN_CONFIG_DEVNET: SolanaChain = Object.freeze({\n id: 'solana:devnet',\n label: 'Devnet',\n rpcSubscriptionsUrl: devnet('wss://api.devnet.solana.com'),\n rpcUrl: devnet('https://api.devnet.solana.com'),\n});\nexport const CHAIN_CONFIG_LOCAL: SolanaChain = Object.freeze({\n id: 'solana:local',\n label: 'Local',\n rpcSubscriptionsUrl: 'ws://localhost:8900',\n rpcUrl: 'http://localhost:8899',\n});\nexport const CHAIN_CONFIG_TESTNET: SolanaChain = Object.freeze({\n id: 'solana:testnet',\n label: 'Testnet',\n rpcSubscriptionsUrl: testnet('wss://api.testnet.solana.com'),\n rpcUrl: testnet('https://api.testnet.solana.com'),\n});\n\nexport const SolanaChainContext = createContext<SolanaChainContextProps>({} as SolanaChainContextProps);\n\nexport function useSolanaChain() {\n return useContext(SolanaChainContext);\n}\n","import { useCallback, useState } from 'react';\n\nexport function useLocalStorage<T>(key: string, initialValue: T) {\n // State to store our value\n const [storedValue, setStoredValue] = useState<T>(() => {\n try {\n // Check if we're on the client side\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n const item = window.localStorage.getItem(key);\n // For wallet-related data, validate the stored value\n if (key.includes('wallet') || key.includes('account')) {\n // Return initial value if stored data might be stale\n return initialValue;\n }\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.warn(`Error reading localStorage key \"${key}\":`, error);\n return initialValue;\n }\n });\n\n // Return a wrapped version of useState's setter function that persists the new value to localStorage\n const setValue = useCallback(\n (value: T | ((val: T) => T)) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n\n // Save state\n setStoredValue(valueToStore);\n\n // Save to localStorage\n if (typeof window !== 'undefined') {\n if (valueToStore === undefined || valueToStore === null) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n }\n }\n } catch (error) {\n console.warn(`Error setting localStorage key \"${key}\":`, error);\n }\n },\n [key, storedValue],\n );\n\n return [storedValue, setValue] as const;\n}\n","import { SolanaChain } from '@wallet-ui/core';\nimport React, { ReactNode, useMemo } from 'react';\n\nimport { SolanaChainContext } from './solana-chain-context';\nimport { useLocalStorage } from './use-local-storage';\n\nconst STORAGE_KEY = 'placeholder:selected-chain';\n\nexport function SolanaChainProvider({ chains, children }: { chains: SolanaChain[]; children: ReactNode }) {\n const [chainId, setChainId] = useLocalStorage(STORAGE_KEY, 'solana:devnet');\n\n if (!chains.length) {\n throw new Error('No chains provided');\n }\n\n const chain = useMemo<SolanaChain>(() => {\n for (const chain of chains) {\n if (chain.id === chainId) {\n return chain;\n }\n }\n return chains[0];\n }, [chainId, chains]);\n\n return (\n <SolanaChainContext.Provider\n value={useMemo(\n () => ({\n chain,\n chains,\n setChain(chain) {\n localStorage.setItem(STORAGE_KEY, chain);\n setChainId(chain);\n },\n }),\n [chain, chains],\n )}\n >\n {children}\n </SolanaChainContext.Provider>\n );\n}\n","import type { Rpc, RpcSubscriptions, SolanaRpcApiDevnet, SolanaRpcSubscriptionsApi } from '@solana/web3.js';\nimport { createSolanaRpc, createSolanaRpcSubscriptions, devnet } from '@solana/web3.js';\nimport { createContext, useContext } from 'react';\n\nexport type SolanaRpc = Rpc<SolanaRpcApiDevnet>;\n\nexport const SolanaRpcContext = createContext<{\n rpc: SolanaRpc; // Limit the API to only those methods found on Mainnet (ie. not `requestAirdrop`)\n rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;\n}>({\n rpc: createSolanaRpc(devnet('https://api.devnet.solana.com')),\n rpcSubscriptions: createSolanaRpcSubscriptions(devnet('wss://api.devnet.solana.com')),\n});\n\nexport function useSolanaRpc() {\n return useContext(SolanaRpcContext);\n}\n","import { createSolanaRpc, createSolanaRpcSubscriptions } from '@solana/web3.js';\nimport React, { ReactNode, useMemo } from 'react';\n\nimport { useSolanaChain } from './solana-chain-context';\nimport { SolanaRpc, SolanaRpcContext } from './solana-rpc-context';\n\ntype Props = Readonly<{\n children: ReactNode;\n}>;\n\nexport function SolanaRpcProvider({ children }: Props) {\n const { chain } = useSolanaChain();\n\n return (\n <SolanaRpcContext.Provider\n value={useMemo(\n () => ({\n rpc: createSolanaRpc(chain.rpcUrl) as SolanaRpc,\n rpcSubscriptions: createSolanaRpcSubscriptions(\n chain.rpcSubscriptionsUrl\n ? chain.rpcSubscriptionsUrl\n : chain.rpcUrl.replace('https', 'wss').replace('8899', '8900'),\n ),\n }),\n [chain],\n )}\n >\n {children}\n </SolanaRpcContext.Provider>\n );\n}\n","import { address } from '@solana/web3.js';\nimport type { UiWalletAccount } from '@wallet-standard/react';\nimport { createContext, Dispatch, SetStateAction, useContext } from 'react';\n\nexport type SelectedWalletAccountState = UiWalletAccount | undefined;\n\nexport const SolanaWalletContext = createContext<\n readonly [\n selectedWalletAccount: SelectedWalletAccountState,\n setSelectedWalletAccount: Dispatch<SetStateAction<SelectedWalletAccountState>>,\n ]\n>([\n undefined /* selectedWalletAccount */,\n function setSelectedWalletAccount() {\n /* empty */\n },\n]);\n\nexport function useSolanaWallet() {\n return useContext(SolanaWalletContext);\n}\n\nexport function useSolanaWalletAddress() {\n const [wallet] = useSolanaWallet();\n if (!wallet?.address) {\n return null;\n }\n return address(wallet.address);\n}\n","import {\n getUiWalletAccountStorageKey,\n UiWallet,\n uiWalletAccountBelongsToUiWallet,\n uiWalletAccountsAreSame,\n useWallets,\n} from '@wallet-standard/react';\nimport React, { Dispatch, ReactNode, SetStateAction, useEffect, useMemo, useState } from 'react';\n\nimport { SelectedWalletAccountState, SolanaWalletContext } from './solana-wallet-context';\nimport { useLocalStorage } from './use-local-storage';\n\nconst STORAGE_KEY = 'placeholder:selected-wallet-and-address';\n\nlet wasSetterInvoked = false;\n\nfunction getSavedWalletAccount(wallets: readonly UiWallet[], savedWalletNameAndAddress: string | null) {\n if (wasSetterInvoked) {\n // After the user makes an explicit choice of wallet, stop trying to auto-select the\n // saved wallet, if and when it appears.\n return;\n }\n if (!savedWalletNameAndAddress || typeof savedWalletNameAndAddress !== 'string') {\n return;\n }\n const [savedWalletName, savedAccountAddress] = savedWalletNameAndAddress.split(':');\n if (!savedWalletName || !savedAccountAddress) {\n return;\n }\n for (const wallet of wallets) {\n if (wallet.name === savedWalletName) {\n for (const account of wallet.accounts) {\n if (account.address === savedAccountAddress) {\n return account;\n }\n }\n }\n }\n}\n\n/**\n * Saves the selected wallet account's storage key to the browser's local storage. In future\n * sessions it will try to return that same wallet account, or at least one from the same brand of\n * wallet if the wallet from which it came is still in the Wallet Standard registry.\n */\nexport function SolanaWalletProvider({ children }: { children: ReactNode }) {\n const [storedKey, setStoredKey] = useLocalStorage<string | null>(STORAGE_KEY, null);\n const wallets = useWallets();\n const [selectedWalletAccount, setSelectedWalletAccountInternal] = useState<SelectedWalletAccountState>(() =>\n getSavedWalletAccount(wallets, storedKey),\n );\n const setSelectedWalletAccount: Dispatch<SetStateAction<SelectedWalletAccountState>> = setStateAction => {\n setSelectedWalletAccountInternal(prevSelectedWalletAccount => {\n wasSetterInvoked = true;\n const nextWalletAccount =\n typeof setStateAction === 'function' ? setStateAction(prevSelectedWalletAccount) : setStateAction;\n const accountKey = nextWalletAccount ? getUiWalletAccountStorageKey(nextWalletAccount) : undefined;\n if (accountKey) {\n setStoredKey(accountKey);\n } else {\n setStoredKey(null);\n }\n return nextWalletAccount;\n });\n };\n useEffect(() => {\n const savedWalletAccount = getSavedWalletAccount(wallets, storedKey);\n if (savedWalletAccount) {\n setSelectedWalletAccountInternal(savedWalletAccount);\n }\n }, [wallets]);\n const walletAccount = useMemo(() => {\n if (selectedWalletAccount) {\n for (const uiWallet of wallets) {\n for (const uiWalletAccount of uiWallet.accounts) {\n if (uiWalletAccountsAreSame(selectedWalletAccount, uiWalletAccount)) {\n return uiWalletAccount;\n }\n }\n if (uiWalletAccountBelongsToUiWallet(selectedWalletAccount, uiWallet) && uiWallet.accounts[0]) {\n // If the selected account belongs to this connected wallet, at least, then\n // select one of its accounts.\n return uiWallet.accounts[0];\n }\n }\n }\n }, [selectedWalletAccount, wallets]);\n useEffect(() => {\n // If there is a selected wallet account but the wallet to which it belongs has since\n // disconnected, clear the selected wallet.\n if (selectedWalletAccount && !walletAccount) {\n setSelectedWalletAccountInternal(undefined);\n }\n }, [selectedWalletAccount, walletAccount]);\n return (\n <SolanaWalletContext.Provider value={useMemo(() => [walletAccount, setSelectedWalletAccount], [walletAccount])}>\n {children}\n </SolanaWalletContext.Provider>\n );\n}\n","import { SolanaChain } from '@wallet-ui/core';\nimport React, { ReactNode } from 'react';\n\nimport { SolanaChainProvider } from './solana-chain-provider';\nimport { SolanaRpcProvider } from './solana-rpc-provider';\nimport { SolanaWalletProvider } from './solana-wallet-provider';\n\nexport function SolanaProvider({ chains, children }: { chains: SolanaChain[]; children: ReactNode }) {\n return (\n <SolanaChainProvider chains={chains}>\n <SolanaRpcProvider>\n <SolanaWalletProvider>{children}</SolanaWalletProvider>\n </SolanaRpcProvider>\n </SolanaChainProvider>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/solana-cluster-context.tsx","../src/use-local-storage.ts","../src/solana-cluster-provider.tsx","../src/solana-client-context.tsx","../src/solana-client-provider.tsx","../src/solana-wallet-context.tsx","../src/solana-wallet-provider.tsx","../src/solana-provider.tsx"],"names":["cluster","React","createContext","useContext","useMemo","STORAGE_KEY","useState","setSelectedWalletAccount"],"mappings":"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","file":"index.node.mjs","sourcesContent":["import { SolanaCluster } from '@wallet-ui/core';\nimport { createContext, useContext } from 'react';\n\nexport type SolanaClusterContextProps = Readonly<{\n cluster: SolanaCluster;\n clusters: SolanaCluster[];\n setCluster?(cluster: `solana:${string}`): void;\n}>;\n\nexport const SolanaClusterContext = createContext<SolanaClusterContextProps>({} as SolanaClusterContextProps);\n\nexport function useSolanaCluster() {\n return useContext(SolanaClusterContext);\n}\n","import { useCallback, useState } from 'react';\n\nexport function useLocalStorage<T>(key: string, initialValue: T) {\n // State to store our value\n const [storedValue, setStoredValue] = useState<T>(() => {\n try {\n // Check if we're on the client side\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n const item = window.localStorage.getItem(key);\n // For wallet-related data, validate the stored value\n if (key.includes('wallet') || key.includes('account')) {\n // Return initial value if stored data might be stale\n return initialValue;\n }\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.warn(`Error reading localStorage key \"${key}\":`, error);\n return initialValue;\n }\n });\n\n // Return a wrapped version of useState's setter function that persists the new value to localStorage\n const setValue = useCallback(\n (value: T | ((val: T) => T)) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n\n // Save state\n setStoredValue(valueToStore);\n\n // Save to localStorage\n if (typeof window !== 'undefined') {\n if (valueToStore === undefined || valueToStore === null) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n }\n }\n } catch (error) {\n console.warn(`Error setting localStorage key \"${key}\":`, error);\n }\n },\n [key, storedValue],\n );\n\n return [storedValue, setValue] as const;\n}\n","import { SolanaCluster } from '@wallet-ui/core';\nimport React, { ReactNode, useMemo } from 'react';\n\nimport { SolanaClusterContext } from './solana-cluster-context';\nimport { useLocalStorage } from './use-local-storage';\n\nconst STORAGE_KEY = 'placeholder:selected-cluster';\n\nexport function SolanaClusterProvider({ clusters, children }: { children: ReactNode, clusters: SolanaCluster[]; }) {\n const [clusterId, setClusterId] = useLocalStorage(STORAGE_KEY, 'solana:devnet');\n\n if (!clusters.length) {\n throw new Error('No clusters provided');\n }\n\n const cluster = useMemo<SolanaCluster>(() => {\n for (const cluster of clusters) {\n if (cluster.id === clusterId) {\n return cluster;\n }\n }\n return clusters[0];\n }, [clusterId, clusters]);\n\n return (\n <SolanaClusterContext.Provider\n value={useMemo(\n () => ({\n cluster,\n clusters,\n setCluster(cluster) {\n localStorage.setItem(STORAGE_KEY, cluster);\n setClusterId(cluster);\n },\n }),\n [cluster, clusters],\n )}\n >\n {children}\n </SolanaClusterContext.Provider>\n );\n}\n","import { SolanaClient } from '@wallet-ui/core';\nimport { createContext, useContext } from 'react';\n\nexport const SolanaClientContext = createContext<SolanaClient>({} as SolanaClient);\n\nexport function useSolanaClient() {\n return useContext(SolanaClientContext);\n}\n","import { SolanaClientUrlOrMoniker } from '@wallet-ui/core';\nimport { createSolanaClient } from 'gill';\nimport React, { ReactNode, useMemo } from 'react';\n\nimport { SolanaClientContext } from './solana-client-context';\n\nexport function SolanaClientProvider({\n children,\n urlOrMoniker,\n}: {\n children: ReactNode;\n urlOrMoniker: SolanaClientUrlOrMoniker;\n}) {\n const value = useMemo(() => createSolanaClient({ urlOrMoniker }), [urlOrMoniker]);\n\n return <SolanaClientContext.Provider value={value}>{children}</SolanaClientContext.Provider>;\n}\n","import type { UiWalletAccount } from '@wallet-standard/react';\nimport { address } from 'gill';\nimport { createContext, Dispatch, SetStateAction, useContext } from 'react';\n\nexport type SelectedWalletAccountState = UiWalletAccount | undefined;\n\nexport const SolanaWalletContext = createContext<\n readonly [\n selectedWalletAccount: SelectedWalletAccountState,\n setSelectedWalletAccount: Dispatch<SetStateAction<SelectedWalletAccountState>>,\n ]\n>([\n undefined /* selectedWalletAccount */,\n function setSelectedWalletAccount() {\n /* empty */\n },\n]);\n\nexport function useSolanaWallet() {\n return useContext(SolanaWalletContext);\n}\n\nexport function useSolanaWalletAddress() {\n const [wallet] = useSolanaWallet();\n if (!wallet?.address) {\n return null;\n }\n return address(wallet.address);\n}\n","import {\n getUiWalletAccountStorageKey,\n UiWallet,\n uiWalletAccountBelongsToUiWallet,\n uiWalletAccountsAreSame,\n useWallets,\n} from '@wallet-standard/react';\nimport React, { Dispatch, ReactNode, SetStateAction, useEffect, useMemo, useState } from 'react';\n\nimport { SelectedWalletAccountState, SolanaWalletContext } from './solana-wallet-context';\nimport { useLocalStorage } from './use-local-storage';\n\nconst STORAGE_KEY = 'placeholder:selected-wallet-and-address';\n\nlet wasSetterInvoked = false;\n\nfunction getSavedWalletAccount(wallets: readonly UiWallet[], savedWalletNameAndAddress: string | null) {\n if (wasSetterInvoked) {\n // After the user makes an explicit choice of wallet, stop trying to auto-select the\n // saved wallet, if and when it appears.\n return;\n }\n if (!savedWalletNameAndAddress || typeof savedWalletNameAndAddress !== 'string') {\n return;\n }\n const [savedWalletName, savedAccountAddress] = savedWalletNameAndAddress.split(':');\n if (!savedWalletName || !savedAccountAddress) {\n return;\n }\n for (const wallet of wallets) {\n if (wallet.name === savedWalletName) {\n for (const account of wallet.accounts) {\n if (account.address === savedAccountAddress) {\n return account;\n }\n }\n }\n }\n}\n\n/**\n * Saves the selected wallet account's storage key to the browser's local storage. In future\n * sessions it will try to return that same wallet account, or at least one from the same brand of\n * wallet if the wallet from which it came is still in the Wallet Standard registry.\n */\nexport function SolanaWalletProvider({ children }: { children: ReactNode }) {\n const [storedKey, setStoredKey] = useLocalStorage<string | null>(STORAGE_KEY, null);\n const wallets = useWallets();\n const [selectedWalletAccount, setSelectedWalletAccountInternal] = useState<SelectedWalletAccountState>(() =>\n getSavedWalletAccount(wallets, storedKey),\n );\n const setSelectedWalletAccount: Dispatch<SetStateAction<SelectedWalletAccountState>> = setStateAction => {\n setSelectedWalletAccountInternal(prevSelectedWalletAccount => {\n wasSetterInvoked = true;\n const nextWalletAccount =\n typeof setStateAction === 'function' ? setStateAction(prevSelectedWalletAccount) : setStateAction;\n const accountKey = nextWalletAccount ? getUiWalletAccountStorageKey(nextWalletAccount) : undefined;\n if (accountKey) {\n setStoredKey(accountKey);\n } else {\n setStoredKey(null);\n }\n return nextWalletAccount;\n });\n };\n useEffect(() => {\n const savedWalletAccount = getSavedWalletAccount(wallets, storedKey);\n if (savedWalletAccount) {\n setSelectedWalletAccountInternal(savedWalletAccount);\n }\n }, [wallets]);\n const walletAccount = useMemo(() => {\n if (selectedWalletAccount) {\n for (const uiWallet of wallets) {\n for (const uiWalletAccount of uiWallet.accounts) {\n if (uiWalletAccountsAreSame(selectedWalletAccount, uiWalletAccount)) {\n return uiWalletAccount;\n }\n }\n if (uiWalletAccountBelongsToUiWallet(selectedWalletAccount, uiWallet) && uiWallet.accounts[0]) {\n // If the selected account belongs to this connected wallet, at least, then\n // select one of its accounts.\n return uiWallet.accounts[0];\n }\n }\n }\n }, [selectedWalletAccount, wallets]);\n useEffect(() => {\n // If there is a selected wallet account but the wallet to which it belongs has since\n // disconnected, clear the selected wallet.\n if (selectedWalletAccount && !walletAccount) {\n setSelectedWalletAccountInternal(undefined);\n }\n }, [selectedWalletAccount, walletAccount]);\n return (\n <SolanaWalletContext.Provider value={useMemo(() => [walletAccount, setSelectedWalletAccount], [walletAccount])}>\n {children}\n </SolanaWalletContext.Provider>\n );\n}\n","import { SolanaCluster } from '@wallet-ui/core';\nimport React, { ReactNode } from 'react';\n\nimport { SolanaClientProvider } from './solana-client-provider';\nimport { useSolanaCluster } from './solana-cluster-context';\nimport { SolanaClusterProvider } from './solana-cluster-provider';\nimport { SolanaWalletProvider } from './solana-wallet-provider';\n\nexport function SolanaProvider({ clusters, children }: { children: ReactNode; clusters: SolanaCluster[] }) {\n return (\n <SolanaClusterProvider clusters={clusters}>\n <SolanaClientProviderLoader>\n <SolanaWalletProvider>{children}</SolanaWalletProvider>\n </SolanaClientProviderLoader>\n </SolanaClusterProvider>\n );\n}\n\nfunction SolanaClientProviderLoader({ children }: { children: ReactNode }) {\n const { cluster } = useSolanaCluster();\n\n return <SolanaClientProvider urlOrMoniker={cluster.urlOrMoniker}>{children}</SolanaClientProvider>;\n}\n"]}
@@ -1,8 +1,9 @@
1
- export * from './solana-chain-context';
2
- export * from './solana-chain-provider';
1
+ export * from '@wallet-ui/core';
2
+ export * from './solana-cluster-context';
3
+ export * from './solana-cluster-provider';
3
4
  export * from './solana-provider';
4
- export * from './solana-rpc-context';
5
- export * from './solana-rpc-provider';
5
+ export * from './solana-client-context';
6
+ export * from './solana-client-provider';
6
7
  export * from './solana-wallet-context';
7
8
  export * from './solana-wallet-provider';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const SolanaClientContext: import("react").Context<import("gill").SolanaClient<import("gill").ModifiedClusterUrl>>;
2
+ export declare function useSolanaClient(): import("gill").SolanaClient<import("gill").ModifiedClusterUrl>;
3
+ //# sourceMappingURL=solana-client-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-client-context.d.ts","sourceRoot":"","sources":["../../src/solana-client-context.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,yFAAkD,CAAC;AAEnF,wBAAgB,eAAe,mEAE9B"}
@@ -0,0 +1,7 @@
1
+ import { SolanaClientUrlOrMoniker } from '@wallet-ui/core';
2
+ import React, { ReactNode } from 'react';
3
+ export declare function SolanaClientProvider({ children, urlOrMoniker, }: {
4
+ children: ReactNode;
5
+ urlOrMoniker: SolanaClientUrlOrMoniker;
6
+ }): React.JSX.Element;
7
+ //# sourceMappingURL=solana-client-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-client-provider.d.ts","sourceRoot":"","sources":["../../src/solana-client-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAIlD,wBAAgB,oBAAoB,CAAC,EACjC,QAAQ,EACR,YAAY,GACf,EAAE;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,wBAAwB,CAAC;CAC1C,qBAIA"}
@@ -0,0 +1,17 @@
1
+ import { SolanaCluster } from '@wallet-ui/core';
2
+ export type SolanaClusterContextProps = Readonly<{
3
+ cluster: SolanaCluster;
4
+ clusters: SolanaCluster[];
5
+ setCluster?(cluster: `solana:${string}`): void;
6
+ }>;
7
+ export declare const SolanaClusterContext: import("react").Context<Readonly<{
8
+ cluster: SolanaCluster;
9
+ clusters: SolanaCluster[];
10
+ setCluster?(cluster: `solana:${string}`): void;
11
+ }>>;
12
+ export declare function useSolanaCluster(): Readonly<{
13
+ cluster: SolanaCluster;
14
+ clusters: SolanaCluster[];
15
+ setCluster?(cluster: `solana:${string}`): void;
16
+ }>;
17
+ //# sourceMappingURL=solana-cluster-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-cluster-context.d.ts","sourceRoot":"","sources":["../../src/solana-cluster-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC7C,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,CAAC,CAAC,OAAO,EAAE,UAAU,MAAM,EAAE,GAAG,IAAI,CAAC;CAClD,CAAC,CAAC;AAEH,eAAO,MAAM,oBAAoB;aALpB,aAAa;cACZ,aAAa,EAAE;yBACJ,UAAU,MAAM,EAAE,GAAG,IAAI;GAG2D,CAAC;AAE9G,wBAAgB,gBAAgB;aAPnB,aAAa;cACZ,aAAa,EAAE;yBACJ,UAAU,MAAM,EAAE,GAAG,IAAI;GAOjD"}
@@ -0,0 +1,7 @@
1
+ import { SolanaCluster } from '@wallet-ui/core';
2
+ import React, { ReactNode } from 'react';
3
+ export declare function SolanaClusterProvider({ clusters, children }: {
4
+ children: ReactNode;
5
+ clusters: SolanaCluster[];
6
+ }): React.JSX.Element;
7
+ //# sourceMappingURL=solana-cluster-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-cluster-provider.d.ts","sourceRoot":"","sources":["../../src/solana-cluster-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAOlD,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAAE,qBAiChH"}
@@ -1,7 +1,7 @@
1
- import { SolanaChain } from '@wallet-ui/core';
1
+ import { SolanaCluster } from '@wallet-ui/core';
2
2
  import React, { ReactNode } from 'react';
3
- export declare function SolanaProvider({ chains, children }: {
4
- chains: SolanaChain[];
3
+ export declare function SolanaProvider({ clusters, children }: {
5
4
  children: ReactNode;
5
+ clusters: SolanaCluster[];
6
6
  }): React.JSX.Element;
7
7
  //# sourceMappingURL=solana-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana-provider.d.ts","sourceRoot":"","sources":["../../src/solana-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMzC,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,qBAQlG"}
1
+ {"version":3,"file":"solana-provider.d.ts","sourceRoot":"","sources":["../../src/solana-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOzC,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,qBAQxG"}
@@ -3,5 +3,5 @@ import { Dispatch, SetStateAction } from 'react';
3
3
  export type SelectedWalletAccountState = UiWalletAccount | undefined;
4
4
  export declare const SolanaWalletContext: import("react").Context<readonly [selectedWalletAccount: SelectedWalletAccountState, setSelectedWalletAccount: Dispatch<SetStateAction<SelectedWalletAccountState>>]>;
5
5
  export declare function useSolanaWallet(): readonly [selectedWalletAccount: SelectedWalletAccountState, setSelectedWalletAccount: Dispatch<SetStateAction<SelectedWalletAccountState>>];
6
- export declare function useSolanaWalletAddress(): import("@solana/web3.js").Address<string> | null;
6
+ export declare function useSolanaWalletAddress(): import("gill").Address<string> | null;
7
7
  //# sourceMappingURL=solana-wallet-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana-wallet-context.d.ts","sourceRoot":"","sources":["../../src/solana-wallet-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAiB,QAAQ,EAAE,cAAc,EAAc,MAAM,OAAO,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,eAAe,GAAG,SAAS,CAAC;AAErE,eAAO,MAAM,mBAAmB,uKAU9B,CAAC;AAEH,wBAAgB,eAAe,iJAE9B;AAED,wBAAgB,sBAAsB,qDAMrC"}
1
+ {"version":3,"file":"solana-wallet-context.d.ts","sourceRoot":"","sources":["../../src/solana-wallet-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAiB,QAAQ,EAAE,cAAc,EAAc,MAAM,OAAO,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,eAAe,GAAG,SAAS,CAAC;AAErE,eAAO,MAAM,mBAAmB,uKAU9B,CAAC;AAEH,wBAAgB,eAAe,iJAE9B;AAED,wBAAgB,sBAAsB,0CAMrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallet-ui/react",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-canary-20250302003059",
4
4
  "description": "React hooks for building Solana apps",
5
5
  "exports": {
6
6
  "edge-light": {
@@ -54,9 +54,9 @@
54
54
  "maintained node versions"
55
55
  ],
56
56
  "dependencies": {
57
- "@solana/web3.js": "2",
58
57
  "@wallet-standard/react": "^1.0.0",
59
- "@wallet-ui/core": "1.0.0"
58
+ "gill": "0.5.0",
59
+ "@wallet-ui/core": "1.1.0-canary-20250302003059"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "react": ">=18"
@@ -1,20 +0,0 @@
1
- import { SolanaChain } from '@wallet-ui/core';
2
- export type SolanaChainContextProps = Readonly<{
3
- chain: SolanaChain;
4
- chains: SolanaChain[];
5
- setChain?(chain: `solana:${string}`): void;
6
- }>;
7
- export declare const CHAIN_CONFIG_DEVNET: SolanaChain;
8
- export declare const CHAIN_CONFIG_LOCAL: SolanaChain;
9
- export declare const CHAIN_CONFIG_TESTNET: SolanaChain;
10
- export declare const SolanaChainContext: import("react").Context<Readonly<{
11
- chain: SolanaChain;
12
- chains: SolanaChain[];
13
- setChain?(chain: `solana:${string}`): void;
14
- }>>;
15
- export declare function useSolanaChain(): Readonly<{
16
- chain: SolanaChain;
17
- chains: SolanaChain[];
18
- setChain?(chain: `solana:${string}`): void;
19
- }>;
20
- //# sourceMappingURL=solana-chain-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-chain-context.d.ts","sourceRoot":"","sources":["../../src/solana-chain-context.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC3C,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,CAAC,CAAC,KAAK,EAAE,UAAU,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9C,CAAC,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,WAKhC,CAAC;AACH,eAAO,MAAM,kBAAkB,EAAE,WAK/B,CAAC;AACH,eAAO,MAAM,oBAAoB,EAAE,WAKjC,CAAC;AAEH,eAAO,MAAM,kBAAkB;WAxBpB,WAAW;YACV,WAAW,EAAE;qBACJ,UAAU,MAAM,EAAE,GAAG,IAAI;GAsByD,CAAC;AAExG,wBAAgB,cAAc;WA1BnB,WAAW;YACV,WAAW,EAAE;qBACJ,UAAU,MAAM,EAAE,GAAG,IAAI;GA0B7C"}
@@ -1,7 +0,0 @@
1
- import { SolanaChain } from '@wallet-ui/core';
2
- import React, { ReactNode } from 'react';
3
- export declare function SolanaChainProvider({ chains, children }: {
4
- chains: SolanaChain[];
5
- children: ReactNode;
6
- }): React.JSX.Element;
7
- //# sourceMappingURL=solana-chain-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-chain-provider.d.ts","sourceRoot":"","sources":["../../src/solana-chain-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAOlD,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,qBAiCvG"}
@@ -1,11 +0,0 @@
1
- import type { Rpc, RpcSubscriptions, SolanaRpcApiDevnet, SolanaRpcSubscriptionsApi } from '@solana/web3.js';
2
- export type SolanaRpc = Rpc<SolanaRpcApiDevnet>;
3
- export declare const SolanaRpcContext: import("react").Context<{
4
- rpc: SolanaRpc;
5
- rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;
6
- }>;
7
- export declare function useSolanaRpc(): {
8
- rpc: SolanaRpc;
9
- rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;
10
- };
11
- //# sourceMappingURL=solana-rpc-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-rpc-context.d.ts","sourceRoot":"","sources":["../../src/solana-rpc-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAI5G,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAEhD,eAAO,MAAM,gBAAgB;SACpB,SAAS;sBACI,gBAAgB,CAAC,yBAAyB,CAAC;EAI/D,CAAC;AAEH,wBAAgB,YAAY;SAPnB,SAAS;sBACI,gBAAgB,CAAC,yBAAyB,CAAC;EAQhE"}
@@ -1,7 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- type Props = Readonly<{
3
- children: ReactNode;
4
- }>;
5
- export declare function SolanaRpcProvider({ children }: Props): React.JSX.Element;
6
- export {};
7
- //# sourceMappingURL=solana-rpc-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-rpc-provider.d.ts","sourceRoot":"","sources":["../../src/solana-rpc-provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAKlD,KAAK,KAAK,GAAG,QAAQ,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAoBpD"}