@b3dotfun/sdk 0.0.3 → 0.0.4-alpha.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.
Files changed (34) hide show
  1. package/dist/cjs/anyspend/index.js +1 -0
  2. package/dist/cjs/anyspend/react/components/index.d.ts +6 -5
  3. package/dist/cjs/anyspend/react/components/index.js +13 -11
  4. package/dist/cjs/anyspend/react/components/webview/WebviewOnrampPayment.d.ts +11 -0
  5. package/dist/cjs/anyspend/react/components/webview/WebviewOnrampPayment.js +93 -0
  6. package/dist/cjs/global-account/react/hooks/useTokenFromUrl.d.ts +1 -1
  7. package/dist/cjs/global-account/react/hooks/useTokenFromUrl.js +51 -13
  8. package/dist/cjs/shared/constants/chains/supported.d.ts +14 -4
  9. package/dist/cjs/shared/constants/chains/supported.js +11 -8
  10. package/dist/cjs/shared/generated/coingecko-chains.json +1072 -0
  11. package/dist/esm/anyspend/index.js +1 -0
  12. package/dist/esm/anyspend/react/components/index.d.ts +6 -5
  13. package/dist/esm/anyspend/react/components/index.js +6 -5
  14. package/dist/esm/anyspend/react/components/webview/WebviewOnrampPayment.d.ts +11 -0
  15. package/dist/esm/anyspend/react/components/webview/WebviewOnrampPayment.js +87 -0
  16. package/dist/esm/global-account/react/hooks/useTokenFromUrl.d.ts +1 -1
  17. package/dist/esm/global-account/react/hooks/useTokenFromUrl.js +51 -13
  18. package/dist/esm/shared/constants/chains/supported.d.ts +14 -4
  19. package/dist/esm/shared/constants/chains/supported.js +9 -7
  20. package/dist/esm/shared/generated/coingecko-chains.json +1072 -0
  21. package/dist/types/anyspend/react/components/index.d.ts +6 -5
  22. package/dist/types/anyspend/react/components/webview/WebviewOnrampPayment.d.ts +11 -0
  23. package/dist/types/global-account/react/hooks/useTokenFromUrl.d.ts +1 -1
  24. package/dist/types/shared/constants/chains/supported.d.ts +14 -4
  25. package/package.json +3 -3
  26. package/src/anyspend/index.ts +2 -0
  27. package/src/anyspend/react/components/index.ts +6 -5
  28. package/src/anyspend/react/components/webview/WebviewOnrampPayment.tsx +207 -0
  29. package/src/global-account/react/hooks/useTokenFromUrl.tsx +72 -14
  30. package/src/shared/constants/chains/supported.ts +23 -12
  31. package/src/shared/generated/coingecko-chains.json +1072 -0
  32. /package/dist/cjs/{generated → shared/generated}/chain-networks.json +0 -0
  33. /package/dist/esm/{generated → shared/generated}/chain-networks.json +0 -0
  34. /package/src/{generated → shared/generated}/chain-networks.json +0 -0
@@ -33,3 +33,4 @@ __exportStar(require("./constants"), exports);
33
33
  // Abis
34
34
  __exportStar(require("./abis/abi-usdc-base"), exports);
35
35
  __exportStar(require("./abis/erc20-staking"), exports);
36
+ console.log(`Test CICD`);
@@ -1,14 +1,15 @@
1
1
  export { AnySpend } from "./AnySpend";
2
+ export { AnySpendBuySpin } from "./AnySpendBuySpin";
2
3
  export { AnySpendCustom } from "./AnySpendCustom";
3
4
  export { AnySpendNFT } from "./AnySpendNFT";
4
5
  export { AnySpendNFTButton } from "./AnySpendNFTButton";
5
- export { AnySpendTournament } from "./AnySpendTournament";
6
6
  export { AnySpendStakeB3 } from "./AnySpendStakeB3";
7
- export { AnySpendBuySpin } from "./AnySpendBuySpin";
8
- export { OrderHistoryItem } from "./common/OrderHistoryItem";
9
- export { OrderHistory } from "./common/OrderHistory";
7
+ export { AnySpendTournament } from "./AnySpendTournament";
10
8
  export { OrderDetails } from "./common/OrderDetails";
9
+ export { OrderHistory } from "./common/OrderHistory";
10
+ export { OrderHistoryItem } from "./common/OrderHistoryItem";
11
+ export { OrderStatus } from "./common/OrderStatus";
11
12
  export { OrderToken } from "./common/OrderToken";
