@xyo-network/crypto-asset-plugin 2.99.5 → 3.0.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 (231) hide show
  1. package/dist/neutral/index.d.ts +45 -4
  2. package/dist/neutral/index.mjs +83 -137
  3. package/dist/neutral/index.mjs.map +1 -1
  4. package/package.json +18 -37
  5. package/src/index.ts +1 -1
  6. package/xy.config.ts +4 -5
  7. package/dist/browser/Diviner.d.cts +0 -16
  8. package/dist/browser/Diviner.d.cts.map +0 -1
  9. package/dist/browser/Diviner.d.mts +0 -16
  10. package/dist/browser/Diviner.d.mts.map +0 -1
  11. package/dist/browser/Diviner.d.ts +0 -16
  12. package/dist/browser/Diviner.d.ts.map +0 -1
  13. package/dist/browser/Plugin.d.cts +0 -19
  14. package/dist/browser/Plugin.d.cts.map +0 -1
  15. package/dist/browser/Plugin.d.mts +0 -19
  16. package/dist/browser/Plugin.d.mts.map +0 -1
  17. package/dist/browser/Plugin.d.ts +0 -19
  18. package/dist/browser/Plugin.d.ts.map +0 -1
  19. package/dist/browser/Schema.d.cts +0 -5
  20. package/dist/browser/Schema.d.cts.map +0 -1
  21. package/dist/browser/Schema.d.mts +0 -5
  22. package/dist/browser/Schema.d.mts.map +0 -1
  23. package/dist/browser/Schema.d.ts +0 -5
  24. package/dist/browser/Schema.d.ts.map +0 -1
  25. package/dist/browser/index.cjs +0 -242
  26. package/dist/browser/index.cjs.map +0 -1
  27. package/dist/browser/index.d.cts +0 -4
  28. package/dist/browser/index.d.cts.map +0 -1
  29. package/dist/browser/index.d.mts +0 -4
  30. package/dist/browser/index.d.mts.map +0 -1
  31. package/dist/browser/index.d.ts +0 -4
  32. package/dist/browser/index.d.ts.map +0 -1
  33. package/dist/browser/index.mjs +0 -221
  34. package/dist/browser/index.mjs.map +0 -1
  35. package/dist/browser/lib/average.d.cts +0 -3
  36. package/dist/browser/lib/average.d.cts.map +0 -1
  37. package/dist/browser/lib/average.d.mts +0 -3
  38. package/dist/browser/lib/average.d.mts.map +0 -1
  39. package/dist/browser/lib/average.d.ts +0 -3
  40. package/dist/browser/lib/average.d.ts.map +0 -1
  41. package/dist/browser/lib/divineCoinGeckoPrices.d.cts +0 -4
  42. package/dist/browser/lib/divineCoinGeckoPrices.d.cts.map +0 -1
  43. package/dist/browser/lib/divineCoinGeckoPrices.d.mts +0 -4
  44. package/dist/browser/lib/divineCoinGeckoPrices.d.mts.map +0 -1
  45. package/dist/browser/lib/divineCoinGeckoPrices.d.ts +0 -4
  46. package/dist/browser/lib/divineCoinGeckoPrices.d.ts.map +0 -1
  47. package/dist/browser/lib/divinePrices.d.cts +0 -5
  48. package/dist/browser/lib/divinePrices.d.cts.map +0 -1
  49. package/dist/browser/lib/divinePrices.d.mts +0 -5
  50. package/dist/browser/lib/divinePrices.d.mts.map +0 -1
  51. package/dist/browser/lib/divinePrices.d.ts +0 -5
  52. package/dist/browser/lib/divinePrices.d.ts.map +0 -1
  53. package/dist/browser/lib/divineUniswapPrices.d.cts +0 -4
  54. package/dist/browser/lib/divineUniswapPrices.d.cts.map +0 -1
  55. package/dist/browser/lib/divineUniswapPrices.d.mts +0 -4
  56. package/dist/browser/lib/divineUniswapPrices.d.mts.map +0 -1
  57. package/dist/browser/lib/divineUniswapPrices.d.ts +0 -4
  58. package/dist/browser/lib/divineUniswapPrices.d.ts.map +0 -1
  59. package/dist/browser/lib/index.d.cts +0 -2
  60. package/dist/browser/lib/index.d.cts.map +0 -1
  61. package/dist/browser/lib/index.d.mts +0 -2
  62. package/dist/browser/lib/index.d.mts.map +0 -1
  63. package/dist/browser/lib/index.d.ts +0 -2
  64. package/dist/browser/lib/index.d.ts.map +0 -1
  65. package/dist/browser/test/index.d.cts +0 -3
  66. package/dist/browser/test/index.d.cts.map +0 -1
  67. package/dist/browser/test/index.d.mts +0 -3
  68. package/dist/browser/test/index.d.mts.map +0 -1
  69. package/dist/browser/test/index.d.ts +0 -3
  70. package/dist/browser/test/index.d.ts.map +0 -1
  71. package/dist/browser/test/sampleCoinGecko.d.cts +0 -3
  72. package/dist/browser/test/sampleCoinGecko.d.cts.map +0 -1
  73. package/dist/browser/test/sampleCoinGecko.d.mts +0 -3
  74. package/dist/browser/test/sampleCoinGecko.d.mts.map +0 -1
  75. package/dist/browser/test/sampleCoinGecko.d.ts +0 -3
  76. package/dist/browser/test/sampleCoinGecko.d.ts.map +0 -1
  77. package/dist/browser/test/sampleUniswap.d.cts +0 -3
  78. package/dist/browser/test/sampleUniswap.d.cts.map +0 -1
  79. package/dist/browser/test/sampleUniswap.d.mts +0 -3
  80. package/dist/browser/test/sampleUniswap.d.mts.map +0 -1
  81. package/dist/browser/test/sampleUniswap.d.ts +0 -3
  82. package/dist/browser/test/sampleUniswap.d.ts.map +0 -1
  83. package/dist/neutral/Diviner.d.cts +0 -16
  84. package/dist/neutral/Diviner.d.cts.map +0 -1
  85. package/dist/neutral/Diviner.d.mts +0 -16
  86. package/dist/neutral/Diviner.d.mts.map +0 -1
  87. package/dist/neutral/Diviner.d.ts +0 -16
  88. package/dist/neutral/Diviner.d.ts.map +0 -1
  89. package/dist/neutral/Plugin.d.cts +0 -19
  90. package/dist/neutral/Plugin.d.cts.map +0 -1
  91. package/dist/neutral/Plugin.d.mts +0 -19
  92. package/dist/neutral/Plugin.d.mts.map +0 -1
  93. package/dist/neutral/Plugin.d.ts +0 -19
  94. package/dist/neutral/Plugin.d.ts.map +0 -1
  95. package/dist/neutral/Schema.d.cts +0 -5
  96. package/dist/neutral/Schema.d.cts.map +0 -1
  97. package/dist/neutral/Schema.d.mts +0 -5
  98. package/dist/neutral/Schema.d.mts.map +0 -1
  99. package/dist/neutral/Schema.d.ts +0 -5
  100. package/dist/neutral/Schema.d.ts.map +0 -1
  101. package/dist/neutral/index.cjs +0 -242
  102. package/dist/neutral/index.cjs.map +0 -1
  103. package/dist/neutral/index.d.cts +0 -4
  104. package/dist/neutral/index.d.cts.map +0 -1
  105. package/dist/neutral/index.d.mts +0 -4
  106. package/dist/neutral/index.d.mts.map +0 -1
  107. package/dist/neutral/index.d.ts.map +0 -1
  108. package/dist/neutral/lib/average.d.cts +0 -3
  109. package/dist/neutral/lib/average.d.cts.map +0 -1
  110. package/dist/neutral/lib/average.d.mts +0 -3
  111. package/dist/neutral/lib/average.d.mts.map +0 -1
  112. package/dist/neutral/lib/average.d.ts +0 -3
  113. package/dist/neutral/lib/average.d.ts.map +0 -1
  114. package/dist/neutral/lib/divineCoinGeckoPrices.d.cts +0 -4
  115. package/dist/neutral/lib/divineCoinGeckoPrices.d.cts.map +0 -1
  116. package/dist/neutral/lib/divineCoinGeckoPrices.d.mts +0 -4
  117. package/dist/neutral/lib/divineCoinGeckoPrices.d.mts.map +0 -1
  118. package/dist/neutral/lib/divineCoinGeckoPrices.d.ts +0 -4
  119. package/dist/neutral/lib/divineCoinGeckoPrices.d.ts.map +0 -1
  120. package/dist/neutral/lib/divinePrices.d.cts +0 -5
  121. package/dist/neutral/lib/divinePrices.d.cts.map +0 -1
  122. package/dist/neutral/lib/divinePrices.d.mts +0 -5
  123. package/dist/neutral/lib/divinePrices.d.mts.map +0 -1
  124. package/dist/neutral/lib/divinePrices.d.ts +0 -5
  125. package/dist/neutral/lib/divinePrices.d.ts.map +0 -1
  126. package/dist/neutral/lib/divineUniswapPrices.d.cts +0 -4
  127. package/dist/neutral/lib/divineUniswapPrices.d.cts.map +0 -1
  128. package/dist/neutral/lib/divineUniswapPrices.d.mts +0 -4
  129. package/dist/neutral/lib/divineUniswapPrices.d.mts.map +0 -1
  130. package/dist/neutral/lib/divineUniswapPrices.d.ts +0 -4
  131. package/dist/neutral/lib/divineUniswapPrices.d.ts.map +0 -1
  132. package/dist/neutral/lib/index.d.cts +0 -2
  133. package/dist/neutral/lib/index.d.cts.map +0 -1
  134. package/dist/neutral/lib/index.d.mts +0 -2
  135. package/dist/neutral/lib/index.d.mts.map +0 -1
  136. package/dist/neutral/lib/index.d.ts +0 -2
  137. package/dist/neutral/lib/index.d.ts.map +0 -1
  138. package/dist/neutral/test/index.d.cts +0 -3
  139. package/dist/neutral/test/index.d.cts.map +0 -1
  140. package/dist/neutral/test/index.d.mts +0 -3
  141. package/dist/neutral/test/index.d.mts.map +0 -1
  142. package/dist/neutral/test/index.d.ts +0 -3
  143. package/dist/neutral/test/index.d.ts.map +0 -1
  144. package/dist/neutral/test/sampleCoinGecko.d.cts +0 -3
  145. package/dist/neutral/test/sampleCoinGecko.d.cts.map +0 -1
  146. package/dist/neutral/test/sampleCoinGecko.d.mts +0 -3
  147. package/dist/neutral/test/sampleCoinGecko.d.mts.map +0 -1
  148. package/dist/neutral/test/sampleCoinGecko.d.ts +0 -3
  149. package/dist/neutral/test/sampleCoinGecko.d.ts.map +0 -1
  150. package/dist/neutral/test/sampleUniswap.d.cts +0 -3
  151. package/dist/neutral/test/sampleUniswap.d.cts.map +0 -1
  152. package/dist/neutral/test/sampleUniswap.d.mts +0 -3
  153. package/dist/neutral/test/sampleUniswap.d.mts.map +0 -1
  154. package/dist/neutral/test/sampleUniswap.d.ts +0 -3
  155. package/dist/neutral/test/sampleUniswap.d.ts.map +0 -1
  156. package/dist/node/Diviner.d.cts +0 -16
  157. package/dist/node/Diviner.d.cts.map +0 -1
  158. package/dist/node/Diviner.d.mts +0 -16
  159. package/dist/node/Diviner.d.mts.map +0 -1
  160. package/dist/node/Diviner.d.ts +0 -16
  161. package/dist/node/Diviner.d.ts.map +0 -1
  162. package/dist/node/Plugin.d.cts +0 -19
  163. package/dist/node/Plugin.d.cts.map +0 -1
  164. package/dist/node/Plugin.d.mts +0 -19
  165. package/dist/node/Plugin.d.mts.map +0 -1
  166. package/dist/node/Plugin.d.ts +0 -19
  167. package/dist/node/Plugin.d.ts.map +0 -1
  168. package/dist/node/Schema.d.cts +0 -5
  169. package/dist/node/Schema.d.cts.map +0 -1
  170. package/dist/node/Schema.d.mts +0 -5
  171. package/dist/node/Schema.d.mts.map +0 -1
  172. package/dist/node/Schema.d.ts +0 -5
  173. package/dist/node/Schema.d.ts.map +0 -1
  174. package/dist/node/index.cjs +0 -262
  175. package/dist/node/index.cjs.map +0 -1
  176. package/dist/node/index.d.cts +0 -4
  177. package/dist/node/index.d.cts.map +0 -1
  178. package/dist/node/index.d.mts +0 -4
  179. package/dist/node/index.d.mts.map +0 -1
  180. package/dist/node/index.d.ts +0 -4
  181. package/dist/node/index.d.ts.map +0 -1
  182. package/dist/node/index.mjs +0 -234
  183. package/dist/node/index.mjs.map +0 -1
  184. package/dist/node/lib/average.d.cts +0 -3
  185. package/dist/node/lib/average.d.cts.map +0 -1
  186. package/dist/node/lib/average.d.mts +0 -3
  187. package/dist/node/lib/average.d.mts.map +0 -1
  188. package/dist/node/lib/average.d.ts +0 -3
  189. package/dist/node/lib/average.d.ts.map +0 -1
  190. package/dist/node/lib/divineCoinGeckoPrices.d.cts +0 -4
  191. package/dist/node/lib/divineCoinGeckoPrices.d.cts.map +0 -1
  192. package/dist/node/lib/divineCoinGeckoPrices.d.mts +0 -4
  193. package/dist/node/lib/divineCoinGeckoPrices.d.mts.map +0 -1
  194. package/dist/node/lib/divineCoinGeckoPrices.d.ts +0 -4
  195. package/dist/node/lib/divineCoinGeckoPrices.d.ts.map +0 -1
  196. package/dist/node/lib/divinePrices.d.cts +0 -5
  197. package/dist/node/lib/divinePrices.d.cts.map +0 -1
  198. package/dist/node/lib/divinePrices.d.mts +0 -5
  199. package/dist/node/lib/divinePrices.d.mts.map +0 -1
  200. package/dist/node/lib/divinePrices.d.ts +0 -5
  201. package/dist/node/lib/divinePrices.d.ts.map +0 -1
  202. package/dist/node/lib/divineUniswapPrices.d.cts +0 -4
  203. package/dist/node/lib/divineUniswapPrices.d.cts.map +0 -1
  204. package/dist/node/lib/divineUniswapPrices.d.mts +0 -4
  205. package/dist/node/lib/divineUniswapPrices.d.mts.map +0 -1
  206. package/dist/node/lib/divineUniswapPrices.d.ts +0 -4
  207. package/dist/node/lib/divineUniswapPrices.d.ts.map +0 -1
  208. package/dist/node/lib/index.d.cts +0 -2
  209. package/dist/node/lib/index.d.cts.map +0 -1
  210. package/dist/node/lib/index.d.mts +0 -2
  211. package/dist/node/lib/index.d.mts.map +0 -1
  212. package/dist/node/lib/index.d.ts +0 -2
  213. package/dist/node/lib/index.d.ts.map +0 -1
  214. package/dist/node/test/index.d.cts +0 -3
  215. package/dist/node/test/index.d.cts.map +0 -1
  216. package/dist/node/test/index.d.mts +0 -3
  217. package/dist/node/test/index.d.mts.map +0 -1
  218. package/dist/node/test/index.d.ts +0 -3
  219. package/dist/node/test/index.d.ts.map +0 -1
  220. package/dist/node/test/sampleCoinGecko.d.cts +0 -3
  221. package/dist/node/test/sampleCoinGecko.d.cts.map +0 -1
  222. package/dist/node/test/sampleCoinGecko.d.mts +0 -3
  223. package/dist/node/test/sampleCoinGecko.d.mts.map +0 -1
  224. package/dist/node/test/sampleCoinGecko.d.ts +0 -3
  225. package/dist/node/test/sampleCoinGecko.d.ts.map +0 -1
  226. package/dist/node/test/sampleUniswap.d.cts +0 -3
  227. package/dist/node/test/sampleUniswap.d.cts.map +0 -1
  228. package/dist/node/test/sampleUniswap.d.mts +0 -3
  229. package/dist/node/test/sampleUniswap.d.mts.map +0 -1
  230. package/dist/node/test/sampleUniswap.d.ts +0 -3
  231. package/dist/node/test/sampleUniswap.d.ts.map +0 -1
