@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 +7 -4
- package/dist/index.js +11 -13
- package/dist/index.mjs +11 -13
- package/package.json +5 -5
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 =
|
|
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
|
-
- `
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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
|
|
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) => ({
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
|
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) => ({
|
|
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.
|
|
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.
|
|
35
|
-
"@phantom/chain-interfaces": "^1.0.
|
|
36
|
-
"@phantom/constants": "^1.0.
|
|
37
|
-
"@phantom/wallet-sdk-ui": "^1.0.
|
|
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",
|