12
13
  export { OrderTokenAmount } from "./common/OrderTokenAmount";
13
- export { OrderStatus } from "./common/OrderStatus";
14
14
  export { TokenBalance } from "./common/TokenBalance";
15
+ export { WebviewOnrampPayment } from "./webview/WebviewOnrampPayment";
@@ -1,33 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TokenBalance = exports.OrderStatus = exports.OrderTokenAmount = exports.OrderToken = exports.OrderDetails = exports.OrderHistory = exports.OrderHistoryItem = exports.AnySpendBuySpin = exports.AnySpendStakeB3 = exports.AnySpendTournament = exports.AnySpendNFTButton = exports.AnySpendNFT = exports.AnySpendCustom = exports.AnySpend = void 0;
3
+ exports.WebviewOnrampPayment = exports.TokenBalance = exports.OrderTokenAmount = exports.OrderToken = exports.OrderStatus = exports.OrderHistoryItem = exports.OrderHistory = exports.OrderDetails = exports.AnySpendTournament = exports.AnySpendStakeB3 = exports.AnySpendNFTButton = exports.AnySpendNFT = exports.AnySpendCustom = exports.AnySpendBuySpin = exports.AnySpend = void 0;
4
4
  // Components
5
5
  var AnySpend_1 = require("./AnySpend");
6
6
  Object.defineProperty(exports, "AnySpend", { enumerable: true, get: function () { return AnySpend_1.AnySpend; } });
7
+ var AnySpendBuySpin_1 = require("./AnySpendBuySpin");
8
+ Object.defineProperty(exports, "AnySpendBuySpin", { enumerable: true, get: function () { return AnySpendBuySpin_1.AnySpendBuySpin; } });
7
9
  var AnySpendCustom_1 = require("./AnySpendCustom");
8
10
  Object.defineProperty(exports, "AnySpendCustom", { enumerable: true, get: function () { return AnySpendCustom_1.AnySpendCustom; } });
9
11
  var AnySpendNFT_1 = require("./AnySpendNFT");
10
12
  Object.defineProperty(exports, "AnySpendNFT", { enumerable: true, get: function () { return AnySpendNFT_1.AnySpendNFT; } });
11
13
  var AnySpendNFTButton_1 = require("./AnySpendNFTButton");
12
14
  Object.defineProperty(exports, "AnySpendNFTButton", { enumerable: true, get: function () { return AnySpendNFTButton_1.AnySpendNFTButton; } });
13
- var AnySpendTournament_1 = require("./AnySpendTournament");
14
- Object.defineProperty(exports, "AnySpendTournament", { enumerable: true, get: function () { return AnySpendTournament_1.AnySpendTournament; } });
15
15
  var AnySpendStakeB3_1 = require("./AnySpendStakeB3");
16
16
  Object.defineProperty(exports, "AnySpendStakeB3", { enumerable: true, get: function () { return AnySpendStakeB3_1.AnySpendStakeB3; } });
17
- var AnySpendBuySpin_1 = require("./AnySpendBuySpin");
18
- Object.defineProperty(exports, "AnySpendBuySpin", { enumerable: true, get: function () { return AnySpendBuySpin_1.AnySpendBuySpin; } });
17
+ var AnySpendTournament_1 = require("./AnySpendTournament");
18
+ Object.defineProperty(exports, "AnySpendTournament", { enumerable: true, get: function () { return AnySpendTournament_1.AnySpendTournament; } });
19
19
  // Common Components
20
- var OrderHistoryItem_1 = require("./common/OrderHistoryItem");
21
- Object.defineProperty(exports, "OrderHistoryItem", { enumerable: true, get: function () { return OrderHistoryItem_1.OrderHistoryItem; } });
22
- var OrderHistory_1 = require("./common/OrderHistory");
23
- Object.defineProperty(exports, "OrderHistory", { enumerable: true, get: function () { return OrderHistory_1.OrderHistory; } });
24
20
  var OrderDetails_1 = require("./common/OrderDetails");
25
21
  Object.defineProperty(exports, "OrderDetails", { enumerable: true, get: function () { return OrderDetails_1.OrderDetails; } });
