{
  "name": "market-types-market",
  "type": "registry:component",
  "dependencies": [
    "@bsv/sdk"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "components/market/types/market.ts",
      "type": "registry:component",
      "content": "// Market Types - Core marketplace types and interfaces\n// import type { PrivateKey, Transaction } from '@bsv/sdk';\n\nexport enum AssetType {\n\tOrdinals = \"ordinals\",\n\tBSV20 = \"bsv20\",\n\tBSV21 = \"bsv21\",\n\tLRC20 = \"lrc20\",\n}\n\nexport enum TokenType {\n\tBSV20 = \"bsv20\",\n\tBSV21 = \"bsv21\",\n}\n\nexport enum SortBy {\n\tTicker = \"name\",\n\tMostRecentSale = \"most_recent_sale\",\n\tMarketCap = \"market_cap\",\n\tPrice = \"price\",\n\tPctChange = \"pct_change\",\n\tHolders = \"holders\",\n\tNumber = \"num\",\n}\n\nexport enum Direction {\n\tASC = \"asc\",\n\tDESC = \"desc\",\n}\n\nexport interface MarketConfig {\n\tapiHost: string;\n\tmarketApiHost: string;\n\tfeeRate: number;\n\tmarketFee: number;\n}\n\nexport interface MarketDataBase {\n\tprice: number;\n\tmarketCap: number;\n\tpctChange: number;\n\taccounts: number;\n\tlastSaleHeight?: number;\n\tsupply?: string;\n\tfundAddress?: string;\n}\n\nexport interface MarketDataV1 extends MarketDataBase {\n\ttick: string;\n\tmax: string;\n\tlim: string;\n\tdec: number;\n\tnum: number;\n}\n\nexport interface MarketDataV2 extends MarketDataBase {\n\tid: string;\n\tsym: string;\n\ticon?: string;\n\tamt: string;\n\tdec: number;\n}\n\nexport type MarketData = MarketDataV1 | MarketDataV2;\n\nexport interface ChainInfo {\n\tchain: string;\n\tblocks: number;\n\theaders: number;\n\tbestblockhash: string;\n\tdifficulty?: number;\n\tmediantime: number;\n\tverificationprogress?: number;\n\tpruned?: boolean;\n\tchainwork?: string;\n}\n\nexport interface ExchangeRate {\n\tprice: number;\n\tcurrency: string;\n\ttimestamp: number;\n}\n\nexport interface MarketStats {\n\ttotalVolume24h: number;\n\ttotalListings: number;\n\tactiveTokens: number;\n\ttopGainers: MarketData[];\n\ttopLosers: MarketData[];\n}\n\nexport interface BroadcastResult {\n\tsuccess: boolean;\n\ttxid?: string;\n\terror?: string;\n}\n\nexport interface MarketError extends Error {\n\tcode: string;\n\tmessage: string;\n\tdetails?: Error | Record<string, unknown>;\n\tname: string;\n}\n",
      "target": "<%- config.aliases.components %>/market.tsx"
    }
  ]
}