@one_deploy/sdk 1.0.2 → 1.0.4
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/package.json +1 -1
- package/src/components/OneSwapWidget.tsx +1 -1
- package/src/components/ai/OneChainSelector.tsx +183 -0
- package/src/components/ai/OneCycleSelector.tsx +187 -0
- package/src/components/ai/OnePairSelector.tsx +181 -0
- package/src/components/ai/OneTierSelector.tsx +187 -0
- package/src/components/ai/index.ts +17 -0
- package/src/components/index.ts +3 -0
- package/src/config/index.ts +1 -1
- package/src/hooks/index.ts +20 -0
- package/src/hooks/useAITrading.ts +444 -0
- package/src/index.ts +20 -0
- package/src/react-native.ts +23 -0
- package/src/services/engine.ts +184 -0
- package/src/services/index.ts +16 -0
- package/src/services/usage.ts +249 -0
- package/.turbo/turbo-build.log +0 -0
- package/.turbo/turbo-type-check.log +0 -0
- package/dist/config/index.d.mts +0 -74
- package/dist/config/index.d.ts +0 -74
- package/dist/config/index.js +0 -244
- package/dist/config/index.js.map +0 -1
- package/dist/config/index.mjs +0 -226
- package/dist/config/index.mjs.map +0 -1
- package/dist/engine-5ndtBaCr.d.ts +0 -1039
- package/dist/engine-CrlhH0nw.d.mts +0 -1039
- package/dist/hooks/index.d.mts +0 -56
- package/dist/hooks/index.d.ts +0 -56
- package/dist/hooks/index.js +0 -1360
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/index.mjs +0 -1356
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/index.d.mts +0 -356
- package/dist/index.d.ts +0 -356
- package/dist/index.js +0 -5069
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -4950
- package/dist/index.mjs.map +0 -1
- package/dist/price-CgqXPnT3.d.ts +0 -13
- package/dist/price-ClbLHHjv.d.mts +0 -13
- package/dist/providers/index.d.mts +0 -121
- package/dist/providers/index.d.ts +0 -121
- package/dist/providers/index.js +0 -1643
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/index.mjs +0 -1601
- package/dist/providers/index.mjs.map +0 -1
- package/dist/react-native.d.mts +0 -120
- package/dist/react-native.d.ts +0 -120
- package/dist/react-native.js +0 -1794
- package/dist/react-native.js.map +0 -1
- package/dist/react-native.mjs +0 -1757
- package/dist/react-native.mjs.map +0 -1
- package/dist/services/index.d.mts +0 -85
- package/dist/services/index.d.ts +0 -85
- package/dist/services/index.js +0 -1466
- package/dist/services/index.js.map +0 -1
- package/dist/services/index.mjs +0 -1458
- package/dist/services/index.mjs.map +0 -1
- package/dist/types/index.d.mts +0 -759
- package/dist/types/index.d.ts +0 -759
- package/dist/types/index.js +0 -4
- package/dist/types/index.js.map +0 -1
- package/dist/types/index.mjs +0 -3
- package/dist/types/index.mjs.map +0 -1
- package/dist/utils/index.d.mts +0 -36
- package/dist/utils/index.d.ts +0 -36
- package/dist/utils/index.js +0 -164
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/index.mjs +0 -142
- package/dist/utils/index.mjs.map +0 -1
package/dist/config/index.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// src/config/index.ts
|
|
4
|
-
var DEFAULT_ENGINE_URL = "https://api.one23.io/api";
|
|
5
|
-
var DEFAULT_CLIENT_ID = "one_pk_e8f647bfa643fdcfaa3a23f760488e49be09f929296eed4a6c399d437d907f60";
|
|
6
|
-
var config = null;
|
|
7
|
-
function initOneSDK(options) {
|
|
8
|
-
const engineUrl = options.oneEngineUrl || DEFAULT_ENGINE_URL;
|
|
9
|
-
const clientId = options.oneClientId || DEFAULT_CLIENT_ID;
|
|
10
|
-
config = {
|
|
11
|
-
...options,
|
|
12
|
-
oneEngineUrl: engineUrl,
|
|
13
|
-
oneClientId: clientId
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function getConfig() {
|
|
17
|
-
if (!config) {
|
|
18
|
-
throw new Error("ONE SDK not initialized. Call initOneSDK() first.");
|
|
19
|
-
}
|
|
20
|
-
return config;
|
|
21
|
-
}
|
|
22
|
-
function isInitialized() {
|
|
23
|
-
return config !== null;
|
|
24
|
-
}
|
|
25
|
-
function getEngineUrl() {
|
|
26
|
-
return config?.oneEngineUrl || process.env.NEXT_PUBLIC_ONE_ENGINE_URL || DEFAULT_ENGINE_URL;
|
|
27
|
-
}
|
|
28
|
-
var chainsCache = null;
|
|
29
|
-
var chainsCacheTimestamp = 0;
|
|
30
|
-
var CACHE_TTL = 5 * 60 * 1e3;
|
|
31
|
-
async function fetchChains(options) {
|
|
32
|
-
const engineUrl = getEngineUrl();
|
|
33
|
-
const params = new URLSearchParams();
|
|
34
|
-
if (options?.category) params.set("category", options.category);
|
|
35
|
-
if (options?.smartWallet) params.set("smartWallet", "true");
|
|
36
|
-
if (options?.limit) params.set("limit", options.limit.toString());
|
|
37
|
-
const response = await fetch(`${engineUrl}/v1/chains?${params}`);
|
|
38
|
-
const data = await response.json();
|
|
39
|
-
if (!data.success) {
|
|
40
|
-
throw new Error(data.error?.message || "Failed to fetch chains");
|
|
41
|
-
}
|
|
42
|
-
return data.data.chains.map((chain) => ({
|
|
43
|
-
id: chain.id,
|
|
44
|
-
name: chain.name,
|
|
45
|
-
shortName: chain.shortName || chain.slug || chain.name.toLowerCase(),
|
|
46
|
-
icon: getChainIcon(chain.id),
|
|
47
|
-
nativeCurrency: chain.nativeCurrency,
|
|
48
|
-
rpcUrls: Array.isArray(chain.rpc) ? chain.rpc : [chain.rpc],
|
|
49
|
-
blockExplorerUrls: chain.blockExplorer ? [chain.blockExplorer] : [],
|
|
50
|
-
testnet: chain.testnet
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
async function getChains() {
|
|
54
|
-
const now = Date.now();
|
|
55
|
-
if (chainsCache && now - chainsCacheTimestamp < CACHE_TTL) {
|
|
56
|
-
return chainsCache;
|
|
57
|
-
}
|
|
58
|
-
chainsCache = await fetchChains({ limit: 200 });
|
|
59
|
-
chainsCacheTimestamp = now;
|
|
60
|
-
return chainsCache;
|
|
61
|
-
}
|
|
62
|
-
async function getChainById(chainId) {
|
|
63
|
-
const chains = await getChains();
|
|
64
|
-
return chains.find((c) => c.id === chainId);
|
|
65
|
-
}
|
|
66
|
-
async function getChainByName(name) {
|
|
67
|
-
const chains = await getChains();
|
|
68
|
-
const lowerName = name.toLowerCase();
|
|
69
|
-
return chains.find(
|
|
70
|
-
(c) => c.name.toLowerCase() === lowerName || c.shortName.toLowerCase() === lowerName
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
async function getRecommendedChains() {
|
|
74
|
-
return fetchChains({ category: "recommended", limit: 10 });
|
|
75
|
-
}
|
|
76
|
-
async function getSmartWalletChains() {
|
|
77
|
-
return fetchChains({ smartWallet: true, limit: 50 });
|
|
78
|
-
}
|
|
79
|
-
var CHAIN_IDS = {
|
|
80
|
-
ETHEREUM: 1,
|
|
81
|
-
POLYGON: 137,
|
|
82
|
-
BSC: 56,
|
|
83
|
-
ARBITRUM: 42161,
|
|
84
|
-
OPTIMISM: 10,
|
|
85
|
-
BASE: 8453,
|
|
86
|
-
AVALANCHE: 43114,
|
|
87
|
-
ZKSYNC: 324,
|
|
88
|
-
LINEA: 59144,
|
|
89
|
-
SCROLL: 534352,
|
|
90
|
-
BLAST: 81457,
|
|
91
|
-
// Testnets
|
|
92
|
-
SEPOLIA: 11155111,
|
|
93
|
-
BASE_SEPOLIA: 84532,
|
|
94
|
-
ARBITRUM_SEPOLIA: 421614
|
|
95
|
-
};
|
|
96
|
-
var DEFAULT_CHAIN_ID = CHAIN_IDS.BASE;
|
|
97
|
-
var CHAIN_ICONS = {
|
|
98
|
-
1: "\u229F",
|
|
99
|
-
// Ethereum
|
|
100
|
-
137: "\u{1F7E3}",
|
|
101
|
-
// Polygon
|
|
102
|
-
56: "\u{1F7E1}",
|
|
103
|
-
// BSC
|
|
104
|
-
42161: "\u{1F535}",
|
|
105
|
-
// Arbitrum
|
|
106
|
-
10: "\u{1F534}",
|
|
107
|
-
// Optimism
|
|
108
|
-
8453: "\u{1F537}",
|
|
109
|
-
// Base
|
|
110
|
-
43114: "\u{1F53A}",
|
|
111
|
-
// Avalanche
|
|
112
|
-
324: "\u26A1",
|
|
113
|
-
// zkSync
|
|
114
|
-
59144: "\u{1F539}",
|
|
115
|
-
// Linea
|
|
116
|
-
534352: "\u{1F4DC}"
|
|
117
|
-
// Scroll
|
|
118
|
-
};
|
|
119
|
-
function getChainIcon(chainId) {
|
|
120
|
-
return CHAIN_ICONS[chainId] || "\u{1F517}";
|
|
121
|
-
}
|
|
122
|
-
var TOKEN_NAMES = {
|
|
123
|
-
ETH: "Ethereum",
|
|
124
|
-
BTC: "Bitcoin",
|
|
125
|
-
BNB: "BNB",
|
|
126
|
-
MATIC: "Polygon",
|
|
127
|
-
POL: "Polygon",
|
|
128
|
-
AVAX: "Avalanche",
|
|
129
|
-
USDT: "Tether",
|
|
130
|
-
USDC: "USD Coin",
|
|
131
|
-
DAI: "Dai",
|
|
132
|
-
WBTC: "Wrapped Bitcoin",
|
|
133
|
-
WETH: "Wrapped Ether",
|
|
134
|
-
ARB: "Arbitrum",
|
|
135
|
-
OP: "Optimism",
|
|
136
|
-
LINK: "Chainlink",
|
|
137
|
-
UNI: "Uniswap",
|
|
138
|
-
AAVE: "Aave",
|
|
139
|
-
CRV: "Curve",
|
|
140
|
-
MKR: "Maker",
|
|
141
|
-
SNX: "Synthetix",
|
|
142
|
-
COMP: "Compound",
|
|
143
|
-
SUSHI: "SushiSwap",
|
|
144
|
-
YFI: "Yearn Finance",
|
|
145
|
-
SOL: "Solana",
|
|
146
|
-
DOT: "Polkadot",
|
|
147
|
-
ATOM: "Cosmos",
|
|
148
|
-
NEAR: "Near Protocol"
|
|
149
|
-
};
|
|
150
|
-
var COINGECKO_IDS = {
|
|
151
|
-
ETH: "ethereum",
|
|
152
|
-
BTC: "bitcoin",
|
|
153
|
-
BNB: "binancecoin",
|
|
154
|
-
MATIC: "matic-network",
|
|
155
|
-
POL: "matic-network",
|
|
156
|
-
AVAX: "avalanche-2",
|
|
157
|
-
USDT: "tether",
|
|
158
|
-
USDC: "usd-coin",
|
|
159
|
-
DAI: "dai",
|
|
160
|
-
WBTC: "wrapped-bitcoin",
|
|
161
|
-
WETH: "weth",
|
|
162
|
-
ARB: "arbitrum",
|
|
163
|
-
OP: "optimism",
|
|
164
|
-
LINK: "chainlink",
|
|
165
|
-
UNI: "uniswap",
|
|
166
|
-
AAVE: "aave",
|
|
167
|
-
SOL: "solana"
|
|
168
|
-
};
|
|
169
|
-
var CHAIN_CONFIGS = {
|
|
170
|
-
ethereum: {
|
|
171
|
-
id: 1,
|
|
172
|
-
name: "Ethereum",
|
|
173
|
-
shortName: "ETH",
|
|
174
|
-
icon: "\u229F",
|
|
175
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
176
|
-
rpcUrls: ["https://ethereum.rpc.thirdweb.com"],
|
|
177
|
-
blockExplorerUrls: ["https://etherscan.io"],
|
|
178
|
-
testnet: false
|
|
179
|
-
},
|
|
180
|
-
polygon: {
|
|
181
|
-
id: 137,
|
|
182
|
-
name: "Polygon",
|
|
183
|
-
shortName: "MATIC",
|
|
184
|
-
icon: "\u{1F7E3}",
|
|
185
|
-
nativeCurrency: { name: "POL", symbol: "POL", decimals: 18 },
|
|
186
|
-
rpcUrls: ["https://polygon.rpc.thirdweb.com"],
|
|
187
|
-
blockExplorerUrls: ["https://polygonscan.com"],
|
|
188
|
-
testnet: false
|
|
189
|
-
},
|
|
190
|
-
base: {
|
|
191
|
-
id: 8453,
|
|
192
|
-
name: "Base",
|
|
193
|
-
shortName: "BASE",
|
|
194
|
-
icon: "\u{1F537}",
|
|
195
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
196
|
-
rpcUrls: ["https://base.rpc.thirdweb.com"],
|
|
197
|
-
blockExplorerUrls: ["https://basescan.org"],
|
|
198
|
-
testnet: false
|
|
199
|
-
},
|
|
200
|
-
arbitrum: {
|
|
201
|
-
id: 42161,
|
|
202
|
-
name: "Arbitrum One",
|
|
203
|
-
shortName: "ARB",
|
|
204
|
-
icon: "\u{1F535}",
|
|
205
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
206
|
-
rpcUrls: ["https://arbitrum.rpc.thirdweb.com"],
|
|
207
|
-
blockExplorerUrls: ["https://arbiscan.io"],
|
|
208
|
-
testnet: false
|
|
209
|
-
},
|
|
210
|
-
optimism: {
|
|
211
|
-
id: 10,
|
|
212
|
-
name: "Optimism",
|
|
213
|
-
shortName: "OP",
|
|
214
|
-
icon: "\u{1F534}",
|
|
215
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
216
|
-
rpcUrls: ["https://optimism.rpc.thirdweb.com"],
|
|
217
|
-
blockExplorerUrls: ["https://optimistic.etherscan.io"],
|
|
218
|
-
testnet: false
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
var SUPPORTED_CHAINS = Object.keys(CHAIN_CONFIGS);
|
|
222
|
-
function getChainConfig(chain) {
|
|
223
|
-
return CHAIN_CONFIGS[chain.toLowerCase()];
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
exports.CHAIN_CONFIGS = CHAIN_CONFIGS;
|
|
227
|
-
exports.CHAIN_IDS = CHAIN_IDS;
|
|
228
|
-
exports.COINGECKO_IDS = COINGECKO_IDS;
|
|
229
|
-
exports.DEFAULT_CHAIN_ID = DEFAULT_CHAIN_ID;
|
|
230
|
-
exports.SUPPORTED_CHAINS = SUPPORTED_CHAINS;
|
|
231
|
-
exports.TOKEN_NAMES = TOKEN_NAMES;
|
|
232
|
-
exports.fetchChains = fetchChains;
|
|
233
|
-
exports.getChainById = getChainById;
|
|
234
|
-
exports.getChainByName = getChainByName;
|
|
235
|
-
exports.getChainConfig = getChainConfig;
|
|
236
|
-
exports.getChains = getChains;
|
|
237
|
-
exports.getConfig = getConfig;
|
|
238
|
-
exports.getEngineUrl = getEngineUrl;
|
|
239
|
-
exports.getRecommendedChains = getRecommendedChains;
|
|
240
|
-
exports.getSmartWalletChains = getSmartWalletChains;
|
|
241
|
-
exports.initOneSDK = initOneSDK;
|
|
242
|
-
exports.isInitialized = isInitialized;
|
|
243
|
-
//# sourceMappingURL=index.js.map
|
|
244
|
-
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * ONE SDK Configuration\n *\n * Chain data is fetched from ONE Engine API - no duplicates needed here.\n * Engine is the single source of truth for 200+ EVM chains.\n */\n\nimport type { ChainConfig } from '../types';\n\n// ===== SDK Configuration =====\nexport interface OneConfig {\n // ONE Engine (required)\n oneEngineUrl: string;\n oneClientId: string;\n oneSecretKey?: string; // Only for backend usage\n\n // Optional: Direct Supabase access (for realtime subscriptions)\n supabaseUrl?: string;\n supabaseAnonKey?: string;\n\n // Deprecated: Use ONE Engine instead\n thirdwebClientId?: string;\n}\n\n// Default configuration values\nconst DEFAULT_ENGINE_URL = 'https://api.one23.io/api';\nconst DEFAULT_CLIENT_ID = 'one_pk_e8f647bfa643fdcfaa3a23f760488e49be09f929296eed4a6c399d437d907f60';\n\nlet config: OneConfig | null = null;\n\nexport function initOneSDK(options: Partial<OneConfig>): void {\n // Use defaults if not provided\n const engineUrl = options.oneEngineUrl || DEFAULT_ENGINE_URL;\n const clientId = options.oneClientId || DEFAULT_CLIENT_ID;\n\n config = {\n ...options,\n oneEngineUrl: engineUrl,\n oneClientId: clientId,\n } as OneConfig;\n}\n\nexport function getConfig(): OneConfig {\n if (!config) {\n throw new Error('ONE SDK not initialized. Call initOneSDK() first.');\n }\n return config;\n}\n\nexport function isInitialized(): boolean {\n return config !== null;\n}\n\nexport function getEngineUrl(): string {\n return config?.oneEngineUrl || process.env.NEXT_PUBLIC_ONE_ENGINE_URL || DEFAULT_ENGINE_URL;\n}\n\n// ===== Chain Data (Fetched from Engine) =====\n\n// Cache for chain data\nlet chainsCache: ChainConfig[] | null = null;\nlet chainsCacheTimestamp = 0;\nconst CACHE_TTL = 5 * 60 * 1000; // 5 minutes\n\n/**\n * Fetch chains from ONE Engine API\n * Engine is the source of truth for 200+ EVM chains\n */\nexport async function fetchChains(options?: {\n category?: 'mainnet' | 'l2' | 'testnet' | 'gaming' | 'recommended';\n smartWallet?: boolean;\n limit?: number;\n}): Promise<ChainConfig[]> {\n const engineUrl = getEngineUrl();\n const params = new URLSearchParams();\n\n if (options?.category) params.set('category', options.category);\n if (options?.smartWallet) params.set('smartWallet', 'true');\n if (options?.limit) params.set('limit', options.limit.toString());\n\n const response = await fetch(`${engineUrl}/v1/chains?${params}`);\n const data = await response.json();\n\n if (!data.success) {\n throw new Error(data.error?.message || 'Failed to fetch chains');\n }\n\n // Transform Engine response to SDK ChainConfig format\n return data.data.chains.map((chain: any) => ({\n id: chain.id,\n name: chain.name,\n shortName: chain.shortName || chain.slug || chain.name.toLowerCase(),\n icon: getChainIcon(chain.id),\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: Array.isArray(chain.rpc) ? chain.rpc : [chain.rpc],\n blockExplorerUrls: chain.blockExplorer ? [chain.blockExplorer] : [],\n testnet: chain.testnet,\n }));\n}\n\n/**\n * Get all supported chains (cached)\n */\nexport async function getChains(): Promise<ChainConfig[]> {\n const now = Date.now();\n if (chainsCache && (now - chainsCacheTimestamp) < CACHE_TTL) {\n return chainsCache;\n }\n\n chainsCache = await fetchChains({ limit: 200 });\n chainsCacheTimestamp = now;\n return chainsCache;\n}\n\n/**\n * Get chain by ID\n */\nexport async function getChainById(chainId: number): Promise<ChainConfig | undefined> {\n const chains = await getChains();\n return chains.find(c => c.id === chainId);\n}\n\n/**\n * Get chain by name/shortName\n */\nexport async function getChainByName(name: string): Promise<ChainConfig | undefined> {\n const chains = await getChains();\n const lowerName = name.toLowerCase();\n return chains.find(\n c => c.name.toLowerCase() === lowerName || c.shortName.toLowerCase() === lowerName\n );\n}\n\n/**\n * Get recommended chains for UI display\n */\nexport async function getRecommendedChains(): Promise<ChainConfig[]> {\n return fetchChains({ category: 'recommended', limit: 10 });\n}\n\n/**\n * Get chains with smart wallet support\n */\nexport async function getSmartWalletChains(): Promise<ChainConfig[]> {\n return fetchChains({ smartWallet: true, limit: 50 });\n}\n\n// ===== Default Chain Constants =====\n// These are commonly used chain IDs, but full data should be fetched from Engine\n\nexport const CHAIN_IDS = {\n ETHEREUM: 1,\n POLYGON: 137,\n BSC: 56,\n ARBITRUM: 42161,\n OPTIMISM: 10,\n BASE: 8453,\n AVALANCHE: 43114,\n ZKSYNC: 324,\n LINEA: 59144,\n SCROLL: 534352,\n BLAST: 81457,\n // Testnets\n SEPOLIA: 11155111,\n BASE_SEPOLIA: 84532,\n ARBITRUM_SEPOLIA: 421614,\n} as const;\n\nexport const DEFAULT_CHAIN_ID = CHAIN_IDS.BASE;\n\n// ===== Chain Icons (Simple emoji fallback) =====\nconst CHAIN_ICONS: Record<number, string> = {\n 1: '\\u229F', // Ethereum\n 137: '\\uD83D\\uDFE3', // Polygon\n 56: '\\uD83D\\uDFE1', // BSC\n 42161: '\\uD83D\\uDD35', // Arbitrum\n 10: '\\uD83D\\uDD34', // Optimism\n 8453: '\\uD83D\\uDD37', // Base\n 43114: '\\uD83D\\uDD3A', // Avalanche\n 324: '\\u26A1', // zkSync\n 59144: '\\uD83D\\uDD39', // Linea\n 534352: '\\uD83D\\uDCDC', // Scroll\n};\n\nfunction getChainIcon(chainId: number): string {\n return CHAIN_ICONS[chainId] || '\\uD83D\\uDD17';\n}\n\n// ===== Token Names Mapping =====\n// Common token symbols to human-readable names\nexport const TOKEN_NAMES: Record<string, string> = {\n ETH: 'Ethereum',\n BTC: 'Bitcoin',\n BNB: 'BNB',\n MATIC: 'Polygon',\n POL: 'Polygon',\n AVAX: 'Avalanche',\n USDT: 'Tether',\n USDC: 'USD Coin',\n DAI: 'Dai',\n WBTC: 'Wrapped Bitcoin',\n WETH: 'Wrapped Ether',\n ARB: 'Arbitrum',\n OP: 'Optimism',\n LINK: 'Chainlink',\n UNI: 'Uniswap',\n AAVE: 'Aave',\n CRV: 'Curve',\n MKR: 'Maker',\n SNX: 'Synthetix',\n COMP: 'Compound',\n SUSHI: 'SushiSwap',\n YFI: 'Yearn Finance',\n SOL: 'Solana',\n DOT: 'Polkadot',\n ATOM: 'Cosmos',\n NEAR: 'Near Protocol',\n};\n\n// ===== CoinGecko ID Mapping =====\n// For price lookups via CoinGecko API\nexport const COINGECKO_IDS: Record<string, string> = {\n ETH: 'ethereum',\n BTC: 'bitcoin',\n BNB: 'binancecoin',\n MATIC: 'matic-network',\n POL: 'matic-network',\n AVAX: 'avalanche-2',\n USDT: 'tether',\n USDC: 'usd-coin',\n DAI: 'dai',\n WBTC: 'wrapped-bitcoin',\n WETH: 'weth',\n ARB: 'arbitrum',\n OP: 'optimism',\n LINK: 'chainlink',\n UNI: 'uniswap',\n AAVE: 'aave',\n SOL: 'solana',\n};\n\n// ===== Backwards Compatibility =====\n// @deprecated - Use getChains() or fetch from Engine API\n// These static configs are kept for backwards compatibility only\n\nexport const CHAIN_CONFIGS: Record<string, ChainConfig> = {\n ethereum: {\n id: 1,\n name: 'Ethereum',\n shortName: 'ETH',\n icon: '\\u229F',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://ethereum.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://etherscan.io'],\n testnet: false,\n },\n polygon: {\n id: 137,\n name: 'Polygon',\n shortName: 'MATIC',\n icon: '\\uD83D\\uDFE3',\n nativeCurrency: { name: 'POL', symbol: 'POL', decimals: 18 },\n rpcUrls: ['https://polygon.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://polygonscan.com'],\n testnet: false,\n },\n base: {\n id: 8453,\n name: 'Base',\n shortName: 'BASE',\n icon: '\\uD83D\\uDD37',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://base.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://basescan.org'],\n testnet: false,\n },\n arbitrum: {\n id: 42161,\n name: 'Arbitrum One',\n shortName: 'ARB',\n icon: '\\uD83D\\uDD35',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://arbitrum.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://arbiscan.io'],\n testnet: false,\n },\n optimism: {\n id: 10,\n name: 'Optimism',\n shortName: 'OP',\n icon: '\\uD83D\\uDD34',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://optimism.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://optimistic.etherscan.io'],\n testnet: false,\n },\n};\n\n// @deprecated - Use getChains() to get all supported chains\nexport const SUPPORTED_CHAINS = Object.keys(CHAIN_CONFIGS);\n\n// @deprecated - Use getChainByName() instead\nexport function getChainConfig(chain: string): ChainConfig | undefined {\n return CHAIN_CONFIGS[chain.toLowerCase()];\n}\n"]}
|
package/dist/config/index.mjs
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
// src/config/index.ts
|
|
2
|
-
var DEFAULT_ENGINE_URL = "https://api.one23.io/api";
|
|
3
|
-
var DEFAULT_CLIENT_ID = "one_pk_e8f647bfa643fdcfaa3a23f760488e49be09f929296eed4a6c399d437d907f60";
|
|
4
|
-
var config = null;
|
|
5
|
-
function initOneSDK(options) {
|
|
6
|
-
const engineUrl = options.oneEngineUrl || DEFAULT_ENGINE_URL;
|
|
7
|
-
const clientId = options.oneClientId || DEFAULT_CLIENT_ID;
|
|
8
|
-
config = {
|
|
9
|
-
...options,
|
|
10
|
-
oneEngineUrl: engineUrl,
|
|
11
|
-
oneClientId: clientId
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
function getConfig() {
|
|
15
|
-
if (!config) {
|
|
16
|
-
throw new Error("ONE SDK not initialized. Call initOneSDK() first.");
|
|
17
|
-
}
|
|
18
|
-
return config;
|
|
19
|
-
}
|
|
20
|
-
function isInitialized() {
|
|
21
|
-
return config !== null;
|
|
22
|
-
}
|
|
23
|
-
function getEngineUrl() {
|
|
24
|
-
return config?.oneEngineUrl || process.env.NEXT_PUBLIC_ONE_ENGINE_URL || DEFAULT_ENGINE_URL;
|
|
25
|
-
}
|
|
26
|
-
var chainsCache = null;
|
|
27
|
-
var chainsCacheTimestamp = 0;
|
|
28
|
-
var CACHE_TTL = 5 * 60 * 1e3;
|
|
29
|
-
async function fetchChains(options) {
|
|
30
|
-
const engineUrl = getEngineUrl();
|
|
31
|
-
const params = new URLSearchParams();
|
|
32
|
-
if (options?.category) params.set("category", options.category);
|
|
33
|
-
if (options?.smartWallet) params.set("smartWallet", "true");
|
|
34
|
-
if (options?.limit) params.set("limit", options.limit.toString());
|
|
35
|
-
const response = await fetch(`${engineUrl}/v1/chains?${params}`);
|
|
36
|
-
const data = await response.json();
|
|
37
|
-
if (!data.success) {
|
|
38
|
-
throw new Error(data.error?.message || "Failed to fetch chains");
|
|
39
|
-
}
|
|
40
|
-
return data.data.chains.map((chain) => ({
|
|
41
|
-
id: chain.id,
|
|
42
|
-
name: chain.name,
|
|
43
|
-
shortName: chain.shortName || chain.slug || chain.name.toLowerCase(),
|
|
44
|
-
icon: getChainIcon(chain.id),
|
|
45
|
-
nativeCurrency: chain.nativeCurrency,
|
|
46
|
-
rpcUrls: Array.isArray(chain.rpc) ? chain.rpc : [chain.rpc],
|
|
47
|
-
blockExplorerUrls: chain.blockExplorer ? [chain.blockExplorer] : [],
|
|
48
|
-
testnet: chain.testnet
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
async function getChains() {
|
|
52
|
-
const now = Date.now();
|
|
53
|
-
if (chainsCache && now - chainsCacheTimestamp < CACHE_TTL) {
|
|
54
|
-
return chainsCache;
|
|
55
|
-
}
|
|
56
|
-
chainsCache = await fetchChains({ limit: 200 });
|
|
57
|
-
chainsCacheTimestamp = now;
|
|
58
|
-
return chainsCache;
|
|
59
|
-
}
|
|
60
|
-
async function getChainById(chainId) {
|
|
61
|
-
const chains = await getChains();
|
|
62
|
-
return chains.find((c) => c.id === chainId);
|
|
63
|
-
}
|
|
64
|
-
async function getChainByName(name) {
|
|
65
|
-
const chains = await getChains();
|
|
66
|
-
const lowerName = name.toLowerCase();
|
|
67
|
-
return chains.find(
|
|
68
|
-
(c) => c.name.toLowerCase() === lowerName || c.shortName.toLowerCase() === lowerName
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
async function getRecommendedChains() {
|
|
72
|
-
return fetchChains({ category: "recommended", limit: 10 });
|
|
73
|
-
}
|
|
74
|
-
async function getSmartWalletChains() {
|
|
75
|
-
return fetchChains({ smartWallet: true, limit: 50 });
|
|
76
|
-
}
|
|
77
|
-
var CHAIN_IDS = {
|
|
78
|
-
ETHEREUM: 1,
|
|
79
|
-
POLYGON: 137,
|
|
80
|
-
BSC: 56,
|
|
81
|
-
ARBITRUM: 42161,
|
|
82
|
-
OPTIMISM: 10,
|
|
83
|
-
BASE: 8453,
|
|
84
|
-
AVALANCHE: 43114,
|
|
85
|
-
ZKSYNC: 324,
|
|
86
|
-
LINEA: 59144,
|
|
87
|
-
SCROLL: 534352,
|
|
88
|
-
BLAST: 81457,
|
|
89
|
-
// Testnets
|
|
90
|
-
SEPOLIA: 11155111,
|
|
91
|
-
BASE_SEPOLIA: 84532,
|
|
92
|
-
ARBITRUM_SEPOLIA: 421614
|
|
93
|
-
};
|
|
94
|
-
var DEFAULT_CHAIN_ID = CHAIN_IDS.BASE;
|
|
95
|
-
var CHAIN_ICONS = {
|
|
96
|
-
1: "\u229F",
|
|
97
|
-
// Ethereum
|
|
98
|
-
137: "\u{1F7E3}",
|
|
99
|
-
// Polygon
|
|
100
|
-
56: "\u{1F7E1}",
|
|
101
|
-
// BSC
|
|
102
|
-
42161: "\u{1F535}",
|
|
103
|
-
// Arbitrum
|
|
104
|
-
10: "\u{1F534}",
|
|
105
|
-
// Optimism
|
|
106
|
-
8453: "\u{1F537}",
|
|
107
|
-
// Base
|
|
108
|
-
43114: "\u{1F53A}",
|
|
109
|
-
// Avalanche
|
|
110
|
-
324: "\u26A1",
|
|
111
|
-
// zkSync
|
|
112
|
-
59144: "\u{1F539}",
|
|
113
|
-
// Linea
|
|
114
|
-
534352: "\u{1F4DC}"
|
|
115
|
-
// Scroll
|
|
116
|
-
};
|
|
117
|
-
function getChainIcon(chainId) {
|
|
118
|
-
return CHAIN_ICONS[chainId] || "\u{1F517}";
|
|
119
|
-
}
|
|
120
|
-
var TOKEN_NAMES = {
|
|
121
|
-
ETH: "Ethereum",
|
|
122
|
-
BTC: "Bitcoin",
|
|
123
|
-
BNB: "BNB",
|
|
124
|
-
MATIC: "Polygon",
|
|
125
|
-
POL: "Polygon",
|
|
126
|
-
AVAX: "Avalanche",
|
|
127
|
-
USDT: "Tether",
|
|
128
|
-
USDC: "USD Coin",
|
|
129
|
-
DAI: "Dai",
|
|
130
|
-
WBTC: "Wrapped Bitcoin",
|
|
131
|
-
WETH: "Wrapped Ether",
|
|
132
|
-
ARB: "Arbitrum",
|
|
133
|
-
OP: "Optimism",
|
|
134
|
-
LINK: "Chainlink",
|
|
135
|
-
UNI: "Uniswap",
|
|
136
|
-
AAVE: "Aave",
|
|
137
|
-
CRV: "Curve",
|
|
138
|
-
MKR: "Maker",
|
|
139
|
-
SNX: "Synthetix",
|
|
140
|
-
COMP: "Compound",
|
|
141
|
-
SUSHI: "SushiSwap",
|
|
142
|
-
YFI: "Yearn Finance",
|
|
143
|
-
SOL: "Solana",
|
|
144
|
-
DOT: "Polkadot",
|
|
145
|
-
ATOM: "Cosmos",
|
|
146
|
-
NEAR: "Near Protocol"
|
|
147
|
-
};
|
|
148
|
-
var COINGECKO_IDS = {
|
|
149
|
-
ETH: "ethereum",
|
|
150
|
-
BTC: "bitcoin",
|
|
151
|
-
BNB: "binancecoin",
|
|
152
|
-
MATIC: "matic-network",
|
|
153
|
-
POL: "matic-network",
|
|
154
|
-
AVAX: "avalanche-2",
|
|
155
|
-
USDT: "tether",
|
|
156
|
-
USDC: "usd-coin",
|
|
157
|
-
DAI: "dai",
|
|
158
|
-
WBTC: "wrapped-bitcoin",
|
|
159
|
-
WETH: "weth",
|
|
160
|
-
ARB: "arbitrum",
|
|
161
|
-
OP: "optimism",
|
|
162
|
-
LINK: "chainlink",
|
|
163
|
-
UNI: "uniswap",
|
|
164
|
-
AAVE: "aave",
|
|
165
|
-
SOL: "solana"
|
|
166
|
-
};
|
|
167
|
-
var CHAIN_CONFIGS = {
|
|
168
|
-
ethereum: {
|
|
169
|
-
id: 1,
|
|
170
|
-
name: "Ethereum",
|
|
171
|
-
shortName: "ETH",
|
|
172
|
-
icon: "\u229F",
|
|
173
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
174
|
-
rpcUrls: ["https://ethereum.rpc.thirdweb.com"],
|
|
175
|
-
blockExplorerUrls: ["https://etherscan.io"],
|
|
176
|
-
testnet: false
|
|
177
|
-
},
|
|
178
|
-
polygon: {
|
|
179
|
-
id: 137,
|
|
180
|
-
name: "Polygon",
|
|
181
|
-
shortName: "MATIC",
|
|
182
|
-
icon: "\u{1F7E3}",
|
|
183
|
-
nativeCurrency: { name: "POL", symbol: "POL", decimals: 18 },
|
|
184
|
-
rpcUrls: ["https://polygon.rpc.thirdweb.com"],
|
|
185
|
-
blockExplorerUrls: ["https://polygonscan.com"],
|
|
186
|
-
testnet: false
|
|
187
|
-
},
|
|
188
|
-
base: {
|
|
189
|
-
id: 8453,
|
|
190
|
-
name: "Base",
|
|
191
|
-
shortName: "BASE",
|
|
192
|
-
icon: "\u{1F537}",
|
|
193
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
194
|
-
rpcUrls: ["https://base.rpc.thirdweb.com"],
|
|
195
|
-
blockExplorerUrls: ["https://basescan.org"],
|
|
196
|
-
testnet: false
|
|
197
|
-
},
|
|
198
|
-
arbitrum: {
|
|
199
|
-
id: 42161,
|
|
200
|
-
name: "Arbitrum One",
|
|
201
|
-
shortName: "ARB",
|
|
202
|
-
icon: "\u{1F535}",
|
|
203
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
204
|
-
rpcUrls: ["https://arbitrum.rpc.thirdweb.com"],
|
|
205
|
-
blockExplorerUrls: ["https://arbiscan.io"],
|
|
206
|
-
testnet: false
|
|
207
|
-
},
|
|
208
|
-
optimism: {
|
|
209
|
-
id: 10,
|
|
210
|
-
name: "Optimism",
|
|
211
|
-
shortName: "OP",
|
|
212
|
-
icon: "\u{1F534}",
|
|
213
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
214
|
-
rpcUrls: ["https://optimism.rpc.thirdweb.com"],
|
|
215
|
-
blockExplorerUrls: ["https://optimistic.etherscan.io"],
|
|
216
|
-
testnet: false
|
|
217
|
-
}
|
|
218
|
-
};
|
|
219
|
-
var SUPPORTED_CHAINS = Object.keys(CHAIN_CONFIGS);
|
|
220
|
-
function getChainConfig(chain) {
|
|
221
|
-
return CHAIN_CONFIGS[chain.toLowerCase()];
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export { CHAIN_CONFIGS, CHAIN_IDS, COINGECKO_IDS, DEFAULT_CHAIN_ID, SUPPORTED_CHAINS, TOKEN_NAMES, fetchChains, getChainById, getChainByName, getChainConfig, getChains, getConfig, getEngineUrl, getRecommendedChains, getSmartWalletChains, initOneSDK, isInitialized };
|
|
225
|
-
//# sourceMappingURL=index.mjs.map
|
|
226
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * ONE SDK Configuration\n *\n * Chain data is fetched from ONE Engine API - no duplicates needed here.\n * Engine is the single source of truth for 200+ EVM chains.\n */\n\nimport type { ChainConfig } from '../types';\n\n// ===== SDK Configuration =====\nexport interface OneConfig {\n // ONE Engine (required)\n oneEngineUrl: string;\n oneClientId: string;\n oneSecretKey?: string; // Only for backend usage\n\n // Optional: Direct Supabase access (for realtime subscriptions)\n supabaseUrl?: string;\n supabaseAnonKey?: string;\n\n // Deprecated: Use ONE Engine instead\n thirdwebClientId?: string;\n}\n\n// Default configuration values\nconst DEFAULT_ENGINE_URL = 'https://api.one23.io/api';\nconst DEFAULT_CLIENT_ID = 'one_pk_e8f647bfa643fdcfaa3a23f760488e49be09f929296eed4a6c399d437d907f60';\n\nlet config: OneConfig | null = null;\n\nexport function initOneSDK(options: Partial<OneConfig>): void {\n // Use defaults if not provided\n const engineUrl = options.oneEngineUrl || DEFAULT_ENGINE_URL;\n const clientId = options.oneClientId || DEFAULT_CLIENT_ID;\n\n config = {\n ...options,\n oneEngineUrl: engineUrl,\n oneClientId: clientId,\n } as OneConfig;\n}\n\nexport function getConfig(): OneConfig {\n if (!config) {\n throw new Error('ONE SDK not initialized. Call initOneSDK() first.');\n }\n return config;\n}\n\nexport function isInitialized(): boolean {\n return config !== null;\n}\n\nexport function getEngineUrl(): string {\n return config?.oneEngineUrl || process.env.NEXT_PUBLIC_ONE_ENGINE_URL || DEFAULT_ENGINE_URL;\n}\n\n// ===== Chain Data (Fetched from Engine) =====\n\n// Cache for chain data\nlet chainsCache: ChainConfig[] | null = null;\nlet chainsCacheTimestamp = 0;\nconst CACHE_TTL = 5 * 60 * 1000; // 5 minutes\n\n/**\n * Fetch chains from ONE Engine API\n * Engine is the source of truth for 200+ EVM chains\n */\nexport async function fetchChains(options?: {\n category?: 'mainnet' | 'l2' | 'testnet' | 'gaming' | 'recommended';\n smartWallet?: boolean;\n limit?: number;\n}): Promise<ChainConfig[]> {\n const engineUrl = getEngineUrl();\n const params = new URLSearchParams();\n\n if (options?.category) params.set('category', options.category);\n if (options?.smartWallet) params.set('smartWallet', 'true');\n if (options?.limit) params.set('limit', options.limit.toString());\n\n const response = await fetch(`${engineUrl}/v1/chains?${params}`);\n const data = await response.json();\n\n if (!data.success) {\n throw new Error(data.error?.message || 'Failed to fetch chains');\n }\n\n // Transform Engine response to SDK ChainConfig format\n return data.data.chains.map((chain: any) => ({\n id: chain.id,\n name: chain.name,\n shortName: chain.shortName || chain.slug || chain.name.toLowerCase(),\n icon: getChainIcon(chain.id),\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: Array.isArray(chain.rpc) ? chain.rpc : [chain.rpc],\n blockExplorerUrls: chain.blockExplorer ? [chain.blockExplorer] : [],\n testnet: chain.testnet,\n }));\n}\n\n/**\n * Get all supported chains (cached)\n */\nexport async function getChains(): Promise<ChainConfig[]> {\n const now = Date.now();\n if (chainsCache && (now - chainsCacheTimestamp) < CACHE_TTL) {\n return chainsCache;\n }\n\n chainsCache = await fetchChains({ limit: 200 });\n chainsCacheTimestamp = now;\n return chainsCache;\n}\n\n/**\n * Get chain by ID\n */\nexport async function getChainById(chainId: number): Promise<ChainConfig | undefined> {\n const chains = await getChains();\n return chains.find(c => c.id === chainId);\n}\n\n/**\n * Get chain by name/shortName\n */\nexport async function getChainByName(name: string): Promise<ChainConfig | undefined> {\n const chains = await getChains();\n const lowerName = name.toLowerCase();\n return chains.find(\n c => c.name.toLowerCase() === lowerName || c.shortName.toLowerCase() === lowerName\n );\n}\n\n/**\n * Get recommended chains for UI display\n */\nexport async function getRecommendedChains(): Promise<ChainConfig[]> {\n return fetchChains({ category: 'recommended', limit: 10 });\n}\n\n/**\n * Get chains with smart wallet support\n */\nexport async function getSmartWalletChains(): Promise<ChainConfig[]> {\n return fetchChains({ smartWallet: true, limit: 50 });\n}\n\n// ===== Default Chain Constants =====\n// These are commonly used chain IDs, but full data should be fetched from Engine\n\nexport const CHAIN_IDS = {\n ETHEREUM: 1,\n POLYGON: 137,\n BSC: 56,\n ARBITRUM: 42161,\n OPTIMISM: 10,\n BASE: 8453,\n AVALANCHE: 43114,\n ZKSYNC: 324,\n LINEA: 59144,\n SCROLL: 534352,\n BLAST: 81457,\n // Testnets\n SEPOLIA: 11155111,\n BASE_SEPOLIA: 84532,\n ARBITRUM_SEPOLIA: 421614,\n} as const;\n\nexport const DEFAULT_CHAIN_ID = CHAIN_IDS.BASE;\n\n// ===== Chain Icons (Simple emoji fallback) =====\nconst CHAIN_ICONS: Record<number, string> = {\n 1: '\\u229F', // Ethereum\n 137: '\\uD83D\\uDFE3', // Polygon\n 56: '\\uD83D\\uDFE1', // BSC\n 42161: '\\uD83D\\uDD35', // Arbitrum\n 10: '\\uD83D\\uDD34', // Optimism\n 8453: '\\uD83D\\uDD37', // Base\n 43114: '\\uD83D\\uDD3A', // Avalanche\n 324: '\\u26A1', // zkSync\n 59144: '\\uD83D\\uDD39', // Linea\n 534352: '\\uD83D\\uDCDC', // Scroll\n};\n\nfunction getChainIcon(chainId: number): string {\n return CHAIN_ICONS[chainId] || '\\uD83D\\uDD17';\n}\n\n// ===== Token Names Mapping =====\n// Common token symbols to human-readable names\nexport const TOKEN_NAMES: Record<string, string> = {\n ETH: 'Ethereum',\n BTC: 'Bitcoin',\n BNB: 'BNB',\n MATIC: 'Polygon',\n POL: 'Polygon',\n AVAX: 'Avalanche',\n USDT: 'Tether',\n USDC: 'USD Coin',\n DAI: 'Dai',\n WBTC: 'Wrapped Bitcoin',\n WETH: 'Wrapped Ether',\n ARB: 'Arbitrum',\n OP: 'Optimism',\n LINK: 'Chainlink',\n UNI: 'Uniswap',\n AAVE: 'Aave',\n CRV: 'Curve',\n MKR: 'Maker',\n SNX: 'Synthetix',\n COMP: 'Compound',\n SUSHI: 'SushiSwap',\n YFI: 'Yearn Finance',\n SOL: 'Solana',\n DOT: 'Polkadot',\n ATOM: 'Cosmos',\n NEAR: 'Near Protocol',\n};\n\n// ===== CoinGecko ID Mapping =====\n// For price lookups via CoinGecko API\nexport const COINGECKO_IDS: Record<string, string> = {\n ETH: 'ethereum',\n BTC: 'bitcoin',\n BNB: 'binancecoin',\n MATIC: 'matic-network',\n POL: 'matic-network',\n AVAX: 'avalanche-2',\n USDT: 'tether',\n USDC: 'usd-coin',\n DAI: 'dai',\n WBTC: 'wrapped-bitcoin',\n WETH: 'weth',\n ARB: 'arbitrum',\n OP: 'optimism',\n LINK: 'chainlink',\n UNI: 'uniswap',\n AAVE: 'aave',\n SOL: 'solana',\n};\n\n// ===== Backwards Compatibility =====\n// @deprecated - Use getChains() or fetch from Engine API\n// These static configs are kept for backwards compatibility only\n\nexport const CHAIN_CONFIGS: Record<string, ChainConfig> = {\n ethereum: {\n id: 1,\n name: 'Ethereum',\n shortName: 'ETH',\n icon: '\\u229F',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://ethereum.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://etherscan.io'],\n testnet: false,\n },\n polygon: {\n id: 137,\n name: 'Polygon',\n shortName: 'MATIC',\n icon: '\\uD83D\\uDFE3',\n nativeCurrency: { name: 'POL', symbol: 'POL', decimals: 18 },\n rpcUrls: ['https://polygon.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://polygonscan.com'],\n testnet: false,\n },\n base: {\n id: 8453,\n name: 'Base',\n shortName: 'BASE',\n icon: '\\uD83D\\uDD37',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://base.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://basescan.org'],\n testnet: false,\n },\n arbitrum: {\n id: 42161,\n name: 'Arbitrum One',\n shortName: 'ARB',\n icon: '\\uD83D\\uDD35',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://arbitrum.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://arbiscan.io'],\n testnet: false,\n },\n optimism: {\n id: 10,\n name: 'Optimism',\n shortName: 'OP',\n icon: '\\uD83D\\uDD34',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: ['https://optimism.rpc.thirdweb.com'],\n blockExplorerUrls: ['https://optimistic.etherscan.io'],\n testnet: false,\n },\n};\n\n// @deprecated - Use getChains() to get all supported chains\nexport const SUPPORTED_CHAINS = Object.keys(CHAIN_CONFIGS);\n\n// @deprecated - Use getChainByName() instead\nexport function getChainConfig(chain: string): ChainConfig | undefined {\n return CHAIN_CONFIGS[chain.toLowerCase()];\n}\n"]}
|