diff --git a/package.json b/package.json index a8facef..9bbb8d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@clober/v2-sdk", - "version": "0.0.57", + "version": "0.0.58", "description": "🛠 An SDK for building applications on top of Clober V2", "files": [ "dist" diff --git a/src/view.ts b/src/view.ts index 52fe381..fb3a23e 100644 --- a/src/view.ts +++ b/src/view.ts @@ -19,6 +19,7 @@ import { getMarketId } from './utils/market' import { CONTRACT_ADDRESSES } from './constants/addresses' import { invertTick, toPrice } from './utils/tick' import { MAX_TICK, MIN_TICK } from './constants/tick' +import { Subgraph } from './constants/subgraph' /** * Get contract addresses by chain id @@ -36,6 +37,46 @@ export const getContractAddresses = ({ chainId }: { chainId: CHAIN_IDS }) => { return CONTRACT_ADDRESSES[chainId] } +/** + * Get subgraph block number by chain id + * @param chainId - chain id from {@link CHAIN_IDS} + * @returns Contract addresses + * + * @example + * import { getContractAddresses } from '@clober/v2-sdk' + * + * const blockNumber = await getSubgraphBlockNumber({ + * chainId: 421614, + * }) + */ +export const getSubgraphBlockNumber = async ({ + chainId, +}: { + chainId: CHAIN_IDS +}) => { + const { + data: { + _meta: { + block: { number }, + }, + }, + } = await Subgraph.get<{ + data: { + _meta: { + block: { + number: number + } + } + } + }>( + chainId, + 'getLatestBlockNumber', + 'query getLatestBlockNumber { _meta { block { number } } }', + {}, + ) + return number +} + /** * Get market information by chain id and token addresses * @param chainId - chain id from {@link CHAIN_IDS}