@meshconnect/uwc-react 0.3.36 → 0.4.0
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 +20 -9
- package/dist/hooks/useConnection.d.ts.map +1 -1
- package/dist/hooks/useConnection.js +26 -0
- package/dist/hooks/useConnection.js.map +1 -1
- package/dist/providers/ConnectionProvider.d.ts +3 -2
- package/dist/providers/ConnectionProvider.d.ts.map +1 -1
- package/dist/providers/ConnectionProvider.js +2 -2
- package/dist/providers/ConnectionProvider.js.map +1 -1
- package/package.json +3 -3
- package/src/hooks/useConnection.ts +33 -0
- package/src/providers/ConnectionProvider.tsx +7 -3
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
|
|
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,
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAOnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAEtC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,EAEzD,CAAA;IACH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAC7E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAsB,CAAA;IACxE,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;
|
|
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,
|
|
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;
|
|
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
|
+
"version": "0.4.0",
|
|
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.
|
|
20
|
-
"@meshconnect/uwc-types": "0.
|
|
19
|
+
"@meshconnect/uwc-core": "0.5.0",
|
|
20
|
+
"@meshconnect/uwc-types": "0.8.0"
|
|
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
|
|