@microcosmmoney/portal-react 3.9.0 → 3.10.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.
|
@@ -5,6 +5,7 @@ exports.MicrocosmWalletPage = MicrocosmWalletPage;
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const auth_react_1 = require("@microcosmmoney/auth-react");
|
|
8
|
+
const mainstream_tokens_1 = require("../../config/mainstream-tokens");
|
|
8
9
|
/* ── helpers ── */
|
|
9
10
|
const fmt = (n, d = 2) => n.toLocaleString('en-US', { minimumFractionDigits: d, maximumFractionDigits: d });
|
|
10
11
|
const fmtUSD = (n) => '$' + n.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
|
|
@@ -68,7 +69,11 @@ function LockPeriodCard({ lock, hideBalance }) {
|
|
|
68
69
|
return ((0, jsx_runtime_1.jsxs)("div", { className: "p-4 bg-neutral-800 rounded border border-neutral-700", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-start mb-3", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-xs text-neutral-400 tracking-wider mb-1", children: ["reason: ", lock.reason] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-2xl font-bold text-white font-mono", children: [hideBalance ? '****' : fmt(lock.amount), " MCC"] })] }), (0, jsx_runtime_1.jsx)("span", { className: "text-[10px] bg-cyan-400/20 text-cyan-400 border border-cyan-400/30 px-2 py-0.5 rounded font-mono", children: "LOCKED" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-1 text-sm", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-neutral-400", children: [(0, jsx_runtime_1.jsx)("span", { children: "lock_start" }), (0, jsx_runtime_1.jsx)("span", { className: "text-white", children: fmtDT(start) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-neutral-400", children: [(0, jsx_runtime_1.jsx)("span", { children: "lock_end" }), (0, jsx_runtime_1.jsx)("span", { className: "text-white", children: fmtDT(end) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between font-bold mt-2", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-neutral-400", children: "remaining" }), (0, jsx_runtime_1.jsxs)("span", { className: "text-cyan-400", children: [daysLeft, "d ", hoursLeft, "h"] })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "mt-3", children: (0, jsx_runtime_1.jsx)("div", { className: "bg-neutral-700 rounded-full h-2 overflow-hidden", children: (0, jsx_runtime_1.jsx)("div", { className: "bg-cyan-400 h-2 rounded-full transition-all duration-700", style: { width: `${progress}%` } }) }) })] }));
|
|
69
70
|
}
|
|
70
71
|
/* ── token icon ── */
|
|
71
|
-
function TokenIcon({ symbol, color }) {
|
|
72
|
+
function TokenIcon({ symbol, color, logoURI }) {
|
|
73
|
+
const [err, setErr] = (0, react_1.useState)(false);
|
|
74
|
+
if (logoURI && !err) {
|
|
75
|
+
return ((0, jsx_runtime_1.jsx)("img", { src: logoURI, alt: symbol, className: "w-10 h-10 rounded-full object-cover bg-neutral-800", onError: () => setErr(true) }));
|
|
76
|
+
}
|
|
72
77
|
return ((0, jsx_runtime_1.jsx)("div", { className: `w-10 h-10 rounded-full flex items-center justify-center text-white font-bold text-sm ${color}`, children: symbol.slice(0, 2) }));
|
|
73
78
|
}
|
|
74
79
|
function AssetList({ holdings, hideBalance, showWalletColumn, isLoading, }) {
|
|
@@ -79,7 +84,7 @@ function AssetList({ holdings, hideBalance, showWalletColumn, isLoading, }) {
|
|
|
79
84
|
return ((0, jsx_runtime_1.jsx)("div", { className: "text-center py-8 text-neutral-500", children: (0, jsx_runtime_1.jsx)("p", { className: "text-sm", children: "No valued assets found" }) }));
|
|
80
85
|
}
|
|
81
86
|
const gridCols = showWalletColumn ? 'grid-cols-4' : 'grid-cols-3';
|
|
82
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { className: `gap-4 py-2 px-4 border-b border-neutral-700 text-xs font-medium text-neutral-400 tracking-wider grid ${gridCols}`, children: [(0, jsx_runtime_1.jsx)("div", { children: "Token" }), showWalletColumn && (0, jsx_runtime_1.jsx)("div", { children: "Wallet" }), (0, jsx_runtime_1.jsx)("div", { className: "text-right", children: "Amount" }), (0, jsx_runtime_1.jsx)("div", { className: "text-right", children: "Valuation" })] }), (0, jsx_runtime_1.jsx)("div", { className: "divide-y divide-neutral-800", children: holdings.map((h, idx) => ((0, jsx_runtime_1.jsxs)("div", { className: `gap-4 py-3 px-4 items-center hover:bg-neutral-700 transition-colors rounded grid ${gridCols}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [(0, jsx_runtime_1.jsx)(TokenIcon, { symbol: h.symbol, color: h.color }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-white font-medium text-sm", children: h.symbol }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500", children: h.name })] })] }), showWalletColumn && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("code", { className: "text-xs text-neutral-400 font-mono", children: h.walletShort }), h.isPrimary && (0, jsx_runtime_1.jsx)("span", { className: "ml-1 text-[10px] text-cyan-400", children: "Primary" })] })), (0, jsx_runtime_1.jsx)("div", { className: "text-right", children: (0, jsx_runtime_1.jsx)("div", { className: "text-white text-sm font-mono", children: hideBalance ? '****' : fmt(h.balance, h.balance < 1 ? 6 : 4) }) }), (0, jsx_runtime_1.jsxs)("div", { className: "text-right", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-neutral-300 text-sm font-mono", children: hideBalance ? '****' : fmtUSD(h.usdValue) }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500", children: fmtUSD(h.price) })] })] }, `${h.symbol}-${h.wallet || idx}`))) })] }));
|
|
87
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { className: `gap-4 py-2 px-4 border-b border-neutral-700 text-xs font-medium text-neutral-400 tracking-wider grid ${gridCols}`, children: [(0, jsx_runtime_1.jsx)("div", { children: "Token" }), showWalletColumn && (0, jsx_runtime_1.jsx)("div", { children: "Wallet" }), (0, jsx_runtime_1.jsx)("div", { className: "text-right", children: "Amount" }), (0, jsx_runtime_1.jsx)("div", { className: "text-right", children: "Valuation" })] }), (0, jsx_runtime_1.jsx)("div", { className: "divide-y divide-neutral-800", children: holdings.map((h, idx) => ((0, jsx_runtime_1.jsxs)("div", { className: `gap-4 py-3 px-4 items-center hover:bg-neutral-700 transition-colors rounded grid ${gridCols}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [(0, jsx_runtime_1.jsx)(TokenIcon, { symbol: h.symbol, color: h.color, logoURI: h.logoURI }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-white font-medium text-sm", children: h.symbol }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500", children: h.name })] })] }), showWalletColumn && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("code", { className: "text-xs text-neutral-400 font-mono", children: h.walletShort }), h.isPrimary && (0, jsx_runtime_1.jsx)("span", { className: "ml-1 text-[10px] text-cyan-400", children: "Primary" })] })), (0, jsx_runtime_1.jsx)("div", { className: "text-right", children: (0, jsx_runtime_1.jsx)("div", { className: "text-white text-sm font-mono", children: hideBalance ? '****' : fmt(h.balance, h.balance < 1 ? 6 : 4) }) }), (0, jsx_runtime_1.jsxs)("div", { className: "text-right", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-neutral-300 text-sm font-mono", children: hideBalance ? '****' : fmtUSD(h.usdValue) }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500", children: fmtUSD(h.price) })] })] }, `${h.symbol}-${h.wallet || idx}`))) })] }));
|
|
83
88
|
}
|
|
84
89
|
function MicrocosmWalletPage({ basePath = '', onNavigate }) {
|
|
85
90
|
const { balance: mccData, price: mccPrice, loading: mccLoading, refresh: refreshMCC } = (0, auth_react_1.useMCC)(60000);
|
|
@@ -103,18 +108,28 @@ function MicrocosmWalletPage({ basePath = '', onNavigate }) {
|
|
|
103
108
|
const mask = (v) => (hideBalance ? '****' : v);
|
|
104
109
|
const resolvePath = (p) => (basePath ? `${basePath.replace(/\/$/, '')}${p}` : p);
|
|
105
110
|
/* ── build on-chain asset holdings from multiBalance ── */
|
|
106
|
-
const TOKEN_META = {
|
|
107
|
-
SOL: { name: 'Solana', color: 'bg-purple-600' },
|
|
108
|
-
MCC: { name: 'Microcosm Coin', color: 'bg-cyan-600' },
|
|
109
|
-
USDC: { name: 'USD Coin', color: 'bg-blue-600' },
|
|
110
|
-
USDT: { name: 'Tether', color: 'bg-green-600' },
|
|
111
|
-
};
|
|
112
111
|
const TOKEN_PRICES = {
|
|
113
|
-
SOL: 0,
|
|
112
|
+
SOL: 0,
|
|
114
113
|
MCC: price,
|
|
114
|
+
MCD: 0,
|
|
115
115
|
USDC: 1,
|
|
116
116
|
USDT: 1,
|
|
117
117
|
};
|
|
118
|
+
const TRACKED_SYMBOLS = [
|
|
119
|
+
['SOL', (p) => Number(p?.sol_balance ?? p?.sol?.balance ?? 0)],
|
|
120
|
+
['MCC', (p) => Number(p?.mcc_balance ?? 0)],
|
|
121
|
+
['MCD', (p) => Number(p?.mcd_balance ?? 0)],
|
|
122
|
+
['USDC', (p) => Number(p?.usdc_balance ?? 0)],
|
|
123
|
+
['USDT', (p) => Number(p?.usdt_balance ?? 0)],
|
|
124
|
+
];
|
|
125
|
+
const lookupMeta = (sym) => {
|
|
126
|
+
const cfg = mainstream_tokens_1.TOKEN_BY_SYMBOL.get(sym);
|
|
127
|
+
return {
|
|
128
|
+
name: cfg?.name ?? sym,
|
|
129
|
+
color: cfg?.color ?? 'bg-neutral-600',
|
|
130
|
+
logoURI: cfg?.logoURI,
|
|
131
|
+
};
|
|
132
|
+
};
|
|
118
133
|
function buildHoldings(walletAddr) {
|
|
119
134
|
if (!multiBalance)
|
|
120
135
|
return [];
|
|
@@ -124,24 +139,19 @@ function MicrocosmWalletPage({ basePath = '', onNavigate }) {
|
|
|
124
139
|
: multiBalance;
|
|
125
140
|
for (const wb of sources) {
|
|
126
141
|
const p = wb.portfolio || {};
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
['MCC', p.mcc_balance ?? 0],
|
|
130
|
-
['USDC', p.usdc_balance ?? 0],
|
|
131
|
-
['USDT', p.usdt_balance ?? 0],
|
|
132
|
-
];
|
|
133
|
-
for (const [sym, bal] of entries) {
|
|
142
|
+
for (const [sym, get] of TRACKED_SYMBOLS) {
|
|
143
|
+
const bal = get(p);
|
|
134
144
|
if (bal <= 0)
|
|
135
145
|
continue;
|
|
136
|
-
const meta =
|
|
146
|
+
const meta = lookupMeta(sym);
|
|
137
147
|
const tp = TOKEN_PRICES[sym] ?? 0;
|
|
138
|
-
const usdVal = bal * tp;
|
|
139
148
|
items.push({
|
|
140
149
|
symbol: sym,
|
|
141
150
|
name: meta.name,
|
|
142
151
|
color: meta.color,
|
|
152
|
+
logoURI: meta.logoURI,
|
|
143
153
|
balance: bal,
|
|
144
|
-
usdValue:
|
|
154
|
+
usdValue: bal * tp,
|
|
145
155
|
price: tp,
|
|
146
156
|
wallet: wb.wallet_address,
|
|
147
157
|
walletShort: `${wb.wallet_address.slice(0, 4)}...${wb.wallet_address.slice(-4)}`,
|
|
@@ -157,21 +167,21 @@ function MicrocosmWalletPage({ basePath = '', onNavigate }) {
|
|
|
157
167
|
const agg = {};
|
|
158
168
|
for (const wb of multiBalance) {
|
|
159
169
|
const p = wb.portfolio || {};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
agg['USDT'] = (agg['USDT'] || 0) + (p.usdt_balance ?? 0);
|
|
170
|
+
for (const [sym, get] of TRACKED_SYMBOLS) {
|
|
171
|
+
agg[sym] = (agg[sym] || 0) + get(p);
|
|
172
|
+
}
|
|
164
173
|
}
|
|
165
174
|
const items = [];
|
|
166
175
|
for (const [sym, bal] of Object.entries(agg)) {
|
|
167
176
|
if (bal <= 0)
|
|
168
177
|
continue;
|
|
169
|
-
const meta =
|
|
178
|
+
const meta = lookupMeta(sym);
|
|
170
179
|
const tp = TOKEN_PRICES[sym] ?? 0;
|
|
171
180
|
items.push({
|
|
172
181
|
symbol: sym,
|
|
173
182
|
name: meta.name,
|
|
174
183
|
color: meta.color,
|
|
184
|
+
logoURI: meta.logoURI,
|
|
175
185
|
balance: bal,
|
|
176
186
|
usdValue: bal * tp,
|
|
177
187
|
price: tp,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface MainstreamToken {
|
|
2
|
+
symbol: string;
|
|
3
|
+
name: string;
|
|
4
|
+
mint: string;
|
|
5
|
+
decimals: number;
|
|
6
|
+
color: string;
|
|
7
|
+
isStablecoin: boolean;
|
|
8
|
+
isNative?: boolean;
|
|
9
|
+
logoURI?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const MAINSTREAM_TOKENS: MainstreamToken[];
|
|
12
|
+
export declare const TOKEN_BY_MINT: Map<string, MainstreamToken>;
|
|
13
|
+
export declare const TOKEN_BY_SYMBOL: Map<string, MainstreamToken>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOKEN_BY_SYMBOL = exports.TOKEN_BY_MINT = exports.MAINSTREAM_TOKENS = void 0;
|
|
4
|
+
const T = 'https://microcosm.money/assets/tokens';
|
|
5
|
+
exports.MAINSTREAM_TOKENS = [
|
|
6
|
+
{ symbol: "SOL", name: "Solana", mint: "So11111111111111111111111111111111111111112", decimals: 9, color: "bg-purple-500", isStablecoin: false, isNative: true, logoURI: `${T}/sol.png` },
|
|
7
|
+
{ symbol: "MCC", name: "Microcosm Coin", mint: "MCCn6eqiTGzaiPKECg3viPmkdkS9YmkguqKvRcTxCsb", decimals: 9, color: "bg-cyan-500", isStablecoin: false, logoURI: `${T}/mcc.jpg` },
|
|
8
|
+
{ symbol: "MCD", name: "Microcosm Dollar", mint: "MCDAhpfpKrsvXd1i95jToVd5SRL2xrZbeEriBbBJAn2", decimals: 9, color: "bg-amber-500", isStablecoin: true, logoURI: `${T}/mcd.jpg` },
|
|
9
|
+
{ symbol: "USDC", name: "USD Coin", mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", decimals: 6, color: "bg-blue-500", isStablecoin: true, logoURI: `${T}/usdc.png` },
|
|
10
|
+
{ symbol: "USDT", name: "Tether USD", mint: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", decimals: 6, color: "bg-green-500", isStablecoin: true, logoURI: `${T}/usdt.png` },
|
|
11
|
+
{ symbol: "WBTC", name: "Wrapped Bitcoin", mint: "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh", decimals: 8, color: "bg-orange-500", isStablecoin: false, logoURI: `${T}/wbtc.png` },
|
|
12
|
+
{ symbol: "WETH", name: "Wrapped Ether", mint: "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs", decimals: 8, color: "bg-blue-400", isStablecoin: false, logoURI: `${T}/weth.png` },
|
|
13
|
+
{ symbol: "JUP", name: "Jupiter", mint: "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN", decimals: 6, color: "bg-lime-500", isStablecoin: false, logoURI: `${T}/jup.png` },
|
|
14
|
+
{ symbol: "RAY", name: "Raydium", mint: "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R", decimals: 6, color: "bg-cyan-500", isStablecoin: false, logoURI: `${T}/ray.png` },
|
|
15
|
+
{ symbol: "ORCA", name: "Orca", mint: "orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE", decimals: 6, color: "bg-yellow-500", isStablecoin: false, logoURI: `${T}/orca.png` },
|
|
16
|
+
{ symbol: "PYTH", name: "Pyth Network", mint: "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3", decimals: 6, color: "bg-violet-500", isStablecoin: false, logoURI: `${T}/pyth.png` },
|
|
17
|
+
{ symbol: "JTO", name: "Jito", mint: "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL", decimals: 9, color: "bg-emerald-500", isStablecoin: false, logoURI: `${T}/jto.png` },
|
|
18
|
+
{ symbol: "BONK", name: "Bonk", mint: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", decimals: 5, color: "bg-orange-400", isStablecoin: false, logoURI: `${T}/bonk.png` },
|
|
19
|
+
{ symbol: "WIF", name: "dogwifhat", mint: "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm", decimals: 6, color: "bg-pink-500", isStablecoin: false, logoURI: `${T}/wif.png` },
|
|
20
|
+
{ symbol: "RENDER", name: "Render", mint: "rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof", decimals: 8, color: "bg-teal-500", isStablecoin: false, logoURI: `${T}/render.png` },
|
|
21
|
+
{ symbol: "HNT", name: "Helium", mint: "hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux", decimals: 8, color: "bg-sky-500", isStablecoin: false, logoURI: `${T}/hnt.png` },
|
|
22
|
+
{ symbol: "W", name: "Wormhole", mint: "85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ", decimals: 6, color: "bg-slate-500", isStablecoin: false, logoURI: `${T}/w.png` },
|
|
23
|
+
{ symbol: "MSOL", name: "Marinade SOL", mint: "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So", decimals: 9, color: "bg-rose-500", isStablecoin: false, logoURI: `${T}/msol.png` },
|
|
24
|
+
{ symbol: "JITOSOL", name: "Jito Staked SOL", mint: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn", decimals: 9, color: "bg-emerald-400", isStablecoin: false, logoURI: `${T}/jitosol.png` },
|
|
25
|
+
{ symbol: "BSOL", name: "BlazeStake SOL", mint: "bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1", decimals: 9, color: "bg-orange-300", isStablecoin: false, logoURI: `${T}/bsol.png` },
|
|
26
|
+
{ symbol: "INF", name: "Infinity", mint: "5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm", decimals: 9, color: "bg-indigo-500", isStablecoin: false, logoURI: `${T}/inf.png` },
|
|
27
|
+
{ symbol: "JUPSOL", name: "Jupiter Staked SOL", mint: "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v", decimals: 9, color: "bg-lime-400", isStablecoin: false, logoURI: `${T}/jupsol.png` },
|
|
28
|
+
{ symbol: "TRUMP", name: "Official Trump", mint: "6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN", decimals: 6, color: "bg-red-500", isStablecoin: false, logoURI: `${T}/trump.png` },
|
|
29
|
+
{ symbol: "POPCAT", name: "Popcat", mint: "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr", decimals: 9, color: "bg-orange-300", isStablecoin: false, logoURI: `${T}/popcat.png` },
|
|
30
|
+
{ symbol: "MEW", name: "Cat in a Dogs World", mint: "MEW1gQWJ3nEXg2qgERiKu7FAFj79PHvQVREQUzScPP5", decimals: 5, color: "bg-stone-500", isStablecoin: false, logoURI: `${T}/mew.png` },
|
|
31
|
+
{ symbol: "FARTCOIN", name: "Fartcoin", mint: "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump", decimals: 6, color: "bg-green-400", isStablecoin: false, logoURI: `${T}/fartcoin.png` },
|
|
32
|
+
{ symbol: "PNUT", name: "Peanut the Squirrel", mint: "2qEHjDLDLbuBgRYvsxhc5D6uDWAivNFZGan56P1tpump", decimals: 6, color: "bg-amber-400", isStablecoin: false, logoURI: `${T}/pnut.png` },
|
|
33
|
+
{ symbol: "GOAT", name: "Goatseus Maximus", mint: "CzLSujWBLFsSjncfkh59rUFqvafWcY5tzedWJSuypump", decimals: 6, color: "bg-zinc-500", isStablecoin: false, logoURI: `${T}/goat.png` },
|
|
34
|
+
{ symbol: "MICHI", name: "michi", mint: "5mbK36SZ7J19An8jFochhQS4of8g6BwUjbeCSxBSoWdp", decimals: 6, color: "bg-yellow-400", isStablecoin: false, logoURI: `${T}/michi.png` },
|
|
35
|
+
{ symbol: "GIGA", name: "Gigachad", mint: "63LfDmNb3MQ8mw9MtZ2To9bEA2M71kZUUGq5tiJxcqj9", decimals: 5, color: "bg-stone-400", isStablecoin: false, logoURI: `${T}/giga.png` },
|
|
36
|
+
{ symbol: "MOTHER", name: "Mother Iggy", mint: "3S8qX1MsMqRbiwKg2cQyx7nis1oHMgaCuc9c4VfvVdPN", decimals: 6, color: "bg-pink-400", isStablecoin: false, logoURI: `${T}/mother.png` },
|
|
37
|
+
{ symbol: "SLERF", name: "Slerf", mint: "7BgBvyjrZX1YKz4oh9mjb8ZScatkkwb8DzFx7LoiVkM3", decimals: 9, color: "bg-amber-500", isStablecoin: false, logoURI: `${T}/slerf.png` },
|
|
38
|
+
{ symbol: "MOODENG", name: "Moo Deng", mint: "ED5nyyWEzpPPiWimP8vYm7sD7TD3LAt3Q3gRTWHzPJBY", decimals: 6, color: "bg-red-400", isStablecoin: false, logoURI: `${T}/moodeng.png` },
|
|
39
|
+
{ symbol: "AI16Z", name: "ai16z", mint: "HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC", decimals: 9, color: "bg-purple-400", isStablecoin: false, logoURI: `${T}/ai16z.png` },
|
|
40
|
+
{ symbol: "ARC", name: "AI Rig Complex", mint: "61V8vBaqAGMpgDQi4JcAwo1dmBGHsyhzodcPqnEVpump", decimals: 6, color: "bg-cyan-400", isStablecoin: false, logoURI: `${T}/arc.png` },
|
|
41
|
+
{ symbol: "GRIFFAIN", name: "GRIFFAIN", mint: "KENJSUYLASHUMfHyy5o4Hp2FdNqZg1AsUPhfH2kYvEP", decimals: 6, color: "bg-teal-400", isStablecoin: false, logoURI: `${T}/griffain.png` },
|
|
42
|
+
{ symbol: "ZEREBRO", name: "Zerebro", mint: "8x5VqbHA8D7NkD52uNuS5nnt3PwA8pLD34ymskeSo2Wn", decimals: 6, color: "bg-indigo-400", isStablecoin: false, logoURI: `${T}/zerebro.png` },
|
|
43
|
+
{ symbol: "LUCE", name: "Luce", mint: "CBdCxKo9QavR9hfShgpEBG3zekorAeD7W1jfq2o3pump", decimals: 6, color: "bg-yellow-300", isStablecoin: false, logoURI: `${T}/luce.png` },
|
|
44
|
+
{ symbol: "DRIFT", name: "Drift", mint: "DriFtupJYLTosbwoN8koMbEYSx54aFAVLddWsbksjwg7", decimals: 6, color: "bg-violet-400", isStablecoin: false, logoURI: `${T}/drift.png` },
|
|
45
|
+
{ symbol: "KMNO", name: "Kamino", mint: "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS", decimals: 6, color: "bg-fuchsia-500", isStablecoin: false, logoURI: `${T}/kmno.png` },
|
|
46
|
+
{ symbol: "MNGO", name: "Mango", mint: "MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac", decimals: 6, color: "bg-orange-500", isStablecoin: false, logoURI: `${T}/mngo.png` },
|
|
47
|
+
{ symbol: "FIDA", name: "Bonfida", mint: "EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp", decimals: 6, color: "bg-blue-400", isStablecoin: false, logoURI: `${T}/fida.png` },
|
|
48
|
+
{ symbol: "SRM", name: "Serum", mint: "SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt", decimals: 6, color: "bg-cyan-300", isStablecoin: false, logoURI: `${T}/srm.png` },
|
|
49
|
+
{ symbol: "STEP", name: "Step", mint: "StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT", decimals: 9, color: "bg-amber-400", isStablecoin: false, logoURI: `${T}/step.png` },
|
|
50
|
+
{ symbol: "MAPS", name: "Maps", mint: "MAPS41MDahZ9QdKXhVa4dWB9RuyfV4XqhyAZ8XcYepb", decimals: 6, color: "bg-rose-400", isStablecoin: false, logoURI: `${T}/maps.png` },
|
|
51
|
+
{ symbol: "OXY", name: "Oxygen", mint: "z3dn17yLaGMKffVogeFHQ9zWVcXgqgf3PQnDsNs2g6M", decimals: 6, color: "bg-purple-300", isStablecoin: false, logoURI: `${T}/oxy.png` },
|
|
52
|
+
{ symbol: "DUST", name: "DUST Protocol", mint: "DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ", decimals: 9, color: "bg-stone-500", isStablecoin: false, logoURI: `${T}/dust.png` },
|
|
53
|
+
{ symbol: "FORGE", name: "Forge", mint: "FoRGERiW7odcCBGU1bztZi16osPBHjxharvDathL5eds", decimals: 9, color: "bg-orange-500", isStablecoin: false, logoURI: `${T}/forge.png` },
|
|
54
|
+
{ symbol: "AURY", name: "Aurory", mint: "AURYydfxJib1ZkTir1Jn1J9ECYUtjb6rKQVmtYaixWPP", decimals: 9, color: "bg-yellow-500", isStablecoin: false, logoURI: `${T}/aury.png` },
|
|
55
|
+
{ symbol: "PORT", name: "Port Finance", mint: "PoRTjZMPXb9T7dyU7tpLEZRQj7e6ssfAE62j2oQuc6y", decimals: 6, color: "bg-blue-300", isStablecoin: false, logoURI: `${T}/port.png` },
|
|
56
|
+
{ symbol: "LIQ", name: "LIQ", mint: "4wjPQJ6PrkC4dHhYghwJzGBVP78DkBzA2U3kHoFNBuhj", decimals: 6, color: "bg-emerald-300", isStablecoin: false, logoURI: `${T}/liq.png` },
|
|
57
|
+
{ symbol: "SUNNY", name: "Sunny", mint: "SUNNYWgPQmFxe9wTZzNK7iPnJ3vYDrkgnxJRJm1s3ag", decimals: 6, color: "bg-yellow-300", isStablecoin: false, logoURI: `${T}/sunny.png` },
|
|
58
|
+
{ symbol: "SAMO", name: "Samoyedcoin", mint: "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU", decimals: 9, color: "bg-orange-400", isStablecoin: false, logoURI: `${T}/samo.png` },
|
|
59
|
+
{ symbol: "SHDW", name: "Shadow Token", mint: "SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y", decimals: 9, color: "bg-zinc-500", isStablecoin: false, logoURI: `${T}/shdw.png` },
|
|
60
|
+
{ symbol: "ATLAS", name: "Star Atlas", mint: "ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx", decimals: 8, color: "bg-indigo-300", isStablecoin: false, logoURI: `${T}/atlas.png` },
|
|
61
|
+
{ symbol: "POLIS", name: "Star Atlas DAO", mint: "poLisWXnNRwC6oBu1vHiuKQzFjGL4XDSu4g9qjz9qVk", decimals: 8, color: "bg-indigo-500", isStablecoin: false, logoURI: `${T}/polis.png` },
|
|
62
|
+
];
|
|
63
|
+
exports.TOKEN_BY_MINT = new Map(exports.MAINSTREAM_TOKENS.map(t => [t.mint, t]));
|
|
64
|
+
exports.TOKEN_BY_SYMBOL = new Map(exports.MAINSTREAM_TOKENS.map(t => [t.symbol, t]));
|