@@ -1,4 +1,45 @@
1
- export * from './Diviner.ts';
2
- export { CryptoMarketAssetPlugin, CryptoMarketAssetPlugin as default } from './Plugin.ts';
3
- export * from './Schema.ts';
4
- //# sourceMappingURL=index.d.ts.map
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import { DivinerConfig, DivinerParams, DivinerModule } from '@xyo-network/diviner-model';
3
+ import * as _xyo_network_module_model from '@xyo-network/module-model';
4
+ import { AnyConfigSchema, Module } from '@xyo-network/module-model';
5
+ import * as _xyo_network_payload_model from '@xyo-network/payload-model';
6
+ import { Schema, Payload } from '@xyo-network/payload-model';
7
+ import * as _xyo_network_payloadset_plugin from '@xyo-network/payloadset-plugin';
8
+ import * as _store__xyo_network_account_model_virtual_3afa553815_package from '.store/@xyo-network-account-model-virtual-3afa553815/package';
9
+ import * as _store__xylabs_object_npm_4_0_0_ffd6151301_package from '.store/@xylabs-object-npm-4.0.0-ffd6151301/package';
10
+
11
+ type CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query';
12
+ declare const CryptoMarketAssetDivinerQuerySchema: CryptoMarketAssetDivinerQuerySchema;
13
+ type CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config';
14
+ declare const CryptoMarketAssetDivinerConfigSchema: CryptoMarketAssetDivinerConfigSchema;
15
+
16
+ type CryptoMarketAssetDivinerConfig = DivinerConfig<{
17
+ schema: CryptoMarketAssetDivinerConfigSchema;
18
+ }>;
19
+ type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>;
20
+ declare class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams> extends AbstractDiviner<TParams> implements DivinerModule, Module {
21
+ static readonly configSchemas: Schema[];
22
+ static readonly defaultConfigSchema: Schema;
23
+ static targetSchema: "network.xyo.crypto.asset";
24
+ protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
25
+ }
26
+
27
+ declare const CryptoMarketAssetPlugin: () => _xyo_network_payloadset_plugin.PayloadSetDivinerPlugin<CryptoMarketAssetDiviner<_store__xylabs_object_npm_4_0_0_ffd6151301_package.BaseParamsFields & {
28
+ account?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance | "random";
29
+ addToResolvers?: boolean;
30
+ additionalSigners?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance[];
31
+ allowNameResolution?: boolean;
32
+ config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
33
+ schema: "network.xyo.crypto.asset.diviner.config";
34
+ } & {
35
+ schema: CryptoMarketAssetDivinerConfigSchema;
36
+ }, "schema"> & {
37
+ schema: "network.xyo.crypto.asset.diviner.config";
38
+ }, "schema"> & {
39
+ schema: string;
40
+ };
41
+ ephemeralQueryAccountEnabled?: boolean;
42
+ moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
43
+ }>>;
44
+
45
+ export { CryptoMarketAssetDiviner, type CryptoMarketAssetDivinerConfig, CryptoMarketAssetDivinerConfigSchema, type CryptoMarketAssetDivinerParams, CryptoMarketAssetDivinerQuerySchema, CryptoMarketAssetPlugin, CryptoMarketAssetPlugin as default };
@@ -1,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/Diviner.ts
5
2
  import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-market-payload-plugin";
