@continuumdao/ctm-mpc-defi 0.2.41 → 0.2.43
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/agent/catalog.cjs +219 -27
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +914 -197
- package/dist/agent/catalog.js +214 -28
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/aerodrome/SKILL.md +1 -1
- package/dist/agent/skills/arcus/SKILL.md +1 -1
- package/dist/agent/skills/morpho/SKILL.md +32 -5
- package/dist/agent/skills/yield-compare/SKILL.md +6 -2
- package/dist/chains/evm/index.cjs +6 -2
- package/dist/chains/evm/index.cjs.map +1 -1
- package/dist/chains/evm/index.js +7 -3
- package/dist/chains/evm/index.js.map +1 -1
- package/dist/core/index.cjs +14 -0
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +7 -2
- package/dist/core/index.js +13 -2
- package/dist/core/index.js.map +1 -1
- package/dist/index.cjs +45 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +44 -8
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/aave-v4/index.cjs +11 -7
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.js +12 -8
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/aerodrome/index.cjs +81 -50
- package/dist/protocols/evm/aerodrome/index.cjs.map +1 -1
- package/dist/protocols/evm/aerodrome/index.d.ts +8 -8
- package/dist/protocols/evm/aerodrome/index.js +96 -65
- package/dist/protocols/evm/aerodrome/index.js.map +1 -1
- package/dist/protocols/evm/arcus/index.cjs +6 -2
- package/dist/protocols/evm/arcus/index.cjs.map +1 -1
- package/dist/protocols/evm/arcus/index.js +7 -3
- package/dist/protocols/evm/arcus/index.js.map +1 -1
- package/dist/protocols/evm/circle-cctp/index.cjs +7 -3
- package/dist/protocols/evm/circle-cctp/index.cjs.map +1 -1
- package/dist/protocols/evm/circle-cctp/index.js +8 -4
- package/dist/protocols/evm/circle-cctp/index.js.map +1 -1
- package/dist/protocols/evm/compound-v3/index.cjs +9 -3
- package/dist/protocols/evm/compound-v3/index.cjs.map +1 -1
- package/dist/protocols/evm/compound-v3/index.js +10 -4
- package/dist/protocols/evm/compound-v3/index.js.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.cjs +11 -5
- package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.js +12 -6
- package/dist/protocols/evm/continuum-dao/index.js.map +1 -1
- package/dist/protocols/evm/curve-dao/index.cjs +8 -4
- package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/curve-dao/index.js +9 -5
- package/dist/protocols/evm/curve-dao/index.js.map +1 -1
- package/dist/protocols/evm/ethena/index.cjs +13 -9
- package/dist/protocols/evm/ethena/index.cjs.map +1 -1
- package/dist/protocols/evm/ethena/index.js +14 -10
- package/dist/protocols/evm/ethena/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +20 -16
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.js +21 -17
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/gmx/index.cjs +12 -8
- package/dist/protocols/evm/gmx/index.cjs.map +1 -1
- package/dist/protocols/evm/gmx/index.js +13 -9
- package/dist/protocols/evm/gmx/index.js.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.cjs +5 -1
- package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.js +6 -2
- package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
- package/dist/protocols/evm/lido/index.cjs +7 -3
- package/dist/protocols/evm/lido/index.cjs.map +1 -1
- package/dist/protocols/evm/lido/index.js +8 -4
- package/dist/protocols/evm/lido/index.js.map +1 -1
- package/dist/protocols/evm/maple/index.cjs +7 -3
- package/dist/protocols/evm/maple/index.cjs.map +1 -1
- package/dist/protocols/evm/maple/index.js +8 -4
- package/dist/protocols/evm/maple/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +454 -64
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +123 -2
- package/dist/protocols/evm/morpho/index.js +432 -66
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/dist/protocols/evm/pendle/index.cjs +9 -3
- package/dist/protocols/evm/pendle/index.cjs.map +1 -1
- package/dist/protocols/evm/pendle/index.js +10 -4
- package/dist/protocols/evm/pendle/index.js.map +1 -1
- package/dist/protocols/evm/sky/index.cjs +17 -13
- package/dist/protocols/evm/sky/index.cjs.map +1 -1
- package/dist/protocols/evm/sky/index.js +18 -14
- package/dist/protocols/evm/sky/index.js.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.cjs +13 -7
- package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.js +14 -8
- package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
- package/dist/protocols/evm/venice/index.cjs +10 -4
- package/dist/protocols/evm/venice/index.cjs.map +1 -1
- package/dist/protocols/evm/venice/index.js +10 -4
- package/dist/protocols/evm/venice/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -206,6 +206,60 @@ var init_addresses = __esm({
|
|
|
206
206
|
cache = null;
|
|
207
207
|
}
|
|
208
208
|
});
|
|
209
|
+
function isCoinbaseB20AssetToken(address) {
|
|
210
|
+
try {
|
|
211
|
+
return viem.getAddress(address).toLowerCase().startsWith(exports.AERODROME_B20_ASSET_PREFIX);
|
|
212
|
+
} catch {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function looksLikeCoinbaseStockSymbol(symbol) {
|
|
217
|
+
return /^[A-Za-z][A-Za-z0-9]{0,10}c$/.test((symbol ?? "").trim());
|
|
218
|
+
}
|
|
219
|
+
function lookupCoinbaseB20StockToken(token) {
|
|
220
|
+
const key = (token ?? "").trim();
|
|
221
|
+
if (!key) return null;
|
|
222
|
+
const lower = key.toLowerCase();
|
|
223
|
+
const bySymbol = exports.AERODROME_COINBASE_STOCK_TOKENS.find((t) => t.symbol.toLowerCase() === lower);
|
|
224
|
+
if (bySymbol) {
|
|
225
|
+
return {
|
|
226
|
+
address: viem.getAddress(bySymbol.address),
|
|
227
|
+
symbol: bySymbol.symbol,
|
|
228
|
+
decimals: exports.AERODROME_COINBASE_STOCK_DECIMALS
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
try {
|
|
232
|
+
const address = viem.getAddress(key);
|
|
233
|
+
const byAddr = exports.AERODROME_COINBASE_STOCK_TOKENS.find((t) => viem.getAddress(t.address).toLowerCase() === address.toLowerCase());
|
|
234
|
+
if (byAddr) {
|
|
235
|
+
return { address, symbol: byAddr.symbol, decimals: exports.AERODROME_COINBASE_STOCK_DECIMALS };
|
|
236
|
+
}
|
|
237
|
+
} catch {
|
|
238
|
+
}
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
exports.AERODROME_COINBASE_STOCK_TOKENS = void 0; exports.AERODROME_COINBASE_STOCK_DECIMALS = void 0; exports.AERODROME_B20_ASSET_PREFIX = void 0;
|
|
242
|
+
var init_coinbaseB20 = __esm({
|
|
243
|
+
"src/protocols/evm/shared/coinbaseB20.ts"() {
|
|
244
|
+
exports.AERODROME_COINBASE_STOCK_TOKENS = [
|
|
245
|
+
{ symbol: "AAPLc", name: "Apple Inc.", address: "0xb200000000000000000000C2e324d24d7eEcd1fb" },
|
|
246
|
+
{ symbol: "NVDAc", name: "NVIDIA Corporation", address: "0xb20000000000000000000078ee7ce2fE4908108C" },
|
|
247
|
+
{ symbol: "METAc", name: "Meta Platforms Inc.", address: "0xb2000000000000000000008bC8786B856E61707C" },
|
|
248
|
+
{ symbol: "GOOGLc", name: "Alphabet Inc.", address: "0xb2000000000000000000002D0BA3164cc74f58B7" },
|
|
249
|
+
{ symbol: "AMZNc", name: "Amazon.com Inc.", address: "0xb200000000000000000000d9192b6B456483C2E8" },
|
|
250
|
+
{ symbol: "TSLAc", name: "Tesla Inc.", address: "0xb2000000000000000000001e800a7f5189430cD0" },
|
|
251
|
+
{ symbol: "MSFTc", name: "Microsoft Corporation", address: "0xB200000000000000000000Ab99cFa739E253872B" },
|
|
252
|
+
{ symbol: "COINc", name: "Coinbase Global Inc.", address: "0xb200000000000000000000c85a31389D71F3ecfb" },
|
|
253
|
+
{ symbol: "MSTRc", name: "Strategy Inc.", address: "0xb2000000000000000000004884b426556b92883d" },
|
|
254
|
+
{ symbol: "CRCLc", name: "Circle Internet Group Inc.", address: "0xB20000000000000000000019f6E7C675b73C2e4D" },
|
|
255
|
+
{ symbol: "INTCc", name: "Intel Corporation", address: "0xB2000000000000000000004AFF16039bA04bdFBc" },
|
|
256
|
+
{ symbol: "SNDKc", name: "Sandisk Corporation", address: "0xb200000000000000000000397293Cb8cda9a10c5" },
|
|
257
|
+
{ symbol: "SPCXc", name: "Space Exploration Technologies Corp.", address: "0xb2000000000000000000007b9fcbd005511aCBd5" }
|
|
258
|
+
];
|
|
259
|
+
exports.AERODROME_COINBASE_STOCK_DECIMALS = 8;
|
|
260
|
+
exports.AERODROME_B20_ASSET_PREFIX = "0xb200000000000000000000";
|
|
261
|
+
}
|
|
262
|
+
});
|
|
209
263
|
|
|
210
264
|
// src/protocols/evm/aerodrome/abi.ts
|
|
211
265
|
var lpSugarAbi, routerAbi, mixedQuoterAbi, mixedQuoterV3Abi, v2PoolFactoryAbi, clPoolFactoryAbi, clPoolAbi, sugarHelperAbi, nfpmAbi, clSwapRouterAbi, poolClaimFeesAbi, gaugeAbi, clGaugeAbi, aerodromePoolMetaAbi, aerodromeVoterAbi, erc20Abi;
|
|
@@ -983,6 +1037,14 @@ var init_abi = __esm({
|
|
|
983
1037
|
];
|
|
984
1038
|
}
|
|
985
1039
|
});
|
|
1040
|
+
function defiEvmTransport(rpcUrl, opts) {
|
|
1041
|
+
const url = rpcUrl.trim();
|
|
1042
|
+
return viem.http(url, opts);
|
|
1043
|
+
}
|
|
1044
|
+
var init_defiEvmClient = __esm({
|
|
1045
|
+
"src/core/defiEvmClient.ts"() {
|
|
1046
|
+
}
|
|
1047
|
+
});
|
|
986
1048
|
function aerodromePublicClient(rpcUrl) {
|
|
987
1049
|
const url = requireAerodromeRpcUrl(rpcUrl);
|
|
988
1050
|
const chain = viem.defineChain({
|
|
@@ -997,25 +1059,16 @@ function aerodromePublicClient(rpcUrl) {
|
|
|
997
1059
|
}
|
|
998
1060
|
}
|
|
999
1061
|
});
|
|
1000
|
-
return viem.createPublicClient({ chain, transport:
|
|
1062
|
+
return viem.createPublicClient({ chain, transport: defiEvmTransport(url) });
|
|
1001
1063
|
}
|
|
1002
1064
|
var init_client = __esm({
|
|
1003
1065
|
"src/protocols/evm/aerodrome/client.ts"() {
|
|
1066
|
+
init_defiEvmClient();
|
|
1004
1067
|
init_support();
|
|
1005
1068
|
}
|
|
1006
1069
|
});
|
|
1007
|
-
function isAerodromeB20AssetToken(address) {
|
|
1008
|
-
try {
|
|
1009
|
-
return viem.getAddress(address).toLowerCase().startsWith(exports.AERODROME_B20_ASSET_PREFIX);
|
|
1010
|
-
} catch {
|
|
1011
|
-
return false;
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1014
1070
|
function isAerodromeCoinbaseStockToken(address) {
|
|
1015
|
-
return
|
|
1016
|
-
}
|
|
1017
|
-
function looksLikeCoinbaseStockSymbol(symbol) {
|
|
1018
|
-
return /^[A-Za-z][A-Za-z0-9]{0,10}c$/.test((symbol ?? "").trim());
|
|
1071
|
+
return isCoinbaseB20AssetToken(address);
|
|
1019
1072
|
}
|
|
1020
1073
|
function lookupAerodromeKnownToken(token) {
|
|
1021
1074
|
const key = (token ?? "").trim();
|
|
@@ -1030,14 +1083,8 @@ function lookupAerodromeKnownToken(token) {
|
|
|
1030
1083
|
if (lower === "aero") {
|
|
1031
1084
|
return { address: viem.getAddress(exports.AERODROME_BASE_ADDRESSES_FALLBACK.aero), symbol: "AERO", decimals: 18 };
|
|
1032
1085
|
}
|
|
1033
|
-
const stock =
|
|
1034
|
-
if (stock)
|
|
1035
|
-
return {
|
|
1036
|
-
address: viem.getAddress(stock.address),
|
|
1037
|
-
symbol: stock.symbol,
|
|
1038
|
-
decimals: exports.AERODROME_COINBASE_STOCK_DECIMALS
|
|
1039
|
-
};
|
|
1040
|
-
}
|
|
1086
|
+
const stock = lookupCoinbaseB20StockToken(key);
|
|
1087
|
+
if (stock) return stock;
|
|
1041
1088
|
try {
|
|
1042
1089
|
const address = viem.getAddress(key);
|
|
1043
1090
|
const want = address.toLowerCase();
|
|
@@ -1050,10 +1097,6 @@ function lookupAerodromeKnownToken(token) {
|
|
|
1050
1097
|
if (want === viem.getAddress(exports.AERODROME_BASE_ADDRESSES_FALLBACK.aero).toLowerCase()) {
|
|
1051
1098
|
return { address, symbol: "AERO", decimals: 18 };
|
|
1052
1099
|
}
|
|
1053
|
-
const byAddr = exports.AERODROME_COINBASE_STOCK_TOKENS.find((t) => viem.getAddress(t.address).toLowerCase() === want);
|
|
1054
|
-
if (byAddr) {
|
|
1055
|
-
return { address, symbol: byAddr.symbol, decimals: exports.AERODROME_COINBASE_STOCK_DECIMALS };
|
|
1056
|
-
}
|
|
1057
1100
|
} catch {
|
|
1058
1101
|
}
|
|
1059
1102
|
return null;
|
|
@@ -1114,7 +1157,7 @@ function parseBaseTokenizedStockDocs(text) {
|
|
|
1114
1157
|
} catch {
|
|
1115
1158
|
continue;
|
|
1116
1159
|
}
|
|
1117
|
-
if (!
|
|
1160
|
+
if (!isCoinbaseB20AssetToken(address)) continue;
|
|
1118
1161
|
const key = address.toLowerCase();
|
|
1119
1162
|
if (seen.has(key)) continue;
|
|
1120
1163
|
seen.add(key);
|
|
@@ -1165,7 +1208,7 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1165
1208
|
}
|
|
1166
1209
|
const candidates = /* @__PURE__ */ new Map();
|
|
1167
1210
|
const add = (addressRaw, meta) => {
|
|
1168
|
-
if (!
|
|
1211
|
+
if (!isCoinbaseB20AssetToken(addressRaw)) return;
|
|
1169
1212
|
const address = viem.getAddress(addressRaw);
|
|
1170
1213
|
const key = address.toLowerCase();
|
|
1171
1214
|
const prev = candidates.get(key);
|
|
@@ -1183,7 +1226,7 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1183
1226
|
add(t.address, { symbol: t.symbol, decimals: exports.AERODROME_COINBASE_STOCK_DECIMALS });
|
|
1184
1227
|
}
|
|
1185
1228
|
for (const t of args.knownTokens ?? []) {
|
|
1186
|
-
if (!
|
|
1229
|
+
if (!isCoinbaseB20AssetToken(t.address)) continue;
|
|
1187
1230
|
const symbol = (t.symbol ?? "").trim();
|
|
1188
1231
|
const seeded = Boolean(seedSymbol(viem.getAddress(t.address)));
|
|
1189
1232
|
if (!seeded && symbol && !looksLikeCoinbaseStockSymbol(symbol)) continue;
|
|
@@ -1220,30 +1263,15 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1220
1263
|
return seedStockRows();
|
|
1221
1264
|
}
|
|
1222
1265
|
}
|
|
1223
|
-
|
|
1266
|
+
var BASE_STOCKS_DOCS_URLS, MAX_DOCS_CHARS, MAX_OFFICIAL_STOCKS;
|
|
1224
1267
|
var init_stockTokens = __esm({
|
|
1225
1268
|
"src/protocols/evm/aerodrome/stockTokens.ts"() {
|
|
1269
|
+
init_coinbaseB20();
|
|
1226
1270
|
init_addresses();
|
|
1227
1271
|
init_abi();
|
|
1228
1272
|
init_client();
|
|
1229
1273
|
init_support();
|
|
1230
|
-
|
|
1231
|
-
{ symbol: "AAPLc", name: "Apple Inc.", address: "0xb200000000000000000000C2e324d24d7eEcd1fb" },
|
|
1232
|
-
{ symbol: "NVDAc", name: "NVIDIA Corporation", address: "0xb20000000000000000000078ee7ce2fE4908108C" },
|
|
1233
|
-
{ symbol: "METAc", name: "Meta Platforms Inc.", address: "0xb2000000000000000000008bC8786B856E61707C" },
|
|
1234
|
-
{ symbol: "GOOGLc", name: "Alphabet Inc.", address: "0xb2000000000000000000002D0BA3164cc74f58B7" },
|
|
1235
|
-
{ symbol: "AMZNc", name: "Amazon.com Inc.", address: "0xb200000000000000000000d9192b6B456483C2E8" },
|
|
1236
|
-
{ symbol: "TSLAc", name: "Tesla Inc.", address: "0xb2000000000000000000001e800a7f5189430cD0" },
|
|
1237
|
-
{ symbol: "MSFTc", name: "Microsoft Corporation", address: "0xB200000000000000000000Ab99cFa739E253872B" },
|
|
1238
|
-
{ symbol: "COINc", name: "Coinbase Global Inc.", address: "0xb200000000000000000000c85a31389D71F3ecfb" },
|
|
1239
|
-
{ symbol: "MSTRc", name: "Strategy Inc.", address: "0xb2000000000000000000004884b426556b92883d" },
|
|
1240
|
-
{ symbol: "CRCLc", name: "Circle Internet Group Inc.", address: "0xB20000000000000000000019f6E7C675b73C2e4D" },
|
|
1241
|
-
{ symbol: "INTCc", name: "Intel Corporation", address: "0xB2000000000000000000004AFF16039bA04bdFBc" },
|
|
1242
|
-
{ symbol: "SNDKc", name: "Sandisk Corporation", address: "0xb200000000000000000000397293Cb8cda9a10c5" },
|
|
1243
|
-
{ symbol: "SPCXc", name: "Space Exploration Technologies Corp.", address: "0xb2000000000000000000007b9fcbd005511aCBd5" }
|
|
1244
|
-
];
|
|
1245
|
-
exports.AERODROME_COINBASE_STOCK_DECIMALS = 8;
|
|
1246
|
-
exports.AERODROME_B20_ASSET_PREFIX = "0xb200000000000000000000";
|
|
1274
|
+
init_coinbaseB20();
|
|
1247
1275
|
BASE_STOCKS_DOCS_URLS = [
|
|
1248
1276
|
"https://docs.base.org/base-chain/asset-issuance/tokenized-stocks-on-base.md",
|
|
1249
1277
|
"https://docs.base.org/base-chain/asset-issuance/tokenized-stocks-on-base"
|
|
@@ -1739,7 +1767,7 @@ async function aerodromeFetchStockLpYieldsSummary(args) {
|
|
|
1739
1767
|
const addrs = await loadAerodromeAddresses();
|
|
1740
1768
|
const scanned = await scanSugarTop(args.rpcUrl);
|
|
1741
1769
|
const aeroUsd = aeroUsdPriceFromRows(scanned, addrs.aero);
|
|
1742
|
-
const stock = scanned.filter((r) =>
|
|
1770
|
+
const stock = scanned.filter((r) => isCoinbaseB20AssetToken(r.token0) || isCoinbaseB20AssetToken(r.token1));
|
|
1743
1771
|
const pools = rankAndCap(stock.map((r) => toYieldRow(r, aeroUsd)), args.query);
|
|
1744
1772
|
return {
|
|
1745
1773
|
chainId: exports.AERODROME_CHAIN_ID,
|
|
@@ -2466,6 +2494,9 @@ async function aerodromeQuote(args) {
|
|
|
2466
2494
|
init_abi();
|
|
2467
2495
|
init_addresses();
|
|
2468
2496
|
|
|
2497
|
+
// src/chains/evm/buildBatch.ts
|
|
2498
|
+
init_defiEvmClient();
|
|
2499
|
+
|
|
2469
2500
|
// src/core/purpose.ts
|
|
2470
2501
|
function mergePurposeText(purposeText, purposeSuffix) {
|
|
2471
2502
|
const t = (purposeText ?? "").trim();
|
|
@@ -2556,7 +2587,7 @@ async function buildEvmMultisignBatch(args) {
|
|
|
2556
2587
|
nativeCurrency: { decimals: 18, name: "Ether", symbol: "ETH" },
|
|
2557
2588
|
rpcUrls: { default: { http: [rpcUrl] } }
|
|
2558
2589
|
});
|
|
2559
|
-
const publicClient = viem.createPublicClient({ chain: ch, transport:
|
|
2590
|
+
const publicClient = viem.createPublicClient({ chain: ch, transport: defiEvmTransport(rpcUrl) });
|
|
2560
2591
|
const feeParams = await continuumNodeSdk.fetchChainFeeParams(rpcUrl, chainId);
|
|
2561
2592
|
const legacy = Boolean(chainDetail?.legacy) || !feeParams.isEip1559;
|
|
2562
2593
|
const latestBaseFeeWei = !legacy ? (await publicClient.getBlock({ blockTag: "latest" })).baseFeePerGas ?? 0n : 0n;
|
|
@@ -3091,7 +3122,7 @@ function pairTokenLabel(address, isNative) {
|
|
|
3091
3122
|
function noDirectPoolHint(args) {
|
|
3092
3123
|
const a = pairTokenLabel(args.tokenA, args.isNativeA);
|
|
3093
3124
|
const b = pairTokenLabel(args.tokenB, args.isNativeB);
|
|
3094
|
-
const stockAddr =
|
|
3125
|
+
const stockAddr = isCoinbaseB20AssetToken(args.tokenB) ? args.tokenB : isCoinbaseB20AssetToken(args.tokenA) ? args.tokenA : null;
|
|
3095
3126
|
if (stockAddr) {
|
|
3096
3127
|
const sym = pairTokenLabel(stockAddr, false);
|
|
3097
3128
|
return `No ${a}/${b} pool on Aerodrome. ${sym} liquidity is on Slipstream vs USDC (swaps hop through USDC). Pick USDC as the pair token to add ${sym}/USDC liquidity.`;
|
|
@@ -4050,7 +4081,7 @@ function mergeStocksIntoListed(tokens, stocks) {
|
|
|
4050
4081
|
});
|
|
4051
4082
|
}
|
|
4052
4083
|
const stocksFirst = stocks.map((s) => byAddr.get(s.address.toLowerCase())).filter(Boolean);
|
|
4053
|
-
const rest = [...byAddr.values()].filter((t) => !
|
|
4084
|
+
const rest = [...byAddr.values()].filter((t) => !isCoinbaseB20AssetToken(t.address));
|
|
4054
4085
|
return [...stocksFirst, ...rest];
|
|
4055
4086
|
}
|
|
4056
4087
|
async function aerodromeFetchListedTokensSummary(args) {
|
|
@@ -4309,7 +4340,7 @@ exports.fetchOfficialBaseTokenizedStocks = fetchOfficialBaseTokenizedStocks;
|
|
|
4309
4340
|
exports.findAerodromePaths = findAerodromePaths;
|
|
4310
4341
|
exports.formatAerodromeLpYieldLabel = formatAerodromeLpYieldLabel;
|
|
4311
4342
|
exports.formatAerodromePriceImpact = formatAerodromePriceImpact;
|
|
4312
|
-
exports.isAerodromeB20AssetToken =
|
|
4343
|
+
exports.isAerodromeB20AssetToken = isCoinbaseB20AssetToken;
|
|
4313
4344
|
exports.isAerodromeChainSupported = isAerodromeChainSupported;
|
|
4314
4345
|
exports.isAerodromeCoinbaseStockToken = isAerodromeCoinbaseStockToken;
|
|
4315
4346
|
exports.isAerodromeNativeToken = isAerodromeNativeToken;
|