@orderly.network/wallet-connector-privy 2.1.3 → 2.2.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/dist/index.d.mts +36 -8
- package/dist/index.d.ts +36 -8
- package/dist/index.js +1379 -857
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1312 -792
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -20
package/dist/index.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var React19 = require('react');
|
|
4
|
+
var viemExport = require('viem');
|
|
5
|
+
var chains = require('viem/chains');
|
|
6
6
|
var types = require('@orderly.network/types');
|
|
7
|
-
var
|
|
7
|
+
var ui = require('@orderly.network/ui');
|
|
8
|
+
var hooks = require('@orderly.network/hooks');
|
|
9
|
+
var i18n = require('@orderly.network/i18n');
|
|
10
|
+
var agwReact = require('@abstract-foundation/agw-react');
|
|
11
|
+
var WagmiExport = require('wagmi');
|
|
12
|
+
var utils = require('@orderly.network/utils');
|
|
8
13
|
var walletAdapterBase = require('@solana/wallet-adapter-base');
|
|
14
|
+
var reactAuth = require('@privy-io/react-auth');
|
|
9
15
|
var walletAdapterReact = require('@solana/wallet-adapter-react');
|
|
10
|
-
var WagmiExport = require('wagmi');
|
|
11
|
-
var i18n = require('@orderly.network/i18n');
|
|
12
16
|
var reactDom = require('react-dom');
|
|
13
17
|
var uiConnector = require('@orderly.network/ui-connector');
|
|
14
|
-
var viemExport = require('viem');
|
|
15
|
-
var chains = require('viem/chains');
|
|
16
18
|
var walletAdapterWallets = require('@solana/wallet-adapter-wallets');
|
|
17
19
|
var reactQuery = require('@tanstack/react-query');
|
|
18
20
|
var WagmiConnectorsExport = require('wagmi/connectors');
|
|
@@ -37,9 +39,9 @@ function _interopNamespace(e) {
|
|
|
37
39
|
return Object.freeze(n);
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
var
|
|
41
|
-
var WagmiExport__namespace = /*#__PURE__*/_interopNamespace(WagmiExport);
|
|
42
|
+
var React19__default = /*#__PURE__*/_interopDefault(React19);
|
|
42
43
|
var viemExport__namespace = /*#__PURE__*/_interopNamespace(viemExport);
|
|
44
|
+
var WagmiExport__namespace = /*#__PURE__*/_interopNamespace(WagmiExport);
|
|
43
45
|
var WagmiConnectorsExport__namespace = /*#__PURE__*/_interopNamespace(WagmiConnectorsExport);
|
|
44
46
|
|
|
45
47
|
// src/provider.tsx
|
|
@@ -48,18 +50,32 @@ var Network = /* @__PURE__ */ ((Network2) => {
|
|
|
48
50
|
Network2["testnet"] = "testnet";
|
|
49
51
|
return Network2;
|
|
50
52
|
})(Network || {});
|
|
51
|
-
var WalletType = /* @__PURE__ */ ((
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return
|
|
53
|
+
var WalletType = /* @__PURE__ */ ((WalletType5) => {
|
|
54
|
+
WalletType5["EVM"] = "EVM";
|
|
55
|
+
WalletType5["SOL"] = "SOL";
|
|
56
|
+
WalletType5["ABSTRACT"] = "Abstract";
|
|
57
|
+
return WalletType5;
|
|
56
58
|
})(WalletType || {});
|
|
57
|
-
var
|
|
59
|
+
var WalletConnectType = /* @__PURE__ */ ((WalletConnectType2) => {
|
|
60
|
+
WalletConnectType2["EVM"] = "EVM";
|
|
61
|
+
WalletConnectType2["SOL"] = "SOL";
|
|
62
|
+
WalletConnectType2["PRIVY"] = "privy";
|
|
63
|
+
WalletConnectType2["ABSTRACT"] = "Abstract";
|
|
64
|
+
return WalletConnectType2;
|
|
65
|
+
})(WalletConnectType || {});
|
|
66
|
+
var SolanaChains = /* @__PURE__ */ new Map([
|
|
67
|
+
[walletAdapterBase.WalletAdapterNetwork.Devnet, types.SOLANA_TESTNET_CHAINID],
|
|
68
|
+
[walletAdapterBase.WalletAdapterNetwork.Mainnet, types.SOLANA_MAINNET_CHAINID]
|
|
69
|
+
]);
|
|
58
70
|
var SolanaChainsMap = /* @__PURE__ */ new Map([
|
|
59
|
-
[walletAdapterBase.WalletAdapterNetwork.Devnet,
|
|
60
|
-
["testnet" /* testnet */,
|
|
61
|
-
["mainnet" /* mainnet */,
|
|
62
|
-
[walletAdapterBase.WalletAdapterNetwork.Mainnet,
|
|
71
|
+
[walletAdapterBase.WalletAdapterNetwork.Devnet, types.SOLANA_TESTNET_CHAINID],
|
|
72
|
+
["testnet" /* testnet */, types.SOLANA_TESTNET_CHAINID],
|
|
73
|
+
["mainnet" /* mainnet */, types.SOLANA_MAINNET_CHAINID],
|
|
74
|
+
[walletAdapterBase.WalletAdapterNetwork.Mainnet, types.SOLANA_MAINNET_CHAINID]
|
|
75
|
+
]);
|
|
76
|
+
var AbstractChainsMap = /* @__PURE__ */ new Map([
|
|
77
|
+
["testnet" /* testnet */, types.ABSTRACT_TESTNET_CHAINID],
|
|
78
|
+
["mainnet" /* mainnet */, types.ABSTRACT_MAINNET_CHAINID]
|
|
63
79
|
]);
|
|
64
80
|
var WalletChainTypeEnum = /* @__PURE__ */ ((WalletChainTypeEnum2) => {
|
|
65
81
|
WalletChainTypeEnum2["onlyEVM"] = "onlyEVM";
|
|
@@ -68,14 +84,111 @@ var WalletChainTypeEnum = /* @__PURE__ */ ((WalletChainTypeEnum2) => {
|
|
|
68
84
|
return WalletChainTypeEnum2;
|
|
69
85
|
})(WalletChainTypeEnum || {});
|
|
70
86
|
|
|
71
|
-
// src/providers/
|
|
87
|
+
// src/providers/abstractWallet/abstractWalletProvider.tsx
|
|
88
|
+
var AbstractWalletContext = React19.createContext(
|
|
89
|
+
null
|
|
90
|
+
);
|
|
91
|
+
var AbstractWalletProvider = (props) => {
|
|
92
|
+
const { network } = useWalletConnectorPrivy();
|
|
93
|
+
const { login, logout } = agwReact.useLoginWithAbstract();
|
|
94
|
+
const [wallet, setWallet] = React19.useState(null);
|
|
95
|
+
const { data: client, isLoading: isClientLoading } = agwReact.useAbstractClient();
|
|
96
|
+
const { connector } = WagmiExport.useAccount();
|
|
97
|
+
const { address, status } = agwReact.useGlobalWalletSignerAccount();
|
|
98
|
+
const connect = () => {
|
|
99
|
+
return login();
|
|
100
|
+
};
|
|
101
|
+
const disconnect = () => {
|
|
102
|
+
return logout();
|
|
103
|
+
};
|
|
104
|
+
const isConnected = React19.useMemo(() => {
|
|
105
|
+
return !!(client && connector);
|
|
106
|
+
}, [client, connector]);
|
|
107
|
+
const connectedChain = React19.useMemo(() => {
|
|
108
|
+
if (!client || !connector) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
id: AbstractChainsMap.get(network),
|
|
113
|
+
namespace: types.ChainNamespace.evm
|
|
114
|
+
};
|
|
115
|
+
}, [client, connector]);
|
|
116
|
+
const value = React19.useMemo(
|
|
117
|
+
() => ({
|
|
118
|
+
isConnected,
|
|
119
|
+
connect,
|
|
120
|
+
disconnect,
|
|
121
|
+
wallet,
|
|
122
|
+
connectedChain
|
|
123
|
+
}),
|
|
124
|
+
[connect, disconnect, isConnected, wallet, connectedChain]
|
|
125
|
+
);
|
|
126
|
+
React19.useEffect(() => {
|
|
127
|
+
if (!client || !connector || !address) {
|
|
128
|
+
setWallet(null);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
connector?.getProvider().then((provider) => {
|
|
132
|
+
const tempWallet = {
|
|
133
|
+
label: "AGW",
|
|
134
|
+
icon: "",
|
|
135
|
+
provider: {
|
|
136
|
+
...provider,
|
|
137
|
+
agwWallet: true,
|
|
138
|
+
sendTransaction: async (params) => {
|
|
139
|
+
return client.sendTransaction(params);
|
|
140
|
+
},
|
|
141
|
+
writeContract: async (params) => {
|
|
142
|
+
return client.writeContract(params);
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
accounts: [
|
|
146
|
+
{
|
|
147
|
+
address
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
chains: [
|
|
151
|
+
{
|
|
152
|
+
id: AbstractChainsMap.get(network),
|
|
153
|
+
namespace: types.ChainNamespace.evm
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
chain: connectedChain,
|
|
157
|
+
additionalInfo: {
|
|
158
|
+
AGWAddress: client.account.address
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
setWallet(tempWallet);
|
|
162
|
+
});
|
|
163
|
+
}, [client, connectedChain, connector, address, isClientLoading]);
|
|
164
|
+
React19.useEffect(() => {
|
|
165
|
+
utils.windowGuard(() => {
|
|
166
|
+
const connection = localStorage.getItem(
|
|
167
|
+
"privy-caw:cm04asygd041fmry9zmcyn5o5:connection"
|
|
168
|
+
);
|
|
169
|
+
if (connection) {
|
|
170
|
+
login();
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}, []);
|
|
174
|
+
return /* @__PURE__ */ React19__default.default.createElement(AbstractWalletContext.Provider, { value }, props.children);
|
|
175
|
+
};
|
|
176
|
+
function useAbstractWallet() {
|
|
177
|
+
const context = React19.useContext(AbstractWalletContext);
|
|
178
|
+
if (!context) {
|
|
179
|
+
throw new Error(
|
|
180
|
+
"useAbstractWallet must be used within a AbstractWalletProvider"
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
return context;
|
|
184
|
+
}
|
|
72
185
|
var getPrivyEmbeddedWalletChainId = (chainId) => {
|
|
73
186
|
if (!chainId) {
|
|
74
187
|
return null;
|
|
75
188
|
}
|
|
76
189
|
return parseInt(chainId.split("eip155:")[1]);
|
|
77
190
|
};
|
|
78
|
-
var PrivyWalletContext =
|
|
191
|
+
var PrivyWalletContext = React19.createContext(null);
|
|
79
192
|
var PrivyWalletProvider = ({
|
|
80
193
|
children
|
|
81
194
|
}) => {
|
|
@@ -90,7 +203,7 @@ var PrivyWalletProvider = ({
|
|
|
90
203
|
createWallet: createEvmWallet
|
|
91
204
|
} = reactAuth.usePrivy();
|
|
92
205
|
const { wallets: walletsEVM } = connectorWalletType.disablePrivy ? { wallets: [] } : reactAuth.useWallets();
|
|
93
|
-
const connectedRef =
|
|
206
|
+
const connectedRef = React19.useRef(false);
|
|
94
207
|
const {
|
|
95
208
|
ready: solanaReady,
|
|
96
209
|
wallets: walletsSOL,
|
|
@@ -102,10 +215,10 @@ var PrivyWalletProvider = ({
|
|
|
102
215
|
createWallet: () => Promise.resolve(),
|
|
103
216
|
exportWallet: () => Promise.resolve()
|
|
104
217
|
} : reactAuth.useSolanaWallets();
|
|
105
|
-
const [walletEVM, setWalletEVM] =
|
|
106
|
-
const [walletSOL, setWalletSOL] =
|
|
218
|
+
const [walletEVM, setWalletEVM] = React19.useState(null);
|
|
219
|
+
const [walletSOL, setWalletSOL] = React19.useState(null);
|
|
107
220
|
const { track } = hooks.useTrack();
|
|
108
|
-
const linkedAccount =
|
|
221
|
+
const linkedAccount = React19.useMemo(() => {
|
|
109
222
|
if (user && user.linkedAccounts) {
|
|
110
223
|
const account = user.linkedAccounts.filter((item) => item.type !== "wallet").sort(
|
|
111
224
|
(a, b) => (b.latestVerifiedAt?.getTime() ?? 0) - (a.latestVerifiedAt?.getTime() ?? 0)
|
|
@@ -152,13 +265,13 @@ var PrivyWalletProvider = ({
|
|
|
152
265
|
}
|
|
153
266
|
return Promise.reject("no namespace");
|
|
154
267
|
};
|
|
155
|
-
const isConnected =
|
|
268
|
+
const isConnected = React19.useMemo(() => {
|
|
156
269
|
if (ready && authenticated) {
|
|
157
270
|
return true;
|
|
158
271
|
}
|
|
159
272
|
return false;
|
|
160
273
|
}, [ready, authenticated]);
|
|
161
|
-
|
|
274
|
+
React19.useEffect(() => {
|
|
162
275
|
if (!authenticated || !walletsEVM || !walletsEVM[0]) {
|
|
163
276
|
setWalletEVM(null);
|
|
164
277
|
return;
|
|
@@ -187,7 +300,7 @@ var PrivyWalletProvider = ({
|
|
|
187
300
|
});
|
|
188
301
|
});
|
|
189
302
|
}, [walletsEVM, authenticated]);
|
|
190
|
-
|
|
303
|
+
React19.useEffect(() => {
|
|
191
304
|
if (!authenticated) {
|
|
192
305
|
setWalletSOL(null);
|
|
193
306
|
return;
|
|
@@ -252,7 +365,7 @@ var PrivyWalletProvider = ({
|
|
|
252
365
|
network,
|
|
253
366
|
solanaInfo
|
|
254
367
|
]);
|
|
255
|
-
|
|
368
|
+
React19.useEffect(() => {
|
|
256
369
|
if (isConnected && linkedAccount) {
|
|
257
370
|
if (connectedRef.current) {
|
|
258
371
|
return;
|
|
@@ -264,7 +377,7 @@ var PrivyWalletProvider = ({
|
|
|
264
377
|
});
|
|
265
378
|
}
|
|
266
379
|
}, [isConnected, linkedAccount, connectedRef]);
|
|
267
|
-
const value =
|
|
380
|
+
const value = React19.useMemo(
|
|
268
381
|
() => ({
|
|
269
382
|
connect,
|
|
270
383
|
walletEVM,
|
|
@@ -290,23 +403,23 @@ var PrivyWalletProvider = ({
|
|
|
290
403
|
createSolanaWallet
|
|
291
404
|
]
|
|
292
405
|
);
|
|
293
|
-
return /* @__PURE__ */
|
|
406
|
+
return /* @__PURE__ */ React19__default.default.createElement(PrivyWalletContext.Provider, { value }, children);
|
|
294
407
|
};
|
|
295
408
|
function usePrivyWallet() {
|
|
296
|
-
const context =
|
|
409
|
+
const context = React19.useContext(PrivyWalletContext);
|
|
297
410
|
if (!context) {
|
|
298
411
|
throw new Error("usePrivyWallet must be used within a PrivyWalletProvider");
|
|
299
412
|
}
|
|
300
413
|
return context;
|
|
301
414
|
}
|
|
302
|
-
var SolanaWalletContext =
|
|
415
|
+
var SolanaWalletContext = React19.createContext(
|
|
303
416
|
null
|
|
304
417
|
);
|
|
305
418
|
var SolanaWalletProvider = ({
|
|
306
419
|
children
|
|
307
420
|
}) => {
|
|
308
421
|
const { setLedgerAddress } = hooks.useStorageLedgerAddress();
|
|
309
|
-
const [wallet, setWallet] =
|
|
422
|
+
const [wallet, setWallet] = React19.useState();
|
|
310
423
|
const { network, solanaInfo, connectorWalletType } = useWalletConnectorPrivy();
|
|
311
424
|
const {
|
|
312
425
|
wallets,
|
|
@@ -329,7 +442,7 @@ var SolanaWalletProvider = ({
|
|
|
329
442
|
sendTransaction: () => Promise.resolve(),
|
|
330
443
|
disconnect: () => Promise.resolve()
|
|
331
444
|
} : walletAdapterReact.useWallet();
|
|
332
|
-
const solanaPromiseRef =
|
|
445
|
+
const solanaPromiseRef = React19.useRef({
|
|
333
446
|
walletSelect: null,
|
|
334
447
|
connect: null,
|
|
335
448
|
walletSelectResolve: () => {
|
|
@@ -341,7 +454,7 @@ var SolanaWalletProvider = ({
|
|
|
341
454
|
connectResolve: () => {
|
|
342
455
|
}
|
|
343
456
|
});
|
|
344
|
-
const isManual =
|
|
457
|
+
const isManual = React19.useRef(false);
|
|
345
458
|
const initPromiseRef = () => {
|
|
346
459
|
solanaPromiseRef.current.walletSelectResolve = () => {
|
|
347
460
|
};
|
|
@@ -436,7 +549,7 @@ var SolanaWalletProvider = ({
|
|
|
436
549
|
return Promise.reject(e);
|
|
437
550
|
});
|
|
438
551
|
};
|
|
439
|
-
const connectedChain =
|
|
552
|
+
const connectedChain = React19.useMemo(() => {
|
|
440
553
|
if (!publicKey) {
|
|
441
554
|
return null;
|
|
442
555
|
}
|
|
@@ -445,10 +558,10 @@ var SolanaWalletProvider = ({
|
|
|
445
558
|
namespace: types.ChainNamespace.solana
|
|
446
559
|
};
|
|
447
560
|
}, [publicKey]);
|
|
448
|
-
const isConnected =
|
|
561
|
+
const isConnected = React19.useMemo(() => {
|
|
449
562
|
return !!publicKey;
|
|
450
563
|
}, [publicKey]);
|
|
451
|
-
|
|
564
|
+
React19.useEffect(() => {
|
|
452
565
|
if (!walletSolana) {
|
|
453
566
|
return;
|
|
454
567
|
}
|
|
@@ -502,7 +615,7 @@ var SolanaWalletProvider = ({
|
|
|
502
615
|
sendTransaction,
|
|
503
616
|
solanaInfo
|
|
504
617
|
]);
|
|
505
|
-
const value =
|
|
618
|
+
const value = React19.useMemo(
|
|
506
619
|
() => ({
|
|
507
620
|
wallets,
|
|
508
621
|
connectedChain,
|
|
@@ -513,10 +626,10 @@ var SolanaWalletProvider = ({
|
|
|
513
626
|
}),
|
|
514
627
|
[wallets, connectedChain, wallet, isConnected]
|
|
515
628
|
);
|
|
516
|
-
return /* @__PURE__ */
|
|
629
|
+
return /* @__PURE__ */ React19__default.default.createElement(SolanaWalletContext.Provider, { value }, children);
|
|
517
630
|
};
|
|
518
631
|
function useSolanaWallet() {
|
|
519
|
-
const context =
|
|
632
|
+
const context = React19.useContext(SolanaWalletContext);
|
|
520
633
|
if (!context) {
|
|
521
634
|
throw new Error(
|
|
522
635
|
"useSolanaWallet must be used within a SolanaWalletProvider"
|
|
@@ -524,17 +637,17 @@ function useSolanaWallet() {
|
|
|
524
637
|
}
|
|
525
638
|
return context;
|
|
526
639
|
}
|
|
527
|
-
var WagmiWalletContext =
|
|
640
|
+
var WagmiWalletContext = React19.createContext(null);
|
|
528
641
|
var WagmiWalletProvider = ({
|
|
529
642
|
children
|
|
530
643
|
}) => {
|
|
531
644
|
const { connectorWalletType } = useWalletConnectorPrivy();
|
|
532
|
-
const [wallet, setWallet] =
|
|
645
|
+
const [wallet, setWallet] = React19.useState(void 0);
|
|
533
646
|
const { connect, connectors: wagmiConnectors2 } = connectorWalletType.disableWagmi ? { connect: () => Promise.resolve(), connectors: [] } : WagmiExport.useConnect();
|
|
534
647
|
const { disconnect } = connectorWalletType.disableWagmi ? { disconnect: () => Promise.resolve() } : WagmiExport.useDisconnect();
|
|
535
648
|
const { connector, isConnected, address, chainId } = connectorWalletType.disableWagmi ? { connector: null, isConnected: false, address: null, chainId: null } : WagmiExport.useAccount();
|
|
536
649
|
const { switchChain } = connectorWalletType.disableWagmi ? { switchChain: () => Promise.resolve() } : WagmiExport.useSwitchChain();
|
|
537
|
-
const connectedChain =
|
|
650
|
+
const connectedChain = React19.useMemo(() => {
|
|
538
651
|
if (chainId) {
|
|
539
652
|
return {
|
|
540
653
|
id: chainId,
|
|
@@ -543,7 +656,7 @@ var WagmiWalletProvider = ({
|
|
|
543
656
|
}
|
|
544
657
|
return null;
|
|
545
658
|
}, [chainId]);
|
|
546
|
-
const setChain =
|
|
659
|
+
const setChain = React19.useCallback(
|
|
547
660
|
(chainId2) => {
|
|
548
661
|
return new Promise((resolve, reject) => {
|
|
549
662
|
switchChain(
|
|
@@ -559,7 +672,7 @@ var WagmiWalletProvider = ({
|
|
|
559
672
|
},
|
|
560
673
|
[switchChain]
|
|
561
674
|
);
|
|
562
|
-
|
|
675
|
+
React19.useEffect(() => {
|
|
563
676
|
if (!connector || !isConnected) {
|
|
564
677
|
setWallet(void 0);
|
|
565
678
|
return;
|
|
@@ -584,12 +697,12 @@ var WagmiWalletProvider = ({
|
|
|
584
697
|
});
|
|
585
698
|
});
|
|
586
699
|
}, [connector, chainId, isConnected, address, connectedChain]);
|
|
587
|
-
const connectors =
|
|
700
|
+
const connectors = React19.useMemo(() => {
|
|
588
701
|
return wagmiConnectors2.filter((connector2) => connector2.id !== "injected").sort(
|
|
589
702
|
(a, b) => a.type === "injected" ? -1 : 1
|
|
590
703
|
);
|
|
591
704
|
}, [wagmiConnectors2]);
|
|
592
|
-
const value =
|
|
705
|
+
const value = React19.useMemo(
|
|
593
706
|
() => ({
|
|
594
707
|
connectors,
|
|
595
708
|
connect,
|
|
@@ -609,20 +722,101 @@ var WagmiWalletProvider = ({
|
|
|
609
722
|
isConnected
|
|
610
723
|
]
|
|
611
724
|
);
|
|
612
|
-
return /* @__PURE__ */
|
|
725
|
+
return /* @__PURE__ */ React19__default.default.createElement(WagmiWalletContext.Provider, { value }, children);
|
|
613
726
|
};
|
|
614
727
|
function useWagmiWallet() {
|
|
615
|
-
const context =
|
|
728
|
+
const context = React19.useContext(WagmiWalletContext);
|
|
616
729
|
if (!context) {
|
|
617
730
|
throw new Error("useWagmiWallet must be used within a WagmiWalletProvider");
|
|
618
731
|
}
|
|
619
732
|
return context;
|
|
620
733
|
}
|
|
734
|
+
function Drawer({ children, isOpen, onClose }) {
|
|
735
|
+
const [windowHeight, setWindowHeight] = React19.useState(0);
|
|
736
|
+
const { isMobile } = ui.useScreen();
|
|
737
|
+
React19.useEffect(() => {
|
|
738
|
+
setWindowHeight(window.innerHeight);
|
|
739
|
+
const handleResize = () => {
|
|
740
|
+
setWindowHeight(window.innerHeight);
|
|
741
|
+
};
|
|
742
|
+
window.addEventListener("resize", handleResize);
|
|
743
|
+
if (isOpen) {
|
|
744
|
+
document.body.style.overflow = "hidden";
|
|
745
|
+
} else {
|
|
746
|
+
document.body.style.overflow = "auto";
|
|
747
|
+
}
|
|
748
|
+
return () => {
|
|
749
|
+
document.body.style.overflow = "auto";
|
|
750
|
+
window.removeEventListener("resize", handleResize);
|
|
751
|
+
};
|
|
752
|
+
}, [isOpen, isMobile]);
|
|
753
|
+
if (!isOpen)
|
|
754
|
+
return null;
|
|
755
|
+
const drawerHeight = isMobile ? windowHeight : windowHeight - 72 - 24;
|
|
756
|
+
return reactDom.createPortal(
|
|
757
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-fixed oui-inset-0 oui-z-[60]" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
758
|
+
"div",
|
|
759
|
+
{
|
|
760
|
+
className: "oui-absolute oui-inset-0 oui-bg-[rgba(0,0,0,0.48)] oui-transition-opacity",
|
|
761
|
+
onClick: onClose
|
|
762
|
+
}
|
|
763
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
764
|
+
"div",
|
|
765
|
+
{
|
|
766
|
+
style: { height: `${drawerHeight}px` },
|
|
767
|
+
className: ui.cn(
|
|
768
|
+
"oui-overflow-hidden",
|
|
769
|
+
"oui-fixed oui-top-0 oui-right-0",
|
|
770
|
+
"oui-bg-[#131519] oui-shadow-lg",
|
|
771
|
+
"oui-border oui-border-line-12",
|
|
772
|
+
"oui-w-[276px]",
|
|
773
|
+
"md:oui-w-[300px]",
|
|
774
|
+
"md:oui-top-1/2 md:oui-translate-y-[-50%]",
|
|
775
|
+
"oui-rounded-0 md:oui-rounded-2xl",
|
|
776
|
+
"md:oui-rounded-0",
|
|
777
|
+
"oui-p-4",
|
|
778
|
+
"oui-transform oui-transition-transform oui-duration-300 oui-ease-in-out",
|
|
779
|
+
"oui-flex oui-flex-col oui-justify-between",
|
|
780
|
+
"oui-m-0 md:oui-m-3",
|
|
781
|
+
isOpen ? "oui-translate-x-0" : "oui--translate-x-full"
|
|
782
|
+
)
|
|
783
|
+
},
|
|
784
|
+
children
|
|
785
|
+
)),
|
|
786
|
+
document.body
|
|
787
|
+
);
|
|
788
|
+
}
|
|
789
|
+
var OrderlyOSS = "https://oss.orderly.network";
|
|
790
|
+
var PrivyConnectorImagePath = `${OrderlyOSS}/static/sdk/privy`;
|
|
791
|
+
var WALLET_ICONS = {
|
|
792
|
+
metamask: "https://oss.orderly.network/static/sdk/evm_wallets/metamask.png",
|
|
793
|
+
walletconnect: "https://oss.orderly.network/static/sdk/evm_wallets/walletConnect.png",
|
|
794
|
+
binance: "https://oss.orderly.network/static/sdk/evm_wallets/binance.png",
|
|
795
|
+
ledger: "https://oss.orderly.network/static/sdk/evm_wallets/ledger.png",
|
|
796
|
+
coinbase: "https://oss.orderly.network/static/sdk/evm_wallets/coinbase.png",
|
|
797
|
+
magic: "https://oss.orderly.network/static/sdk/evm_wallets/magic.png",
|
|
798
|
+
trezor: "https://oss.orderly.network/static/sdk/evm_wallets/trezor.png",
|
|
799
|
+
exodus: "https://oss.orderly.network/static/sdk/evm_wallets/exodus.png",
|
|
800
|
+
frame: "https://oss.orderly.network/static/sdk/evm_wallets/frame.png",
|
|
801
|
+
rabby: "https://oss.orderly.network/static/sdk/evm_wallets/rabby.png"
|
|
802
|
+
};
|
|
803
|
+
var getWalletIcon = (type) => {
|
|
804
|
+
return WALLET_ICONS[type.toLowerCase()];
|
|
805
|
+
};
|
|
806
|
+
var getChainType = (chainId) => {
|
|
807
|
+
if (types.AbstractChains.has(chainId)) {
|
|
808
|
+
return "Abstract" /* ABSTRACT */;
|
|
809
|
+
}
|
|
810
|
+
if (types.SolanaChains.has(chainId)) {
|
|
811
|
+
return "SOL" /* SOL */;
|
|
812
|
+
}
|
|
813
|
+
return "EVM" /* EVM */;
|
|
814
|
+
};
|
|
621
815
|
|
|
622
816
|
// src/hooks/useWallet.tsx
|
|
623
817
|
function useWallet2() {
|
|
624
818
|
const { track } = hooks.useTrack();
|
|
625
|
-
const {
|
|
819
|
+
const { walletChainTypeConfig } = useWalletConnectorPrivy();
|
|
626
820
|
const [connectorKey, setConnectorKey] = hooks.useLocalStorage(types.ConnectorKey, "");
|
|
627
821
|
const {
|
|
628
822
|
disconnect: disconnectEVM,
|
|
@@ -647,13 +841,20 @@ function useWallet2() {
|
|
|
647
841
|
isConnected: isConnectedPrivy,
|
|
648
842
|
switchChain: setChainPrivy
|
|
649
843
|
} = usePrivyWallet();
|
|
650
|
-
const
|
|
651
|
-
|
|
844
|
+
const {
|
|
845
|
+
connect: connectAbstract,
|
|
846
|
+
wallet: walletAbstract,
|
|
847
|
+
connectedChain: connectedChainAbstract,
|
|
848
|
+
isConnected: isConnectedAbstract,
|
|
849
|
+
disconnect: disconnectAbstract
|
|
850
|
+
} = useAbstractWallet();
|
|
851
|
+
const [wallet, setWallet] = React19.useState(null);
|
|
852
|
+
const [namespace, setNamespace] = React19.useState(null);
|
|
652
853
|
const { storageChain, setStorageChain } = hooks.useStorageChain();
|
|
653
|
-
const { setOpenConnectDrawer,
|
|
654
|
-
const isManual =
|
|
854
|
+
const { setOpenConnectDrawer, targetWalletType, setTargetWalletType } = useWalletConnectorPrivy();
|
|
855
|
+
const isManual = React19.useRef(false);
|
|
655
856
|
const connect = (params) => {
|
|
656
|
-
|
|
857
|
+
setTargetWalletType(void 0);
|
|
657
858
|
try {
|
|
658
859
|
if (params.walletType === "EVM" /* EVM */) {
|
|
659
860
|
setConnectorKey("EVM" /* EVM */);
|
|
@@ -667,26 +868,25 @@ function useWallet2() {
|
|
|
667
868
|
setConnectorKey("privy" /* PRIVY */);
|
|
668
869
|
connectPrivy();
|
|
669
870
|
}
|
|
871
|
+
if (params.walletType === "Abstract" /* ABSTRACT */) {
|
|
872
|
+
setConnectorKey("Abstract" /* ABSTRACT */);
|
|
873
|
+
connectAbstract();
|
|
874
|
+
}
|
|
670
875
|
} catch (e) {
|
|
671
876
|
}
|
|
672
877
|
};
|
|
673
|
-
const isPrivy =
|
|
878
|
+
const isPrivy = React19.useMemo(() => {
|
|
674
879
|
if (connectorKey === "privy" /* PRIVY */) {
|
|
675
880
|
return true;
|
|
676
881
|
}
|
|
677
882
|
return false;
|
|
678
883
|
}, [connectorKey]);
|
|
679
|
-
const [connectedChain, setConnectedChain] =
|
|
884
|
+
const [connectedChain, setConnectedChain] = React19.useState();
|
|
680
885
|
const setChain = async (chain) => {
|
|
681
|
-
|
|
682
|
-
if (Array.from(SolanaChains.values()).includes(
|
|
683
|
-
parseInt(chain.chainId)
|
|
684
|
-
)) {
|
|
685
|
-
tempNamespace = types.ChainNamespace.solana;
|
|
686
|
-
}
|
|
886
|
+
const chainType = getChainType(parseInt(chain.chainId));
|
|
687
887
|
if (isPrivy) {
|
|
688
|
-
if (
|
|
689
|
-
if (
|
|
888
|
+
if (chainType === "EVM" /* EVM */) {
|
|
889
|
+
if (!walletChainTypeConfig.hasEvm) {
|
|
690
890
|
return Promise.reject(new Error("No evm wallet found"));
|
|
691
891
|
}
|
|
692
892
|
isManual.current = true;
|
|
@@ -701,79 +901,99 @@ function useWallet2() {
|
|
|
701
901
|
return Promise.reject(e);
|
|
702
902
|
});
|
|
703
903
|
}
|
|
704
|
-
if (
|
|
904
|
+
if (chainType === "Abstract" /* ABSTRACT */) {
|
|
905
|
+
setOpenConnectDrawer(true);
|
|
906
|
+
setTargetWalletType("Abstract" /* ABSTRACT */);
|
|
907
|
+
}
|
|
908
|
+
if (chainType === "SOL" /* SOL */) {
|
|
705
909
|
isManual.current = true;
|
|
706
|
-
if (
|
|
707
|
-
return Promise.reject(new Error("
|
|
910
|
+
if (!walletChainTypeConfig.hasSol) {
|
|
911
|
+
return Promise.reject(new Error("No solana wallet found"));
|
|
708
912
|
}
|
|
709
913
|
if (privyWalletSOL) {
|
|
710
914
|
setStorageChain(parseInt(chain.chainId));
|
|
711
915
|
return Promise.resolve(true);
|
|
712
916
|
} else {
|
|
713
917
|
setOpenConnectDrawer(true);
|
|
714
|
-
|
|
918
|
+
setTargetWalletType("SOL" /* SOL */);
|
|
715
919
|
return Promise.reject(new Error("No solana wallet found"));
|
|
716
920
|
}
|
|
717
921
|
}
|
|
718
922
|
} else {
|
|
719
|
-
if (
|
|
720
|
-
if (
|
|
923
|
+
if (chainType === "EVM" /* EVM */) {
|
|
924
|
+
if (isConnectedEVM && walletEVM) {
|
|
721
925
|
await setChainEvm(parseInt(chain.chainId));
|
|
722
926
|
setStorageChain(parseInt(chain.chainId));
|
|
723
927
|
track(types.TrackerEventName.switchNetworkSuccess, {
|
|
724
928
|
from_chain: storageChain?.chainId,
|
|
725
929
|
to_chain: chain.chainId
|
|
726
930
|
});
|
|
931
|
+
} else {
|
|
932
|
+
setOpenConnectDrawer(true);
|
|
933
|
+
setTargetWalletType("EVM" /* EVM */);
|
|
727
934
|
return Promise.resolve(true);
|
|
728
935
|
}
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
936
|
+
return Promise.resolve(true);
|
|
937
|
+
}
|
|
938
|
+
if (chainType === "SOL" /* SOL */) {
|
|
939
|
+
if (isConnectedSOL && walletSOL) {
|
|
940
|
+
setStorageChain(parseInt(chain.chainId));
|
|
941
|
+
} else {
|
|
942
|
+
setOpenConnectDrawer(true);
|
|
943
|
+
setTargetWalletType("SOL" /* SOL */);
|
|
944
|
+
return Promise.resolve(true);
|
|
737
945
|
}
|
|
738
946
|
}
|
|
739
|
-
if (
|
|
740
|
-
if (
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
947
|
+
if (chainType === "Abstract" /* ABSTRACT */) {
|
|
948
|
+
if (isConnectedAbstract && walletAbstract) {
|
|
949
|
+
setStorageChain(parseInt(chain.chainId));
|
|
950
|
+
return Promise.resolve(true);
|
|
951
|
+
} else {
|
|
952
|
+
setOpenConnectDrawer(true);
|
|
953
|
+
setTargetWalletType("Abstract" /* ABSTRACT */);
|
|
954
|
+
return Promise.reject(new Error("No abstract wallet found"));
|
|
747
955
|
}
|
|
748
956
|
}
|
|
749
957
|
}
|
|
750
958
|
};
|
|
751
|
-
const switchWallet = (
|
|
959
|
+
const switchWallet = (walletType) => {
|
|
752
960
|
const fromWallet = wallet?.accounts[0].address;
|
|
753
961
|
let toWallet;
|
|
754
962
|
if (isPrivy) {
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
963
|
+
switch (walletType) {
|
|
964
|
+
case "EVM" /* EVM */:
|
|
965
|
+
if (privyWalletEVM) {
|
|
966
|
+
setStorageChain(privyWalletEVM.chain.id);
|
|
967
|
+
toWallet = privyWalletEVM.accounts[0].address;
|
|
968
|
+
}
|
|
969
|
+
break;
|
|
970
|
+
case "SOL" /* SOL */:
|
|
971
|
+
if (privyWalletSOL) {
|
|
972
|
+
setStorageChain(privyWalletSOL.chain.id);
|
|
973
|
+
toWallet = privyWalletSOL.accounts[0].address;
|
|
974
|
+
}
|
|
975
|
+
break;
|
|
765
976
|
}
|
|
766
977
|
} else {
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
978
|
+
switch (walletType) {
|
|
979
|
+
case "EVM" /* EVM */:
|
|
980
|
+
if (walletEVM) {
|
|
981
|
+
setStorageChain(walletEVM.chain.id);
|
|
982
|
+
toWallet = walletEVM.accounts[0].address;
|
|
983
|
+
}
|
|
984
|
+
break;
|
|
985
|
+
case "SOL" /* SOL */:
|
|
986
|
+
if (walletSOL) {
|
|
987
|
+
setStorageChain(walletSOL.chain.id);
|
|
988
|
+
toWallet = walletSOL.accounts[0].address;
|
|
989
|
+
}
|
|
990
|
+
break;
|
|
991
|
+
case "Abstract" /* ABSTRACT */:
|
|
992
|
+
if (walletAbstract) {
|
|
993
|
+
setStorageChain(walletAbstract.chain.id);
|
|
994
|
+
toWallet = walletAbstract.accounts[0].address;
|
|
995
|
+
}
|
|
996
|
+
break;
|
|
777
997
|
}
|
|
778
998
|
}
|
|
779
999
|
track(types.TrackerEventName.clickSwitchWallet, {
|
|
@@ -782,14 +1002,15 @@ function useWallet2() {
|
|
|
782
1002
|
});
|
|
783
1003
|
};
|
|
784
1004
|
const disconnect = async (walletType) => {
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
1005
|
+
switch (walletType) {
|
|
1006
|
+
case "privy" /* PRIVY */:
|
|
1007
|
+
return await disconnectPrivy();
|
|
1008
|
+
case "EVM" /* EVM */:
|
|
1009
|
+
return disconnectEVM();
|
|
1010
|
+
case "SOL" /* SOL */:
|
|
1011
|
+
return disconnectSOL();
|
|
1012
|
+
case "Abstract" /* ABSTRACT */:
|
|
1013
|
+
return disconnectAbstract();
|
|
793
1014
|
}
|
|
794
1015
|
};
|
|
795
1016
|
const setNullWalletStatus = () => {
|
|
@@ -797,11 +1018,14 @@ function useWallet2() {
|
|
|
797
1018
|
setConnectedChain(null);
|
|
798
1019
|
setNamespace(null);
|
|
799
1020
|
};
|
|
800
|
-
|
|
1021
|
+
React19.useEffect(() => {
|
|
801
1022
|
if (connectorKey !== "privy" /* PRIVY */) {
|
|
802
1023
|
return;
|
|
803
1024
|
}
|
|
804
1025
|
if (storageChain?.namespace === types.ChainNamespace.evm) {
|
|
1026
|
+
if (types.AbstractChains.has(storageChain.chainId)) {
|
|
1027
|
+
return setNullWalletStatus();
|
|
1028
|
+
}
|
|
805
1029
|
if (privyWalletEVM) {
|
|
806
1030
|
setWallet(privyWalletEVM);
|
|
807
1031
|
setConnectedChain(privyWalletEVM.chain);
|
|
@@ -820,17 +1044,27 @@ function useWallet2() {
|
|
|
820
1044
|
}
|
|
821
1045
|
}
|
|
822
1046
|
}, [connectorKey, privyWalletEVM, privyWalletSOL, storageChain]);
|
|
823
|
-
|
|
1047
|
+
React19.useEffect(() => {
|
|
824
1048
|
if (connectorKey === "privy" /* PRIVY */) {
|
|
825
1049
|
return;
|
|
826
1050
|
}
|
|
827
1051
|
if (storageChain?.namespace === types.ChainNamespace.evm) {
|
|
828
|
-
if (
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
1052
|
+
if (types.AbstractChains.has(storageChain.chainId)) {
|
|
1053
|
+
if (isConnectedAbstract && walletAbstract) {
|
|
1054
|
+
setWallet(walletAbstract);
|
|
1055
|
+
setConnectedChain(connectedChainAbstract);
|
|
1056
|
+
setNamespace(types.ChainNamespace.evm);
|
|
1057
|
+
} else {
|
|
1058
|
+
setNullWalletStatus();
|
|
1059
|
+
}
|
|
832
1060
|
} else {
|
|
833
|
-
|
|
1061
|
+
if (isConnectedEVM && walletEVM) {
|
|
1062
|
+
setWallet(walletEVM);
|
|
1063
|
+
setConnectedChain(connectedChainEvm);
|
|
1064
|
+
setNamespace(types.ChainNamespace.evm);
|
|
1065
|
+
} else {
|
|
1066
|
+
setNullWalletStatus();
|
|
1067
|
+
}
|
|
834
1068
|
}
|
|
835
1069
|
}
|
|
836
1070
|
if (storageChain?.namespace === types.ChainNamespace.solana) {
|
|
@@ -848,7 +1082,10 @@ function useWallet2() {
|
|
|
848
1082
|
walletEVM,
|
|
849
1083
|
walletSOL,
|
|
850
1084
|
isConnectedEVM,
|
|
851
|
-
isConnectedSOL
|
|
1085
|
+
isConnectedSOL,
|
|
1086
|
+
isConnectedAbstract,
|
|
1087
|
+
walletAbstract,
|
|
1088
|
+
connectedChainAbstract
|
|
852
1089
|
]);
|
|
853
1090
|
return {
|
|
854
1091
|
connect,
|
|
@@ -860,30 +1097,115 @@ function useWallet2() {
|
|
|
860
1097
|
disconnect
|
|
861
1098
|
};
|
|
862
1099
|
}
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
1100
|
+
function AbstractConnectArea({ connect }) {
|
|
1101
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mb-2 oui-text-sm oui-font-semibold oui-text-base-contrast-80" }, "Abstract"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-grid oui-grid-cols-2 oui-gap-2" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1102
|
+
"div",
|
|
1103
|
+
{
|
|
1104
|
+
className: " oui-flex oui-flex-1 oui-cursor-pointer oui-items-center oui-justify-start oui-gap-1 oui-rounded-[6px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]",
|
|
1105
|
+
onClick: () => connect()
|
|
1106
|
+
},
|
|
1107
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-size-[18px] oui-items-center oui-justify-center" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1108
|
+
"img",
|
|
1109
|
+
{
|
|
1110
|
+
className: ui.cn("oui-size-[12px]"),
|
|
1111
|
+
src: `${PrivyConnectorImagePath}/abstract.png`,
|
|
1112
|
+
alt: "abstract wallet"
|
|
1113
|
+
}
|
|
1114
|
+
)),
|
|
1115
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, "Abstract")
|
|
1116
|
+
)));
|
|
1117
|
+
}
|
|
1118
|
+
function PrivyConnectArea({
|
|
1119
|
+
connect
|
|
1120
|
+
}) {
|
|
1121
|
+
const { t } = i18n.useTranslation();
|
|
1122
|
+
const { isMobile, isDesktop } = ui.useScreen();
|
|
1123
|
+
const { connectorWalletType } = useWalletConnectorPrivy();
|
|
1124
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1125
|
+
"div",
|
|
1126
|
+
{
|
|
1127
|
+
className: ui.cn(
|
|
1128
|
+
"oui-flex oui-items-center oui-justify-between",
|
|
1129
|
+
"oui-mb-3 oui-text-sm oui-font-semibold oui-text-base-contrast-80",
|
|
1130
|
+
"md:oui-mb-2"
|
|
1131
|
+
)
|
|
1132
|
+
},
|
|
1133
|
+
t("connector.privy.loginIn"),
|
|
1134
|
+
isMobile && /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-h-3 oui-justify-center" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1135
|
+
"img",
|
|
1136
|
+
{
|
|
1137
|
+
src: "https://oss.orderly.network/static/sdk/privy/privy-logo.png",
|
|
1138
|
+
className: " oui-h-[10px]"
|
|
1139
|
+
}
|
|
1140
|
+
))
|
|
1141
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
1142
|
+
"div",
|
|
1143
|
+
{
|
|
1144
|
+
className: ui.cn(
|
|
1145
|
+
"oui-grid oui-grid-cols-2 oui-gap-2",
|
|
1146
|
+
"md:oui-flex md:oui-flex-col md:oui-gap-2"
|
|
1147
|
+
)
|
|
1148
|
+
},
|
|
1149
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1150
|
+
"div",
|
|
1151
|
+
{
|
|
1152
|
+
className: "oui-flex oui-cursor-pointer oui-items-center oui-justify-center oui-gap-1 oui-rounded-[6px] oui-bg-[#333948] oui-px-2 oui-py-[11px]",
|
|
1153
|
+
onClick: () => connect({ walletType: "privy", extraType: "email" })
|
|
1154
|
+
},
|
|
1155
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1156
|
+
"img",
|
|
1157
|
+
{
|
|
1158
|
+
src: "https://oss.orderly.network/static/sdk/privy/email.svg",
|
|
1159
|
+
className: "oui-size-[18px]"
|
|
1160
|
+
}
|
|
1161
|
+
),
|
|
1162
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, t("connector.privy.email"))
|
|
1163
|
+
),
|
|
1164
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1165
|
+
"div",
|
|
1166
|
+
{
|
|
1167
|
+
className: "oui-flex oui-cursor-pointer oui-items-center oui-justify-center oui-gap-1 oui-rounded-[6px] oui-bg-[#335FFC] oui-px-2 oui-py-[11px]",
|
|
1168
|
+
onClick: () => connect({ walletType: "privy", extraType: "google" })
|
|
1169
|
+
},
|
|
1170
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1171
|
+
"img",
|
|
1172
|
+
{
|
|
1173
|
+
src: "https://oss.orderly.network/static/sdk/privy/google.svg",
|
|
1174
|
+
className: "oui-size-[18px]"
|
|
1175
|
+
}
|
|
1176
|
+
),
|
|
1177
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, t("connector.privy.google"))
|
|
1178
|
+
),
|
|
1179
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1180
|
+
"div",
|
|
1181
|
+
{
|
|
1182
|
+
className: "oui-flex oui-cursor-pointer oui-items-center oui-justify-center oui-gap-1 oui-rounded-[6px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]",
|
|
1183
|
+
onClick: () => connect({ walletType: "privy", extraType: "twitter" })
|
|
1184
|
+
},
|
|
1185
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1186
|
+
"img",
|
|
1187
|
+
{
|
|
1188
|
+
src: "https://oss.orderly.network/static/sdk/privy/twitter.svg",
|
|
1189
|
+
className: "oui-size-[18px]"
|
|
1190
|
+
}
|
|
1191
|
+
),
|
|
1192
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, t("connector.privy.twitter"))
|
|
1193
|
+
)
|
|
1194
|
+
), isDesktop && /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mt-4 oui-flex oui-h-3 oui-justify-center" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1195
|
+
"img",
|
|
1196
|
+
{
|
|
1197
|
+
src: "https://oss.orderly.network/static/sdk/privy/privy-logo.png",
|
|
1198
|
+
className: " oui-h-[10px]"
|
|
1199
|
+
}
|
|
1200
|
+
)), (!connectorWalletType.disableWagmi || !connectorWalletType.disableSolana) && /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mt-4 oui-h-px oui-w-full oui-bg-line md:oui-mt-5" }));
|
|
1201
|
+
}
|
|
880
1202
|
function RenderPrivyTypeIcon({
|
|
881
1203
|
type,
|
|
882
1204
|
size,
|
|
883
1205
|
black
|
|
884
1206
|
}) {
|
|
885
1207
|
if (type === "email") {
|
|
886
|
-
return /* @__PURE__ */
|
|
1208
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
887
1209
|
"img",
|
|
888
1210
|
{
|
|
889
1211
|
src: `https://oss.orderly.network/static/sdk/privy/email${black ? "-black" : ""}.svg`,
|
|
@@ -892,7 +1214,7 @@ function RenderPrivyTypeIcon({
|
|
|
892
1214
|
);
|
|
893
1215
|
}
|
|
894
1216
|
if (type === "google_oauth") {
|
|
895
|
-
return /* @__PURE__ */
|
|
1217
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
896
1218
|
"img",
|
|
897
1219
|
{
|
|
898
1220
|
src: "https://oss.orderly.network/static/sdk/privy/google.svg",
|
|
@@ -901,7 +1223,7 @@ function RenderPrivyTypeIcon({
|
|
|
901
1223
|
);
|
|
902
1224
|
}
|
|
903
1225
|
if (type === "twitter_oauth") {
|
|
904
|
-
return /* @__PURE__ */
|
|
1226
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
905
1227
|
"img",
|
|
906
1228
|
{
|
|
907
1229
|
src: `https://oss.orderly.network/static/sdk/privy/twitter${black ? "-black" : ""}.svg`,
|
|
@@ -909,7 +1231,7 @@ function RenderPrivyTypeIcon({
|
|
|
909
1231
|
}
|
|
910
1232
|
);
|
|
911
1233
|
}
|
|
912
|
-
return /* @__PURE__ */
|
|
1234
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
913
1235
|
"img",
|
|
914
1236
|
{
|
|
915
1237
|
src: `https://oss.orderly.network/static/sdk/privy/email${black ? "-black" : ""}.svg`,
|
|
@@ -921,7 +1243,7 @@ function RenderWalletIcon({
|
|
|
921
1243
|
connector
|
|
922
1244
|
}) {
|
|
923
1245
|
const icon = connector.icon ? connector.icon : getWalletIcon(connector.type);
|
|
924
|
-
return /* @__PURE__ */
|
|
1246
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
925
1247
|
"img",
|
|
926
1248
|
{
|
|
927
1249
|
className: ui.cn(
|
|
@@ -932,73 +1254,282 @@ function RenderWalletIcon({
|
|
|
932
1254
|
}
|
|
933
1255
|
));
|
|
934
1256
|
}
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
1257
|
+
function EVMChainPopover({ children }) {
|
|
1258
|
+
const { getChainsByNetwork } = useWalletConnectorPrivy();
|
|
1259
|
+
const [chains] = React19.useState(getChainsByNetwork("mainnet"));
|
|
1260
|
+
const { t } = i18n.useTranslation();
|
|
1261
|
+
const { isMobile } = ui.useScreen();
|
|
1262
|
+
const [open, setOpen] = React19.useState(false);
|
|
1263
|
+
if (isMobile) {
|
|
1264
|
+
return /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1265
|
+
ui.SimpleDialog,
|
|
1266
|
+
{
|
|
1267
|
+
open,
|
|
1268
|
+
size: "xs",
|
|
1269
|
+
onOpenChange: setOpen,
|
|
1270
|
+
classNames: {
|
|
1271
|
+
content: "oui-p-4 oui-z-[99]",
|
|
1272
|
+
overlay: "oui-z-[99]"
|
|
1273
|
+
},
|
|
1274
|
+
title: t("connector.privy.supportedEvmChain")
|
|
1275
|
+
},
|
|
1276
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-p-1 oui-grid oui-grid-cols-2 oui-gap-x-2 oui-gap-y-3 oui-text-2xs oui-text-base-contrast-54" }, chains.map((item, key) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1277
|
+
"div",
|
|
1278
|
+
{
|
|
1279
|
+
key,
|
|
1280
|
+
className: "oui-flex oui-items-center oui-justify-start oui-gap-1"
|
|
1281
|
+
},
|
|
1282
|
+
/* @__PURE__ */ React19__default.default.createElement(ui.ChainIcon, { chainId: item.id, size: "2xs" }),
|
|
1283
|
+
/* @__PURE__ */ React19__default.default.createElement("div", null, item.name)
|
|
1284
|
+
)))
|
|
1285
|
+
), /* @__PURE__ */ React19__default.default.createElement("button", { onClick: () => setOpen(true) }, children));
|
|
1286
|
+
}
|
|
1287
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1288
|
+
ui.Popover,
|
|
1289
|
+
{
|
|
1290
|
+
content: /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast" }, t("connector.privy.supportedEvmChain")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mt-3 oui-grid oui-grid-cols-3 oui-gap-x-2 oui-gap-y-3 oui-text-2xs oui-text-base-contrast-54" }, chains.map((item, key) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1291
|
+
"div",
|
|
1292
|
+
{
|
|
1293
|
+
key,
|
|
1294
|
+
className: "oui-flex oui-items-center oui-justify-start oui-gap-1"
|
|
1295
|
+
},
|
|
1296
|
+
/* @__PURE__ */ React19__default.default.createElement(ui.ChainIcon, { chainId: item.id, size: "2xs" }),
|
|
1297
|
+
/* @__PURE__ */ React19__default.default.createElement("div", null, item.name)
|
|
1298
|
+
)))),
|
|
1299
|
+
arrow: true,
|
|
1300
|
+
contentProps: {
|
|
1301
|
+
side: "bottom",
|
|
1302
|
+
align: "center",
|
|
1303
|
+
className: "oui-p-2 oui-z-[65]"
|
|
1304
|
+
}
|
|
1305
|
+
},
|
|
1306
|
+
/* @__PURE__ */ React19__default.default.createElement("button", null, children)
|
|
1307
|
+
);
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
// src/components/renderConnector/solanaConnector.tsx
|
|
1311
|
+
function SOLConnectArea({
|
|
1312
|
+
connect
|
|
1313
|
+
}) {
|
|
1314
|
+
const { wallets } = useSolanaWallet();
|
|
1315
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mb-2 oui-text-sm oui-font-semibold oui-text-base-contrast-80" }, "Solana"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-grid oui-grid-cols-2 oui-gap-2" }, wallets.map((item, key) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1316
|
+
"div",
|
|
1317
|
+
{
|
|
1318
|
+
key,
|
|
1319
|
+
className: " oui-flex oui-flex-1 oui-cursor-pointer oui-items-center oui-justify-start oui-gap-1 oui-rounded-[6px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]",
|
|
1320
|
+
onClick: () => connect(item.adapter)
|
|
1321
|
+
},
|
|
1322
|
+
/* @__PURE__ */ React19__default.default.createElement(RenderWalletIcon, { connector: item.adapter }),
|
|
1323
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, item.adapter.name)
|
|
1324
|
+
))));
|
|
1325
|
+
}
|
|
1326
|
+
function EVMConnectArea({ connect }) {
|
|
1327
|
+
const { connectors } = useWagmiWallet();
|
|
1328
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mb-2 oui-text-sm oui-font-semibold oui-text-base-contrast-80" }, "EVM"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-grid oui-grid-cols-2 oui-gap-2" }, connectors.map((item, key) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1329
|
+
"div",
|
|
1330
|
+
{
|
|
1331
|
+
key,
|
|
1332
|
+
className: " oui-flex oui-flex-1 oui-cursor-pointer oui-items-center oui-justify-start oui-gap-1 oui-rounded-[6px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]",
|
|
1333
|
+
onClick: () => connect(item)
|
|
1334
|
+
},
|
|
1335
|
+
/* @__PURE__ */ React19__default.default.createElement(RenderWalletIcon, { connector: item }),
|
|
1336
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, item.name)
|
|
1337
|
+
))));
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
// src/components/renderConnector/index.tsx
|
|
1341
|
+
function RenderConnector() {
|
|
1342
|
+
const { connect } = useWallet2();
|
|
1343
|
+
const { setOpenConnectDrawer, connectorWalletType, walletChainTypeConfig } = useWalletConnectorPrivy();
|
|
1344
|
+
const handleConnect = (params) => {
|
|
1345
|
+
connect(params);
|
|
1346
|
+
if (params.walletType === "privy" /* PRIVY */) {
|
|
1347
|
+
setOpenConnectDrawer(false);
|
|
1348
|
+
}
|
|
1349
|
+
};
|
|
1350
|
+
const renderPrivyConnectArea = () => {
|
|
1351
|
+
if (connectorWalletType.disablePrivy) {
|
|
1352
|
+
return null;
|
|
1353
|
+
}
|
|
1354
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1355
|
+
PrivyConnectArea,
|
|
1356
|
+
{
|
|
1357
|
+
connect: (type) => handleConnect({
|
|
1358
|
+
walletType: "privy" /* PRIVY */,
|
|
1359
|
+
extraType: type
|
|
1360
|
+
})
|
|
1361
|
+
}
|
|
1362
|
+
);
|
|
1363
|
+
};
|
|
1364
|
+
const renderWagmiConnectArea = () => {
|
|
1365
|
+
if (connectorWalletType.disableWagmi) {
|
|
1366
|
+
return null;
|
|
1367
|
+
}
|
|
1368
|
+
if (!walletChainTypeConfig.hasEvm) {
|
|
1369
|
+
return null;
|
|
1370
|
+
}
|
|
1371
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1372
|
+
EVMConnectArea,
|
|
1373
|
+
{
|
|
1374
|
+
connect: (connector) => handleConnect({
|
|
1375
|
+
walletType: "EVM" /* EVM */,
|
|
1376
|
+
connector
|
|
1377
|
+
})
|
|
1378
|
+
}
|
|
1379
|
+
);
|
|
1380
|
+
};
|
|
1381
|
+
const renderSolanaConnectArea = () => {
|
|
1382
|
+
if (connectorWalletType.disableSolana) {
|
|
1383
|
+
return null;
|
|
1384
|
+
}
|
|
1385
|
+
if (!walletChainTypeConfig.hasSol) {
|
|
1386
|
+
return null;
|
|
1387
|
+
}
|
|
1388
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1389
|
+
SOLConnectArea,
|
|
1390
|
+
{
|
|
1391
|
+
connect: (walletAdapter) => handleConnect({
|
|
1392
|
+
walletType: "SOL" /* SOL */,
|
|
1393
|
+
walletAdapter
|
|
1394
|
+
})
|
|
1395
|
+
}
|
|
1396
|
+
);
|
|
1397
|
+
};
|
|
1398
|
+
const renderAbstractConnectArea = () => {
|
|
1399
|
+
if (connectorWalletType.disableAGW) {
|
|
1400
|
+
return null;
|
|
1401
|
+
}
|
|
1402
|
+
if (!walletChainTypeConfig.hasAbstract) {
|
|
1403
|
+
return null;
|
|
1404
|
+
}
|
|
1405
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1406
|
+
AbstractConnectArea,
|
|
1407
|
+
{
|
|
1408
|
+
connect: () => handleConnect({ walletType: "Abstract" /* ABSTRACT */ })
|
|
1409
|
+
}
|
|
1410
|
+
);
|
|
1411
|
+
};
|
|
1412
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: ui.cn("oui-flex oui-flex-col oui-gap-4", "md:oui-gap-5") }, renderPrivyConnectArea(), renderWagmiConnectArea(), renderSolanaConnectArea(), renderAbstractConnectArea());
|
|
1413
|
+
}
|
|
1414
|
+
function SwitchNetworkTips({
|
|
1415
|
+
tipsContent
|
|
1416
|
+
}) {
|
|
1417
|
+
const { t } = i18n.useTranslation();
|
|
1418
|
+
if (!tipsContent) {
|
|
1419
|
+
return null;
|
|
1420
|
+
}
|
|
1421
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-mb-3 oui-items-center oui-gap-1 oui-px-2 oui-py-[6px] oui-bg-[rgba(255,125,0,0.1)] oui-rounded-[8px] " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1422
|
+
ui.ExclamationFillIcon,
|
|
1423
|
+
{
|
|
1424
|
+
size: 14,
|
|
1425
|
+
className: " oui-text-warning-darken oui-flex-shrink-0"
|
|
1426
|
+
}
|
|
1427
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-warning-darken" }, t("connector.privy.switchNetwork.tips", {
|
|
1428
|
+
chainName: tipsContent
|
|
1429
|
+
})));
|
|
1430
|
+
}
|
|
1431
|
+
var StorageChainNotCurrentWalletType = ({
|
|
1432
|
+
currentWalletType
|
|
1433
|
+
}) => {
|
|
1434
|
+
const { storageChain } = hooks.useStorageChain();
|
|
1435
|
+
const tipsContent = React19.useMemo(() => {
|
|
1436
|
+
if (!currentWalletType || currentWalletType.size === 0 || !storageChain) {
|
|
1437
|
+
return null;
|
|
1438
|
+
}
|
|
1439
|
+
let text = null;
|
|
1440
|
+
const isSolana = types.SolanaChains.has(parseInt(storageChain?.chainId));
|
|
1441
|
+
const isAbstract = types.AbstractChains.has(parseInt(storageChain?.chainId));
|
|
1442
|
+
const isEvm = !isSolana && !isAbstract;
|
|
1443
|
+
if (isSolana && currentWalletType.has("SOL" /* SOL */)) {
|
|
1444
|
+
return null;
|
|
1445
|
+
} else if (isAbstract && currentWalletType.has("Abstract" /* ABSTRACT */)) {
|
|
1446
|
+
return null;
|
|
1447
|
+
} else if (isEvm && currentWalletType.has("EVM" /* EVM */)) {
|
|
1448
|
+
return null;
|
|
1449
|
+
}
|
|
1450
|
+
text = Array.from(currentWalletType).map((item) => {
|
|
1451
|
+
if (item === "EVM" /* EVM */) {
|
|
1452
|
+
return "Evm";
|
|
1453
|
+
} else if (item === "SOL" /* SOL */) {
|
|
1454
|
+
return "Solana";
|
|
1455
|
+
} else if (item === "Abstract" /* ABSTRACT */) {
|
|
1456
|
+
return "Abstract";
|
|
1457
|
+
}
|
|
1458
|
+
}).join("/");
|
|
1459
|
+
return text;
|
|
1460
|
+
}, [storageChain, currentWalletType]);
|
|
1461
|
+
return /* @__PURE__ */ React19__default.default.createElement(SwitchNetworkTips, { tipsContent });
|
|
1462
|
+
};
|
|
1463
|
+
var MoreIcon = (props) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1464
|
+
"svg",
|
|
1465
|
+
{
|
|
955
1466
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1467
|
+
width: "16",
|
|
1468
|
+
height: "16",
|
|
1469
|
+
viewBox: "0 0 16 16",
|
|
956
1470
|
fill: "currentColor",
|
|
957
1471
|
...props
|
|
958
1472
|
},
|
|
959
|
-
/* @__PURE__ */
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
id: "Vector",
|
|
963
|
-
d: "M1.99365 4.66056C1.99365 3.1879 3.18759 1.9939 4.66032 1.9939H7.32698C8.79965 1.9939 9.99365 3.1879 9.99365 4.66056C9.99365 5.02856 9.69498 5.32723 9.32698 5.32723C8.95898 5.32723 8.66032 5.02856 8.66032 4.66056C8.66032 3.92389 8.06365 3.32723 7.32698 3.32723H4.66032C3.92392 3.32723 3.32699 3.92389 3.32699 4.66056V11.3272C3.32699 12.0639 3.92392 12.6606 4.66032 12.6606H7.32698C8.06365 12.6606 8.66032 12.0639 8.66032 11.3272C8.66032 10.9592 8.95898 10.6606 9.32698 10.6606C9.69498 10.6606 9.99365 10.9592 9.99365 11.3272C9.99365 12.7999 8.79965 13.9939 7.32698 13.9939H4.66032C3.18759 13.9939 1.99365 12.7999 1.99365 11.3272V4.66056ZM6.66032 7.99389C6.66032 7.62589 6.95898 7.32722 7.32698 7.32722H12.369L11.0563 5.99389L11.9937 5.05656L14.473 7.51456C14.733 7.77523 14.733 8.21255 14.473 8.47322L11.9937 10.9312L11.0563 9.99389L12.369 8.66056H7.32698C6.95898 8.66056 6.66032 8.36189 6.66032 7.99389Z"
|
|
964
|
-
}
|
|
965
|
-
))
|
|
1473
|
+
/* @__PURE__ */ React19__default.default.createElement("path", { d: "M8.00521 6.66797C8.74161 6.66797 9.33854 7.26464 9.33854 8.0013C9.33854 8.73797 8.74161 9.33464 8.00521 9.33464C7.26881 9.33464 6.67188 8.73797 6.67188 8.0013C6.67188 7.26464 7.26881 6.66797 8.00521 6.66797Z" }),
|
|
1474
|
+
/* @__PURE__ */ React19__default.default.createElement("path", { d: "M3.33333 6.66797C4.06973 6.66797 4.66667 7.26464 4.66667 8.0013C4.66667 8.73797 4.06973 9.33464 3.33333 9.33464C2.59693 9.33464 2 8.73797 2 8.0013C2 7.26464 2.59693 6.66797 3.33333 6.66797Z" }),
|
|
1475
|
+
/* @__PURE__ */ React19__default.default.createElement("path", { d: "M12.6666 6.66797C13.403 6.66797 14 7.26464 14 8.0013C14 8.73797 13.403 9.33464 12.6666 9.33464C11.9302 9.33464 11.3333 8.73797 11.3333 8.0013C11.3333 7.26464 11.9302 6.66797 12.6666 6.66797Z" })
|
|
966
1476
|
);
|
|
967
|
-
var
|
|
1477
|
+
var DisconnectIcon = (props) => /* @__PURE__ */ React19__default.default.createElement(
|
|
968
1478
|
"svg",
|
|
969
1479
|
{
|
|
970
|
-
width: "
|
|
971
|
-
height: "
|
|
972
|
-
viewBox: "0 0
|
|
973
|
-
fill: "currentColor",
|
|
1480
|
+
width: "16",
|
|
1481
|
+
height: "16",
|
|
1482
|
+
viewBox: "0 0 16 16",
|
|
974
1483
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1484
|
+
fill: "currentColor",
|
|
975
1485
|
...props
|
|
976
1486
|
},
|
|
977
|
-
/* @__PURE__ */
|
|
1487
|
+
/* @__PURE__ */ React19__default.default.createElement("g", { id: "box-arrow-right" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
978
1488
|
"path",
|
|
979
1489
|
{
|
|
980
1490
|
id: "Vector",
|
|
981
|
-
d: "
|
|
1491
|
+
d: "M1.99365 4.66056C1.99365 3.1879 3.18759 1.9939 4.66032 1.9939H7.32698C8.79965 1.9939 9.99365 3.1879 9.99365 4.66056C9.99365 5.02856 9.69498 5.32723 9.32698 5.32723C8.95898 5.32723 8.66032 5.02856 8.66032 4.66056C8.66032 3.92389 8.06365 3.32723 7.32698 3.32723H4.66032C3.92392 3.32723 3.32699 3.92389 3.32699 4.66056V11.3272C3.32699 12.0639 3.92392 12.6606 4.66032 12.6606H7.32698C8.06365 12.6606 8.66032 12.0639 8.66032 11.3272C8.66032 10.9592 8.95898 10.6606 9.32698 10.6606C9.69498 10.6606 9.99365 10.9592 9.99365 11.3272C9.99365 12.7999 8.79965 13.9939 7.32698 13.9939H4.66032C3.18759 13.9939 1.99365 12.7999 1.99365 11.3272V4.66056ZM6.66032 7.99389C6.66032 7.62589 6.95898 7.32722 7.32698 7.32722H12.369L11.0563 5.99389L11.9937 5.05656L14.473 7.51456C14.733 7.77523 14.733 8.21255 14.473 8.47322L11.9937 10.9312L11.0563 9.99389L12.369 8.66056H7.32698C6.95898 8.66056 6.66032 8.36189 6.66032 7.99389Z"
|
|
982
1492
|
}
|
|
983
1493
|
))
|
|
984
1494
|
);
|
|
1495
|
+
|
|
1496
|
+
// src/components/walletCard.tsx
|
|
1497
|
+
var getCardBgClassName = (type = "EVM" /* EVM */) => {
|
|
1498
|
+
const cardBgColorMap = {
|
|
1499
|
+
["EVM" /* EVM */]: "oui-bg-[#283BEE]",
|
|
1500
|
+
["Abstract" /* ABSTRACT */]: "oui-bg-[#00A858]",
|
|
1501
|
+
["SOL" /* SOL */]: "oui-bg-[#630EAD]"
|
|
1502
|
+
};
|
|
1503
|
+
return cardBgColorMap[type];
|
|
1504
|
+
};
|
|
1505
|
+
var getCardActiveClassName = (isActive, isMulti, type = "EVM" /* EVM */) => {
|
|
1506
|
+
const cardActiveColorMap = {
|
|
1507
|
+
["EVM" /* EVM */]: "oui-border-[2px] oui-border-[#B9D1FF]",
|
|
1508
|
+
["Abstract" /* ABSTRACT */]: "oui-border-[2px] oui-border-[#B9D1FF]",
|
|
1509
|
+
["SOL" /* SOL */]: "oui-border-[2px] oui-border-[#faedff]"
|
|
1510
|
+
};
|
|
1511
|
+
return isActive && isMulti && cardActiveColorMap[type];
|
|
1512
|
+
};
|
|
985
1513
|
function WalletCard(props) {
|
|
986
1514
|
const { t } = i18n.useTranslation();
|
|
987
1515
|
const copyAddress = async (address) => {
|
|
988
1516
|
await navigator.clipboard.writeText(address);
|
|
989
1517
|
ui.toast.success(t("common.copy.copied"));
|
|
990
1518
|
};
|
|
991
|
-
return /* @__PURE__ */
|
|
1519
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
992
1520
|
"div",
|
|
993
1521
|
{
|
|
994
1522
|
className: ui.cn(
|
|
995
|
-
"oui-
|
|
996
|
-
props.type
|
|
997
|
-
|
|
998
|
-
|
|
1523
|
+
"oui-relative oui-h-[110px] oui-overflow-hidden oui-rounded-2xl oui-p-4",
|
|
1524
|
+
getCardBgClassName(props.type),
|
|
1525
|
+
getCardActiveClassName(
|
|
1526
|
+
props.isActive,
|
|
1527
|
+
props.isMulti || false,
|
|
1528
|
+
props.type
|
|
1529
|
+
)
|
|
999
1530
|
)
|
|
1000
1531
|
},
|
|
1001
|
-
/* @__PURE__ */
|
|
1532
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1002
1533
|
"div",
|
|
1003
1534
|
{
|
|
1004
1535
|
style: {
|
|
@@ -1015,39 +1546,21 @@ function WalletCard(props) {
|
|
|
1015
1546
|
}
|
|
1016
1547
|
}
|
|
1017
1548
|
),
|
|
1018
|
-
/* @__PURE__ */
|
|
1549
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-z-10 oui-flex oui-h-full oui-flex-col oui-justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-sm oui-font-semibold oui-text-base-contrast" }, ui.formatAddress(props.address)), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-2" }, /* @__PURE__ */ React19__default.default.createElement(ui.Tooltip, { content: t("common.copy"), className: "oui-z-[65]" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1019
1550
|
ui.CopyIcon,
|
|
1020
1551
|
{
|
|
1021
1552
|
size: 16,
|
|
1022
1553
|
opacity: 1,
|
|
1023
|
-
className: "oui-text-base-contrast-80
|
|
1554
|
+
className: "oui-cursor-pointer oui-text-base-contrast-80 hover:oui-text-base-contrast",
|
|
1024
1555
|
onClick: () => copyAddress(props.address)
|
|
1025
1556
|
}
|
|
1026
|
-
)), props.isPrivy ? /* @__PURE__ */
|
|
1557
|
+
)), props.isPrivy ? /* @__PURE__ */ React19__default.default.createElement(
|
|
1027
1558
|
PrivyWalletHandleOption,
|
|
1028
1559
|
{
|
|
1029
1560
|
address: props.address,
|
|
1030
1561
|
type: props.type
|
|
1031
1562
|
}
|
|
1032
|
-
) : /* @__PURE__ */
|
|
1033
|
-
"img",
|
|
1034
|
-
{
|
|
1035
|
-
src: "https://oss.orderly.network/static/sdk/chains.png",
|
|
1036
|
-
className: "oui-h-[18px] oui-w-[49px] oui-relative oui-z-0"
|
|
1037
|
-
}
|
|
1038
|
-
)), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 oui-relative oui-left-[-9px]" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-rounded-full oui-bg-[#282e3a] oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center" }, /* @__PURE__ */ React12__default.default.createElement(EVMChainPopover, null, /* @__PURE__ */ React12__default.default.createElement(
|
|
1039
|
-
MoreIcon,
|
|
1040
|
-
{
|
|
1041
|
-
className: "oui-text-base-contrast-54 hover:oui-text-base-contrast oui-h-3 oui-w-3 oui-relative oui-z-10",
|
|
1042
|
-
style: { zIndex: 1 }
|
|
1043
|
-
}
|
|
1044
|
-
))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs oui-font-semibold" }, "EVM")))) : /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-gap-1" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1045
|
-
"img",
|
|
1046
|
-
{
|
|
1047
|
-
src: "https://oss.orderly.network/static/sdk/solana-logo.png",
|
|
1048
|
-
className: "oui-w-4"
|
|
1049
|
-
}
|
|
1050
|
-
)), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs oui-font-semibold" }, "Solana")), props.isBoth && /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement(
|
|
1563
|
+
) : /* @__PURE__ */ React19__default.default.createElement(NonPrivyWalletHandleOption, { walletType: props.type }))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-between" }, /* @__PURE__ */ React19__default.default.createElement(RenderWalletType, { walletType: props.type }), props.isMulti && /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1051
1564
|
ui.Checkbox,
|
|
1052
1565
|
{
|
|
1053
1566
|
checked: props.isActive,
|
|
@@ -1060,7 +1573,22 @@ function NonPrivyWalletHandleOption({
|
|
|
1060
1573
|
walletType
|
|
1061
1574
|
}) {
|
|
1062
1575
|
const { disconnect } = useWallet2();
|
|
1063
|
-
|
|
1576
|
+
const disconnectWallet = () => {
|
|
1577
|
+
let walletConnectType = "EVM" /* EVM */;
|
|
1578
|
+
switch (walletType) {
|
|
1579
|
+
case "EVM" /* EVM */:
|
|
1580
|
+
walletConnectType = "EVM" /* EVM */;
|
|
1581
|
+
break;
|
|
1582
|
+
case "SOL" /* SOL */:
|
|
1583
|
+
walletConnectType = "SOL" /* SOL */;
|
|
1584
|
+
break;
|
|
1585
|
+
case "Abstract" /* ABSTRACT */:
|
|
1586
|
+
walletConnectType = "Abstract" /* ABSTRACT */;
|
|
1587
|
+
break;
|
|
1588
|
+
}
|
|
1589
|
+
disconnect(walletConnectType);
|
|
1590
|
+
};
|
|
1591
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { onClick: () => disconnectWallet() }, /* @__PURE__ */ React19__default.default.createElement(DisconnectIcon, { className: "oui-size-4 oui-cursor-pointer oui-text-base-contrast-80 hover:oui-text-base-contrast" }));
|
|
1064
1592
|
}
|
|
1065
1593
|
function PrivyWalletHandleOption({
|
|
1066
1594
|
address,
|
|
@@ -1068,69 +1596,76 @@ function PrivyWalletHandleOption({
|
|
|
1068
1596
|
}) {
|
|
1069
1597
|
const { t } = i18n.useTranslation();
|
|
1070
1598
|
const { exportWallet } = usePrivyWallet();
|
|
1071
|
-
return /* @__PURE__ */
|
|
1599
|
+
return /* @__PURE__ */ React19__default.default.createElement(ui.DropdownMenuRoot, null, /* @__PURE__ */ React19__default.default.createElement(ui.DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React19__default.default.createElement("button", null, /* @__PURE__ */ React19__default.default.createElement(MoreIcon, { className: "oui-cursor-pointer oui-text-base-contrast-80 hover:oui-text-base-contrast" }))), /* @__PURE__ */ React19__default.default.createElement(ui.DropdownMenuPortal, null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1072
1600
|
ui.DropdownMenuContent,
|
|
1073
1601
|
{
|
|
1074
1602
|
size: "xl",
|
|
1075
1603
|
align: "end",
|
|
1076
1604
|
side: "top",
|
|
1077
1605
|
style: { width: "100px" },
|
|
1078
|
-
className: "oui-
|
|
1606
|
+
className: "oui-z-[65] oui-rounded oui-p-1 oui-font-semibold",
|
|
1079
1607
|
sideOffset: 0
|
|
1080
1608
|
},
|
|
1081
|
-
/* @__PURE__ */
|
|
1609
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1082
1610
|
ui.DropdownMenuItem,
|
|
1083
1611
|
{
|
|
1084
|
-
className: "oui-
|
|
1612
|
+
className: "oui-cursor-pointer oui-px-2 oui-py-1 oui-text-2xs oui-text-base-contrast-54 hover:oui-text-base-contrast",
|
|
1085
1613
|
onClick: () => {
|
|
1086
1614
|
exportWallet(type);
|
|
1087
1615
|
}
|
|
1088
1616
|
},
|
|
1089
|
-
/* @__PURE__ */
|
|
1617
|
+
/* @__PURE__ */ React19__default.default.createElement("div", null, t("common.export"))
|
|
1090
1618
|
)
|
|
1091
1619
|
)));
|
|
1092
1620
|
}
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
ui.Popover,
|
|
1101
|
-
{
|
|
1102
|
-
content: /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast oui-font-semibold" }, t("connector.privy.supportedEvmChain")), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-grid oui-grid-cols-3 oui-gap-y-3 oui-gap-x-2 oui-mt-3 oui-text-2xs oui-text-base-contrast-54" }, chains.map((item, key) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1103
|
-
"div",
|
|
1104
|
-
{
|
|
1105
|
-
key,
|
|
1106
|
-
className: "oui-flex oui-items-center oui-justify-start oui-gap-1"
|
|
1107
|
-
},
|
|
1108
|
-
/* @__PURE__ */ React12__default.default.createElement(ui.ChainIcon, { chainId: item.id, size: "2xs" }),
|
|
1109
|
-
/* @__PURE__ */ React12__default.default.createElement("div", null, item.name)
|
|
1110
|
-
)))),
|
|
1111
|
-
arrow: true,
|
|
1112
|
-
contentProps: {
|
|
1113
|
-
side: "bottom",
|
|
1114
|
-
align: "center",
|
|
1115
|
-
className: "oui-p-2 oui-z-[65]"
|
|
1621
|
+
var RenderWalletType = ({ walletType }) => {
|
|
1622
|
+
if (walletType === "SOL" /* SOL */) {
|
|
1623
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-gap-1" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1624
|
+
"img",
|
|
1625
|
+
{
|
|
1626
|
+
src: "https://oss.orderly.network/static/sdk/solana-logo.png",
|
|
1627
|
+
className: "oui-w-4"
|
|
1116
1628
|
}
|
|
1117
|
-
},
|
|
1118
|
-
|
|
1119
|
-
)
|
|
1120
|
-
}
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1629
|
+
)), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast" }, "Solana"));
|
|
1630
|
+
}
|
|
1631
|
+
if (walletType === "Abstract" /* ABSTRACT */) {
|
|
1632
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-gap-[6px]" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1633
|
+
"img",
|
|
1634
|
+
{
|
|
1635
|
+
src: `${PrivyConnectorImagePath}/abstract-transparent.png`,
|
|
1636
|
+
className: "oui-w-4"
|
|
1637
|
+
}
|
|
1638
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast" }, "Abstract"));
|
|
1639
|
+
}
|
|
1640
|
+
if (walletType === "EVM" /* EVM */) {
|
|
1641
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-flex oui-items-center oui-justify-center" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-h-[18px] oui-items-center oui-justify-center " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1642
|
+
"img",
|
|
1643
|
+
{
|
|
1644
|
+
src: "https://oss.orderly.network/static/sdk/chains.png",
|
|
1645
|
+
className: "oui-relative oui-z-0 oui-h-[18px] oui-w-[49px]"
|
|
1646
|
+
}
|
|
1647
|
+
)), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-left-[-9px] oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-size-[18px] oui-items-center oui-justify-center oui-rounded-full oui-bg-[#282e3a]" }, /* @__PURE__ */ React19__default.default.createElement(EVMChainPopover, null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1648
|
+
MoreIcon,
|
|
1649
|
+
{
|
|
1650
|
+
className: "oui-relative oui-z-10 oui-size-3 oui-text-base-contrast-54 hover:oui-text-base-contrast",
|
|
1651
|
+
style: { zIndex: 1 }
|
|
1652
|
+
}
|
|
1653
|
+
))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast" }, "Evm"))));
|
|
1654
|
+
}
|
|
1655
|
+
return /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null);
|
|
1656
|
+
};
|
|
1657
|
+
function AddAbstractWallet() {
|
|
1658
|
+
const [visible, setVisible] = React19.useState(false);
|
|
1126
1659
|
const onToggleVisibility = () => {
|
|
1127
1660
|
setVisible(!visible);
|
|
1128
1661
|
};
|
|
1129
|
-
const {
|
|
1130
|
-
const
|
|
1131
|
-
|
|
1662
|
+
const { connect } = useWallet2();
|
|
1663
|
+
const { targetWalletType } = useWalletConnectorPrivy();
|
|
1664
|
+
const [open, setOpen] = React19.useState(false);
|
|
1665
|
+
const { t } = i18n.useTranslation();
|
|
1666
|
+
React19.useEffect(() => {
|
|
1132
1667
|
let timer = 0;
|
|
1133
|
-
if (
|
|
1668
|
+
if (targetWalletType === "Abstract" /* ABSTRACT */) {
|
|
1134
1669
|
timer = window.setTimeout(() => {
|
|
1135
1670
|
setOpen(true);
|
|
1136
1671
|
}, 200);
|
|
@@ -1140,8 +1675,8 @@ function AddSolanaWallet() {
|
|
|
1140
1675
|
window.clearTimeout(timer);
|
|
1141
1676
|
}
|
|
1142
1677
|
};
|
|
1143
|
-
}, [
|
|
1144
|
-
|
|
1678
|
+
}, [targetWalletType]);
|
|
1679
|
+
React19.useEffect(() => {
|
|
1145
1680
|
if (open === false) {
|
|
1146
1681
|
return;
|
|
1147
1682
|
}
|
|
@@ -1154,27 +1689,27 @@ function AddSolanaWallet() {
|
|
|
1154
1689
|
}
|
|
1155
1690
|
};
|
|
1156
1691
|
}, [open]);
|
|
1157
|
-
return /* @__PURE__ */
|
|
1692
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-rounded-[8px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1158
1693
|
ui.Tooltip,
|
|
1159
1694
|
{
|
|
1160
|
-
className: "oui-
|
|
1695
|
+
className: "oui-z-[65] oui-max-w-[200px] oui-text-warning-darken",
|
|
1161
1696
|
open,
|
|
1162
|
-
content: t("connector.privy.
|
|
1697
|
+
content: t("connector.privy.addAbstractWallet.tips")
|
|
1163
1698
|
},
|
|
1164
|
-
/* @__PURE__ */
|
|
1699
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1165
1700
|
"img",
|
|
1166
1701
|
{
|
|
1167
|
-
src:
|
|
1168
|
-
className: "oui-
|
|
1702
|
+
src: `${PrivyConnectorImagePath}/abstract-transparent.png`,
|
|
1703
|
+
className: "oui-size-[15px]"
|
|
1169
1704
|
}
|
|
1170
|
-
), /* @__PURE__ */
|
|
1705
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast-80" }, t("connector.privy.addAbstractWallet")), /* @__PURE__ */ React19__default.default.createElement("button", { onClick: onToggleVisibility }, visible ? /* @__PURE__ */ React19__default.default.createElement(
|
|
1171
1706
|
ui.ChevronDownIcon,
|
|
1172
1707
|
{
|
|
1173
1708
|
size: 16,
|
|
1174
1709
|
opacity: 1,
|
|
1175
1710
|
className: "oui-text-base-contrast-36"
|
|
1176
1711
|
}
|
|
1177
|
-
) : /* @__PURE__ */
|
|
1712
|
+
) : /* @__PURE__ */ React19__default.default.createElement(
|
|
1178
1713
|
ui.ChevronUpIcon,
|
|
1179
1714
|
{
|
|
1180
1715
|
size: 16,
|
|
@@ -1182,39 +1717,44 @@ function AddSolanaWallet() {
|
|
|
1182
1717
|
className: "oui-text-base-contrast"
|
|
1183
1718
|
}
|
|
1184
1719
|
)))
|
|
1185
|
-
), /* @__PURE__ */
|
|
1720
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
1186
1721
|
"div",
|
|
1187
1722
|
{
|
|
1188
1723
|
className: ui.cn(
|
|
1189
|
-
"oui-grid oui-grid-cols-2 oui-gap-2 oui-
|
|
1190
|
-
visible ? "oui-
|
|
1724
|
+
"oui-transition-height oui-grid oui-grid-cols-2 oui-gap-2 oui-overflow-hidden oui-duration-150",
|
|
1725
|
+
visible ? "oui-mt-0 oui-max-h-0" : "oui-mt-3 oui-max-h-[400px]"
|
|
1191
1726
|
)
|
|
1192
1727
|
},
|
|
1193
|
-
|
|
1728
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1194
1729
|
"div",
|
|
1195
1730
|
{
|
|
1196
|
-
|
|
1197
|
-
className: "oui-flex oui-items-center oui-justify-start oui-gap-1 oui-px-2 oui-py-[11px] oui-bg-[#131519] oui-cursor-pointer",
|
|
1731
|
+
className: "oui-flex oui-cursor-pointer oui-items-center oui-justify-start oui-gap-1 oui-bg-[#131519] oui-px-2 oui-py-[11px]",
|
|
1198
1732
|
onClick: () => connect({
|
|
1199
|
-
walletType: "
|
|
1200
|
-
walletAdapter: item.adapter
|
|
1733
|
+
walletType: "Abstract" /* ABSTRACT */
|
|
1201
1734
|
})
|
|
1202
1735
|
},
|
|
1203
|
-
/* @__PURE__ */
|
|
1204
|
-
|
|
1205
|
-
|
|
1736
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1737
|
+
"img",
|
|
1738
|
+
{
|
|
1739
|
+
className: ui.cn("oui-size-[12px]"),
|
|
1740
|
+
src: `${PrivyConnectorImagePath}/abstract.png`,
|
|
1741
|
+
alt: "abstract wallet"
|
|
1742
|
+
}
|
|
1743
|
+
),
|
|
1744
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, "Abstract")
|
|
1745
|
+
)
|
|
1206
1746
|
));
|
|
1207
1747
|
}
|
|
1208
1748
|
function AddEvmWallet() {
|
|
1209
1749
|
const { t } = i18n.useTranslation();
|
|
1210
|
-
const [visible, setVisible] =
|
|
1750
|
+
const [visible, setVisible] = React19.useState(false);
|
|
1211
1751
|
const { connect } = useWallet2();
|
|
1212
|
-
const [open, setOpen] =
|
|
1752
|
+
const [open, setOpen] = React19.useState(false);
|
|
1213
1753
|
const { connectors } = useWagmiWallet();
|
|
1214
|
-
const {
|
|
1215
|
-
|
|
1754
|
+
const { targetWalletType } = useWalletConnectorPrivy();
|
|
1755
|
+
React19.useEffect(() => {
|
|
1216
1756
|
let timer = 0;
|
|
1217
|
-
if (
|
|
1757
|
+
if (targetWalletType === "EVM" /* EVM */) {
|
|
1218
1758
|
timer = window.setTimeout(() => {
|
|
1219
1759
|
setOpen(true);
|
|
1220
1760
|
}, 200);
|
|
@@ -1224,8 +1764,8 @@ function AddEvmWallet() {
|
|
|
1224
1764
|
window.clearTimeout(timer);
|
|
1225
1765
|
}
|
|
1226
1766
|
};
|
|
1227
|
-
}, [
|
|
1228
|
-
|
|
1767
|
+
}, [targetWalletType]);
|
|
1768
|
+
React19.useEffect(() => {
|
|
1229
1769
|
if (open === false) {
|
|
1230
1770
|
return;
|
|
1231
1771
|
}
|
|
@@ -1238,33 +1778,33 @@ function AddEvmWallet() {
|
|
|
1238
1778
|
}
|
|
1239
1779
|
};
|
|
1240
1780
|
}, [open]);
|
|
1241
|
-
return /* @__PURE__ */
|
|
1781
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-rounded-[8px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1242
1782
|
ui.Tooltip,
|
|
1243
1783
|
{
|
|
1244
|
-
className: "oui-
|
|
1784
|
+
className: "oui-z-[65] oui-max-w-[200px] oui-text-warning-darken",
|
|
1245
1785
|
open,
|
|
1246
1786
|
content: t("connector.privy.addEvmWallet.tips")
|
|
1247
1787
|
},
|
|
1248
|
-
/* @__PURE__ */
|
|
1788
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-flex oui-w-[55px] oui-items-center oui-justify-start" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1249
1789
|
"img",
|
|
1250
1790
|
{
|
|
1251
1791
|
src: "https://oss.orderly.network/static/sdk/chains.png",
|
|
1252
|
-
className: "oui-
|
|
1792
|
+
className: "oui-relative oui-z-0 oui-h-[18px]"
|
|
1253
1793
|
}
|
|
1254
|
-
), /* @__PURE__ */
|
|
1794
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-absolute oui-right-0 oui-flex oui-size-[18px] oui-items-center oui-justify-center oui-rounded-full oui-bg-[#282e3a]" }, /* @__PURE__ */ React19__default.default.createElement(EVMChainPopover, null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1255
1795
|
MoreIcon,
|
|
1256
1796
|
{
|
|
1257
|
-
className: "oui-
|
|
1797
|
+
className: "oui-relative oui-z-10 oui-size-3 oui-text-base-contrast-54 hover:oui-text-base-contrast",
|
|
1258
1798
|
style: { zIndex: 1 }
|
|
1259
1799
|
}
|
|
1260
|
-
))))), /* @__PURE__ */
|
|
1800
|
+
))))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast-80" }, t("connector.privy.addEvmWallet")), /* @__PURE__ */ React19__default.default.createElement("button", { onClick: () => setVisible(!visible) }, visible ? /* @__PURE__ */ React19__default.default.createElement(
|
|
1261
1801
|
ui.ChevronDownIcon,
|
|
1262
1802
|
{
|
|
1263
1803
|
size: 16,
|
|
1264
1804
|
opacity: 1,
|
|
1265
1805
|
className: "oui-text-base-contrast-36"
|
|
1266
1806
|
}
|
|
1267
|
-
) : /* @__PURE__ */
|
|
1807
|
+
) : /* @__PURE__ */ React19__default.default.createElement(
|
|
1268
1808
|
ui.ChevronUpIcon,
|
|
1269
1809
|
{
|
|
1270
1810
|
size: 16,
|
|
@@ -1272,246 +1812,248 @@ function AddEvmWallet() {
|
|
|
1272
1812
|
className: "oui-text-base-contrast"
|
|
1273
1813
|
}
|
|
1274
1814
|
)))
|
|
1275
|
-
), /* @__PURE__ */
|
|
1815
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
1276
1816
|
"div",
|
|
1277
1817
|
{
|
|
1278
1818
|
className: ui.cn(
|
|
1279
|
-
"oui-grid oui-grid-cols-2 oui-gap-2 oui-
|
|
1280
|
-
visible ? "oui-
|
|
1819
|
+
"oui-transition-height oui-grid oui-grid-cols-2 oui-gap-2 oui-overflow-hidden oui-duration-150",
|
|
1820
|
+
visible ? "oui-mt-0 oui-max-h-0" : "oui-mt-3 oui-max-h-[400px]"
|
|
1281
1821
|
)
|
|
1282
1822
|
},
|
|
1283
|
-
connectors.map((item, index) => /* @__PURE__ */
|
|
1823
|
+
connectors.map((item, index) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1284
1824
|
"div",
|
|
1285
1825
|
{
|
|
1286
1826
|
key: index,
|
|
1287
|
-
className: "oui-flex oui-items-center oui-justify-center
|
|
1827
|
+
className: "oui-flex oui-cursor-pointer oui-items-center oui-justify-center oui-gap-1 oui-bg-[#131519] oui-px-2 oui-py-[11px] oui-text-2xs",
|
|
1288
1828
|
onClick: () => connect({ walletType: "EVM" /* EVM */, connector: item })
|
|
1289
1829
|
},
|
|
1290
|
-
/* @__PURE__ */
|
|
1291
|
-
/* @__PURE__ */
|
|
1830
|
+
/* @__PURE__ */ React19__default.default.createElement(RenderWalletIcon, { connector: item }),
|
|
1831
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-base-contrast" }, item.name)
|
|
1292
1832
|
))
|
|
1293
1833
|
));
|
|
1294
1834
|
}
|
|
1295
|
-
function
|
|
1296
|
-
chainNamespace
|
|
1297
|
-
}) {
|
|
1835
|
+
function AddSolanaWallet() {
|
|
1298
1836
|
const { t } = i18n.useTranslation();
|
|
1299
|
-
const
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1837
|
+
const { wallets } = useSolanaWallet();
|
|
1838
|
+
const { connect } = useWallet2();
|
|
1839
|
+
const [visible, setVisible] = React19.useState(false);
|
|
1840
|
+
const onToggleVisibility = () => {
|
|
1841
|
+
setVisible(!visible);
|
|
1304
1842
|
};
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
})));
|
|
1314
|
-
}
|
|
1315
|
-
var StorageChainNotCurrentWalletType = ({
|
|
1316
|
-
currentWalletChainType
|
|
1317
|
-
}) => {
|
|
1318
|
-
const { storageChain } = hooks.useStorageChain();
|
|
1319
|
-
if (currentWalletChainType === storageChain?.namespace) {
|
|
1320
|
-
return null;
|
|
1321
|
-
}
|
|
1322
|
-
if (storageChain?.namespace === types.ChainNamespace.evm) {
|
|
1323
|
-
return /* @__PURE__ */ React12__default.default.createElement(SwitchNetworkTips, { chainNamespace: types.ChainNamespace.solana });
|
|
1324
|
-
}
|
|
1325
|
-
return /* @__PURE__ */ React12__default.default.createElement(SwitchNetworkTips, { chainNamespace: types.ChainNamespace.evm });
|
|
1326
|
-
};
|
|
1327
|
-
|
|
1328
|
-
// src/components/renderNoPrivyWallet.tsx
|
|
1329
|
-
function RenderNoPrivyWallet() {
|
|
1330
|
-
const { wallet: walletInWagmi, isConnected: isConnectedEvm } = useWagmiWallet();
|
|
1331
|
-
const { wallet: walletInSolana, isConnected: isConnectedSolana } = useSolanaWallet();
|
|
1332
|
-
const { namespace, switchWallet } = useWallet2();
|
|
1333
|
-
const { walletChainType, connectorWalletType } = useWalletConnectorPrivy();
|
|
1334
|
-
if (walletChainType === "EVM_SOL" /* EVM_SOL */) {
|
|
1335
|
-
if (isConnectedEvm && isConnectedSolana) {
|
|
1336
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-5" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1337
|
-
WalletCard,
|
|
1338
|
-
{
|
|
1339
|
-
type: "EVM" /* EVM */,
|
|
1340
|
-
address: walletInWagmi?.accounts[0].address,
|
|
1341
|
-
isActive: namespace === types.ChainNamespace.evm,
|
|
1342
|
-
onActiveChange: () => {
|
|
1343
|
-
switchWallet(types.ChainNamespace.evm);
|
|
1344
|
-
},
|
|
1345
|
-
isPrivy: false,
|
|
1346
|
-
isBoth: true
|
|
1347
|
-
}
|
|
1348
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1349
|
-
WalletCard,
|
|
1350
|
-
{
|
|
1351
|
-
type: "SOL" /* SOL */,
|
|
1352
|
-
address: walletInSolana?.accounts[0].address,
|
|
1353
|
-
isActive: namespace === types.ChainNamespace.solana,
|
|
1354
|
-
onActiveChange: () => {
|
|
1355
|
-
switchWallet(types.ChainNamespace.solana);
|
|
1356
|
-
},
|
|
1357
|
-
isPrivy: false,
|
|
1358
|
-
isBoth: true
|
|
1359
|
-
}
|
|
1360
|
-
));
|
|
1361
|
-
}
|
|
1362
|
-
if (isConnectedEvm && !isConnectedSolana) {
|
|
1363
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1364
|
-
StorageChainNotCurrentWalletType,
|
|
1365
|
-
{
|
|
1366
|
-
currentWalletChainType: types.ChainNamespace.evm
|
|
1367
|
-
}
|
|
1368
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1369
|
-
WalletCard,
|
|
1370
|
-
{
|
|
1371
|
-
type: "EVM" /* EVM */,
|
|
1372
|
-
address: walletInWagmi?.accounts[0].address,
|
|
1373
|
-
isActive: namespace === types.ChainNamespace.evm,
|
|
1374
|
-
onActiveChange: () => {
|
|
1375
|
-
switchWallet(types.ChainNamespace.evm);
|
|
1376
|
-
},
|
|
1377
|
-
isPrivy: false,
|
|
1378
|
-
isBoth: false
|
|
1379
|
-
}
|
|
1380
|
-
), !connectorWalletType.disableSolana && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-h-[1px] oui-bg-line oui-my-5" }), /* @__PURE__ */ React12__default.default.createElement(AddSolanaWallet, null)));
|
|
1381
|
-
}
|
|
1382
|
-
if (!isConnectedEvm && isConnectedSolana) {
|
|
1383
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1384
|
-
StorageChainNotCurrentWalletType,
|
|
1385
|
-
{
|
|
1386
|
-
currentWalletChainType: types.ChainNamespace.solana
|
|
1387
|
-
}
|
|
1388
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1389
|
-
WalletCard,
|
|
1390
|
-
{
|
|
1391
|
-
type: "SOL" /* SOL */,
|
|
1392
|
-
address: walletInSolana?.accounts[0].address,
|
|
1393
|
-
isActive: namespace === types.ChainNamespace.solana,
|
|
1394
|
-
onActiveChange: () => {
|
|
1395
|
-
switchWallet(types.ChainNamespace.solana);
|
|
1396
|
-
},
|
|
1397
|
-
isPrivy: false,
|
|
1398
|
-
isBoth: false
|
|
1399
|
-
}
|
|
1400
|
-
), !connectorWalletType.disableWagmi && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-h-[1px] oui-bg-line oui-my-5" }), /* @__PURE__ */ React12__default.default.createElement(AddEvmWallet, null)));
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
if (walletChainType === "onlySOL" /* onlySOL */) {
|
|
1404
|
-
if (isConnectedSolana) {
|
|
1405
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1406
|
-
WalletCard,
|
|
1407
|
-
{
|
|
1408
|
-
type: "SOL" /* SOL */,
|
|
1409
|
-
address: walletInSolana?.accounts[0].address,
|
|
1410
|
-
isActive: namespace === types.ChainNamespace.solana,
|
|
1411
|
-
onActiveChange: () => {
|
|
1412
|
-
switchWallet(types.ChainNamespace.solana);
|
|
1413
|
-
},
|
|
1414
|
-
isPrivy: false,
|
|
1415
|
-
isBoth: false
|
|
1416
|
-
}
|
|
1417
|
-
));
|
|
1418
|
-
}
|
|
1419
|
-
}
|
|
1420
|
-
if (walletChainType === "onlyEVM" /* onlyEVM */) {
|
|
1421
|
-
if (isConnectedEvm) {
|
|
1422
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1423
|
-
WalletCard,
|
|
1424
|
-
{
|
|
1425
|
-
type: "EVM" /* EVM */,
|
|
1426
|
-
address: walletInWagmi?.accounts[0].address,
|
|
1427
|
-
isActive: namespace === types.ChainNamespace.evm,
|
|
1428
|
-
onActiveChange: () => {
|
|
1429
|
-
switchWallet(types.ChainNamespace.evm);
|
|
1430
|
-
},
|
|
1431
|
-
isPrivy: false,
|
|
1432
|
-
isBoth: false
|
|
1433
|
-
}
|
|
1434
|
-
));
|
|
1843
|
+
const { targetWalletType } = useWalletConnectorPrivy();
|
|
1844
|
+
const [open, setOpen] = React19.useState(false);
|
|
1845
|
+
React19.useEffect(() => {
|
|
1846
|
+
let timer = 0;
|
|
1847
|
+
if (targetWalletType === "SOL" /* SOL */) {
|
|
1848
|
+
timer = window.setTimeout(() => {
|
|
1849
|
+
setOpen(true);
|
|
1850
|
+
}, 200);
|
|
1435
1851
|
}
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
const [windowHeight, setWindowHeight] = React12.useState(0);
|
|
1441
|
-
const { isMobile } = ui.useScreen();
|
|
1442
|
-
React12.useEffect(() => {
|
|
1443
|
-
setWindowHeight(window.innerHeight);
|
|
1444
|
-
const handleResize = () => {
|
|
1445
|
-
setWindowHeight(window.innerHeight);
|
|
1852
|
+
return () => {
|
|
1853
|
+
if (timer) {
|
|
1854
|
+
window.clearTimeout(timer);
|
|
1855
|
+
}
|
|
1446
1856
|
};
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
document.body.style.overflow = "auto";
|
|
1857
|
+
}, [targetWalletType]);
|
|
1858
|
+
React19.useEffect(() => {
|
|
1859
|
+
if (open === false) {
|
|
1860
|
+
return;
|
|
1452
1861
|
}
|
|
1862
|
+
const timeId = window.setTimeout(() => {
|
|
1863
|
+
setOpen(false);
|
|
1864
|
+
}, 5e3);
|
|
1453
1865
|
return () => {
|
|
1454
|
-
|
|
1455
|
-
|
|
1866
|
+
if (timeId) {
|
|
1867
|
+
window.clearTimeout(timeId);
|
|
1868
|
+
}
|
|
1456
1869
|
};
|
|
1457
|
-
}, [
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
"
|
|
1870
|
+
}, [open]);
|
|
1871
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-rounded-[8px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1872
|
+
ui.Tooltip,
|
|
1873
|
+
{
|
|
1874
|
+
className: "oui-z-[65] oui-max-w-[200px] oui-text-warning-darken",
|
|
1875
|
+
open,
|
|
1876
|
+
content: t("connector.privy.addSolanaWallet.tips")
|
|
1877
|
+
},
|
|
1878
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1879
|
+
"img",
|
|
1464
1880
|
{
|
|
1465
|
-
|
|
1466
|
-
|
|
1881
|
+
src: "https://oss.orderly.network/static/sdk/solana-logo.png",
|
|
1882
|
+
className: "oui-size-[15px]"
|
|
1883
|
+
}
|
|
1884
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast-80" }, t("connector.privy.addSolanaWallet")), /* @__PURE__ */ React19__default.default.createElement("button", { onClick: onToggleVisibility }, visible ? /* @__PURE__ */ React19__default.default.createElement(
|
|
1885
|
+
ui.ChevronDownIcon,
|
|
1886
|
+
{
|
|
1887
|
+
size: 16,
|
|
1888
|
+
opacity: 1,
|
|
1889
|
+
className: "oui-text-base-contrast-36"
|
|
1890
|
+
}
|
|
1891
|
+
) : /* @__PURE__ */ React19__default.default.createElement(
|
|
1892
|
+
ui.ChevronUpIcon,
|
|
1893
|
+
{
|
|
1894
|
+
size: 16,
|
|
1895
|
+
opacity: 1,
|
|
1896
|
+
className: "oui-text-base-contrast"
|
|
1467
1897
|
}
|
|
1468
|
-
)
|
|
1898
|
+
)))
|
|
1899
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
1900
|
+
"div",
|
|
1901
|
+
{
|
|
1902
|
+
className: ui.cn(
|
|
1903
|
+
"oui-transition-height oui-grid oui-grid-cols-2 oui-gap-2 oui-overflow-hidden oui-duration-150",
|
|
1904
|
+
visible ? "oui-mt-0 oui-max-h-0" : "oui-mt-3 oui-max-h-[400px]"
|
|
1905
|
+
)
|
|
1906
|
+
},
|
|
1907
|
+
wallets.map((item, index) => /* @__PURE__ */ React19__default.default.createElement(
|
|
1469
1908
|
"div",
|
|
1470
1909
|
{
|
|
1471
|
-
|
|
1472
|
-
className:
|
|
1473
|
-
|
|
1474
|
-
"
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1910
|
+
key: index,
|
|
1911
|
+
className: "oui-flex oui-cursor-pointer oui-items-center oui-justify-start oui-gap-1 oui-bg-[#131519] oui-px-2 oui-py-[11px]",
|
|
1912
|
+
onClick: () => connect({
|
|
1913
|
+
walletType: "SOL" /* SOL */,
|
|
1914
|
+
walletAdapter: item.adapter
|
|
1915
|
+
})
|
|
1916
|
+
},
|
|
1917
|
+
/* @__PURE__ */ React19__default.default.createElement(RenderWalletIcon, { connector: item.adapter }),
|
|
1918
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-base-contrast" }, item.adapter.name)
|
|
1919
|
+
))
|
|
1920
|
+
));
|
|
1921
|
+
}
|
|
1922
|
+
|
|
1923
|
+
// src/components/renderNonPrivyWallet/index.tsx
|
|
1924
|
+
function RenderNonPrivyWallet() {
|
|
1925
|
+
const [walletList, setWalletList] = React19.useState([]);
|
|
1926
|
+
const [addWalletList, setAddWalletList] = React19.useState([]);
|
|
1927
|
+
const { storageChain } = hooks.useStorageChain();
|
|
1928
|
+
const { connectorWalletType, walletChainTypeConfig } = useWalletConnectorPrivy();
|
|
1929
|
+
const { wallet: walletInWagmi, isConnected: isConnectedEvm } = useWagmiWallet();
|
|
1930
|
+
const { wallet: walletInSolana, isConnected: isConnectedSolana } = useSolanaWallet();
|
|
1931
|
+
const { wallet: walletInAbstract, isConnected: isConnectedAbstract } = useAbstractWallet();
|
|
1932
|
+
const { namespace, switchWallet } = useWallet2();
|
|
1933
|
+
const isActive = (walletType) => {
|
|
1934
|
+
if (namespace === types.ChainNamespace.evm) {
|
|
1935
|
+
if (walletType === "Abstract" /* ABSTRACT */) {
|
|
1936
|
+
return types.AbstractChains.has(storageChain?.chainId);
|
|
1937
|
+
}
|
|
1938
|
+
if (walletType === "EVM" /* EVM */) {
|
|
1939
|
+
return !types.AbstractChains.has(storageChain?.chainId);
|
|
1940
|
+
}
|
|
1941
|
+
return false;
|
|
1942
|
+
}
|
|
1943
|
+
if (namespace === types.ChainNamespace.solana) {
|
|
1944
|
+
return walletType === "SOL" /* SOL */;
|
|
1945
|
+
}
|
|
1946
|
+
return false;
|
|
1947
|
+
};
|
|
1948
|
+
const currentConnectWalletType = React19.useMemo(() => {
|
|
1949
|
+
const temp = /* @__PURE__ */ new Set();
|
|
1950
|
+
walletList.forEach((wallet) => {
|
|
1951
|
+
temp.add(wallet.type);
|
|
1952
|
+
});
|
|
1953
|
+
return temp;
|
|
1954
|
+
}, [walletList]);
|
|
1955
|
+
React19.useEffect(() => {
|
|
1956
|
+
const tempWalletList = [];
|
|
1957
|
+
const tempAddWallet = [];
|
|
1958
|
+
if (!connectorWalletType.disableWagmi && walletChainTypeConfig.hasEvm) {
|
|
1959
|
+
if (isConnectedEvm) {
|
|
1960
|
+
tempWalletList.push({
|
|
1961
|
+
type: "EVM" /* EVM */,
|
|
1962
|
+
address: walletInWagmi?.accounts[0].address
|
|
1963
|
+
});
|
|
1964
|
+
} else {
|
|
1965
|
+
tempAddWallet.push("EVM" /* EVM */);
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
if (!connectorWalletType.disableSolana && walletChainTypeConfig.hasSol) {
|
|
1969
|
+
if (isConnectedSolana) {
|
|
1970
|
+
tempWalletList.push({
|
|
1971
|
+
type: "SOL" /* SOL */,
|
|
1972
|
+
address: walletInSolana?.accounts[0].address
|
|
1973
|
+
});
|
|
1974
|
+
} else {
|
|
1975
|
+
tempAddWallet.push("SOL" /* SOL */);
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
if (!connectorWalletType.disableAGW && walletChainTypeConfig.hasAbstract) {
|
|
1979
|
+
if (isConnectedAbstract) {
|
|
1980
|
+
tempWalletList.push({
|
|
1981
|
+
type: "Abstract" /* ABSTRACT */,
|
|
1982
|
+
address: walletInAbstract?.additionalInfo?.AGWAddress
|
|
1983
|
+
});
|
|
1984
|
+
} else {
|
|
1985
|
+
tempAddWallet.push("Abstract" /* ABSTRACT */);
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
setWalletList(tempWalletList);
|
|
1989
|
+
setAddWalletList(tempAddWallet);
|
|
1990
|
+
}, [
|
|
1991
|
+
isConnectedEvm,
|
|
1992
|
+
isConnectedSolana,
|
|
1993
|
+
isConnectedAbstract,
|
|
1994
|
+
walletInWagmi,
|
|
1995
|
+
walletInSolana,
|
|
1996
|
+
walletInAbstract,
|
|
1997
|
+
walletChainTypeConfig,
|
|
1998
|
+
connectorWalletType
|
|
1999
|
+
]);
|
|
2000
|
+
return /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, walletList.length && /* @__PURE__ */ React19__default.default.createElement(
|
|
2001
|
+
StorageChainNotCurrentWalletType,
|
|
2002
|
+
{
|
|
2003
|
+
currentWalletType: currentConnectWalletType
|
|
2004
|
+
}
|
|
2005
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-5" }, walletList.map((wallet) => /* @__PURE__ */ React19__default.default.createElement(
|
|
2006
|
+
WalletCard,
|
|
2007
|
+
{
|
|
2008
|
+
key: wallet.type,
|
|
2009
|
+
type: wallet.type,
|
|
2010
|
+
address: wallet.address,
|
|
2011
|
+
isActive: isActive(wallet.type),
|
|
2012
|
+
onActiveChange: () => {
|
|
2013
|
+
switchWallet(wallet.type);
|
|
1488
2014
|
},
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
);
|
|
2015
|
+
isPrivy: false,
|
|
2016
|
+
isMulti: walletList.length > 1
|
|
2017
|
+
}
|
|
2018
|
+
))), /* @__PURE__ */ React19__default.default.createElement(RenderAddWallet, { addWalletList }));
|
|
2019
|
+
}
|
|
2020
|
+
function RenderAddWallet({ addWalletList }) {
|
|
2021
|
+
if (addWalletList.length === 0) {
|
|
2022
|
+
return null;
|
|
2023
|
+
}
|
|
2024
|
+
return /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-my-5 oui-h-px oui-bg-line" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-5" }, addWalletList.map((wallet, index) => {
|
|
2025
|
+
if (wallet === "EVM" /* EVM */) {
|
|
2026
|
+
return /* @__PURE__ */ React19__default.default.createElement(AddEvmWallet, { key: index });
|
|
2027
|
+
}
|
|
2028
|
+
if (wallet === "SOL" /* SOL */) {
|
|
2029
|
+
return /* @__PURE__ */ React19__default.default.createElement(AddSolanaWallet, { key: index });
|
|
2030
|
+
}
|
|
2031
|
+
if (wallet === "Abstract" /* ABSTRACT */) {
|
|
2032
|
+
return /* @__PURE__ */ React19__default.default.createElement(AddAbstractWallet, { key: index });
|
|
2033
|
+
}
|
|
2034
|
+
})));
|
|
1493
2035
|
}
|
|
1494
2036
|
function NoWallet() {
|
|
1495
2037
|
const { walletChainType } = useWalletConnectorPrivy();
|
|
1496
2038
|
const { t } = i18n.useTranslation();
|
|
1497
|
-
return /* @__PURE__ */
|
|
2039
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mt-5 oui-flex oui-w-full oui-flex-col oui-items-center oui-justify-center" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-w-full oui-flex-col oui-items-center oui-justify-center oui-gap-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-w-full oui-flex-col oui-items-center oui-justify-center oui-gap-1 oui-rounded-[8px] oui-border oui-border-line-12 oui-px-2 oui-py-[13px] " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1498
2040
|
"img",
|
|
1499
2041
|
{
|
|
1500
2042
|
src: "https://oss.orderly.network/static/sdk/privy/no-wallet.png",
|
|
1501
|
-
className: "oui-
|
|
2043
|
+
className: "oui-size-[64px]"
|
|
1502
2044
|
}
|
|
1503
|
-
), /* @__PURE__ */
|
|
2045
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-font-semibold oui-text-base-contrast-36" }, t("connector.privy.noWallet"))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-start oui-gap-1 oui-rounded-[4px] oui-bg-[rgba(232,136,0,0.15)] oui-px-2 oui-py-[6px] " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1504
2046
|
ui.ExclamationFillIcon,
|
|
1505
2047
|
{
|
|
1506
2048
|
size: 10,
|
|
1507
|
-
className: "oui-mt-1 oui-
|
|
2049
|
+
className: "oui-mt-1 oui-size-[10px] oui-shrink-0 oui-text-warning-darken"
|
|
1508
2050
|
}
|
|
1509
|
-
), /* @__PURE__ */
|
|
2051
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-text-warning-darken" }, t("connector.privy.noWallet.description")))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-my-5 oui-h-px oui-w-full oui-bg-line" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-w-full oui-flex-col oui-gap-2" }, walletChainType === "EVM_SOL" /* EVM_SOL */ && /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement(CreateEVMWallet, null), /* @__PURE__ */ React19__default.default.createElement(CreateSOLWallet, null)), walletChainType === "onlyEVM" /* onlyEVM */ && /* @__PURE__ */ React19__default.default.createElement(CreateEVMWallet, null), walletChainType === "onlySOL" /* onlySOL */ && /* @__PURE__ */ React19__default.default.createElement(CreateSOLWallet, null)));
|
|
1510
2052
|
}
|
|
1511
2053
|
function CreateEVMWallet() {
|
|
1512
2054
|
const { t } = i18n.useTranslation();
|
|
1513
2055
|
const { createEvmWallet } = usePrivyWallet();
|
|
1514
|
-
const [loading, setLoading] =
|
|
2056
|
+
const [loading, setLoading] = React19.useState(false);
|
|
1515
2057
|
const doCreate = () => {
|
|
1516
2058
|
if (loading) {
|
|
1517
2059
|
return;
|
|
@@ -1523,23 +2065,23 @@ function CreateEVMWallet() {
|
|
|
1523
2065
|
setLoading(false);
|
|
1524
2066
|
});
|
|
1525
2067
|
};
|
|
1526
|
-
return /* @__PURE__ */
|
|
2068
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-w-full oui-rounded-[8px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-flex oui-w-[55px] oui-items-center oui-justify-start" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1527
2069
|
"img",
|
|
1528
2070
|
{
|
|
1529
2071
|
src: "https://oss.orderly.network/static/sdk/chains.png",
|
|
1530
|
-
className: "oui-
|
|
2072
|
+
className: "oui-relative oui-z-0 oui-h-[18px]"
|
|
1531
2073
|
}
|
|
1532
|
-
), /* @__PURE__ */
|
|
2074
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-absolute oui-right-0 oui-flex oui-size-[18px] oui-items-center oui-justify-center oui-rounded-full oui-bg-[#282e3a]" }, /* @__PURE__ */ React19__default.default.createElement(EVMChainPopover, null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1533
2075
|
MoreIcon,
|
|
1534
2076
|
{
|
|
1535
|
-
className: "oui-
|
|
2077
|
+
className: "oui-relative oui-z-10 oui-size-3 oui-text-base-contrast-54 hover:oui-text-base-contrast",
|
|
1536
2078
|
style: { zIndex: 1 }
|
|
1537
2079
|
}
|
|
1538
|
-
))))), /* @__PURE__ */
|
|
2080
|
+
))))), /* @__PURE__ */ React19__default.default.createElement(
|
|
1539
2081
|
"div",
|
|
1540
2082
|
{
|
|
1541
2083
|
className: ui.cn(
|
|
1542
|
-
"oui-
|
|
2084
|
+
"oui-cursor-pointer oui-text-2xs oui-font-semibold oui-text-base-contrast-80",
|
|
1543
2085
|
loading && "oui-opacity-50"
|
|
1544
2086
|
),
|
|
1545
2087
|
onClick: doCreate
|
|
@@ -1550,7 +2092,7 @@ function CreateEVMWallet() {
|
|
|
1550
2092
|
function CreateSOLWallet() {
|
|
1551
2093
|
const { t } = i18n.useTranslation();
|
|
1552
2094
|
const { createSolanaWallet } = usePrivyWallet();
|
|
1553
|
-
const [loading, setLoading] =
|
|
2095
|
+
const [loading, setLoading] = React19.useState(false);
|
|
1554
2096
|
const doCreate = () => {
|
|
1555
2097
|
if (loading) {
|
|
1556
2098
|
return;
|
|
@@ -1562,17 +2104,17 @@ function CreateSOLWallet() {
|
|
|
1562
2104
|
setLoading(false);
|
|
1563
2105
|
});
|
|
1564
2106
|
};
|
|
1565
|
-
return /* @__PURE__ */
|
|
2107
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-w-full oui-rounded-[8px] oui-bg-[#07080A] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1566
2108
|
"img",
|
|
1567
2109
|
{
|
|
1568
2110
|
src: "https://oss.orderly.network/static/sdk/solana-logo.png",
|
|
1569
|
-
className: "oui-
|
|
2111
|
+
className: "oui-size-[15px]"
|
|
1570
2112
|
}
|
|
1571
|
-
), /* @__PURE__ */
|
|
2113
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
1572
2114
|
"div",
|
|
1573
2115
|
{
|
|
1574
2116
|
className: ui.cn(
|
|
1575
|
-
"oui-
|
|
2117
|
+
"oui-cursor-pointer oui-text-2xs oui-font-semibold oui-text-base-contrast-80",
|
|
1576
2118
|
loading && "oui-opacity-50"
|
|
1577
2119
|
),
|
|
1578
2120
|
onClick: doCreate
|
|
@@ -1582,283 +2124,165 @@ function CreateSOLWallet() {
|
|
|
1582
2124
|
}
|
|
1583
2125
|
function RenderPrivyWallet() {
|
|
1584
2126
|
const { t } = i18n.useTranslation();
|
|
1585
|
-
const {
|
|
2127
|
+
const {
|
|
2128
|
+
targetWalletType,
|
|
2129
|
+
setTargetWalletType,
|
|
2130
|
+
walletChainTypeConfig,
|
|
2131
|
+
connectorWalletType
|
|
2132
|
+
} = useWalletConnectorPrivy();
|
|
1586
2133
|
const { walletEVM, walletSOL, linkedAccount } = usePrivyWallet();
|
|
1587
|
-
const {
|
|
1588
|
-
const
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
2134
|
+
const { switchWallet, disconnect } = useWallet2();
|
|
2135
|
+
const { storageChain } = hooks.useStorageChain();
|
|
2136
|
+
const [walletList, setWalletList] = React19.useState([]);
|
|
2137
|
+
const [addWallet, setAddWallet] = React19.useState([]);
|
|
2138
|
+
const [loading, setLoading] = React19.useState(true);
|
|
2139
|
+
const isActive = React19.useCallback(
|
|
2140
|
+
(walletType) => {
|
|
2141
|
+
if (storageChain?.namespace === types.ChainNamespace.evm) {
|
|
2142
|
+
if (walletType === "EVM" /* EVM */) {
|
|
2143
|
+
return !types.AbstractChains.has(storageChain?.chainId);
|
|
2144
|
+
}
|
|
2145
|
+
return false;
|
|
1592
2146
|
}
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
if (walletChainType === "onlySOL" /* onlySOL */) {
|
|
1596
|
-
if (walletSOL && walletSOL.accounts.length) {
|
|
1597
|
-
return "onlySOL" /* onlySOL */;
|
|
2147
|
+
if (storageChain?.namespace === types.ChainNamespace.solana) {
|
|
2148
|
+
return walletType === "SOL" /* SOL */;
|
|
1598
2149
|
}
|
|
1599
|
-
return
|
|
1600
|
-
}
|
|
1601
|
-
if ((!walletEVM || !walletEVM.accounts.length) && (!walletSOL || !walletSOL.accounts.length)) {
|
|
1602
|
-
return "noWallet" /* noWallet */;
|
|
1603
|
-
}
|
|
1604
|
-
if (walletEVM && walletEVM.accounts.length && (!walletSOL || !walletSOL.accounts.length)) {
|
|
1605
|
-
return "onlyEVM" /* onlyEVM */;
|
|
1606
|
-
}
|
|
1607
|
-
if ((!walletEVM || !walletEVM.accounts.length) && walletSOL && walletSOL.accounts.length) {
|
|
1608
|
-
return "onlySOL" /* onlySOL */;
|
|
1609
|
-
}
|
|
1610
|
-
return "both" /* both */;
|
|
1611
|
-
}, [walletEVM, walletSOL, walletChainType]);
|
|
1612
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-justify-between oui-items-center" }, linkedAccount && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-gap-2 oui-text-base-contrast" }, /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement(RenderPrivyTypeIcon, { type: linkedAccount.type, size: 24 })), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-xs" }, linkedAccount.address)), /* @__PURE__ */ React12__default.default.createElement(
|
|
1613
|
-
"div",
|
|
1614
|
-
{
|
|
1615
|
-
className: "oui-cursor-pointer oui-text-primary oui-text-2xs oui-font-semibold",
|
|
1616
|
-
onClick: () => disconnect("privy" /* PRIVY */)
|
|
2150
|
+
return false;
|
|
1617
2151
|
},
|
|
1618
|
-
|
|
1619
|
-
)
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
}
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
isActive: namespace === types.ChainNamespace.solana,
|
|
1637
|
-
onActiveChange: () => {
|
|
1638
|
-
switchWallet(types.ChainNamespace.solana);
|
|
1639
|
-
},
|
|
1640
|
-
isPrivy: true,
|
|
1641
|
-
isBoth: true
|
|
1642
|
-
}
|
|
1643
|
-
)), walletChainType === "onlyEVM" /* onlyEVM */ && /* @__PURE__ */ React12__default.default.createElement(
|
|
1644
|
-
WalletCard,
|
|
1645
|
-
{
|
|
1646
|
-
type: "EVM" /* EVM */,
|
|
1647
|
-
address: walletEVM?.accounts[0].address ?? "",
|
|
1648
|
-
isActive: namespace === types.ChainNamespace.evm,
|
|
1649
|
-
onActiveChange: () => {
|
|
1650
|
-
switchWallet(types.ChainNamespace.evm);
|
|
1651
|
-
},
|
|
1652
|
-
isPrivy: true,
|
|
1653
|
-
isBoth: false
|
|
1654
|
-
}
|
|
1655
|
-
), walletChainType === "onlySOL" /* onlySOL */ && /* @__PURE__ */ React12__default.default.createElement(
|
|
1656
|
-
WalletCard,
|
|
1657
|
-
{
|
|
1658
|
-
type: "SOL" /* SOL */,
|
|
1659
|
-
address: walletSOL?.accounts[0].address ?? "",
|
|
1660
|
-
isActive: namespace === types.ChainNamespace.solana,
|
|
1661
|
-
onActiveChange: () => {
|
|
1662
|
-
switchWallet(types.ChainNamespace.solana);
|
|
1663
|
-
},
|
|
1664
|
-
isPrivy: true,
|
|
1665
|
-
isBoth: false
|
|
1666
|
-
}
|
|
1667
|
-
)), renderWalletType === "onlyEVM" /* onlyEVM */ && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-0 oui-mt-5" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1668
|
-
WalletCard,
|
|
1669
|
-
{
|
|
1670
|
-
type: "EVM" /* EVM */,
|
|
1671
|
-
address: walletEVM?.accounts[0].address ?? "",
|
|
1672
|
-
isActive: namespace === types.ChainNamespace.evm,
|
|
1673
|
-
onActiveChange: () => {
|
|
1674
|
-
switchWallet(types.ChainNamespace.evm);
|
|
1675
|
-
},
|
|
1676
|
-
isPrivy: true,
|
|
1677
|
-
isBoth: false
|
|
1678
|
-
}
|
|
1679
|
-
), walletChainType === "EVM_SOL" /* EVM_SOL */ && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-h-[1px] oui-bg-line oui-my-5 oui-w-full" }), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-2 oui-w-full" }, /* @__PURE__ */ React12__default.default.createElement(CreateSOLWallet, null)))), renderWalletType === "onlySOL" /* onlySOL */ && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-0 oui-mt-5" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1680
|
-
WalletCard,
|
|
1681
|
-
{
|
|
1682
|
-
type: "SOL" /* SOL */,
|
|
1683
|
-
address: walletSOL?.accounts[0].address ?? "",
|
|
1684
|
-
isActive: namespace === types.ChainNamespace.solana,
|
|
1685
|
-
onActiveChange: () => {
|
|
1686
|
-
switchWallet(types.ChainNamespace.solana);
|
|
1687
|
-
},
|
|
1688
|
-
isPrivy: true,
|
|
1689
|
-
isBoth: false
|
|
2152
|
+
[storageChain]
|
|
2153
|
+
);
|
|
2154
|
+
const isHaveEvmWallet = React19.useMemo(() => {
|
|
2155
|
+
return walletEVM && walletEVM.accounts.length;
|
|
2156
|
+
}, [walletEVM]);
|
|
2157
|
+
const isHaveSolWallet = React19.useMemo(() => {
|
|
2158
|
+
return walletSOL && walletSOL.accounts.length;
|
|
2159
|
+
}, [walletSOL]);
|
|
2160
|
+
const renderWarning = React19.useCallback(() => {
|
|
2161
|
+
let showWarning = false;
|
|
2162
|
+
if (types.AbstractChains.has(storageChain?.chainId)) {
|
|
2163
|
+
showWarning = true;
|
|
2164
|
+
}
|
|
2165
|
+
if (targetWalletType === "Abstract" /* ABSTRACT */) {
|
|
2166
|
+
showWarning = true;
|
|
2167
|
+
}
|
|
2168
|
+
if (!showWarning) {
|
|
2169
|
+
return;
|
|
1690
2170
|
}
|
|
1691
|
-
|
|
1692
|
-
}
|
|
1693
|
-
|
|
1694
|
-
// src/components/connectDrawer.tsx
|
|
1695
|
-
function PrivyConnectArea({ connect }) {
|
|
1696
|
-
const { t } = i18n.useTranslation();
|
|
1697
|
-
const { isMobile, isDesktop } = ui.useScreen();
|
|
1698
|
-
const { connectorWalletType } = useWalletConnectorPrivy();
|
|
1699
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1700
|
-
"div",
|
|
1701
|
-
{
|
|
1702
|
-
className: ui.cn(
|
|
1703
|
-
"oui-flex oui-items-center oui-justify-between",
|
|
1704
|
-
"oui-text-base-contrast-80 oui-text-sm oui-font-semibold oui-mb-3",
|
|
1705
|
-
"md:oui-mb-2"
|
|
1706
|
-
)
|
|
1707
|
-
},
|
|
1708
|
-
t("connector.privy.loginIn"),
|
|
1709
|
-
isMobile && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-h-3 oui-flex oui-justify-center" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1710
|
-
"img",
|
|
1711
|
-
{
|
|
1712
|
-
src: "https://oss.orderly.network/static/sdk/privy/privy-logo.png",
|
|
1713
|
-
className: " oui-h-[10px]"
|
|
1714
|
-
}
|
|
1715
|
-
))
|
|
1716
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1717
|
-
"div",
|
|
1718
|
-
{
|
|
1719
|
-
className: ui.cn(
|
|
1720
|
-
"oui-grid oui-grid-cols-2 oui-gap-2",
|
|
1721
|
-
"md:oui-flex md:oui-flex-col md:oui-gap-2"
|
|
1722
|
-
)
|
|
1723
|
-
},
|
|
1724
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1725
|
-
"div",
|
|
1726
|
-
{
|
|
1727
|
-
className: "oui-cursor-pointer oui-rounded-[6px] oui-bg-[#333948] oui-px-2 oui-py-[11px] oui-flex oui-justify-center oui-items-center oui-gap-1",
|
|
1728
|
-
onClick: () => connect({ walletType: "privy", extraType: "email" })
|
|
1729
|
-
},
|
|
1730
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1731
|
-
"img",
|
|
1732
|
-
{
|
|
1733
|
-
src: "https://oss.orderly.network/static/sdk/privy/email.svg",
|
|
1734
|
-
className: "oui-w-[18px] oui-h-[18px]"
|
|
1735
|
-
}
|
|
1736
|
-
),
|
|
1737
|
-
/* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs" }, t("connector.privy.email"))
|
|
1738
|
-
),
|
|
1739
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1740
|
-
"div",
|
|
1741
|
-
{
|
|
1742
|
-
className: "oui-rounded-[6px] oui-bg-[#335FFC] oui-px-2 oui-py-[11px] oui-flex oui-justify-center oui-items-center oui-gap-1 oui-cursor-pointer",
|
|
1743
|
-
onClick: () => connect({ walletType: "privy", extraType: "google" })
|
|
1744
|
-
},
|
|
1745
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1746
|
-
"img",
|
|
1747
|
-
{
|
|
1748
|
-
src: "https://oss.orderly.network/static/sdk/privy/google.svg",
|
|
1749
|
-
className: "oui-w-[18px] oui-h-[18px]"
|
|
1750
|
-
}
|
|
1751
|
-
),
|
|
1752
|
-
/* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs" }, t("connector.privy.google"))
|
|
1753
|
-
),
|
|
1754
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
2171
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mt-5 oui-border-b oui-border-line oui-pb-5" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1755
2172
|
"div",
|
|
1756
2173
|
{
|
|
1757
|
-
className:
|
|
1758
|
-
|
|
2174
|
+
className: ui.cn(
|
|
2175
|
+
"oui-flex oui-items-start oui-justify-center oui-gap-1",
|
|
2176
|
+
"oui-w-full oui-rounded-[8px] oui-px-2 oui-py-[13px]",
|
|
2177
|
+
"oui-bg-warning-darken/10"
|
|
2178
|
+
)
|
|
1759
2179
|
},
|
|
1760
|
-
/* @__PURE__ */
|
|
1761
|
-
|
|
2180
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
2181
|
+
ui.ExclamationFillIcon,
|
|
1762
2182
|
{
|
|
1763
|
-
|
|
1764
|
-
className: "oui-
|
|
2183
|
+
size: 14,
|
|
2184
|
+
className: "oui-mt-[2px] oui-size-[14px] oui-shrink-0 oui-text-warning-darken"
|
|
1765
2185
|
}
|
|
1766
2186
|
),
|
|
1767
|
-
/* @__PURE__ */
|
|
1768
|
-
)
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
{
|
|
1772
|
-
|
|
1773
|
-
className: " oui-h-[10px]"
|
|
1774
|
-
}
|
|
1775
|
-
)), (!connectorWalletType.disableWagmi || !connectorWalletType.disableSolana) && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-h-[1px] oui-bg-line oui-w-full oui-mt-4 md:oui-mt-5" }));
|
|
1776
|
-
}
|
|
1777
|
-
function EVMConnectArea({ connect }) {
|
|
1778
|
-
const { connectors } = useWagmiWallet();
|
|
1779
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast-80 oui-text-sm oui-font-semibold oui-mb-2" }, "EVM"), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-grid oui-grid-cols-2 oui-gap-2" }, connectors.map((item, key) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1780
|
-
"div",
|
|
1781
|
-
{
|
|
1782
|
-
key,
|
|
1783
|
-
className: " oui-flex oui-items-center oui-justify-start oui-gap-1 oui-rounded-[6px] oui-px-2 oui-bg-[#07080A] oui-py-[11px] oui-flex-1 oui-cursor-pointer",
|
|
1784
|
-
onClick: () => connect(item)
|
|
1785
|
-
},
|
|
1786
|
-
/* @__PURE__ */ React12__default.default.createElement(RenderWalletIcon, { connector: item }),
|
|
1787
|
-
/* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs" }, item.name)
|
|
1788
|
-
))));
|
|
1789
|
-
}
|
|
1790
|
-
function SOLConnectArea({
|
|
1791
|
-
connect
|
|
1792
|
-
}) {
|
|
1793
|
-
const { wallets } = useSolanaWallet();
|
|
1794
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast-80 oui-text-sm oui-font-semibold oui-mb-2" }, "Solana"), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-grid oui-grid-cols-2 oui-gap-2" }, wallets.map((item, key) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1795
|
-
"div",
|
|
1796
|
-
{
|
|
1797
|
-
key,
|
|
1798
|
-
className: " oui-flex oui-items-center oui-justify-start oui-gap-1 oui-rounded-[6px] oui-px-2 oui-bg-[#07080A] oui-py-[11px] oui-flex-1 oui-cursor-pointer",
|
|
1799
|
-
onClick: () => connect(item.adapter)
|
|
1800
|
-
},
|
|
1801
|
-
/* @__PURE__ */ React12__default.default.createElement(RenderWalletIcon, { connector: item.adapter }),
|
|
1802
|
-
/* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs" }, item.adapter.name)
|
|
1803
|
-
))));
|
|
1804
|
-
}
|
|
1805
|
-
function ConnectWallet() {
|
|
1806
|
-
const { connect } = useWallet2();
|
|
1807
|
-
const { setOpenConnectDrawer, walletChainType, connectorWalletType } = useWalletConnectorPrivy();
|
|
1808
|
-
const handleConnect = (params) => {
|
|
1809
|
-
connect(params);
|
|
1810
|
-
if (params.walletType === "privy" /* PRIVY */) {
|
|
1811
|
-
setOpenConnectDrawer(false);
|
|
2187
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-2xs oui-leading-[18px] oui-text-warning-darken" }, "Abstract Chain access requires Abstract Global Wallet. Privy connection is currently unsupported.")
|
|
2188
|
+
));
|
|
2189
|
+
}, [targetWalletType]);
|
|
2190
|
+
const renderWallet = React19.useCallback(() => {
|
|
2191
|
+
if (loading) {
|
|
2192
|
+
return;
|
|
1812
2193
|
}
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
PrivyConnectArea,
|
|
1816
|
-
{
|
|
1817
|
-
connect: (type) => handleConnect({ walletType: "privy" /* PRIVY */, extraType: type })
|
|
2194
|
+
if (!walletList.length) {
|
|
2195
|
+
return /* @__PURE__ */ React19__default.default.createElement(NoWallet, null);
|
|
1818
2196
|
}
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
2197
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mt-5 oui-flex oui-flex-col oui-gap-5" }, walletList.map((wallet) => /* @__PURE__ */ React19__default.default.createElement(
|
|
2198
|
+
WalletCard,
|
|
2199
|
+
{
|
|
2200
|
+
key: wallet.type,
|
|
2201
|
+
type: wallet.type,
|
|
2202
|
+
address: wallet.address,
|
|
2203
|
+
isActive: isActive(wallet.type),
|
|
2204
|
+
isPrivy: true,
|
|
2205
|
+
isMulti: walletList.length > 1,
|
|
2206
|
+
onActiveChange: () => {
|
|
2207
|
+
switchWallet(wallet.type);
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
)), addWallet.map((node, index) => /* @__PURE__ */ React19__default.default.createElement("div", { key: index }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-my-5 oui-h-px oui-w-full oui-bg-line" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-w-full oui-flex-col oui-gap-2" }, node))));
|
|
2211
|
+
}, [walletList, addWallet, isActive, switchWallet, t, loading]);
|
|
2212
|
+
React19.useEffect(() => {
|
|
2213
|
+
new Promise(
|
|
2214
|
+
(resolve) => setTimeout(() => {
|
|
2215
|
+
setLoading(false);
|
|
2216
|
+
resolve(true);
|
|
2217
|
+
}, 200)
|
|
2218
|
+
);
|
|
2219
|
+
}, []);
|
|
2220
|
+
React19.useEffect(() => {
|
|
2221
|
+
const tempWalletList = [];
|
|
2222
|
+
const tempAddWallet = [];
|
|
2223
|
+
if (!connectorWalletType.disableWagmi && walletChainTypeConfig.hasEvm) {
|
|
2224
|
+
if (isHaveEvmWallet) {
|
|
2225
|
+
tempWalletList.push({
|
|
2226
|
+
type: "EVM" /* EVM */,
|
|
2227
|
+
address: walletEVM.accounts[0].address
|
|
2228
|
+
});
|
|
2229
|
+
} else {
|
|
2230
|
+
tempAddWallet.push(/* @__PURE__ */ React19__default.default.createElement(CreateEVMWallet, null));
|
|
2231
|
+
}
|
|
1826
2232
|
}
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
}
|
|
2233
|
+
if (!connectorWalletType.disableSolana && walletChainTypeConfig.hasSol) {
|
|
2234
|
+
if (isHaveSolWallet) {
|
|
2235
|
+
tempWalletList.push({
|
|
2236
|
+
type: "SOL" /* SOL */,
|
|
2237
|
+
address: walletSOL.accounts[0].address
|
|
2238
|
+
});
|
|
2239
|
+
} else {
|
|
2240
|
+
tempAddWallet.push(/* @__PURE__ */ React19__default.default.createElement(CreateSOLWallet, null));
|
|
2241
|
+
}
|
|
1834
2242
|
}
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
2243
|
+
setWalletList(tempWalletList);
|
|
2244
|
+
setAddWallet(tempAddWallet);
|
|
2245
|
+
}, [
|
|
2246
|
+
connectorWalletType,
|
|
2247
|
+
walletChainTypeConfig,
|
|
2248
|
+
walletEVM,
|
|
2249
|
+
walletSOL,
|
|
2250
|
+
isHaveEvmWallet,
|
|
2251
|
+
isHaveSolWallet
|
|
2252
|
+
]);
|
|
2253
|
+
React19.useEffect(() => {
|
|
2254
|
+
if (targetWalletType === "Abstract" /* ABSTRACT */) {
|
|
2255
|
+
utils.windowGuard(() => {
|
|
2256
|
+
setTimeout(() => {
|
|
2257
|
+
setTargetWalletType(void 0);
|
|
2258
|
+
}, 5e3);
|
|
2259
|
+
});
|
|
1839
2260
|
}
|
|
1840
|
-
|
|
1841
|
-
|
|
2261
|
+
}, [targetWalletType, setTargetWalletType]);
|
|
2262
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-between" }, linkedAccount && /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-gap-2 oui-text-base-contrast" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement(RenderPrivyTypeIcon, { type: linkedAccount.type, size: 24 })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-text-xs" }, linkedAccount.address)), /* @__PURE__ */ React19__default.default.createElement(
|
|
2263
|
+
"div",
|
|
1842
2264
|
{
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
));
|
|
2265
|
+
className: "oui-cursor-pointer oui-text-2xs oui-font-semibold oui-text-primary",
|
|
2266
|
+
onClick: () => disconnect("privy" /* PRIVY */)
|
|
2267
|
+
},
|
|
2268
|
+
t("connector.privy.logout")
|
|
2269
|
+
)), renderWarning(), renderWallet());
|
|
1849
2270
|
}
|
|
2271
|
+
|
|
2272
|
+
// src/components/connectDrawer.tsx
|
|
1850
2273
|
function MyWallet() {
|
|
1851
2274
|
const [connectorKey, setConnectorKey] = hooks.useLocalStorage(types.ConnectorKey, "");
|
|
1852
|
-
return /* @__PURE__ */
|
|
2275
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", null, connectorKey === "privy" && /* @__PURE__ */ React19__default.default.createElement(RenderPrivyWallet, null), connectorKey !== "privy" && /* @__PURE__ */ React19__default.default.createElement(RenderNonPrivyWallet, null));
|
|
1853
2276
|
}
|
|
1854
2277
|
function ConnectDrawer(props) {
|
|
1855
2278
|
const { t } = i18n.useTranslation();
|
|
1856
2279
|
const { isConnected: isConnectedPrivy } = usePrivyWallet();
|
|
1857
2280
|
const { isConnected: isConnectedEvm } = useWagmiWallet();
|
|
1858
2281
|
const { isConnected: isConnectedSolana } = useSolanaWallet();
|
|
1859
|
-
const {
|
|
1860
|
-
const
|
|
1861
|
-
const
|
|
2282
|
+
const { isConnected: isConnectedAbstract } = useAbstractWallet();
|
|
2283
|
+
const { termsOfUse } = useWalletConnectorPrivy();
|
|
2284
|
+
const [connectorKey] = hooks.useLocalStorage(types.ConnectorKey, "");
|
|
2285
|
+
const isConnected = React19.useMemo(() => {
|
|
1862
2286
|
if (connectorKey === "privy" /* PRIVY */ && isConnectedPrivy) {
|
|
1863
2287
|
return true;
|
|
1864
2288
|
}
|
|
@@ -1869,46 +2293,63 @@ function ConnectDrawer(props) {
|
|
|
1869
2293
|
if (isConnectedSolana) {
|
|
1870
2294
|
return true;
|
|
1871
2295
|
}
|
|
2296
|
+
if (isConnectedAbstract) {
|
|
2297
|
+
return true;
|
|
2298
|
+
}
|
|
1872
2299
|
}
|
|
1873
2300
|
return false;
|
|
1874
|
-
}, [
|
|
2301
|
+
}, [
|
|
2302
|
+
isConnectedPrivy,
|
|
2303
|
+
isConnectedEvm,
|
|
2304
|
+
isConnectedSolana,
|
|
2305
|
+
isConnectedAbstract,
|
|
2306
|
+
connectorKey
|
|
2307
|
+
]);
|
|
1875
2308
|
const { isMobile } = ui.useScreen();
|
|
1876
|
-
|
|
2309
|
+
const renderHeader = React19.useCallback(() => {
|
|
2310
|
+
if (isMobile && props.headerProps?.mobile) {
|
|
2311
|
+
return props.headerProps?.mobile;
|
|
2312
|
+
}
|
|
2313
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
2314
|
+
"div",
|
|
2315
|
+
{
|
|
2316
|
+
className: ui.cn(
|
|
2317
|
+
"oui-font-semibold oui-text-base-contrast-80 ",
|
|
2318
|
+
"oui-py-2 oui-text-[20px]",
|
|
2319
|
+
"md:oui-py-0 md:oui-text-base"
|
|
2320
|
+
)
|
|
2321
|
+
},
|
|
2322
|
+
isConnected ? t("connector.privy.myWallet") : t("connector.connectWallet")
|
|
2323
|
+
);
|
|
2324
|
+
}, [isMobile, props.headerProps?.mobile, isConnected]);
|
|
2325
|
+
return /* @__PURE__ */ React19__default.default.createElement(Drawer, { isOpen: props.open, onClose: () => props.onChangeOpen(false) }, !isMobile && /* @__PURE__ */ React19__default.default.createElement(
|
|
1877
2326
|
"div",
|
|
1878
2327
|
{
|
|
1879
|
-
className: "oui-
|
|
2328
|
+
className: "oui-absolute oui-inset-x-[50px] -oui-top-[calc(100vh/2)] oui-z-0 oui-h-screen",
|
|
1880
2329
|
style: {
|
|
1881
2330
|
background: "conic-gradient(from -41deg at 40.63% 50.41%, rgba(242, 98, 181, 0.00) 125.17920970916748deg, rgba(95, 197, 255, 0.20) 193.4119462966919deg, rgba(255, 172, 137, 0.20) 216.0206937789917deg, rgba(129, 85, 255, 0.20) 236.0708713531494deg, rgba(120, 157, 255, 0.20) 259.95326042175293deg, rgba(159, 115, 241, 0.00) 311.0780096054077deg)",
|
|
1882
2331
|
filter: "blur(50px)"
|
|
1883
2332
|
}
|
|
1884
2333
|
}
|
|
1885
|
-
), /* @__PURE__ */
|
|
1886
|
-
|
|
1887
|
-
{
|
|
1888
|
-
className: ui.cn(
|
|
1889
|
-
"oui-font-semibold oui-text-base-contrast-80 ",
|
|
1890
|
-
"oui-text-[20px] oui-py-2",
|
|
1891
|
-
"md:oui-text-base md:oui-py-0"
|
|
1892
|
-
)
|
|
1893
|
-
},
|
|
1894
|
-
isConnected ? t("connector.privy.myWallet") : t("connector.connectWallet")
|
|
1895
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1896
|
-
CloseIcon,
|
|
2334
|
+
), /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-z-10" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-mb-4 oui-flex oui-items-center oui-justify-between md:oui-mb-5" }, renderHeader(), /* @__PURE__ */ React19__default.default.createElement(
|
|
2335
|
+
ui.CloseIcon,
|
|
1897
2336
|
{
|
|
1898
|
-
className: "oui-cursor-pointer oui-text-base-contrast-20
|
|
2337
|
+
className: "oui-size-5 oui-cursor-pointer oui-text-base-contrast-20 hover:oui-text-base-contrast-80",
|
|
1899
2338
|
onClick: () => props.onChangeOpen(false)
|
|
1900
2339
|
}
|
|
1901
|
-
)), isConnected ? /* @__PURE__ */
|
|
2340
|
+
)), isConnected ? /* @__PURE__ */ React19__default.default.createElement(MyWallet, null) : /* @__PURE__ */ React19__default.default.createElement(RenderConnector, null)), !isConnected && termsOfUse && /* @__PURE__ */ React19__default.default.createElement("div", { className: "oui-relative oui-z-10 oui-text-center oui-text-2xs oui-font-semibold oui-text-base-contrast-80" }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1902
2341
|
i18n.Trans,
|
|
1903
2342
|
{
|
|
1904
2343
|
i18nKey: "connector.privy.termsOfUse",
|
|
1905
2344
|
components: [
|
|
1906
|
-
/* @__PURE__ */
|
|
2345
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1907
2346
|
"a",
|
|
1908
2347
|
{
|
|
2348
|
+
key: "termsOfUse",
|
|
1909
2349
|
href: termsOfUse,
|
|
1910
|
-
className: "oui-cursor-pointer oui-
|
|
1911
|
-
target: "_blank"
|
|
2350
|
+
className: "oui-cursor-pointer oui-text-primary oui-underline",
|
|
2351
|
+
target: "_blank",
|
|
2352
|
+
rel: "noreferrer"
|
|
1912
2353
|
}
|
|
1913
2354
|
)
|
|
1914
2355
|
]
|
|
@@ -1917,11 +2358,11 @@ function ConnectDrawer(props) {
|
|
|
1917
2358
|
}
|
|
1918
2359
|
function UserCenter(props) {
|
|
1919
2360
|
const { accountState: state } = props;
|
|
1920
|
-
return /* @__PURE__ */
|
|
2361
|
+
return /* @__PURE__ */ React19__default.default.createElement(RenderUserCenter, { state, disabledConnect: props.disabledConnect });
|
|
1921
2362
|
}
|
|
1922
2363
|
var MwebUserCenter = (props) => {
|
|
1923
2364
|
const { state } = props;
|
|
1924
|
-
return /* @__PURE__ */
|
|
2365
|
+
return /* @__PURE__ */ React19__default.default.createElement(RenderUserCenter, { state, disabledConnect: props.disabledConnect });
|
|
1925
2366
|
};
|
|
1926
2367
|
var RenderUserCenter = (props) => {
|
|
1927
2368
|
const { state } = props;
|
|
@@ -1929,9 +2370,17 @@ var RenderUserCenter = (props) => {
|
|
|
1929
2370
|
const { isMobile } = ui.useScreen();
|
|
1930
2371
|
const { connect, wallet } = hooks.useWalletConnector();
|
|
1931
2372
|
const { linkedAccount } = usePrivyWallet();
|
|
2373
|
+
const { state: accountState, account } = hooks.useAccount();
|
|
2374
|
+
const { connectedChain } = hooks.useWalletConnector();
|
|
1932
2375
|
const disabled = state.validating || props.disabledConnect;
|
|
2376
|
+
const userAddress = React19.useMemo(() => {
|
|
2377
|
+
if (connectedChain?.id && types.ABSTRACT_CHAIN_ID_MAP.has(parseInt(connectedChain?.id))) {
|
|
2378
|
+
return account.getAdditionalInfo()?.AGWAddress;
|
|
2379
|
+
}
|
|
2380
|
+
return account.address;
|
|
2381
|
+
}, [account, connectedChain, accountState]);
|
|
1933
2382
|
if (state.status === types.AccountStatusEnum.EnableTradingWithoutConnected) {
|
|
1934
|
-
return /* @__PURE__ */
|
|
2383
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1935
2384
|
ui.Button,
|
|
1936
2385
|
{
|
|
1937
2386
|
size: "md",
|
|
@@ -1940,18 +2389,21 @@ var RenderUserCenter = (props) => {
|
|
|
1940
2389
|
"data-testid": "oui-testid-nav-bar-address-btn",
|
|
1941
2390
|
className: "oui-flex oui-items-center oui-justify-center oui-gap-2"
|
|
1942
2391
|
},
|
|
1943
|
-
/* @__PURE__ */
|
|
2392
|
+
/* @__PURE__ */ React19__default.default.createElement(ui.Text.formatted, { rule: "address", className: "oui-text-[rgba(0,0,0,.88)]" }, ui.formatAddress(userAddress))
|
|
1944
2393
|
);
|
|
1945
2394
|
}
|
|
1946
2395
|
if (state.status <= types.AccountStatusEnum.NotConnected || disabled) {
|
|
1947
|
-
return /* @__PURE__ */
|
|
2396
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1948
2397
|
ui.Button,
|
|
1949
2398
|
{
|
|
1950
2399
|
"data-testid": "oui-testid-nav-bar-connectWallet-btn",
|
|
1951
2400
|
size: "md",
|
|
1952
2401
|
variant: disabled ? void 0 : "gradient",
|
|
1953
2402
|
angle: 45,
|
|
1954
|
-
className:
|
|
2403
|
+
className: ui.cn(
|
|
2404
|
+
"wallet-connect-button",
|
|
2405
|
+
isMobile && "oui-font-semibold oui-px-2"
|
|
2406
|
+
),
|
|
1955
2407
|
loading: state.validating,
|
|
1956
2408
|
disabled,
|
|
1957
2409
|
onClick: () => {
|
|
@@ -1966,42 +2418,42 @@ var RenderUserCenter = (props) => {
|
|
|
1966
2418
|
return;
|
|
1967
2419
|
}
|
|
1968
2420
|
if (isMobile) {
|
|
1969
|
-
return /* @__PURE__ */
|
|
2421
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1970
2422
|
uiConnector.AuthGuard,
|
|
1971
2423
|
{
|
|
1972
2424
|
buttonProps: {
|
|
1973
|
-
size: "
|
|
2425
|
+
size: "md"
|
|
1974
2426
|
}
|
|
1975
2427
|
},
|
|
1976
|
-
/* @__PURE__ */
|
|
2428
|
+
/* @__PURE__ */ React19__default.default.createElement("div", { onClick: () => connect() }, /* @__PURE__ */ React19__default.default.createElement(
|
|
1977
2429
|
ui.Button,
|
|
1978
2430
|
{
|
|
1979
|
-
size: "
|
|
2431
|
+
size: "md",
|
|
1980
2432
|
variant: "gradient",
|
|
1981
2433
|
angle: 45,
|
|
1982
2434
|
"data-testid": "oui-testid-nav-bar-address-btn",
|
|
1983
|
-
className: "oui-flex oui-items-center oui-justify-center oui-gap-
|
|
2435
|
+
className: "oui-px-2 oui-flex oui-items-center oui-justify-center oui-gap-1"
|
|
1984
2436
|
},
|
|
1985
|
-
linkedAccount && /* @__PURE__ */
|
|
2437
|
+
linkedAccount && /* @__PURE__ */ React19__default.default.createElement(
|
|
1986
2438
|
RenderPrivyTypeIcon,
|
|
1987
2439
|
{
|
|
1988
2440
|
type: linkedAccount.type,
|
|
1989
|
-
size:
|
|
2441
|
+
size: 14,
|
|
1990
2442
|
black: true
|
|
1991
2443
|
}
|
|
1992
2444
|
),
|
|
1993
|
-
/* @__PURE__ */
|
|
2445
|
+
/* @__PURE__ */ React19__default.default.createElement(
|
|
1994
2446
|
ui.Text.formatted,
|
|
1995
2447
|
{
|
|
1996
2448
|
rule: "address",
|
|
1997
|
-
className: "oui-text-[rgba(0,0,0,.88)]"
|
|
2449
|
+
className: "oui-text-[rgba(0,0,0,.88)] oui-font-semibold"
|
|
1998
2450
|
},
|
|
1999
|
-
ui.formatAddress(
|
|
2451
|
+
ui.formatAddress(userAddress)
|
|
2000
2452
|
)
|
|
2001
2453
|
))
|
|
2002
2454
|
);
|
|
2003
2455
|
}
|
|
2004
|
-
return /* @__PURE__ */
|
|
2456
|
+
return /* @__PURE__ */ React19__default.default.createElement("div", { onClick: () => connect() }, /* @__PURE__ */ React19__default.default.createElement(
|
|
2005
2457
|
ui.Button,
|
|
2006
2458
|
{
|
|
2007
2459
|
size: "md",
|
|
@@ -2010,7 +2462,7 @@ var RenderUserCenter = (props) => {
|
|
|
2010
2462
|
"data-testid": "oui-testid-nav-bar-address-btn",
|
|
2011
2463
|
className: "oui-flex oui-items-center oui-justify-center oui-gap-2"
|
|
2012
2464
|
},
|
|
2013
|
-
linkedAccount && /* @__PURE__ */
|
|
2465
|
+
linkedAccount && /* @__PURE__ */ React19__default.default.createElement(
|
|
2014
2466
|
RenderPrivyTypeIcon,
|
|
2015
2467
|
{
|
|
2016
2468
|
type: linkedAccount.type,
|
|
@@ -2018,7 +2470,7 @@ var RenderUserCenter = (props) => {
|
|
|
2018
2470
|
black: true
|
|
2019
2471
|
}
|
|
2020
2472
|
),
|
|
2021
|
-
/* @__PURE__ */
|
|
2473
|
+
/* @__PURE__ */ React19__default.default.createElement(ui.Text.formatted, { rule: "address", className: "oui-text-[rgba(0,0,0,.88)]" }, ui.formatAddress(userAddress))
|
|
2022
2474
|
));
|
|
2023
2475
|
};
|
|
2024
2476
|
ui.installExtension({
|
|
@@ -2026,34 +2478,34 @@ ui.installExtension({
|
|
|
2026
2478
|
scope: ["*"],
|
|
2027
2479
|
positions: [ui.ExtensionPositionEnum.AccountMenu]
|
|
2028
2480
|
})((props) => {
|
|
2029
|
-
return /* @__PURE__ */
|
|
2481
|
+
return /* @__PURE__ */ React19__default.default.createElement(UserCenter, { ...props });
|
|
2030
2482
|
});
|
|
2031
2483
|
ui.installExtension({
|
|
2032
2484
|
name: "mobile-account-menu-privy",
|
|
2033
2485
|
scope: ["*"],
|
|
2034
2486
|
positions: [ui.ExtensionPositionEnum.MobileAccountMenu]
|
|
2035
2487
|
})((props) => {
|
|
2036
|
-
return /* @__PURE__ */
|
|
2488
|
+
return /* @__PURE__ */ React19__default.default.createElement(MwebUserCenter, { ...props });
|
|
2037
2489
|
});
|
|
2038
2490
|
|
|
2039
2491
|
// src/main.tsx
|
|
2040
2492
|
function Main(props) {
|
|
2041
2493
|
const { wallet, connectedChain, setChain, namespace } = useWallet2();
|
|
2042
|
-
const { openConnectDrawer, setOpenConnectDrawer,
|
|
2494
|
+
const { openConnectDrawer, setOpenConnectDrawer, setTargetWalletType } = useWalletConnectorPrivy();
|
|
2043
2495
|
const connect = (props2) => {
|
|
2044
2496
|
if (props2 && props2.autoSelect) {
|
|
2045
2497
|
return Promise.resolve([]);
|
|
2046
2498
|
}
|
|
2047
|
-
|
|
2499
|
+
setTargetWalletType(void 0);
|
|
2048
2500
|
return new Promise((resolve, reject) => {
|
|
2049
2501
|
setOpenConnectDrawer(true);
|
|
2050
2502
|
resolve([]);
|
|
2051
2503
|
});
|
|
2052
2504
|
};
|
|
2053
|
-
const disconnect =
|
|
2505
|
+
const disconnect = React19.useCallback(async () => {
|
|
2054
2506
|
return Promise.resolve([]);
|
|
2055
2507
|
}, [wallet]);
|
|
2056
|
-
const value =
|
|
2508
|
+
const value = React19.useMemo(
|
|
2057
2509
|
() => ({
|
|
2058
2510
|
connect,
|
|
2059
2511
|
disconnect,
|
|
@@ -2067,14 +2519,30 @@ function Main(props) {
|
|
|
2067
2519
|
}),
|
|
2068
2520
|
[connect, setChain, connectedChain, wallet, namespace]
|
|
2069
2521
|
);
|
|
2070
|
-
return /* @__PURE__ */
|
|
2522
|
+
return /* @__PURE__ */ React19__default.default.createElement(hooks.WalletConnectorContext.Provider, { value }, /* @__PURE__ */ React19__default.default.createElement(
|
|
2071
2523
|
ConnectDrawer,
|
|
2072
2524
|
{
|
|
2073
2525
|
open: openConnectDrawer,
|
|
2074
|
-
onChangeOpen: setOpenConnectDrawer
|
|
2526
|
+
onChangeOpen: setOpenConnectDrawer,
|
|
2527
|
+
headerProps: props.headerProps
|
|
2075
2528
|
}
|
|
2076
2529
|
), props.children);
|
|
2077
2530
|
}
|
|
2531
|
+
var InitAbstractProvider = (props) => {
|
|
2532
|
+
const { network } = useWalletConnectorPrivy();
|
|
2533
|
+
const chain = React19.useMemo(() => {
|
|
2534
|
+
if (network === "mainnet" /* mainnet */) {
|
|
2535
|
+
return chains.abstract;
|
|
2536
|
+
}
|
|
2537
|
+
return chains.abstractTestnet;
|
|
2538
|
+
}, [network]);
|
|
2539
|
+
return /* @__PURE__ */ React19__default.default.createElement(agwReact.AbstractWalletProvider, { chain }, props.children);
|
|
2540
|
+
};
|
|
2541
|
+
|
|
2542
|
+
// src/providers/abstractWallet/index.tsx
|
|
2543
|
+
function AbstractWallet({ children }) {
|
|
2544
|
+
return /* @__PURE__ */ React19__default.default.createElement(InitAbstractProvider, null, /* @__PURE__ */ React19__default.default.createElement(AbstractWalletProvider, null, children));
|
|
2545
|
+
}
|
|
2078
2546
|
function InitPrivyProvider({
|
|
2079
2547
|
privyConfig,
|
|
2080
2548
|
initChains,
|
|
@@ -2083,10 +2551,14 @@ function InitPrivyProvider({
|
|
|
2083
2551
|
if (!privyConfig) {
|
|
2084
2552
|
return children;
|
|
2085
2553
|
}
|
|
2086
|
-
const config =
|
|
2554
|
+
const config = React19.useMemo(() => {
|
|
2087
2555
|
const chains = initChains;
|
|
2088
2556
|
return {
|
|
2089
|
-
loginMethods: privyConfig.config?.loginMethods || [
|
|
2557
|
+
loginMethods: privyConfig.config?.loginMethods || [
|
|
2558
|
+
"email",
|
|
2559
|
+
"google",
|
|
2560
|
+
"twitter"
|
|
2561
|
+
],
|
|
2090
2562
|
appearance: {
|
|
2091
2563
|
...privyConfig.config?.appearance,
|
|
2092
2564
|
walletChainType: "ethereum-and-solana"
|
|
@@ -2106,7 +2578,19 @@ function InitPrivyProvider({
|
|
|
2106
2578
|
if (!initChains.length) {
|
|
2107
2579
|
return;
|
|
2108
2580
|
}
|
|
2109
|
-
return /* @__PURE__ */
|
|
2581
|
+
return /* @__PURE__ */ React19__default.default.createElement(reactAuth.PrivyProvider, { appId: privyConfig.appid, config }, children);
|
|
2582
|
+
}
|
|
2583
|
+
|
|
2584
|
+
// src/providers/privy/index.tsx
|
|
2585
|
+
function PrivyWallet(props) {
|
|
2586
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
2587
|
+
InitPrivyProvider,
|
|
2588
|
+
{
|
|
2589
|
+
privyConfig: props.privyConfig,
|
|
2590
|
+
initChains: props.initChains
|
|
2591
|
+
},
|
|
2592
|
+
/* @__PURE__ */ React19__default.default.createElement(PrivyWalletProvider, null, props.children)
|
|
2593
|
+
);
|
|
2110
2594
|
}
|
|
2111
2595
|
function InitSolanaProvider({
|
|
2112
2596
|
mainnetRpc,
|
|
@@ -2119,10 +2603,10 @@ function InitSolanaProvider({
|
|
|
2119
2603
|
if (connectorWalletType.disableSolana) {
|
|
2120
2604
|
return children;
|
|
2121
2605
|
}
|
|
2122
|
-
const wallets =
|
|
2606
|
+
const wallets = React19.useMemo(() => {
|
|
2123
2607
|
return walletsProp ?? [new walletAdapterWallets.PhantomWalletAdapter()];
|
|
2124
2608
|
}, [walletsProp]);
|
|
2125
|
-
|
|
2609
|
+
React19.useEffect(() => {
|
|
2126
2610
|
let rpcUrl = null;
|
|
2127
2611
|
if (network === "mainnet") {
|
|
2128
2612
|
rpcUrl = mainnetRpc ?? null;
|
|
@@ -2134,7 +2618,19 @@ function InitSolanaProvider({
|
|
|
2134
2618
|
network: network === "mainnet" ? walletAdapterBase.WalletAdapterNetwork.Mainnet : walletAdapterBase.WalletAdapterNetwork.Devnet
|
|
2135
2619
|
});
|
|
2136
2620
|
}, [network, mainnetRpc, devnetRpc, setSolanaInfo]);
|
|
2137
|
-
return /* @__PURE__ */
|
|
2621
|
+
return /* @__PURE__ */ React19__default.default.createElement(walletAdapterReact.WalletProvider, { wallets, onError }, children);
|
|
2622
|
+
}
|
|
2623
|
+
|
|
2624
|
+
// src/providers/solana/index.tsx
|
|
2625
|
+
function SolanaWallet(props) {
|
|
2626
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
2627
|
+
InitSolanaProvider,
|
|
2628
|
+
{
|
|
2629
|
+
...props.solanaConfig ?? { wallets: [], onError: () => {
|
|
2630
|
+
} }
|
|
2631
|
+
},
|
|
2632
|
+
/* @__PURE__ */ React19__default.default.createElement(SolanaWalletProvider, null, props.children)
|
|
2633
|
+
);
|
|
2138
2634
|
}
|
|
2139
2635
|
function InitWagmiProvider({
|
|
2140
2636
|
children,
|
|
@@ -2146,8 +2642,8 @@ function InitWagmiProvider({
|
|
|
2146
2642
|
if (connectorWalletType.disableWagmi) {
|
|
2147
2643
|
return children;
|
|
2148
2644
|
}
|
|
2149
|
-
const [queryClient] =
|
|
2150
|
-
const [config, setConfig] =
|
|
2645
|
+
const [queryClient] = React19.useState(() => new reactQuery.QueryClient());
|
|
2646
|
+
const [config, setConfig] = React19.useState(
|
|
2151
2647
|
() => WagmiExport.createConfig({
|
|
2152
2648
|
chains: initChains && initChains.length ? initChains : [chains.mainnet],
|
|
2153
2649
|
multiInjectedProviderDiscovery: true,
|
|
@@ -2161,7 +2657,19 @@ function InitWagmiProvider({
|
|
|
2161
2657
|
)
|
|
2162
2658
|
})
|
|
2163
2659
|
);
|
|
2164
|
-
return /* @__PURE__ */
|
|
2660
|
+
return /* @__PURE__ */ React19__default.default.createElement(WagmiExport.WagmiProvider, { config, initialState }, /* @__PURE__ */ React19__default.default.createElement(reactQuery.QueryClientProvider, { client: queryClient }, children));
|
|
2661
|
+
}
|
|
2662
|
+
|
|
2663
|
+
// src/providers/wagmi/index.tsx
|
|
2664
|
+
function WagmiWallet(props) {
|
|
2665
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
2666
|
+
InitWagmiProvider,
|
|
2667
|
+
{
|
|
2668
|
+
wagmiConfig: props.wagmiConfig ?? {},
|
|
2669
|
+
initChains: props.initChains
|
|
2670
|
+
},
|
|
2671
|
+
/* @__PURE__ */ React19__default.default.createElement(WagmiWalletProvider, null, props.children)
|
|
2672
|
+
);
|
|
2165
2673
|
}
|
|
2166
2674
|
|
|
2167
2675
|
// src/provider.tsx
|
|
@@ -2191,7 +2699,7 @@ var processChainInfo = (chainInfo) => chainInfo.map(
|
|
|
2191
2699
|
}
|
|
2192
2700
|
})
|
|
2193
2701
|
) || [];
|
|
2194
|
-
var
|
|
2702
|
+
var WalletConnectorPrivyContext = React19.createContext({
|
|
2195
2703
|
initChains: [chains.mainnet],
|
|
2196
2704
|
mainnetChains: [],
|
|
2197
2705
|
testnetChains: [],
|
|
@@ -2199,8 +2707,8 @@ var walletConnectorPrivyContext = React12.createContext({
|
|
|
2199
2707
|
openConnectDrawer: false,
|
|
2200
2708
|
setOpenConnectDrawer: () => {
|
|
2201
2709
|
},
|
|
2202
|
-
|
|
2203
|
-
|
|
2710
|
+
targetWalletType: void 0,
|
|
2711
|
+
setTargetWalletType: () => {
|
|
2204
2712
|
},
|
|
2205
2713
|
network: "mainnet" /* mainnet */,
|
|
2206
2714
|
setNetwork: () => {
|
|
@@ -2210,31 +2718,38 @@ var walletConnectorPrivyContext = React12.createContext({
|
|
|
2210
2718
|
},
|
|
2211
2719
|
termsOfUse: "",
|
|
2212
2720
|
walletChainType: "EVM_SOL" /* EVM_SOL */,
|
|
2721
|
+
walletChainTypeConfig: {
|
|
2722
|
+
hasEvm: true,
|
|
2723
|
+
hasSol: true,
|
|
2724
|
+
hasAbstract: false
|
|
2725
|
+
},
|
|
2213
2726
|
connectorWalletType: {
|
|
2214
2727
|
disableWagmi: false,
|
|
2215
2728
|
disablePrivy: false,
|
|
2216
|
-
disableSolana: false
|
|
2729
|
+
disableSolana: false,
|
|
2730
|
+
disableAGW: false
|
|
2217
2731
|
}
|
|
2218
2732
|
});
|
|
2219
|
-
var useWalletConnectorPrivy = () =>
|
|
2733
|
+
var useWalletConnectorPrivy = () => React19.useContext(WalletConnectorPrivyContext);
|
|
2220
2734
|
function WalletConnectorPrivyProvider(props) {
|
|
2221
|
-
const [walletChainType, setWalletChainType] =
|
|
2735
|
+
const [walletChainType, setWalletChainType] = React19.useState(
|
|
2222
2736
|
"EVM_SOL" /* EVM_SOL */
|
|
2223
2737
|
);
|
|
2224
|
-
const [termsOfUse] =
|
|
2225
|
-
const [network, setNetwork] =
|
|
2226
|
-
const [initChains, setInitChains] =
|
|
2227
|
-
const [mainnetChains, setMainnetChains] =
|
|
2228
|
-
const [testnetChains, setTestnetChains] =
|
|
2229
|
-
const initRef =
|
|
2230
|
-
const [openConnectDrawer, setOpenConnectDrawer] =
|
|
2231
|
-
const [
|
|
2232
|
-
const [solanaInfo, setSolanaInfo] =
|
|
2233
|
-
const connectorWalletType =
|
|
2234
|
-
|
|
2738
|
+
const [termsOfUse] = React19.useState(props.termsOfUse || "");
|
|
2739
|
+
const [network, setNetwork] = React19.useState(props.network);
|
|
2740
|
+
const [initChains, setInitChains] = React19.useState([]);
|
|
2741
|
+
const [mainnetChains, setMainnetChains] = React19.useState([]);
|
|
2742
|
+
const [testnetChains, setTestnetChains] = React19.useState([]);
|
|
2743
|
+
const initRef = React19.useRef(false);
|
|
2744
|
+
const [openConnectDrawer, setOpenConnectDrawer] = React19.useState(false);
|
|
2745
|
+
const [targetWalletType, setTargetWalletType] = React19.useState();
|
|
2746
|
+
const [solanaInfo, setSolanaInfo] = React19.useState(null);
|
|
2747
|
+
const connectorWalletType = React19.useMemo(() => {
|
|
2748
|
+
const type = {
|
|
2235
2749
|
disableWagmi: false,
|
|
2236
2750
|
disablePrivy: false,
|
|
2237
|
-
disableSolana: false
|
|
2751
|
+
disableSolana: false,
|
|
2752
|
+
disableAGW: false
|
|
2238
2753
|
};
|
|
2239
2754
|
if (!props.privyConfig) {
|
|
2240
2755
|
type.disablePrivy = true;
|
|
@@ -2245,8 +2760,28 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2245
2760
|
if (!props.solanaConfig) {
|
|
2246
2761
|
type.disableSolana = true;
|
|
2247
2762
|
}
|
|
2763
|
+
if (!props.abstractConfig) {
|
|
2764
|
+
type.disableAGW = true;
|
|
2765
|
+
}
|
|
2248
2766
|
return type;
|
|
2249
2767
|
}, [props.privyConfig, props.wagmiConfig, props.solanaConfig]);
|
|
2768
|
+
const walletChainTypeConfig = React19.useMemo(() => {
|
|
2769
|
+
const chainTypeObj = {
|
|
2770
|
+
hasEvm: false,
|
|
2771
|
+
hasSol: false,
|
|
2772
|
+
hasAbstract: false
|
|
2773
|
+
};
|
|
2774
|
+
initChains.forEach((chain) => {
|
|
2775
|
+
if (types.SolanaChains.has(chain.id)) {
|
|
2776
|
+
chainTypeObj.hasSol = true;
|
|
2777
|
+
} else if (types.AbstractChains.has(chain.id)) {
|
|
2778
|
+
chainTypeObj.hasAbstract = true;
|
|
2779
|
+
} else {
|
|
2780
|
+
chainTypeObj.hasEvm = true;
|
|
2781
|
+
}
|
|
2782
|
+
});
|
|
2783
|
+
return chainTypeObj;
|
|
2784
|
+
}, [initChains]);
|
|
2250
2785
|
const fetchAllChains = async () => {
|
|
2251
2786
|
let testChainsList = [];
|
|
2252
2787
|
let mainnetChainsList = [];
|
|
@@ -2255,6 +2790,7 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2255
2790
|
"https://testnet-api-evm.orderly.org/v1/public/chain_info"
|
|
2256
2791
|
);
|
|
2257
2792
|
testChainsList = testChainInfoRes.data.rows;
|
|
2793
|
+
testChainsList.push(types.AbstractTestnetChainInfo);
|
|
2258
2794
|
} catch (error) {
|
|
2259
2795
|
testChainsList = [types.ArbitrumSepoliaChainInfo, types.SolanaDevnetChainInfo];
|
|
2260
2796
|
}
|
|
@@ -2285,11 +2821,14 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2285
2821
|
setInitChains([...testChains, ...mainnetChains2]);
|
|
2286
2822
|
const chainTypeObj = {
|
|
2287
2823
|
hasEvm: false,
|
|
2288
|
-
hasSol: false
|
|
2824
|
+
hasSol: false,
|
|
2825
|
+
hasAbstract: false
|
|
2289
2826
|
};
|
|
2290
2827
|
[...testChains, ...mainnetChains2].forEach((chain) => {
|
|
2291
2828
|
if (types.SolanaChains.has(chain.id)) {
|
|
2292
2829
|
chainTypeObj.hasSol = true;
|
|
2830
|
+
} else if (types.AbstractChains.has(chain.id)) {
|
|
2831
|
+
chainTypeObj.hasAbstract = true;
|
|
2293
2832
|
} else {
|
|
2294
2833
|
chainTypeObj.hasEvm = true;
|
|
2295
2834
|
}
|
|
@@ -2303,15 +2842,15 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2303
2842
|
setWalletChainType("onlySOL" /* onlySOL */);
|
|
2304
2843
|
}
|
|
2305
2844
|
};
|
|
2306
|
-
if (connectorWalletType.disablePrivy && connectorWalletType.disableWagmi && connectorWalletType.disableSolana) {
|
|
2845
|
+
if (connectorWalletType.disablePrivy && connectorWalletType.disableWagmi && connectorWalletType.disableSolana && connectorWalletType.disableAGW) {
|
|
2307
2846
|
throw new Error(
|
|
2308
|
-
"Privy, Wagmi,
|
|
2847
|
+
"Privy, Wagmi, Solana, Abstract are all disabled. Please enable at least one of them."
|
|
2309
2848
|
);
|
|
2310
2849
|
}
|
|
2311
2850
|
const getChainsByNetwork = (network2) => {
|
|
2312
2851
|
return network2 === "mainnet" ? mainnetChains : testnetChains;
|
|
2313
2852
|
};
|
|
2314
|
-
const value =
|
|
2853
|
+
const value = React19.useMemo(
|
|
2315
2854
|
() => ({
|
|
2316
2855
|
initChains,
|
|
2317
2856
|
mainnetChains,
|
|
@@ -2319,15 +2858,16 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2319
2858
|
getChainsByNetwork,
|
|
2320
2859
|
openConnectDrawer,
|
|
2321
2860
|
setOpenConnectDrawer,
|
|
2322
|
-
|
|
2323
|
-
|
|
2861
|
+
targetWalletType,
|
|
2862
|
+
setTargetWalletType,
|
|
2324
2863
|
network,
|
|
2325
2864
|
setNetwork,
|
|
2326
2865
|
solanaInfo,
|
|
2327
2866
|
setSolanaInfo,
|
|
2328
2867
|
termsOfUse,
|
|
2329
2868
|
walletChainType,
|
|
2330
|
-
connectorWalletType
|
|
2869
|
+
connectorWalletType,
|
|
2870
|
+
walletChainTypeConfig
|
|
2331
2871
|
}),
|
|
2332
2872
|
[
|
|
2333
2873
|
initChains,
|
|
@@ -2336,18 +2876,19 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2336
2876
|
getChainsByNetwork,
|
|
2337
2877
|
openConnectDrawer,
|
|
2338
2878
|
setOpenConnectDrawer,
|
|
2339
|
-
|
|
2340
|
-
|
|
2879
|
+
targetWalletType,
|
|
2880
|
+
setTargetWalletType,
|
|
2341
2881
|
network,
|
|
2342
2882
|
setNetwork,
|
|
2343
2883
|
solanaInfo,
|
|
2344
2884
|
setSolanaInfo,
|
|
2345
2885
|
termsOfUse,
|
|
2346
2886
|
walletChainType,
|
|
2347
|
-
connectorWalletType
|
|
2887
|
+
connectorWalletType,
|
|
2888
|
+
walletChainTypeConfig
|
|
2348
2889
|
]
|
|
2349
2890
|
);
|
|
2350
|
-
|
|
2891
|
+
React19.useEffect(() => {
|
|
2351
2892
|
if (!props.customChains) {
|
|
2352
2893
|
fetchAllChains();
|
|
2353
2894
|
return;
|
|
@@ -2357,39 +2898,20 @@ function WalletConnectorPrivyProvider(props) {
|
|
|
2357
2898
|
if (!initRef.current) {
|
|
2358
2899
|
return null;
|
|
2359
2900
|
}
|
|
2360
|
-
return /* @__PURE__ */
|
|
2361
|
-
InitPrivyProvider,
|
|
2362
|
-
{
|
|
2363
|
-
privyConfig: props.privyConfig,
|
|
2364
|
-
initChains
|
|
2365
|
-
},
|
|
2366
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
2367
|
-
InitWagmiProvider,
|
|
2368
|
-
{
|
|
2369
|
-
wagmiConfig: props.wagmiConfig ?? {},
|
|
2370
|
-
initChains
|
|
2371
|
-
},
|
|
2372
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
2373
|
-
InitSolanaProvider,
|
|
2374
|
-
{
|
|
2375
|
-
...props.solanaConfig ?? { wallets: [], onError: () => {
|
|
2376
|
-
} }
|
|
2377
|
-
},
|
|
2378
|
-
/* @__PURE__ */ React12__default.default.createElement(PrivyWalletProvider, null, /* @__PURE__ */ React12__default.default.createElement(WagmiWalletProvider, null, /* @__PURE__ */ React12__default.default.createElement(SolanaWalletProvider, null, /* @__PURE__ */ React12__default.default.createElement(Main, null, props.children))))
|
|
2379
|
-
)
|
|
2380
|
-
)
|
|
2381
|
-
)));
|
|
2901
|
+
return /* @__PURE__ */ React19__default.default.createElement(WalletConnectorPrivyContext.Provider, { value }, /* @__PURE__ */ React19__default.default.createElement(ui.TooltipProvider, { delayDuration: 300 }, /* @__PURE__ */ React19__default.default.createElement(PrivyWallet, { privyConfig: props.privyConfig, initChains }, /* @__PURE__ */ React19__default.default.createElement(WagmiWallet, { wagmiConfig: props.wagmiConfig, initChains }, /* @__PURE__ */ React19__default.default.createElement(SolanaWallet, { solanaConfig: props.solanaConfig }, /* @__PURE__ */ React19__default.default.createElement(AbstractWallet, null, /* @__PURE__ */ React19__default.default.createElement(Main, { headerProps: props.headerProps }, props.children)))))));
|
|
2382
2902
|
}
|
|
2383
2903
|
var viem = viemExport__namespace;
|
|
2384
2904
|
var wagmiConnectors = WagmiConnectorsExport__namespace;
|
|
2385
2905
|
var wagmi = WagmiExport__namespace;
|
|
2386
2906
|
|
|
2907
|
+
exports.AbstractChainsMap = AbstractChainsMap;
|
|
2387
2908
|
exports.MwebUserCenter = MwebUserCenter;
|
|
2388
2909
|
exports.Network = Network;
|
|
2389
2910
|
exports.SolanaChains = SolanaChains;
|
|
2390
2911
|
exports.SolanaChainsMap = SolanaChainsMap;
|
|
2391
2912
|
exports.UserCenter = UserCenter;
|
|
2392
2913
|
exports.WalletChainTypeEnum = WalletChainTypeEnum;
|
|
2914
|
+
exports.WalletConnectType = WalletConnectType;
|
|
2393
2915
|
exports.WalletConnectorPrivyProvider = WalletConnectorPrivyProvider;
|
|
2394
2916
|
exports.WalletType = WalletType;
|
|
2395
2917
|
exports.viem = viem;
|