6
3
  import { CryptoMarketAssetSchema as CryptoMarketAssetSchema4 } from "@xyo-network/crypto-asset-payload-plugin";
@@ -14,86 +11,67 @@ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder"
14
11
 
15
12
  // src/lib/average.ts
16
13
  import { exists } from "@xylabs/exists";
17
- var isNumber = /* @__PURE__ */ __name((val) => {
14
+ var isNumber = (val) => {
18
15
  return val !== void 0;
19
- }, "isNumber");
20
- var parseStringifiedNumber = /* @__PURE__ */ __name((value) => {
16
+ };
17
+ var parseStringifiedNumber = (value) => {
21
18
  if (!value) return void 0;
22
19
  const parsed = Number.parseFloat(value);
23
20
  return Number.isNaN(parsed) ? void 0 : parsed;
24
- }, "parseStringifiedNumber");
25
- var averageStringifiedNumbers = /* @__PURE__ */ __name((...prices) => {
21
+ };
22
+ var averageStringifiedNumbers = (...prices) => {
26
23
  const numbers = prices.map(parseStringifiedNumber).filter(isNumber);
27
24
  return numbers.length > 0 ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : void 0;
28
- }, "averageStringifiedNumbers");
29
- var average = /* @__PURE__ */ __name((...input) => {
25
+ };
26
+ var average = (...input) => {
30
27
  const payloads = input.filter(exists);
31
28
  const tokens = new Set(payloads.flatMap((payload) => Object.keys(payload.assets).map((t) => t)));
32
- const valuations = new Set([
33
- ...tokens
34
- ].flatMap((asset) => {
35
- const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists);
36
- const valueBasis = new Set(assetInfo.flatMap((v) => Object.keys(v.value)).filter(exists));
37
- return [
38
- ...valueBasis
39
- ];
40
- }));
41
- const assets = Object.fromEntries([
42
- ...tokens
43
- ].map((token) => {
44
- const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists);
45
- const value = Object.fromEntries([
46
- ...valuations
47
- ].map((valuation) => {
48
- const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
49
- const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
50
- return [
51
- valuation,
52
- averageAssetValuation?.toString()
53
- ];
54
- }));
55
- return [
56
- token,
57
- {
58
- value
59
- }
60
- ];
61
- }));
29
+ const valuations = new Set(
30
+ [...tokens].flatMap((asset) => {
31
+ const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists);
32
+ const valueBasis = new Set(assetInfo.flatMap((v) => Object.keys(v.value)).filter(exists));
33
+ return [...valueBasis];
34
+ })
35
+ );
36
+ const assets = Object.fromEntries(
37
+ [...tokens].map((token) => {
38
+ const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists);
39
+ const value = Object.fromEntries(
40
+ [...valuations].map((valuation) => {
41
+ const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
42
+ const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
43
+ return [valuation, averageAssetValuation?.toString()];
44
+ })
45
+ );
46
+ return [token, { value }];
47
+ })
48
+ );
62
49
  return assets;
