@continuumdao/ctm-mpc-defi 0.2.26 → 0.2.27
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.map +1 -1
- package/dist/agent/catalog.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.cjs +94 -2
- package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.d.ts +19 -1
- package/dist/protocols/evm/uniswap-v4/index.js +93 -3
- package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -768,6 +768,11 @@ declare function fetchUniswapV4PoolMeta(args: {
|
|
|
768
768
|
chainId: number;
|
|
769
769
|
poolReference: string;
|
|
770
770
|
}): Promise<UniswapV4SubgraphPoolMeta | null>;
|
|
771
|
+
declare function fetchUniswapV4LatestSwap(args: {
|
|
772
|
+
chainId: number;
|
|
773
|
+
poolReference: string;
|
|
774
|
+
theGraphApiKey?: string;
|
|
775
|
+
}): Promise<UniswapV4SubgraphSwapRow | null>;
|
|
771
776
|
|
|
772
777
|
/** Node env var for Bitquery GraphQL (required for Robinhood Chain OHLCV). */
|
|
773
778
|
declare const BITQUERY_API_KEY_ENV = "BITQUERY_API_KEY";
|
|
@@ -916,6 +921,19 @@ declare function uniswapV4FetchOhlcv(args: {
|
|
|
916
921
|
endTimeMs?: number;
|
|
917
922
|
}): Promise<UniswapV4OhlcvFetchResult>;
|
|
918
923
|
|
|
924
|
+
type UniswapV4PriceQuote = 'token0PerToken1' | 'token1PerToken0';
|
|
925
|
+
type UniswapV4ChartLivePriceArgs = {
|
|
926
|
+
chainId: number;
|
|
927
|
+
poolReference: string;
|
|
928
|
+
priceQuote?: UniswapV4PriceQuote;
|
|
929
|
+
dataSource?: string;
|
|
930
|
+
interval?: string;
|
|
931
|
+
theGraphApiKey?: string;
|
|
932
|
+
bitqueryApiKey?: string;
|
|
933
|
+
};
|
|
934
|
+
/** Latest pool price for chart live ticks (subgraph swap or Bitquery OHLC close on Robinhood). */
|
|
935
|
+
declare function fetchUniswapV4ChartLivePrice(args: UniswapV4ChartLivePriceArgs): Promise<number | null>;
|
|
936
|
+
|
|
919
937
|
declare const UNISWAP_LIMIT_ORDER_CHAIN_ID = 1;
|
|
920
938
|
declare const DEFAULT_UNISWAPX_ORDER_BASE = "https://api.uniswap.org/v2";
|
|
921
939
|
declare const DEFAULT_LIMIT_ORDER_QUOTE_PATH = "/limit_order_quote";
|
|
@@ -1031,4 +1049,4 @@ declare const uniswapV4: {
|
|
|
1031
1049
|
isChainSupported: typeof isUniswapV4ChainSupported;
|
|
1032
1050
|
};
|
|
1033
1051
|
|
|
1034
|
-
export { BITQUERY_API_KEY_DOCS_URL, BITQUERY_API_KEY_ENV, BITQUERY_API_KEY_SIGNUP_URL, BITQUERY_GRAPHQL_URL, type BitqueryOhlcvCurrencyFilter, DEFAULT_LIMIT_ORDER_QUOTE_PATH, DEFAULT_ORDER_SUBMIT_PATH, DEFAULT_UNISWAPX_ORDER_BASE, MAX_UINT160, MAX_UINT48, PERMIT2_ADDRESS, ROBINHOOD_CHAIN_ID, ROBINHOOD_WETH_ADDRESS, type SwapExactInputArgs, THE_GRAPH_API_KEY_DOCS_URL, THE_GRAPH_API_KEY_ENV, THE_GRAPH_API_KEY_SIGNUP_URL, UNISWAP_LIMIT_ORDER_CHAIN_ID, UNISWAP_LP_API_BASE_DEFAULT, UNISWAP_LP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_LP_DEFAULT_EXPIRY_MINUTES, UNISWAP_LP_DEFAULT_SLIPPAGE_PERCENT, UNISWAP_SWAP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_SWAP_DEFAULT_EXPIRY_MINUTES, UNISWAP_TRADE_BASE_DEFAULT, UNISWAP_UNIVERSAL_ROUTER_DEFAULT_GAS_UNITS, UNISWAP_UNIVERSAL_ROUTER_VERSION_DEFAULT, UNISWAP_V4_LP_COLLECT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_DECREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_ERC20_APPROVE_FALLBACK, UNISWAP_V4_LP_INCREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_LOG_CHUNK_SIZE_DEFAULT, UNISWAP_V4_LP_LOG_CHUNK_SIZE_MIN, UNISWAP_V4_LP_MINT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_POOL_LOOKUP_HINT, UNISWAP_V4_LP_POSITION_REGISTRY_HINT, UNISWAP_V4_LP_WETH_DEPOSIT_FALLBACK, UNISWAP_V4_OHLCV_INTERVALS, UNISWAP_V4_PROTOCOL_ID, UNISWAP_V4_SUBGRAPH_ID_BY_CHAIN_ID, type UniswapLimitOrderMultisignArgs, type UniswapLimitOrderMultisignMcpArgs, type UniswapLimitOrderQuoteParams, type UniswapLpAction, type UniswapLpExistingPool, type UniswapLpIndependentToken, type UniswapLpNewPool, type UniswapLpPriceBounds, type UniswapLpProtocol, type UniswapLpTickBounds, type UniswapLpTokenAmount, type UniswapLpTransactionRequest, type UniswapQuoteTradeType, type UniswapTradeQuoteParams, type UniswapV4OhlcvCandleRow, type UniswapV4OhlcvDataTier, type UniswapV4OhlcvFetchResult, type UniswapV4OhlcvInterval, type UniswapV4OhlcvQuoteToken, type UniswapV4PoolKeyInput, type UniswapV4PositionRow, type UniswapV4PositionScanProgress, type UniswapV4RegistryErc721Row, type UniswapV4SessionPayload, type UniswapV4StandardLpPoolRow, type UniswapV4SubgraphPoolDayRow, type UniswapV4SubgraphPoolHourRow, type UniswapV4SubgraphPoolMeta, type UniswapV4SubgraphSwapRow, aggregateOhlcvCandles, applySlippagePercentToApproveWei, assertUniswapLimitOrderChain, assertUniswapV4OhlcvInterval, bitqueryApiKeyVariablesHint, bitqueryAuthErrorMessage, buildEvmMultisignBodyUniswapV4CollectFeesBatch, buildEvmMultisignBodyUniswapV4DecreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4IncreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatchFromMcp, buildEvmMultisignBodyUniswapV4MintLiquidityBatch, buildEvmMultisignBodyUniswapV4SkipPermit2Batch, buildLimitOrderQuoteRequestBody, buildUniswapQuoteRequestBody, buildUniswapV4PurposePrefill, buildUniswapXLimitOrderSubmitBody, computeUniswapV4PoolReference, computeUniswapV4Session, createSwap, currencyFilterLabel, errorMessageFromUniswapJsonBody, extractPermitDataFromLimitQuote, extractUniswapLpTokenAmounts, extractUniswapLpTransaction, fetchEthereumAddressForKeyGen, fetchRobinhoodBitqueryOhlcv, fetchUniswapV4PoolDayDatas, fetchUniswapV4PoolHourDatas, fetchUniswapV4PoolMeta, fetchUniswapV4Swaps, fetchUniswapXLimitOrders, formatUniswapAmountFieldFromWei, formatUniswapLpAmountHuman, formatUniswapPercentForUi, formatUniswapQuoteForDisplay, formatUniswapV4PositionNotFoundError, getClassicQuoteFromStoredUniswapResponse, getUniswapUniversalRouterSpenderOrThrow, getUniswapUniversalRouterVersion, getUniswapV4PositionManagerDeployBlock, getUniswapV4PositionManagerOrThrow, isBitqueryAuthOrRateLimitError, isEthGetLogsBlockRangeTooLargeError, isNativeUniswapLpTokenAddress, isRobinhoodOhlcvChain, isTheGraphRateLimitOrAuthError, isUniswapFullQuoteResponseNativeIn, isUniswapFullQuoteResponseNativeOut, isUniswapLimitOrderChainSupported, isUniswapNativeTokenAddress, isUniswapTokenInAddressNative, isUniswapV4ChainSupported, isUniswapV4LiquidityEvmSignRequest, isUniswapV4SwapEvmSignRequest, listUniswapV4PositionsForWallet, listUniswapV4StandardLpPools, mapBitqueryOhlcvRowsToCandles, messageFromUniswapHttpResponseBody, parseUniswapChainId, parseUniswapLpApiSnapshot, parseUniswapQuoteClassicInOut, parseUniswapQuoteSlippageInfo, parseUniswapV4ScanFromDateYmd, permitDataToEip712Payload, quoteSwap, readUniswapV4PositionInfoRaw, requireBitqueryApiKey, resolveBitqueryApiKey, resolveBlockAtOrAfterUnixTime, resolveChainIdFromStoredUniswapQuote, resolveInputChainId, resolveRobinhoodChartCurrency, resolveRouterSwapGasUnitsFromSignRequest, resolveTheGraphApiKey, resolveUniswapV4LpExistingPoolFromKey, resolveUniswapV4LpPoolPreset, resolveUniswapV4OhlcvDataTier, resolveUniswapV4OhlcvPool, resolveUniswapV4PositionScanFromDate, sortUniswapV4PoolCurrencies, submitUniswapXLimitOrder, swapExactInput, swapFromQuote, swapTransactionDeadlineUnixFromExpiryMinutes, theGraphApiKeyVariablesHint, theGraphRateLimitErrorMessage, tryGetUniswapV4PositionManager, uniswapCreateSwap, uniswapFetchLimitOrdersMcp, uniswapLimitOrderQuote, uniswapLpClaimFees, uniswapLpCreatePosition, uniswapLpDecreasePosition, uniswapLpIncreasePosition, uniswapLpTxFieldForAction, uniswapQuoteToJsonQuoteOneLine, uniswapTradeQuote, uniswapV4, uniswapV4FetchOhlcv, uniswapV4ListPositionsForMcp, uniswapV4ListPositionsFromRegistryForMcp, uniswapV4ListPositionsRegistryMcpPlaceholder, uniswapV4ListStandardLpPools, uniswapV4OhlcvIntervalToBucketSec, uniswapV4OhlcvSupportedChainIds, uniswapV4PositionMintedTokenIdsFromReceipt, uniswapV4ProtocolModule, uniswapV4RegisterPositionFromMintTxPlaceholder, uniswapV4RegisterPositionNftPlaceholder, uniswapV4SubgraphIdForChain, uniswapV4SubgraphSupportedChainIds, uniswapV4SubgraphUrlForChain };
|
|
1052
|
+
export { BITQUERY_API_KEY_DOCS_URL, BITQUERY_API_KEY_ENV, BITQUERY_API_KEY_SIGNUP_URL, BITQUERY_GRAPHQL_URL, type BitqueryOhlcvCurrencyFilter, DEFAULT_LIMIT_ORDER_QUOTE_PATH, DEFAULT_ORDER_SUBMIT_PATH, DEFAULT_UNISWAPX_ORDER_BASE, MAX_UINT160, MAX_UINT48, PERMIT2_ADDRESS, ROBINHOOD_CHAIN_ID, ROBINHOOD_WETH_ADDRESS, type SwapExactInputArgs, THE_GRAPH_API_KEY_DOCS_URL, THE_GRAPH_API_KEY_ENV, THE_GRAPH_API_KEY_SIGNUP_URL, UNISWAP_LIMIT_ORDER_CHAIN_ID, UNISWAP_LP_API_BASE_DEFAULT, UNISWAP_LP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_LP_DEFAULT_EXPIRY_MINUTES, UNISWAP_LP_DEFAULT_SLIPPAGE_PERCENT, UNISWAP_SWAP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_SWAP_DEFAULT_EXPIRY_MINUTES, UNISWAP_TRADE_BASE_DEFAULT, UNISWAP_UNIVERSAL_ROUTER_DEFAULT_GAS_UNITS, UNISWAP_UNIVERSAL_ROUTER_VERSION_DEFAULT, UNISWAP_V4_LP_COLLECT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_DECREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_ERC20_APPROVE_FALLBACK, UNISWAP_V4_LP_INCREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_LOG_CHUNK_SIZE_DEFAULT, UNISWAP_V4_LP_LOG_CHUNK_SIZE_MIN, UNISWAP_V4_LP_MINT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_POOL_LOOKUP_HINT, UNISWAP_V4_LP_POSITION_REGISTRY_HINT, UNISWAP_V4_LP_WETH_DEPOSIT_FALLBACK, UNISWAP_V4_OHLCV_INTERVALS, UNISWAP_V4_PROTOCOL_ID, UNISWAP_V4_SUBGRAPH_ID_BY_CHAIN_ID, type UniswapLimitOrderMultisignArgs, type UniswapLimitOrderMultisignMcpArgs, type UniswapLimitOrderQuoteParams, type UniswapLpAction, type UniswapLpExistingPool, type UniswapLpIndependentToken, type UniswapLpNewPool, type UniswapLpPriceBounds, type UniswapLpProtocol, type UniswapLpTickBounds, type UniswapLpTokenAmount, type UniswapLpTransactionRequest, type UniswapQuoteTradeType, type UniswapTradeQuoteParams, type UniswapV4ChartLivePriceArgs, type UniswapV4OhlcvCandleRow, type UniswapV4OhlcvDataTier, type UniswapV4OhlcvFetchResult, type UniswapV4OhlcvInterval, type UniswapV4OhlcvQuoteToken, type UniswapV4PoolKeyInput, type UniswapV4PositionRow, type UniswapV4PositionScanProgress, type UniswapV4PriceQuote, type UniswapV4RegistryErc721Row, type UniswapV4SessionPayload, type UniswapV4StandardLpPoolRow, type UniswapV4SubgraphPoolDayRow, type UniswapV4SubgraphPoolHourRow, type UniswapV4SubgraphPoolMeta, type UniswapV4SubgraphSwapRow, aggregateOhlcvCandles, applySlippagePercentToApproveWei, assertUniswapLimitOrderChain, assertUniswapV4OhlcvInterval, bitqueryApiKeyVariablesHint, bitqueryAuthErrorMessage, buildEvmMultisignBodyUniswapV4CollectFeesBatch, buildEvmMultisignBodyUniswapV4DecreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4IncreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatchFromMcp, buildEvmMultisignBodyUniswapV4MintLiquidityBatch, buildEvmMultisignBodyUniswapV4SkipPermit2Batch, buildLimitOrderQuoteRequestBody, buildUniswapQuoteRequestBody, buildUniswapV4PurposePrefill, buildUniswapXLimitOrderSubmitBody, computeUniswapV4PoolReference, computeUniswapV4Session, createSwap, currencyFilterLabel, errorMessageFromUniswapJsonBody, extractPermitDataFromLimitQuote, extractUniswapLpTokenAmounts, extractUniswapLpTransaction, fetchEthereumAddressForKeyGen, fetchRobinhoodBitqueryOhlcv, fetchUniswapV4ChartLivePrice, fetchUniswapV4LatestSwap, fetchUniswapV4PoolDayDatas, fetchUniswapV4PoolHourDatas, fetchUniswapV4PoolMeta, fetchUniswapV4Swaps, fetchUniswapXLimitOrders, formatUniswapAmountFieldFromWei, formatUniswapLpAmountHuman, formatUniswapPercentForUi, formatUniswapQuoteForDisplay, formatUniswapV4PositionNotFoundError, getClassicQuoteFromStoredUniswapResponse, getUniswapUniversalRouterSpenderOrThrow, getUniswapUniversalRouterVersion, getUniswapV4PositionManagerDeployBlock, getUniswapV4PositionManagerOrThrow, isBitqueryAuthOrRateLimitError, isEthGetLogsBlockRangeTooLargeError, isNativeUniswapLpTokenAddress, isRobinhoodOhlcvChain, isTheGraphRateLimitOrAuthError, isUniswapFullQuoteResponseNativeIn, isUniswapFullQuoteResponseNativeOut, isUniswapLimitOrderChainSupported, isUniswapNativeTokenAddress, isUniswapTokenInAddressNative, isUniswapV4ChainSupported, isUniswapV4LiquidityEvmSignRequest, isUniswapV4SwapEvmSignRequest, listUniswapV4PositionsForWallet, listUniswapV4StandardLpPools, mapBitqueryOhlcvRowsToCandles, messageFromUniswapHttpResponseBody, parseUniswapChainId, parseUniswapLpApiSnapshot, parseUniswapQuoteClassicInOut, parseUniswapQuoteSlippageInfo, parseUniswapV4ScanFromDateYmd, permitDataToEip712Payload, quoteSwap, readUniswapV4PositionInfoRaw, requireBitqueryApiKey, resolveBitqueryApiKey, resolveBlockAtOrAfterUnixTime, resolveChainIdFromStoredUniswapQuote, resolveInputChainId, resolveRobinhoodChartCurrency, resolveRouterSwapGasUnitsFromSignRequest, resolveTheGraphApiKey, resolveUniswapV4LpExistingPoolFromKey, resolveUniswapV4LpPoolPreset, resolveUniswapV4OhlcvDataTier, resolveUniswapV4OhlcvPool, resolveUniswapV4PositionScanFromDate, sortUniswapV4PoolCurrencies, submitUniswapXLimitOrder, swapExactInput, swapFromQuote, swapTransactionDeadlineUnixFromExpiryMinutes, theGraphApiKeyVariablesHint, theGraphRateLimitErrorMessage, tryGetUniswapV4PositionManager, uniswapCreateSwap, uniswapFetchLimitOrdersMcp, uniswapLimitOrderQuote, uniswapLpClaimFees, uniswapLpCreatePosition, uniswapLpDecreasePosition, uniswapLpIncreasePosition, uniswapLpTxFieldForAction, uniswapQuoteToJsonQuoteOneLine, uniswapTradeQuote, uniswapV4, uniswapV4FetchOhlcv, uniswapV4ListPositionsForMcp, uniswapV4ListPositionsFromRegistryForMcp, uniswapV4ListPositionsRegistryMcpPlaceholder, uniswapV4ListStandardLpPools, uniswapV4OhlcvIntervalToBucketSec, uniswapV4OhlcvSupportedChainIds, uniswapV4PositionMintedTokenIdsFromReceipt, uniswapV4ProtocolModule, uniswapV4RegisterPositionFromMintTxPlaceholder, uniswapV4RegisterPositionNftPlaceholder, uniswapV4SubgraphIdForChain, uniswapV4SubgraphSupportedChainIds, uniswapV4SubgraphUrlForChain };
|
|
@@ -2888,6 +2888,28 @@ async function fetchUniswapV4PoolMeta(args) {
|
|
|
2888
2888
|
);
|
|
2889
2889
|
return data.pool ?? null;
|
|
2890
2890
|
}
|
|
2891
|
+
var LATEST_SWAP_GQL = `
|
|
2892
|
+
query UniswapV4LatestSwap($pool: String!) {
|
|
2893
|
+
swaps(
|
|
2894
|
+
where: { pool: $pool }
|
|
2895
|
+
orderBy: timestamp
|
|
2896
|
+
orderDirection: desc
|
|
2897
|
+
first: 1
|
|
2898
|
+
) {
|
|
2899
|
+
token0Price
|
|
2900
|
+
sqrtPriceX96
|
|
2901
|
+
}
|
|
2902
|
+
}`;
|
|
2903
|
+
async function fetchUniswapV4LatestSwap(args) {
|
|
2904
|
+
const pool = normalizePoolId(args.poolReference);
|
|
2905
|
+
const data = await postUniswapV4SubgraphGql(
|
|
2906
|
+
args.chainId,
|
|
2907
|
+
LATEST_SWAP_GQL,
|
|
2908
|
+
{ pool },
|
|
2909
|
+
args.theGraphApiKey
|
|
2910
|
+
);
|
|
2911
|
+
return data.swaps?.[0] ?? null;
|
|
2912
|
+
}
|
|
2891
2913
|
|
|
2892
2914
|
// src/protocols/evm/uniswap-v4/bitqueryApiKey.ts
|
|
2893
2915
|
var BITQUERY_API_KEY_ENV = "BITQUERY_API_KEY";
|
|
@@ -3176,7 +3198,7 @@ function parseDecimal(raw) {
|
|
|
3176
3198
|
const n = Number(raw);
|
|
3177
3199
|
return Number.isFinite(n) && n > 0 ? n : null;
|
|
3178
3200
|
}
|
|
3179
|
-
function
|
|
3201
|
+
function priceFromUniswapV4SwapRow(row) {
|
|
3180
3202
|
const fromToken0 = parseDecimal(row.token0Price);
|
|
3181
3203
|
if (fromToken0 != null) return fromToken0;
|
|
3182
3204
|
const sqrt = row.sqrtPriceX96?.trim();
|
|
@@ -3198,7 +3220,7 @@ function bucketUniswapV4SwapsIntoCandles(args) {
|
|
|
3198
3220
|
const buckets = /* @__PURE__ */ new Map();
|
|
3199
3221
|
for (const swap of args.swaps) {
|
|
3200
3222
|
const ts = Number(swap.timestamp);
|
|
3201
|
-
const price =
|
|
3223
|
+
const price = priceFromUniswapV4SwapRow(swap);
|
|
3202
3224
|
if (!Number.isFinite(ts) || price == null) continue;
|
|
3203
3225
|
const bucket = bucketStartSec(Math.floor(ts), args.bucketSec);
|
|
3204
3226
|
const vol = parseDecimal(swap.amountUSD) ?? 0;
|
|
@@ -3539,6 +3561,74 @@ async function uniswapV4FetchOhlcv(args) {
|
|
|
3539
3561
|
};
|
|
3540
3562
|
}
|
|
3541
3563
|
|
|
3564
|
+
// src/protocols/evm/uniswap-v4/livePrice.ts
|
|
3565
|
+
function applyPriceQuote(price, quote) {
|
|
3566
|
+
if (!Number.isFinite(price) || price <= 0) return null;
|
|
3567
|
+
if (quote === "token1PerToken0") {
|
|
3568
|
+
const inverted = 1 / price;
|
|
3569
|
+
return Number.isFinite(inverted) && inverted > 0 ? inverted : null;
|
|
3570
|
+
}
|
|
3571
|
+
return price;
|
|
3572
|
+
}
|
|
3573
|
+
function bitqueryFilterFromPoolReference(poolReference) {
|
|
3574
|
+
const ref = poolReference.trim();
|
|
3575
|
+
if (!ref) return null;
|
|
3576
|
+
if (ref.startsWith("symbol:")) {
|
|
3577
|
+
return { kind: "symbol", symbol: ref.slice("symbol:".length).trim() };
|
|
3578
|
+
}
|
|
3579
|
+
if (ref.startsWith("0x")) {
|
|
3580
|
+
return { kind: "address", address: ref };
|
|
3581
|
+
}
|
|
3582
|
+
return null;
|
|
3583
|
+
}
|
|
3584
|
+
async function fetchUniswapV4BitqueryLatestClose(args) {
|
|
3585
|
+
const filter = bitqueryFilterFromPoolReference(args.poolReference);
|
|
3586
|
+
if (!filter) return null;
|
|
3587
|
+
const apiKey = resolveBitqueryApiKey(args.bitqueryApiKey);
|
|
3588
|
+
if (!apiKey) return null;
|
|
3589
|
+
const interval = args.interval?.trim() || "15m";
|
|
3590
|
+
const endTimeMs = Date.now();
|
|
3591
|
+
const startTimeMs = endTimeMs - 6 * 3600 * 1e3;
|
|
3592
|
+
const { candles } = await fetchRobinhoodBitqueryOhlcv({
|
|
3593
|
+
filter,
|
|
3594
|
+
interval,
|
|
3595
|
+
startTimeMs,
|
|
3596
|
+
endTimeMs,
|
|
3597
|
+
apiKey,
|
|
3598
|
+
limit: 5
|
|
3599
|
+
});
|
|
3600
|
+
if (candles.length === 0) return null;
|
|
3601
|
+
const last = candles[candles.length - 1];
|
|
3602
|
+
const close = Number(last.close);
|
|
3603
|
+
return Number.isFinite(close) && close > 0 ? close : null;
|
|
3604
|
+
}
|
|
3605
|
+
async function fetchUniswapV4ChartLivePrice(args) {
|
|
3606
|
+
const chainId = Math.floor(Number(args.chainId));
|
|
3607
|
+
if (!Number.isFinite(chainId) || chainId <= 0) return null;
|
|
3608
|
+
const poolReference = args.poolReference.trim();
|
|
3609
|
+
if (!poolReference) return null;
|
|
3610
|
+
const dataSource = String(args.dataSource ?? "").trim().toLowerCase();
|
|
3611
|
+
if (dataSource === "bitquery" || isRobinhoodOhlcvChain(chainId)) {
|
|
3612
|
+
return fetchUniswapV4BitqueryLatestClose({
|
|
3613
|
+
poolReference,
|
|
3614
|
+
interval: args.interval,
|
|
3615
|
+
bitqueryApiKey: args.bitqueryApiKey
|
|
3616
|
+
});
|
|
3617
|
+
}
|
|
3618
|
+
if (!uniswapV4SubgraphSupportedChainIds().includes(chainId)) {
|
|
3619
|
+
return null;
|
|
3620
|
+
}
|
|
3621
|
+
const row = await fetchUniswapV4LatestSwap({
|
|
3622
|
+
chainId,
|
|
3623
|
+
poolReference,
|
|
3624
|
+
theGraphApiKey: resolveTheGraphApiKey(args.theGraphApiKey)
|
|
3625
|
+
});
|
|
3626
|
+
if (!row) return null;
|
|
3627
|
+
const raw = priceFromUniswapV4SwapRow(row);
|
|
3628
|
+
if (raw == null) return null;
|
|
3629
|
+
return applyPriceQuote(raw, args.priceQuote);
|
|
3630
|
+
}
|
|
3631
|
+
|
|
3542
3632
|
// src/protocols/evm/uniswap-v4/limitOrder.ts
|
|
3543
3633
|
function trimAddr3(a) {
|
|
3544
3634
|
return a.trim();
|
|
@@ -4032,6 +4122,6 @@ var uniswapV4 = {
|
|
|
4032
4122
|
isChainSupported: isUniswapV4ChainSupported
|
|
4033
4123
|
};
|
|
4034
4124
|
|
|
4035
|
-
export { BITQUERY_API_KEY_DOCS_URL, BITQUERY_API_KEY_ENV, BITQUERY_API_KEY_SIGNUP_URL, BITQUERY_GRAPHQL_URL, DEFAULT_LIMIT_ORDER_QUOTE_PATH, DEFAULT_ORDER_SUBMIT_PATH, DEFAULT_UNISWAPX_ORDER_BASE, MAX_UINT160, MAX_UINT48, PERMIT2_ADDRESS, ROBINHOOD_CHAIN_ID, ROBINHOOD_WETH_ADDRESS, THE_GRAPH_API_KEY_DOCS_URL, THE_GRAPH_API_KEY_ENV, THE_GRAPH_API_KEY_SIGNUP_URL, UNISWAP_LIMIT_ORDER_CHAIN_ID, UNISWAP_LP_API_BASE_DEFAULT, UNISWAP_LP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_LP_DEFAULT_EXPIRY_MINUTES, UNISWAP_LP_DEFAULT_SLIPPAGE_PERCENT, UNISWAP_SWAP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_SWAP_DEFAULT_EXPIRY_MINUTES, UNISWAP_TRADE_BASE_DEFAULT, UNISWAP_UNIVERSAL_ROUTER_DEFAULT_GAS_UNITS, UNISWAP_UNIVERSAL_ROUTER_VERSION_DEFAULT, UNISWAP_V4_LP_COLLECT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_DECREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_ERC20_APPROVE_FALLBACK, UNISWAP_V4_LP_INCREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_LOG_CHUNK_SIZE_DEFAULT, UNISWAP_V4_LP_LOG_CHUNK_SIZE_MIN, UNISWAP_V4_LP_MINT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_POOL_LOOKUP_HINT, UNISWAP_V4_LP_POSITION_REGISTRY_HINT, UNISWAP_V4_LP_WETH_DEPOSIT_FALLBACK, UNISWAP_V4_OHLCV_INTERVALS, UNISWAP_V4_PROTOCOL_ID, UNISWAP_V4_SUBGRAPH_ID_BY_CHAIN_ID, aggregateOhlcvCandles, applySlippagePercentToApproveWei, assertUniswapLimitOrderChain, assertUniswapV4OhlcvInterval, bitqueryApiKeyVariablesHint, bitqueryAuthErrorMessage, buildEvmMultisignBodyUniswapV4CollectFeesBatch, buildEvmMultisignBodyUniswapV4DecreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4IncreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatchFromMcp, buildEvmMultisignBodyUniswapV4MintLiquidityBatch, buildEvmMultisignBodyUniswapV4SkipPermit2Batch, buildLimitOrderQuoteRequestBody, buildUniswapQuoteRequestBody, buildUniswapV4PurposePrefill, buildUniswapXLimitOrderSubmitBody, computeUniswapV4PoolReference, computeUniswapV4Session, createSwap, currencyFilterLabel, errorMessageFromUniswapJsonBody, extractPermitDataFromLimitQuote, extractUniswapLpTokenAmounts, extractUniswapLpTransaction, fetchEthereumAddressForKeyGen, fetchRobinhoodBitqueryOhlcv, fetchUniswapV4PoolDayDatas, fetchUniswapV4PoolHourDatas, fetchUniswapV4PoolMeta, fetchUniswapV4Swaps, fetchUniswapXLimitOrders, formatUniswapAmountFieldFromWei, formatUniswapLpAmountHuman, formatUniswapPercentForUi, formatUniswapQuoteForDisplay, formatUniswapV4PositionNotFoundError, getClassicQuoteFromStoredUniswapResponse, getUniswapUniversalRouterSpenderOrThrow, getUniswapUniversalRouterVersion, getUniswapV4PositionManagerDeployBlock, getUniswapV4PositionManagerOrThrow, isBitqueryAuthOrRateLimitError, isEthGetLogsBlockRangeTooLargeError, isNativeUniswapLpTokenAddress, isRobinhoodOhlcvChain, isTheGraphRateLimitOrAuthError, isUniswapFullQuoteResponseNativeIn, isUniswapFullQuoteResponseNativeOut, isUniswapLimitOrderChainSupported, isUniswapNativeTokenAddress, isUniswapTokenInAddressNative, isUniswapV4ChainSupported, isUniswapV4LiquidityEvmSignRequest, isUniswapV4SwapEvmSignRequest, listUniswapV4PositionsForWallet, listUniswapV4StandardLpPools, mapBitqueryOhlcvRowsToCandles, messageFromUniswapHttpResponseBody, parseUniswapChainId, parseUniswapLpApiSnapshot, parseUniswapQuoteClassicInOut, parseUniswapQuoteSlippageInfo, parseUniswapV4ScanFromDateYmd, permitDataToEip712Payload, quoteSwap, readUniswapV4PositionInfoRaw, requireBitqueryApiKey, resolveBitqueryApiKey, resolveBlockAtOrAfterUnixTime, resolveChainIdFromStoredUniswapQuote, resolveInputChainId, resolveRobinhoodChartCurrency, resolveRouterSwapGasUnitsFromSignRequest, resolveTheGraphApiKey, resolveUniswapV4LpExistingPoolFromKey, resolveUniswapV4LpPoolPreset, resolveUniswapV4OhlcvDataTier, resolveUniswapV4OhlcvPool, resolveUniswapV4PositionScanFromDate, sortUniswapV4PoolCurrencies, submitUniswapXLimitOrder, swapExactInput, swapFromQuote, swapTransactionDeadlineUnixFromExpiryMinutes, theGraphApiKeyVariablesHint, theGraphRateLimitErrorMessage, tryGetUniswapV4PositionManager, uniswapCreateSwap, uniswapFetchLimitOrdersMcp, uniswapLimitOrderQuote, uniswapLpClaimFees, uniswapLpCreatePosition, uniswapLpDecreasePosition, uniswapLpIncreasePosition, uniswapLpTxFieldForAction, uniswapQuoteToJsonQuoteOneLine, uniswapTradeQuote, uniswapV4, uniswapV4FetchOhlcv, uniswapV4ListPositionsForMcp, uniswapV4ListPositionsFromRegistryForMcp, uniswapV4ListPositionsRegistryMcpPlaceholder, uniswapV4ListStandardLpPools, uniswapV4OhlcvIntervalToBucketSec, uniswapV4OhlcvSupportedChainIds, uniswapV4PositionMintedTokenIdsFromReceipt, uniswapV4ProtocolModule, uniswapV4RegisterPositionFromMintTxPlaceholder, uniswapV4RegisterPositionNftPlaceholder, uniswapV4SubgraphIdForChain, uniswapV4SubgraphSupportedChainIds, uniswapV4SubgraphUrlForChain };
|
|
4125
|
+
export { BITQUERY_API_KEY_DOCS_URL, BITQUERY_API_KEY_ENV, BITQUERY_API_KEY_SIGNUP_URL, BITQUERY_GRAPHQL_URL, DEFAULT_LIMIT_ORDER_QUOTE_PATH, DEFAULT_ORDER_SUBMIT_PATH, DEFAULT_UNISWAPX_ORDER_BASE, MAX_UINT160, MAX_UINT48, PERMIT2_ADDRESS, ROBINHOOD_CHAIN_ID, ROBINHOOD_WETH_ADDRESS, THE_GRAPH_API_KEY_DOCS_URL, THE_GRAPH_API_KEY_ENV, THE_GRAPH_API_KEY_SIGNUP_URL, UNISWAP_LIMIT_ORDER_CHAIN_ID, UNISWAP_LP_API_BASE_DEFAULT, UNISWAP_LP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_LP_DEFAULT_EXPIRY_MINUTES, UNISWAP_LP_DEFAULT_SLIPPAGE_PERCENT, UNISWAP_SWAP_DEFAULT_DEADLINE_SEC_OFFSET, UNISWAP_SWAP_DEFAULT_EXPIRY_MINUTES, UNISWAP_TRADE_BASE_DEFAULT, UNISWAP_UNIVERSAL_ROUTER_DEFAULT_GAS_UNITS, UNISWAP_UNIVERSAL_ROUTER_VERSION_DEFAULT, UNISWAP_V4_LP_COLLECT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_DECREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_ERC20_APPROVE_FALLBACK, UNISWAP_V4_LP_INCREASE_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_LOG_CHUNK_SIZE_DEFAULT, UNISWAP_V4_LP_LOG_CHUNK_SIZE_MIN, UNISWAP_V4_LP_MINT_DEFAULT_GAS_UNITS, UNISWAP_V4_LP_POOL_LOOKUP_HINT, UNISWAP_V4_LP_POSITION_REGISTRY_HINT, UNISWAP_V4_LP_WETH_DEPOSIT_FALLBACK, UNISWAP_V4_OHLCV_INTERVALS, UNISWAP_V4_PROTOCOL_ID, UNISWAP_V4_SUBGRAPH_ID_BY_CHAIN_ID, aggregateOhlcvCandles, applySlippagePercentToApproveWei, assertUniswapLimitOrderChain, assertUniswapV4OhlcvInterval, bitqueryApiKeyVariablesHint, bitqueryAuthErrorMessage, buildEvmMultisignBodyUniswapV4CollectFeesBatch, buildEvmMultisignBodyUniswapV4DecreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4IncreaseLiquidityBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatch, buildEvmMultisignBodyUniswapV4LimitOrderBatchFromMcp, buildEvmMultisignBodyUniswapV4MintLiquidityBatch, buildEvmMultisignBodyUniswapV4SkipPermit2Batch, buildLimitOrderQuoteRequestBody, buildUniswapQuoteRequestBody, buildUniswapV4PurposePrefill, buildUniswapXLimitOrderSubmitBody, computeUniswapV4PoolReference, computeUniswapV4Session, createSwap, currencyFilterLabel, errorMessageFromUniswapJsonBody, extractPermitDataFromLimitQuote, extractUniswapLpTokenAmounts, extractUniswapLpTransaction, fetchEthereumAddressForKeyGen, fetchRobinhoodBitqueryOhlcv, fetchUniswapV4ChartLivePrice, fetchUniswapV4LatestSwap, fetchUniswapV4PoolDayDatas, fetchUniswapV4PoolHourDatas, fetchUniswapV4PoolMeta, fetchUniswapV4Swaps, fetchUniswapXLimitOrders, formatUniswapAmountFieldFromWei, formatUniswapLpAmountHuman, formatUniswapPercentForUi, formatUniswapQuoteForDisplay, formatUniswapV4PositionNotFoundError, getClassicQuoteFromStoredUniswapResponse, getUniswapUniversalRouterSpenderOrThrow, getUniswapUniversalRouterVersion, getUniswapV4PositionManagerDeployBlock, getUniswapV4PositionManagerOrThrow, isBitqueryAuthOrRateLimitError, isEthGetLogsBlockRangeTooLargeError, isNativeUniswapLpTokenAddress, isRobinhoodOhlcvChain, isTheGraphRateLimitOrAuthError, isUniswapFullQuoteResponseNativeIn, isUniswapFullQuoteResponseNativeOut, isUniswapLimitOrderChainSupported, isUniswapNativeTokenAddress, isUniswapTokenInAddressNative, isUniswapV4ChainSupported, isUniswapV4LiquidityEvmSignRequest, isUniswapV4SwapEvmSignRequest, listUniswapV4PositionsForWallet, listUniswapV4StandardLpPools, mapBitqueryOhlcvRowsToCandles, messageFromUniswapHttpResponseBody, parseUniswapChainId, parseUniswapLpApiSnapshot, parseUniswapQuoteClassicInOut, parseUniswapQuoteSlippageInfo, parseUniswapV4ScanFromDateYmd, permitDataToEip712Payload, quoteSwap, readUniswapV4PositionInfoRaw, requireBitqueryApiKey, resolveBitqueryApiKey, resolveBlockAtOrAfterUnixTime, resolveChainIdFromStoredUniswapQuote, resolveInputChainId, resolveRobinhoodChartCurrency, resolveRouterSwapGasUnitsFromSignRequest, resolveTheGraphApiKey, resolveUniswapV4LpExistingPoolFromKey, resolveUniswapV4LpPoolPreset, resolveUniswapV4OhlcvDataTier, resolveUniswapV4OhlcvPool, resolveUniswapV4PositionScanFromDate, sortUniswapV4PoolCurrencies, submitUniswapXLimitOrder, swapExactInput, swapFromQuote, swapTransactionDeadlineUnixFromExpiryMinutes, theGraphApiKeyVariablesHint, theGraphRateLimitErrorMessage, tryGetUniswapV4PositionManager, uniswapCreateSwap, uniswapFetchLimitOrdersMcp, uniswapLimitOrderQuote, uniswapLpClaimFees, uniswapLpCreatePosition, uniswapLpDecreasePosition, uniswapLpIncreasePosition, uniswapLpTxFieldForAction, uniswapQuoteToJsonQuoteOneLine, uniswapTradeQuote, uniswapV4, uniswapV4FetchOhlcv, uniswapV4ListPositionsForMcp, uniswapV4ListPositionsFromRegistryForMcp, uniswapV4ListPositionsRegistryMcpPlaceholder, uniswapV4ListStandardLpPools, uniswapV4OhlcvIntervalToBucketSec, uniswapV4OhlcvSupportedChainIds, uniswapV4PositionMintedTokenIdsFromReceipt, uniswapV4ProtocolModule, uniswapV4RegisterPositionFromMintTxPlaceholder, uniswapV4RegisterPositionNftPlaceholder, uniswapV4SubgraphIdForChain, uniswapV4SubgraphSupportedChainIds, uniswapV4SubgraphUrlForChain };
|
|
4036
4126
|
//# sourceMappingURL=index.js.map
|
|
4037
4127
|
//# sourceMappingURL=index.js.map
|