@xyo-network/crypto-asset-plugin 2.82.2 → 2.84.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 (73) hide show
  1. package/dist/browser/Diviner.d.cts +1 -2
  2. package/dist/browser/Diviner.d.cts.map +1 -1
  3. package/dist/browser/Diviner.d.mts +1 -2
  4. package/dist/browser/Diviner.d.mts.map +1 -1
  5. package/dist/browser/Diviner.d.ts +1 -2
  6. package/dist/browser/Diviner.d.ts.map +1 -1
  7. package/dist/browser/Plugin.d.cts +396 -6
  8. package/dist/browser/Plugin.d.cts.map +1 -1
  9. package/dist/browser/Plugin.d.mts +396 -6
  10. package/dist/browser/Plugin.d.mts.map +1 -1
  11. package/dist/browser/Plugin.d.ts +396 -6
  12. package/dist/browser/Plugin.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +10 -10
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +10 -10
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/browser/lib/divineCoinGeckoPrices.d.cts +1 -1
  18. package/dist/browser/lib/divineCoinGeckoPrices.d.cts.map +1 -1
  19. package/dist/browser/lib/divineCoinGeckoPrices.d.mts +1 -1
  20. package/dist/browser/lib/divineCoinGeckoPrices.d.mts.map +1 -1
  21. package/dist/browser/lib/divineCoinGeckoPrices.d.ts +1 -1
  22. package/dist/browser/lib/divineCoinGeckoPrices.d.ts.map +1 -1
  23. package/dist/browser/lib/divinePrices.d.cts +1 -1
  24. package/dist/browser/lib/divinePrices.d.cts.map +1 -1
  25. package/dist/browser/lib/divinePrices.d.mts +1 -1
  26. package/dist/browser/lib/divinePrices.d.mts.map +1 -1
  27. package/dist/browser/lib/divinePrices.d.ts +1 -1
  28. package/dist/browser/lib/divinePrices.d.ts.map +1 -1
  29. package/dist/browser/lib/divineUniswapPrices.d.cts +1 -1
  30. package/dist/browser/lib/divineUniswapPrices.d.cts.map +1 -1
  31. package/dist/browser/lib/divineUniswapPrices.d.mts +1 -1
  32. package/dist/browser/lib/divineUniswapPrices.d.mts.map +1 -1
  33. package/dist/browser/lib/divineUniswapPrices.d.ts +1 -1
  34. package/dist/browser/lib/divineUniswapPrices.d.ts.map +1 -1
  35. package/dist/node/Diviner.d.cts +1 -2
  36. package/dist/node/Diviner.d.cts.map +1 -1
  37. package/dist/node/Diviner.d.mts +1 -2
  38. package/dist/node/Diviner.d.mts.map +1 -1
  39. package/dist/node/Diviner.d.ts +1 -2
  40. package/dist/node/Diviner.d.ts.map +1 -1
  41. package/dist/node/Plugin.d.cts +396 -6
  42. package/dist/node/Plugin.d.cts.map +1 -1
  43. package/dist/node/Plugin.d.mts +396 -6
  44. package/dist/node/Plugin.d.mts.map +1 -1
  45. package/dist/node/Plugin.d.ts +396 -6
  46. package/dist/node/Plugin.d.ts.map +1 -1
  47. package/dist/node/index.js +10 -10
  48. package/dist/node/index.js.map +1 -1
  49. package/dist/node/index.mjs +10 -10
  50. package/dist/node/index.mjs.map +1 -1
  51. package/dist/node/lib/divineCoinGeckoPrices.d.cts +1 -1
  52. package/dist/node/lib/divineCoinGeckoPrices.d.cts.map +1 -1
  53. package/dist/node/lib/divineCoinGeckoPrices.d.mts +1 -1
  54. package/dist/node/lib/divineCoinGeckoPrices.d.mts.map +1 -1
  55. package/dist/node/lib/divineCoinGeckoPrices.d.ts +1 -1
  56. package/dist/node/lib/divineCoinGeckoPrices.d.ts.map +1 -1
  57. package/dist/node/lib/divinePrices.d.cts +1 -1
  58. package/dist/node/lib/divinePrices.d.cts.map +1 -1
  59. package/dist/node/lib/divinePrices.d.mts +1 -1
  60. package/dist/node/lib/divinePrices.d.mts.map +1 -1
  61. package/dist/node/lib/divinePrices.d.ts +1 -1
  62. package/dist/node/lib/divinePrices.d.ts.map +1 -1
  63. package/dist/node/lib/divineUniswapPrices.d.cts +1 -1
  64. package/dist/node/lib/divineUniswapPrices.d.cts.map +1 -1
  65. package/dist/node/lib/divineUniswapPrices.d.mts +1 -1
  66. package/dist/node/lib/divineUniswapPrices.d.mts.map +1 -1
  67. package/dist/node/lib/divineUniswapPrices.d.ts +1 -1
  68. package/dist/node/lib/divineUniswapPrices.d.ts.map +1 -1
  69. package/package.json +12 -12
  70. package/src/Diviner.ts +2 -3
  71. package/src/lib/divineCoinGeckoPrices.ts +2 -2
  72. package/src/lib/divinePrices.ts +5 -5
  73. package/src/lib/divineUniswapPrices.ts +2 -2