63
- }, "average");
50
+ };
64
51
 
65
52
  // src/lib/divineCoinGeckoPrices.ts
66
53
  import { CryptoMarketAssetSchema } from "@xyo-network/crypto-asset-payload-plugin";
67
54
  import { PayloadBuilder } from "@xyo-network/payload-builder";
68
55
  var schema = CryptoMarketAssetSchema;
69
- var valuationExists = /* @__PURE__ */ __name((value) => {
56
+ var valuationExists = (value) => {
70
57
  return !!value[1];
71
- }, "valuationExists");
72
- var otherValueExists = /* @__PURE__ */ __name((value) => {
58
+ };
59
+ var otherValueExists = (value) => {
73
60
  const possiblyNumber = value[1];
74
61
  return typeof possiblyNumber === "number" && !Number.isNaN(possiblyNumber);
75
- }, "otherValueExists");
76
- var divineCoinGeckoPrices = /* @__PURE__ */ __name(async (payload) => {
77
- const assets = payload && payload?.assets ? Object.fromEntries(Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
78
- const value = Object.fromEntries(Object.entries(valuation).filter(otherValueExists).map(([symbol, price]) => [
79
- symbol.toLowerCase(),
80
- price?.toString()
81
- ]));
82
- return [
83
- asset,
84
- {
85
- value
86
- }
87
- ];
88
- })) : {};
62
+ };
63
+ var divineCoinGeckoPrices = async (payload) => {
64
+ const assets = payload && payload?.assets ? Object.fromEntries(
65
+ Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
66
+ const value = Object.fromEntries(
67
+ Object.entries(valuation).filter(otherValueExists).map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()])
68
+ );
69
+ return [asset, { value }];
70
+ })
71
+ ) : {};
89
72
  const timestamp = Date.now();
90
- return await new PayloadBuilder({
91
- schema
92
- }).fields({
93
- assets,
94
- timestamp
95
- }).build();
96
- }, "divineCoinGeckoPrices");
73
+ return await new PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
74
+ };
97
75
 
98
76
  // src/lib/divineUniswapPrices.ts
99
77
  import { assertEx } from "@xylabs/assert";
