@phantom/react-sdk 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -792,7 +792,8 @@ function SolanaOperations() {
792
792
  const connection = new Connection("https://api.mainnet-beta.solana.com");
793
793
  const { blockhash } = await connection.getLatestBlockhash();
794
794
 
795
- const fromAddress = await solana.getPublicKey();
795
+ const fromAddress = solana.publicKey;
796
+ if (!fromAddress) throw new Error("Not connected");
796
797
  const transferInstruction = SystemProgram.transfer({
797
798
  fromPubkey: new PublicKey(fromAddress),
798
799
  toPubkey: new PublicKey(toAddress),
@@ -833,7 +834,7 @@ function SolanaOperations() {
833
834
  - `signTransaction(transaction)` - Sign without sending
834
835
  - `signAndSendTransaction(transaction)` - Sign and send
835
836
  - `switchNetwork(network)` - Switch between mainnet/devnet
836
- - `getPublicKey()` - Get current public key
837
+ - `publicKey` - Current public key (or `null` if disconnected)
837
838
  - `isConnected` - Connection status
838
839
  - `isAvailable` - Provider availability (see note below)
839
840
 
@@ -1163,7 +1164,8 @@ function SolanaExample() {
1163
1164
  const { blockhash } = await connection.getLatestBlockhash();
1164
1165
 
1165
1166
  // Create transfer instruction
1166
- const fromAddress = await solana.getPublicKey();
1167
+ const fromAddress = solana.publicKey;
1168
+ if (!fromAddress) throw new Error("Not connected");
1167
1169
  const transferInstruction = SystemProgram.transfer({
1168
1170
  fromPubkey: new PublicKey(fromAddress),
1169
1171
  toPubkey: new PublicKey(toAddress),
@@ -1209,7 +1211,8 @@ function SolanaKitExample() {
1209
1211
  const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
1210
1212
  const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
1211
1213
 
1212
- const userPublicKey = await solana.getPublicKey();
1214
+ const userPublicKey = solana.publicKey;
1215
+ if (!userPublicKey) throw new Error("Not connected");
1213
1216
  const transactionMessage = pipe(
1214
1217
  createTransactionMessage({ version: 0 }),
1215
1218
  tx => setTransactionMessageFeePayer(address(userPublicKey), tx),
package/dist/index.js CHANGED
@@ -210,20 +210,14 @@ function useDiscoveredWallets() {
210
210
  try {
211
211
  setIsLoading(true);
212
212
  setError(null);
213
- const initialWallets = sdk.getDiscoveredWallets();
214
- if (initialWallets.length > 0) {
215
- setWallets(initialWallets);
216
- setIsLoading(false);
217
- } else {
218
- await sdk.discoverWallets();
219
- const discoveredWallets = sdk.getDiscoveredWallets();
220
- setWallets(discoveredWallets);
221
- setIsLoading(false);
222
- }
213
+ await sdk.discoverWallets();
214
+ const discoveredWallets = sdk.getDiscoveredWallets();
215
+ setWallets(discoveredWallets);
223
216
  } catch (err) {
224
217
  const error2 = err instanceof Error ? err : new Error("Failed to fetch discovered wallets");
225
218
  setError(error2);
226
219
  setWallets([]);
220
+ } finally {
227
221
  setIsLoading(false);
228
222
  }
229
223
  }, [sdk]);
@@ -840,9 +834,10 @@ function PhantomProvider({ children, config, debugConfig, theme, appIcon, appNam
840
834
  try {
841
835
  setIsConnected(true);
842
836
  setIsConnecting(false);
843
- setUser(data);
844
837
  const addrs = await sdk.getAddresses();
845
838
  setAddresses(addrs);
839
+ const normalizedUser = data ?? { addresses: addrs };
840
+ setUser(normalizedUser);
846
841
  } catch (err) {
847
842
  console.error("Error connecting:", err);
848
843
  try {
@@ -855,11 +850,14 @@ function PhantomProvider({ children, config, debugConfig, theme, appIcon, appNam
855
850
  const handleConnectError = (errorData) => {
856
851
  setIsConnecting(false);
857
852
  setIsConnected(false);
858
- const isAutoConnectNoSession = errorData.source === "auto-connect" && (errorData.error === "No valid session found" || errorData.error === "No trusted connections available");
853
+ const isAutoConnectNoSession = errorData?.source === "auto-connect" && (errorData?.error === "No valid session found" || errorData?.error === "No trusted connections available");
859
854
  if (isAutoConnectNoSession) {
860
855
  setErrors((prev) => ({ ...prev, connect: void 0 }));
861
856
  } else {
862
- setErrors((prev) => ({ ...prev, connect: new Error(errorData.error || "Connection failed") }));
857
+ setErrors((prev) => ({
858
+ ...prev,
859
+ connect: new Error(errorData?.error || "Connection failed")
860
+ }));
863
861
  }
864
862
  setAddresses([]);
865
863
  };
package/dist/index.mjs CHANGED
@@ -161,20 +161,14 @@ function useDiscoveredWallets() {
161
161
  try {
162
162
  setIsLoading(true);
163
163
  setError(null);
164
- const initialWallets = sdk.getDiscoveredWallets();
165
- if (initialWallets.length > 0) {
166
- setWallets(initialWallets);
167
- setIsLoading(false);
168
- } else {
169
- await sdk.discoverWallets();
170
- const discoveredWallets = sdk.getDiscoveredWallets();
171
- setWallets(discoveredWallets);
172
- setIsLoading(false);
173
- }
164
+ await sdk.discoverWallets();
165
+ const discoveredWallets = sdk.getDiscoveredWallets();
166
+ setWallets(discoveredWallets);
174
167
  } catch (err) {
175
168
  const error2 = err instanceof Error ? err : new Error("Failed to fetch discovered wallets");
176
169
  setError(error2);
177
170
  setWallets([]);
171
+ } finally {
178
172
  setIsLoading(false);
179
173
  }
180
174
  }, [sdk]);
@@ -791,9 +785,10 @@ function PhantomProvider({ children, config, debugConfig, theme, appIcon, appNam
791
785
  try {
792
786
  setIsConnected(true);
793
787
  setIsConnecting(false);
794
- setUser(data);
795
788
  const addrs = await sdk.getAddresses();
796
789
  setAddresses(addrs);
790
+ const normalizedUser = data ?? { addresses: addrs };
791
+ setUser(normalizedUser);
797
792
  } catch (err) {
798
793
  console.error("Error connecting:", err);
799
794
  try {
@@ -806,11 +801,14 @@ function PhantomProvider({ children, config, debugConfig, theme, appIcon, appNam
806
801
  const handleConnectError = (errorData) => {
807
802
  setIsConnecting(false);
808
803
  setIsConnected(false);
809
- const isAutoConnectNoSession = errorData.source === "auto-connect" && (errorData.error === "No valid session found" || errorData.error === "No trusted connections available");
804
+ const isAutoConnectNoSession = errorData?.source === "auto-connect" && (errorData?.error === "No valid session found" || errorData?.error === "No trusted connections available");
810
805
  if (isAutoConnectNoSession) {
811
806
  setErrors((prev) => ({ ...prev, connect: void 0 }));
812
807
  } else {
813
- setErrors((prev) => ({ ...prev, connect: new Error(errorData.error || "Connection failed") }));
808
+ setErrors((prev) => ({
809
+ ...prev,
810
+ connect: new Error(errorData?.error || "Connection failed")
811
+ }));
814
812
  }
815
813
  setAddresses([]);
816
814
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phantom/react-sdk",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/phantom/phantom-connect-sdk",
@@ -31,10 +31,10 @@
31
31
  "prettier": "prettier --write \"src/**/*.{ts,tsx}\""
32
32
  },
33
33
  "dependencies": {
34
- "@phantom/browser-sdk": "^1.0.2",
35
- "@phantom/chain-interfaces": "^1.0.2",
36
- "@phantom/constants": "^1.0.2",
37
- "@phantom/wallet-sdk-ui": "^1.0.2"
34
+ "@phantom/browser-sdk": "^1.0.3",
35
+ "@phantom/chain-interfaces": "^1.0.3",
36
+ "@phantom/constants": "^1.0.3",
37
+ "@phantom/wallet-sdk-ui": "^1.0.3"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@testing-library/dom": "^10.4.0",