@meshconnect/uwc-react 0.3.36 → 0.4.1

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
@@ -59,26 +59,36 @@ Connect to a specific wallet with different connection modes:
59
59
  import { useConnection } from '@meshconnect/uwc-react'
60
60
 
61
61
  function WalletButton({ walletId }: { walletId: string }) {
62
- const { walletConnect, injected } = useConnection(walletId)
63
-
62
+ const { walletConnect, injected, tonConnect } = useConnection(walletId)
63
+
64
64
  return (
65
65
  <div>
66
- {/* Injected connection */}
67
- <button
66
+ {/* Injected connection (browser extensions) */}
67
+ <button
68
68
  onClick={() => injected.connect()}
69
69
  disabled={injected.isLoading}
70
70
  >
71
71
  {injected.isLoading ? 'Connecting...' : 'Connect with Browser'}
72
72
  </button>
73
-
74
- {/* WalletConnect connection */}
75
- <button
73
+
74
+ {/* WalletConnect connection (EVM/Solana mobile) */}
75
+ <button
76
76
  onClick={() => walletConnect.connect()}
77
77
  disabled={walletConnect.isLoading}
78
78
  >
79
79
  {walletConnect.isLoading ? 'Connecting...' : 'Connect with WalletConnect'}
80
80
  </button>
81
-
81
+
82
+ {/* TON Connect connection (TON wallets) */}
83
+ {tonConnect.available && (
84
+ <button
85
+ onClick={() => tonConnect.connect()}
86
+ disabled={tonConnect.isLoading}
87
+ >
88
+ {tonConnect.isLoading ? 'Connecting...' : 'Connect TON Wallet'}
89
+ </button>
90
+ )}
91
+
82
92
  {/* Show QR code URI when available */}
83
93
  {walletConnect.connectionURI && (
84
94
  <div>Connection URI: {walletConnect.connectionURI}</div>
@@ -200,11 +210,12 @@ Props:
200
210
  - `wallets: WalletMetadata[]` - Array of supported wallets
201
211
  - `usingIntegratedBrowser?: boolean` - Whether using integrated browser (default: false)
202
212
  - `walletConnectConfig?: WalletConnectConfig` - Optional WalletConnect configuration
213
+ - `tonConnectConfig?: TonConnectConfig` - Optional TON Connect configuration (requires `manifestUrl`)
203
214
 
204
215
  ### Hooks
205
216
 
206
217
  #### useConnection(walletId: string)
207
- Returns an object with connection methods for both injected and WalletConnect modes.
218
+ Returns an object with connection methods for injected, WalletConnect, and TON Connect modes.
208
219
 
209
220
  #### useSwitchNetwork()
210
221
  Returns methods and state for switching networks.
@@ -1 +1 @@
1
- {"version":3,"file":"useConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CA8GnE"}
1
+ {"version":3,"file":"useConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CA+InE"}
@@ -30,8 +30,11 @@ export function useConnection(walletId) {
30
30
  const [walletConnectError, setWalletConnectError] = useState();
31
31
  const [injectedError, setInjectedError] = useState();
32
32
  const [connectionURI, setConnectionURI] = useState();
33
+ const [tonConnectLoading, setTonConnectLoading] = useState(false);
34
+ const [tonConnectError, setTonConnectError] = useState();
33
35
  const [walletConnectAvailable, setWalletConnectAvailable] = useState(false);
34
36
  const [injectedAvailable, setInjectedAvailable] = useState(false);
37
+ const [tonConnectAvailable, setTonConnectAvailable] = useState(false);
35
38
  // Update connection URI and availability when they change
36
39
  useEffect(() => {
37
40
  const checkState = () => {
@@ -40,8 +43,10 @@ export function useConnection(walletId) {
40
43
  // Check availability for both connection modes
41
44
  const wcAvailable = connector.isConnectionModeAvailable('walletConnect', walletId);
42
45
  const injAvailable = connector.isConnectionModeAvailable('injected', walletId);
46
+ const tonAvailable = connector.isConnectionModeAvailable('tonConnect', walletId);
43
47
  setWalletConnectAvailable(wcAvailable);
44
48
  setInjectedAvailable(injAvailable);
49
+ setTonConnectAvailable(tonAvailable);
45
50
  };
46
51
  // Check initially and on state changes
47
52
  checkState();
@@ -88,6 +93,21 @@ export function useConnection(walletId) {
88
93
  setInjectedLoading(false);
89
94
  }
90
95
  }, [connector, walletId]);
96
+ const connectTonConnect = useCallback(async (networkId) => {
97
+ setTonConnectLoading(true);
98
+ setTonConnectError(undefined);
99
+ try {
100
+ await connector.connect('tonConnect', walletId, networkId);
101
+ }
102
+ catch (error) {
103
+ const walletError = error;
104
+ setTonConnectError(walletError);
105
+ throw error;
106
+ }
107
+ finally {
108
+ setTonConnectLoading(false);
109
+ }
110
+ }, [connector, walletId]);
91
111
  return {
92
112
  walletConnect: {
93
113
  connect: connectWalletConnect,
@@ -102,6 +122,12 @@ export function useConnection(walletId) {
102
122
  error: injectedError,
103
123
  available: injectedAvailable
104
124
  },
125
+ tonConnect: {
126
+ connect: connectTonConnect,
127
+ isLoading: tonConnectLoading,
128
+ error: tonConnectError,
129
+ available: tonConnectAvailable
130
+ },
105
131
  isReady
106
132
  };
107
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useConnection.js","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useConnection.js","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { UniversalWalletConnector } from '@meshconnect/uwc-core';
3
- import type { Session, Network, WalletMetadata, WalletConnectConfig } from '@meshconnect/uwc-types';
3
+ import type { Session, Network, WalletMetadata, WalletConnectConfig, TonConnectConfig } from '@meshconnect/uwc-types';
4
4
  interface ConnectionContextValue {
5
5
  connector: UniversalWalletConnector;
6
6
  session: Session;
@@ -15,7 +15,8 @@ interface ConnectionProviderProps {
15
15
  wallets: WalletMetadata[];
16
16
  usingIntegratedBrowser?: boolean;
17
17
  walletConnectConfig?: WalletConnectConfig;
18
+ tonConnectConfig?: TonConnectConfig;
18
19
  }
19
- export declare function ConnectionProvider({ children, networks, wallets, usingIntegratedBrowser, walletConnectConfig }: ConnectionProviderProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function ConnectionProvider({ children, networks, wallets, usingIntegratedBrowser, walletConnectConfig, tonConnectConfig }: ConnectionProviderProps): import("react/jsx-runtime").JSX.Element;
20
21
  export { ConnectionContext };
21
22
  //# sourceMappingURL=ConnectionProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionProvider.d.ts","sourceRoot":"","sources":["../../src/providers/ConnectionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,cAAc,EACd,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAK/B,UAAU,sBAAsB;IAC9B,SAAS,EAAE,wBAAwB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,iBAAiB,8CAAqD,CAAA;AAE5E,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAA8B,EAC9B,mBAAmB,EACpB,EAAE,uBAAuB,2CAqCzB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"ConnectionProvider.d.ts","sourceRoot":"","sources":["../../src/providers/ConnectionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAK/B,UAAU,sBAAsB;IAC9B,SAAS,EAAE,wBAAwB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,iBAAiB,8CAAqD,CAAA;AAE5E,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAA8B,EAC9B,mBAAmB,EACnB,gBAAgB,EACjB,EAAE,uBAAuB,2CAsCzB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -4,9 +4,9 @@ import { UniversalWalletConnector } from '@meshconnect/uwc-core';
4
4
  // Guard against double initialization
5
5
  let sharedConnector = null;
6
6
  const ConnectionContext = createContext(null);
7
- export function ConnectionProvider({ children, networks, wallets, usingIntegratedBrowser = false, walletConnectConfig }) {
7
+ export function ConnectionProvider({ children, networks, wallets, usingIntegratedBrowser = false, walletConnectConfig, tonConnectConfig }) {
8
8
  if (!sharedConnector) {
9
- sharedConnector = new UniversalWalletConnector(networks, wallets, usingIntegratedBrowser, walletConnectConfig);
9
+ sharedConnector = new UniversalWalletConnector(networks, wallets, usingIntegratedBrowser, walletConnectConfig, tonConnectConfig);
10
10
  }
11
11
  const connector = sharedConnector;
12
12
  const [session, setSession] = useState(() => connector.getSession());
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionProvider.js","sourceRoot":"","sources":["../../src/providers/ConnectionProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAQhE,sCAAsC;AACtC,IAAI,eAAe,GAAoC,IAAI,CAAA;AAU3D,MAAM,iBAAiB,GAAG,aAAa,CAAgC,IAAI,CAAC,CAAA;AAU5E,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAAsB,GAAG,KAAK,EAC9B,mBAAmB,EACK;IACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,IAAI,wBAAwB,CAC5C,QAAQ,EACR,OAAO,EACP,sBAAsB,EACtB,mBAAmB,CACpB,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAA;IAEjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3C,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;YAClC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,MAAM,KAAK,GAA2B;QACpC,SAAS;QACT,OAAO;QACP,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;QAC/B,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE;QACjC,OAAO;KACR,CAAA;IAED,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACrC,QAAQ,GACkB,CAC9B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"ConnectionProvider.js","sourceRoot":"","sources":["../../src/providers/ConnectionProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAShE,sCAAsC;AACtC,IAAI,eAAe,GAAoC,IAAI,CAAA;AAU3D,MAAM,iBAAiB,GAAG,aAAa,CAAgC,IAAI,CAAC,CAAA;AAW5E,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAAsB,GAAG,KAAK,EAC9B,mBAAmB,EACnB,gBAAgB,EACQ;IACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,IAAI,wBAAwB,CAC5C,QAAQ,EACR,OAAO,EACP,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,CACjB,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAA;IAEjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3C,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;YAClC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,MAAM,KAAK,GAA2B;QACpC,SAAS;QACT,OAAO;QACP,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;QAC/B,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE;QACjC,OAAO;KACR,CAAA;IAED,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACrC,QAAQ,GACkB,CAC9B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/uwc-react",
3
- "version": "0.3.36",
3
+ "version": "0.4.1",
4
4
  "description": "React hooks and components for Universal Wallet Connector",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,8 +16,8 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@meshconnect/uwc-core": "0.4.6",
20
- "@meshconnect/uwc-types": "0.7.0"
19
+ "@meshconnect/uwc-core": "0.5.1",
20
+ "@meshconnect/uwc-types": "0.8.1"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": "^18.0.0",
@@ -41,8 +41,13 @@ export function useConnection(walletId: string): UseConnectionReturn {
41
41
  >()
42
42
  const [injectedError, setInjectedError] = useState<WalletError | undefined>()
43
43
  const [connectionURI, setConnectionURI] = useState<string | undefined>()
44
+ const [tonConnectLoading, setTonConnectLoading] = useState(false)
45
+ const [tonConnectError, setTonConnectError] = useState<
46
+ WalletError | undefined
47
+ >()
44
48
  const [walletConnectAvailable, setWalletConnectAvailable] = useState(false)
45
49
  const [injectedAvailable, setInjectedAvailable] = useState(false)
50
+ const [tonConnectAvailable, setTonConnectAvailable] = useState(false)
46
51
 
47
52
  // Update connection URI and availability when they change
48
53
  useEffect(() => {
@@ -59,8 +64,13 @@ export function useConnection(walletId: string): UseConnectionReturn {
59
64
  'injected',
60
65
  walletId
61
66
  )
67
+ const tonAvailable = connector.isConnectionModeAvailable(
68
+ 'tonConnect',
69
+ walletId
70
+ )
62
71
  setWalletConnectAvailable(wcAvailable)
63
72
  setInjectedAvailable(injAvailable)
73
+ setTonConnectAvailable(tonAvailable)
64
74
  }
65
75
 
66
76
  // Check initially and on state changes
@@ -119,6 +129,23 @@ export function useConnection(walletId: string): UseConnectionReturn {
119
129
  [connector, walletId]
120
130
  )
121
131
 
132
+ const connectTonConnect = useCallback(
133
+ async (networkId?: NetworkId) => {
134
+ setTonConnectLoading(true)
135
+ setTonConnectError(undefined)
136
+ try {
137
+ await connector.connect('tonConnect', walletId, networkId)
138
+ } catch (error) {
139
+ const walletError = error as WalletError
140
+ setTonConnectError(walletError)
141
+ throw error
142
+ } finally {
143
+ setTonConnectLoading(false)
144
+ }
145
+ },
146
+ [connector, walletId]
147
+ )
148
+
122
149
  return {
123
150
  walletConnect: {
124
151
  connect: connectWalletConnect,
@@ -133,6 +160,12 @@ export function useConnection(walletId: string): UseConnectionReturn {
133
160
  error: injectedError,
134
161
  available: injectedAvailable
135
162
  },
163
+ tonConnect: {
164
+ connect: connectTonConnect,
165
+ isLoading: tonConnectLoading,
166
+ error: tonConnectError,
167
+ available: tonConnectAvailable
168
+ },
136
169
  isReady
137
170
  }
138
171
  }
@@ -4,7 +4,8 @@ import type {
4
4
  Session,
5
5
  Network,
6
6
  WalletMetadata,
7
- WalletConnectConfig
7
+ WalletConnectConfig,
8
+ TonConnectConfig
8
9
  } from '@meshconnect/uwc-types'
9
10
 
10
11
  // Guard against double initialization
@@ -26,6 +27,7 @@ interface ConnectionProviderProps {
26
27
  wallets: WalletMetadata[]
27
28
  usingIntegratedBrowser?: boolean
28
29
  walletConnectConfig?: WalletConnectConfig
30
+ tonConnectConfig?: TonConnectConfig
29
31
  }
30
32
 
31
33
  export function ConnectionProvider({
@@ -33,14 +35,16 @@ export function ConnectionProvider({
33
35
  networks,
34
36
  wallets,
35
37
  usingIntegratedBrowser = false,
36
- walletConnectConfig
38
+ walletConnectConfig,
39
+ tonConnectConfig
37
40
  }: ConnectionProviderProps) {
38
41
  if (!sharedConnector) {
39
42
  sharedConnector = new UniversalWalletConnector(
40
43
  networks,
41
44
  wallets,
42
45
  usingIntegratedBrowser,
43
- walletConnectConfig
46
+ walletConnectConfig,
47
+ tonConnectConfig
44
48
  )
45
49
  }
46
50