@@ -101,76 +79,54 @@ import { exists as exists2 } from "@xylabs/exists";
101
79
  import { CryptoMarketAssetSchema as CryptoMarketAssetSchema2 } from "@xyo-network/crypto-asset-payload-plugin";
102
80
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
103
81
  var schema2 = CryptoMarketAssetSchema2;
104
- var mapUniswapToken = /* @__PURE__ */ __name((symbol) => {
82
+ var mapUniswapToken = (symbol) => {
105
83
  if (symbol.toLowerCase() === "wbtc") return "btc";
106
84
  if (symbol.toLowerCase() === "weth") return "eth";
107
85
  if (symbol.toLowerCase() === "usdt") return "usd";
108
86
  return symbol.toLowerCase();
109
- }, "mapUniswapToken");
110
- var pairsContainingToken = /* @__PURE__ */ __name((uniswapPayload, token) => {
87
+ };
88
+ var pairsContainingToken = (uniswapPayload, token) => {
111
89
  return uniswapPayload?.pairs.map((p) => p.tokens).filter((p) => p.some((x) => x.symbol.toLowerCase() === token)).filter(exists2);
112
- }, "pairsContainingToken");
113
- var tokensFromPairs = /* @__PURE__ */ __name((pairs) => {
90
+ };
91
+ var tokensFromPairs = (pairs) => {
114
92
  return pairs.flatMap((p) => p.tokens).map((t) => t.symbol.toLowerCase());
115
- }, "tokensFromPairs");
116
- var valuesFromTokenPairs = /* @__PURE__ */ __name((tokensPairs, token) => {
117
- return Object.fromEntries(tokensPairs.map((pair) => {
118
- const current = pair.find((p) => p.symbol.toLowerCase() === token);
119
- const other = pair.find((p) => p.symbol.toLowerCase() !== token);
120
- return [
121
- other?.symbol.toLowerCase(),
122
- current?.value.toString()
123
- ];
124
- }).map((x) => [
125
- mapUniswapToken(assertEx(x[0], () => "Undefined Token")),
126
- x[1]
127
- ]));
128
- }, "valuesFromTokenPairs");
129
- var divineUniswapPrices = /* @__PURE__ */ __name(async (uniswapPayload) => {
93
+ };
94
+ var valuesFromTokenPairs = (tokensPairs, token) => {
95
+ return Object.fromEntries(
96
+ tokensPairs.map((pair) => {
97
+ const current = pair.find((p) => p.symbol.toLowerCase() === token);
98
+ const other = pair.find((p) => p.symbol.toLowerCase() !== token);
99
+ return [other?.symbol.toLowerCase(), current?.value.toString()];
100
+ }).map((x) => [mapUniswapToken(assertEx(x[0], () => "Undefined Token")), x[1]])
101
+ );
102
+ };
103
+ var divineUniswapPrices = async (uniswapPayload) => {
130
104
  let assets = {};
131
105
  if (uniswapPayload) {
132
106
  const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
133
- assets = Object.fromEntries([
134
- ...tokens
135
- ].map((token) => {
136
- const pairs = pairsContainingToken(uniswapPayload, token);
137
- const value = valuesFromTokenPairs(pairs, token);
138
- const assetInfo = {
139
- value
140
- };
141
- return [
142
- token,
143
- assetInfo
144
- ];
145
- }));
107
+ assets = Object.fromEntries(
108
+ [...tokens].map((token) => {
109
+ const pairs = pairsContainingToken(uniswapPayload, token);
110
+ const value = valuesFromTokenPairs(pairs, token);
111
+ const assetInfo = { value };
112
+ return [token, assetInfo];
113
+ })
114
+ );
146
115
  }
147
116
  const timestamp = Date.now();
148
- return await new PayloadBuilder2({
149
- schema: schema2
150
- }).fields({
151
- assets,
152
- timestamp
153
- }).build();
154
- }, "divineUniswapPrices");
117
+ return await new PayloadBuilder2({ schema: schema2 }).fields({ assets, timestamp }).build();
118
+ };
155
119
 
156
120
  // src/lib/divinePrices.ts
157
121
  var schema3 = CryptoMarketAssetSchema3;
158
- var divinePrices = /* @__PURE__ */ __name(async (coinGeckoPayload, uniswapPayload) => {
122
+ var divinePrices = async (coinGeckoPayload, uniswapPayload) => {
159
123
  const coinGeckoPrices = await divineCoinGeckoPrices(coinGeckoPayload);
160
124
  const uniswapPrices = await divineUniswapPrices(uniswapPayload);
161
- const prices = [
162
- uniswapPayload,
163
- coinGeckoPayload
164
- ].some(exists3);
125
+ const prices = [uniswapPayload, coinGeckoPayload].some(exists3);
165
126
  const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
166
127
  const timestamp = Date.now();
167
- return await new PayloadBuilder3({
168
- schema: schema3
169
- }).fields({
170
- assets,
171
- timestamp
172
- }).build();
173
- }, "divinePrices");
128
+ return await new PayloadBuilder3({ schema: schema3 }).fields({ assets, timestamp }).build();
129
+ };
174
130
 
175
131
  // src/Schema.ts
176
132
  var CryptoMarketAssetDivinerQuerySchema = "network.xyo.crypto.asset.diviner.query";
@@ -178,22 +134,14 @@ var CryptoMarketAssetDivinerConfigSchema = "network.xyo.crypto.asset.diviner.con
178
134
 
179
135
  // src/Diviner.ts
180
136
  var CryptoMarketAssetDiviner = class extends AbstractDiviner {
181
- static {
182
- __name(this, "CryptoMarketAssetDiviner");
183
- }
184
- static configSchemas = [
185
- ...super.configSchemas,
186
- CryptoMarketAssetDivinerConfigSchema
187
- ];
137
+ static configSchemas = [...super.configSchemas, CryptoMarketAssetDivinerConfigSchema];
188
138
  static defaultConfigSchema = CryptoMarketAssetDivinerConfigSchema;
189
139
  static targetSchema = CryptoMarketAssetSchema4;
190
140
  async divineHandler(payloads) {
191
141
  const coinGeckoPayload = payloads?.find((payload) => payload?.schema === CoingeckoCryptoMarketSchema);
192
142
  const uniswapPayload = payloads?.find((payload) => payload?.schema === UniswapCryptoMarketSchema);
193
143
  const result = await divinePrices(coinGeckoPayload, uniswapPayload);
194
- return [
195
- result
196
- ];
144
+ return [result];
197
145
  }
198
146
  };
