From a69e53cca19612dfd741da6489044be53e206f7e Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Wed, 28 Jan 2026 10:36:30 +0100 Subject: [PATCH 1/2] Update Citrea RPC and explorer URLs to citreascan.com (#19) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rpc.citrea.xyz → rpc.citreascan.com - rpc.testnet.citrea.xyz → rpc.testnet.citreascan.com - explorer.mainnet.citrea.xyz → citreascan.com - explorer.testnet.citrea.xyz → testnet.citreascan.com --- .env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 6214cc1..297751d 100644 --- a/.env.example +++ b/.env.example @@ -5,8 +5,8 @@ CONFIG_INDEXER_URL=https://dev.ponder.testnet.juicedollar.com/ CONFIG_INDEXER_FALLBACK_URL=https://dev.ponder.testnet.juicedollar.com/ CONFIG_CHAIN=testnet -RPC_URL_MAINNET=https://rpc.citrea.xyz -RPC_URL_TESTNET=https://rpc.testnet.citrea.xyz +RPC_URL_MAINNET=https://rpc.citreascan.com +RPC_URL_TESTNET=https://rpc.testnet.citreascan.com COINGECKO_API_KEY=[API-KEY] From 5067be0238ae13e11678b99fed0537f7ab4f77ec Mon Sep 17 00:00:00 2001 From: Patrick <42653152+lapatric@users.noreply.github.com> Date: Sat, 7 Feb 2026 21:54:55 +0100 Subject: [PATCH 2/2] update GraphQL queries for unified BridgeTx schema (#21) --- bridge/bridge.enum.ts | 16 ++++++++++++++ bridge/bridge.service.ts | 48 ++++++++++++++++++++++------------------ bridge/bridge.types.ts | 1 + 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/bridge/bridge.enum.ts b/bridge/bridge.enum.ts index 3210041..eb57d4c 100644 --- a/bridge/bridge.enum.ts +++ b/bridge/bridge.enum.ts @@ -1,3 +1,19 @@ +import { ADDRESS } from '@juicedollar/jusd'; +import { CONFIG } from 'api.config'; + export enum StablecoinEnum { StartUSD = 'StartUSD', + USDCe = 'USDC.e', + USDTe = 'USDT.e', + ctUSD = 'ctUSD', } + +const ADDR = ADDRESS[CONFIG.chain.id]; + +// Map enum values to lowercased stablecoin token addresses (skipping undefined for testnet) +export const STABLECOIN_ADDRESS: Partial> = { + ...(ADDR?.startUSD ? { [StablecoinEnum.StartUSD]: ADDR.startUSD.toLowerCase() } : {}), + ...(ADDR?.USDC ? { [StablecoinEnum.USDCe]: ADDR.USDC.toLowerCase() } : {}), + ...(ADDR?.USDT ? { [StablecoinEnum.USDTe]: ADDR.USDT.toLowerCase() } : {}), + ...(ADDR?.CTUSD ? { [StablecoinEnum.ctUSD]: ADDR.CTUSD.toLowerCase() } : {}), +}; \ No newline at end of file diff --git a/bridge/bridge.service.ts b/bridge/bridge.service.ts index caf1ed8..f087659 100644 --- a/bridge/bridge.service.ts +++ b/bridge/bridge.service.ts @@ -2,38 +2,42 @@ import { gql } from '@apollo/client/core'; import { Injectable } from '@nestjs/common'; import { PONDER_CLIENT } from 'api.apollo.config'; import { StablecoinBridgeQuery } from './bridge.types'; - -import { StablecoinEnum } from './bridge.enum'; +import { StablecoinEnum, STABLECOIN_ADDRESS } from './bridge.enum'; @Injectable() export class BridgeService { async getBridgedStables(stablecoin: StablecoinEnum, timestamp: Date, minAmount: bigint): Promise { + const address = STABLECOIN_ADDRESS[stablecoin]; + if (!address) return []; + const checkTimestamp = Math.trunc(timestamp.getTime() / 1000); const bridgeFetched = await PONDER_CLIENT.query({ fetchPolicy: 'no-cache', query: gql` - query GetBridge${stablecoin} { - bridge${stablecoin}s( - orderBy: "timestamp", orderDirection: "desc" - where: { - timestamp_gt: "${checkTimestamp}" - amount_gte: "${minAmount}" - isMint: true - } - ) { - items { - swapper - txHash - amount - isMint - timestamp - } - } - } - `, + query GetBridgeTxs { + bridgeTxs( + orderBy: "timestamp", orderDirection: "desc" + where: { + stablecoinAddress: "${address}" + timestamp_gt: "${checkTimestamp}" + amount_gte: "${minAmount}" + isMint: true + } + ) { + items { + stablecoinAddress + swapper + txHash + amount + isMint + timestamp + } + } + } + `, }); - return bridgeFetched?.data?.[`bridge${stablecoin}s`]?.items ?? []; + return bridgeFetched?.data?.bridgeTxs?.items ?? []; } } diff --git a/bridge/bridge.types.ts b/bridge/bridge.types.ts index 42e1b86..6c7a2fc 100644 --- a/bridge/bridge.types.ts +++ b/bridge/bridge.types.ts @@ -1,6 +1,7 @@ import { Address } from 'viem'; export type StablecoinBridgeQuery = { + stablecoinAddress: string; txHash: string; swapper: Address; amount: string;