@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.js CHANGED
@@ -1,18 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var React12 = require('react');
4
- var hooks = require('@orderly.network/hooks');
5
- var ui = require('@orderly.network/ui');
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 reactAuth = require('@privy-io/react-auth');
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 React12__default = /*#__PURE__*/_interopDefault(React12);
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__ */ ((WalletType2) => {
52
- WalletType2["EVM"] = "EVM";
53
- WalletType2["SOL"] = "SOL";
54
- WalletType2["PRIVY"] = "privy";
55
- return WalletType2;
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 SolanaChains = /* @__PURE__ */ new Map([[walletAdapterBase.WalletAdapterNetwork.Devnet, 901901901], [walletAdapterBase.WalletAdapterNetwork.Mainnet, 900900900]]);
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, 901901901],
60
- ["testnet" /* testnet */, 901901901],
61
- ["mainnet" /* mainnet */, 900900900],
62
- [walletAdapterBase.WalletAdapterNetwork.Mainnet, 900900900]
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/privyWalletProvider.tsx
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 = React12.createContext(null);
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 = React12.useRef(false);
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] = React12.useState(null);
106
- const [walletSOL, setWalletSOL] = React12.useState(null);
218
+ const [walletEVM, setWalletEVM] = React19.useState(null);
219
+ const [walletSOL, setWalletSOL] = React19.useState(null);
107
220
  const { track } = hooks.useTrack();