22
+ var OrderHistory_1 = require("./common/OrderHistory");
23
+ Object.defineProperty(exports, "OrderHistory", { enumerable: true, get: function () { return OrderHistory_1.OrderHistory; } });
24
+ var OrderHistoryItem_1 = require("./common/OrderHistoryItem");
25
+ Object.defineProperty(exports, "OrderHistoryItem", { enumerable: true, get: function () { return OrderHistoryItem_1.OrderHistoryItem; } });
26
+ var OrderStatus_1 = require("./common/OrderStatus");
27
+ Object.defineProperty(exports, "OrderStatus", { enumerable: true, get: function () { return OrderStatus_1.OrderStatus; } });
26
28
  var OrderToken_1 = require("./common/OrderToken");
27
29
  Object.defineProperty(exports, "OrderToken", { enumerable: true, get: function () { return OrderToken_1.OrderToken; } });
28
30
  var OrderTokenAmount_1 = require("./common/OrderTokenAmount");
29
31
  Object.defineProperty(exports, "OrderTokenAmount", { enumerable: true, get: function () { return OrderTokenAmount_1.OrderTokenAmount; } });
30
- var OrderStatus_1 = require("./common/OrderStatus");
31
- Object.defineProperty(exports, "OrderStatus", { enumerable: true, get: function () { return OrderStatus_1.OrderStatus; } });
32
32
  var TokenBalance_1 = require("./common/TokenBalance");
33
33
  Object.defineProperty(exports, "TokenBalance", { enumerable: true, get: function () { return TokenBalance_1.TokenBalance; } });
