@xyo-network/crypto-asset-plugin 2.74.5 → 2.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/browser/Diviner.cjs +174 -0
  2. package/dist/browser/Diviner.cjs.map +1 -0
  3. package/dist/browser/Diviner.d.mts.map +1 -0
  4. package/dist/browser/Diviner.d.ts.map +1 -0
  5. package/dist/browser/Diviner.js +153 -0
  6. package/dist/browser/Diviner.js.map +1 -0
  7. package/dist/browser/Plugin.cjs +189 -0
  8. package/dist/browser/Plugin.cjs.map +1 -0
  9. package/dist/browser/Plugin.d.mts.map +1 -0
  10. package/dist/browser/Plugin.d.ts.map +1 -0
  11. package/dist/browser/Plugin.js +168 -0
  12. package/dist/browser/Plugin.js.map +1 -0
  13. package/dist/browser/Schema.cjs +29 -0
  14. package/dist/browser/Schema.cjs.map +1 -0
  15. package/dist/browser/Schema.d.mts.map +1 -0
  16. package/dist/browser/Schema.d.ts.map +1 -0
  17. package/dist/browser/Schema.js +8 -0
  18. package/dist/browser/Schema.js.map +1 -0
  19. package/dist/{index.js → browser/index.cjs} +1 -8
  20. package/dist/browser/index.cjs.map +1 -0
  21. package/dist/browser/index.d.mts.map +1 -0
  22. package/dist/browser/index.d.ts.map +1 -0
  23. package/dist/{index.mjs → browser/index.js} +1 -1
  24. package/dist/browser/index.js.map +1 -0
  25. package/dist/browser/lib/average.cjs +67 -0
  26. package/dist/browser/lib/average.cjs.map +1 -0
  27. package/dist/browser/lib/average.d.mts.map +1 -0
  28. package/dist/browser/lib/average.d.ts.map +1 -0
  29. package/dist/browser/lib/average.js +46 -0
  30. package/dist/browser/lib/average.js.map +1 -0
  31. package/dist/browser/lib/divineCoinGeckoPrices.cjs +48 -0
  32. package/dist/browser/lib/divineCoinGeckoPrices.cjs.map +1 -0
  33. package/dist/browser/lib/divineCoinGeckoPrices.d.mts.map +1 -0
  34. package/dist/browser/lib/divineCoinGeckoPrices.d.ts.map +1 -0
  35. package/dist/browser/lib/divineCoinGeckoPrices.js +27 -0
  36. package/dist/browser/lib/divineCoinGeckoPrices.js.map +1 -0
  37. package/dist/browser/lib/divinePrices.cjs +153 -0
  38. package/dist/browser/lib/divinePrices.cjs.map +1 -0
  39. package/dist/browser/lib/divinePrices.d.mts.map +1 -0
  40. package/dist/browser/lib/divinePrices.d.ts.map +1 -0
  41. package/dist/browser/lib/divinePrices.js +132 -0
  42. package/dist/browser/lib/divinePrices.js.map +1 -0
  43. package/dist/browser/lib/divineUniswapPrices.cjs +70 -0
  44. package/dist/browser/lib/divineUniswapPrices.cjs.map +1 -0
  45. package/dist/browser/lib/divineUniswapPrices.d.mts.map +1 -0
  46. package/dist/browser/lib/divineUniswapPrices.d.ts.map +1 -0
  47. package/dist/browser/lib/divineUniswapPrices.js +49 -0
  48. package/dist/browser/lib/divineUniswapPrices.js.map +1 -0
  49. package/dist/browser/lib/index.cjs +155 -0
  50. package/dist/browser/lib/index.cjs.map +1 -0
  51. package/dist/browser/lib/index.d.mts.map +1 -0
  52. package/dist/browser/lib/index.d.ts.map +1 -0
  53. package/dist/browser/lib/index.js +132 -0
  54. package/dist/browser/lib/index.js.map +1 -0
  55. package/dist/browser/test/index.cjs +293 -0
  56. package/dist/browser/test/index.cjs.map +1 -0
  57. package/dist/browser/test/index.d.mts.map +1 -0
  58. package/dist/browser/test/index.d.ts.map +1 -0
  59. package/dist/browser/test/index.js +270 -0
  60. package/dist/browser/test/index.js.map +1 -0
  61. package/dist/browser/test/sampleCoinGecko.cjs +99 -0
  62. package/dist/browser/test/sampleCoinGecko.cjs.map +1 -0
  63. package/dist/browser/test/sampleCoinGecko.d.mts.map +1 -0
  64. package/dist/browser/test/sampleCoinGecko.d.ts.map +1 -0
  65. package/dist/browser/test/sampleCoinGecko.js +78 -0
  66. package/dist/browser/test/sampleCoinGecko.js.map +1 -0
  67. package/dist/browser/test/sampleUniswap.cjs +215 -0
  68. package/dist/browser/test/sampleUniswap.cjs.map +1 -0
  69. package/dist/browser/test/sampleUniswap.d.mts.map +1 -0
  70. package/dist/browser/test/sampleUniswap.d.ts.map +1 -0
  71. package/dist/browser/test/sampleUniswap.js +194 -0
  72. package/dist/browser/test/sampleUniswap.js.map +1 -0
  73. package/dist/node/Diviner.d.mts +16 -0
  74. package/dist/node/Diviner.d.mts.map +1 -0
  75. package/dist/node/Diviner.d.ts +16 -0
  76. package/dist/node/Diviner.d.ts.map +1 -0
  77. package/dist/node/Diviner.js +44 -0
  78. package/dist/node/Diviner.js.map +1 -0
  79. package/dist/node/Diviner.mjs +20 -0
  80. package/dist/node/Diviner.mjs.map +1 -0
  81. package/dist/node/Plugin.d.mts +50 -0
  82. package/dist/node/Plugin.d.mts.map +1 -0
  83. package/dist/node/Plugin.d.ts +50 -0
  84. package/dist/node/Plugin.d.ts.map +1 -0
  85. package/dist/node/Plugin.js +40 -0
  86. package/dist/node/Plugin.js.map +1 -0
  87. package/dist/node/Plugin.mjs +16 -0
  88. package/dist/node/Plugin.mjs.map +1 -0
  89. package/dist/node/Schema.d.mts +5 -0
  90. package/dist/node/Schema.d.mts.map +1 -0
  91. package/dist/node/Schema.d.ts +5 -0
  92. package/dist/node/Schema.d.ts.map +1 -0
  93. package/dist/node/Schema.js +32 -0
  94. package/dist/node/Schema.js.map +1 -0
  95. package/dist/node/Schema.mjs +7 -0
  96. package/dist/node/Schema.mjs.map +1 -0
  97. package/dist/node/index.d.mts +6 -0
  98. package/dist/node/index.d.mts.map +1 -0
  99. package/dist/node/index.d.ts +6 -0
  100. package/dist/node/index.d.ts.map +1 -0
  101. package/dist/node/index.js +36 -0
  102. package/dist/node/index.js.map +1 -0
  103. package/dist/node/index.mjs +9 -0
  104. package/dist/node/index.mjs.map +1 -0
  105. package/dist/node/lib/average.d.mts +3 -0
  106. package/dist/node/lib/average.d.mts.map +1 -0
  107. package/dist/node/lib/average.d.ts +3 -0
  108. package/dist/node/lib/average.d.ts.map +1 -0
  109. package/dist/node/lib/average.js +69 -0
  110. package/dist/node/lib/average.js.map +1 -0
  111. package/dist/node/lib/average.mjs +45 -0
  112. package/dist/node/lib/average.mjs.map +1 -0
  113. package/dist/node/lib/divineCoinGeckoPrices.d.mts +4 -0
  114. package/dist/node/lib/divineCoinGeckoPrices.d.mts.map +1 -0
  115. package/dist/node/lib/divineCoinGeckoPrices.d.ts +4 -0
  116. package/dist/node/lib/divineCoinGeckoPrices.d.ts.map +1 -0
  117. package/dist/node/lib/divineCoinGeckoPrices.js +50 -0
  118. package/dist/node/lib/divineCoinGeckoPrices.js.map +1 -0
  119. package/dist/node/lib/divineCoinGeckoPrices.mjs +26 -0
  120. package/dist/node/lib/divineCoinGeckoPrices.mjs.map +1 -0
  121. package/dist/node/lib/divinePrices.d.mts +5 -0
  122. package/dist/node/lib/divinePrices.d.mts.map +1 -0
  123. package/dist/node/lib/divinePrices.d.ts +5 -0
  124. package/dist/node/lib/divinePrices.d.ts.map +1 -0
  125. package/dist/node/lib/divinePrices.js +43 -0
  126. package/dist/node/lib/divinePrices.js.map +1 -0
  127. package/dist/node/lib/divinePrices.mjs +19 -0
  128. package/dist/node/lib/divinePrices.mjs.map +1 -0
  129. package/dist/node/lib/divineUniswapPrices.d.mts +4 -0
  130. package/dist/node/lib/divineUniswapPrices.d.mts.map +1 -0
  131. package/dist/node/lib/divineUniswapPrices.d.ts +4 -0
  132. package/dist/node/lib/divineUniswapPrices.d.ts.map +1 -0
  133. package/dist/node/lib/divineUniswapPrices.js +72 -0
  134. package/dist/node/lib/divineUniswapPrices.js.map +1 -0
  135. package/dist/node/lib/divineUniswapPrices.mjs +48 -0
  136. package/dist/node/lib/divineUniswapPrices.mjs.map +1 -0
  137. package/dist/node/lib/index.d.mts +2 -0
  138. package/dist/node/lib/index.d.mts.map +1 -0
  139. package/dist/node/lib/index.d.ts +2 -0
  140. package/dist/node/lib/index.d.ts.map +1 -0
  141. package/dist/node/lib/index.js +23 -0
  142. package/dist/node/lib/index.js.map +1 -0
  143. package/dist/node/lib/index.mjs +2 -0
  144. package/dist/node/lib/index.mjs.map +1 -0
  145. package/dist/node/test/index.d.mts +3 -0
  146. package/dist/node/test/index.d.mts.map +1 -0
  147. package/dist/node/test/index.d.ts +3 -0
  148. package/dist/node/test/index.d.ts.map +1 -0
  149. package/dist/node/test/index.js +25 -0
  150. package/dist/node/test/index.js.map +1 -0
  151. package/dist/node/test/index.mjs +3 -0
  152. package/dist/node/test/index.mjs.map +1 -0
  153. package/dist/node/test/sampleCoinGecko.d.mts +3 -0
  154. package/dist/node/test/sampleCoinGecko.d.mts.map +1 -0
  155. package/dist/node/test/sampleCoinGecko.d.ts +3 -0
  156. package/dist/node/test/sampleCoinGecko.d.ts.map +1 -0
  157. package/dist/node/test/sampleCoinGecko.js +101 -0
  158. package/dist/node/test/sampleCoinGecko.js.map +1 -0
  159. package/dist/node/test/sampleCoinGecko.mjs +77 -0
  160. package/dist/node/test/sampleCoinGecko.mjs.map +1 -0
  161. package/dist/node/test/sampleUniswap.d.mts +3 -0
  162. package/dist/node/test/sampleUniswap.d.mts.map +1 -0
  163. package/dist/node/test/sampleUniswap.d.ts +3 -0
  164. package/dist/node/test/sampleUniswap.d.ts.map +1 -0
  165. package/dist/node/test/sampleUniswap.js +217 -0
  166. package/dist/node/test/sampleUniswap.js.map +1 -0
  167. package/dist/node/test/sampleUniswap.mjs +193 -0
  168. package/dist/node/test/sampleUniswap.mjs.map +1 -0
  169. package/package.json +35 -32
  170. package/dist/Diviner.d.mts.map +0 -1
  171. package/dist/Diviner.d.ts.map +0 -1
  172. package/dist/Plugin.d.mts.map +0 -1
  173. package/dist/Plugin.d.ts.map +0 -1
  174. package/dist/Schema.d.mts.map +0 -1
  175. package/dist/Schema.d.ts.map +0 -1
  176. package/dist/docs.json +0 -21990
  177. package/dist/index.d.mts.map +0 -1
  178. package/dist/index.d.ts.map +0 -1
  179. package/dist/index.js.map +0 -1
  180. package/dist/index.mjs.map +0 -1
  181. package/dist/lib/average.d.mts.map +0 -1
  182. package/dist/lib/average.d.ts.map +0 -1
  183. package/dist/lib/divineCoinGeckoPrices.d.mts.map +0 -1
  184. package/dist/lib/divineCoinGeckoPrices.d.ts.map +0 -1
  185. package/dist/lib/divinePrices.d.mts.map +0 -1
  186. package/dist/lib/divinePrices.d.ts.map +0 -1
  187. package/dist/lib/divineUniswapPrices.d.mts.map +0 -1
  188. package/dist/lib/divineUniswapPrices.d.ts.map +0 -1
  189. package/dist/lib/index.d.mts.map +0 -1
  190. package/dist/lib/index.d.ts.map +0 -1
  191. package/dist/test/index.d.mts.map +0 -1
  192. package/dist/test/index.d.ts.map +0 -1
  193. package/dist/test/sampleCoinGecko.d.mts.map +0 -1
  194. package/dist/test/sampleCoinGecko.d.ts.map +0 -1
  195. package/dist/test/sampleUniswap.d.mts.map +0 -1
  196. package/dist/test/sampleUniswap.d.ts.map +0 -1
  197. /package/dist/{Diviner.d.mts → browser/Diviner.d.mts} +0 -0
  198. /package/dist/{Diviner.d.ts → browser/Diviner.d.ts} +0 -0
  199. /package/dist/{Plugin.d.mts → browser/Plugin.d.mts} +0 -0
  200. /package/dist/{Plugin.d.ts → browser/Plugin.d.ts} +0 -0
  201. /package/dist/{Schema.d.mts → browser/Schema.d.mts} +0 -0
  202. /package/dist/{Schema.d.ts → browser/Schema.d.ts} +0 -0
  203. /package/dist/{index.d.mts → browser/index.d.mts} +0 -0
  204. /package/dist/{index.d.ts → browser/index.d.ts} +0 -0
  205. /package/dist/{lib → browser/lib}/average.d.mts +0 -0
  206. /package/dist/{lib → browser/lib}/average.d.ts +0 -0
  207. /package/dist/{lib → browser/lib}/divineCoinGeckoPrices.d.mts +0 -0
  208. /package/dist/{lib → browser/lib}/divineCoinGeckoPrices.d.ts +0 -0
  209. /package/dist/{lib → browser/lib}/divinePrices.d.mts +0 -0
  210. /package/dist/{lib → browser/lib}/divinePrices.d.ts +0 -0
  211. /package/dist/{lib → browser/lib}/divineUniswapPrices.d.mts +0 -0
  212. /package/dist/{lib → browser/lib}/divineUniswapPrices.d.ts +0 -0
  213. /package/dist/{lib → browser/lib}/index.d.mts +0 -0
  214. /package/dist/{lib → browser/lib}/index.d.ts +0 -0
  215. /package/dist/{test → browser/test}/index.d.mts +0 -0
  216. /package/dist/{test → browser/test}/index.d.ts +0 -0
  217. /package/dist/{test → browser/test}/sampleCoinGecko.d.mts +0 -0
  218. /package/dist/{test → browser/test}/sampleCoinGecko.d.ts +0 -0
  219. /package/dist/{test → browser/test}/sampleUniswap.d.mts +0 -0
  220. /package/dist/{test → browser/test}/sampleUniswap.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/index.ts","../../../src/lib/divinePrices.ts","../../../src/lib/average.ts","../../../src/lib/divineCoinGeckoPrices.ts","../../../src/lib/divineUniswapPrices.ts"],"sourcesContent":["export * from './divinePrices'\n","import { exists } from '@xylabs/exists'\nimport { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { average } from './average'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices'\nimport { divineUniswapPrices } from './divineUniswapPrices'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): CryptoMarketAssetPayload => {\n const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { exists } from '@xylabs/exists'\nimport { AssetInfo, CryptoMarketAssetPayload, Currency, Token } from '@xyo-network/crypto-asset-payload-plugin'\n\nconst isNumber = (val: number | undefined): val is number => {\n return val !== undefined\n}\n\nconst parseStringifiedNumber = (value: string | undefined): number | undefined => {\n if (!value) return undefined\n const parsed = parseFloat(value)\n return isNaN(parsed) ? undefined : parsed\n}\n\nconst averageStringifiedNumbers = (...prices: (string | undefined)[]): number | undefined => {\n const numbers = prices.map(parseStringifiedNumber).filter(isNumber)\n return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : undefined\n}\n\nexport const average = (...input: (CryptoMarketAssetPayload | undefined)[]): Record<string, AssetInfo> => {\n // Get all the assets represented\n const payloads = input.filter(exists)\n const tokens = new Set<Token>(payloads.map((payload) => Object.keys(payload.assets).map<Token>((t) => t as Token)).flatMap((t) => t))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens]\n .map((asset) => {\n const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(\n assetInfo\n .map((v) => Object.keys(v.value) as unknown as Currency | Token)\n .flatMap((v) => v)\n .filter(exists),\n )\n return [...valueBasis]\n })\n .flatMap((v) => v),\n )\n // For each of the tokens, calculate the average valuation for each of valuation bases\n const assets: Record<string, AssetInfo> = Object.fromEntries(\n [...tokens].map((token) => {\n const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists)\n const value = Object.fromEntries(\n [...valuations].map((valuation) => {\n const assetValuations = assetInfo.map((info) => info.value?.[valuation])\n const averageAssetValuation = averageStringifiedNumbers(...assetValuations)\n return [valuation, averageAssetValuation?.toString()]\n }),\n )\n return [token, { value }]\n }),\n )\n return assets\n}\n","import { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\n\nconst schema = CryptoMarketAssetSchema\n\nconst valuationExists = (value: [string, Partial<Record<string, number>> | undefined]): value is [string, Partial<Record<string, number>>] => {\n return !!value[1]\n}\n\nconst otherValueExists = (value: [string, number | undefined]): value is [string, number] => {\n const possiblyNumber = value[1]\n return typeof possiblyNumber === 'number' && !isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = (payload: CoingeckoCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n const assets: Record<string, AssetInfo> =\n payload && payload?.assets\n ? Object.fromEntries(\n Object.entries(payload.assets)\n .filter(valuationExists)\n .map(([asset, valuation]) => {\n const value = Object.fromEntries(\n Object.entries(valuation)\n .filter(otherValueExists)\n .map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()]),\n )\n return [asset, { value }]\n }),\n )\n : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { exists } from '@xylabs/exists'\nimport { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema, Currency, Token, ValueBasis } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { UniswapCryptoMarketPayload, UniswapCryptoPair, UniswapCryptoToken } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nconst schema = CryptoMarketAssetSchema\n\nconst mapUniswapToken = (symbol: string): Token | Currency => {\n // TODO: Actually calculate the value of the token/stablecoin based on others\n // to weed out individual fluctuations in price\n if (symbol.toLowerCase() === 'wbtc') return 'btc'\n if (symbol.toLowerCase() === 'weth') return 'eth'\n if (symbol.toLowerCase() === 'usdt') return 'usd'\n return symbol.toLowerCase() as Token\n}\n\nconst pairsContainingToken = (uniswapPayload: UniswapCryptoMarketPayload, token: Token) => {\n return uniswapPayload?.pairs\n .map((p) => p.tokens)\n .filter((p) => p.some((x) => x.symbol.toLowerCase() === token))\n .filter(exists)\n}\n\nconst tokensFromPairs = (pairs: UniswapCryptoPair[]) => {\n return pairs\n .map((p) => p.tokens)\n .flat()\n .map((t) => t.symbol.toLowerCase() as Token)\n}\n\nconst valuesFromTokenPairs = (tokensPairs: UniswapCryptoToken[][], token: Token): ValueBasis => {\n return Object.fromEntries(\n tokensPairs\n .map((pair) => {\n const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0]\n const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0]\n return [other.symbol.toLowerCase(), current.value.toString()]\n })\n .map((x) => [mapUniswapToken(x[0]), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = (uniswapPayload: UniswapCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n let assets: Partial<Record<Token, AssetInfo | undefined>> = {}\n if (uniswapPayload) {\n const tokens: Set<Token> = new Set(tokensFromPairs(uniswapPayload.pairs))\n assets = Object.fromEntries(\n [...tokens].map((token) => {\n const pairs = pairsContainingToken(uniswapPayload, token)\n const value: ValueBasis = valuesFromTokenPairs(pairs, token)\n const assetInfo: AssetInfo = { value }\n return [token, assetInfo]\n }),\n )\n }\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n"],"mappings":"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","names":["import_exists","import_crypto_asset_payload_plugin","import_payload_builder","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","schema","schema"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,132 @@
1
+ // src/lib/divinePrices.ts
2
+ import { exists as exists3 } from "@xylabs/exists";
3
+ import { CryptoMarketAssetSchema as CryptoMarketAssetSchema3 } from "@xyo-network/crypto-asset-payload-plugin";
4
+ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
5
+
6
+ // src/lib/average.ts
7
+ import { exists } from "@xylabs/exists";
8
+ var isNumber = (val) => {
9
+ return val !== void 0;
10
+ };
11
+ var parseStringifiedNumber = (value) => {
12
+ if (!value)
13
+ return void 0;
14
+ const parsed = parseFloat(value);
15
+ return isNaN(parsed) ? void 0 : parsed;
16
+ };
17
+ var averageStringifiedNumbers = (...prices) => {
18
+ const numbers = prices.map(parseStringifiedNumber).filter(isNumber);
19
+ return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : void 0;
20
+ };
21
+ var average = (...input) => {
22
+ const payloads = input.filter(exists);
23
+ const tokens = new Set(payloads.map((payload) => Object.keys(payload.assets).map((t) => t)).flatMap((t) => t));
24
+ const valuations = new Set(
25
+ [...tokens].map((asset) => {
26
+ const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists);
27
+ const valueBasis = new Set(
28
+ assetInfo.map((v) => Object.keys(v.value)).flatMap((v) => v).filter(exists)
29
+ );
30
+ return [...valueBasis];
31
+ }).flatMap((v) => v)
32
+ );
33
+ const assets = Object.fromEntries(
34
+ [...tokens].map((token) => {
35
+ const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists);
36
+ const value = Object.fromEntries(
37
+ [...valuations].map((valuation) => {
38
+ const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
39
+ const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
40
+ return [valuation, averageAssetValuation?.toString()];
41
+ })
42
+ );
43
+ return [token, { value }];
44
+ })
45
+ );
46
+ return assets;
47
+ };
48
+
49
+ // src/lib/divineCoinGeckoPrices.ts
50
+ import { CryptoMarketAssetSchema } from "@xyo-network/crypto-asset-payload-plugin";
51
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
52
+ var schema = CryptoMarketAssetSchema;
53
+ var valuationExists = (value) => {
54
+ return !!value[1];
55
+ };
56
+ var otherValueExists = (value) => {
57
+ const possiblyNumber = value[1];
58
+ return typeof possiblyNumber === "number" && !isNaN(possiblyNumber);
59
+ };
60
+ var divineCoinGeckoPrices = (payload) => {
61
+ const assets = payload && payload?.assets ? Object.fromEntries(
62
+ Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
63
+ const value = Object.fromEntries(
64
+ Object.entries(valuation).filter(otherValueExists).map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()])
65
+ );
66
+ return [asset, { value }];
67
+ })
68
+ ) : {};
69
+ const timestamp = Date.now();
70
+ return new PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
71
+ };
72
+
73
+ // src/lib/divineUniswapPrices.ts
74
+ import { exists as exists2 } from "@xylabs/exists";
75
+ import { CryptoMarketAssetSchema as CryptoMarketAssetSchema2 } from "@xyo-network/crypto-asset-payload-plugin";
76
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
77
+ var schema2 = CryptoMarketAssetSchema2;
78
+ var mapUniswapToken = (symbol) => {
79
+ if (symbol.toLowerCase() === "wbtc")
80
+ return "btc";
81
+ if (symbol.toLowerCase() === "weth")
82
+ return "eth";
83
+ if (symbol.toLowerCase() === "usdt")
84
+ return "usd";
85
+ return symbol.toLowerCase();
86
+ };
87
+ var pairsContainingToken = (uniswapPayload, token) => {
88
+ return uniswapPayload?.pairs.map((p) => p.tokens).filter((p) => p.some((x) => x.symbol.toLowerCase() === token)).filter(exists2);
89
+ };
90
+ var tokensFromPairs = (pairs) => {
91
+ return pairs.map((p) => p.tokens).flat().map((t) => t.symbol.toLowerCase());
92
+ };
93
+ var valuesFromTokenPairs = (tokensPairs, token) => {
94
+ return Object.fromEntries(
95
+ tokensPairs.map((pair) => {
96
+ const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0];
97
+ const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0];
98
+ return [other.symbol.toLowerCase(), current.value.toString()];
99
+ }).map((x) => [mapUniswapToken(x[0]), x[1]])
100
+ );
101
+ };
102
+ var divineUniswapPrices = (uniswapPayload) => {
103
+ let assets = {};
104
+ if (uniswapPayload) {
105
+ const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
106
+ assets = Object.fromEntries(
107
+ [...tokens].map((token) => {
108
+ const pairs = pairsContainingToken(uniswapPayload, token);
109
+ const value = valuesFromTokenPairs(pairs, token);
110
+ const assetInfo = { value };
111
+ return [token, assetInfo];
112
+ })
113
+ );
114
+ }
115
+ const timestamp = Date.now();
116
+ return new PayloadBuilder2({ schema: schema2 }).fields({ assets, timestamp }).build();
117
+ };
118
+
119
+ // src/lib/divinePrices.ts
120
+ var schema3 = CryptoMarketAssetSchema3;
121
+ var divinePrices = (coinGeckoPayload, uniswapPayload) => {
122
+ const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
123
+ const uniswapPrices = divineUniswapPrices(uniswapPayload);
124
+ const prices = [uniswapPayload, coinGeckoPayload].some(exists3);
125
+ const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
126
+ const timestamp = Date.now();
127
+ return new PayloadBuilder3({ schema: schema3 }).fields({ assets, timestamp }).build();
128
+ };
129
+ export {
130
+ divinePrices
131
+ };
132
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/divinePrices.ts","../../../src/lib/average.ts","../../../src/lib/divineCoinGeckoPrices.ts","../../../src/lib/divineUniswapPrices.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { average } from './average'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices'\nimport { divineUniswapPrices } from './divineUniswapPrices'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): CryptoMarketAssetPayload => {\n const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { exists } from '@xylabs/exists'\nimport { AssetInfo, CryptoMarketAssetPayload, Currency, Token } from '@xyo-network/crypto-asset-payload-plugin'\n\nconst isNumber = (val: number | undefined): val is number => {\n return val !== undefined\n}\n\nconst parseStringifiedNumber = (value: string | undefined): number | undefined => {\n if (!value) return undefined\n const parsed = parseFloat(value)\n return isNaN(parsed) ? undefined : parsed\n}\n\nconst averageStringifiedNumbers = (...prices: (string | undefined)[]): number | undefined => {\n const numbers = prices.map(parseStringifiedNumber).filter(isNumber)\n return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : undefined\n}\n\nexport const average = (...input: (CryptoMarketAssetPayload | undefined)[]): Record<string, AssetInfo> => {\n // Get all the assets represented\n const payloads = input.filter(exists)\n const tokens = new Set<Token>(payloads.map((payload) => Object.keys(payload.assets).map<Token>((t) => t as Token)).flatMap((t) => t))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens]\n .map((asset) => {\n const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(\n assetInfo\n .map((v) => Object.keys(v.value) as unknown as Currency | Token)\n .flatMap((v) => v)\n .filter(exists),\n )\n return [...valueBasis]\n })\n .flatMap((v) => v),\n )\n // For each of the tokens, calculate the average valuation for each of valuation bases\n const assets: Record<string, AssetInfo> = Object.fromEntries(\n [...tokens].map((token) => {\n const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists)\n const value = Object.fromEntries(\n [...valuations].map((valuation) => {\n const assetValuations = assetInfo.map((info) => info.value?.[valuation])\n const averageAssetValuation = averageStringifiedNumbers(...assetValuations)\n return [valuation, averageAssetValuation?.toString()]\n }),\n )\n return [token, { value }]\n }),\n )\n return assets\n}\n","import { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\n\nconst schema = CryptoMarketAssetSchema\n\nconst valuationExists = (value: [string, Partial<Record<string, number>> | undefined]): value is [string, Partial<Record<string, number>>] => {\n return !!value[1]\n}\n\nconst otherValueExists = (value: [string, number | undefined]): value is [string, number] => {\n const possiblyNumber = value[1]\n return typeof possiblyNumber === 'number' && !isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = (payload: CoingeckoCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n const assets: Record<string, AssetInfo> =\n payload && payload?.assets\n ? Object.fromEntries(\n Object.entries(payload.assets)\n .filter(valuationExists)\n .map(([asset, valuation]) => {\n const value = Object.fromEntries(\n Object.entries(valuation)\n .filter(otherValueExists)\n .map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()]),\n )\n return [asset, { value }]\n }),\n )\n : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { exists } from '@xylabs/exists'\nimport { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema, Currency, Token, ValueBasis } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { UniswapCryptoMarketPayload, UniswapCryptoPair, UniswapCryptoToken } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nconst schema = CryptoMarketAssetSchema\n\nconst mapUniswapToken = (symbol: string): Token | Currency => {\n // TODO: Actually calculate the value of the token/stablecoin based on others\n // to weed out individual fluctuations in price\n if (symbol.toLowerCase() === 'wbtc') return 'btc'\n if (symbol.toLowerCase() === 'weth') return 'eth'\n if (symbol.toLowerCase() === 'usdt') return 'usd'\n return symbol.toLowerCase() as Token\n}\n\nconst pairsContainingToken = (uniswapPayload: UniswapCryptoMarketPayload, token: Token) => {\n return uniswapPayload?.pairs\n .map((p) => p.tokens)\n .filter((p) => p.some((x) => x.symbol.toLowerCase() === token))\n .filter(exists)\n}\n\nconst tokensFromPairs = (pairs: UniswapCryptoPair[]) => {\n return pairs\n .map((p) => p.tokens)\n .flat()\n .map((t) => t.symbol.toLowerCase() as Token)\n}\n\nconst valuesFromTokenPairs = (tokensPairs: UniswapCryptoToken[][], token: Token): ValueBasis => {\n return Object.fromEntries(\n tokensPairs\n .map((pair) => {\n const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0]\n const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0]\n return [other.symbol.toLowerCase(), current.value.toString()]\n })\n .map((x) => [mapUniswapToken(x[0]), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = (uniswapPayload: UniswapCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n let assets: Partial<Record<Token, AssetInfo | undefined>> = {}\n if (uniswapPayload) {\n const tokens: Set<Token> = new Set(tokensFromPairs(uniswapPayload.pairs))\n assets = Object.fromEntries(\n [...tokens].map((token) => {\n const pairs = pairsContainingToken(uniswapPayload, token)\n const value: ValueBasis = valuesFromTokenPairs(pairs, token)\n const assetInfo: AssetInfo = { value }\n return [token, assetInfo]\n }),\n )\n }\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n"],"mappings":";AAAA,SAAS,UAAAA,eAAc;AAEvB,SAAmC,2BAAAC,gCAA+B;AAClE,SAAS,kBAAAC,uBAAsB;;;ACH/B,SAAS,cAAc;AAGvB,IAAM,WAAW,CAAC,QAA2C;AAC3D,SAAO,QAAQ;AACjB;AAEA,IAAM,yBAAyB,CAAC,UAAkD;AAChF,MAAI,CAAC;AAAO,WAAO;AACnB,QAAM,SAAS,WAAW,KAAK;AAC/B,SAAO,MAAM,MAAM,IAAI,SAAY;AACrC;AAEA,IAAM,4BAA4B,IAAI,WAAuD;AAC3F,QAAM,UAAU,OAAO,IAAI,sBAAsB,EAAE,OAAO,QAAQ;AAClE,SAAO,QAAQ,SAAS,QAAQ,OAAO,CAAC,KAAK,MAAM,MAAM,GAAG,CAAC,IAAI,QAAQ,SAAS;AACpF;AAEO,IAAM,UAAU,IAAI,UAA+E;AAExG,QAAM,WAAW,MAAM,OAAO,MAAM;AACpC,QAAM,SAAS,IAAI,IAAW,SAAS,IAAI,CAAC,YAAY,OAAO,KAAK,QAAQ,MAAM,EAAE,IAAW,CAAC,MAAM,CAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEpI,QAAM,aAAa,IAAI;AAAA,IACrB,CAAC,GAAG,MAAM,EACP,IAAI,CAAC,UAAU;AACd,YAAM,YAAY,SAAS,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,EAAE,OAAO,MAAM;AACtE,YAAM,aAAa,IAAI;AAAA,QACrB,UACG,IAAI,CAAC,MAAM,OAAO,KAAK,EAAE,KAAK,CAAgC,EAC9D,QAAQ,CAAC,MAAM,CAAC,EAChB,OAAO,MAAM;AAAA,MAClB;AACA,aAAO,CAAC,GAAG,UAAU;AAAA,IACvB,CAAC,EACA,QAAQ,CAAC,MAAM,CAAC;AAAA,EACrB;AAEA,QAAM,SAAoC,OAAO;AAAA,IAC/C,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,UAAU;AACzB,YAAM,YAAY,SAAS,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,EAAE,OAAO,MAAM;AACtE,YAAM,QAAQ,OAAO;AAAA,QACnB,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,cAAc;AACjC,gBAAM,kBAAkB,UAAU,IAAI,CAAC,SAAS,KAAK,QAAQ,SAAS,CAAC;AACvE,gBAAM,wBAAwB,0BAA0B,GAAG,eAAe;AAC1E,iBAAO,CAAC,WAAW,uBAAuB,SAAS,CAAC;AAAA,QACtD,CAAC;AAAA,MACH;AACA,aAAO,CAAC,OAAO,EAAE,MAAM,CAAC;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;ACnDA,SAA8C,+BAA+B;AAC7E,SAAS,sBAAsB;AAE/B,IAAM,SAAS;AAEf,IAAM,kBAAkB,CAAC,UAAqH;AAC5I,SAAO,CAAC,CAAC,MAAM,CAAC;AAClB;AAEA,IAAM,mBAAmB,CAAC,UAAmE;AAC3F,QAAM,iBAAiB,MAAM,CAAC;AAC9B,SAAO,OAAO,mBAAmB,YAAY,CAAC,MAAM,cAAc;AACpE;AAEO,IAAM,wBAAwB,CAAC,YAAgF;AACpH,QAAM,SACJ,WAAW,SAAS,SAChB,OAAO;AAAA,IACL,OAAO,QAAQ,QAAQ,MAAM,EAC1B,OAAO,eAAe,EACtB,IAAI,CAAC,CAAC,OAAO,SAAS,MAAM;AAC3B,YAAM,QAAQ,OAAO;AAAA,QACnB,OAAO,QAAQ,SAAS,EACrB,OAAO,gBAAgB,EACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,YAAY,GAAG,OAAO,SAAS,CAAC,CAAC;AAAA,MACvE;AACA,aAAO,CAAC,OAAO,EAAE,MAAM,CAAC;AAAA,IAC1B,CAAC;AAAA,EACL,IACA,CAAC;AACP,QAAM,YAAY,KAAK,IAAI;AAC3B,SAAO,IAAI,eAAyC,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,UAAU,CAAC,EAAE,MAAM;AACtG;;;ACjCA,SAAS,UAAAC,eAAc;AACvB,SAA8C,2BAAAC,gCAA4D;AAC1G,SAAS,kBAAAC,uBAAsB;AAG/B,IAAMC,UAASF;AAEf,IAAM,kBAAkB,CAAC,WAAqC;AAG5D,MAAI,OAAO,YAAY,MAAM;AAAQ,WAAO;AAC5C,MAAI,OAAO,YAAY,MAAM;AAAQ,WAAO;AAC5C,MAAI,OAAO,YAAY,MAAM;AAAQ,WAAO;AAC5C,SAAO,OAAO,YAAY;AAC5B;AAEA,IAAM,uBAAuB,CAAC,gBAA4C,UAAiB;AACzF,SAAO,gBAAgB,MACpB,IAAI,CAAC,MAAM,EAAE,MAAM,EACnB,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY,MAAM,KAAK,CAAC,EAC7D,OAAOD,OAAM;AAClB;AAEA,IAAM,kBAAkB,CAAC,UAA+B;AACtD,SAAO,MACJ,IAAI,CAAC,MAAM,EAAE,MAAM,EACnB,KAAK,EACL,IAAI,CAAC,MAAM,EAAE,OAAO,YAAY,CAAU;AAC/C;AAEA,IAAM,uBAAuB,CAAC,aAAqC,UAA6B;AAC9F,SAAO,OAAO;AAAA,IACZ,YACG,IAAI,CAAC,SAAS;AACb,YAAM,UAAU,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,YAAY,MAAM,KAAK,IAAI,CAAC;AACxE,YAAM,QAAQ,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,YAAY,MAAM,KAAK,IAAI,CAAC;AACtE,aAAO,CAAC,MAAM,OAAO,YAAY,GAAG,QAAQ,MAAM,SAAS,CAAC;AAAA,IAC9D,CAAC,EACA,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAAA,EAC7C;AACF;AAEO,IAAM,sBAAsB,CAAC,mBAAqF;AACvH,MAAI,SAAwD,CAAC;AAC7D,MAAI,gBAAgB;AAClB,UAAM,SAAqB,IAAI,IAAI,gBAAgB,eAAe,KAAK,CAAC;AACxE,aAAS,OAAO;AAAA,MACd,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,UAAU;AACzB,cAAM,QAAQ,qBAAqB,gBAAgB,KAAK;AACxD,cAAM,QAAoB,qBAAqB,OAAO,KAAK;AAC3D,cAAM,YAAuB,EAAE,MAAM;AACrC,eAAO,CAAC,OAAO,SAAS;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,YAAY,KAAK,IAAI;AAC3B,SAAO,IAAIE,gBAAyC,EAAE,QAAAC,QAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,UAAU,CAAC,EAAE,MAAM;AACtG;;;AH/CA,IAAMC,UAASC;AAER,IAAM,eAAe,CAC1B,kBACA,mBAC6B;AAC7B,QAAM,kBAAkB,sBAAsB,gBAAgB;AAC9D,QAAM,gBAAgB,oBAAoB,cAAc;AACxD,QAAM,SAAS,CAAC,gBAAgB,gBAAgB,EAAE,KAAKC,OAAM;AAC7D,QAAM,SAAS,SAAS,QAAQ,iBAAiB,aAAa,IAAI,CAAC;AACnE,QAAM,YAAY,KAAK,IAAI;AAC3B,SAAO,IAAIC,gBAAyC,EAAE,QAAAH,QAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,UAAU,CAAC,EAAE,MAAM;AACtG;","names":["exists","CryptoMarketAssetSchema","PayloadBuilder","exists","CryptoMarketAssetSchema","PayloadBuilder","schema","schema","CryptoMarketAssetSchema","exists","PayloadBuilder"]}
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/test/index.ts
21
+ var test_exports = {};
22
+ __export(test_exports, {
23
+ sampleCoinGeckoPayload: () => sampleCoinGeckoPayload,
24
+ sampleUniswapPayload: () => sampleUniswapPayload
25
+ });
26
+ module.exports = __toCommonJS(test_exports);
27
+
28
+ // src/test/sampleCoinGecko.ts
29
+ var import_coingecko_crypto_market_payload_plugin = require("@xyo-network/coingecko-crypto-market-payload-plugin");
30
+ var sampleCoinGeckoPayload = {
31
+ assets: {
32
+ ada: {
33
+ btc: 2163e-8,
34
+ eth: 30472e-8,
35
+ eur: 0.488106,
36
+ usd: 0.495442
37
+ },
38
+ btc: {
39
+ btc: 1,
40
+ eth: 14.068021,
41
+ eur: 22545,
42
+ usd: 22884
43
+ },
44
+ busd: {
45
+ btc: 4342e-8,
46
+ eth: 61145e-8,
47
+ eur: 0.979882,
48
+ usd: 0.994609
49
+ },
50
+ doge: {
51
+ btc: 288e-8,
52
+ eth: 4062e-8,
53
+ eur: 0.065066,
54
+ usd: 0.066044
55
+ },
56
+ dot: {
57
+ btc: 33067e-8,
58
+ eth: 465702e-8,
59
+ eur: 7.46,
60
+ usd: 7.58
61
+ },
62
+ eth: {
63
+ btc: 0.07099216,
64
+ eth: 1,
65
+ eur: 1602.25,
66
+ usd: 1626.33
67
+ },
68
+ sol: {
69
+ btc: 173417e-8,
70
+ eth: 0.02442315,
71
+ eur: 39.14,
72
+ usd: 39.73
73
+ },
74
+ usdc: {
75
+ btc: 4371e-8,
76
+ eth: 61556e-8,
77
+ eur: 0.986471,
78
+ usd: 1.001
79
+ },
80
+ usdt: {
81
+ btc: 437e-7,
82
+ eth: 61548e-8,
83
+ eur: 0.986332,
84
+ usd: 1.001
85
+ },
86
+ wbtc: {
87
+ btc: 1.000635,
88
+ eth: 14.092397,
89
+ eur: 22584,
90
+ usd: 22923
91
+ },
92
+ xyo: {
93
+ btc: 628282e-12,
94
+ eth: 885e-8,
95
+ eur: 0.01417995,
96
+ usd: 0.01439307
97
+ }
98
+ },
99
+ schema: import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema,
100
+ timestamp: 1659012060785
101
+ };
102
+
103
+ // src/test/sampleUniswap.ts
104
+ var import_uniswap_crypto_market_payload_plugin = require("@xyo-network/uniswap-crypto-market-payload-plugin");
105
+ var sampleUniswapPayload = {
106
+ pairs: [
107
+ {
108
+ tokens: [
109
+ {
110
+ address: "0x55296f69f40Ea6d20E478533C15A6B08B654E758",
111
+ symbol: "xyo",
112
+ value: 896773e-11
113
+ },
114
+ {
115
+ address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
116
+ symbol: "weth",
117
+ value: 111511
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ tokens: [
123
+ {
124
+ address: "0x55296f69f40Ea6d20E478533C15A6B08B654E758",
125
+ symbol: "xyo",
126
+ value: 0.0148782
127
+ },
128
+ {
129
+ address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
130
+ symbol: "usdt",
131
+ value: 67.2123
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ tokens: [
137
+ {
138
+ address: "0x55296f69f40Ea6d20E478533C15A6B08B654E758",
139
+ symbol: "xyo",
140
+ value: 0.014039
141
+ },
142
+ {
143
+ address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
144
+ symbol: "dai",
145
+ value: 71.2301
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ tokens: [
151
+ {
152
+ address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
153
+ symbol: "wbtc",
154
+ value: 1527240
155
+ },
156
+ {
157
+ address: "0x55296f69f40Ea6d20E478533C15A6B08B654E758",
158
+ symbol: "xyo",
159
+ value: 654777e-12
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ tokens: [
165
+ {
166
+ address: "0x514910771AF9Ca656af840dff83E8264EcF986CA",
167
+ symbol: "link",
168
+ value: 453.816
169
+ },
170
+ {
171
+ address: "0x55296f69f40Ea6d20E478533C15A6B08B654E758",
172
+ symbol: "xyo",
173
+ value: 220354e-8
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ tokens: [
179
+ {
180
+ address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
181
+ symbol: "wbtc",
182
+ value: 14.0836
183
+ },
184
+ {
185
+ address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
186
+ symbol: "weth",
187
+ value: 0.0710048
188
+ }
189
+ ]
190
+ },
191
+ {
192
+ tokens: [
193
+ {
194
+ address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
195
+ symbol: "dai",
196
+ value: 1.00004
197
+ },
198
+ {
199
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
200
+ symbol: "usdc",
201
+ value: 0.999959
202
+ }
203
+ ]
204
+ },
205
+ {
206
+ tokens: [
207
+ {
208
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
209
+ symbol: "usdc",
210
+ value: 616944e-9
211
+ },
212
+ {
213
+ address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
214
+ symbol: "weth",
215
+ value: 1620.89
216
+ }
217
+ ]
218
+ },
219
+ {
220
+ tokens: [
221
+ {
222
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
223
+ symbol: "usdc",
224
+ value: 617196e-9
225
+ },
226
+ {
227
+ address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
228
+ symbol: "weth",
229
+ value: 1620.23
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ tokens: [
235
+ {
236
+ address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
237
+ symbol: "dai",
238
+ value: 1.00002
239
+ },
240
+ {
241
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
242
+ symbol: "usdc",
243
+ value: 0.999983
244
+ }
245
+ ]
246
+ },
247
+ {
248
+ tokens: [
249
+ {
250
+ address: "0x853d955aCEf822Db058eb8505911ED77F175b99e",
251
+ symbol: "frax",
252
+ value: 0.999762
253
+ },
254
+ {
255
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
256
+ symbol: "usdc",
257
+ value: 1.00024
258
+ }
259
+ ]
260
+ },
261
+ {
262
+ tokens: [
263
+ {
264
+ address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
265
+ symbol: "wbtc",
266
+ value: 22826.3
267
+ },
268
+ {
269
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
270
+ symbol: "usdc",
271
+ value: 43809e-9
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ tokens: [
277
+ {
278
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
279
+ symbol: "usdc",
280
+ value: 0.999853
281
+ },
282
+ {
283
+ address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
284
+ symbol: "usdt",
285
+ value: 1.00015
286
+ }
287
+ ]
288
+ }
289
+ ],
290
+ schema: import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema,
291
+ timestamp: 1659012011418
292
+ };
293
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/test/index.ts","../../../src/test/sampleCoinGecko.ts","../../../src/test/sampleUniswap.ts"],"sourcesContent":["export * from './sampleCoinGecko'\nexport * from './sampleUniswap'\n","import { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const sampleCoinGeckoPayload: CoingeckoCryptoMarketPayload = {\n assets: {\n ada: {\n btc: 0.00002163,\n eth: 0.00030472,\n eur: 0.488106,\n usd: 0.495442,\n },\n btc: {\n btc: 1,\n eth: 14.068021,\n eur: 22545,\n usd: 22884,\n },\n busd: {\n btc: 0.00004342,\n eth: 0.00061145,\n eur: 0.979882,\n usd: 0.994609,\n },\n doge: {\n btc: 0.00000288,\n eth: 0.00004062,\n eur: 0.065066,\n usd: 0.066044,\n },\n dot: {\n btc: 0.00033067,\n eth: 0.00465702,\n eur: 7.46,\n usd: 7.58,\n },\n eth: {\n btc: 0.07099216,\n eth: 1,\n eur: 1602.25,\n usd: 1626.33,\n },\n sol: {\n btc: 0.00173417,\n eth: 0.02442315,\n eur: 39.14,\n usd: 39.73,\n },\n usdc: {\n btc: 0.00004371,\n eth: 0.00061556,\n eur: 0.986471,\n usd: 1.001,\n },\n usdt: {\n btc: 0.0000437,\n eth: 0.00061548,\n eur: 0.986332,\n usd: 1.001,\n },\n wbtc: {\n btc: 1.000635,\n eth: 14.092397,\n eur: 22584,\n usd: 22923,\n },\n xyo: {\n btc: 6.28282e-7,\n eth: 0.00000885,\n eur: 0.01417995,\n usd: 0.01439307,\n },\n },\n schema: CoingeckoCryptoMarketSchema,\n timestamp: 1659012060785,\n}\n","import { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nexport const sampleUniswapPayload: UniswapCryptoMarketPayload = {\n pairs: [\n {\n tokens: [\n {\n address: '0x55296f69f40Ea6d20E478533C15A6B08B654E758',\n symbol: 'xyo',\n value: 0.00000896773,\n },\n {\n address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n symbol: 'weth',\n value: 111511,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x55296f69f40Ea6d20E478533C15A6B08B654E758',\n symbol: 'xyo',\n value: 0.0148782,\n },\n {\n address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n symbol: 'usdt',\n value: 67.2123,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x55296f69f40Ea6d20E478533C15A6B08B654E758',\n symbol: 'xyo',\n value: 0.014039,\n },\n {\n address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n symbol: 'dai',\n value: 71.2301,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n symbol: 'wbtc',\n value: 1527240,\n },\n {\n address: '0x55296f69f40Ea6d20E478533C15A6B08B654E758',\n symbol: 'xyo',\n value: 6.54777e-7,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x514910771AF9Ca656af840dff83E8264EcF986CA',\n symbol: 'link',\n value: 453.816,\n },\n {\n address: '0x55296f69f40Ea6d20E478533C15A6B08B654E758',\n symbol: 'xyo',\n value: 0.00220354,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n symbol: 'wbtc',\n value: 14.0836,\n },\n {\n address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n symbol: 'weth',\n value: 0.0710048,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n symbol: 'dai',\n value: 1.00004,\n },\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 0.999959,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 0.000616944,\n },\n {\n address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n symbol: 'weth',\n value: 1620.89,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 0.000617196,\n },\n {\n address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n symbol: 'weth',\n value: 1620.23,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n symbol: 'dai',\n value: 1.00002,\n },\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 0.999983,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x853d955aCEf822Db058eb8505911ED77F175b99e',\n symbol: 'frax',\n value: 0.999762,\n },\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 1.00024,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n symbol: 'wbtc',\n value: 22826.3,\n },\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 0.000043809,\n },\n ],\n },\n {\n tokens: [\n {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n symbol: 'usdc',\n value: 0.999853,\n },\n {\n address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n symbol: 'usdt',\n value: 1.00015,\n },\n ],\n },\n ],\n schema: UniswapCryptoMarketSchema,\n timestamp: 1659012011418,\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}