{"version":3,"sources":["../../../src/subgraph/accounts/subgraphQueries.ts"],"sourcesContent":["import { gql } from 'graphql-request';\n\n// The `fetchRealizedPnlData` query fetches the realized PnL for a user address\n// for vaults and positions\nexport const fetchRealizedPnlData = (userAddress: string) => gql`\n  {\n    account(id: \"${userAddress.toLowerCase()}\") {\n      id\n      totalRealizedPnlPositions\n      totalRealizedPnlVaults\n    }\n  }\n`;\n\n/// Fetch Portfolio total for a set of addresses\n/// Portfolio total consists of\n/// 1. Realized PNL from positions and vaults - user.totalRealizedPnlPositions, user.totalRealizedPnlVaults\n/// 2. Unrealized PNL from positions - positions.netUnrealizedPnlInUsd\n/// 3. Deposited liquidity in vaults -\n/// 4. Deposited collateral of all open positions - positions.positionCollateral\nexport const fetchPortfolioData = (userAddresses: string[]) => gql`\n{\n  accounts(where: {id_in: [${userAddresses.map((id) => `\"${id.toLowerCase()}\"`).join(', ')}]}) {\n    id\n    totalRealizedPnlPositions\n    totalRealizedPnlVaults\n  }\n  positions(\n    first: 1000\n    orderBy: positionCollateral\n    orderDirection: desc\n    where: {\n      user_in: [${userAddresses.map((id) => `\"${id.toLowerCase()}\"`).join(', ')}], \n      status: OPEN\n      }\n  ) {\n    id\n    user {\n      id\n    }\n    netUnrealizedPnlInUsd\n    positionCollateral\n    market {\n      depositToken {\n        decimals\n        pyth {\n          id\n          price\n        }\n      }\n    }\n  }\n  vaultPositions(\n    first: 1000\n    orderBy: sharesBalance\n    orderDirection: desc\n    where: {user_in: [${userAddresses.map((id) => `\"${id.toLowerCase()}\"`).join(', ')}]}\n  ) {\n    user {\n      id\n    }\n    vault {\n      id\n      assetsPerShare\n      sharesPerAsset\n      depositToken {\n        decimals\n        pyth {\n          id\n          price\n        }\n      }\n    }\n    sharesBalance\n  }\n}\n`;\n\nexport const fetchAccountByWalletAddress = (walletAddress: string) =>\n  gql`\n  {\n    wallet(id: \"${walletAddress}\") {\n      id\n    }\n  }\n`;\n\n// Fetch account specific data for a user address for Leaderboard view\nexport const fetchLeaderboardUserData = (userAddresses: string[]) => gql`\n{\n  accounts(\n    where: {id_in: [${userAddresses.map((id) => `\"${id}\"`).join(', ')}]}\n  ) {\n    id\n    totalOrdersCount\n    totalPositionsCount\n    countProfitablePositions\n    countLossPositions\n    countLiquidatedPositions\n    totalVolumeInUsd\n    totalVolumeInUsdLongs\n    totalVolumeInUsdShorts\n    totalRealizedPnlPositions\n    totalAccruedBorrowingFeesInUsd \n  }\n}`;\n\nexport const fetchIntegratorFees = (userAddresses: string[]) => gql`\n  {\n    snxAccounts(where:\n    {\n      owner_in: [${userAddresses.map((id) => `\"${id}\"`).join(', ')}],\n      type: PERP\n    }) {\n      id\n      accountId\n      owner {\n        id\n      }\n      integratorFeesGenerated\n    }\n  }\n`;\n\nexport const checkExistingUser = (userAddress: string) => gql`\n  {\n  snxAccounts(\n    where: {\n      owner: \"${userAddress}\",\n      type: PERP,\n    }\n  ) {\n    id\n    accountId\n\t\ttotalOrdersCount\n  }\n}\n`;\n\nexport const depositedCollateralForSnxAccountsQuery = (accountIds: string[]) => gql`\n{\n  snxAccounts\n  (where :{\n    accountId_in : [${accountIds.map((id) => `\"${id}\"`).join(', ')}]\n  })\n {\n    owner{\n      id\n    }\n    accountId\n    collateralDeposits {\n      totalAmountDeposited\n      totalAmountWithdrawn\n      totalAmountLiquidated\n      currentDepositedAmount\n      collateralName\n      collateralSymbol\n      collateralDecimals\n    }\n  }\n}\n`;\n"],"mappings":";AAAA,SAAS,WAAW;AAIb,IAAM,uBAAuB,CAAC,gBAAwB;AAAA;AAAA,mBAE1C,YAAY,YAAY,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcrC,IAAM,qBAAqB,CAAC,kBAA4B;AAAA;AAAA,6BAElC,cAAc,IAAI,CAAC,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAUxE,cAAc,IAAI,CAAC,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAwBvD,cAAc,IAAI,CAAC,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsB9E,IAAM,8BAA8B,CAAC,kBAC1C;AAAA;AAAA,kBAEgB,aAAa;AAAA;AAAA;AAAA;AAAA;AAOxB,IAAM,2BAA2B,CAAC,kBAA4B;AAAA;AAAA;AAAA,sBAG/C,cAAc,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgB9D,IAAM,sBAAsB,CAAC,kBAA4B;AAAA;AAAA;AAAA;AAAA,mBAI7C,cAAc,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa3D,IAAM,oBAAoB,CAAC,gBAAwB;AAAA;AAAA;AAAA;AAAA,gBAI1C,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWpB,IAAM,yCAAyC,CAAC,eAAyB;AAAA;AAAA;AAAA;AAAA,sBAI1D,WAAW,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}