34
+ var WebviewOnrampPayment_1 = require("./webview/WebviewOnrampPayment");
35
+ Object.defineProperty(exports, "WebviewOnrampPayment", { enumerable: true, get: function () { return WebviewOnrampPayment_1.WebviewOnrampPayment; } });
@@ -0,0 +1,11 @@
1
+ import { GetQuoteResponse, Token } from "../../../../anyspend";
2
+ interface WebviewOnrampPaymentProps {
3
+ srcAmountOnRamp: string;
4
+ recipientAddress?: string;
5
+ destinationToken: Token;
6
+ anyspendQuote: GetQuoteResponse | undefined;
7
+ onOrderCreated: (orderId: string) => void;
8
+ userId?: string;
9
+ }
10
+ export declare function WebviewOnrampPayment({ srcAmountOnRamp, recipientAddress, destinationToken, anyspendQuote, onOrderCreated, userId }: WebviewOnrampPaymentProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WebviewOnrampPayment = WebviewOnrampPayment;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const anyspend_1 = require("../../../../anyspend");
9
+ const react_1 = require("../../../../global-account/react");
10
+ const centerTruncate_1 = __importDefault(require("../../../../shared/utils/centerTruncate"));
11
+ const framer_motion_1 = require("framer-motion");
12
+ const lucide_react_1 = require("lucide-react");
13
+ const react_2 = require("react");
14
+ const sonner_1 = require("sonner");
15
+ const viem_1 = require("viem");
16
+ function WebviewOnrampPayment({ srcAmountOnRamp, recipientAddress, destinationToken, anyspendQuote, onOrderCreated, userId }) {
17
+ // Use a stable amount for geo onramp options to prevent unnecessary refetches
18
+ const [stableAmountForGeo, setStableAmountForGeo] = (0, react_2.useState)(srcAmountOnRamp);
19
+ const hasInitialized = (0, react_2.useRef)(false);
20
+ // Only update the stable amount on first render or when explicitly needed
21
+ (0, react_2.useEffect)(() => {
22
+ if (!hasInitialized.current && srcAmountOnRamp) {
23
+ setStableAmountForGeo(srcAmountOnRamp);
24
+ hasInitialized.current = true;
25
+ }
26
+ }, [srcAmountOnRamp]);
27
+ const { geoData, isStripeWeb2Supported, isLoading: isLoadingGeoOnramp } = (0, anyspend_1.useGeoOnrampOptions)(true, stableAmountForGeo);
28
+ console.log("isStripeWeb2Supported", isStripeWeb2Supported);
29
+ const { createOrder, isCreatingOrder } = (0, anyspend_1.useAnyspendCreateOnrampOrder)({
30
+ onSuccess: data => {
31
+ const orderId = data.data.id;
32
+ window.location.href = `${window.location.origin}/?orderId=${orderId}`;
33
+ },
34
+ onError: error => {
35
+ console.error(error);
36
+ sonner_1.toast.error("Failed to create order: " + error.message);
37
+ }
38
+ });
39
+ const handleContinueToPayment = async () => {
40
+ try {
41
+ if (!recipientAddress) {
42
+ sonner_1.toast.error("Please select a recipient");
43
+ return;
44
+ }
45
+ if (!srcAmountOnRamp || parseFloat(srcAmountOnRamp) <= 0) {
46
+ sonner_1.toast.error("Please enter a valid amount");
47
+ return;
48
+ }
49
+ if (!isStripeWeb2Supported) {
50
+ sonner_1.toast.error("Stripe credit card not available");
51
+ return;
52
+ }
53
+ if (!anyspendQuote) {
54
+ sonner_1.toast.error("Failed to get quote");
55
+ return;
56
+ }
57
+ const getDstToken = () => {
58
+ return {
59
+ ...destinationToken,
60
+ chainId: destinationToken.chainId,
61
+ address: destinationToken.address
62
+ };
63
+ };
64
+ createOrder({
65
+ isMainnet: true,
66
+ recipientAddress,
67
+ orderType: anyspend_1.OrderType.Swap,
68
+ dstChain: getDstToken().chainId,
69
+ dstToken: getDstToken(),
70
+ srcFiatAmount: srcAmountOnRamp,
71
+ onramp: {
72
+ vendor: anyspend_1.OnrampVendor.StripeWeb2,
73
+ paymentMethod: "",
74
+ country: geoData?.country || "US",
75
+ ipAddress: geoData?.ip,
76
+ redirectUrl: `${window.location.origin}${userId ? `?userId=${userId}` : ""}`
77
+ },
78
+ expectedDstAmount: anyspendQuote?.data?.currencyOut?.amount?.toString() || "0"
79
+ });
80
+ }
81
+ catch (err) {
82
+ console.error(err);
83
+ sonner_1.toast.error("Failed to create order: " + err.message);
84
+ }
85
+ };
86
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "mx-auto flex w-full max-w-[460px] flex-col gap-6", children: [(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h2", { className: "-mb-3 text-lg font-semibold", children: "Order summary" }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-b3-react-background border-b3-react-border flex flex-col gap-3 rounded-lg border p-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-b3-react-foreground/60", children: "Receiving" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [destinationToken.metadata?.logoURI && ((0, jsx_runtime_1.jsx)("img", { src: destinationToken.metadata.logoURI, alt: destinationToken.symbol, className: "h-6 w-6 rounded-full" })), (0, jsx_runtime_1.jsxs)("span", { className: "text-b3-react-foreground/80", children: [anyspendQuote?.data?.currencyOut?.amount
87
+ ? Number((0, viem_1.formatUnits)(BigInt(anyspendQuote.data.currencyOut.amount), destinationToken.decimals)).toFixed(4)
88
+ : "0", " ", destinationToken.symbol] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-b3-react-foreground/60", children: "Network" }), (0, jsx_runtime_1.jsx)("span", { className: "text-b3-react-foreground/80", children: (0, anyspend_1.getChainName)(destinationToken.chainId) })] }), recipientAddress && ((0, jsx_runtime_1.jsxs)(framer_motion_1.motion.div, { initial: false, animate: {
89
+ opacity: 1,
90
+ y: 0,
91
+ filter: "blur(0px)"
92
+ }, transition: { duration: 0.3, delay: 0.2, ease: "easeInOut" }, className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-b3-react-foreground/60", children: "Recipient" }), (0, jsx_runtime_1.jsx)("div", { className: "flex items-center gap-2", children: (0, jsx_runtime_1.jsx)("span", { className: "text-b3-react-foreground/80", children: (0, centerTruncate_1.default)(recipientAddress) }) })] })), (0, jsx_runtime_1.jsx)("div", { className: "border-b3-react-border border-t pt-3", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-b3-react-foreground font-semibold", children: "You Pay" }), (0, jsx_runtime_1.jsxs)("p", { className: "text-b3-react-foreground text-xl font-semibold", children: ["$", parseFloat(srcAmountOnRamp).toFixed(2)] })] }) })] })] }), isCreatingOrder ? ((0, jsx_runtime_1.jsxs)("div", { className: "bg-b3-react-background border-b3-react-border flex items-center justify-center gap-3 rounded-lg border p-6", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-4 w-4 animate-spin" }), (0, jsx_runtime_1.jsx)("span", { className: "text-as-primary/70", children: "Creating payment session..." })] })) : isLoadingGeoOnramp ? ((0, jsx_runtime_1.jsxs)("div", { className: "bg-b3-react-background border-b3-react-border flex items-center justify-center gap-3 rounded-lg border p-6", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-4 w-4 animate-spin" }), (0, jsx_runtime_1.jsx)("span", { className: "text-as-primary/70", children: "Loading payment options..." })] })) : ((0, jsx_runtime_1.jsx)("div", { className: "flex flex-col gap-4", children: (0, jsx_runtime_1.jsx)(react_1.Button, { onClick: handleContinueToPayment, disabled: isCreatingOrder || !isStripeWeb2Supported, className: "bg-as-brand hover:bg-as-brand/90 text-as-primary h-14 w-full rounded-xl text-lg font-medium", children: isCreatingOrder ? "Creating Payment..." : "Continue to Payment" }) }))] }));
93
+ }
@@ -10,7 +10,7 @@ interface UseTokenFromUrlOptions {
10
10
  prefix: string;
11
11
  }
