@continuumdao/ctm-mpc-defi 0.2.19 → 0.2.22
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 +303 -93
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +985 -709
- package/dist/agent/catalog.js +299 -94
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/hyperliquid/SKILL.md +24 -20
- package/dist/agent/skills/uniswap-v4/SKILL.md +58 -0
- package/dist/chains/evm/index.cjs +6 -2
- package/dist/chains/evm/index.cjs.map +1 -1
- package/dist/chains/evm/index.d.ts +4 -4
- package/dist/chains/evm/index.js +6 -2
- package/dist/chains/evm/index.js.map +1 -1
- package/dist/chains/near/index.d.ts +1 -1
- package/dist/chains/solana/index.d.ts +1 -1
- package/dist/core/index.cjs +95 -1
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +44 -4
- package/dist/core/index.js +91 -2
- package/dist/core/index.js.map +1 -1
- package/dist/{envelope-CpBUh9eP.d.ts → envelope-C_bfuKab.d.ts} +3 -1
- package/dist/index.cjs +96 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +93 -4
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/aave-v4/index.cjs +6 -2
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +1 -1
- package/dist/protocols/evm/aave-v4/index.js +6 -2
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/circle-cctp/index.cjs +6 -2
- package/dist/protocols/evm/circle-cctp/index.cjs.map +1 -1
- package/dist/protocols/evm/circle-cctp/index.d.ts +2 -2
- package/dist/protocols/evm/circle-cctp/index.js +6 -2
- package/dist/protocols/evm/circle-cctp/index.js.map +1 -1
- package/dist/protocols/evm/curve-dao/index.cjs +6 -2
- package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/curve-dao/index.d.ts +2 -2
- package/dist/protocols/evm/curve-dao/index.js +6 -2
- package/dist/protocols/evm/curve-dao/index.js.map +1 -1
- package/dist/protocols/evm/ethena/index.cjs +6 -2
- package/dist/protocols/evm/ethena/index.cjs.map +1 -1
- package/dist/protocols/evm/ethena/index.d.ts +1 -1
- package/dist/protocols/evm/ethena/index.js +6 -2
- package/dist/protocols/evm/ethena/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +6 -2
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +1 -1
- package/dist/protocols/evm/euler-v2/index.js +6 -2
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/gmx/index.cjs +54 -22
- package/dist/protocols/evm/gmx/index.cjs.map +1 -1
- package/dist/protocols/evm/gmx/index.d.ts +22 -8
- package/dist/protocols/evm/gmx/index.js +53 -23
- package/dist/protocols/evm/gmx/index.js.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.cjs +467 -2
- package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.d.ts +189 -3
- package/dist/protocols/evm/hyperliquid/index.js +447 -4
- package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
- package/dist/protocols/evm/lido/index.cjs +6 -2
- package/dist/protocols/evm/lido/index.cjs.map +1 -1
- package/dist/protocols/evm/lido/index.d.ts +1 -1
- package/dist/protocols/evm/lido/index.js +6 -2
- package/dist/protocols/evm/lido/index.js.map +1 -1
- package/dist/protocols/evm/maple/index.cjs +6 -2
- package/dist/protocols/evm/maple/index.cjs.map +1 -1
- package/dist/protocols/evm/maple/index.d.ts +1 -1
- package/dist/protocols/evm/maple/index.js +6 -2
- package/dist/protocols/evm/maple/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +6 -2
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +1 -1
- package/dist/protocols/evm/morpho/index.js +6 -2
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/dist/protocols/evm/permit2/index.cjs +206 -0
- package/dist/protocols/evm/permit2/index.cjs.map +1 -0
- package/dist/protocols/evm/permit2/index.d.ts +43 -0
- package/dist/protocols/evm/permit2/index.js +203 -0
- package/dist/protocols/evm/permit2/index.js.map +1 -0
- package/dist/protocols/evm/sky/index.cjs +6 -2
- package/dist/protocols/evm/sky/index.cjs.map +1 -1
- package/dist/protocols/evm/sky/index.d.ts +1 -1
- package/dist/protocols/evm/sky/index.js +6 -2
- package/dist/protocols/evm/sky/index.js.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.cjs +685 -2
- package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.d.ts +180 -3
- package/dist/protocols/evm/uniswap-v4/index.js +663 -3
- package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
- package/dist/{registry-Bv5o37_w.d.ts → registry-DxDSPQ-p.d.ts} +1 -1
- package/dist/{types-BfjWdw1j.d.ts → types-PZrvtjv8.d.ts} +2 -0
- package/dist/{types-DUeNJLr9.d.ts → types-RZWOTm8c.d.ts} +1 -1
- package/package.json +8 -2
|
@@ -24,11 +24,15 @@ function isGmxChainSupported(chainId) {
|
|
|
24
24
|
}
|
|
25
25
|
var require2 = module$1.createRequire(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
|
|
26
26
|
var { GmxApiSdk } = require2("@gmx-io/sdk/v2");
|
|
27
|
+
var { getApiUrl, getApiFallbackUrls } = require2("@gmx-io/sdk/configs/api");
|
|
27
28
|
var GMX_HTTP_TIMEOUT_MS = 3e4;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
29
|
+
function gmxResolvedApiBaseUrls(chainId) {
|
|
30
|
+
const primary = getApiUrl(chainId);
|
|
31
|
+
if (!primary) {
|
|
32
|
+
throw new Error(`GMX API URLs are not configured for chain ${chainId}.`);
|
|
33
|
+
}
|
|
34
|
+
return [primary, ...getApiFallbackUrls(chainId)];
|
|
35
|
+
}
|
|
32
36
|
function buildGmxUrl(baseUrl, path, query) {
|
|
33
37
|
const base = baseUrl.replace(/\/$/, "");
|
|
34
38
|
if (!query) return `${base}${path}`;
|
|
@@ -93,10 +97,7 @@ async function gmxHttpPostJson(baseUrl, path, body, opts) {
|
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
function createIoFirstGmxHttpApi(chainId) {
|
|
96
|
-
const urls =
|
|
97
|
-
if (!urls) {
|
|
98
|
-
throw new Error(`GMX API URLs are not configured for chain ${chainId}.`);
|
|
99
|
-
}
|
|
100
|
+
const urls = gmxResolvedApiBaseUrls(chainId);
|
|
100
101
|
async function withIoFirstFallback(fn) {
|
|
101
102
|
let lastError;
|
|
102
103
|
for (const baseUrl of urls) {
|
|
@@ -581,7 +582,7 @@ function finalizeMultisign(input) {
|
|
|
581
582
|
batchMeta,
|
|
582
583
|
...input.extraJSON ?? {}
|
|
583
584
|
};
|
|
584
|
-
const extraJSON = JSON.stringify(extraPayload);
|
|
585
|
+
const extraJSON = JSON.stringify(extraPayload, (_, v) => typeof v === "bigint" ? v.toString() : v);
|
|
585
586
|
const bodyForSign = {
|
|
586
587
|
keyList,
|
|
587
588
|
pubKey: ph,
|
|
@@ -606,6 +607,9 @@ function finalizeMultisign(input) {
|
|
|
606
607
|
bodyForSign.value = valueWei.toString();
|
|
607
608
|
}
|
|
608
609
|
if (clientId) bodyForSign.clientId = clientId;
|
|
610
|
+
if (input.expiryDate != null && input.expiryDate > 0) {
|
|
611
|
+
bodyForSign.expiryDate = Math.floor(input.expiryDate);
|
|
612
|
+
}
|
|
609
613
|
return { bodyForSign, messageToSign: JSON.stringify(bodyForSign) };
|
|
610
614
|
}
|
|
611
615
|
function routerSwapGasLimitFromEstimate(estimatedGas, chainGasLimit) {
|
|
@@ -769,7 +773,8 @@ async function buildEvmMultisignBatch(args) {
|
|
|
769
773
|
destinationChainID: String(chainId),
|
|
770
774
|
destinationAddress: args.destinationAddress ?? steps[0].to,
|
|
771
775
|
legs,
|
|
772
|
-
extraJSON: Object.keys(extraJSON).length > 0 ? extraJSON : void 0
|
|
776
|
+
extraJSON: Object.keys(extraJSON).length > 0 ? extraJSON : void 0,
|
|
777
|
+
expiryDate: context.expiryDate
|
|
773
778
|
});
|
|
774
779
|
const pv = args.payableValueWei;
|
|
775
780
|
if (pv != null && pv > 0n) {
|
|
@@ -1315,7 +1320,9 @@ async function buildEvmMultisignBodyGmxIncreaseBatch(args) {
|
|
|
1315
1320
|
sizeUsdHuman: args.sizeUsdHuman,
|
|
1316
1321
|
collateralToken: collateralSymbol,
|
|
1317
1322
|
collateralAmountHuman: args.collateralAmountHuman,
|
|
1318
|
-
isNativeIn: Boolean(args.isNativeIn)
|
|
1323
|
+
isNativeIn: Boolean(args.isNativeIn),
|
|
1324
|
+
...args.orderType === "limit" && args.triggerPriceUsdHuman?.trim() ? { triggerPriceUsdHuman: args.triggerPriceUsdHuman.trim() } : {},
|
|
1325
|
+
...args.patternFailureUsdHuman?.trim() ? { pfE: args.patternFailureUsdHuman.trim() } : {}
|
|
1319
1326
|
},
|
|
1320
1327
|
prepSteps
|
|
1321
1328
|
);
|
|
@@ -2062,18 +2069,21 @@ async function gmxFetchMarketPrices(args) {
|
|
|
2062
2069
|
if (!symbol) throw new Error("GMX market symbol is required.");
|
|
2063
2070
|
if (!collateralSymbol) throw new Error("Collateral symbol is required.");
|
|
2064
2071
|
const sdk = getGmxApiSdk(args.chainId);
|
|
2065
|
-
const
|
|
2066
|
-
sdk.fetchMarketsTickers({ symbols: [symbol] }),
|
|
2067
|
-
resolveGmxTokenBySymbol(args.chainId, collateralSymbol)
|
|
2068
|
-
]);
|
|
2072
|
+
const tickers = await sdk.fetchMarketsTickers({ symbols: [symbol] });
|
|
2069
2073
|
const ticker = tickers.find((t) => String(t.symbol ?? "") === symbol) ?? tickers[0];
|
|
2070
2074
|
const mark = asBigint3(ticker?.markPrice ?? ticker?.minPrice);
|
|
2071
2075
|
const indexMarkUsd = formatGmxUsd30(mark);
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2076
|
+
let collateralUsd = null;
|
|
2077
|
+
let indexPerCollateral = null;
|
|
2078
|
+
try {
|
|
2079
|
+
const collateralToken = await resolveGmxTokenBySymbol(args.chainId, collateralSymbol);
|
|
2080
|
+
const collateralPrice = asBigint3(
|
|
2081
|
+
collateralToken?.prices?.minPrice
|
|
2082
|
+
);
|
|
2083
|
+
collateralUsd = formatGmxUsd30(collateralPrice);
|
|
2084
|
+
indexPerCollateral = mark != null && collateralPrice != null ? formatIndexPerCollateral(mark, collateralPrice) : null;
|
|
2085
|
+
} catch {
|
|
2086
|
+
}
|
|
2077
2087
|
return {
|
|
2078
2088
|
symbol,
|
|
2079
2089
|
indexLabel: indexLabelFromMarketSymbol(symbol),
|
|
@@ -2084,18 +2094,38 @@ async function gmxFetchMarketPrices(args) {
|
|
|
2084
2094
|
fetchedAtMs: Date.now()
|
|
2085
2095
|
};
|
|
2086
2096
|
}
|
|
2097
|
+
function gmxOhlcvWindowFromCandles(candles) {
|
|
2098
|
+
if (candles.length === 0) {
|
|
2099
|
+
return { candleCount: 0 };
|
|
2100
|
+
}
|
|
2101
|
+
let startTimeMs = candles[0].timestampMs;
|
|
2102
|
+
let endTimeMs = candles[0].timestampMs;
|
|
2103
|
+
for (const candle of candles) {
|
|
2104
|
+
if (candle.timestampMs < startTimeMs) {
|
|
2105
|
+
startTimeMs = candle.timestampMs;
|
|
2106
|
+
}
|
|
2107
|
+
if (candle.timestampMs > endTimeMs) {
|
|
2108
|
+
endTimeMs = candle.timestampMs;
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
return { startTimeMs, endTimeMs, candleCount: candles.length };
|
|
2112
|
+
}
|
|
2087
2113
|
async function gmxFetchOhlcv(args) {
|
|
2088
2114
|
const symbol = args.symbol.trim();
|
|
2089
2115
|
if (!symbol) throw new Error("GMX market symbol is required.");
|
|
2090
2116
|
const timeframe = assertGmxOhlcvTimeframe(args.timeframe ?? "15m");
|
|
2091
2117
|
const limit = args.limit ?? DEFAULT_OHLCV_LIMIT;
|
|
2092
|
-
const sort = args.sort ?? "
|
|
2118
|
+
const sort = args.sort ?? "asc";
|
|
2093
2119
|
const sdk = getGmxApiSdk(args.chainId);
|
|
2094
2120
|
const ohlcvRaw = await sdk.fetchOhlcv({ symbol, timeframe, limit });
|
|
2121
|
+
const candles = mapOhlcvRows(ohlcvRaw, sort).sort((a, b) => a.timestampMs - b.timestampMs);
|
|
2122
|
+
const window = gmxOhlcvWindowFromCandles(candles);
|
|
2095
2123
|
return {
|
|
2096
2124
|
symbol,
|
|
2097
2125
|
timeframe,
|
|
2098
|
-
|
|
2126
|
+
chainId: args.chainId,
|
|
2127
|
+
...window,
|
|
2128
|
+
candles
|
|
2099
2129
|
};
|
|
2100
2130
|
}
|
|
2101
2131
|
async function gmxFetchMarketSnapshot(args) {
|
|
@@ -2272,10 +2302,12 @@ exports.gmxMarketMaxLeverageBps = gmxMarketMaxLeverageBps;
|
|
|
2272
2302
|
exports.gmxMarketMaxLeverageLabel = gmxMarketMaxLeverageLabel;
|
|
2273
2303
|
exports.gmxMarketsForCollateralSymbol = gmxMarketsForCollateralSymbol;
|
|
2274
2304
|
exports.gmxNativeGasSymbolForChain = gmxNativeGasSymbolForChain;
|
|
2305
|
+
exports.gmxOhlcvWindowFromCandles = gmxOhlcvWindowFromCandles;
|
|
2275
2306
|
exports.gmxProtocolModule = gmxProtocolModule;
|
|
2276
2307
|
exports.gmxResolveMarketByGmTokenAddress = gmxResolveMarketByGmTokenAddress;
|
|
2277
2308
|
exports.gmxResolveMarketBySymbol = gmxResolveMarketBySymbol;
|
|
2278
2309
|
exports.gmxResolveTokenBySymbol = gmxResolveTokenBySymbol;
|
|
2310
|
+
exports.gmxResolvedApiBaseUrls = gmxResolvedApiBaseUrls;
|
|
2279
2311
|
exports.gmxWrappedNativeSymbolForChain = gmxWrappedNativeSymbolForChain;
|
|
2280
2312
|
exports.gmxZeroAddress = gmxZeroAddress;
|
|
2281
2313
|
exports.isGmxChainSupported = isGmxChainSupported;
|