108
- const linkedAccount = React12.useMemo(() => {
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 = React12.useMemo(() => {
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
- React12.useEffect(() => {
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
- React12.useEffect(() => {
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
- React12.useEffect(() => {
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 = React12.useMemo(
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__ */ React12__default.default.createElement(PrivyWalletContext.Provider, { value }, children);
406
+ return /* @__PURE__ */ React19__default.default.createElement(PrivyWalletContext.Provider, { value }, children);
294
407
  };
295
408
  function usePrivyWallet() {
296
- const context = React12.useContext(PrivyWalletContext);
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 = React12.createContext(
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] = React12.useState();
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 = React12.useRef({
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 = React12.useRef(false);
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 = React12.useMemo(() => {
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 = React12.useMemo(() => {
561
+ const isConnected = React19.useMemo(() => {
449
562
  return !!publicKey;
450
563
  }, [publicKey]);
451
- React12.useEffect(() => {
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 = React12.useMemo(
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__ */ React12__default.default.createElement(SolanaWalletContext.Provider, { value }, children);
629
+ return /* @__PURE__ */ React19__default.default.createElement(SolanaWalletContext.Provider, { value }, children);
517
630
  };
518
631
  function useSolanaWallet() {
519
- const context = React12.useContext(SolanaWalletContext);
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 = React12.createContext(null);
640
+ var WagmiWalletContext = React19.createContext(null);
528
641
  var WagmiWalletProvider = ({
529
642
  children
530
643
  }) => {
531
644
  const { connectorWalletType } = useWalletConnectorPrivy();
532
- const [wallet, setWallet] = React12.useState(void 0);
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 = React12.useMemo(() => {
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 = React12.useCallback(
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
- React12.useEffect(() => {
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 = React12.useMemo(() => {
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 = React12.useMemo(
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__ */ React12__default.default.createElement(WagmiWalletContext.Provider, { value }, children);
725
+ return /* @__PURE__ */ React19__default.default.createElement(WagmiWalletContext.Provider, { value }, children);
613
726
  };
614
727
  function useWagmiWallet() {
615
- const context = React12.useContext(WagmiWalletContext);
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 { walletChainType } = useWalletConnectorPrivy();
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 [wallet, setWallet] = React12.useState(null);
651
- const [namespace, setNamespace] = React12.useState(null);
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, setTargetNamespace } = useWalletConnectorPrivy();
654
- const isManual = React12.useRef(false);
854
+ const { setOpenConnectDrawer, targetWalletType, setTargetWalletType } = useWalletConnectorPrivy();
855
+ const isManual = React19.useRef(false);
655
856
  const connect = (params) => {
656
- setTargetNamespace(void 0);
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 = React12.useMemo(() => {
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] = React12.useState();
884
+ const [connectedChain, setConnectedChain] = React19.useState();
680
885
  const setChain = async (chain) => {
681
- let tempNamespace = types.ChainNamespace.evm;
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 (tempNamespace === types.ChainNamespace.evm) {
689
- if (walletChainType === "onlySOL" /* onlySOL */) {
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 (tempNamespace === types.ChainNamespace.solana) {
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 (walletChainType === "onlyEVM" /* onlyEVM */) {
707
- return Promise.reject(new Error("only evm wallet"));
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
- setTargetNamespace(types.ChainNamespace.solana);
918
+ setTargetWalletType("SOL" /* SOL */);
715
919
  return Promise.reject(new Error("No solana wallet found"));
716
920
  }
717
921
  }
718
922
  } else {
719
- if (storageChain.namespace === types.ChainNamespace.evm) {
720
- if (tempNamespace === types.ChainNamespace.evm) {
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
- if (tempNamespace === types.ChainNamespace.solana) {
730
- if (isConnectedSOL && walletSOL) {
731
- setStorageChain(parseInt(chain.chainId));
732
- } else {
733
- setOpenConnectDrawer(true);
734
- setTargetNamespace(types.ChainNamespace.solana);
735
- return Promise.resolve(true);
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 (storageChain.namespace === types.ChainNamespace.solana) {
740
- if (tempNamespace === types.ChainNamespace.evm) {
741
- if (isConnectedEVM && walletEVM) {
742
- setStorageChain(parseInt(chain.chainId));
743
- } else {
744
- setOpenConnectDrawer(true);
745
- setTargetNamespace(types.ChainNamespace.evm);
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 = (namespace2) => {
959
+ const switchWallet = (walletType) => {
752
960
  const fromWallet = wallet?.accounts[0].address;
753
961
  let toWallet;
754
962
  if (isPrivy) {
755
- if (namespace2 === types.ChainNamespace.evm) {
756
- if (privyWalletEVM) {
757
- setStorageChain(privyWalletEVM.chain.id);
758
- toWallet = privyWalletEVM.accounts[0].address;
759
- }
760
- } else {
761
- if (privyWalletSOL) {
762
- setStorageChain(privyWalletSOL.chain.id);
763
- toWallet = privyWalletSOL.accounts[0].address;
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
- if (namespace2 === types.ChainNamespace.evm) {
768
- if (walletEVM) {
769
- setStorageChain(walletEVM.chain.id);
770
- toWallet = walletEVM.accounts[0].address;
771
- }
772
- } else {
773
- if (walletSOL) {
774
- setStorageChain(walletSOL.chain.id);
775
- toWallet = walletSOL.accounts[0].address;
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
- if (walletType === "privy" /* PRIVY */) {
786
- return await disconnectPrivy();
787
- }
788
- if (walletType === "EVM" /* EVM */) {
789
- return disconnectEVM();
790
- }
791
- if (walletType === "SOL" /* SOL */) {
792
- return disconnectSOL();
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
- React12.useEffect(() => {
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
- React12.useEffect(() => {
1047
+ React19.useEffect(() => {
824
1048
  if (connectorKey === "privy" /* PRIVY */) {
825
1049
  return;
826
1050
  }
827
1051
  if (storageChain?.namespace === types.ChainNamespace.evm) {
828
- if (isConnectedEVM && walletEVM) {
829
- setWallet(walletEVM);
830
- setConnectedChain(connectedChainEvm);
831
- setNamespace(types.ChainNamespace.evm);
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
- setNullWalletStatus();
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
- // src/util.ts
865
- var WALLET_ICONS = {
866
- "metamask": "https://oss.orderly.network/static/sdk/evm_wallets/metamask.png",
867
- "walletconnect": "https://oss.orderly.network/static/sdk/evm_wallets/walletConnect.png",
868
- "binance": "https://oss.orderly.network/static/sdk/evm_wallets/binance.png",
869
- "ledger": "https://oss.orderly.network/static/sdk/evm_wallets/ledger.png",
870
- "coinbase": "https://oss.orderly.network/static/sdk/evm_wallets/coinbase.png",
871
- "magic": "https://oss.orderly.network/static/sdk/evm_wallets/magic.png",
872
- "trezor": "https://oss.orderly.network/static/sdk/evm_wallets/trezor.png",
873
- "exodus": "https://oss.orderly.network/static/sdk/evm_wallets/exodus.png",
874
- "frame": "https://oss.orderly.network/static/sdk/evm_wallets/frame.png",
875
- "rabby": "https://oss.orderly.network/static/sdk/evm_wallets/rabby.png"
876
- };
877
- var getWalletIcon = (type) => {
878
- return WALLET_ICONS[type.toLowerCase()];
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement("div", { className: "oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center" }, /* @__PURE__ */ React12__default.default.createElement(
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
- var MoreIcon = (props) => /* @__PURE__ */ React12__default.default.createElement(
936
- "svg",
937
- {
938
- xmlns: "http://www.w3.org/2000/svg",
939
- width: "16",
940
- height: "16",
941
- viewBox: "0 0 16 16",
942
- fill: "currentColor",
943
- ...props
944
- },
945
- /* @__PURE__ */ React12__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" }),
946
- /* @__PURE__ */ React12__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" }),
947
- /* @__PURE__ */ React12__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" })
948
- );
949
- var DisconnectIcon = (props) => /* @__PURE__ */ React12__default.default.createElement(
950
- "svg",
951
- {
952
- width: "16",
953
- height: "16",
954
- viewBox: "0 0 16 16",
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__ */ React12__default.default.createElement("g", { id: "box-arrow-right" }, /* @__PURE__ */ React12__default.default.createElement(
960
- "path",
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 CloseIcon = (props) => /* @__PURE__ */ React12__default.default.createElement(
1477
+ var DisconnectIcon = (props) => /* @__PURE__ */ React19__default.default.createElement(
968
1478
  "svg",
969
1479
  {
970
- width: "20",
971
- height: "20",
972
- viewBox: "0 0 20 20",
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__ */ React12__default.default.createElement("g", { id: "x-square-fill" }, /* @__PURE__ */ React12__default.default.createElement(
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: "M5.83834 2.44141C3.9975 2.44141 2.505 3.93391 2.505 5.77474V14.1081C2.505 15.9489 3.9975 17.4414 5.83834 17.4414H14.1717C16.0125 17.4414 17.505 15.9489 17.505 14.1081V5.77474C17.505 3.93391 16.0125 2.44141 14.1717 2.44141H5.83834ZM7.505 6.60807C7.71834 6.60807 7.94083 6.67974 8.10417 6.84224L10.005 8.74307L11.9058 6.84224C12.0683 6.67974 12.2917 6.60807 12.505 6.60807C12.7183 6.60807 12.9408 6.67974 13.1042 6.84224C13.4292 7.16808 13.4292 7.71473 13.1042 8.04057L11.2033 9.94141L13.1042 11.8422C13.4292 12.1681 13.4292 12.7147 13.1042 13.0406C12.7783 13.3656 12.2317 13.3656 11.9058 13.0406L10.005 11.1397L8.10417 13.0406C7.77833 13.3656 7.23168 13.3656 6.90584 13.0406C6.58084 12.7147 6.58084 12.1681 6.90584 11.8422L8.80668 9.94141L6.90584 8.04057C6.58084 7.71473 6.58084 7.16808 6.90584 6.84224C7.06834 6.67974 7.29167 6.60807 7.505 6.60807Z"
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__ */ React12__default.default.createElement(
1519
+ return /* @__PURE__ */ React19__default.default.createElement(
992
1520
  "div",
993
1521
  {
994
1522
  className: ui.cn(
995
- "oui-rounded-2xl oui-relative oui-p-4 oui-h-[110px] oui-overflow-hidden",
996
- props.type === "EVM" /* EVM */ ? "oui-bg-[#283BEE]" : "oui-bg-[#630EAD]",
997
- props.isActive && props.type === "SOL" /* SOL */ && props.isBoth && "oui-border-[2px] oui-border-[#faedff]",
998
- props.isActive && props.type === "EVM" /* EVM */ && props.isBoth && "oui-border-[2px] oui-border-[#B9D1FF]"
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement("div", { className: "oui-relative oui-z-10 oui-flex oui-flex-col oui-justify-between oui-h-full" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-between" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-sm oui-font-semibold" }, ui.formatAddress(props.address)), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-2" }, /* @__PURE__ */ React12__default.default.createElement(ui.Tooltip, { content: t("common.copy"), className: "oui-z-[65]" }, /* @__PURE__ */ React12__default.default.createElement(
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 oui-cursor-pointer hover:oui-text-base-contrast",
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(NonPrivyWalletHandleOption, { walletType: props.type }))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-between" }, props.type === "EVM" /* EVM */ ? /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-relative" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-h-[18px] " }, /* @__PURE__ */ React12__default.default.createElement(
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
- return /* @__PURE__ */ React12__default.default.createElement("div", { onClick: () => disconnect(walletType) }, /* @__PURE__ */ React12__default.default.createElement(DisconnectIcon, { className: "oui-text-base-contrast-80 oui-cursor-pointer hover:oui-text-base-contrast oui-w-4 oui-h-4" }));
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__ */ React12__default.default.createElement(ui.DropdownMenuRoot, null, /* @__PURE__ */ React12__default.default.createElement(ui.DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React12__default.default.createElement("button", null, /* @__PURE__ */ React12__default.default.createElement(MoreIcon, { className: "oui-text-base-contrast-80 oui-cursor-pointer hover:oui-text-base-contrast" }))), /* @__PURE__ */ React12__default.default.createElement(ui.DropdownMenuPortal, null, /* @__PURE__ */ React12__default.default.createElement(
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-p-1 oui-rounded oui-font-semibold oui-z-[65]",
1606
+ className: "oui-z-[65] oui-rounded oui-p-1 oui-font-semibold",
1079
1607
  sideOffset: 0
1080
1608
  },
1081
- /* @__PURE__ */ React12__default.default.createElement(
1609
+ /* @__PURE__ */ React19__default.default.createElement(
1082
1610
  ui.DropdownMenuItem,
1083
1611
  {
1084
- className: "oui-py-1 oui-px-2 oui-text-2xs oui-text-base-contrast-54 hover:oui-text-base-contrast oui-cursor-pointer",
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__ */ React12__default.default.createElement("div", null, t("common.export"))
1617
+ /* @__PURE__ */ React19__default.default.createElement("div", null, t("common.export"))
1090
1618
  )
1091
1619
  )));
1092
1620
  }
1093
- function EVMChainPopover({ children }) {
1094
- const { getChainsByNetwork } = useWalletConnectorPrivy();
1095
- const [chains] = React12.useState(getChainsByNetwork("mainnet"));
1096
- const [open, setOpen] = React12.useState(false);
1097
- const [visible, setVisible] = React12.useState(true);
1098
- const { t } = i18n.useTranslation();
1099
- return /* @__PURE__ */ React12__default.default.createElement(
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
- /* @__PURE__ */ React12__default.default.createElement("button", null, children)
1119
- );
1120
- }
1121
- function AddSolanaWallet() {
1122
- const { t } = i18n.useTranslation();
1123
- const { wallets } = useSolanaWallet();
1124
- const { connect } = useWallet2();
1125
- const [visible, setVisible] = React12.useState(false);
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 { targetNamespace } = useWalletConnectorPrivy();
1130
- const [open, setOpen] = React12.useState(false);
1131
- React12.useEffect(() => {
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 (targetNamespace === types.ChainNamespace.solana) {
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
- }, [targetNamespace]);
1144
- React12.useEffect(() => {
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__ */ React12__default.default.createElement("div", { className: "oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React12__default.default.createElement(
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-text-warning-darken oui-max-w-[200px] oui-z-[65]",
1695
+ className: "oui-z-[65] oui-max-w-[200px] oui-text-warning-darken",
1161
1696
  open,
1162
- content: t("connector.privy.addSolanaWallet.tips")
1697
+ content: t("connector.privy.addAbstractWallet.tips")
1163
1698
  },
1164
- /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React12__default.default.createElement(
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: "https://oss.orderly.network/static/sdk/solana-logo.png",
1168
- className: "oui-w-[15px] oui-h-[15px]"
1702
+ src: `${PrivyConnectorImagePath}/abstract-transparent.png`,
1703
+ className: "oui-size-[15px]"
1169
1704
  }
1170
- ), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast-80 oui-text-2xs oui-font-semibold" }, t("connector.privy.addSolanaWallet")), /* @__PURE__ */ React12__default.default.createElement("button", { onClick: onToggleVisibility }, visible ? /* @__PURE__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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-transition-height oui-duration-150 oui-overflow-hidden",
1190
- visible ? "oui-max-h-0 oui-mt-0" : "oui-max-h-[400px] oui-mt-3"
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
- wallets.map((item, index) => /* @__PURE__ */ React12__default.default.createElement(
1728
+ /* @__PURE__ */ React19__default.default.createElement(
1194
1729
  "div",
1195
1730
  {
1196
- key: index,
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: "SOL" /* SOL */,
1200
- walletAdapter: item.adapter
1733
+ walletType: "Abstract" /* ABSTRACT */
1201
1734
  })
1202
1735
  },
1203
- /* @__PURE__ */ React12__default.default.createElement(RenderWalletIcon, { connector: item.adapter }),
1204
- /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs" }, item.adapter.name)
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] = React12.useState(false);
1750
+ const [visible, setVisible] = React19.useState(false);
1211
1751
  const { connect } = useWallet2();
1212
- const [open, setOpen] = React12.useState(false);
1752
+ const [open, setOpen] = React19.useState(false);
1213
1753
  const { connectors } = useWagmiWallet();
1214
- const { targetNamespace } = useWalletConnectorPrivy();
1215
- React12.useEffect(() => {
1754
+ const { targetWalletType } = useWalletConnectorPrivy();
1755
+ React19.useEffect(() => {
1216
1756
  let timer = 0;
1217
- if (targetNamespace === types.ChainNamespace.evm) {
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
- }, [targetNamespace]);
1228
- React12.useEffect(() => {
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__ */ React12__default.default.createElement("div", { className: "oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px]" }, /* @__PURE__ */ React12__default.default.createElement(
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-text-warning-darken oui-max-w-[200px] oui-z-[65]",
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__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-relative oui-w-[55px]" }, /* @__PURE__ */ React12__default.default.createElement(
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-h-[18px] oui-relative oui-z-0"
1792
+ className: "oui-relative oui-z-0 oui-h-[18px]"
1253
1793
  }
1254
- ), /* @__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 oui-absolute oui-right-0" }, /* @__PURE__ */ React12__default.default.createElement(EVMChainPopover, null, /* @__PURE__ */ React12__default.default.createElement(
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-text-base-contrast-54 hover:oui-text-base-contrast oui-h-3 oui-w-3 oui-relative oui-z-10",
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__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast-80 oui-text-2xs oui-font-semibold" }, t("connector.privy.addEvmWallet")), /* @__PURE__ */ React12__default.default.createElement("button", { onClick: () => setVisible(!visible) }, visible ? /* @__PURE__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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-transition-height oui-duration-150 oui-overflow-hidden",
1280
- visible ? "oui-max-h-0 oui-mt-0" : "oui-max-h-[400px] oui-mt-3"
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__ */ React12__default.default.createElement(
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 oui-gap-1 oui-px-2 oui-py-[11px] oui-bg-[#131519] oui-cursor-pointer oui-text-2xs",
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__ */ React12__default.default.createElement(RenderWalletIcon, { connector: item }),
1291
- /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast" }, item.name)
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 SwitchNetworkTips({
1296
- chainNamespace
1297
- }) {
1835
+ function AddSolanaWallet() {
1298
1836
  const { t } = i18n.useTranslation();
1299
- const getChainName = () => {
1300
- if (chainNamespace === types.ChainNamespace.evm) {
1301
- return "EVM";
1302
- }
1303
- return "SOLANA";
1837
+ const { wallets } = useSolanaWallet();
1838
+ const { connect } = useWallet2();
1839
+ const [visible, setVisible] = React19.useState(false);
1840
+ const onToggleVisibility = () => {
1841
+ setVisible(!visible);
1304
1842
  };
1305
- return /* @__PURE__ */ React12__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__ */ React12__default.default.createElement(
1306
- ui.ExclamationFillIcon,
1307
- {
1308
- size: 14,
1309
- className: " oui-text-warning-darken oui-flex-shrink-0"
1310
- }
1311
- ), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-2xs oui-text-warning-darken" }, t("connector.privy.switchNetwork.tips", {
1312
- chainName: getChainName()
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
- return;
1438
- }
1439
- function Drawer({ children, isOpen, onClose }) {
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
- window.addEventListener("resize", handleResize);
1448
- if (isOpen) {
1449
- document.body.style.overflow = "hidden";
1450
- } else {
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
- document.body.style.overflow = "auto";
1455
- window.removeEventListener("resize", handleResize);
1866
+ if (timeId) {
1867
+ window.clearTimeout(timeId);
1868
+ }
1456
1869
  };
1457
- }, [isOpen, isMobile]);
1458
- if (!isOpen)
1459
- return null;
1460
- const drawerHeight = isMobile ? windowHeight : windowHeight - 72 - 24;
1461
- return reactDom.createPortal(
1462
- /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-fixed oui-inset-0 oui-z-[60]" }, /* @__PURE__ */ React12__default.default.createElement(
1463
- "div",
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
- className: "oui-absolute oui-inset-0 oui-bg-[rgba(0,0,0,0.48)] oui-transition-opacity",
1466
- onClick: onClose
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
- ), /* @__PURE__ */ React12__default.default.createElement(
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
- style: { height: `${drawerHeight}px` },
1472
- className: ui.cn(
1473
- "oui-overflow-hidden",
1474
- "oui-fixed oui-top-0 oui-right-0",
1475
- "oui-bg-[#131519] oui-shadow-lg",
1476
- "oui-border oui-border-line-12",
1477
- "oui-w-[276px]",
1478
- "md:oui-w-[300px]",
1479
- "md:oui-top-1/2 md:oui-translate-y-[-50%]",
1480
- "oui-rounded-0 md:oui-rounded-2xl",
1481
- "md:oui-rounded-0",
1482
- "oui-p-4",
1483
- "oui-transform oui-transition-transform oui-duration-300 oui-ease-in-out",
1484
- "oui-flex oui-flex-col oui-justify-between",
1485
- "oui-m-0 md:oui-m-3",
1486
- isOpen ? "oui-translate-x-0" : "oui--translate-x-full"
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
- children
1490
- )),
1491
- document.body
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__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-justify-center oui-items-center oui-w-full oui-mt-5" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-justify-center oui-items-center oui-w-full oui-gap-3" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-justify-center oui-items-center oui-gap-1 oui-border-[1px] oui-border-line-12 oui-rounded-[8px] oui-px-2 oui-py-[13px] oui-w-full " }, /* @__PURE__ */ React12__default.default.createElement(
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-w-[64px] oui-h-[64px]"
2043
+ className: "oui-size-[64px]"
1502
2044
  }
1503
- ), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast-36 oui-text-2xs oui-font-semibold" }, t("connector.privy.noWallet"))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-start oui-gap-1 oui-px-2 oui-py-[6px] oui-bg-[rgba(232,136,0,0.15)] oui-rounded-[4px] " }, /* @__PURE__ */ React12__default.default.createElement(
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-w-[10px] oui-h-[10px] oui-text-warning-darken oui-flex-shrink-0"
2049
+ className: "oui-mt-1 oui-size-[10px] oui-shrink-0 oui-text-warning-darken"
1508
2050
  }
1509
- ), /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-2xs oui-text-warning-darken" }, t("connector.privy.noWallet.description")))), /* @__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" }, walletChainType === "EVM_SOL" /* EVM_SOL */ && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(CreateEVMWallet, null), /* @__PURE__ */ React12__default.default.createElement(CreateSOLWallet, null)), walletChainType === "onlyEVM" /* onlyEVM */ && /* @__PURE__ */ React12__default.default.createElement(CreateEVMWallet, null), walletChainType === "onlySOL" /* onlySOL */ && /* @__PURE__ */ React12__default.default.createElement(CreateSOLWallet, null)));
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] = React12.useState(false);
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__ */ React12__default.default.createElement("div", { className: "oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px] oui-w-full" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-start oui-relative oui-w-[55px]" }, /* @__PURE__ */ React12__default.default.createElement(
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-h-[18px] oui-relative oui-z-0"
2072
+ className: "oui-relative oui-z-0 oui-h-[18px]"
1531
2073
  }
1532
- ), /* @__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 oui-absolute oui-right-0" }, /* @__PURE__ */ React12__default.default.createElement(EVMChainPopover, null, /* @__PURE__ */ React12__default.default.createElement(
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-text-base-contrast-54 hover:oui-text-base-contrast oui-h-3 oui-w-3 oui-relative oui-z-10",
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__ */ React12__default.default.createElement(
2080
+ ))))), /* @__PURE__ */ React19__default.default.createElement(
1539
2081
  "div",
1540
2082
  {
1541
2083
  className: ui.cn(
1542
- "oui-text-base-contrast-80 oui-text-2xs oui-font-semibold oui-cursor-pointer",
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] = React12.useState(false);
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__ */ React12__default.default.createElement("div", { className: "oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px] oui-w-full" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-items-center oui-justify-center oui-gap-1 " }, /* @__PURE__ */ React12__default.default.createElement(
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-w-[15px] oui-h-[15px]"
2111
+ className: "oui-size-[15px]"
1570
2112
  }
1571
- ), /* @__PURE__ */ React12__default.default.createElement(
2113
+ ), /* @__PURE__ */ React19__default.default.createElement(
1572
2114
  "div",
1573
2115
  {
1574
2116
  className: ui.cn(
1575
- "oui-text-base-contrast-80 oui-text-2xs oui-font-semibold oui-cursor-pointer",
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 { walletChainType } = useWalletConnectorPrivy();
2127
+ const {
2128
+ targetWalletType,
2129
+ setTargetWalletType,
2130
+ walletChainTypeConfig,
2131
+ connectorWalletType
2132
+ } = useWalletConnectorPrivy();
1586
2133
  const { walletEVM, walletSOL, linkedAccount } = usePrivyWallet();
1587
- const { namespace, switchWallet, disconnect } = useWallet2();
1588
- const renderWalletType = React12.useMemo(() => {
1589
- if (walletChainType === "onlyEVM" /* onlyEVM */) {
1590
- if (walletEVM && walletEVM.accounts.length) {
1591
- return "onlyEVM" /* onlyEVM */;
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
- return "noWallet" /* noWallet */;
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 "noWallet" /* noWallet */;
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
- t("connector.privy.logout")
1619
- )), renderWalletType === "noWallet" /* noWallet */ && /* @__PURE__ */ React12__default.default.createElement(NoWallet, null), renderWalletType === "both" /* both */ && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-flex-col oui-gap-5 oui-mt-5" }, walletChainType === "EVM_SOL" /* EVM_SOL */ && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(
1620
- WalletCard,
1621
- {
1622
- type: "EVM" /* EVM */,
1623
- address: walletEVM?.accounts[0].address ?? "",
1624
- isActive: namespace === types.ChainNamespace.evm,
1625
- onActiveChange: () => {
1626
- switchWallet(types.ChainNamespace.evm);
1627
- },
1628
- isPrivy: true,
1629
- isBoth: true
1630
- }
1631
- ), /* @__PURE__ */ React12__default.default.createElement(
1632
- WalletCard,
1633
- {
1634
- type: "SOL" /* SOL */,
1635
- address: walletSOL?.accounts[0].address ?? "",
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
- ), 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(CreateEVMWallet, null)))));
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: "oui-rounded-[6px] oui-bg-[#07080A] oui-px-2 oui-py-[11px] oui-flex oui-justify-center oui-items-center oui-gap-1 oui-cursor-pointer",
1758
- onClick: () => connect({ walletType: "privy", extraType: "twitter" })
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__ */ React12__default.default.createElement(
1761
- "img",
2180
+ /* @__PURE__ */ React19__default.default.createElement(
2181
+ ui.ExclamationFillIcon,
1762
2182
  {
1763
- src: "https://oss.orderly.network/static/sdk/privy/twitter.svg",
1764
- className: "oui-w-[18px] oui-h-[18px]"
2183
+ size: 14,
2184
+ className: "oui-mt-[2px] oui-size-[14px] oui-shrink-0 oui-text-warning-darken"
1765
2185
  }
1766
2186
  ),
1767
- /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-text-base-contrast oui-text-2xs" }, t("connector.privy.twitter"))
1768
- )
1769
- ), isDesktop && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-h-3 oui-flex oui-justify-center oui-mt-4" }, /* @__PURE__ */ React12__default.default.createElement(
1770
- "img",
1771
- {
1772
- src: "https://oss.orderly.network/static/sdk/privy/privy-logo.png",
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
- return /* @__PURE__ */ React12__default.default.createElement("div", { className: ui.cn("oui-flex oui-flex-col oui-gap-4", "md:oui-gap-5") }, !connectorWalletType.disablePrivy && /* @__PURE__ */ React12__default.default.createElement(
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
- ), walletChainType === "EVM_SOL" /* EVM_SOL */ && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, !connectorWalletType.disableWagmi && /* @__PURE__ */ React12__default.default.createElement(
1820
- EVMConnectArea,
1821
- {
1822
- connect: (connector) => handleConnect({
1823
- walletType: "EVM" /* EVM */,
1824
- connector
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
- ), !connectorWalletType.disableSolana && /* @__PURE__ */ React12__default.default.createElement(
1828
- SOLConnectArea,
1829
- {
1830
- connect: (walletAdapter) => handleConnect({
1831
- walletType: "SOL" /* SOL */,
1832
- walletAdapter
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
- )), walletChainType === "onlyEVM" /* onlyEVM */ && /* @__PURE__ */ React12__default.default.createElement(
1836
- EVMConnectArea,
1837
- {
1838
- connect: (connector) => handleConnect({ walletType: "EVM" /* EVM */, connector })
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
- ), walletChainType === "onlySOL" /* onlySOL */ && /* @__PURE__ */ React12__default.default.createElement(
1841
- SOLConnectArea,
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
- connect: (walletAdapter) => handleConnect({
1844
- walletType: "SOL" /* SOL */,
1845
- walletAdapter
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__ */ React12__default.default.createElement("div", null, connectorKey === "privy" && /* @__PURE__ */ React12__default.default.createElement(RenderPrivyWallet, null), connectorKey !== "privy" && /* @__PURE__ */ React12__default.default.createElement(RenderNoPrivyWallet, null));
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 { termsOfUse, connectorWalletType } = useWalletConnectorPrivy();
1860
- const [connectorKey, setConnectorKey] = hooks.useLocalStorage(types.ConnectorKey, "");
1861
- const isConnected = React12.useMemo(() => {
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
- }, [isConnectedPrivy, isConnectedEvm, isConnectedSolana, connectorKey]);
2301
+ }, [
2302
+ isConnectedPrivy,
2303
+ isConnectedEvm,
2304
+ isConnectedSolana,
2305
+ isConnectedAbstract,
2306
+ connectorKey
2307
+ ]);
1875
2308
  const { isMobile } = ui.useScreen();
1876
- return /* @__PURE__ */ React12__default.default.createElement(Drawer, { isOpen: props.open, onClose: () => props.onChangeOpen(false) }, !isMobile && /* @__PURE__ */ React12__default.default.createElement(
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-z-0 oui-absolute -oui-top-[calc(100vh/2)] oui-h-[100vh] oui-left-[50px] oui-right-[50px]",
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__ */ React12__default.default.createElement("div", { className: "oui-z-10 oui-relative" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-flex oui-justify-between oui-items-center oui-mb-4 md:oui-mb-5" }, /* @__PURE__ */ React12__default.default.createElement(
1886
- "div",
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 oui-w-5 oui-h-5 hover:oui-text-base-contrast-80",
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__ */ React12__default.default.createElement(MyWallet, null) : /* @__PURE__ */ React12__default.default.createElement(ConnectWallet, null)), !isConnected && /* @__PURE__ */ React12__default.default.createElement("div", { className: "oui-z-10 oui-text-base-contrast-80 oui-text-center oui-text-2xs oui-relative oui-font-semibold" }, /* @__PURE__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
2345
+ /* @__PURE__ */ React19__default.default.createElement(
1907
2346
  "a",
1908
2347
  {
2348
+ key: "termsOfUse",
1909
2349
  href: termsOfUse,
1910
- className: "oui-cursor-pointer oui-underline oui-text-primary",
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__ */ React12__default.default.createElement(RenderUserCenter, { state, disabledConnect: props.disabledConnect });
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__ */ React12__default.default.createElement(RenderUserCenter, { state, disabledConnect: props.disabledConnect });
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(ui.Text.formatted, { rule: "address", className: "oui-text-[rgba(0,0,0,.88)]" }, ui.formatAddress(state.address, [4, 4]))
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__ */ React12__default.default.createElement(
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: "wallet-connect-button",
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__ */ React12__default.default.createElement(
2421
+ return /* @__PURE__ */ React19__default.default.createElement(
1970
2422
  uiConnector.AuthGuard,
1971
2423
  {
1972
2424
  buttonProps: {
1973
- size: "sm"
2425
+ size: "md"
1974
2426
  }
1975
2427
  },
1976
- /* @__PURE__ */ React12__default.default.createElement("div", { onClick: () => connect() }, /* @__PURE__ */ React12__default.default.createElement(
2428
+ /* @__PURE__ */ React19__default.default.createElement("div", { onClick: () => connect() }, /* @__PURE__ */ React19__default.default.createElement(
1977
2429
  ui.Button,
1978
2430
  {
1979
- size: "sm",
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-2"
2435
+ className: "oui-px-2 oui-flex oui-items-center oui-justify-center oui-gap-1"
1984
2436
  },
1985
- linkedAccount && /* @__PURE__ */ React12__default.default.createElement(
2437
+ linkedAccount && /* @__PURE__ */ React19__default.default.createElement(
1986
2438
  RenderPrivyTypeIcon,
1987
2439
  {
1988
2440
  type: linkedAccount.type,
1989
- size: 18,
2441
+ size: 14,
1990
2442
  black: true
1991
2443
  }
1992
2444
  ),
1993
- /* @__PURE__ */ React12__default.default.createElement(
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(wallet.accounts[0].address)
2451
+ ui.formatAddress(userAddress)
2000
2452
  )
2001
2453
  ))
2002
2454
  );
2003
2455
  }
2004
- return /* @__PURE__ */ React12__default.default.createElement("div", { onClick: () => connect() }, /* @__PURE__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(
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__ */ React12__default.default.createElement(ui.Text.formatted, { rule: "address", className: "oui-text-[rgba(0,0,0,.88)]" }, ui.formatAddress(wallet.accounts[0].address))
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__ */ React12__default.default.createElement(UserCenter, { ...props });
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__ */ React12__default.default.createElement(MwebUserCenter, { ...props });
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, setTargetNamespace } = useWalletConnectorPrivy();
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
- setTargetNamespace(void 0);
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 = React12.useCallback(async () => {
2505
+ const disconnect = React19.useCallback(async () => {
2054
2506
  return Promise.resolve([]);
2055
2507
  }, [wallet]);
2056
- const value = React12.useMemo(
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__ */ React12__default.default.createElement(hooks.WalletConnectorContext.Provider, { value }, /* @__PURE__ */ React12__default.default.createElement(
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 = React12.useMemo(() => {
2554
+ const config = React19.useMemo(() => {
2087
2555
  const chains = initChains;
2088
2556
  return {
2089
- loginMethods: privyConfig.config?.loginMethods || ["email", "google", "twitter"],
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__ */ React12__default.default.createElement(reactAuth.PrivyProvider, { appId: privyConfig.appid, config }, children);
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 = React12.useMemo(() => {
2606
+ const wallets = React19.useMemo(() => {
2123
2607
  return walletsProp ?? [new walletAdapterWallets.PhantomWalletAdapter()];
2124
2608
  }, [walletsProp]);
2125
- React12.useEffect(() => {
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__ */ React12__default.default.createElement(walletAdapterReact.WalletProvider, { wallets, onError }, children);
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] = React12.useState(() => new reactQuery.QueryClient());
2150
- const [config, setConfig] = React12.useState(
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__ */ React12__default.default.createElement(WagmiExport.WagmiProvider, { config, initialState }, /* @__PURE__ */ React12__default.default.createElement(reactQuery.QueryClientProvider, { client: queryClient }, children));
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 walletConnectorPrivyContext = React12.createContext({
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
- targetNamespace: void 0,
2203
- setTargetNamespace: () => {
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 = () => React12.useContext(walletConnectorPrivyContext);
2733
+ var useWalletConnectorPrivy = () => React19.useContext(WalletConnectorPrivyContext);
2220
2734
  function WalletConnectorPrivyProvider(props) {
2221
- const [walletChainType, setWalletChainType] = React12.useState(
2735
+ const [walletChainType, setWalletChainType] = React19.useState(
2222
2736
  "EVM_SOL" /* EVM_SOL */
2223
2737
  );
2224
- const [termsOfUse] = React12.useState(props.termsOfUse);
2225
- const [network, setNetwork] = React12.useState(props.network);
2226
- const [initChains, setInitChains] = React12.useState([]);
2227
- const [mainnetChains, setMainnetChains] = React12.useState([]);
2228
- const [testnetChains, setTestnetChains] = React12.useState([]);
2229
- const initRef = React12.useRef(false);
2230
- const [openConnectDrawer, setOpenConnectDrawer] = React12.useState(false);
2231
- const [targetNamespace, setTargetNamespace] = React12.useState();
2232
- const [solanaInfo, setSolanaInfo] = React12.useState(null);
2233
- const connectorWalletType = React12.useMemo(() => {
2234
- let type = {
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, and Solana are disabled. Please enable at least one of them."
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 = React12.useMemo(
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
- targetNamespace,
2323
- setTargetNamespace,
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
- targetNamespace,
2340
- setTargetNamespace,
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
- React12.useEffect(() => {
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__ */ React12__default.default.createElement(walletConnectorPrivyContext.Provider, { value }, /* @__PURE__ */ React12__default.default.createElement(ui.TooltipProvider, { delayDuration: 300 }, /* @__PURE__ */ React12__default.default.createElement(
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;