199
147
 
@@ -201,16 +149,14 @@ var CryptoMarketAssetDiviner = class extends AbstractDiviner {
201
149
  import { CryptoMarketAssetSchema as CryptoMarketAssetSchema5 } from "@xyo-network/crypto-asset-payload-plugin";
202
150
  import { PayloadSetSchema } from "@xyo-network/payload-model";
203
151
  import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
204
- var CryptoMarketAssetPlugin = /* @__PURE__ */ __name(() => createPayloadSetDivinerPlugin({
205
- required: {
206
- [CryptoMarketAssetSchema5]: 1
207
- },
208
- schema: PayloadSetSchema
209
- }, {
210
- diviner: /* @__PURE__ */ __name(async (params) => {
211
- return await CryptoMarketAssetDiviner.create(params);
212
- }, "diviner")
213
- }), "CryptoMarketAssetPlugin");
152
+ var CryptoMarketAssetPlugin = () => createPayloadSetDivinerPlugin(
153
+ { required: { [CryptoMarketAssetSchema5]: 1 }, schema: PayloadSetSchema },
154
+ {
155
+ diviner: async (params) => {
156
+ return await CryptoMarketAssetDiviner.create(params);
157
+ }
158
+ }
159
+ );
214
160
  export {
215
161
  CryptoMarketAssetDiviner,
216
162
  CryptoMarketAssetDivinerConfigSchema,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner.ts","../../src/lib/divinePrices.ts","../../src/lib/average.ts","../../src/lib/divineCoinGeckoPrices.ts","../../src/lib/divineUniswapPrices.ts","../../src/Schema.ts","../../src/Plugin.ts"],"sourcesContent":["import { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema, Module } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib/index.ts'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts'\n\nexport type CryptoMarketAssetDivinerConfig = DivinerConfig<{ schema: CryptoMarketAssetDivinerConfigSchema }>\nexport type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>\n\nexport class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule, Module {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoMarketAssetDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoMarketAssetDivinerConfigSchema\n static override targetSchema = CryptoMarketAssetSchema\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const coinGeckoPayload = payloads?.find(payload => payload?.schema === CoingeckoCryptoMarketSchema) as CoingeckoCryptoMarketPayload\n const uniswapPayload = payloads?.find(payload => payload?.schema === UniswapCryptoMarketSchema) as UniswapCryptoMarketPayload\n const result: CryptoMarketAssetPayload = await divinePrices(coinGeckoPayload, uniswapPayload)\n return [result]\n }\n}\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.ts'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices.ts'\nimport { divineUniswapPrices } from './divineUniswapPrices.ts'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = async (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): Promise<CryptoMarketAssetPayload> => {\n const coinGeckoPrices = await divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = await divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return await 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 = Number.parseFloat(value)\n return Number.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 > 0 ? 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.flatMap(payload => Object.keys(payload.assets).map<Token>(t => t as Token)))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens].flatMap((asset) => {\n const assetInfo = payloads.map(p => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(assetInfo.flatMap(v => Object.keys(v.value) as unknown as Currency | Token).filter(exists))\n return [...valueBasis]\n }),\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' && !Number.isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = async (payload: CoingeckoCryptoMarketPayload | undefined): Promise<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 await new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { assertEx } from '@xylabs/assert'\nimport { 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.flatMap(p => p.tokens).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.find(p => p.symbol.toLowerCase() === token)\n const other = pair.find(p => p.symbol.toLowerCase() !== token)\n return [other?.symbol.toLowerCase(), current?.value.toString()]\n })\n .map(x => [mapUniswapToken(assertEx(x[0], () => 'Undefined Token')), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = async (uniswapPayload: UniswapCryptoMarketPayload | undefined): Promise<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 await new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","export type CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query'\nexport const CryptoMarketAssetDivinerQuerySchema: CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query'\n\nexport type CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config'\nexport const CryptoMarketAssetDivinerConfigSchema: CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config'\n","import { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CryptoMarketAssetDiviner } from './Diviner.ts'\n\nexport const CryptoMarketAssetPlugin = () =>\n createPayloadSetDivinerPlugin<CryptoMarketAssetDiviner>(\n { required: { [CryptoMarketAssetSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await CryptoMarketAssetDiviner.create(params)) as CryptoMarketAssetDiviner\n },\n },\n )\n"],"mappings":"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","names":["CoingeckoCryptoMarketSchema","CryptoMarketAssetSchema","AbstractDiviner","UniswapCryptoMarketSchema","exists","CryptoMarketAssetSchema","PayloadBuilder","exists","isNumber","val","undefined","parseStringifiedNumber","value","parsed","Number","parseFloat","isNaN","averageStringifiedNumbers","prices","numbers","map","filter","length","reduce","sum","n","average","input","payloads","exists","tokens","Set","flatMap","payload","Object","keys","assets","t","valuations","asset","assetInfo","p","valueBasis","v","fromEntries","token","valuation","assetValuations","info","averageAssetValuation","toString","CryptoMarketAssetSchema","PayloadBuilder","schema","CryptoMarketAssetSchema","valuationExists","value","otherValueExists","possiblyNumber","Number","isNaN","divineCoinGeckoPrices","payload","assets","Object","fromEntries","entries","filter","map","asset","valuation","symbol","price","toLowerCase","toString","timestamp","Date","now","PayloadBuilder","fields","build","assertEx","exists","CryptoMarketAssetSchema","PayloadBuilder","schema","CryptoMarketAssetSchema","mapUniswapToken","symbol","toLowerCase","pairsContainingToken","uniswapPayload","token","pairs","map","p","tokens","filter","some","x","exists","tokensFromPairs","flatMap","t","valuesFromTokenPairs","tokensPairs","Object","fromEntries","pair","current","find","other","value","toString","assertEx","divineUniswapPrices","assets","Set","assetInfo","timestamp","Date","now","PayloadBuilder","fields","build","schema","CryptoMarketAssetSchema","divinePrices","coinGeckoPayload","uniswapPayload","coinGeckoPrices","divineCoinGeckoPrices","uniswapPrices","divineUniswapPrices","prices","some","exists","assets","average","timestamp","Date","now","PayloadBuilder","fields","build","CryptoMarketAssetDivinerQuerySchema","CryptoMarketAssetDivinerConfigSchema","CryptoMarketAssetDiviner","AbstractDiviner","configSchemas","CryptoMarketAssetDivinerConfigSchema","defaultConfigSchema","targetSchema","CryptoMarketAssetSchema","divineHandler","payloads","coinGeckoPayload","find","payload","schema","CoingeckoCryptoMarketSchema","uniswapPayload","UniswapCryptoMarketSchema","result","divinePrices","CryptoMarketAssetSchema","PayloadSetSchema","createPayloadSetDivinerPlugin","CryptoMarketAssetPlugin","createPayloadSetDivinerPlugin","required","CryptoMarketAssetSchema","schema","PayloadSetSchema","diviner","params","CryptoMarketAssetDiviner","create"]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/lib/divinePrices.ts","../../src/lib/average.ts","../../src/lib/divineCoinGeckoPrices.ts","../../src/lib/divineUniswapPrices.ts","../../src/Schema.ts","../../src/Plugin.ts"],"sourcesContent":["import { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema, Module } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib/index.ts'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts'\n\nexport type CryptoMarketAssetDivinerConfig = DivinerConfig<{ schema: CryptoMarketAssetDivinerConfigSchema }>\nexport type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>\n\nexport class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule, Module {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoMarketAssetDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoMarketAssetDivinerConfigSchema\n static override targetSchema = CryptoMarketAssetSchema\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const coinGeckoPayload = payloads?.find(payload => payload?.schema === CoingeckoCryptoMarketSchema) as CoingeckoCryptoMarketPayload\n const uniswapPayload = payloads?.find(payload => payload?.schema === UniswapCryptoMarketSchema) as UniswapCryptoMarketPayload\n const result: CryptoMarketAssetPayload = await divinePrices(coinGeckoPayload, uniswapPayload)\n return [result]\n }\n}\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.ts'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices.ts'\nimport { divineUniswapPrices } from './divineUniswapPrices.ts'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = async (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): Promise<CryptoMarketAssetPayload> => {\n const coinGeckoPrices = await divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = await divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return await 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 = Number.parseFloat(value)\n return Number.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 > 0 ? 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.flatMap(payload => Object.keys(payload.assets).map<Token>(t => t as Token)))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens].flatMap((asset) => {\n const assetInfo = payloads.map(p => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(assetInfo.flatMap(v => Object.keys(v.value) as unknown as Currency | Token).filter(exists))\n return [...valueBasis]\n }),\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' && !Number.isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = async (payload: CoingeckoCryptoMarketPayload | undefined): Promise<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 await new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { assertEx } from '@xylabs/assert'\nimport { 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.flatMap(p => p.tokens).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.find(p => p.symbol.toLowerCase() === token)\n const other = pair.find(p => p.symbol.toLowerCase() !== token)\n return [other?.symbol.toLowerCase(), current?.value.toString()]\n })\n .map(x => [mapUniswapToken(assertEx(x[0], () => 'Undefined Token')), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = async (uniswapPayload: UniswapCryptoMarketPayload | undefined): Promise<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 await new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","export type CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query'\nexport const CryptoMarketAssetDivinerQuerySchema: CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query'\n\nexport type CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config'\nexport const CryptoMarketAssetDivinerConfigSchema: CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config'\n","import { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CryptoMarketAssetDiviner } from './Diviner.ts'\n\nexport const CryptoMarketAssetPlugin = () =>\n createPayloadSetDivinerPlugin<CryptoMarketAssetDiviner>(\n { required: { [CryptoMarketAssetSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await CryptoMarketAssetDiviner.create(params)) as CryptoMarketAssetDiviner\n },\n },\n )\n"],"mappings":"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","names":["CryptoMarketAssetSchema","exists","CryptoMarketAssetSchema","PayloadBuilder","exists","CryptoMarketAssetSchema","PayloadBuilder","schema","schema","CryptoMarketAssetSchema","exists","PayloadBuilder","CryptoMarketAssetSchema","CryptoMarketAssetSchema","CryptoMarketAssetSchema"]}
package/package.json CHANGED
@@ -10,52 +10,33 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.8",
14
- "@xylabs/exists": "^3.6.8",
15
- "@xyo-network/coingecko-crypto-market-payload-plugin": "^2.99.5",
16
- "@xyo-network/crypto-asset-payload-plugin": "^2.99.5",
17
- "@xyo-network/diviner-abstract": "^2.111.2",
18
- "@xyo-network/diviner-model": "^2.111.2",
19
- "@xyo-network/module-model": "^2.111.2",
20
- "@xyo-network/payload-builder": "^2.111.2",
21
- "@xyo-network/payload-model": "^2.111.2",
22
- "@xyo-network/payloadset-plugin": "^2.111.2",
23
- "@xyo-network/uniswap-crypto-market-payload-plugin": "^2.99.5"
13
+ "@xylabs/assert": "^4.0.0",
14
+ "@xylabs/exists": "^4.0.0",
15
+ "@xyo-network/coingecko-crypto-market-payload-plugin": "^3.0.0",
16
+ "@xyo-network/crypto-asset-payload-plugin": "^3.0.0",
17
+ "@xyo-network/diviner-abstract": "^3.0.1",
18
+ "@xyo-network/diviner-model": "^3.0.1",
19
+ "@xyo-network/module-model": "^3.0.1",
20
+ "@xyo-network/payload-builder": "^3.0.1",
21
+ "@xyo-network/payload-model": "^3.0.1",
22
+ "@xyo-network/payloadset-plugin": "^3.0.1",
23
+ "@xyo-network/uniswap-crypto-market-payload-plugin": "^3.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@xylabs/ts-scripts-yarn3": "^3.15.13",
27
- "@xylabs/tsconfig": "^3.15.13",
26
+ "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
27
+ "@xylabs/tsconfig": "^4.0.0-rc.15",
28
28
  "typescript": "^5.5.4"
29
29
  },
30
30
  "description": "Typescript/Javascript Plugins for XYO Platform",
31
- "types": "dist/node/index.d.ts",
31
+ "types": "dist/neutral/index.d.ts",
32
32
  "exports": {
33
33
  ".": {
34
- "browser": {
35
- "require": {
36
- "types": "./dist/browser/index.d.cts",
37
- "default": "./dist/browser/index.cjs"
38
- },
39
- "import": {
40
- "types": "./dist/browser/index.d.mts",
41
- "default": "./dist/browser/index.mjs"
42
- }
43
- },
44
- "node": {
45
- "require": {
46
- "types": "./dist/node/index.d.cts",
47
- "default": "./dist/node/index.cjs"
48
- },
49
- "import": {
50
- "types": "./dist/node/index.d.mts",
51
- "default": "./dist/node/index.mjs"
52
- }
53
- }
34
+ "types": "./dist/neutral/index.d.ts",
35
+ "default": "./dist/neutral/index.mjs"
54
36
  },
55
37
  "./package.json": "./package.json"
56
38
  },
57
- "main": "dist/node/index.cjs",
58
- "module": "dist/node/index.mjs",
39
+ "module": "dist/neutral/index.mjs",
59
40
  "homepage": "https://xyo.network",
60
41
  "license": "LGPL-3.0-only",
61
42
  "publishConfig": {
@@ -66,6 +47,6 @@
66
47
  "url": "https://github.com/XYOracleNetwork/plugins.git"
67
48
  },
68
49
  "sideEffects": false,
69
- "version": "2.99.5",
50
+ "version": "3.0.0",
70
51
  "type": "module"
71
52
  }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './Diviner.ts'
