@continuumdao/ctm-mpc-defi 0.2.42 → 0.2.44
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 +352 -36
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +1542 -236
- package/dist/agent/catalog.js +343 -37
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/aave-v4/SKILL.md +9 -1
- package/dist/agent/skills/aerodrome/SKILL.md +1 -1
- package/dist/agent/skills/arcus/SKILL.md +1 -1
- package/dist/agent/skills/euler-v2/SKILL.md +9 -0
- package/dist/agent/skills/morpho/SKILL.md +39 -6
- package/dist/agent/skills/yield-compare/SKILL.md +6 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/merklDistributor-CdqtZC9N.d.ts +65 -0
- package/dist/multisign-Dr0j9fHm.d.ts +489 -0
- package/dist/protocols/evm/aave-v4/index.cjs +207 -2
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +12 -467
- package/dist/protocols/evm/aave-v4/index.js +192 -3
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/aerodrome/index.cjs +67 -48
- 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 +82 -63
- package/dist/protocols/evm/aerodrome/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +209 -1
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +9 -1
- package/dist/protocols/evm/euler-v2/index.js +208 -2
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +610 -56
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +131 -2
- package/dist/protocols/evm/morpho/index.js +573 -58
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -72,9 +72,8 @@ declare function aerodromeClSwapRouterForFactory(addrs: AerodromeAddresses, fact
|
|
|
72
72
|
/**
|
|
73
73
|
* Seed of Coinbase B20 tokenized stocks on Base.
|
|
74
74
|
* Official table: https://docs.base.org/base-chain/asset-issuance/tokenized-stocks-on-base
|
|
75
|
-
* New names are merged at runtime from that page + Sugar tokens with the B20 ASSET prefix.
|
|
76
75
|
*/
|
|
77
|
-
declare const
|
|
76
|
+
declare const COINBASE_B20_STOCK_TOKENS: readonly [{
|
|
78
77
|
readonly symbol: "AAPLc";
|
|
79
78
|
readonly name: "Apple Inc.";
|
|
80
79
|
readonly address: "0xb200000000000000000000C2e324d24d7eEcd1fb";
|
|
@@ -127,9 +126,13 @@ declare const AERODROME_COINBASE_STOCK_TOKENS: readonly [{
|
|
|
127
126
|
readonly name: "Space Exploration Technologies Corp.";
|
|
128
127
|
readonly address: "0xb2000000000000000000007b9fcbd005511aCBd5";
|
|
129
128
|
}];
|
|
130
|
-
declare const
|
|
129
|
+
declare const COINBASE_B20_STOCK_DECIMALS: 8;
|
|
131
130
|
/** B20 ASSET variant addresses: `[10-byte 0xb200…][variant 0x00][9-byte hash]`. */
|
|
132
|
-
declare const
|
|
131
|
+
declare const COINBASE_B20_ASSET_PREFIX = "0xb200000000000000000000";
|
|
132
|
+
declare function isCoinbaseB20AssetToken(address: string): boolean;
|
|
133
|
+
declare function looksLikeCoinbaseStockSymbol(symbol: string): boolean;
|
|
134
|
+
|
|
135
|
+
declare function isAerodromeCoinbaseStockToken(address: string): boolean;
|
|
133
136
|
type AerodromeStockTokenRow = {
|
|
134
137
|
address: Address;
|
|
135
138
|
symbol: string;
|
|
@@ -137,9 +140,6 @@ type AerodromeStockTokenRow = {
|
|
|
137
140
|
decimals: number;
|
|
138
141
|
issued: boolean;
|
|
139
142
|
};
|
|
140
|
-
declare function isAerodromeB20AssetToken(address: string): boolean;
|
|
141
|
-
declare function isAerodromeCoinbaseStockToken(address: string): boolean;
|
|
142
|
-
declare function looksLikeCoinbaseStockSymbol(symbol: string): boolean;
|
|
143
143
|
type AerodromeKnownToken = {
|
|
144
144
|
address: Address;
|
|
145
145
|
symbol: string;
|
|
@@ -856,4 +856,4 @@ declare function aerodromePositionKey(row: {
|
|
|
856
856
|
|
|
857
857
|
declare const aerodromeProtocolModule: ProtocolModule;
|
|
858
858
|
|
|
859
|
-
export { AERODROME_B20_ASSET_PREFIX, AERODROME_BASE_ADDRESSES_FALLBACK, AERODROME_CHAIN_ID, AERODROME_CL_FACTORY_NEWEST_BIT, AERODROME_CL_FACTORY_OLDEST_BIT, AERODROME_COINBASE_STOCK_DECIMALS, AERODROME_COINBASE_STOCK_TOKENS, AERODROME_IMPORTANT_POOL_CAP, AERODROME_NATIVE_PLACEHOLDER, AERODROME_PROTOCOL_ID, AERODROME_STABLE_FILLER, AERODROME_USDC_BASE, AERODROME_VOLATILE_FILLER, AERODROME_WETH_BASE, type AerodromeAddLiquidityQuote, type AerodromeAddresses, type AerodromeClDepositQuote, type AerodromeKnownToken, type AerodromeListedToken, type AerodromeLpRow, type AerodromeLpYieldRow, type AerodromePositionRow, type AerodromePositionWithPool, type AerodromeQuoteResult, type AerodromeRouteHop, type AerodromeStockTokenRow, type AerodromeSwapPool, aerodromeClFactoryList, aerodromeClSwapRouterForFactory, aerodromeCoinbaseStockAddresses, aerodromeDiscoverConnectorPools, aerodromeDiscoverConnectorPoolsLoaded, aerodromeDiscoverDirectPools, aerodromeDiscoverPoolsSummary, aerodromeFallbackAddresses, aerodromeFetchImportantPoolsSummary, aerodromeFetchListedTokens, aerodromeFetchListedTokensSummary, aerodromeFetchLpYieldsForPair, aerodromeFetchLpYieldsForPools, aerodromeFetchLpYieldsSummary, aerodromeFetchPools, aerodromeFetchPoolsByAddress, aerodromeFetchPoolsSummary, aerodromeFetchPositions, aerodromeFetchPositionsSummary, aerodromeFetchPositionsWithPools, aerodromeFetchStockLpYieldsSummary, aerodromeFetchSwapPools, aerodromeMixedPathFiller, aerodromeOnChainDeadlineUnix, aerodromePositionKey, aerodromePositionLabel, aerodromeProbeAmountIn, aerodromeProtocolModule, aerodromeQuote, aerodromeQuoteAddLiquidity, aerodromeQuoteClDeposit, aerodromeResolveStockTokens, aerodromeUnissuedStockMessage, assertAerodromeStockIssued, buildAerodromeLiquidityPurposePrefill, buildAerodromeRewardsPurposePrefill, buildAerodromeSwapPurposePrefill, buildEvmMultisignBodyAerodromeAddLiquidityBatch, buildEvmMultisignBodyAerodromeClBurnBatch, buildEvmMultisignBodyAerodromeClCollectBatch, buildEvmMultisignBodyAerodromeClDecreaseBatch, buildEvmMultisignBodyAerodromeClIncreaseBatch, buildEvmMultisignBodyAerodromeClMintBatch, buildEvmMultisignBodyAerodromeClaimEmissionsBatch, buildEvmMultisignBodyAerodromeClaimFeesBatch, buildEvmMultisignBodyAerodromeGaugeStakeBatch, buildEvmMultisignBodyAerodromeGaugeUnstakeBatch, buildEvmMultisignBodyAerodromeRemoveLiquidityBatch, buildEvmMultisignBodyAerodromeSwapBatch, computeAerodromePriceImpactPercent, encodeAerodromeMixedPath, fetchOfficialBaseTokenizedStocks, findAerodromePaths, formatAerodromeLpYieldLabel, formatAerodromePriceImpact, isAerodromeB20AssetToken, isAerodromeChainSupported, isAerodromeCoinbaseStockToken, isAerodromeNativeToken, loadAerodromeAddresses, looksLikeCoinbaseStockSymbol, lookupAerodromeKnownToken, parseBaseTokenizedStockDocs, parseSecurityMdxAddresses, parseSugarBaseEnv, quoteAerodromeHopsAmountOut, requireAerodromeRpcUrl, resetAerodromeAddressCache, resolveAerodromeErc20OrWeth, tryAerodromeSdkQuote, tryAerodromeSdkUnsignedSwap };
|
|
859
|
+
export { COINBASE_B20_ASSET_PREFIX as AERODROME_B20_ASSET_PREFIX, AERODROME_BASE_ADDRESSES_FALLBACK, AERODROME_CHAIN_ID, AERODROME_CL_FACTORY_NEWEST_BIT, AERODROME_CL_FACTORY_OLDEST_BIT, COINBASE_B20_STOCK_DECIMALS as AERODROME_COINBASE_STOCK_DECIMALS, COINBASE_B20_STOCK_TOKENS as AERODROME_COINBASE_STOCK_TOKENS, AERODROME_IMPORTANT_POOL_CAP, AERODROME_NATIVE_PLACEHOLDER, AERODROME_PROTOCOL_ID, AERODROME_STABLE_FILLER, AERODROME_USDC_BASE, AERODROME_VOLATILE_FILLER, AERODROME_WETH_BASE, type AerodromeAddLiquidityQuote, type AerodromeAddresses, type AerodromeClDepositQuote, type AerodromeKnownToken, type AerodromeListedToken, type AerodromeLpRow, type AerodromeLpYieldRow, type AerodromePositionRow, type AerodromePositionWithPool, type AerodromeQuoteResult, type AerodromeRouteHop, type AerodromeStockTokenRow, type AerodromeSwapPool, aerodromeClFactoryList, aerodromeClSwapRouterForFactory, aerodromeCoinbaseStockAddresses, aerodromeDiscoverConnectorPools, aerodromeDiscoverConnectorPoolsLoaded, aerodromeDiscoverDirectPools, aerodromeDiscoverPoolsSummary, aerodromeFallbackAddresses, aerodromeFetchImportantPoolsSummary, aerodromeFetchListedTokens, aerodromeFetchListedTokensSummary, aerodromeFetchLpYieldsForPair, aerodromeFetchLpYieldsForPools, aerodromeFetchLpYieldsSummary, aerodromeFetchPools, aerodromeFetchPoolsByAddress, aerodromeFetchPoolsSummary, aerodromeFetchPositions, aerodromeFetchPositionsSummary, aerodromeFetchPositionsWithPools, aerodromeFetchStockLpYieldsSummary, aerodromeFetchSwapPools, aerodromeMixedPathFiller, aerodromeOnChainDeadlineUnix, aerodromePositionKey, aerodromePositionLabel, aerodromeProbeAmountIn, aerodromeProtocolModule, aerodromeQuote, aerodromeQuoteAddLiquidity, aerodromeQuoteClDeposit, aerodromeResolveStockTokens, aerodromeUnissuedStockMessage, assertAerodromeStockIssued, buildAerodromeLiquidityPurposePrefill, buildAerodromeRewardsPurposePrefill, buildAerodromeSwapPurposePrefill, buildEvmMultisignBodyAerodromeAddLiquidityBatch, buildEvmMultisignBodyAerodromeClBurnBatch, buildEvmMultisignBodyAerodromeClCollectBatch, buildEvmMultisignBodyAerodromeClDecreaseBatch, buildEvmMultisignBodyAerodromeClIncreaseBatch, buildEvmMultisignBodyAerodromeClMintBatch, buildEvmMultisignBodyAerodromeClaimEmissionsBatch, buildEvmMultisignBodyAerodromeClaimFeesBatch, buildEvmMultisignBodyAerodromeGaugeStakeBatch, buildEvmMultisignBodyAerodromeGaugeUnstakeBatch, buildEvmMultisignBodyAerodromeRemoveLiquidityBatch, buildEvmMultisignBodyAerodromeSwapBatch, computeAerodromePriceImpactPercent, encodeAerodromeMixedPath, fetchOfficialBaseTokenizedStocks, findAerodromePaths, formatAerodromeLpYieldLabel, formatAerodromePriceImpact, isCoinbaseB20AssetToken as isAerodromeB20AssetToken, isAerodromeChainSupported, isAerodromeCoinbaseStockToken, isAerodromeNativeToken, loadAerodromeAddresses, looksLikeCoinbaseStockSymbol, lookupAerodromeKnownToken, parseBaseTokenizedStockDocs, parseSecurityMdxAddresses, parseSugarBaseEnv, quoteAerodromeHopsAmountOut, requireAerodromeRpcUrl, resetAerodromeAddressCache, resolveAerodromeErc20OrWeth, tryAerodromeSdkQuote, tryAerodromeSdkUnsignedSwap };
|
|
@@ -204,6 +204,60 @@ var init_addresses = __esm({
|
|
|
204
204
|
cache = null;
|
|
205
205
|
}
|
|
206
206
|
});
|
|
207
|
+
function isCoinbaseB20AssetToken(address) {
|
|
208
|
+
try {
|
|
209
|
+
return getAddress(address).toLowerCase().startsWith(COINBASE_B20_ASSET_PREFIX);
|
|
210
|
+
} catch {
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function looksLikeCoinbaseStockSymbol(symbol) {
|
|
215
|
+
return /^[A-Za-z][A-Za-z0-9]{0,10}c$/.test((symbol ?? "").trim());
|
|
216
|
+
}
|
|
217
|
+
function lookupCoinbaseB20StockToken(token) {
|
|
218
|
+
const key = (token ?? "").trim();
|
|
219
|
+
if (!key) return null;
|
|
220
|
+
const lower = key.toLowerCase();
|
|
221
|
+
const bySymbol = COINBASE_B20_STOCK_TOKENS.find((t) => t.symbol.toLowerCase() === lower);
|
|
222
|
+
if (bySymbol) {
|
|
223
|
+
return {
|
|
224
|
+
address: getAddress(bySymbol.address),
|
|
225
|
+
symbol: bySymbol.symbol,
|
|
226
|
+
decimals: COINBASE_B20_STOCK_DECIMALS
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
try {
|
|
230
|
+
const address = getAddress(key);
|
|
231
|
+
const byAddr = COINBASE_B20_STOCK_TOKENS.find((t) => getAddress(t.address).toLowerCase() === address.toLowerCase());
|
|
232
|
+
if (byAddr) {
|
|
233
|
+
return { address, symbol: byAddr.symbol, decimals: COINBASE_B20_STOCK_DECIMALS };
|
|
234
|
+
}
|
|
235
|
+
} catch {
|
|
236
|
+
}
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
var COINBASE_B20_STOCK_TOKENS, COINBASE_B20_STOCK_DECIMALS, COINBASE_B20_ASSET_PREFIX;
|
|
240
|
+
var init_coinbaseB20 = __esm({
|
|
241
|
+
"src/protocols/evm/shared/coinbaseB20.ts"() {
|
|
242
|
+
COINBASE_B20_STOCK_TOKENS = [
|
|
243
|
+
{ symbol: "AAPLc", name: "Apple Inc.", address: "0xb200000000000000000000C2e324d24d7eEcd1fb" },
|
|
244
|
+
{ symbol: "NVDAc", name: "NVIDIA Corporation", address: "0xb20000000000000000000078ee7ce2fE4908108C" },
|
|
245
|
+
{ symbol: "METAc", name: "Meta Platforms Inc.", address: "0xb2000000000000000000008bC8786B856E61707C" },
|
|
246
|
+
{ symbol: "GOOGLc", name: "Alphabet Inc.", address: "0xb2000000000000000000002D0BA3164cc74f58B7" },
|
|
247
|
+
{ symbol: "AMZNc", name: "Amazon.com Inc.", address: "0xb200000000000000000000d9192b6B456483C2E8" },
|
|
248
|
+
{ symbol: "TSLAc", name: "Tesla Inc.", address: "0xb2000000000000000000001e800a7f5189430cD0" },
|
|
249
|
+
{ symbol: "MSFTc", name: "Microsoft Corporation", address: "0xB200000000000000000000Ab99cFa739E253872B" },
|
|
250
|
+
{ symbol: "COINc", name: "Coinbase Global Inc.", address: "0xb200000000000000000000c85a31389D71F3ecfb" },
|
|
251
|
+
{ symbol: "MSTRc", name: "Strategy Inc.", address: "0xb2000000000000000000004884b426556b92883d" },
|
|
252
|
+
{ symbol: "CRCLc", name: "Circle Internet Group Inc.", address: "0xB20000000000000000000019f6E7C675b73C2e4D" },
|
|
253
|
+
{ symbol: "INTCc", name: "Intel Corporation", address: "0xB2000000000000000000004AFF16039bA04bdFBc" },
|
|
254
|
+
{ symbol: "SNDKc", name: "Sandisk Corporation", address: "0xb200000000000000000000397293Cb8cda9a10c5" },
|
|
255
|
+
{ symbol: "SPCXc", name: "Space Exploration Technologies Corp.", address: "0xb2000000000000000000007b9fcbd005511aCBd5" }
|
|
256
|
+
];
|
|
257
|
+
COINBASE_B20_STOCK_DECIMALS = 8;
|
|
258
|
+
COINBASE_B20_ASSET_PREFIX = "0xb200000000000000000000";
|
|
259
|
+
}
|
|
260
|
+
});
|
|
207
261
|
|
|
208
262
|
// src/protocols/evm/aerodrome/abi.ts
|
|
209
263
|
var lpSugarAbi, routerAbi, mixedQuoterAbi, mixedQuoterV3Abi, v2PoolFactoryAbi, clPoolFactoryAbi, clPoolAbi, sugarHelperAbi, nfpmAbi, clSwapRouterAbi, poolClaimFeesAbi, gaugeAbi, clGaugeAbi, aerodromePoolMetaAbi, aerodromeVoterAbi, erc20Abi;
|
|
@@ -1011,18 +1065,8 @@ var init_client = __esm({
|
|
|
1011
1065
|
init_support();
|
|
1012
1066
|
}
|
|
1013
1067
|
});
|
|
1014
|
-
function isAerodromeB20AssetToken(address) {
|
|
1015
|
-
try {
|
|
1016
|
-
return getAddress(address).toLowerCase().startsWith(AERODROME_B20_ASSET_PREFIX);
|
|
1017
|
-
} catch {
|
|
1018
|
-
return false;
|
|
1019
|
-
}
|
|
1020
|
-
}
|
|
1021
1068
|
function isAerodromeCoinbaseStockToken(address) {
|
|
1022
|
-
return
|
|
1023
|
-
}
|
|
1024
|
-
function looksLikeCoinbaseStockSymbol(symbol) {
|
|
1025
|
-
return /^[A-Za-z][A-Za-z0-9]{0,10}c$/.test((symbol ?? "").trim());
|
|
1069
|
+
return isCoinbaseB20AssetToken(address);
|
|
1026
1070
|
}
|
|
1027
1071
|
function lookupAerodromeKnownToken(token) {
|
|
1028
1072
|
const key = (token ?? "").trim();
|
|
@@ -1037,14 +1081,8 @@ function lookupAerodromeKnownToken(token) {
|
|
|
1037
1081
|
if (lower === "aero") {
|
|
1038
1082
|
return { address: getAddress(AERODROME_BASE_ADDRESSES_FALLBACK.aero), symbol: "AERO", decimals: 18 };
|
|
1039
1083
|
}
|
|
1040
|
-
const stock =
|
|
1041
|
-
if (stock)
|
|
1042
|
-
return {
|
|
1043
|
-
address: getAddress(stock.address),
|
|
1044
|
-
symbol: stock.symbol,
|
|
1045
|
-
decimals: AERODROME_COINBASE_STOCK_DECIMALS
|
|
1046
|
-
};
|
|
1047
|
-
}
|
|
1084
|
+
const stock = lookupCoinbaseB20StockToken(key);
|
|
1085
|
+
if (stock) return stock;
|
|
1048
1086
|
try {
|
|
1049
1087
|
const address = getAddress(key);
|
|
1050
1088
|
const want = address.toLowerCase();
|
|
@@ -1057,10 +1095,6 @@ function lookupAerodromeKnownToken(token) {
|
|
|
1057
1095
|
if (want === getAddress(AERODROME_BASE_ADDRESSES_FALLBACK.aero).toLowerCase()) {
|
|
1058
1096
|
return { address, symbol: "AERO", decimals: 18 };
|
|
1059
1097
|
}
|
|
1060
|
-
const byAddr = AERODROME_COINBASE_STOCK_TOKENS.find((t) => getAddress(t.address).toLowerCase() === want);
|
|
1061
|
-
if (byAddr) {
|
|
1062
|
-
return { address, symbol: byAddr.symbol, decimals: AERODROME_COINBASE_STOCK_DECIMALS };
|
|
1063
|
-
}
|
|
1064
1098
|
} catch {
|
|
1065
1099
|
}
|
|
1066
1100
|
return null;
|
|
@@ -1098,7 +1132,7 @@ async function assertAerodromeStockIssued(args) {
|
|
|
1098
1132
|
}
|
|
1099
1133
|
}
|
|
1100
1134
|
function aerodromeCoinbaseStockAddresses() {
|
|
1101
|
-
return
|
|
1135
|
+
return COINBASE_B20_STOCK_TOKENS.map((t) => getAddress(t.address));
|
|
1102
1136
|
}
|
|
1103
1137
|
function parseBaseTokenizedStockDocs(text) {
|
|
1104
1138
|
try {
|
|
@@ -1121,7 +1155,7 @@ function parseBaseTokenizedStockDocs(text) {
|
|
|
1121
1155
|
} catch {
|
|
1122
1156
|
continue;
|
|
1123
1157
|
}
|
|
1124
|
-
if (!
|
|
1158
|
+
if (!isCoinbaseB20AssetToken(address)) continue;
|
|
1125
1159
|
const key = address.toLowerCase();
|
|
1126
1160
|
if (seen.has(key)) continue;
|
|
1127
1161
|
seen.add(key);
|
|
@@ -1148,18 +1182,18 @@ async function fetchOfficialBaseTokenizedStocks() {
|
|
|
1148
1182
|
}
|
|
1149
1183
|
function seedName(address) {
|
|
1150
1184
|
const want = address.toLowerCase();
|
|
1151
|
-
return
|
|
1185
|
+
return COINBASE_B20_STOCK_TOKENS.find((t) => getAddress(t.address).toLowerCase() === want)?.name;
|
|
1152
1186
|
}
|
|
1153
1187
|
function seedSymbol(address) {
|
|
1154
1188
|
const want = address.toLowerCase();
|
|
1155
|
-
return
|
|
1189
|
+
return COINBASE_B20_STOCK_TOKENS.find((t) => getAddress(t.address).toLowerCase() === want)?.symbol;
|
|
1156
1190
|
}
|
|
1157
1191
|
function seedStockRows() {
|
|
1158
|
-
return
|
|
1192
|
+
return COINBASE_B20_STOCK_TOKENS.map((t) => ({
|
|
1159
1193
|
address: getAddress(t.address),
|
|
1160
1194
|
symbol: t.symbol,
|
|
1161
1195
|
name: t.name,
|
|
1162
|
-
decimals:
|
|
1196
|
+
decimals: COINBASE_B20_STOCK_DECIMALS,
|
|
1163
1197
|
issued: false
|
|
1164
1198
|
}));
|
|
1165
1199
|
}
|
|
@@ -1172,7 +1206,7 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1172
1206
|
}
|
|
1173
1207
|
const candidates = /* @__PURE__ */ new Map();
|
|
1174
1208
|
const add = (addressRaw, meta) => {
|
|
1175
|
-
if (!
|
|
1209
|
+
if (!isCoinbaseB20AssetToken(addressRaw)) return;
|
|
1176
1210
|
const address = getAddress(addressRaw);
|
|
1177
1211
|
const key = address.toLowerCase();
|
|
1178
1212
|
const prev = candidates.get(key);
|
|
@@ -1183,14 +1217,14 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1183
1217
|
decimals: meta?.decimals ?? prev?.decimals
|
|
1184
1218
|
});
|
|
1185
1219
|
};
|
|
1186
|
-
for (const t of
|
|
1187
|
-
add(t.address, { symbol: t.symbol, name: t.name, decimals:
|
|
1220
|
+
for (const t of COINBASE_B20_STOCK_TOKENS) {
|
|
1221
|
+
add(t.address, { symbol: t.symbol, name: t.name, decimals: COINBASE_B20_STOCK_DECIMALS });
|
|
1188
1222
|
}
|
|
1189
1223
|
for (const t of official) {
|
|
1190
|
-
add(t.address, { symbol: t.symbol, decimals:
|
|
1224
|
+
add(t.address, { symbol: t.symbol, decimals: COINBASE_B20_STOCK_DECIMALS });
|
|
1191
1225
|
}
|
|
1192
1226
|
for (const t of args.knownTokens ?? []) {
|
|
1193
|
-
if (!
|
|
1227
|
+
if (!isCoinbaseB20AssetToken(t.address)) continue;
|
|
1194
1228
|
const symbol = (t.symbol ?? "").trim();
|
|
1195
1229
|
const seeded = Boolean(seedSymbol(getAddress(t.address)));
|
|
1196
1230
|
if (!seeded && symbol && !looksLikeCoinbaseStockSymbol(symbol)) continue;
|
|
@@ -1219,7 +1253,7 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1219
1253
|
address: row.address,
|
|
1220
1254
|
symbol: onchainSymbol || row.symbol || seedSymbol(row.address) || row.address.slice(0, 8),
|
|
1221
1255
|
name: seedName(row.address) || onchainName || onchainSymbol || row.symbol || "",
|
|
1222
|
-
decimals: Number.isFinite(onchainDecimals) ? onchainDecimals : row.decimals ??
|
|
1256
|
+
decimals: Number.isFinite(onchainDecimals) ? onchainDecimals : row.decimals ?? COINBASE_B20_STOCK_DECIMALS,
|
|
1223
1257
|
issued: supply > 0n
|
|
1224
1258
|
};
|
|
1225
1259
|
});
|
|
@@ -1227,30 +1261,15 @@ async function aerodromeResolveStockTokens(args) {
|
|
|
1227
1261
|
return seedStockRows();
|
|
1228
1262
|
}
|
|
1229
1263
|
}
|
|
1230
|
-
var
|
|
1264
|
+
var BASE_STOCKS_DOCS_URLS, MAX_DOCS_CHARS, MAX_OFFICIAL_STOCKS;
|
|
1231
1265
|
var init_stockTokens = __esm({
|
|
1232
1266
|
"src/protocols/evm/aerodrome/stockTokens.ts"() {
|
|
1267
|
+
init_coinbaseB20();
|
|
1233
1268
|
init_addresses();
|
|
1234
1269
|
init_abi();
|
|
1235
1270
|
init_client();
|
|
1236
1271
|
init_support();
|
|
1237
|
-
|
|
1238
|
-
{ symbol: "AAPLc", name: "Apple Inc.", address: "0xb200000000000000000000C2e324d24d7eEcd1fb" },
|
|
1239
|
-
{ symbol: "NVDAc", name: "NVIDIA Corporation", address: "0xb20000000000000000000078ee7ce2fE4908108C" },
|
|
1240
|
-
{ symbol: "METAc", name: "Meta Platforms Inc.", address: "0xb2000000000000000000008bC8786B856E61707C" },
|
|
1241
|
-
{ symbol: "GOOGLc", name: "Alphabet Inc.", address: "0xb2000000000000000000002D0BA3164cc74f58B7" },
|
|
1242
|
-
{ symbol: "AMZNc", name: "Amazon.com Inc.", address: "0xb200000000000000000000d9192b6B456483C2E8" },
|
|
1243
|
-
{ symbol: "TSLAc", name: "Tesla Inc.", address: "0xb2000000000000000000001e800a7f5189430cD0" },
|
|
1244
|
-
{ symbol: "MSFTc", name: "Microsoft Corporation", address: "0xB200000000000000000000Ab99cFa739E253872B" },
|
|
1245
|
-
{ symbol: "COINc", name: "Coinbase Global Inc.", address: "0xb200000000000000000000c85a31389D71F3ecfb" },
|
|
1246
|
-
{ symbol: "MSTRc", name: "Strategy Inc.", address: "0xb2000000000000000000004884b426556b92883d" },
|
|
1247
|
-
{ symbol: "CRCLc", name: "Circle Internet Group Inc.", address: "0xB20000000000000000000019f6E7C675b73C2e4D" },
|
|
1248
|
-
{ symbol: "INTCc", name: "Intel Corporation", address: "0xB2000000000000000000004AFF16039bA04bdFBc" },
|
|
1249
|
-
{ symbol: "SNDKc", name: "Sandisk Corporation", address: "0xb200000000000000000000397293Cb8cda9a10c5" },
|
|
1250
|
-
{ symbol: "SPCXc", name: "Space Exploration Technologies Corp.", address: "0xb2000000000000000000007b9fcbd005511aCBd5" }
|
|
1251
|
-
];
|
|
1252
|
-
AERODROME_COINBASE_STOCK_DECIMALS = 8;
|
|
1253
|
-
AERODROME_B20_ASSET_PREFIX = "0xb200000000000000000000";
|
|
1272
|
+
init_coinbaseB20();
|
|
1254
1273
|
BASE_STOCKS_DOCS_URLS = [
|
|
1255
1274
|
"https://docs.base.org/base-chain/asset-issuance/tokenized-stocks-on-base.md",
|
|
1256
1275
|
"https://docs.base.org/base-chain/asset-issuance/tokenized-stocks-on-base"
|
|
@@ -1746,7 +1765,7 @@ async function aerodromeFetchStockLpYieldsSummary(args) {
|
|
|
1746
1765
|
const addrs = await loadAerodromeAddresses();
|
|
1747
1766
|
const scanned = await scanSugarTop(args.rpcUrl);
|
|
1748
1767
|
const aeroUsd = aeroUsdPriceFromRows(scanned, addrs.aero);
|
|
1749
|
-
const stock = scanned.filter((r) =>
|
|
1768
|
+
const stock = scanned.filter((r) => isCoinbaseB20AssetToken(r.token0) || isCoinbaseB20AssetToken(r.token1));
|
|
1750
1769
|
const pools = rankAndCap(stock.map((r) => toYieldRow(r, aeroUsd)), args.query);
|
|
1751
1770
|
return {
|
|
1752
1771
|
chainId: AERODROME_CHAIN_ID,
|
|
@@ -2332,7 +2351,7 @@ async function quoteAerodromeHopsAmountOut(args) {
|
|
|
2332
2351
|
}
|
|
2333
2352
|
async function readTokenDecimals(rpcUrl, token, isNative) {
|
|
2334
2353
|
if (isNative) return 18;
|
|
2335
|
-
if (isAerodromeCoinbaseStockToken(token)) return
|
|
2354
|
+
if (isAerodromeCoinbaseStockToken(token)) return COINBASE_B20_STOCK_DECIMALS;
|
|
2336
2355
|
if (token.toLowerCase() === AERODROME_USDC_BASE.toLowerCase()) return 6;
|
|
2337
2356
|
const client = aerodromePublicClient(rpcUrl);
|
|
2338
2357
|
return Number(
|
|
@@ -2361,7 +2380,7 @@ async function aerodromeQuote(args) {
|
|
|
2361
2380
|
}
|
|
2362
2381
|
let decimals = args.tokenInDecimals;
|
|
2363
2382
|
if (isAerodromeCoinbaseStockToken(tokenIn)) {
|
|
2364
|
-
decimals =
|
|
2383
|
+
decimals = COINBASE_B20_STOCK_DECIMALS;
|
|
2365
2384
|
} else if (decimals == null) {
|
|
2366
2385
|
decimals = await readTokenDecimals(rpcUrl, tokenIn, isNativeIn);
|
|
2367
2386
|
}
|
|
@@ -3095,13 +3114,13 @@ function pairTokenLabel(address, isNative) {
|
|
|
3095
3114
|
if (isNative) return "ETH";
|
|
3096
3115
|
if (address.toLowerCase() === AERODROME_WETH_BASE.toLowerCase()) return "WETH";
|
|
3097
3116
|
if (address.toLowerCase() === AERODROME_USDC_BASE.toLowerCase()) return "USDC";
|
|
3098
|
-
const stock =
|
|
3117
|
+
const stock = COINBASE_B20_STOCK_TOKENS.find((t) => t.address.toLowerCase() === address.toLowerCase());
|
|
3099
3118
|
return stock?.symbol || `${address.slice(0, 6)}\u2026${address.slice(-4)}`;
|
|
3100
3119
|
}
|
|
3101
3120
|
function noDirectPoolHint(args) {
|
|
3102
3121
|
const a = pairTokenLabel(args.tokenA, args.isNativeA);
|
|
3103
3122
|
const b = pairTokenLabel(args.tokenB, args.isNativeB);
|
|
3104
|
-
const stockAddr =
|
|
3123
|
+
const stockAddr = isCoinbaseB20AssetToken(args.tokenB) ? args.tokenB : isCoinbaseB20AssetToken(args.tokenA) ? args.tokenA : null;
|
|
3105
3124
|
if (stockAddr) {
|
|
3106
3125
|
const sym = pairTokenLabel(stockAddr, false);
|
|
3107
3126
|
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.`;
|
|
@@ -3143,8 +3162,8 @@ async function aerodromeQuoteAddLiquidity(args) {
|
|
|
3143
3162
|
const rawA = (args.amountAHuman ?? "").trim().replace(/,/g, "");
|
|
3144
3163
|
const rawB = (args.amountBHuman ?? "").trim().replace(/,/g, "");
|
|
3145
3164
|
if (!rawA && !rawB) throw new Error("Enter amount A or amount B.");
|
|
3146
|
-
const decA = isAerodromeCoinbaseStockToken(tokenA) ?
|
|
3147
|
-
const decB = isAerodromeCoinbaseStockToken(tokenB) ?
|
|
3165
|
+
const decA = isAerodromeCoinbaseStockToken(tokenA) ? COINBASE_B20_STOCK_DECIMALS : args.tokenADecimals ?? (isNativeA ? 18 : Number(await client.readContract({ address: tokenA, abi: erc20Abi, functionName: "decimals" })));
|
|
3166
|
+
const decB = isAerodromeCoinbaseStockToken(tokenB) ? COINBASE_B20_STOCK_DECIMALS : args.tokenBDecimals ?? (isNativeB ? 18 : Number(await client.readContract({ address: tokenB, abi: erc20Abi, functionName: "decimals" })));
|
|
3148
3167
|
const pool = await client.readContract({
|
|
3149
3168
|
address: addrs.router,
|
|
3150
3169
|
abi: routerAbi,
|
|
@@ -4051,7 +4070,7 @@ function mergeStocksIntoListed(tokens, stocks) {
|
|
|
4051
4070
|
byAddr.set(key, {
|
|
4052
4071
|
address: stock.address,
|
|
4053
4072
|
symbol: stock.symbol || prev?.symbol || "",
|
|
4054
|
-
decimals: stock.decimals || prev?.decimals ||
|
|
4073
|
+
decimals: stock.decimals || prev?.decimals || COINBASE_B20_STOCK_DECIMALS,
|
|
4055
4074
|
listed: prev?.listed ?? true,
|
|
4056
4075
|
emerging: prev?.emerging ?? false,
|
|
4057
4076
|
accountBalance: prev?.accountBalance ?? "0",
|
|
@@ -4060,7 +4079,7 @@ function mergeStocksIntoListed(tokens, stocks) {
|
|
|
4060
4079
|
});
|
|
4061
4080
|
}
|
|
4062
4081
|
const stocksFirst = stocks.map((s) => byAddr.get(s.address.toLowerCase())).filter(Boolean);
|
|
4063
|
-
const rest = [...byAddr.values()].filter((t) => !
|
|
4082
|
+
const rest = [...byAddr.values()].filter((t) => !isCoinbaseB20AssetToken(t.address));
|
|
4064
4083
|
return [...stocksFirst, ...rest];
|
|
4065
4084
|
}
|
|
4066
4085
|
async function aerodromeFetchListedTokensSummary(args) {
|
|
@@ -4260,6 +4279,6 @@ var aerodromeProtocolModule = {
|
|
|
4260
4279
|
};
|
|
4261
4280
|
registerProtocolModule(aerodromeProtocolModule);
|
|
4262
4281
|
|
|
4263
|
-
export { AERODROME_B20_ASSET_PREFIX, AERODROME_BASE_ADDRESSES_FALLBACK, AERODROME_CHAIN_ID, AERODROME_CL_FACTORY_NEWEST_BIT, AERODROME_CL_FACTORY_OLDEST_BIT, AERODROME_COINBASE_STOCK_DECIMALS, AERODROME_COINBASE_STOCK_TOKENS, AERODROME_IMPORTANT_POOL_CAP, AERODROME_NATIVE_PLACEHOLDER, AERODROME_PROTOCOL_ID, AERODROME_STABLE_FILLER, AERODROME_USDC_BASE, AERODROME_VOLATILE_FILLER, AERODROME_WETH_BASE, aerodromeClFactoryList, aerodromeClSwapRouterForFactory, aerodromeCoinbaseStockAddresses, aerodromeDiscoverConnectorPools, aerodromeDiscoverConnectorPoolsLoaded, aerodromeDiscoverDirectPools, aerodromeDiscoverPoolsSummary, aerodromeFallbackAddresses, aerodromeFetchImportantPoolsSummary, aerodromeFetchListedTokens, aerodromeFetchListedTokensSummary, aerodromeFetchLpYieldsForPair, aerodromeFetchLpYieldsForPools, aerodromeFetchLpYieldsSummary, aerodromeFetchPools, aerodromeFetchPoolsByAddress, aerodromeFetchPoolsSummary, aerodromeFetchPositions, aerodromeFetchPositionsSummary, aerodromeFetchPositionsWithPools, aerodromeFetchStockLpYieldsSummary, aerodromeFetchSwapPools, aerodromeMixedPathFiller, aerodromeOnChainDeadlineUnix, aerodromePositionKey, aerodromePositionLabel, aerodromeProbeAmountIn, aerodromeProtocolModule, aerodromeQuote, aerodromeQuoteAddLiquidity, aerodromeQuoteClDeposit, aerodromeResolveStockTokens, aerodromeUnissuedStockMessage, assertAerodromeStockIssued, buildAerodromeLiquidityPurposePrefill, buildAerodromeRewardsPurposePrefill, buildAerodromeSwapPurposePrefill, buildEvmMultisignBodyAerodromeAddLiquidityBatch, buildEvmMultisignBodyAerodromeClBurnBatch, buildEvmMultisignBodyAerodromeClCollectBatch, buildEvmMultisignBodyAerodromeClDecreaseBatch, buildEvmMultisignBodyAerodromeClIncreaseBatch, buildEvmMultisignBodyAerodromeClMintBatch, buildEvmMultisignBodyAerodromeClaimEmissionsBatch, buildEvmMultisignBodyAerodromeClaimFeesBatch, buildEvmMultisignBodyAerodromeGaugeStakeBatch, buildEvmMultisignBodyAerodromeGaugeUnstakeBatch, buildEvmMultisignBodyAerodromeRemoveLiquidityBatch, buildEvmMultisignBodyAerodromeSwapBatch, computeAerodromePriceImpactPercent, encodeAerodromeMixedPath, fetchOfficialBaseTokenizedStocks, findAerodromePaths, formatAerodromeLpYieldLabel, formatAerodromePriceImpact, isAerodromeB20AssetToken, isAerodromeChainSupported, isAerodromeCoinbaseStockToken, isAerodromeNativeToken, loadAerodromeAddresses, looksLikeCoinbaseStockSymbol, lookupAerodromeKnownToken, parseBaseTokenizedStockDocs, parseSecurityMdxAddresses, parseSugarBaseEnv, quoteAerodromeHopsAmountOut, requireAerodromeRpcUrl, resetAerodromeAddressCache, resolveAerodromeErc20OrWeth, tryAerodromeSdkQuote, tryAerodromeSdkUnsignedSwap };
|
|
4282
|
+
export { COINBASE_B20_ASSET_PREFIX as AERODROME_B20_ASSET_PREFIX, AERODROME_BASE_ADDRESSES_FALLBACK, AERODROME_CHAIN_ID, AERODROME_CL_FACTORY_NEWEST_BIT, AERODROME_CL_FACTORY_OLDEST_BIT, COINBASE_B20_STOCK_DECIMALS as AERODROME_COINBASE_STOCK_DECIMALS, COINBASE_B20_STOCK_TOKENS as AERODROME_COINBASE_STOCK_TOKENS, AERODROME_IMPORTANT_POOL_CAP, AERODROME_NATIVE_PLACEHOLDER, AERODROME_PROTOCOL_ID, AERODROME_STABLE_FILLER, AERODROME_USDC_BASE, AERODROME_VOLATILE_FILLER, AERODROME_WETH_BASE, aerodromeClFactoryList, aerodromeClSwapRouterForFactory, aerodromeCoinbaseStockAddresses, aerodromeDiscoverConnectorPools, aerodromeDiscoverConnectorPoolsLoaded, aerodromeDiscoverDirectPools, aerodromeDiscoverPoolsSummary, aerodromeFallbackAddresses, aerodromeFetchImportantPoolsSummary, aerodromeFetchListedTokens, aerodromeFetchListedTokensSummary, aerodromeFetchLpYieldsForPair, aerodromeFetchLpYieldsForPools, aerodromeFetchLpYieldsSummary, aerodromeFetchPools, aerodromeFetchPoolsByAddress, aerodromeFetchPoolsSummary, aerodromeFetchPositions, aerodromeFetchPositionsSummary, aerodromeFetchPositionsWithPools, aerodromeFetchStockLpYieldsSummary, aerodromeFetchSwapPools, aerodromeMixedPathFiller, aerodromeOnChainDeadlineUnix, aerodromePositionKey, aerodromePositionLabel, aerodromeProbeAmountIn, aerodromeProtocolModule, aerodromeQuote, aerodromeQuoteAddLiquidity, aerodromeQuoteClDeposit, aerodromeResolveStockTokens, aerodromeUnissuedStockMessage, assertAerodromeStockIssued, buildAerodromeLiquidityPurposePrefill, buildAerodromeRewardsPurposePrefill, buildAerodromeSwapPurposePrefill, buildEvmMultisignBodyAerodromeAddLiquidityBatch, buildEvmMultisignBodyAerodromeClBurnBatch, buildEvmMultisignBodyAerodromeClCollectBatch, buildEvmMultisignBodyAerodromeClDecreaseBatch, buildEvmMultisignBodyAerodromeClIncreaseBatch, buildEvmMultisignBodyAerodromeClMintBatch, buildEvmMultisignBodyAerodromeClaimEmissionsBatch, buildEvmMultisignBodyAerodromeClaimFeesBatch, buildEvmMultisignBodyAerodromeGaugeStakeBatch, buildEvmMultisignBodyAerodromeGaugeUnstakeBatch, buildEvmMultisignBodyAerodromeRemoveLiquidityBatch, buildEvmMultisignBodyAerodromeSwapBatch, computeAerodromePriceImpactPercent, encodeAerodromeMixedPath, fetchOfficialBaseTokenizedStocks, findAerodromePaths, formatAerodromeLpYieldLabel, formatAerodromePriceImpact, isCoinbaseB20AssetToken as isAerodromeB20AssetToken, isAerodromeChainSupported, isAerodromeCoinbaseStockToken, isAerodromeNativeToken, loadAerodromeAddresses, looksLikeCoinbaseStockSymbol, lookupAerodromeKnownToken, parseBaseTokenizedStockDocs, parseSecurityMdxAddresses, parseSugarBaseEnv, quoteAerodromeHopsAmountOut, requireAerodromeRpcUrl, resetAerodromeAddressCache, resolveAerodromeErc20OrWeth, tryAerodromeSdkQuote, tryAerodromeSdkUnsignedSwap };
|
|
4264
4283
|
//# sourceMappingURL=index.js.map
|
|
4265
4284
|
//# sourceMappingURL=index.js.map
|