From 40e5851010bceb77075c0f4356d8a7eebfb15193 Mon Sep 17 00:00:00 2001 From: matteen Date: Fri, 21 Nov 2025 12:36:27 -0500 Subject: [PATCH 1/2] monad --- config/monad/.subgraph-env | 2 ++ config/monad/chain.ts | 39 ++++++++++++++++++++++++++++++++++ config/monad/config.json | 5 +++++ script/utils/prepareNetwork.ts | 11 +++++----- 4 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 config/monad/.subgraph-env create mode 100644 config/monad/chain.ts create mode 100644 config/monad/config.json diff --git a/config/monad/.subgraph-env b/config/monad/.subgraph-env new file mode 100644 index 00000000..1640071e --- /dev/null +++ b/config/monad/.subgraph-env @@ -0,0 +1,2 @@ +V2_TOKEN_SUBGRAPH_NAME="v2-tokens-monad" +V2_SUBGRAPH_NAME="uniswap-v2-monad" diff --git a/config/monad/chain.ts b/config/monad/chain.ts new file mode 100644 index 00000000..1cc6a37a --- /dev/null +++ b/config/monad/chain.ts @@ -0,0 +1,39 @@ +import { Address, BigDecimal, BigInt } from '@graphprotocol/graph-ts/index' + +export const FACTORY_ADDRESS = '0x182a927119d56008d921126764bf884221b10f59' + +export const REFERENCE_TOKEN = '0x3bd359c1119da7da1d913d1c4d2b7c461115433a' +export const STABLE_TOKEN_PAIRS = ['0x3fe12728ea1b89e4bac6e59a9130b61a27d032f8'] + +// token where amounts should contribute to tracked volume and liquidity +export const WHITELIST: string[] = [ + '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', // WMON + '0x754704bc059f8c67012fed69bc8a327a5aafb603', // USDC + '0x00000000efe302beaa2b3e6e1b18d08d69a9012a', // AUSD + '0xe7cd86e13ac4309349f30b3435a9d337750fc82d', // USDT + '0xee8c0e9f1bffb4eb878d8f15f368a02a35481242', // WETH + '0xea17e5a9efebf1477db45082d67010e2245217f1', // WSOL +] + +export const STABLECOINS = [ + '0x754704bc059f8c67012fed69bc8a327a5aafb603', // USDC + '0x00000000efe302beaa2b3e6e1b18d08d69a9012a', // AUSD + '0xe7cd86e13ac4309349f30b3435a9d337750fc82d', // USDT +] + +// minimum liquidity required to count towards tracked volume for pairs with small # of Lps +export const MINIMUM_USD_THRESHOLD_NEW_PAIRS = BigDecimal.fromString('10000') + +// minimum liquidity for price to get tracked +export const MINIMUM_LIQUIDITY_THRESHOLD_ETH = BigDecimal.fromString('100000') + +export class TokenDefinition { + address: Address + symbol: string + name: string + decimals: BigInt +} + +export const STATIC_TOKEN_DEFINITIONS: TokenDefinition[] = [] + +export const SKIP_TOTAL_SUPPLY: string[] = [] diff --git a/config/monad/config.json b/config/monad/config.json new file mode 100644 index 00000000..9c89a759 --- /dev/null +++ b/config/monad/config.json @@ -0,0 +1,5 @@ +{ + "network": "monad", + "factory": "0x182a927119D56008d921126764bF884221b10f59", + "startblock": "29255814" +} diff --git a/script/utils/prepareNetwork.ts b/script/utils/prepareNetwork.ts index 51fc9992..6ec6da75 100644 --- a/script/utils/prepareNetwork.ts +++ b/script/utils/prepareNetwork.ts @@ -12,16 +12,17 @@ export enum NETWORK { CELO = 'celo', ETHEREUM = 'ethereum', MATIC = 'matic', + MONAD = 'monad', OPTIMISM = 'optimism', SONEIUM = 'soneium-mainnet', UNICHAIN = 'unichain-mainnet', WORLDCHAIN = 'worldchain-mainnet', - ZORA = 'zora-mainnet', + ZORA = 'zora-mainnet' } export enum SUBGRAPH_TYPE { V2_TOKENS = 'v2-tokens', - V2 = 'v2', + V2 = 'v2' } const CHAIN_CONSTANTS_FILE_NAME = 'chain.ts' @@ -35,7 +36,7 @@ export function validateNetwork(network: string) { if ( !Object.values(NETWORK) - .map((n) => n.toString()) + .map(n => n.toString()) .includes(network) ) { console.error('invalid network parameter passed, pass either: ', ...Object.values(NETWORK)) @@ -51,7 +52,7 @@ export function validateSubgraphType(subgraphType: string) { if ( !Object.values(SUBGRAPH_TYPE) - .map((n) => n.toString()) + .map(n => n.toString()) .includes(subgraphType) ) { console.error('invalid subgraph name parameter passed, pass either: ', ...Object.values(SUBGRAPH_TYPE)) @@ -99,7 +100,7 @@ export function getAlchemyDeploymentParams(): { return { node: process.env.ALCHEMY_DEPLOY_URL, ipfs: process.env.ALCHEMY_IPFS_URL, - deployKey: process.env.ALCHEMY_DEPLOY_KEY, + deployKey: process.env.ALCHEMY_DEPLOY_KEY } } From dd9bc36d268ec419395f0b44bfcb6608dc5e22e9 Mon Sep 17 00:00:00 2001 From: matteenm Date: Fri, 21 Nov 2025 20:15:55 +0000 Subject: [PATCH 2/2] fix(lint): auto-fix [ci] --- script/utils/prepareNetwork.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/script/utils/prepareNetwork.ts b/script/utils/prepareNetwork.ts index 6ec6da75..0cc7c73f 100644 --- a/script/utils/prepareNetwork.ts +++ b/script/utils/prepareNetwork.ts @@ -17,12 +17,12 @@ export enum NETWORK { SONEIUM = 'soneium-mainnet', UNICHAIN = 'unichain-mainnet', WORLDCHAIN = 'worldchain-mainnet', - ZORA = 'zora-mainnet' + ZORA = 'zora-mainnet', } export enum SUBGRAPH_TYPE { V2_TOKENS = 'v2-tokens', - V2 = 'v2' + V2 = 'v2', } const CHAIN_CONSTANTS_FILE_NAME = 'chain.ts' @@ -36,7 +36,7 @@ export function validateNetwork(network: string) { if ( !Object.values(NETWORK) - .map(n => n.toString()) + .map((n) => n.toString()) .includes(network) ) { console.error('invalid network parameter passed, pass either: ', ...Object.values(NETWORK)) @@ -52,7 +52,7 @@ export function validateSubgraphType(subgraphType: string) { if ( !Object.values(SUBGRAPH_TYPE) - .map(n => n.toString()) + .map((n) => n.toString()) .includes(subgraphType) ) { console.error('invalid subgraph name parameter passed, pass either: ', ...Object.values(SUBGRAPH_TYPE)) @@ -100,7 +100,7 @@ export function getAlchemyDeploymentParams(): { return { node: process.env.ALCHEMY_DEPLOY_URL, ipfs: process.env.ALCHEMY_IPFS_URL, - deployKey: process.env.ALCHEMY_DEPLOY_KEY + deployKey: process.env.ALCHEMY_DEPLOY_KEY, } }