12
12
  /**
13
- * Hook to parse token data from URL parameters.
13
+ * Hook to parse token data from URL parameters and fetch additional token info.
14
14
  * Looks for parameters: [prefix]Currency
15
15
  */
16
16
  export declare function useTokenFromUrl({ defaultToken, prefix }: UseTokenFromUrlOptions): Token;
@@ -2,29 +2,67 @@
2
2
  "use client";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.useTokenFromUrl = useTokenFromUrl;
5
+ const supported_1 = require("../../../shared/constants/chains/supported");
6
+ const react_query_1 = require("@tanstack/react-query");
5
7
  const navigation_1 = require("next/navigation");
8
+ async function fetchTokenInfo(network, address) {
9
+ const response = await fetch("https://api.b3.fun/tokens", {
10
+ method: "POST",
11
+ headers: {
12
+ "Content-Type": "application/json",
13
+ "X-Service-Method": "getCoinGeckoTokenInfo"
14
+ },
15
+ body: JSON.stringify({
16
+ network,
17
+ address
18
+ })
19
+ });
20
+ if (!response.ok) {
21
+ throw new Error("Failed to fetch token info");
22
+ }
23
+ return response.json();
24
+ }
6
25
  /**
7
- * Hook to parse token data from URL parameters.
26
+ * Hook to parse token data from URL parameters and fetch additional token info.
8
27
  * Looks for parameters: [prefix]Currency
9
28
  */
10
29
  function useTokenFromUrl({ defaultToken, prefix }) {
11
30
  const searchParams = (0, navigation_1.useSearchParams)();
12
- if (!searchParams) {
13
- return defaultToken;
14
- }
15
31
  // Get parameters from URL
16
- const currencyParam = searchParams.get(`${prefix}Currency`);
17
- const chainIdParam = searchParams.get(`${prefix}ChainId`);
18
- if (!currencyParam || !chainIdParam) {
32
+ const currencyParam = searchParams?.get(`${prefix}Currency`);
33
+ const chainIdParam = searchParams?.get(`${prefix}ChainId`);
34
+ // Determine if we should fetch token info
35
+ const shouldFetchToken = Boolean(currencyParam && chainIdParam && currencyParam.toLowerCase() !== defaultToken.address.toLowerCase());
36
+ // Determine network based on chainId
37
+ const network = chainIdParam ? (0, supported_1.getCoingeckoChainInfo)(Number(chainIdParam)).coingecko_id : "";
38
+ const { data: tokenInfo, isError } = (0, react_query_1.useQuery)({
39
+ queryKey: ["tokenInfo", network, currencyParam],
40
+ queryFn: () => fetchTokenInfo(network, currencyParam),
41
+ enabled: shouldFetchToken,
42
+ staleTime: Infinity,
43
+ gcTime: Infinity
44
+ });
45
+ // Return default token if no params or same as default
46
+ if (!shouldFetchToken) {
19
47
  return defaultToken;
20
48
  }
21
- // If the currency is the same as the default token, return that
22
- if (currencyParam.toLowerCase() === defaultToken.address.toLowerCase()) {
23
- return defaultToken;
49
+ // Return basic token info if API call fails or while loading
50
+ if (isError || !tokenInfo) {
51
+ return {
52
+ ...defaultToken,
53
+ address: currencyParam,
54
+ chainId: Number(chainIdParam)
55
+ };
24
56
  }
57
+ // Return enhanced token with API data
25
58
  return {
26
- ...defaultToken,
27
- address: currencyParam,
28
- chainId: Number(chainIdParam)
59
+ address: tokenInfo.data.attributes.address,
60
+ chainId: Number(chainIdParam),
61
+ name: tokenInfo.data.attributes.name,
62
+ symbol: tokenInfo.data.attributes.symbol,
63
+ decimals: tokenInfo.data.attributes.decimals,
64
+ metadata: {
65
+ logoURI: tokenInfo.data.attributes.image_url
66
+ }
29
67
  };
30
68
  }
@@ -43,12 +43,22 @@ export declare const supportedChainNetworks: {
43
43
  };
44
44
  _id: string | {};
45
45
  }[];
46
- export declare const b3Mainnet: import("viem").Chain;
47
- export declare const b3Testnet: import("viem").Chain;
46
+ export declare const coingeckoChains: Record<number, {
47
+ coingecko_id: string;
48
+ name: string;
49
+ native_coin_id: string;
50
+ }>;
51
+ export declare function getCoingeckoChainInfo(chainId: number): {
52
+ coingecko_id: string;
53
+ name: string;
54
+ native_coin_id: string;
55
+ };
56
+ export declare const b3Mainnet: import("viem").Chain | undefined;
57
+ export declare const b3Testnet: import("viem").Chain | undefined;
48
58
  export declare const baseMainnet: import("viem").Chain | undefined;
49
59
  export declare const b3MainnetThirdWeb: Readonly<import("thirdweb/dist/types/chains/types").ChainOptions & {
50
60
  rpc: string;
51
- }>;
61
+ }> | undefined;
52
62
  export declare const b3TestnetThirdWeb: Readonly<import("thirdweb/dist/types/chains/types").ChainOptions & {
53
63
  rpc: string;
54
- }>;
64
+ }> | undefined;
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.b3TestnetThirdWeb = exports.b3MainnetThirdWeb = exports.baseMainnet = exports.b3Testnet = exports.b3Mainnet = exports.supportedChainNetworks = exports.supportedChainsTW = exports.supportedChains = void 0;
6
+ exports.b3TestnetThirdWeb = exports.b3MainnetThirdWeb = exports.baseMainnet = exports.b3Testnet = exports.b3Mainnet = exports.coingeckoChains = exports.supportedChainNetworks = exports.supportedChainsTW = exports.supportedChains = void 0;
7
+ exports.getCoingeckoChainInfo = getCoingeckoChainInfo;
7
8
  const chain_transformers_1 = require("../../../shared/utils/chain-transformers");
