@algobright/solana-connector 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,15 +2,15 @@
2
2
 
3
3
  // src/components/ConnectButton/ConnectButton.tsx
4
4
  import { useState as useState4 } from "react";
5
- import styles9 from "./ConnectButton.module-O3M32YJK.module.css";
6
- import { useConnector as useConnector2 } from "@solana/connector";
5
+ import styles9 from "./ConnectButton.module-AR6WQXQS.module.css";
6
+ import { useConnector as useConnector3 } from "@solana/connector";
7
7
 
8
8
  // src/components/shared/Button/Button.tsx
9
- import * as React from "react";
9
+ import { forwardRef } from "react";
10
10
  import { Button as BaseButton } from "@base-ui/react/button";
11
- import styles from "./Button.module-HQNNX6IB.module.css";
11
+ import styles from "./Button.module-QCTUNBHA.module.css";
12
12
  import { jsx } from "react/jsx-runtime";
13
- var Button = React.forwardRef(
13
+ var Button = forwardRef(
14
14
  ({ className, variant = "default", size = "default", ...props }, ref) => {
15
15
  return /* @__PURE__ */ jsx(
16
16
  BaseButton,
@@ -48,17 +48,17 @@ import { useEffect, useState as useState2, useSyncExternalStore } from "react";
48
48
  import styles6 from "./WalletModal.module-ZRTJGOQY.module.css";
49
49
 
50
50
  // src/components/shared/Dialog/Dialog.tsx
51
- import * as React2 from "react";
52
51
  import { Dialog as BaseDialog } from "@base-ui/react/dialog";
53
52
  import { X } from "lucide-react";
54
53
  import styles2 from "./Dialog.module-AYJTMDAD.module.css";
55
54
  import clsx from "clsx";
55
+ import { forwardRef as forwardRef2 } from "react";
56
56
  import { jsx as jsx3, jsxs } from "react/jsx-runtime";
57
57
  var Dialog = BaseDialog.Root;
58
58
  var DialogTrigger = BaseDialog.Trigger;
59
59
  var DialogPortal = BaseDialog.Portal;
60
60
  var DialogClose = BaseDialog.Close;
61
- var DialogBackdrop = React2.forwardRef(
61
+ var DialogBackdrop = forwardRef2(
62
62
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
63
63
  BaseDialog.Backdrop,
64
64
  {
@@ -69,7 +69,7 @@ var DialogBackdrop = React2.forwardRef(
69
69
  )
70
70
  );
71
71
  DialogBackdrop.displayName = "DialogBackdrop";
72
- var DialogContent = React2.forwardRef(
72
+ var DialogContent = forwardRef2(
73
73
  ({ className, children, theme, showCloseButton = true, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
74
74
  /* @__PURE__ */ jsx3(DialogBackdrop, { "data-theme": theme }),
75
75
  /* @__PURE__ */ jsxs(
@@ -92,7 +92,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx3("div", { cl
92
92
  DialogHeader.displayName = "DialogHeader";
93
93
  var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx3("div", { className: `${styles2.footer} ${className || ""}`, ...props });
94
94
  DialogFooter.displayName = "DialogFooter";
95
- var DialogTitle = React2.forwardRef(
95
+ var DialogTitle = forwardRef2(
96
96
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
97
97
  BaseDialog.Title,
98
98
  {
@@ -103,7 +103,7 @@ var DialogTitle = React2.forwardRef(
103
103
  )
104
104
  );
105
105
  DialogTitle.displayName = "DialogTitle";
106
- var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
106
+ var DialogDescription = forwardRef2(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
107
107
  BaseDialog.Description,
108
108
  {
109
109
  ref,
@@ -367,12 +367,12 @@ var CustomQRCode_default = CustomQRCode;
367
367
  import { SiWalletconnect } from "react-icons/si";
368
368
 
369
369
  // src/components/shared/Collapsible/Collapsible.tsx
370
- import * as React3 from "react";
371
370
  import { Collapsible as BaseCollapsible } from "@base-ui/react/collapsible";
372
371
  import styles4 from "./Collapsible.module-F4VIL5FH.module.css";
372
+ import { forwardRef as forwardRef3 } from "react";
373
373
  import { jsx as jsx5 } from "react/jsx-runtime";
374
374
  var Collapsible = BaseCollapsible.Root;
375
- var CollapsibleTrigger = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
375
+ var CollapsibleTrigger = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
376
376
  BaseCollapsible.Trigger,
377
377
  {
378
378
  ref,
@@ -381,7 +381,7 @@ var CollapsibleTrigger = React3.forwardRef(({ className, ...props }, ref) => /*
381
381
  }
382
382
  ));
383
383
  CollapsibleTrigger.displayName = "CollapsibleTrigger";
384
- var CollapsibleContent = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
384
+ var CollapsibleContent = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
385
385
  BaseCollapsible.Panel,
386
386
  {
387
387
  ref,
@@ -428,11 +428,9 @@ function WalletModal(props) {
428
428
  CN_Modal,
429
429
  theme = "light",
430
430
  open,
431
- onOpenChange,
432
- walletConnectUri,
433
- onClearWalletConnectUri
431
+ onOpenChange
434
432
  } = props;
435
- const { walletStatus: { status }, isConnecting, connectorId, connectors, connectWallet, disconnectWallet } = useConnector();
433
+ const { walletConnectUri, clearWalletConnectUri, walletStatus: { status }, isConnecting, connectorId, connectors, connectWallet, disconnectWallet } = useConnector();
436
434
  const [connectingConnectorId, setConnectingConnectorId] = useState2(null);
437
435
  const [isOtherWalletsOpen, setIsOtherWalletsOpen] = useState2(false);
438
436
  const [errorConnectorId, setErrorConnectorId] = useState2(null);
@@ -458,7 +456,7 @@ function WalletModal(props) {
458
456
  const walletConnectConnector = (_a = connectors.find((c) => c.name === "WalletConnect")) != null ? _a : null;
459
457
  const isWalletConnectFlow = !!walletConnectConnector && (connectingConnectorId === walletConnectConnector.id || status === "connecting" && connectorId === walletConnectConnector.id) || !!walletConnectUri;
460
458
  function cancelConnection() {
461
- onClearWalletConnectUri == null ? void 0 : onClearWalletConnectUri();
459
+ clearWalletConnectUri == null ? void 0 : clearWalletConnectUri();
462
460
  setConnectingConnectorId(null);
463
461
  disconnectWallet().catch(() => {
464
462
  });
@@ -472,7 +470,7 @@ function WalletModal(props) {
472
470
  setConnectingConnectorId(connector.id);
473
471
  try {
474
472
  if (connector.name === "WalletConnect") {
475
- onClearWalletConnectUri == null ? void 0 : onClearWalletConnectUri();
473
+ clearWalletConnectUri == null ? void 0 : clearWalletConnectUri();
476
474
  }
477
475
  await connectWallet(connector.id);
478
476
  localStorage.setItem("recentlyConnectedConnectorId", connector.id);
@@ -810,14 +808,14 @@ var WalletModal_default2 = WalletModal_default;
810
808
  import clsx4 from "clsx";
811
809
 
812
810
  // src/components/shared/Menu/Menu.tsx
813
- import * as React4 from "react";
814
811
  import { Menu as BaseMenu } from "@base-ui/react/menu";
815
812
  import styles7 from "./Menu.module-6ATSLATI.module.css";
813
+ import { forwardRef as forwardRef4 } from "react";
816
814
  import { jsx as jsx8 } from "react/jsx-runtime";
817
815
  var Menu = BaseMenu.Root;
818
816
  var MenuPortal = BaseMenu.Portal;
819
817
  var MenuGroup = BaseMenu.Group;
820
- var MenuTrigger = React4.forwardRef(
818
+ var MenuTrigger = forwardRef4(
821
819
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
822
820
  BaseMenu.Trigger,
823
821
  {
@@ -828,11 +826,11 @@ var MenuTrigger = React4.forwardRef(
828
826
  )
829
827
  );
830
828
  MenuTrigger.displayName = "MenuTrigger";
831
- var MenuPositioner = React4.forwardRef(
829
+ var MenuPositioner = forwardRef4(
832
830
  ({ sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx8(BaseMenu.Positioner, { ref, sideOffset, ...props })
833
831
  );
834
832
  MenuPositioner.displayName = "MenuPositioner";
835
- var MenuPopup = React4.forwardRef(
833
+ var MenuPopup = forwardRef4(
836
834
  ({ className, theme, ...props }, ref) => /* @__PURE__ */ jsx8(
837
835
  BaseMenu.Popup,
838
836
  {
@@ -844,7 +842,7 @@ var MenuPopup = React4.forwardRef(
844
842
  )
845
843
  );
846
844
  MenuPopup.displayName = "MenuPopup";
847
- var MenuItem = React4.forwardRef(
845
+ var MenuItem = forwardRef4(
848
846
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
849
847
  BaseMenu.Item,
850
848
  {
@@ -855,11 +853,11 @@ var MenuItem = React4.forwardRef(
855
853
  )
856
854
  );
857
855
  MenuItem.displayName = "MenuItem";
858
- var MenuSeparator = React4.forwardRef(
856
+ var MenuSeparator = forwardRef4(
859
857
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx8(BaseMenu.Separator, { ref, className: `${styles7.separator} ${className || ""}`, ...props })
860
858
  );
861
859
  MenuSeparator.displayName = "MenuSeparator";
862
- var MenuGroupLabel = React4.forwardRef(
860
+ var MenuGroupLabel = forwardRef4(
863
861
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx8(BaseMenu.GroupLabel, { ref, className: `${styles7.groupLabel} ${className || ""}`, ...props })
864
862
  );
865
863
  MenuGroupLabel.displayName = "MenuGroupLabel";
@@ -873,7 +871,7 @@ import { isAddress } from "@solana/kit";
873
871
  import styles8 from "./WalletDropdown.module-DOK7CUOQ.module.css";
874
872
  import { motion } from "motion/react";
875
873
  import { Check as Check2, ChevronLeft as ChevronLeft2, Copy as Copy2, Globe, LogOut, RefreshCw } from "lucide-react";
876
- import { ClusterElement, DisconnectElement, useConnectorClient } from "@solana/connector";
874
+ import { ClusterElement, DisconnectElement, useConnector as useConnector2, useConnectorClient } from "@solana/connector";
877
875
  import { clsx as clsx3 } from "clsx";
878
876
 
879
877
  // src/utils/fetchBalance.tsx
@@ -910,7 +908,10 @@ async function getTokenBalance(client, pubkey, mintAddress) {
910
908
  const pubkeyAddress = address(pubkey);
911
909
  const mintPubkey = address(mintAddress);
912
910
  const rpc = createSolanaRpc(rpcUrl);
913
- const mintInfo = await rpc.getAccountInfo(mintPubkey).send();
911
+ const mintInfo = await rpc.getAccountInfo(
912
+ mintPubkey,
913
+ { encoding: "base64" }
914
+ ).send();
914
915
  const ownerProgram = (_a = mintInfo.value) == null ? void 0 : _a.owner;
915
916
  if (!ownerProgram) {
916
917
  throw new Error("Failed to fetch mint account info");
@@ -926,7 +927,6 @@ async function getTokenBalance(client, pubkey, mintAddress) {
926
927
  balance = parseFloat(tokenBalance.value.uiAmountString);
927
928
  }
928
929
  } catch (error) {
929
- console.error("Error fetching token balance:", error);
930
930
  } finally {
931
931
  return balance;
932
932
  }
@@ -943,23 +943,24 @@ var networkColor = {
943
943
  function WalletDropdown(props) {
944
944
  const client = useConnectorClient();
945
945
  const {
946
- CN_ConnectButton,
947
- selectedAccount,
948
- walletIcon,
949
- walletName,
950
- theme,
951
- allowNetworkSwitch,
952
- showSolBalance,
946
+ CN_DropdownMenu,
947
+ theme = "light",
948
+ allowNetworkSwitch = true,
949
+ showSolBalance = true,
953
950
  showDefaultToken
954
951
  } = props;
955
952
  const [view, setView] = useState3("wallet");
956
953
  const [copied, setCopied] = useState3(false);
954
+ const { account, connector } = useConnector2();
957
955
  const fetchingSolBalance = useRef(false);
958
956
  const [isFetchingBalance, setIsFetchingBalance] = useState3(false);
959
957
  const fetchingDefaultToken = useRef(false);
960
958
  const [isFetchingDefaultTokenBalance, setIsFetchingDefaultTokenBalance] = useState3(false);
961
959
  const [solBalance, setSolBalance] = useState3(null);
962
960
  const [defaultTokenBalance, setDefaultTokenBalance] = useState3(null);
961
+ const selectedAccount = account || "";
962
+ const walletName = (connector == null ? void 0 : connector.name) || "Unknown Wallet";
963
+ const walletIcon = (connector == null ? void 0 : connector.icon) || void 0;
963
964
  const shortAddress = `${selectedAccount.slice(0, 4)}...${selectedAccount.slice(-4)}`;
964
965
  async function handleCopy() {
965
966
  try {
@@ -1010,7 +1011,7 @@ function WalletDropdown(props) {
1010
1011
  animate: { opacity: 1 },
1011
1012
  exit: { opacity: 0 },
1012
1013
  transition: { duration: 0.2 },
1013
- className: clsx3(styles8.WalletDropdown, CN_ConnectButton),
1014
+ className: clsx3(styles8.WalletDropdown, CN_DropdownMenu),
1014
1015
  "data-theme": theme,
1015
1016
  children: [
1016
1017
  /* @__PURE__ */ jsxs4("div", { className: styles8.Header, children: [
@@ -1155,7 +1156,7 @@ function WalletDropdown(props) {
1155
1156
  animate: { opacity: 1 },
1156
1157
  exit: { opacity: 0 },
1157
1158
  transition: { duration: 0.2 },
1158
- className: clsx3(styles8.WalletDropdown, CN_ConnectButton),
1159
+ className: clsx3(styles8.WalletDropdown, CN_DropdownMenu),
1159
1160
  "data-theme": theme,
1160
1161
  children: [
1161
1162
  /* @__PURE__ */ jsxs4("div", { className: styles8.NetworkHeader, children: [
@@ -1178,7 +1179,7 @@ function WalletDropdown(props) {
1178
1179
  {
1179
1180
  render: ({ cluster, clusters, setCluster }) => {
1180
1181
  const currentClusterId = (cluster == null ? void 0 : cluster.id) || "solana:mainnet";
1181
- return /* @__PURE__ */ jsx9("div", { className: styles8.networkOptions, children: clusters.map((network, index) => {
1182
+ return /* @__PURE__ */ jsx9("div", { className: styles8.networkOptions, children: clusters.map((network) => {
1182
1183
  const isSelected = currentClusterId === network.id;
1183
1184
  return /* @__PURE__ */ jsxs4(
1184
1185
  "div",
@@ -1236,7 +1237,7 @@ function ConnectButton(props) {
1236
1237
  showDefaultToken
1237
1238
  } = props;
1238
1239
  const [isModalOpen, setIsModalOpen] = useState4(false);
1239
- const { isConnected, isConnecting, account, connector, walletConnectUri, clearWalletConnectUri } = useConnector2();
1240
+ const { isConnected, isConnecting, account, connector, walletConnectUri, clearWalletConnectUri } = useConnector3();
1240
1241
  if (isConnected && account && connector) {
1241
1242
  const shortAddress = `${account.slice(0, 4)}...${account.slice(-4)}`;
1242
1243
  const walletIcon = connector.icon || void 0;
@@ -1267,10 +1268,7 @@ function ConnectButton(props) {
1267
1268
  /* @__PURE__ */ jsx10(MenuPortal, { children: /* @__PURE__ */ jsx10(MenuPositioner, { sideOffset: 8, align: "end", children: /* @__PURE__ */ jsx10(MenuPopup, { theme, children: /* @__PURE__ */ jsx10(
1268
1269
  WalletDropdown_default2,
1269
1270
  {
1270
- CN_ConnectButton: CN_DropdownMenu,
1271
- selectedAccount: account,
1272
- walletIcon,
1273
- walletName: connector.name,
1271
+ CN_DropdownMenu,
1274
1272
  allowNetworkSwitch: true,
1275
1273
  theme,
1276
1274
  showSolBalance,
@@ -1305,9 +1303,7 @@ function ConnectButton(props) {
1305
1303
  {
1306
1304
  theme,
1307
1305
  open: isModalOpen,
1308
- onOpenChange,
1309
- walletConnectUri,
1310
- onClearWalletConnectUri: clearWalletConnectUri
1306
+ onOpenChange
1311
1307
  }
1312
1308
  )
1313
1309
  ] });