2
- // eslint-disable-next-line import/no-default-export
2
+ // eslint-disable-next-line import-x/no-default-export
3
3
  export { CryptoMarketAssetPlugin, CryptoMarketAssetPlugin as default } from './Plugin.ts'
4
4
  export * from './Schema.ts'
package/xy.config.ts CHANGED
@@ -1,14 +1,13 @@
1
1
  import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
2
  const config: XyTsupConfig = {
3
3
  compile: {
4
- browser: {
5
- src: true,
6
- },
7
- node: {
4
+ browser: {},
5
+ node: {},
6
+ neutral: {
8
7
  src: true,
9
8
  },
10
9
  },
11
10
  }
12
11
 
13
- // eslint-disable-next-line import/no-default-export
12
+ // eslint-disable-next-line import-x/no-default-export
14
13
  export default config
@@ -1,16 +0,0 @@
1
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
- import { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model';
3
- import { AnyConfigSchema, Module } from '@xyo-network/module-model';
4
- import { Payload, Schema } from '@xyo-network/payload-model';
5
- import { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts';
6
- export type CryptoMarketAssetDivinerConfig = DivinerConfig<{
7
- schema: CryptoMarketAssetDivinerConfigSchema;
8
- }>;
9
- export type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>;
10
- export declare class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams> extends AbstractDiviner<TParams> implements DivinerModule, Module {
11
- static readonly configSchemas: Schema[];
12
- static readonly defaultConfigSchema: Schema;
13
- static targetSchema: "network.xyo.crypto.asset";
14
- protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
15
- }
16
- //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,CAAC,CAAA;AAC5G,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAA;AAE3G,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,aAAa,EAAE,MAAM;IAChC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAiE;IACjH,gBAAyB,mBAAmB,EAAE,MAAM,CAAuC;IAC3F,OAAgB,YAAY,6BAA0B;cAE7B,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAMjF"}
@@ -1,16 +0,0 @@
1
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
- import { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model';
3
- import { AnyConfigSchema, Module } from '@xyo-network/module-model';
4
- import { Payload, Schema } from '@xyo-network/payload-model';
5
- import { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts';
6
- export type CryptoMarketAssetDivinerConfig = DivinerConfig<{
7
- schema: CryptoMarketAssetDivinerConfigSchema;
8
- }>;
9
- export type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>;
10
- export declare class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams> extends AbstractDiviner<TParams> implements DivinerModule, Module {
11
- static readonly configSchemas: Schema[];
12
- static readonly defaultConfigSchema: Schema;
13
- static targetSchema: "network.xyo.crypto.asset";
14
- protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
15
- }
16
- //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,CAAC,CAAA;AAC5G,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAA;AAE3G,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,aAAa,EAAE,MAAM;IAChC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAiE;IACjH,gBAAyB,mBAAmB,EAAE,MAAM,CAAuC;IAC3F,OAAgB,YAAY,6BAA0B;cAE7B,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAMjF"}
@@ -1,16 +0,0 @@
1
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
- import { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model';
3
- import { AnyConfigSchema, Module } from '@xyo-network/module-model';
4
- import { Payload, Schema } from '@xyo-network/payload-model';
5
- import { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts';
6
- export type CryptoMarketAssetDivinerConfig = DivinerConfig<{
7
- schema: CryptoMarketAssetDivinerConfigSchema;
8
- }>;
9
- export type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>;
10
- export declare class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams> extends AbstractDiviner<TParams> implements DivinerModule, Module {
11
- static readonly configSchemas: Schema[];
12
- static readonly defaultConfigSchema: Schema;
13
- static targetSchema: "network.xyo.crypto.asset";
14
- protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
15
- }
16
- //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,CAAC,CAAA;AAC5G,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAA;AAE3G,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,aAAa,EAAE,MAAM;IAChC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAiE;IACjH,gBAAyB,mBAAmB,EAAE,MAAM,CAAuC;IAC3F,OAAgB,YAAY,6BAA0B;cAE7B,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAMjF"}
@@ -1,19 +0,0 @@
1
- import { CryptoMarketAssetDiviner } from './Diviner.ts';
2
- export declare const CryptoMarketAssetPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<CryptoMarketAssetDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import("@xyo-network/account-model").AccountInstance | "random";
4
- addToResolvers?: boolean;
5
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
6
- allowNameResolution?: boolean;
7
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
- schema: "network.xyo.crypto.asset.diviner.config";
9
- } & {
10
- schema: import("./Schema.ts").CryptoMarketAssetDivinerConfigSchema;
11
- }, "schema"> & {
12
- schema: "network.xyo.crypto.asset.diviner.config";
13
- }, "schema"> & {
14
- schema: string;
15
- };
16
- ephemeralQueryAccountEnabled?: boolean;
17
- moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
18
- }>>;
19
- //# sourceMappingURL=Plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEvD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;GAQjC,CAAA"}