@@ -1,7 +1,7 @@
1
1
  import { CryptoMarketAssetDiviner } from './Diviner';
2
- export declare const CryptoMarketAssetPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<CryptoMarketAssetDiviner<import("@xyo-network/core").BaseParamsFields & {
2
+ export declare const CryptoMarketAssetPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<CryptoMarketAssetDiviner<import("@xyo-network/object").BaseParamsFields & {
3
3
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
- config: import("@xyo-network/payload-model").SchemaFields & Omit<{
4
+ config: (import("@xyo-network/payload-model").SchemaFields & object & Omit<{
5
5
  accountDerivationPath?: string | undefined;
6
6
  readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
7
7
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -17,7 +17,225 @@ export declare const CryptoMarketAssetPlugin: () => import("@xyo-network/payload
17
17
  readonly sign?: boolean | undefined;
18
18
  readonly storeQueries?: boolean | undefined;
19
19
  readonly timestamp?: boolean | undefined;
20
- } & import("@xyo-network/module-model").ArchivingModuleConfig & Omit<import("@xyo-network/payload-model").SchemaFields & Omit<{
20
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
21
+ schema: string;
22
+ } & Omit<(import("@xyo-network/payload-model").SchemaFields & object & Omit<{
23
+ accountDerivationPath?: string | undefined;
24
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
25
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
26
+ readonly name?: string | undefined;
27
+ readonly paging?: Record<string, {
28
+ size?: number | undefined;
29
+ }> | undefined;
30
+ readonly security?: {
31
+ readonly allowAnonymous?: boolean | undefined;
32
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
33
+ readonly disallowed?: Record<string, string[]> | undefined;
34
+ } | undefined;
35
+ readonly sign?: boolean | undefined;
36
+ readonly storeQueries?: boolean | undefined;
37
+ readonly timestamp?: boolean | undefined;
38
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
39
+ schema: "network.xyo.crypto.asset.diviner.config";
40
+ } & Omit<{
41
+ schema: "network.xyo.crypto.asset.diviner.config";
42
+ }, "schema">, "schema"> & {
43
+ schema: "network.xyo.crypto.asset.diviner.config";
44
+ }) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
45
+ accountDerivationPath?: string | undefined;
46
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
47
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
48
+ readonly name?: string | undefined;
49
+ readonly paging?: Record<string, {
50
+ size?: number | undefined;
51
+ }> | undefined;
52
+ readonly security?: {
53
+ readonly allowAnonymous?: boolean | undefined;
54
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
55
+ readonly disallowed?: Record<string, string[]> | undefined;
56
+ } | undefined;
57
+ readonly sign?: boolean | undefined;
58
+ readonly storeQueries?: boolean | undefined;
59
+ readonly timestamp?: boolean | undefined;
60
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
61
+ schema: "network.xyo.crypto.asset.diviner.config";
62
+ } & Omit<{
63
+ schema: "network.xyo.crypto.asset.diviner.config";
64
+ }, "schema">, "schema"> & {
65
+ schema: "network.xyo.crypto.asset.diviner.config";
66
+ } & object) | (import("@xyo-network/payload-model").SchemaFields & object & Omit<{
67
+ accountDerivationPath?: string | undefined;
68
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
69
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
70
+ readonly name?: string | undefined;
71
+ readonly paging?: Record<string, {
72
+ size?: number | undefined;
73
+ }> | undefined;
74
+ readonly security?: {
75
+ readonly allowAnonymous?: boolean | undefined;
76
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
77
+ readonly disallowed?: Record<string, string[]> | undefined;
78
+ } | undefined;
79
+ readonly sign?: boolean | undefined;
80
+ readonly storeQueries?: boolean | undefined;
81
+ readonly timestamp?: boolean | undefined;
82
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
83
+ schema: "network.xyo.crypto.asset.diviner.config";
84
+ } & Omit<{
85
+ schema: "network.xyo.crypto.asset.diviner.config";
86
+ }, "schema">, "schema"> & {
87
+ schema: "network.xyo.crypto.asset.diviner.config";
88
+ } & import("@xyo-network/payload-model").PayloadMetaFields) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
89
+ accountDerivationPath?: string | undefined;
90
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
91
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
92
+ readonly name?: string | undefined;
93
+ readonly paging?: Record<string, {
94
+ size?: number | undefined;
95
+ }> | undefined;
96
+ readonly security?: {
97
+ readonly allowAnonymous?: boolean | undefined;
98
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
99
+ readonly disallowed?: Record<string, string[]> | undefined;
100
+ } | undefined;
101
+ readonly sign?: boolean | undefined;
102
+ readonly storeQueries?: boolean | undefined;
103
+ readonly timestamp?: boolean | undefined;
104
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
105
+ schema: "network.xyo.crypto.asset.diviner.config";
106
+ } & Omit<{
107
+ schema: "network.xyo.crypto.asset.diviner.config";
108
+ }, "schema">, "schema"> & {
109
+ schema: "network.xyo.crypto.asset.diviner.config";
110
+ }), "schema">, "schema"> & {
111
+ schema: string;
112
+ }) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
113
+ accountDerivationPath?: string | undefined;
114
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
115
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
116
+ readonly name?: string | undefined;
117
+ readonly paging?: Record<string, {
118
+ size?: number | undefined;
119
+ }> | undefined;
120
+ readonly security?: {
121
+ readonly allowAnonymous?: boolean | undefined;
122
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
123
+ readonly disallowed?: Record<string, string[]> | undefined;
124
+ } | undefined;
125
+ readonly sign?: boolean | undefined;
126
+ readonly storeQueries?: boolean | undefined;
127
+ readonly timestamp?: boolean | undefined;
128
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
129
+ schema: string;
130
+ } & Omit<(import("@xyo-network/payload-model").SchemaFields & object & Omit<{
131
+ accountDerivationPath?: string | undefined;
132
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
133
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
134
+ readonly name?: string | undefined;
135
+ readonly paging?: Record<string, {
136
+ size?: number | undefined;
137
+ }> | undefined;
138
+ readonly security?: {
139
+ readonly allowAnonymous?: boolean | undefined;
140
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
141
+ readonly disallowed?: Record<string, string[]> | undefined;
142
+ } | undefined;
143
+ readonly sign?: boolean | undefined;
144
+ readonly storeQueries?: boolean | undefined;
145
+ readonly timestamp?: boolean | undefined;
146
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
147
+ schema: "network.xyo.crypto.asset.diviner.config";
148
+ } & Omit<{
149
+ schema: "network.xyo.crypto.asset.diviner.config";
150
+ }, "schema">, "schema"> & {
151
+ schema: "network.xyo.crypto.asset.diviner.config";
152
+ }) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
153
+ accountDerivationPath?: string | undefined;
154
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
155
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
156
+ readonly name?: string | undefined;
157
+ readonly paging?: Record<string, {
158
+ size?: number | undefined;
159
+ }> | undefined;
160
+ readonly security?: {
161
+ readonly allowAnonymous?: boolean | undefined;
162
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
163
+ readonly disallowed?: Record<string, string[]> | undefined;
164
+ } | undefined;
165
+ readonly sign?: boolean | undefined;
166
+ readonly storeQueries?: boolean | undefined;
167
+ readonly timestamp?: boolean | undefined;
168
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
169
+ schema: "network.xyo.crypto.asset.diviner.config";
170
+ } & Omit<{
171
+ schema: "network.xyo.crypto.asset.diviner.config";
172
+ }, "schema">, "schema"> & {
173
+ schema: "network.xyo.crypto.asset.diviner.config";
174
+ } & object) | (import("@xyo-network/payload-model").SchemaFields & object & Omit<{
175
+ accountDerivationPath?: string | undefined;
176
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
177
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
178
+ readonly name?: string | undefined;
179
+ readonly paging?: Record<string, {
180
+ size?: number | undefined;
181
+ }> | undefined;
182
+ readonly security?: {
183
+ readonly allowAnonymous?: boolean | undefined;
184
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
185
+ readonly disallowed?: Record<string, string[]> | undefined;
186
+ } | undefined;
187
+ readonly sign?: boolean | undefined;
188
+ readonly storeQueries?: boolean | undefined;
189
+ readonly timestamp?: boolean | undefined;
190
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
191
+ schema: "network.xyo.crypto.asset.diviner.config";
192
+ } & Omit<{
193
+ schema: "network.xyo.crypto.asset.diviner.config";
194
+ }, "schema">, "schema"> & {
195
+ schema: "network.xyo.crypto.asset.diviner.config";
196
+ } & import("@xyo-network/payload-model").PayloadMetaFields) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
197
+ accountDerivationPath?: string | undefined;
198
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
199
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
200
+ readonly name?: string | undefined;
201
+ readonly paging?: Record<string, {
202
+ size?: number | undefined;
203
+ }> | undefined;
204
+ readonly security?: {
205
+ readonly allowAnonymous?: boolean | undefined;
206
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
207
+ readonly disallowed?: Record<string, string[]> | undefined;
208
+ } | undefined;
209
+ readonly sign?: boolean | undefined;
210
+ readonly storeQueries?: boolean | undefined;
211
+ readonly timestamp?: boolean | undefined;
212
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
213
+ schema: "network.xyo.crypto.asset.diviner.config";
214
+ } & Omit<{
215
+ schema: "network.xyo.crypto.asset.diviner.config";
216
+ }, "schema">, "schema"> & {
217
+ schema: "network.xyo.crypto.asset.diviner.config";
218
+ }), "schema">, "schema"> & {
219
+ schema: string;
220
+ } & object) | (import("@xyo-network/payload-model").SchemaFields & object & Omit<{
221
+ accountDerivationPath?: string | undefined;
222
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
223
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
224
+ readonly name?: string | undefined;
225
+ readonly paging?: Record<string, {
226
+ size?: number | undefined;
227
+ }> | undefined;
228
+ readonly security?: {
229
+ readonly allowAnonymous?: boolean | undefined;
230
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
231
+ readonly disallowed?: Record<string, string[]> | undefined;
232
+ } | undefined;
233
+ readonly sign?: boolean | undefined;
234
+ readonly storeQueries?: boolean | undefined;
235
+ readonly timestamp?: boolean | undefined;
236
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
237
+ schema: string;
238
+ } & Omit<(import("@xyo-network/payload-model").SchemaFields & object & Omit<{
21
239
  accountDerivationPath?: string | undefined;
22
240
  readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
23
241
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -39,11 +257,183 @@ export declare const CryptoMarketAssetPlugin: () => import("@xyo-network/payload
39
257
  schema: "network.xyo.crypto.asset.diviner.config";
40
258
  }, "schema">, "schema"> & {
41
259
  schema: "network.xyo.crypto.asset.diviner.config";
42
- }, "schema"> & {
260
+ }) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
261
+ accountDerivationPath?: string | undefined;
262
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
263
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
264
+ readonly name?: string | undefined;
265
+ readonly paging?: Record<string, {
266
+ size?: number | undefined;
267
+ }> | undefined;
268
+ readonly security?: {
269
+ readonly allowAnonymous?: boolean | undefined;
270
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
271
+ readonly disallowed?: Record<string, string[]> | undefined;
272
+ } | undefined;
273
+ readonly sign?: boolean | undefined;
274
+ readonly storeQueries?: boolean | undefined;
275
+ readonly timestamp?: boolean | undefined;
276
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
277
+ schema: "network.xyo.crypto.asset.diviner.config";
278
+ } & Omit<{
279
+ schema: "network.xyo.crypto.asset.diviner.config";
280
+ }, "schema">, "schema"> & {
281
+ schema: "network.xyo.crypto.asset.diviner.config";
282
+ } & object) | (import("@xyo-network/payload-model").SchemaFields & object & Omit<{
283
+ accountDerivationPath?: string | undefined;
284
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
285
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
286
+ readonly name?: string | undefined;
287
+ readonly paging?: Record<string, {
288
+ size?: number | undefined;
289
+ }> | undefined;
290
+ readonly security?: {
291
+ readonly allowAnonymous?: boolean | undefined;
292
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
293
+ readonly disallowed?: Record<string, string[]> | undefined;
294
+ } | undefined;
295
+ readonly sign?: boolean | undefined;
296
+ readonly storeQueries?: boolean | undefined;
297
+ readonly timestamp?: boolean | undefined;
298
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
299
+ schema: "network.xyo.crypto.asset.diviner.config";
300
+ } & Omit<{
301
+ schema: "network.xyo.crypto.asset.diviner.config";
302
+ }, "schema">, "schema"> & {
303
+ schema: "network.xyo.crypto.asset.diviner.config";
304
+ } & import("@xyo-network/payload-model").PayloadMetaFields) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
305
+ accountDerivationPath?: string | undefined;
306
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
307
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
308
+ readonly name?: string | undefined;
309
+ readonly paging?: Record<string, {
310
+ size?: number | undefined;
311
+ }> | undefined;
312
+ readonly security?: {
313
+ readonly allowAnonymous?: boolean | undefined;
314
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
315
+ readonly disallowed?: Record<string, string[]> | undefined;
316
+ } | undefined;
317
+ readonly sign?: boolean | undefined;
318
+ readonly storeQueries?: boolean | undefined;
319
+ readonly timestamp?: boolean | undefined;
320
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
321
+ schema: "network.xyo.crypto.asset.diviner.config";
322
+ } & Omit<{
323
+ schema: "network.xyo.crypto.asset.diviner.config";
324
+ }, "schema">, "schema"> & {
325
+ schema: "network.xyo.crypto.asset.diviner.config";
326
+ }), "schema">, "schema"> & {
43
327
  schema: string;
44
- }, "schema"> & {
328
+ } & import("@xyo-network/payload-model").PayloadMetaFields) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
329
+ accountDerivationPath?: string | undefined;
330
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
331
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
332
+ readonly name?: string | undefined;
333
+ readonly paging?: Record<string, {
334
+ size?: number | undefined;
335
+ }> | undefined;
336
+ readonly security?: {
337
+ readonly allowAnonymous?: boolean | undefined;
338
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
339
+ readonly disallowed?: Record<string, string[]> | undefined;
340
+ } | undefined;
341
+ readonly sign?: boolean | undefined;
342
+ readonly storeQueries?: boolean | undefined;
343
+ readonly timestamp?: boolean | undefined;
344
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
345
+ schema: string;
346
+ } & Omit<(import("@xyo-network/payload-model").SchemaFields & object & Omit<{
347
+ accountDerivationPath?: string | undefined;
348
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
349
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
350
+ readonly name?: string | undefined;
351
+ readonly paging?: Record<string, {
352
+ size?: number | undefined;
353
+ }> | undefined;
354
+ readonly security?: {
355
+ readonly allowAnonymous?: boolean | undefined;
356
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
357
+ readonly disallowed?: Record<string, string[]> | undefined;
358
+ } | undefined;
359
+ readonly sign?: boolean | undefined;
360
+ readonly storeQueries?: boolean | undefined;
361
+ readonly timestamp?: boolean | undefined;
362
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
363
+ schema: "network.xyo.crypto.asset.diviner.config";
364
+ } & Omit<{
365
+ schema: "network.xyo.crypto.asset.diviner.config";
366
+ }, "schema">, "schema"> & {
367
+ schema: "network.xyo.crypto.asset.diviner.config";
368
+ }) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
369
+ accountDerivationPath?: string | undefined;
370
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
371
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
372
+ readonly name?: string | undefined;
373
+ readonly paging?: Record<string, {
374
+ size?: number | undefined;
375
+ }> | undefined;
376
+ readonly security?: {
377
+ readonly allowAnonymous?: boolean | undefined;
378
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
379
+ readonly disallowed?: Record<string, string[]> | undefined;
380
+ } | undefined;
381
+ readonly sign?: boolean | undefined;
382
+ readonly storeQueries?: boolean | undefined;
383
+ readonly timestamp?: boolean | undefined;
384
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
385
+ schema: "network.xyo.crypto.asset.diviner.config";
386
+ } & Omit<{
387
+ schema: "network.xyo.crypto.asset.diviner.config";
388
+ }, "schema">, "schema"> & {
389
+ schema: "network.xyo.crypto.asset.diviner.config";
390
+ } & object) | (import("@xyo-network/payload-model").SchemaFields & object & Omit<{
391
+ accountDerivationPath?: string | undefined;
392
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
393
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
394
+ readonly name?: string | undefined;
395
+ readonly paging?: Record<string, {
396
+ size?: number | undefined;
397
+ }> | undefined;
398
+ readonly security?: {
399
+ readonly allowAnonymous?: boolean | undefined;
400
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
401
+ readonly disallowed?: Record<string, string[]> | undefined;
402
+ } | undefined;
403
+ readonly sign?: boolean | undefined;
404
+ readonly storeQueries?: boolean | undefined;
405
+ readonly timestamp?: boolean | undefined;
406
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
407
+ schema: "network.xyo.crypto.asset.diviner.config";
408
+ } & Omit<{
409
+ schema: "network.xyo.crypto.asset.diviner.config";
410
+ }, "schema">, "schema"> & {
411
+ schema: "network.xyo.crypto.asset.diviner.config";
412
+ } & import("@xyo-network/payload-model").PayloadMetaFields) | (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadMetaFields & Omit<{
413
+ accountDerivationPath?: string | undefined;
414
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
415
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
416
+ readonly name?: string | undefined;
417
+ readonly paging?: Record<string, {
418
+ size?: number | undefined;
419
+ }> | undefined;
420
+ readonly security?: {
421
+ readonly allowAnonymous?: boolean | undefined;
422
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
423
+ readonly disallowed?: Record<string, string[]> | undefined;
424
+ } | undefined;
425
+ readonly sign?: boolean | undefined;
426
+ readonly storeQueries?: boolean | undefined;
427
+ readonly timestamp?: boolean | undefined;
428
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
429
+ schema: "network.xyo.crypto.asset.diviner.config";
430
+ } & Omit<{
431
+ schema: "network.xyo.crypto.asset.diviner.config";
432
+ }, "schema">, "schema"> & {
433
+ schema: "network.xyo.crypto.asset.diviner.config";
434
+ }), "schema">, "schema"> & {
45
435
  schema: string;
46
- };
436
+ });
47
437
  ephemeralQueryAccountEnabled?: boolean | undefined;
