@vleap/warps-adapter-evm 0.2.0-alpha.24 → 0.2.0-alpha.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +46 -31
- package/dist/index.d.ts +46 -31
- package/dist/index.js +358 -406
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +339 -384
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,309 +1,294 @@
|
|
|
1
1
|
// src/chains/arbitrum.ts
|
|
2
|
-
import { WarpChainName } from "@vleap/warps";
|
|
2
|
+
import { WarpChainName as WarpChainName6 } from "@vleap/warps";
|
|
3
3
|
|
|
4
4
|
// src/WarpEvmDataLoader.ts
|
|
5
5
|
import {
|
|
6
|
-
|
|
6
|
+
CacheTtl as CacheTtl2,
|
|
7
|
+
getProviderUrl,
|
|
8
|
+
WarpCache as WarpCache2,
|
|
9
|
+
WarpCacheKey
|
|
7
10
|
} from "@vleap/warps";
|
|
8
11
|
import { ethers } from "ethers";
|
|
9
12
|
|
|
10
|
-
// src/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png",
|
|
19
|
-
"0xdAC17F958D2ee523a2206206994597C13D831ec7": "https://assets.coingecko.com/coins/images/325/small/Tether.png",
|
|
20
|
-
"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png",
|
|
21
|
-
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": "https://assets.coingecko.com/coins/images/2518/small/weth.png",
|
|
22
|
-
"0x6B175474E89094C44Da98b954EedeAC495271d0F": "https://assets.coingecko.com/coins/images/9956/small/4943.png"
|
|
23
|
-
},
|
|
24
|
-
arbitrum: {
|
|
25
|
-
"0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8": "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png",
|
|
26
|
-
"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": "https://assets.coingecko.com/coins/images/325/small/Tether.png",
|
|
27
|
-
"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1": "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
28
|
-
},
|
|
29
|
-
base: {
|
|
30
|
-
"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png",
|
|
31
|
-
"0x4200000000000000000000000000000000000006": "https://assets.coingecko.com/coins/images/2518/small/weth.png",
|
|
32
|
-
"0x036CbD53842c5426634e7929541eC2318f3dCF7e": "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png",
|
|
33
|
-
"0x808456652fdb597867f38412077A9182bf77359F": "https://assets.coingecko.com/coins/images/26045/standard/euro.png",
|
|
34
|
-
"0xcbB7C0006F23900c38EB856149F799620fcb8A4a": "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png"
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var TOKEN_LISTS = [
|
|
38
|
-
"https://tokens.uniswap.org",
|
|
39
|
-
"https://raw.githubusercontent.com/compound-finance/token-list/master/compound.tokenlist.json",
|
|
40
|
-
"https://tokens.1inch.io"
|
|
41
|
-
];
|
|
42
|
-
var logoCache = /* @__PURE__ */ new Map();
|
|
43
|
-
var tokenInfoCache = /* @__PURE__ */ new Map();
|
|
44
|
-
var tokenListCache = /* @__PURE__ */ new Map();
|
|
45
|
-
var EvmLogoService = class {
|
|
46
|
-
static async getTokenInfo(chainName, tokenAddress) {
|
|
47
|
-
const cacheKey = `${chainName}:${tokenAddress.toLowerCase()}`;
|
|
48
|
-
if (tokenInfoCache.has(cacheKey)) {
|
|
49
|
-
return tokenInfoCache.get(cacheKey);
|
|
50
|
-
}
|
|
51
|
-
let tokenInfo = {};
|
|
13
|
+
// src/providers/UniswapService.ts
|
|
14
|
+
import { CacheTtl } from "@vleap/warps";
|
|
15
|
+
var _UniswapService = class _UniswapService {
|
|
16
|
+
constructor(cache, chainId) {
|
|
17
|
+
this.cache = cache;
|
|
18
|
+
this.chainId = chainId;
|
|
19
|
+
}
|
|
20
|
+
async getTokenList() {
|
|
52
21
|
try {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (!tokenInfo.logoURI) {
|
|
57
|
-
try {
|
|
58
|
-
tokenInfo = { ...tokenInfo, ...await this.fetchFromDefiLlama(chainName, tokenAddress) };
|
|
59
|
-
} catch (error) {
|
|
22
|
+
const response = await fetch(_UniswapService.UNISWAP_TOKEN_LIST_URL);
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`Failed to fetch Uniswap token list: ${response.status}`);
|
|
60
25
|
}
|
|
26
|
+
const tokenList = await response.json();
|
|
27
|
+
return tokenList;
|
|
28
|
+
} catch (error) {
|
|
29
|
+
throw new Error(`Failed to fetch Uniswap token list: ${error}`);
|
|
61
30
|
}
|
|
62
|
-
tokenInfoCache.set(cacheKey, tokenInfo);
|
|
63
|
-
return tokenInfo;
|
|
64
31
|
}
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
32
|
+
async findToken(address) {
|
|
33
|
+
const normalizedAddress = address.toLowerCase();
|
|
34
|
+
const cacheKey = `uniswap:token:${this.chainId}:${normalizedAddress}`;
|
|
35
|
+
const cachedToken = this.cache.get(cacheKey);
|
|
36
|
+
if (cachedToken) {
|
|
37
|
+
return cachedToken;
|
|
69
38
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const tokenInfo = await this.getTokenInfo(chainName, tokenAddress);
|
|
76
|
-
logoUrl = tokenInfo.logoURI || "";
|
|
77
|
-
if (!logoUrl && (tokenSymbol || tokenName)) {
|
|
78
|
-
try {
|
|
79
|
-
logoUrl = await this.fetchFromTrustWallet(chainName, tokenAddress);
|
|
80
|
-
} catch (error) {
|
|
81
|
-
}
|
|
39
|
+
try {
|
|
40
|
+
const tokenList = await this.getTokenList();
|
|
41
|
+
const token = tokenList.tokens.find((token2) => token2.address.toLowerCase() === normalizedAddress) || null;
|
|
42
|
+
if (token && token.chainId !== this.chainId) {
|
|
43
|
+
return null;
|
|
82
44
|
}
|
|
45
|
+
if (token) {
|
|
46
|
+
this.cache.set(cacheKey, token, CacheTtl.OneHour);
|
|
47
|
+
} else {
|
|
48
|
+
this.cache.set(cacheKey, null, CacheTtl.OneMinute * 5);
|
|
49
|
+
}
|
|
50
|
+
return token;
|
|
51
|
+
} catch (error) {
|
|
52
|
+
return null;
|
|
83
53
|
}
|
|
84
|
-
logoCache.set(cacheKey, logoUrl);
|
|
85
|
-
return logoUrl;
|
|
86
54
|
}
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
if (
|
|
92
|
-
return
|
|
55
|
+
async getTokenMetadata(address) {
|
|
56
|
+
const normalizedAddress = address.toLowerCase();
|
|
57
|
+
const cacheKey = `uniswap:metadata:${this.chainId}:${normalizedAddress}`;
|
|
58
|
+
const cachedMetadata = this.cache.get(cacheKey);
|
|
59
|
+
if (cachedMetadata !== null) {
|
|
60
|
+
return cachedMetadata;
|
|
93
61
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
signal: AbortSignal.timeout(5e3)
|
|
99
|
-
});
|
|
100
|
-
if (response.ok) {
|
|
101
|
-
const data = await response.json();
|
|
102
|
-
const token = data.tokens.find((t) => t.chainId === chainId && t.address.toLowerCase() === normalizedAddress);
|
|
103
|
-
if (token) {
|
|
104
|
-
const tokenInfo = {
|
|
105
|
-
name: token.name,
|
|
106
|
-
symbol: token.symbol,
|
|
107
|
-
decimals: token.decimals,
|
|
108
|
-
logoURI: token.logoURI
|
|
109
|
-
};
|
|
110
|
-
tokenListCache.set(`${chainId}:${normalizedAddress}`, tokenInfo);
|
|
111
|
-
return tokenInfo;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
} catch (error) {
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
62
|
+
const token = await this.findToken(address);
|
|
63
|
+
if (!token) {
|
|
64
|
+
this.cache.set(cacheKey, null, CacheTtl.OneMinute * 5);
|
|
65
|
+
return null;
|
|
117
66
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (coinData) {
|
|
134
|
-
return {
|
|
135
|
-
symbol: coinData.symbol,
|
|
136
|
-
logoURI: coinData.logoURI
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
} catch (error) {
|
|
67
|
+
const metadata = {
|
|
68
|
+
name: token.name,
|
|
69
|
+
symbol: token.symbol,
|
|
70
|
+
decimals: token.decimals,
|
|
71
|
+
logoUrl: token.logoURI
|
|
72
|
+
};
|
|
73
|
+
this.cache.set(cacheKey, metadata, CacheTtl.OneHour);
|
|
74
|
+
return metadata;
|
|
75
|
+
}
|
|
76
|
+
async getBridgeInfo(address) {
|
|
77
|
+
const normalizedAddress = address.toLowerCase();
|
|
78
|
+
const cacheKey = `uniswap:bridge:${this.chainId}:${normalizedAddress}`;
|
|
79
|
+
const cachedBridgeInfo = this.cache.get(cacheKey);
|
|
80
|
+
if (cachedBridgeInfo !== null) {
|
|
81
|
+
return cachedBridgeInfo;
|
|
141
82
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
};
|
|
151
|
-
const chain = chainMapping[chainName];
|
|
152
|
-
if (!chain) return "";
|
|
153
|
-
const logoUrl = `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/${chain}/assets/${tokenAddress}/logo.png`;
|
|
154
|
-
const response = await fetch(logoUrl, {
|
|
155
|
-
method: "HEAD",
|
|
156
|
-
signal: AbortSignal.timeout(3e3)
|
|
157
|
-
});
|
|
158
|
-
if (response.ok) {
|
|
159
|
-
return logoUrl;
|
|
160
|
-
}
|
|
161
|
-
} catch (error) {
|
|
83
|
+
const token = await this.findToken(address);
|
|
84
|
+
if (!token?.extensions?.bridgeInfo) {
|
|
85
|
+
this.cache.set(cacheKey, null, CacheTtl.OneMinute * 5);
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const bridgeInfo = {};
|
|
89
|
+
for (const [chainId, info] of Object.entries(token.extensions.bridgeInfo)) {
|
|
90
|
+
bridgeInfo[chainId] = info.tokenAddress;
|
|
162
91
|
}
|
|
163
|
-
|
|
92
|
+
this.cache.set(cacheKey, bridgeInfo, CacheTtl.OneHour);
|
|
93
|
+
return bridgeInfo;
|
|
164
94
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
95
|
+
};
|
|
96
|
+
_UniswapService.UNISWAP_TOKEN_LIST_URL = "https://tokens.uniswap.org";
|
|
97
|
+
var UniswapService = _UniswapService;
|
|
98
|
+
|
|
99
|
+
// src/tokens/arbitrum.ts
|
|
100
|
+
import { WarpChainName } from "@vleap/warps";
|
|
101
|
+
var ArbitrumChain = WarpChainName.Arbitrum;
|
|
102
|
+
var ArbitrumTokens = [
|
|
103
|
+
{
|
|
104
|
+
chain: ArbitrumChain,
|
|
105
|
+
identifier: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
|
|
106
|
+
name: "USD Coin",
|
|
107
|
+
symbol: "USDC",
|
|
108
|
+
decimals: 6,
|
|
109
|
+
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
chain: ArbitrumChain,
|
|
113
|
+
identifier: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
|
|
114
|
+
name: "Tether USD",
|
|
115
|
+
symbol: "USDT",
|
|
116
|
+
decimals: 6,
|
|
117
|
+
logoUrl: "https://assets.coingecko.com/coins/images/325/small/Tether.png"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
chain: ArbitrumChain,
|
|
121
|
+
identifier: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
122
|
+
name: "Wrapped Ether",
|
|
123
|
+
symbol: "WETH",
|
|
124
|
+
decimals: 18,
|
|
125
|
+
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
169
126
|
}
|
|
170
|
-
|
|
171
|
-
|
|
127
|
+
];
|
|
128
|
+
|
|
129
|
+
// src/tokens/base.ts
|
|
130
|
+
import { WarpChainName as WarpChainName2 } from "@vleap/warps";
|
|
131
|
+
var BaseChain = WarpChainName2.Base;
|
|
132
|
+
var BaseTokens = [
|
|
133
|
+
{
|
|
134
|
+
chain: BaseChain,
|
|
135
|
+
identifier: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
136
|
+
name: "USD Coin",
|
|
137
|
+
symbol: "USDC",
|
|
138
|
+
decimals: 6,
|
|
139
|
+
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
chain: BaseChain,
|
|
143
|
+
identifier: "0x4200000000000000000000000000000000000006",
|
|
144
|
+
name: "Wrapped Ether",
|
|
145
|
+
symbol: "WETH",
|
|
146
|
+
decimals: 18,
|
|
147
|
+
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
chain: BaseChain,
|
|
151
|
+
identifier: "0x808456652fdb597867f38412077A9182bf77359F",
|
|
152
|
+
name: "Euro",
|
|
153
|
+
symbol: "EURC",
|
|
154
|
+
decimals: 6,
|
|
155
|
+
logoUrl: "https://assets.coingecko.com/coins/images/26045/standard/euro.png"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
chain: BaseChain,
|
|
159
|
+
fidentifier: "0xcbB7C0006F23900c38EB856149F799620fcb8A4a",
|
|
160
|
+
name: "Coinbase Wrapped BTC",
|
|
161
|
+
symbol: "CBETH",
|
|
162
|
+
decimals: 8,
|
|
163
|
+
logoUrl: "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png"
|
|
172
164
|
}
|
|
173
|
-
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
// src/tokens/base-sepolia.ts
|
|
168
|
+
import { WarpChainName as WarpChainName3 } from "@vleap/warps";
|
|
169
|
+
var BaseChain2 = WarpChainName3.Base;
|
|
170
|
+
var BaseSepoliaTokens = [
|
|
171
|
+
{
|
|
172
|
+
chain: BaseChain2,
|
|
173
|
+
identifier: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
174
|
+
name: "USD",
|
|
175
|
+
symbol: "USDC",
|
|
176
|
+
decimals: 6,
|
|
177
|
+
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
chain: BaseChain2,
|
|
181
|
+
identifier: "0x808456652fdb597867f38412077A9182bf77359F",
|
|
182
|
+
name: "Euro",
|
|
183
|
+
symbol: "EURC",
|
|
184
|
+
decimals: 6,
|
|
185
|
+
logoUrl: "https://assets.coingecko.com/coins/images/26045/thumb/euro-coin.png?1655394420"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
chain: BaseChain2,
|
|
189
|
+
identifier: "0xcbB7C0006F23900c38EB856149F799620fcb8A4a",
|
|
190
|
+
name: "Wrapped Bitcoin",
|
|
191
|
+
symbol: "WBTC",
|
|
192
|
+
decimals: 8,
|
|
193
|
+
logoUrl: "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png"
|
|
194
|
+
}
|
|
195
|
+
];
|
|
196
|
+
|
|
197
|
+
// src/tokens/ethereum.ts
|
|
198
|
+
import { WarpChainName as WarpChainName4 } from "@vleap/warps";
|
|
199
|
+
var EthereumChain = WarpChainName4.Ethereum;
|
|
200
|
+
var EthereumTokens = [
|
|
201
|
+
{
|
|
202
|
+
chain: EthereumChain,
|
|
203
|
+
identifier: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
204
|
+
name: "USD Coin",
|
|
205
|
+
symbol: "USDC",
|
|
206
|
+
decimals: 6,
|
|
207
|
+
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
chain: EthereumChain,
|
|
211
|
+
identifier: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
212
|
+
name: "Tether USD",
|
|
213
|
+
symbol: "USDT",
|
|
214
|
+
decimals: 6,
|
|
215
|
+
logoUrl: "https://assets.coingecko.com/coins/images/325/small/Tether.png"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
chain: EthereumChain,
|
|
219
|
+
identifier: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
|
|
220
|
+
name: "Wrapped Bitcoin",
|
|
221
|
+
symbol: "WBTC",
|
|
222
|
+
decimals: 8,
|
|
223
|
+
logoUrl: "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
chain: EthereumChain,
|
|
227
|
+
identifier: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
228
|
+
name: "Wrapped Ether",
|
|
229
|
+
symbol: "WETH",
|
|
230
|
+
decimals: 18,
|
|
231
|
+
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
chain: EthereumChain,
|
|
235
|
+
identifier: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
|
|
236
|
+
name: "Dai Stablecoin",
|
|
237
|
+
symbol: "DAI",
|
|
238
|
+
decimals: 18,
|
|
239
|
+
logoUrl: "https://assets.coingecko.com/coins/images/9956/small/4943.png"
|
|
240
|
+
}
|
|
241
|
+
];
|
|
242
|
+
|
|
243
|
+
// src/tokens/ethereum-sepolia.ts
|
|
244
|
+
import { WarpChainName as WarpChainName5 } from "@vleap/warps";
|
|
245
|
+
var EthereumChain2 = WarpChainName5.Ethereum;
|
|
246
|
+
var EthereumSepoliaTokens = [
|
|
247
|
+
{
|
|
248
|
+
chain: EthereumChain2,
|
|
249
|
+
identifier: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
250
|
+
name: "USD Coin",
|
|
251
|
+
symbol: "USDC",
|
|
252
|
+
decimals: 6,
|
|
253
|
+
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
chain: EthereumChain2,
|
|
257
|
+
identifier: "0x7169D38820dfd117C3FA1f22a697dBA58d90BA06",
|
|
258
|
+
name: "Tether USD",
|
|
259
|
+
symbol: "USDT",
|
|
260
|
+
decimals: 6,
|
|
261
|
+
logoUrl: "https://assets.coingecko.com/coins/images/325/small/Tether.png"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
chain: EthereumChain2,
|
|
265
|
+
identifier: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
|
266
|
+
name: "Wrapped Ether",
|
|
267
|
+
symbol: "WETH",
|
|
268
|
+
decimals: 18,
|
|
269
|
+
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
270
|
+
}
|
|
271
|
+
];
|
|
174
272
|
|
|
175
273
|
// src/tokens.ts
|
|
176
274
|
var KnownTokens = {
|
|
177
275
|
ethereum: {
|
|
178
|
-
mainnet:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
name: "USD Coin",
|
|
182
|
-
symbol: "USDC",
|
|
183
|
-
decimals: 6,
|
|
184
|
-
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
id: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
188
|
-
name: "Tether USD",
|
|
189
|
-
symbol: "USDT",
|
|
190
|
-
decimals: 6,
|
|
191
|
-
logoUrl: "https://assets.coingecko.com/coins/images/325/small/Tether.png"
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
id: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
|
|
195
|
-
name: "Wrapped Bitcoin",
|
|
196
|
-
symbol: "WBTC",
|
|
197
|
-
decimals: 8,
|
|
198
|
-
logoUrl: "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
id: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
202
|
-
name: "Wrapped Ether",
|
|
203
|
-
symbol: "WETH",
|
|
204
|
-
decimals: 18,
|
|
205
|
-
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
id: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
|
|
209
|
-
name: "Dai Stablecoin",
|
|
210
|
-
symbol: "DAI",
|
|
211
|
-
decimals: 18,
|
|
212
|
-
logoUrl: "https://assets.coingecko.com/coins/images/9956/small/4943.png"
|
|
213
|
-
}
|
|
214
|
-
],
|
|
215
|
-
testnet: [
|
|
216
|
-
{
|
|
217
|
-
id: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
218
|
-
name: "USD Coin",
|
|
219
|
-
symbol: "USDC",
|
|
220
|
-
decimals: 6,
|
|
221
|
-
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
id: "0x7169D38820dfd117C3FA1f22a697dBA58d90BA06",
|
|
225
|
-
name: "Tether USD",
|
|
226
|
-
symbol: "USDT",
|
|
227
|
-
decimals: 6,
|
|
228
|
-
logoUrl: "https://assets.coingecko.com/coins/images/325/small/Tether.png"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
id: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
|
232
|
-
name: "Wrapped Ether",
|
|
233
|
-
symbol: "WETH",
|
|
234
|
-
decimals: 18,
|
|
235
|
-
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
236
|
-
}
|
|
237
|
-
]
|
|
238
|
-
},
|
|
239
|
-
arbitrum: {
|
|
240
|
-
mainnet: [
|
|
241
|
-
{
|
|
242
|
-
id: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
|
|
243
|
-
name: "USD Coin",
|
|
244
|
-
symbol: "USDC",
|
|
245
|
-
decimals: 6,
|
|
246
|
-
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
id: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
|
|
250
|
-
name: "Tether USD",
|
|
251
|
-
symbol: "USDT",
|
|
252
|
-
decimals: 6,
|
|
253
|
-
logoUrl: "https://assets.coingecko.com/coins/images/325/small/Tether.png"
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
id: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
257
|
-
name: "Wrapped Ether",
|
|
258
|
-
symbol: "WETH",
|
|
259
|
-
decimals: 18,
|
|
260
|
-
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
261
|
-
}
|
|
262
|
-
]
|
|
276
|
+
mainnet: EthereumTokens,
|
|
277
|
+
testnet: EthereumSepoliaTokens,
|
|
278
|
+
devnet: EthereumSepoliaTokens
|
|
263
279
|
},
|
|
264
280
|
base: {
|
|
265
|
-
mainnet:
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
id: "0x4200000000000000000000000000000000000006",
|
|
275
|
-
name: "Wrapped Ether",
|
|
276
|
-
symbol: "WETH",
|
|
277
|
-
decimals: 18,
|
|
278
|
-
logoUrl: "https://assets.coingecko.com/coins/images/2518/small/weth.png"
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
id: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
282
|
-
name: "USD Coin",
|
|
283
|
-
symbol: "USDC",
|
|
284
|
-
decimals: 6,
|
|
285
|
-
logoUrl: "https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png"
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
id: "0x808456652fdb597867f38412077A9182bf77359F",
|
|
289
|
-
name: "Euro Coin",
|
|
290
|
-
symbol: "EURC",
|
|
291
|
-
decimals: 6,
|
|
292
|
-
logoUrl: "https://assets.coingecko.com/coins/images/26045/standard/euro.png"
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
id: "0xcbB7C0006F23900c38EB856149F799620fcb8A4a",
|
|
296
|
-
name: "Coinbase Wrapped BTC",
|
|
297
|
-
symbol: "CBETH",
|
|
298
|
-
decimals: 8,
|
|
299
|
-
logoUrl: "https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png"
|
|
300
|
-
}
|
|
301
|
-
]
|
|
281
|
+
mainnet: BaseTokens,
|
|
282
|
+
testnet: BaseSepoliaTokens,
|
|
283
|
+
devnet: BaseSepoliaTokens
|
|
284
|
+
},
|
|
285
|
+
arbitrum: {
|
|
286
|
+
mainnet: ArbitrumTokens
|
|
302
287
|
}
|
|
303
288
|
};
|
|
304
|
-
var findKnownTokenById = (
|
|
305
|
-
const chainTokens = KnownTokens[
|
|
306
|
-
return chainTokens.find((token) => token.
|
|
289
|
+
var findKnownTokenById = (chain, env, id) => {
|
|
290
|
+
const chainTokens = KnownTokens[chain]?.[env] || [];
|
|
291
|
+
return chainTokens.find((token) => token.identifier === id) || null;
|
|
307
292
|
};
|
|
308
293
|
var getKnownTokensForChain = (chainName, env = "mainnet") => {
|
|
309
294
|
return KnownTokens[chainName]?.[env] || [];
|
|
@@ -324,6 +309,8 @@ var WarpEvmDataLoader = class {
|
|
|
324
309
|
const apiUrl = getProviderUrl(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
|
|
325
310
|
const network = new ethers.Network(this.chain.name, parseInt(this.chain.chainId));
|
|
326
311
|
this.provider = new ethers.JsonRpcProvider(apiUrl, network);
|
|
312
|
+
this.cache = new WarpCache2(config.cache?.type);
|
|
313
|
+
this.uniswapService = new UniswapService(this.cache, parseInt(this.chain.chainId));
|
|
327
314
|
}
|
|
328
315
|
async getAccount(address) {
|
|
329
316
|
const balance = await this.provider.getBalance(address);
|
|
@@ -339,14 +326,14 @@ var WarpEvmDataLoader = class {
|
|
|
339
326
|
let assets = account.balance > 0 ? [{ ...this.chain.nativeToken, amount: account.balance }] : [];
|
|
340
327
|
for (const tokenBalance of tokenBalances) {
|
|
341
328
|
if (tokenBalance.balance > 0n) {
|
|
342
|
-
const logoUrl = tokenBalance.metadata.logoUrl || await this.getLogoUrl(tokenBalance);
|
|
343
329
|
assets.push({
|
|
344
330
|
chain: this.chain.name,
|
|
345
331
|
identifier: tokenBalance.tokenAddress,
|
|
346
|
-
name: tokenBalance.
|
|
332
|
+
name: tokenBalance.name,
|
|
333
|
+
symbol: tokenBalance.symbol,
|
|
347
334
|
amount: tokenBalance.balance,
|
|
348
|
-
decimals: tokenBalance.
|
|
349
|
-
logoUrl: logoUrl || ""
|
|
335
|
+
decimals: tokenBalance.decimals,
|
|
336
|
+
logoUrl: tokenBalance.logoUrl || ""
|
|
350
337
|
});
|
|
351
338
|
}
|
|
352
339
|
}
|
|
@@ -354,16 +341,38 @@ var WarpEvmDataLoader = class {
|
|
|
354
341
|
}
|
|
355
342
|
async getAsset(identifier) {
|
|
356
343
|
try {
|
|
344
|
+
if (identifier === this.chain.nativeToken.identifier) {
|
|
345
|
+
return this.chain.nativeToken;
|
|
346
|
+
}
|
|
347
|
+
const cacheKey = WarpCacheKey.Asset(this.config.env, this.chain.name, identifier);
|
|
348
|
+
const cachedAsset = this.cache.get(cacheKey);
|
|
349
|
+
if (cachedAsset) {
|
|
350
|
+
return cachedAsset;
|
|
351
|
+
}
|
|
352
|
+
const knownToken = findKnownTokenById(this.chain.name, this.config.env, identifier);
|
|
353
|
+
if (knownToken) {
|
|
354
|
+
return {
|
|
355
|
+
chain: this.chain.name,
|
|
356
|
+
identifier,
|
|
357
|
+
name: knownToken.name,
|
|
358
|
+
symbol: knownToken.symbol,
|
|
359
|
+
amount: 0n,
|
|
360
|
+
decimals: knownToken.decimals,
|
|
361
|
+
logoUrl: knownToken.logoUrl
|
|
362
|
+
};
|
|
363
|
+
}
|
|
357
364
|
const metadata = await this.getTokenMetadata(identifier);
|
|
358
|
-
|
|
359
|
-
return {
|
|
365
|
+
const asset = {
|
|
360
366
|
chain: this.chain.name,
|
|
361
367
|
identifier,
|
|
362
368
|
name: metadata.name,
|
|
369
|
+
symbol: metadata.symbol,
|
|
363
370
|
amount: 0n,
|
|
364
371
|
decimals: metadata.decimals,
|
|
365
372
|
logoUrl: metadata.logoUrl || ""
|
|
366
373
|
};
|
|
374
|
+
this.cache.set(cacheKey, asset, CacheTtl2.OneHour);
|
|
375
|
+
return asset;
|
|
367
376
|
} catch (error) {
|
|
368
377
|
return null;
|
|
369
378
|
}
|
|
@@ -405,40 +414,18 @@ var WarpEvmDataLoader = class {
|
|
|
405
414
|
return [];
|
|
406
415
|
}
|
|
407
416
|
async getERC20TokenBalances(address) {
|
|
408
|
-
const
|
|
409
|
-
const
|
|
410
|
-
const
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
}
|
|
421
|
-
} catch (error) {
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
const additionalTokens = await this.detectTokensFromEvents(address);
|
|
425
|
-
for (const tokenAddress of additionalTokens) {
|
|
426
|
-
if (!findKnownTokenById(this.chain.name, tokenAddress, env)) {
|
|
427
|
-
try {
|
|
428
|
-
const metadata = await this.getTokenMetadata(tokenAddress);
|
|
429
|
-
const balance = await this.getTokenBalance(address, tokenAddress);
|
|
430
|
-
if (balance > 0n) {
|
|
431
|
-
tokenBalances.push({
|
|
432
|
-
tokenAddress,
|
|
433
|
-
balance,
|
|
434
|
-
metadata
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
|
-
} catch (error) {
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
return tokenBalances;
|
|
417
|
+
const env = this.config.env === "mainnet" ? "mainnet" : "testnet";
|
|
418
|
+
const tokens = getKnownTokensForChain(this.chain.name, env);
|
|
419
|
+
const balanceReqs = tokens.map((token) => this.getTokenBalance(address, token.identifier).catch(() => 0n));
|
|
420
|
+
const balances = await Promise.all(balanceReqs);
|
|
421
|
+
return balances.map((balance, index) => ({ balance, token: tokens[index] })).filter(({ balance }) => balance > 0n).map(({ balance, token }) => ({
|
|
422
|
+
tokenAddress: token.identifier,
|
|
423
|
+
balance,
|
|
424
|
+
name: token.name,
|
|
425
|
+
symbol: token.symbol,
|
|
426
|
+
decimals: token.decimals || 18,
|
|
427
|
+
logoUrl: token.logoUrl || ""
|
|
428
|
+
}));
|
|
442
429
|
}
|
|
443
430
|
async getTokenBalance(address, tokenAddress) {
|
|
444
431
|
const contract = new ethers.Contract(tokenAddress, ERC20_ABI, this.provider);
|
|
@@ -446,55 +433,23 @@ var WarpEvmDataLoader = class {
|
|
|
446
433
|
return balance;
|
|
447
434
|
}
|
|
448
435
|
async getTokenMetadata(tokenAddress) {
|
|
449
|
-
const
|
|
450
|
-
if (
|
|
451
|
-
return
|
|
452
|
-
name: tokenInfo.name,
|
|
453
|
-
symbol: tokenInfo.symbol,
|
|
454
|
-
decimals: tokenInfo.decimals,
|
|
455
|
-
logoUrl: tokenInfo.logoURI
|
|
456
|
-
};
|
|
436
|
+
const uniswapMetadata = await this.uniswapService.getTokenMetadata(tokenAddress);
|
|
437
|
+
if (uniswapMetadata) {
|
|
438
|
+
return uniswapMetadata;
|
|
457
439
|
}
|
|
458
440
|
const contract = new ethers.Contract(tokenAddress, ERC20_ABI, this.provider);
|
|
459
441
|
const [name, symbol, decimals] = await Promise.all([
|
|
460
|
-
contract.name().catch(() =>
|
|
461
|
-
contract.symbol().catch(() =>
|
|
462
|
-
contract.decimals().catch(() =>
|
|
442
|
+
contract.name().catch(() => "Unknown Token"),
|
|
443
|
+
contract.symbol().catch(() => "UNKNOWN"),
|
|
444
|
+
contract.decimals().catch(() => 18)
|
|
463
445
|
]);
|
|
464
446
|
return {
|
|
465
|
-
name: name ||
|
|
466
|
-
symbol: symbol ||
|
|
467
|
-
decimals: decimals ||
|
|
468
|
-
logoUrl:
|
|
447
|
+
name: name || "Unknown Token",
|
|
448
|
+
symbol: symbol || "UNKNOWN",
|
|
449
|
+
decimals: decimals || 18,
|
|
450
|
+
logoUrl: ""
|
|
469
451
|
};
|
|
470
452
|
}
|
|
471
|
-
async detectTokensFromEvents(address) {
|
|
472
|
-
try {
|
|
473
|
-
const currentBlock = await this.provider.getBlockNumber();
|
|
474
|
-
const fromBlock = Math.max(0, currentBlock - 1e4);
|
|
475
|
-
const filter = {
|
|
476
|
-
fromBlock,
|
|
477
|
-
toBlock: currentBlock,
|
|
478
|
-
topics: [ethers.id("Transfer(address,address,uint256)"), null, ethers.zeroPadValue(address, 32)]
|
|
479
|
-
};
|
|
480
|
-
const logs = await this.provider.getLogs(filter);
|
|
481
|
-
const tokenAddresses = /* @__PURE__ */ new Set();
|
|
482
|
-
for (const log of logs) {
|
|
483
|
-
tokenAddresses.add(log.address);
|
|
484
|
-
}
|
|
485
|
-
return Array.from(tokenAddresses);
|
|
486
|
-
} catch (error) {
|
|
487
|
-
return [];
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
async getLogoUrl(tokenBalance) {
|
|
491
|
-
return await EvmLogoService.getLogoUrl(
|
|
492
|
-
this.chain.name,
|
|
493
|
-
tokenBalance.tokenAddress,
|
|
494
|
-
tokenBalance.metadata.name,
|
|
495
|
-
tokenBalance.metadata.symbol
|
|
496
|
-
);
|
|
497
|
-
}
|
|
498
453
|
};
|
|
499
454
|
|
|
500
455
|
// src/WarpEvmExecutor.ts
|
|
@@ -1008,9 +963,6 @@ var WarpEvmExecutor = class {
|
|
|
1008
963
|
};
|
|
1009
964
|
}
|
|
1010
965
|
}
|
|
1011
|
-
async preprocessInput(chain, input, type, value) {
|
|
1012
|
-
return input;
|
|
1013
|
-
}
|
|
1014
966
|
async estimateGasAndSetDefaults(tx, from) {
|
|
1015
967
|
try {
|
|
1016
968
|
const gasEstimate = await this.provider.estimateGas({
|
|
@@ -1227,15 +1179,16 @@ var createEvmAdapter = (chainName, chainPrefix, chainInfos) => {
|
|
|
1227
1179
|
|
|
1228
1180
|
// src/chains/arbitrum.ts
|
|
1229
1181
|
var NativeTokenArb = {
|
|
1230
|
-
chain:
|
|
1182
|
+
chain: WarpChainName6.Arbitrum,
|
|
1231
1183
|
identifier: "ARB",
|
|
1232
|
-
|
|
1184
|
+
symbol: "ARB",
|
|
1185
|
+
name: "Arbitrum",
|
|
1233
1186
|
decimals: 18,
|
|
1234
1187
|
logoUrl: "https://vleap.ai/images/tokens/arb.svg"
|
|
1235
1188
|
};
|
|
1236
|
-
var getArbitrumAdapter = createEvmAdapter(
|
|
1189
|
+
var getArbitrumAdapter = createEvmAdapter(WarpChainName6.Arbitrum, "arb", {
|
|
1237
1190
|
mainnet: {
|
|
1238
|
-
name:
|
|
1191
|
+
name: WarpChainName6.Arbitrum,
|
|
1239
1192
|
displayName: "Arbitrum",
|
|
1240
1193
|
chainId: "42161",
|
|
1241
1194
|
blockTime: 1e3,
|
|
@@ -1244,7 +1197,7 @@ var getArbitrumAdapter = createEvmAdapter(WarpChainName.Arbitrum, "arb", {
|
|
|
1244
1197
|
nativeToken: NativeTokenArb
|
|
1245
1198
|
},
|
|
1246
1199
|
testnet: {
|
|
1247
|
-
name:
|
|
1200
|
+
name: WarpChainName6.Arbitrum,
|
|
1248
1201
|
displayName: "Arbitrum Sepolia",
|
|
1249
1202
|
chainId: "421614",
|
|
1250
1203
|
blockTime: 1e3,
|
|
@@ -1253,7 +1206,7 @@ var getArbitrumAdapter = createEvmAdapter(WarpChainName.Arbitrum, "arb", {
|
|
|
1253
1206
|
nativeToken: NativeTokenArb
|
|
1254
1207
|
},
|
|
1255
1208
|
devnet: {
|
|
1256
|
-
name:
|
|
1209
|
+
name: WarpChainName6.Arbitrum,
|
|
1257
1210
|
displayName: "Arbitrum Sepolia",
|
|
1258
1211
|
chainId: "421614",
|
|
1259
1212
|
blockTime: 1e3,
|
|
@@ -1264,17 +1217,18 @@ var getArbitrumAdapter = createEvmAdapter(WarpChainName.Arbitrum, "arb", {
|
|
|
1264
1217
|
});
|
|
1265
1218
|
|
|
1266
1219
|
// src/chains/base.ts
|
|
1267
|
-
import { WarpChainName as
|
|
1220
|
+
import { WarpChainName as WarpChainName7 } from "@vleap/warps";
|
|
1268
1221
|
var NativeTokenBase = {
|
|
1269
|
-
chain:
|
|
1222
|
+
chain: WarpChainName7.Base,
|
|
1270
1223
|
identifier: "ETH",
|
|
1271
|
-
name: "
|
|
1224
|
+
name: "Ether",
|
|
1225
|
+
symbol: "ETH",
|
|
1272
1226
|
decimals: 18,
|
|
1273
1227
|
logoUrl: "https://vleap.ai/images/tokens/eth.svg"
|
|
1274
1228
|
};
|
|
1275
|
-
var getBaseAdapter = createEvmAdapter(
|
|
1229
|
+
var getBaseAdapter = createEvmAdapter(WarpChainName7.Base, "base", {
|
|
1276
1230
|
mainnet: {
|
|
1277
|
-
name:
|
|
1231
|
+
name: WarpChainName7.Base,
|
|
1278
1232
|
displayName: "Base",
|
|
1279
1233
|
chainId: "8453",
|
|
1280
1234
|
blockTime: 2e3,
|
|
@@ -1283,7 +1237,7 @@ var getBaseAdapter = createEvmAdapter(WarpChainName2.Base, "base", {
|
|
|
1283
1237
|
nativeToken: NativeTokenBase
|
|
1284
1238
|
},
|
|
1285
1239
|
testnet: {
|
|
1286
|
-
name:
|
|
1240
|
+
name: WarpChainName7.Base,
|
|
1287
1241
|
displayName: "Base Sepolia",
|
|
1288
1242
|
chainId: "84532",
|
|
1289
1243
|
blockTime: 2e3,
|
|
@@ -1292,7 +1246,7 @@ var getBaseAdapter = createEvmAdapter(WarpChainName2.Base, "base", {
|
|
|
1292
1246
|
nativeToken: NativeTokenBase
|
|
1293
1247
|
},
|
|
1294
1248
|
devnet: {
|
|
1295
|
-
name:
|
|
1249
|
+
name: WarpChainName7.Base,
|
|
1296
1250
|
displayName: "Base Sepolia",
|
|
1297
1251
|
chainId: "84532",
|
|
1298
1252
|
blockTime: 2e3,
|
|
@@ -1303,20 +1257,21 @@ var getBaseAdapter = createEvmAdapter(WarpChainName2.Base, "base", {
|
|
|
1303
1257
|
});
|
|
1304
1258
|
|
|
1305
1259
|
// src/chains/combined.ts
|
|
1306
|
-
import { WarpChainName as
|
|
1260
|
+
import { WarpChainName as WarpChainName9 } from "@vleap/warps";
|
|
1307
1261
|
|
|
1308
1262
|
// src/chains/ethereum.ts
|
|
1309
|
-
import { WarpChainName as
|
|
1263
|
+
import { WarpChainName as WarpChainName8 } from "@vleap/warps";
|
|
1310
1264
|
var NativeTokenEth = {
|
|
1311
|
-
chain:
|
|
1265
|
+
chain: WarpChainName8.Ethereum,
|
|
1312
1266
|
identifier: "ETH",
|
|
1313
|
-
|
|
1267
|
+
symbol: "ETH",
|
|
1268
|
+
name: "Ether",
|
|
1314
1269
|
decimals: 18,
|
|
1315
1270
|
logoUrl: "https://vleap.ai/images/tokens/eth.svg"
|
|
1316
1271
|
};
|
|
1317
|
-
var getEthereumAdapter = createEvmAdapter(
|
|
1272
|
+
var getEthereumAdapter = createEvmAdapter(WarpChainName8.Ethereum, "eth", {
|
|
1318
1273
|
mainnet: {
|
|
1319
|
-
name:
|
|
1274
|
+
name: WarpChainName8.Ethereum,
|
|
1320
1275
|
displayName: "Ethereum Mainnet",
|
|
1321
1276
|
chainId: "1",
|
|
1322
1277
|
blockTime: 12e3,
|
|
@@ -1325,7 +1280,7 @@ var getEthereumAdapter = createEvmAdapter(WarpChainName3.Ethereum, "eth", {
|
|
|
1325
1280
|
nativeToken: NativeTokenEth
|
|
1326
1281
|
},
|
|
1327
1282
|
testnet: {
|
|
1328
|
-
name:
|
|
1283
|
+
name: WarpChainName8.Ethereum,
|
|
1329
1284
|
displayName: "Ethereum Sepolia",
|
|
1330
1285
|
chainId: "11155111",
|
|
1331
1286
|
blockTime: 12e3,
|
|
@@ -1334,7 +1289,7 @@ var getEthereumAdapter = createEvmAdapter(WarpChainName3.Ethereum, "eth", {
|
|
|
1334
1289
|
nativeToken: NativeTokenEth
|
|
1335
1290
|
},
|
|
1336
1291
|
devnet: {
|
|
1337
|
-
name:
|
|
1292
|
+
name: WarpChainName8.Ethereum,
|
|
1338
1293
|
displayName: "Ethereum Sepolia",
|
|
1339
1294
|
chainId: "11155111",
|
|
1340
1295
|
blockTime: 12e3,
|
|
@@ -1350,18 +1305,18 @@ var getAllEvmAdapters = (config, fallback) => [
|
|
|
1350
1305
|
getArbitrumAdapter(config, fallback),
|
|
1351
1306
|
getBaseAdapter(config, fallback)
|
|
1352
1307
|
];
|
|
1353
|
-
var getAllEvmChainNames = () => [
|
|
1308
|
+
var getAllEvmChainNames = () => [WarpChainName9.Ethereum, WarpChainName9.Base, WarpChainName9.Arbitrum];
|
|
1354
1309
|
export {
|
|
1355
1310
|
ArbitrumExplorers,
|
|
1356
1311
|
BaseExplorers,
|
|
1357
1312
|
EthereumExplorers,
|
|
1358
1313
|
EvmExplorers,
|
|
1359
|
-
EvmLogoService,
|
|
1360
1314
|
ExplorerUrls,
|
|
1361
1315
|
KnownTokens,
|
|
1362
1316
|
NativeTokenArb,
|
|
1363
1317
|
NativeTokenBase,
|
|
1364
1318
|
NativeTokenEth,
|
|
1319
|
+
UniswapService,
|
|
1365
1320
|
WarpEvmConstants,
|
|
1366
1321
|
WarpEvmDataLoader,
|
|
1367
1322
|
WarpEvmExecutor,
|