{"id":27452340,"url":"https://github.com/fractional-company/subgrapher","last_synced_at":"2025-06-12T12:38:50.204Z","repository":{"id":44965411,"uuid":"501139412","full_name":"fractional-company/subgrapher","owner":"fractional-company","description":"Simple utility for querying popular Subgraphs.","archived":false,"fork":false,"pushed_at":"2023-01-06T08:54:58.000Z","size":561,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-16T15:56:54.683Z","etag":null,"topics":["subgraph","sushiswap","uniswap","uniswap-v2","uniswap-v3","utility"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fractional-company.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-08T07:10:56.000Z","updated_at":"2022-06-08T15:39:55.000Z","dependencies_parsed_at":"2023-02-05T18:15:39.129Z","dependency_job_id":null,"html_url":"https://github.com/fractional-company/subgrapher","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/fractional-company/subgrapher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractional-company%2Fsubgrapher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractional-company%2Fsubgrapher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractional-company%2Fsubgrapher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractional-company%2Fsubgrapher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fractional-company","download_url":"https://codeload.github.com/fractional-company/subgrapher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractional-company%2Fsubgrapher/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259466696,"owners_count":22862367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["subgraph","sushiswap","uniswap","uniswap-v2","uniswap-v3","utility"],"created_at":"2025-04-15T11:45:12.490Z","updated_at":"2025-06-12T12:38:50.172Z","avatar_url":"https://github.com/fractional-company.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @fractional-company/subgrapher\n\n[![npm package][npm-img]][npm-url]\n[![Build Status][build-img]][build-url]\n[![Downloads][downloads-img]][downloads-url]\n[![Issues][issues-img]][issues-url]\n[![Code Coverage][codecov-img]][codecov-url]\n[![Semantic Release][semantic-release-img]][semantic-release-url]\n\n\u003e Simple utility for querying popular Subgraphs.\n\u003e \n\u003e Supported Subgraphs: Blocks, Uniswap V2, Uniswap V3 and Sushiswap.\n\n## Install\n\n```bash\nnpm install @fractional-company/subgrapher\n```\n\n## Usage\n\n## Ethereum Blocks\n\n### Get the nearest block based on a timestamp\n\n```ts\nimport { Blocks, CHAINS } from '@fractional-company/subgrapher';\n\nconst service = new Blocks(CHAINS.MAINNET);\nawait service.getNearestBlockByTimestamp(1654313448);\n//=\u003e {id: '0xd357c32704daa1147461c786a9fd6ee29d2119b2f416aefe253b231b20b99a3a', number: 14901000, timestamp: 1654313446}\n```\n#### getNearestBlockByTimestamp(timestamp)\n\n#### timestamp\n\nType: `number` - *(timestamp)*\n\n### Get blocks based on block numbers\n\n```ts\nimport { Blocks, CHAINS } from '@fractional-company/subgrapher';\n\nconst service = new Blocks(CHAINS.MAINNET);\nawait service.getBlocksByNumbers([14901000]);\n//=\u003e [{id: '0xd357c32704daa1147461c786a9fd6ee29d2119b2f416aefe253b231b20b99a3a', number: 14901000, timestamp: 1654313446}]\n```\n\n#### getNearestBlockByTimestamp(blockNumbers)\n\n#### blockNumbers\n\nType: `array` - *(array of block numbers)*\n\n### Get block based on current date sub one, two or seven day/s\n\n```ts\nimport { Blocks, CHAINS } from '@fractional-company/subgrapher';\n\nconst service = new Blocks(CHAINS.MAINNET);\n\n// now sub 1 day\nawait service.fetchOneDayBlock();\n//=\u003e {id: '0x0e7ae8b9cbdb9f12bc2add28f31e21fe2225f06d9a7d44a5eb2742b54f8b6321',number: 14919711,timestamp: 1654588984}\n\n// now sub 2 days\nawait service.fetchTwoDayBlock();\n//=\u003e {id: '0xcaf1a8fe520abaaf4e5b0de91c4caeafcbea4add66192e45dd0310b9167d7058',number: 14913845,timestamp: 1654502582} \n\n// now sub 7 days\nawait service.fetchSevenDayBlock();\n//=\u003e {id: '0xd6e300ce35886708485d99c75211f22ca4747626e65187abb25d068923490d5f',number: 14883711,timestamp: 1654070592}\n```\n\n## Dexes\n\nSupported:\n- SUSHISWAP \n- UNISWAP V2 \n- UNISWAP V3\n\n### Get current or historical ETH price\n\n```ts\nimport { DEXES, CHAINS } from '@fractional-company/subgrapher';\n\nconst service = new DEXES(CHAINS.MAINNET);\n\n// ETH price\nconst blockNumber = 14901000;\nservice.getEthPrice(blockNumber, method, sources)\n//=\u003e BigNumber\n\n// Array of  ETH prices (across dexes) \nservice.getEthPrices(blockNumber, sources)\n//=\u003e [BigNumber,BigNumber,BigNumber]\n```\n#### getEthPrice(blockNumber?, method?, sources?)\n#### getEthPrices(blockNumber?, sources?)\n#### blockNumber\n\nType: `number` - *(block number)*\n\n#### method\n\nType: `string`\n\nDefault: `max`\n\n##### sources\n\nType: `array` - *(array of sources to fetch prices from)*\n\nDefault: `[SUSHISWAP_V1, UNISWAP_V2, UNISWAP_V3]`\n\n### Get current or historical ERC20 token price\n\n```ts\nimport { DEXES, CHAINS } from '@fractional-company/subgrapher';\n\nconst service = new DEXES(CHAINS.MAINNET);\n\n// ETH price\nconst blockNumber = 14901000;\nservice.getTokenPrice(contractAddress, blockNumber, method, sources)\n//=\u003e BigNumber\n\n// Array of  prices (across dexes) \nservice.getTokenPrices(contractAddress, blockNumber, sources)\n//=\u003e [BigNumber,BigNumber,BigNumber]\n```\n#### getTokenPrice(contractAddress, blockNumber?, method?, sources?)\n#### getTokenPrices(contractAddress, blockNumber?, sources?)\n\n#### contractAddress\n\nType: `string` -  *(ERC 20 token contract Address)*\n\n#### blockNumber\n\nType: `number`  - *(the block number)*\n\n#### method\n\nType: `string`\n\nDefault: `max`\n\n##### sources\n\nType: `array` - *(array of sources to fetch prices from)*\n\nDefault: `[SUSHISWAP_V1, UNISWAP_V2, UNISWAP_V3]`\n\n### Get ERC20 token pools\n\n```ts\nimport { DEXES, CHAINS } from '@fractional-company/subgrapher';\n\nconst service = new DEXES(CHAINS.MAINNET);\n\nservice.getTokenPools(contractAddress)\n//=\u003e [{ weight?: number,  source: string,  address: string,  token0: TokenData,  token1: TokenData,  token0Price: BigNumber,  token1Price: BigNumber,  volumeUSD: BigNumber,  txCount: BigNumber,  totalValueLockedUSD: BigNumber,  totalValueLockedToken0: BigNumber,  totalValueLockedToken1: BigNumber}]\n\n```\n#### getTokenPools(contractAddress)\n\n#### contractAddress\n\nType: `string` - *(ERC 20 contract address)* \n\n[build-img]:https://github.com/fractional-company/subgrapher/actions/workflows/release.yml/badge.svg\n\n[build-url]:https://github.com/fractional-company/subgrapher/actions/workflows/release.yml\n\n[downloads-img]:https://img.shields.io/npm/dt/@fractional-company/subgrapher\n\n[downloads-url]:https://www.npmtrends.com/@fractional-company/subgrapher\n\n[npm-img]:https://img.shields.io/npm/v/@fractional-company/subgrapher\n\n[npm-url]:https://www.npmjs.com/package/@fractional-company/subgrapher\n\n[issues-img]:https://img.shields.io/github/issues/fractional-company/subgrapher\n\n[issues-url]:https://github.com/fractional-company/subgrapher/issues\n\n[codecov-img]:https://codecov.io/gh/fractional-company/subgrapher/branch/main/graph/badge.svg\n\n[codecov-url]:https://codecov.io/gh/fractional-company/subgrapher\n\n[semantic-release-img]:https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\n\n[semantic-release-url]:https://github.com/semantic-release/semantic-release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffractional-company%2Fsubgrapher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffractional-company%2Fsubgrapher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffractional-company%2Fsubgrapher/lists"}