48
438
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
49
439
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQjC,CAAA"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQjC,CAAA"}
@@ -107,7 +107,7 @@ var otherValueExists = (value) => {
107
107
  const possiblyNumber = value[1];
108
108
  return typeof possiblyNumber === "number" && !isNaN(possiblyNumber);
109
109
  };
110
- var divineCoinGeckoPrices = (payload) => {
110
+ var divineCoinGeckoPrices = async (payload) => {
111
111
  const assets = payload && (payload == null ? void 0 : payload.assets) ? Object.fromEntries(
112
112
  Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
113
113
  const value = Object.fromEntries(
@@ -117,7 +117,7 @@ var divineCoinGeckoPrices = (payload) => {
117
117
  })
118
118
  ) : {};
119
119
  const timestamp = Date.now();
120
- return new import_payload_builder.PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
120
+ return await new import_payload_builder.PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
121
121
  };
122
122
 
123
123
  // src/lib/divineUniswapPrices.ts
@@ -150,7 +150,7 @@ var valuesFromTokenPairs = (tokensPairs, token) => {
150
150
  }).map((x) => [mapUniswapToken(x[0]), x[1]])
151
151
  );
152
152
  };
153
- var divineUniswapPrices = (uniswapPayload) => {
153
+ var divineUniswapPrices = async (uniswapPayload) => {
154
154
  let assets = {};
155
155
  if (uniswapPayload) {
156
156
  const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
@@ -164,18 +164,18 @@ var divineUniswapPrices = (uniswapPayload) => {
164
164
  );
165
165
  }
166
166
  const timestamp = Date.now();
167
- return new import_payload_builder2.PayloadBuilder({ schema: schema2 }).fields({ assets, timestamp }).build();
167
+ return await new import_payload_builder2.PayloadBuilder({ schema: schema2 }).fields({ assets, timestamp }).build();
168
168
  };
169
169
 
170
170
  // src/lib/divinePrices.ts
171
171
  var schema3 = import_crypto_asset_payload_plugin3.CryptoMarketAssetSchema;
172
- var divinePrices = (coinGeckoPayload, uniswapPayload) => {
173
- const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
174
- const uniswapPrices = divineUniswapPrices(uniswapPayload);
172
+ var divinePrices = async (coinGeckoPayload, uniswapPayload) => {
173
+ const coinGeckoPrices = await divineCoinGeckoPrices(coinGeckoPayload);
174
+ const uniswapPrices = await divineUniswapPrices(uniswapPayload);
175
175
  const prices = [uniswapPayload, coinGeckoPayload].some(import_exists3.exists);
176
176
  const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
177
177
  const timestamp = Date.now();
178
- return new import_payload_builder3.PayloadBuilder({ schema: schema3 }).fields({ assets, timestamp }).build();
178
+ return await new import_payload_builder3.PayloadBuilder({ schema: schema3 }).fields({ assets, timestamp }).build();
179
179
  };
180
180
 
181
181
  // src/Schema.ts
@@ -186,10 +186,10 @@ var CryptoMarketAssetDivinerConfigSchema = "network.xyo.crypto.asset.diviner.con
186
186
  var CryptoMarketAssetDiviner = class extends import_abstract_diviner.AbstractDiviner {
187
187
  static configSchemas = [CryptoMarketAssetDivinerConfigSchema];
188
188
  static targetSchema = import_crypto_asset_payload_plugin4.CryptoMarketAssetSchema;
189
- divineHandler(payloads) {
189
+ async divineHandler(payloads) {
190
190
  const coinGeckoPayload = payloads == null ? void 0 : payloads.find((payload) => (payload == null ? void 0 : payload.schema) === import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema);
191
191
  const uniswapPayload = payloads == null ? void 0 : payloads.find((payload) => (payload == null ? void 0 : payload.schema) === import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema);
192
- const result = divinePrices(coinGeckoPayload, uniswapPayload);
192
+ const result = await divinePrices(coinGeckoPayload, uniswapPayload);
193
193
  return [result];
194
194
  }
195
195
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Diviner.ts","../../src/lib/divinePrices.ts","../../src/lib/average.ts","../../src/lib/divineCoinGeckoPrices.ts","../../src/lib/divineUniswapPrices.ts","../../src/Schema.ts"],"sourcesContent":["import { CryptoMarketAssetPlugin } from './Plugin'\n\nexport * from './Diviner'\nexport * from './Schema'\n\nexport { CryptoMarketAssetPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default CryptoMarketAssetPlugin\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'\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","import { Promisable } from '@xylabs/promise'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner'\nimport { AnyConfigSchema, Module } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema'\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{\n static override configSchemas = [CryptoMarketAssetDivinerConfigSchema]\n static override targetSchema = CryptoMarketAssetSchema\n\n protected override divineHandler(payloads?: Payload[]): Promisable<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 = 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'\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","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"],"mappings":"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","names":["import_crypto_asset_payload_plugin","import_crypto_asset_payload_plugin","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","schema","schema"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Diviner.ts","../../src/lib/divinePrices.ts","../../src/lib/average.ts","../../src/lib/divineCoinGeckoPrices.ts","../../src/lib/divineUniswapPrices.ts","../../src/Schema.ts"],"sourcesContent":["import { CryptoMarketAssetPlugin } from './Plugin'\n\nexport * from './Diviner'\nexport * from './Schema'\n\nexport { CryptoMarketAssetPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default CryptoMarketAssetPlugin\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'\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","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner'\nimport { AnyConfigSchema, Module } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema'\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{\n static override configSchemas = [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'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices'\nimport { divineUniswapPrices } from './divineUniswapPrices'\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 = 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 = 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 { 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 = 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"],"mappings":"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","names":["import_crypto_asset_payload_plugin","import_crypto_asset_payload_plugin","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","schema","schema"]}
@@ -77,7 +77,7 @@ var otherValueExists = (value) => {
77
77
  const possiblyNumber = value[1];
78
78
  return typeof possiblyNumber === "number" && !isNaN(possiblyNumber);
79
79
  };
80
- var divineCoinGeckoPrices = (payload) => {
80
+ var divineCoinGeckoPrices = async (payload) => {
81
81
  const assets = payload && (payload == null ? void 0 : payload.assets) ? Object.fromEntries(
82
82
  Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
83
83
  const value = Object.fromEntries(
@@ -87,7 +87,7 @@ var divineCoinGeckoPrices = (payload) => {
87
87
  })
88
88
  ) : {};
89
89
  const timestamp = Date.now();
90
- return new PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
90
+ return await new PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
91
91
  };
92
92
 
93
93
  // src/lib/divineUniswapPrices.ts
@@ -120,7 +120,7 @@ var valuesFromTokenPairs = (tokensPairs, token) => {
120
120
  }).map((x) => [mapUniswapToken(x[0]), x[1]])
121
121
  );
122
122
  };
123
- var divineUniswapPrices = (uniswapPayload) => {
123
+ var divineUniswapPrices = async (uniswapPayload) => {
124
124
  let assets = {};
125
125
  if (uniswapPayload) {
126
126
  const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
@@ -134,18 +134,18 @@ var divineUniswapPrices = (uniswapPayload) => {
134
134
  );
135
135
  }
136
136
  const timestamp = Date.now();
137
- return new PayloadBuilder2({ schema: schema2 }).fields({ assets, timestamp }).build();
137
+ return await new PayloadBuilder2({ schema: schema2 }).fields({ assets, timestamp }).build();
138
138
  };
139
139
 
140
140
  // src/lib/divinePrices.ts
141
141
  var schema3 = CryptoMarketAssetSchema3;
142
- var divinePrices = (coinGeckoPayload, uniswapPayload) => {
143
- const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
144
- const uniswapPrices = divineUniswapPrices(uniswapPayload);
142
+ var divinePrices = async (coinGeckoPayload, uniswapPayload) => {
143
+ const coinGeckoPrices = await divineCoinGeckoPrices(coinGeckoPayload);
144
+ const uniswapPrices = await divineUniswapPrices(uniswapPayload);
145
145
  const prices = [uniswapPayload, coinGeckoPayload].some(exists3);
146
146
  const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
147
147
  const timestamp = Date.now();
148
- return new PayloadBuilder3({ schema: schema3 }).fields({ assets, timestamp }).build();
148
+ return await new PayloadBuilder3({ schema: schema3 }).fields({ assets, timestamp }).build();
149
149
  };
150
150
 
151
151
  // src/Schema.ts
@@ -156,10 +156,10 @@ var CryptoMarketAssetDivinerConfigSchema = "network.xyo.crypto.asset.diviner.con
156
156
  var CryptoMarketAssetDiviner = class extends AbstractDiviner {
157
157
  static configSchemas = [CryptoMarketAssetDivinerConfigSchema];
158
158
  static targetSchema = CryptoMarketAssetSchema4;
159
- divineHandler(payloads) {
159
+ async divineHandler(payloads) {
160
160
  const coinGeckoPayload = payloads == null ? void 0 : payloads.find((payload) => (payload == null ? void 0 : payload.schema) === CoingeckoCryptoMarketSchema);
161
161
  const uniswapPayload = payloads == null ? void 0 : payloads.find((payload) => (payload == null ? void 0 : payload.schema) === UniswapCryptoMarketSchema);
162
- const result = divinePrices(coinGeckoPayload, uniswapPayload);
162
+ const result = await divinePrices(coinGeckoPayload, uniswapPayload);
163
163
  return [result];
164
164
  }
165
165
  };