{"version":3,"sources":["../../src/query/utils.ts"],"sourcesContent":["import { removeDecimals, toBigDecimal } from '@nadohq/utils';\nimport { ReadContractReturnType } from 'viem';\nimport {\n  BalanceHealthContributions,\n  NadoAbis,\n  PerpProduct,\n  ProductEngineType,\n  SpotProduct,\n} from '../common';\nimport { calcTotalBorrowed, calcTotalDeposited } from '../utils';\n\ntype GetAllProductsResponse = ReadContractReturnType<\n  NadoAbis['querier'],\n  'getAllProducts'\n>;\n\nexport function mapContractSpotProduct(\n  product: GetAllProductsResponse['spotProducts'][number],\n): SpotProduct {\n  return {\n    productId: Number(product.productId),\n    type: ProductEngineType.SPOT,\n    tokenAddr: product.config.token,\n    interestSmallCap: removeDecimals(product.config.interestSmallCapX18),\n    interestLargeCap: removeDecimals(product.config.interestLargeCapX18),\n    interestFloor: removeDecimals(product.config.interestFloorX18),\n    interestInflectionUtil: removeDecimals(\n      product.config.interestInflectionUtilX18,\n    ),\n    totalBorrowed: calcTotalBorrowed(\n      product.state.totalBorrowsNormalized,\n      product.state.cumulativeBorrowsMultiplierX18,\n    ),\n    totalDeposited: calcTotalDeposited(\n      product.state.totalDepositsNormalized,\n      product.state.cumulativeDepositsMultiplierX18,\n    ),\n    shortWeightInitial: removeDecimals(product.risk.shortWeightInitialX18),\n    shortWeightMaintenance: removeDecimals(\n      product.risk.shortWeightMaintenanceX18,\n    ),\n    longWeightInitial: removeDecimals(product.risk.longWeightInitialX18),\n    longWeightMaintenance: removeDecimals(\n      product.risk.longWeightMaintenanceX18,\n    ),\n    oraclePrice: removeDecimals(product.oraclePriceX18),\n  };\n}\n\nexport function mapContractPerpProduct(\n  product: GetAllProductsResponse['perpProducts'][number],\n): PerpProduct {\n  return {\n    productId: Number(product.productId),\n    type: ProductEngineType.PERP,\n    shortWeightInitial: removeDecimals(product.risk.shortWeightInitialX18),\n    shortWeightMaintenance: removeDecimals(\n      product.risk.shortWeightMaintenanceX18,\n    ),\n    longWeightInitial: removeDecimals(product.risk.longWeightInitialX18),\n    longWeightMaintenance: removeDecimals(\n      product.risk.longWeightMaintenanceX18,\n    ),\n    cumulativeFundingLong: removeDecimals(\n      product.state.cumulativeFundingLongX18,\n    ),\n    cumulativeFundingShort: removeDecimals(\n      product.state.cumulativeFundingShortX18,\n    ),\n    oraclePrice: removeDecimals(product.oraclePriceX18),\n    openInterest: toBigDecimal(product.state.openInterest),\n  };\n}\n\nexport function mapHealthContributions(\n  contributionsForProduct: readonly bigint[],\n): BalanceHealthContributions {\n  // Initial, maint, unweighted\n  return {\n    initial: toBigDecimal(contributionsForProduct[0]),\n    maintenance: toBigDecimal(contributionsForProduct[1]),\n    unweighted: toBigDecimal(contributionsForProduct[2]),\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAE7C,oBAMO;AACP,IAAAA,gBAAsD;AAO/C,SAAS,uBACd,SACa;AACb,SAAO;AAAA,IACL,WAAW,OAAO,QAAQ,SAAS;AAAA,IACnC,MAAM,gCAAkB;AAAA,IACxB,WAAW,QAAQ,OAAO;AAAA,IAC1B,sBAAkB,6BAAe,QAAQ,OAAO,mBAAmB;AAAA,IACnE,sBAAkB,6BAAe,QAAQ,OAAO,mBAAmB;AAAA,IACnE,mBAAe,6BAAe,QAAQ,OAAO,gBAAgB;AAAA,IAC7D,4BAAwB;AAAA,MACtB,QAAQ,OAAO;AAAA,IACjB;AAAA,IACA,mBAAe;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,oBAAgB;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,wBAAoB,6BAAe,QAAQ,KAAK,qBAAqB;AAAA,IACrE,4BAAwB;AAAA,MACtB,QAAQ,KAAK;AAAA,IACf;AAAA,IACA,uBAAmB,6BAAe,QAAQ,KAAK,oBAAoB;AAAA,IACnE,2BAAuB;AAAA,MACrB,QAAQ,KAAK;AAAA,IACf;AAAA,IACA,iBAAa,6BAAe,QAAQ,cAAc;AAAA,EACpD;AACF;AAEO,SAAS,uBACd,SACa;AACb,SAAO;AAAA,IACL,WAAW,OAAO,QAAQ,SAAS;AAAA,IACnC,MAAM,gCAAkB;AAAA,IACxB,wBAAoB,6BAAe,QAAQ,KAAK,qBAAqB;AAAA,IACrE,4BAAwB;AAAA,MACtB,QAAQ,KAAK;AAAA,IACf;AAAA,IACA,uBAAmB,6BAAe,QAAQ,KAAK,oBAAoB;AAAA,IACnE,2BAAuB;AAAA,MACrB,QAAQ,KAAK;AAAA,IACf;AAAA,IACA,2BAAuB;AAAA,MACrB,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,4BAAwB;AAAA,MACtB,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,iBAAa,6BAAe,QAAQ,cAAc;AAAA,IAClD,kBAAc,2BAAa,QAAQ,MAAM,YAAY;AAAA,EACvD;AACF;AAEO,SAAS,uBACd,yBAC4B;AAE5B,SAAO;AAAA,IACL,aAAS,2BAAa,wBAAwB,CAAC,CAAC;AAAA,IAChD,iBAAa,2BAAa,wBAAwB,CAAC,CAAC;AAAA,IACpD,gBAAY,2BAAa,wBAAwB,CAAC,CAAC;AAAA,EACrD;AACF;","names":["import_utils"]}