8
9
  // Import the JSON directly
9
10
  // @ts-ignore
10
- const chain_networks_json_1 = __importDefault(require("../../../generated/chain-networks.json"));
11
- const invariant_1 = __importDefault(require("invariant"));
11
+ const chain_networks_json_1 = __importDefault(require("../../generated/chain-networks.json"));
12
+ // @ts-ignore
13
+ const coingecko_chains_json_1 = __importDefault(require("../../generated/coingecko-chains.json"));
12
14
  const chainNetworks = chain_networks_json_1.default;
13
15
  // Convert custom chains to Viem format
14
16
  const viemChains = chainNetworks.map(chain_transformers_1.toViemChain);
@@ -26,13 +28,14 @@ exports.supportedChainsTW = [
26
28
  ];
27
29
  // Original format from chain-networks.json
28
30
  exports.supportedChainNetworks = chainNetworks;
31
+ // CoinGecko chain mapping
32
+ exports.coingeckoChains = coingecko_chains_json_1.default;
33
+ // Helper function to get CoinGecko chain info
34
+ function getCoingeckoChainInfo(chainId) {
35
+ return exports.coingeckoChains[chainId];
36
+ }
29
37
  exports.b3Mainnet = exports.supportedChains.find(chain => chain.id === 8333);
30
- (0, invariant_1.default)(exports.b3Mainnet, "B3 mainnet chain not found in supported chains");
31
38
  exports.b3Testnet = exports.supportedChains.find(chain => chain.id === 1993);
32
- (0, invariant_1.default)(exports.b3Testnet, "B3 testnet chain not found in supported chains");
33
39
  exports.baseMainnet = exports.supportedChains.find(chain => chain.id === 8453);
34
- (0, invariant_1.default)(exports.baseMainnet, "Base mainnet chain not found in supported chains");
35
40
  exports.b3MainnetThirdWeb = exports.supportedChainsTW.find(chain => chain.id === 8333);
36
- (0, invariant_1.default)(exports.b3MainnetThirdWeb, "B3 mainnet chain not found in supported chains TW");
37
41
  exports.b3TestnetThirdWeb = exports.supportedChainsTW.find(chain => chain.id === 1993);
38
- (0, invariant_1.default)(exports.b3TestnetThirdWeb, "B3 testnet chain not found in supported chains TW");