@xyo-network/react-price-forecast-plugin 2.61.0-rc.4 → 2.61.1

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 (145) hide show
  1. package/dist/browser/Plugin.cjs +270 -0
  2. package/dist/browser/Plugin.cjs.map +1 -0
  3. package/dist/browser/Plugin.d.cts +3 -0
  4. package/dist/browser/Plugin.d.cts.map +1 -0
  5. package/dist/browser/Plugin.js +244 -2
  6. package/dist/browser/Plugin.js.map +1 -1
  7. package/dist/browser/components/DetailsBox.cjs +254 -0
  8. package/dist/browser/components/DetailsBox.cjs.map +1 -0
  9. package/dist/browser/components/DetailsBox.d.cts +9 -0
  10. package/dist/browser/components/DetailsBox.d.cts.map +1 -0
  11. package/dist/browser/components/DetailsBox.js +204 -3
  12. package/dist/browser/components/DetailsBox.js.map +1 -1
  13. package/dist/browser/components/index.cjs +256 -0
  14. package/dist/browser/components/index.cjs.map +1 -0
  15. package/dist/browser/components/index.d.cts +2 -0
  16. package/dist/browser/components/index.d.cts.map +1 -0
  17. package/dist/browser/components/index.js +242 -1
  18. package/dist/browser/components/index.js.map +1 -1
  19. package/dist/browser/index.cjs +271 -0
  20. package/dist/browser/index.cjs.map +1 -0
  21. package/dist/browser/index.d.cts +3 -0
  22. package/dist/browser/index.d.cts.map +1 -0
  23. package/dist/browser/index.js +257 -2
  24. package/dist/browser/index.js.map +1 -1
  25. package/dist/browser/lib/DataLineStyles.cjs +31 -0
  26. package/dist/{node/lib/DataLineStyles.mjs.map → browser/lib/DataLineStyles.cjs.map} +1 -1
  27. package/dist/browser/lib/DataLineStyles.d.cts +5 -0
  28. package/dist/browser/lib/DataLineStyles.d.cts.map +1 -0
  29. package/dist/browser/lib/DataLineStyles.js +2 -1
  30. package/dist/browser/lib/DataLineStyles.js.map +1 -1
  31. package/dist/browser/lib/DataPointStyles.cjs +33 -0
  32. package/dist/{node/lib/DataPointStyles.mjs.map → browser/lib/DataPointStyles.cjs.map} +1 -1
  33. package/dist/browser/lib/DataPointStyles.d.cts +8 -0
  34. package/dist/browser/lib/DataPointStyles.d.cts.map +1 -0
  35. package/dist/browser/lib/DataPointStyles.js +2 -1
  36. package/dist/browser/lib/DataPointStyles.js.map +1 -1
  37. package/dist/browser/lib/ForecastLineChartConfigBuilder.cjs +225 -0
  38. package/dist/browser/lib/ForecastLineChartConfigBuilder.cjs.map +1 -0
  39. package/dist/browser/lib/ForecastLineChartConfigBuilder.d.cts +47 -0
  40. package/dist/browser/lib/ForecastLineChartConfigBuilder.d.cts.map +1 -0
  41. package/dist/browser/lib/ForecastLineChartConfigBuilder.js +80 -7
  42. package/dist/browser/lib/ForecastLineChartConfigBuilder.js.map +1 -1
  43. package/dist/browser/lib/MockSourcePayloads.cjs +45 -0
  44. package/dist/{node/lib/MockSourcePayloads.mjs.map → browser/lib/MockSourcePayloads.cjs.map} +1 -1
  45. package/dist/browser/lib/MockSourcePayloads.d.cts +18 -0
  46. package/dist/browser/lib/MockSourcePayloads.d.cts.map +1 -0
  47. package/dist/browser/lib/MockSourcePayloads.js +2 -1
  48. package/dist/browser/lib/MockSourcePayloads.js.map +1 -1
  49. package/dist/browser/lib/SourcePayloads.cjs +85 -0
  50. package/dist/browser/lib/SourcePayloads.cjs.map +1 -0
  51. package/dist/browser/lib/SourcePayloads.d.cts +30 -0
  52. package/dist/browser/lib/SourcePayloads.d.cts.map +1 -0
  53. package/dist/browser/lib/SourcePayloads.js +24 -3
  54. package/dist/browser/lib/SourcePayloads.js.map +1 -1
  55. package/dist/browser/lib/index.cjs +227 -0
  56. package/dist/browser/lib/index.cjs.map +1 -0
  57. package/dist/browser/lib/index.d.cts +4 -0
  58. package/dist/browser/lib/index.d.cts.map +1 -0
  59. package/dist/browser/lib/index.js +203 -3
  60. package/dist/browser/lib/index.js.map +1 -1
  61. package/dist/docs.json +23326 -0
  62. package/dist/node/Plugin.cjs +278 -0
  63. package/dist/node/Plugin.cjs.map +1 -0
  64. package/dist/node/Plugin.d.cts +3 -0
  65. package/dist/node/Plugin.d.cts.map +1 -0
  66. package/dist/node/Plugin.js +249 -27
  67. package/dist/node/Plugin.js.map +1 -1
  68. package/dist/node/components/DetailsBox.cjs +262 -0
  69. package/dist/node/components/DetailsBox.cjs.map +1 -0
  70. package/dist/node/components/DetailsBox.d.cts +9 -0
  71. package/dist/node/components/DetailsBox.d.cts.map +1 -0
  72. package/dist/node/components/DetailsBox.js +230 -39
  73. package/dist/node/components/DetailsBox.js.map +1 -1
  74. package/dist/node/components/index.cjs +264 -0
  75. package/dist/node/components/index.cjs.map +1 -0
  76. package/dist/node/components/index.d.cts +2 -0
  77. package/dist/node/components/index.d.cts.map +1 -0
  78. package/dist/node/components/index.js +244 -20
  79. package/dist/node/components/index.js.map +1 -1
  80. package/dist/node/index.cjs +280 -0
  81. package/dist/node/index.cjs.map +1 -0
  82. package/dist/node/index.d.cts +3 -0
  83. package/dist/node/index.d.cts.map +1 -0
  84. package/dist/node/index.js +259 -22
  85. package/dist/node/index.js.map +1 -1
  86. package/dist/node/lib/DataLineStyles.cjs +35 -0
  87. package/dist/node/lib/DataLineStyles.cjs.map +1 -0
  88. package/dist/node/lib/DataLineStyles.d.cts +5 -0
  89. package/dist/node/lib/DataLineStyles.d.cts.map +1 -0
  90. package/dist/node/lib/DataLineStyles.js +6 -29
  91. package/dist/node/lib/DataLineStyles.js.map +1 -1
  92. package/dist/node/lib/DataPointStyles.cjs +37 -0
  93. package/dist/node/lib/DataPointStyles.cjs.map +1 -0
  94. package/dist/node/lib/DataPointStyles.d.cts +8 -0
  95. package/dist/node/lib/DataPointStyles.d.cts.map +1 -0
  96. package/dist/node/lib/DataPointStyles.js +4 -27
  97. package/dist/node/lib/DataPointStyles.js.map +1 -1
  98. package/dist/node/lib/ForecastLineChartConfigBuilder.cjs +233 -0
  99. package/dist/node/lib/ForecastLineChartConfigBuilder.cjs.map +1 -0
  100. package/dist/node/lib/ForecastLineChartConfigBuilder.d.cts +47 -0
  101. package/dist/node/lib/ForecastLineChartConfigBuilder.d.cts.map +1 -0
  102. package/dist/node/lib/ForecastLineChartConfigBuilder.js +92 -39
  103. package/dist/node/lib/ForecastLineChartConfigBuilder.js.map +1 -1
  104. package/dist/node/lib/MockSourcePayloads.cjs +49 -0
  105. package/dist/node/lib/MockSourcePayloads.cjs.map +1 -0
  106. package/dist/node/lib/MockSourcePayloads.d.cts +18 -0
  107. package/dist/node/lib/MockSourcePayloads.d.cts.map +1 -0
  108. package/dist/node/lib/MockSourcePayloads.js +4 -27
  109. package/dist/node/lib/MockSourcePayloads.js.map +1 -1
  110. package/dist/node/lib/SourcePayloads.cjs +89 -0
  111. package/dist/node/lib/SourcePayloads.cjs.map +1 -0
  112. package/dist/node/lib/SourcePayloads.d.cts +30 -0
  113. package/dist/node/lib/SourcePayloads.d.cts.map +1 -0
  114. package/dist/node/lib/SourcePayloads.js +26 -29
  115. package/dist/node/lib/SourcePayloads.js.map +1 -1
  116. package/dist/node/lib/index.cjs +237 -0
  117. package/dist/node/lib/index.cjs.map +1 -0
  118. package/dist/node/lib/index.d.cts +4 -0
  119. package/dist/node/lib/index.d.cts.map +1 -0
  120. package/dist/node/lib/index.js +205 -24
  121. package/dist/node/lib/index.js.map +1 -1
  122. package/package.json +18 -18
  123. package/dist/browser/components/DetailsBox.stories.js +0 -64
  124. package/dist/browser/components/DetailsBox.stories.js.map +0 -1
  125. package/dist/node/Plugin.mjs +0 -17
  126. package/dist/node/Plugin.mjs.map +0 -1
  127. package/dist/node/components/DetailsBox.mjs +0 -42
  128. package/dist/node/components/DetailsBox.mjs.map +0 -1
  129. package/dist/node/components/DetailsBox.stories.js +0 -89
  130. package/dist/node/components/DetailsBox.stories.js.map +0 -1
  131. package/dist/node/components/DetailsBox.stories.mjs +0 -64
  132. package/dist/node/components/DetailsBox.stories.mjs.map +0 -1
  133. package/dist/node/components/index.mjs +0 -2
  134. package/dist/node/components/index.mjs.map +0 -1
  135. package/dist/node/index.mjs +0 -3
  136. package/dist/node/index.mjs.map +0 -1
  137. package/dist/node/lib/DataLineStyles.mjs +0 -9
  138. package/dist/node/lib/DataPointStyles.mjs +0 -11
  139. package/dist/node/lib/ForecastLineChartConfigBuilder.mjs +0 -129
  140. package/dist/node/lib/ForecastLineChartConfigBuilder.mjs.map +0 -1
  141. package/dist/node/lib/MockSourcePayloads.mjs +0 -23
  142. package/dist/node/lib/SourcePayloads.mjs +0 -41
  143. package/dist/node/lib/SourcePayloads.mjs.map +0 -1
  144. package/dist/node/lib/index.mjs +0 -4
  145. package/dist/node/lib/index.mjs.map +0 -1
@@ -1,30 +1,80 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ // src/lib/DataLineStyles.ts
2
+ import { alpha } from "@mui/material";
3
+ var DataLineStyles = (color) => ({
4
+ backgroundColor: color ? alpha(color, 0.5) : void 0,
5
+ borderColor: color
6
+ });
7
+
8
+ // src/lib/DataPointStyles.ts
9
+ var DataPointStyles = (pointHoverBackgroundColor) => ({
10
+ pointHitRadius: 20,
11
+ pointHoverBackgroundColor,
12
+ pointHoverRadius: 10,
13
+ pointRadius: 5,
14
+ pointStyle: "circle"
15
+ });
16
+
17
+ // src/lib/MockSourcePayloads.ts
18
+ var MockSourcePayloads = () => {
19
+ const tenMin = 6e5;
20
+ return [
21
+ {
22
+ baseFee: 38.90155387825,
23
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },
24
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
25
+ schema: "network.xyo.blockchain.ethereum.gas",
26
+ timestamp: Date.now() - tenMin
27
+ },
28
+ {
29
+ baseFee: 38.90155387825,
30
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },
31
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
32
+ schema: "network.xyo.blockchain.ethereum.gas",
33
+ timestamp: Date.now()
34
+ }
35
+ ];
9
36
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
37
+
38
+ // src/lib/SourcePayloads.ts
39
+ var SourcePayloads = class {
40
+ constructor(sourcePayloads) {
41
+ this.sourcePayloads = sourcePayloads;
42
+ }
43
+ sourcePrices = [];
44
+ get payloads() {
45
+ return this.sourcePayloads;
46
+ }
47
+ static async build(jsonPath) {
48
+ const sourcePayloads = await this.fetchSourcePayloads();
49
+ const instance = new this(sourcePayloads);
50
+ const paths = jsonPath.split(".");
51
+ instance.sourcePrices = sourcePayloads.map((payload) => {
52
+ return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) };
53
+ });
54
+ return instance;
55
+ }
56
+ // TODO - fetch from archivist
57
+ static async fetchSourcePayloads() {
58
+ const payloads = await Promise.resolve(MockSourcePayloads());
59
+ return payloads;
60
+ }
61
+ jsonPathTraverser(obj, path) {
62
+ let result = obj;
63
+ for (const key of path) {
64
+ if (key in result) {
65
+ const foundKey = key;
66
+ result = result[foundKey];
67
+ } else {
68
+ result = void 0;
69
+ break;
70
+ }
71
+ }
72
+ return result;
15
73
  }
16
- return to;
17
74
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var ForecastLineChartConfigBuilder_exports = {};
20
- __export(ForecastLineChartConfigBuilder_exports, {
21
- ForecastLineChartConfigBuilder: () => ForecastLineChartConfigBuilder
22
- });
23
- module.exports = __toCommonJS(ForecastLineChartConfigBuilder_exports);
24
- var import_DataLineStyles = require("./DataLineStyles");
25
- var import_DataPointStyles = require("./DataPointStyles");
26
- var import_SourcePayloads = require("./SourcePayloads");
27
- const defaultOptions = () => ({
75
+
76
+ // src/lib/ForecastLineChartConfigBuilder.ts
77
+ var defaultOptions = () => ({
28
78
  plugins: {
29
79
  legend: {
30
80
  position: "top"
@@ -32,7 +82,7 @@ const defaultOptions = () => ({
32
82
  },
33
83
  responsive: true
34
84
  });
35
- class ForecastLineChartConfigBuilder {
85
+ var ForecastLineChartConfigBuilder = class _ForecastLineChartConfigBuilder {
36
86
  constructor(theme, payload) {
37
87
  this.payload = payload;
38
88
  this.themeColors = this.parseTheme(theme);
@@ -50,8 +100,8 @@ class ForecastLineChartConfigBuilder {
50
100
  }
51
101
  }
52
102
  static async create(theme, payload, sourcePayloadConfig) {
53
- const instance = new ForecastLineChartConfigBuilder(theme, payload);
54
- await instance.build(sourcePayloadConfig?.fetch);
103
+ const instance = new _ForecastLineChartConfigBuilder(theme, payload);
104
+ await instance.build(sourcePayloadConfig == null ? void 0 : sourcePayloadConfig.fetch);
55
105
  instance.refreshValues();
56
106
  return instance;
57
107
  }
@@ -95,10 +145,11 @@ class ForecastLineChartConfigBuilder {
95
145
  };
96
146
  }
97
147
  generateScales() {
148
+ var _a, _b;
98
149
  return {
99
150
  x: {
100
151
  grid: {
101
- color: this.themeColors?.gridColor
152
+ color: (_a = this.themeColors) == null ? void 0 : _a.gridColor
102
153
  },
103
154
  time: {
104
155
  unit: "minute"
@@ -107,15 +158,16 @@ class ForecastLineChartConfigBuilder {
107
158
  },
108
159
  y: {
109
160
  grid: {
110
- color: this.themeColors?.gridColor
161
+ color: (_b = this.themeColors) == null ? void 0 : _b.gridColor
111
162
  }
112
163
  }
113
164
  };
114
165
  }
115
166
  generateTitle() {
167
+ var _a;
116
168
  return {
117
169
  display: true,
118
- text: `Gas Price Forecaster (GWEI over time from ${this.forecastPayload?.values[0].timestamp ? new Date(this.forecastPayload.values[0].timestamp).toLocaleDateString() : ""})`
170
+ text: `Gas Price Forecaster (GWEI over time from ${((_a = this.forecastPayload) == null ? void 0 : _a.values[0].timestamp) ? new Date(this.forecastPayload.values[0].timestamp).toLocaleDateString() : ""})`
119
171
  };
120
172
  }
121
173
  parseTheme(theme) {
@@ -127,27 +179,28 @@ class ForecastLineChartConfigBuilder {
127
179
  };
128
180
  }
129
181
  generateDataSetForecastData() {
182
+ var _a, _b;
130
183
  return {
131
184
  borderDash: [5],
132
185
  borderDashOffset: 0.5,
133
186
  data: this.forecastPayload.values.map((price) => ({ x: price.timestamp ?? 0, y: price.value })),
134
187
  label: "Forecast Price",
135
- ...(0, import_DataPointStyles.DataPointStyles)(this.themeColors?.dataSetColorPrimary),
136
- ...(0, import_DataLineStyles.DataLineStyles)(this.themeColors?.dataSetColorPrimary)
188
+ ...DataPointStyles((_a = this.themeColors) == null ? void 0 : _a.dataSetColorPrimary),
189
+ ...DataLineStyles((_b = this.themeColors) == null ? void 0 : _b.dataSetColorPrimary)
137
190
  };
138
191
  }
139
192
  async generateDataSetSourcePayloads() {
140
- const { sourcePrices } = await import_SourcePayloads.SourcePayloads.build("feePerGas.medium");
193
+ var _a, _b;
194
+ const { sourcePrices } = await SourcePayloads.build("feePerGas.medium");
141
195
  return {
142
196
  data: sourcePrices,
143
197
  label: "Source Prices",
144
- ...(0, import_DataLineStyles.DataLineStyles)(this.themeColors?.dataSetColorSecondary),
145
- ...(0, import_DataPointStyles.DataPointStyles)(this.themeColors?.dataSetColorSecondary)
198
+ ...DataLineStyles((_a = this.themeColors) == null ? void 0 : _a.dataSetColorSecondary),
199
+ ...DataPointStyles((_b = this.themeColors) == null ? void 0 : _b.dataSetColorSecondary)
146
200
  };
147
201
  }
148
- }
149
- // Annotate the CommonJS export names for ESM import in node:
150
- 0 && (module.exports = {
202
+ };
203
+ export {
151
204
  ForecastLineChartConfigBuilder
152
- });
205
+ };
153
206
  //# sourceMappingURL=ForecastLineChartConfigBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/ForecastLineChartConfigBuilder.ts"],"sourcesContent":["import { Theme } from '@mui/material'\nimport { ForecastPayload } from '@xyo-network/diviner-forecasting-model'\nimport { ChartData, ChartDataset, ChartOptions, LegendOptions, Point, ScaleChartOptions } from 'chart.js'\n// eslint-disable-next-line import/no-unresolved\nimport { _DeepPartialObject } from 'chart.js/dist/types/utils'\n\nimport { DataLineStyles } from './DataLineStyles'\nimport { DataPointStyles } from './DataPointStyles'\nimport { SourcePayloads } from './SourcePayloads'\n\ninterface SourcePayloadConfig {\n fetch: boolean\n sampleSize?: number\n}\n\ninterface ThemeColors {\n dataSetColorPrimary: string\n dataSetColorSecondary: string\n gridColor: string\n}\n\nconst defaultOptions: () => ChartOptions<'line'> = () => ({\n plugins: {\n legend: {\n position: 'top' as const,\n },\n },\n responsive: true,\n})\n\nexport class ForecastLineChartConfigBuilder {\n data: ChartData<'line'> = {\n datasets: [],\n }\n options: ChartOptions<'line'> = defaultOptions()\n themeColors: ThemeColors | undefined\n\n constructor(\n theme: Theme,\n private payload?: ForecastPayload,\n ) {\n this.themeColors = this.parseTheme(theme)\n }\n\n get forecastPayload() {\n if (this.payload) {\n return this.payload\n } else {\n throw Error('ForecastPayload was not defined')\n }\n }\n\n static async create(theme: Theme, payload?: ForecastPayload, sourcePayloadConfig?: SourcePayloadConfig) {\n const instance = new ForecastLineChartConfigBuilder(theme, payload)\n\n await instance.build(sourcePayloadConfig?.fetch)\n\n instance.refreshValues()\n\n return instance\n }\n\n async build(includeSources?: boolean) {\n this.buildOptions()\n await this.buildData(includeSources)\n return this\n }\n\n async buildData(includeSources?: boolean) {\n const forecastData = this.generateDataSetForecastData()\n\n const datasets: ChartDataset<'line'>[] = [forecastData]\n\n if (includeSources) {\n // build data from sources in forecastPayload\n const sourceData = await this.generateDataSetSourcePayloads()\n datasets.unshift(sourceData)\n\n // add last source point as first item in prediction to connect the lines\n const lastSourceDataItem = sourceData.data.at(-1) as Point\n forecastData.data.unshift(lastSourceDataItem)\n }\n\n this.data = {\n datasets,\n }\n\n return this\n }\n\n buildOptions() {\n if (this.options.plugins) {\n this.options.plugins.title = this.generateTitle()\n this.options.plugins.legend = this.generateLegend()\n }\n this.options.scales = this.generateScales()\n\n return this\n }\n\n refreshValues() {\n this.data = { ...this.data }\n this.options = { ...this.options }\n }\n\n protected generateLegend(): _DeepPartialObject<LegendOptions<'line'>> {\n return {\n labels: {\n pointStyle: 'circle',\n usePointStyle: true,\n },\n }\n }\n\n protected generateScales(): _DeepPartialObject<ScaleChartOptions<'line'>['scales']> {\n return {\n x: {\n grid: {\n color: this.themeColors?.gridColor,\n },\n time: {\n unit: 'minute',\n },\n type: 'time',\n },\n y: {\n grid: {\n color: this.themeColors?.gridColor,\n },\n },\n }\n }\n\n protected generateTitle() {\n return {\n display: true,\n text: `Gas Price Forecaster (GWEI over time from ${\n this.forecastPayload?.values[0].timestamp ? new Date(this.forecastPayload.values[0].timestamp).toLocaleDateString() : ''\n })`,\n }\n }\n\n protected parseTheme(theme: Theme) {\n const dark = theme.palette.mode === 'dark'\n return {\n dataSetColorPrimary: theme.palette.primary.light,\n dataSetColorSecondary: theme.palette.secondary.light,\n gridColor: dark ? theme.palette.grey[800] : theme.palette.grey[300],\n }\n }\n\n private generateDataSetForecastData(): ChartDataset<'line'> {\n return {\n borderDash: [5],\n borderDashOffset: 0.5,\n data: this.forecastPayload.values.map((price) => ({ x: price.timestamp ?? 0, y: price.value })),\n label: 'Forecast Price',\n ...DataPointStyles(this.themeColors?.dataSetColorPrimary),\n ...DataLineStyles(this.themeColors?.dataSetColorPrimary),\n }\n }\n\n private async generateDataSetSourcePayloads(): Promise<ChartDataset<'line'>> {\n const { sourcePrices } = await SourcePayloads.build('feePerGas.medium')\n return {\n data: sourcePrices,\n label: 'Source Prices',\n ...DataLineStyles(this.themeColors?.dataSetColorSecondary),\n ...DataPointStyles(this.themeColors?.dataSetColorSecondary),\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/DataLineStyles.ts","../../../src/lib/DataPointStyles.ts","../../../src/lib/MockSourcePayloads.ts","../../../src/lib/SourcePayloads.ts","../../../src/lib/ForecastLineChartConfigBuilder.ts"],"sourcesContent":["import { alpha } from '@mui/material'\n\nexport const DataLineStyles = (color?: string) => ({\n backgroundColor: color ? alpha(color, 0.5) : undefined,\n borderColor: color,\n})\n","export const DataPointStyles = (pointHoverBackgroundColor?: string) => ({\n pointHitRadius: 20,\n pointHoverBackgroundColor,\n pointHoverRadius: 10,\n pointRadius: 5,\n pointStyle: 'circle',\n})\n","export const MockSourcePayloads = () => {\n const tenMin = 600000\n return [\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n","import { Payload } from '@xyo-network/payload-model'\nimport { Point } from 'chart.js'\n\nimport { MockSourcePayloads } from './MockSourcePayloads'\n\nexport class SourcePayloads {\n sourcePrices: Point[] = []\n\n constructor(public sourcePayloads: Payload[]) {}\n\n get payloads() {\n return this.sourcePayloads\n }\n\n static async build(jsonPath: string) {\n const sourcePayloads = await this.fetchSourcePayloads()\n const instance = new this(sourcePayloads)\n\n const paths = jsonPath.split('.')\n instance.sourcePrices = sourcePayloads.map((payload) => {\n return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) }\n })\n return instance\n }\n\n // TODO - fetch from archivist\n static async fetchSourcePayloads() {\n const payloads = await Promise.resolve(MockSourcePayloads())\n return payloads\n }\n\n jsonPathTraverser(obj: Payload, path: string[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj\n for (const key of path) {\n if (key in result) {\n const foundKey = key as keyof typeof result\n result = result[foundKey]\n } else {\n result = undefined\n break\n }\n }\n\n return result\n }\n}\n","import { Theme } from '@mui/material'\nimport { ForecastPayload } from '@xyo-network/diviner-forecasting-model'\nimport { ChartData, ChartDataset, ChartOptions, LegendOptions, Point, ScaleChartOptions } from 'chart.js'\n// eslint-disable-next-line import/no-unresolved\nimport { _DeepPartialObject } from 'chart.js/dist/types/utils'\n\nimport { DataLineStyles } from './DataLineStyles'\nimport { DataPointStyles } from './DataPointStyles'\nimport { SourcePayloads } from './SourcePayloads'\n\ninterface SourcePayloadConfig {\n fetch: boolean\n sampleSize?: number\n}\n\ninterface ThemeColors {\n dataSetColorPrimary: string\n dataSetColorSecondary: string\n gridColor: string\n}\n\nconst defaultOptions: () => ChartOptions<'line'> = () => ({\n plugins: {\n legend: {\n position: 'top' as const,\n },\n },\n responsive: true,\n})\n\nexport class ForecastLineChartConfigBuilder {\n data: ChartData<'line'> = {\n datasets: [],\n }\n options: ChartOptions<'line'> = defaultOptions()\n themeColors: ThemeColors | undefined\n\n constructor(\n theme: Theme,\n private payload?: ForecastPayload,\n ) {\n this.themeColors = this.parseTheme(theme)\n }\n\n get forecastPayload() {\n if (this.payload) {\n return this.payload\n } else {\n throw Error('ForecastPayload was not defined')\n }\n }\n\n static async create(theme: Theme, payload?: ForecastPayload, sourcePayloadConfig?: SourcePayloadConfig) {\n const instance = new ForecastLineChartConfigBuilder(theme, payload)\n\n await instance.build(sourcePayloadConfig?.fetch)\n\n instance.refreshValues()\n\n return instance\n }\n\n async build(includeSources?: boolean) {\n this.buildOptions()\n await this.buildData(includeSources)\n return this\n }\n\n async buildData(includeSources?: boolean) {\n const forecastData = this.generateDataSetForecastData()\n\n const datasets: ChartDataset<'line'>[] = [forecastData]\n\n if (includeSources) {\n // build data from sources in forecastPayload\n const sourceData = await this.generateDataSetSourcePayloads()\n datasets.unshift(sourceData)\n\n // add last source point as first item in prediction to connect the lines\n const lastSourceDataItem = sourceData.data.at(-1) as Point\n forecastData.data.unshift(lastSourceDataItem)\n }\n\n this.data = {\n datasets,\n }\n\n return this\n }\n\n buildOptions() {\n if (this.options.plugins) {\n this.options.plugins.title = this.generateTitle()\n this.options.plugins.legend = this.generateLegend()\n }\n this.options.scales = this.generateScales()\n\n return this\n }\n\n refreshValues() {\n this.data = { ...this.data }\n this.options = { ...this.options }\n }\n\n protected generateLegend(): _DeepPartialObject<LegendOptions<'line'>> {\n return {\n labels: {\n pointStyle: 'circle',\n usePointStyle: true,\n },\n }\n }\n\n protected generateScales(): _DeepPartialObject<ScaleChartOptions<'line'>['scales']> {\n return {\n x: {\n grid: {\n color: this.themeColors?.gridColor,\n },\n time: {\n unit: 'minute',\n },\n type: 'time',\n },\n y: {\n grid: {\n color: this.themeColors?.gridColor,\n },\n },\n }\n }\n\n protected generateTitle() {\n return {\n display: true,\n text: `Gas Price Forecaster (GWEI over time from ${\n this.forecastPayload?.values[0].timestamp ? new Date(this.forecastPayload.values[0].timestamp).toLocaleDateString() : ''\n })`,\n }\n }\n\n protected parseTheme(theme: Theme) {\n const dark = theme.palette.mode === 'dark'\n return {\n dataSetColorPrimary: theme.palette.primary.light,\n dataSetColorSecondary: theme.palette.secondary.light,\n gridColor: dark ? theme.palette.grey[800] : theme.palette.grey[300],\n }\n }\n\n private generateDataSetForecastData(): ChartDataset<'line'> {\n return {\n borderDash: [5],\n borderDashOffset: 0.5,\n data: this.forecastPayload.values.map((price) => ({ x: price.timestamp ?? 0, y: price.value })),\n label: 'Forecast Price',\n ...DataPointStyles(this.themeColors?.dataSetColorPrimary),\n ...DataLineStyles(this.themeColors?.dataSetColorPrimary),\n }\n }\n\n private async generateDataSetSourcePayloads(): Promise<ChartDataset<'line'>> {\n const { sourcePrices } = await SourcePayloads.build('feePerGas.medium')\n return {\n data: sourcePrices,\n label: 'Source Prices',\n ...DataLineStyles(this.themeColors?.dataSetColorSecondary),\n ...DataPointStyles(this.themeColors?.dataSetColorSecondary),\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/MockSourcePayloads.ts
21
+ var MockSourcePayloads_exports = {};
22
+ __export(MockSourcePayloads_exports, {
23
+ MockSourcePayloads: () => MockSourcePayloads
24
+ });
25
+ module.exports = __toCommonJS(MockSourcePayloads_exports);
26
+ var MockSourcePayloads = () => {
27
+ const tenMin = 6e5;
28
+ return [
29
+ {
30
+ baseFee: 38.90155387825,
31
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },
32
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
33
+ schema: "network.xyo.blockchain.ethereum.gas",
34
+ timestamp: Date.now() - tenMin
35
+ },
36
+ {
37
+ baseFee: 38.90155387825,
38
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },
39
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
40
+ schema: "network.xyo.blockchain.ethereum.gas",
41
+ timestamp: Date.now()
42
+ }
43
+ ];
44
+ };
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ MockSourcePayloads
48
+ });
49
+ //# sourceMappingURL=MockSourcePayloads.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/MockSourcePayloads.ts"],"sourcesContent":["export const MockSourcePayloads = () => {\n const tenMin = 600000\n return [\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,qBAAqB,MAAM;AACtC,QAAM,SAAS;AACf,SAAO;AAAA,IACL;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,cAAc,UAAU,eAAe;AAAA,MACpG,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,KAAK,UAAU,eAAe;AAAA,MAC3F,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,18 @@
1
+ export declare const MockSourcePayloads: () => {
2
+ baseFee: number;
3
+ feePerGas: {
4
+ high: number;
5
+ low: number;
6
+ medium: number;
7
+ veryHigh: number;
8
+ };
9
+ priorityFeePerGas: {
10
+ high: number;
11
+ low: number;
12
+ medium: number;
13
+ veryHigh: number;
14
+ };
15
+ schema: string;
16
+ timestamp: number;
17
+ }[];
18
+ //# sourceMappingURL=MockSourcePayloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockSourcePayloads.d.ts","sourceRoot":"","sources":["../../../src/lib/MockSourcePayloads.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;GAkB9B,CAAA"}
@@ -1,27 +1,5 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var MockSourcePayloads_exports = {};
20
- __export(MockSourcePayloads_exports, {
21
- MockSourcePayloads: () => MockSourcePayloads
22
- });
23
- module.exports = __toCommonJS(MockSourcePayloads_exports);
24
- const MockSourcePayloads = () => {
1
+ // src/lib/MockSourcePayloads.ts
2
+ var MockSourcePayloads = () => {
25
3
  const tenMin = 6e5;
26
4
  return [
27
5
  {
@@ -40,8 +18,7 @@ const MockSourcePayloads = () => {
40
18
  }
41
19
  ];
42
20
  };
43
- // Annotate the CommonJS export names for ESM import in node:
44
- 0 && (module.exports = {
21
+ export {
45
22
  MockSourcePayloads
46
- });
23
+ };
47
24
  //# sourceMappingURL=MockSourcePayloads.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/MockSourcePayloads.ts"],"sourcesContent":["export const MockSourcePayloads = () => {\n const tenMin = 600000\n return [\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,qBAAqB,MAAM;AACtC,QAAM,SAAS;AACf,SAAO;AAAA,IACL;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,cAAc,UAAU,eAAe;AAAA,MACpG,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,KAAK,UAAU,eAAe;AAAA,MAC3F,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/MockSourcePayloads.ts"],"sourcesContent":["export const MockSourcePayloads = () => {\n const tenMin = 600000\n return [\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n"],"mappings":";AAAO,IAAM,qBAAqB,MAAM;AACtC,QAAM,SAAS;AACf,SAAO;AAAA,IACL;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,cAAc,UAAU,eAAe;AAAA,MACpG,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,KAAK,UAAU,eAAe;AAAA,MAC3F,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/SourcePayloads.ts
21
+ var SourcePayloads_exports = {};
22
+ __export(SourcePayloads_exports, {
23
+ SourcePayloads: () => SourcePayloads
24
+ });
25
+ module.exports = __toCommonJS(SourcePayloads_exports);
26
+
27
+ // src/lib/MockSourcePayloads.ts
28
+ var MockSourcePayloads = () => {
29
+ const tenMin = 6e5;
30
+ return [
31
+ {
32
+ baseFee: 38.90155387825,
33
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },
34
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
35
+ schema: "network.xyo.blockchain.ethereum.gas",
36
+ timestamp: Date.now() - tenMin
37
+ },
38
+ {
39
+ baseFee: 38.90155387825,
40
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },
41
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
42
+ schema: "network.xyo.blockchain.ethereum.gas",
43
+ timestamp: Date.now()
44
+ }
45
+ ];
46
+ };
47
+
48
+ // src/lib/SourcePayloads.ts
49
+ var SourcePayloads = class {
50
+ constructor(sourcePayloads) {
51
+ this.sourcePayloads = sourcePayloads;
52
+ }
53
+ sourcePrices = [];
54
+ get payloads() {
55
+ return this.sourcePayloads;
56
+ }
57
+ static async build(jsonPath) {
58
+ const sourcePayloads = await this.fetchSourcePayloads();
59
+ const instance = new this(sourcePayloads);
60
+ const paths = jsonPath.split(".");
61
+ instance.sourcePrices = sourcePayloads.map((payload) => {
62
+ return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) };
63
+ });
64
+ return instance;
65
+ }
66
+ // TODO - fetch from archivist
67
+ static async fetchSourcePayloads() {
68
+ const payloads = await Promise.resolve(MockSourcePayloads());
69
+ return payloads;
70
+ }
71
+ jsonPathTraverser(obj, path) {
72
+ let result = obj;
73
+ for (const key of path) {
74
+ if (key in result) {
75
+ const foundKey = key;
76
+ result = result[foundKey];
77
+ } else {
78
+ result = void 0;
79
+ break;
80
+ }
81
+ }
82
+ return result;
83
+ }
84
+ };
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ SourcePayloads
88
+ });
89
+ //# sourceMappingURL=SourcePayloads.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/SourcePayloads.ts","../../../src/lib/MockSourcePayloads.ts"],"sourcesContent":["import { Payload } from '@xyo-network/payload-model'\nimport { Point } from 'chart.js'\n\nimport { MockSourcePayloads } from './MockSourcePayloads'\n\nexport class SourcePayloads {\n sourcePrices: Point[] = []\n\n constructor(public sourcePayloads: Payload[]) {}\n\n get payloads() {\n return this.sourcePayloads\n }\n\n static async build(jsonPath: string) {\n const sourcePayloads = await this.fetchSourcePayloads()\n const instance = new this(sourcePayloads)\n\n const paths = jsonPath.split('.')\n instance.sourcePrices = sourcePayloads.map((payload) => {\n return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) }\n })\n return instance\n }\n\n // TODO - fetch from archivist\n static async fetchSourcePayloads() {\n const payloads = await Promise.resolve(MockSourcePayloads())\n return payloads\n }\n\n jsonPathTraverser(obj: Payload, path: string[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj\n for (const key of path) {\n if (key in result) {\n const foundKey = key as keyof typeof result\n result = result[foundKey]\n } else {\n result = undefined\n break\n }\n }\n\n return result\n }\n}\n","export const MockSourcePayloads = () => {\n const tenMin = 600000\n return [\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,qBAAqB,MAAM;AACtC,QAAM,SAAS;AACf,SAAO;AAAA,IACL;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,cAAc,UAAU,eAAe;AAAA,MACpG,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,KAAK,UAAU,eAAe;AAAA,MAC3F,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAAA,EACF;AACF;;;ADbO,IAAM,iBAAN,MAAqB;AAAA,EAG1B,YAAmB,gBAA2B;AAA3B;AAAA,EAA4B;AAAA,EAF/C,eAAwB,CAAC;AAAA,EAIzB,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAAa,MAAM,UAAkB;AACnC,UAAM,iBAAiB,MAAM,KAAK,oBAAoB;AACtD,UAAM,WAAW,IAAI,KAAK,cAAc;AAExC,UAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,aAAS,eAAe,eAAe,IAAI,CAAC,YAAY;AACtD,aAAO,EAAE,GAAG,QAAQ,WAAW,GAAG,SAAS,kBAAkB,SAAS,KAAK,EAAE;AAAA,IAC/E,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,aAAa,sBAAsB;AACjC,UAAM,WAAW,MAAM,QAAQ,QAAQ,mBAAmB,CAAC;AAC3D,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB,KAAc,MAAgB;AAE9C,QAAI,SAAc;AAClB,eAAW,OAAO,MAAM;AACtB,UAAI,OAAO,QAAQ;AACjB,cAAM,WAAW;AACjB,iBAAS,OAAO,QAAQ;AAAA,MAC1B,OAAO;AACL,iBAAS;AACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,30 @@
1
+ import { Payload } from '@xyo-network/payload-model';
2
+ import { Point } from 'chart.js';
3
+ export declare class SourcePayloads {
4
+ sourcePayloads: Payload[];
5
+ sourcePrices: Point[];
6
+ constructor(sourcePayloads: Payload[]);
7
+ get payloads(): ({
8
+ schema: string;
9
+ } & import("@xyo-network/payload-model").PayloadFields)[];
10
+ static build(jsonPath: string): Promise<SourcePayloads>;
11
+ static fetchSourcePayloads(): Promise<{
12
+ baseFee: number;
13
+ feePerGas: {
14
+ high: number;
15
+ low: number;
16
+ medium: number;
17
+ veryHigh: number;
18
+ };
19
+ priorityFeePerGas: {
20
+ high: number;
21
+ low: number;
22
+ medium: number;
23
+ veryHigh: number;
24
+ };
25
+ schema: string;
26
+ timestamp: number;
27
+ }[]>;
28
+ jsonPathTraverser(obj: Payload, path: string[]): any;
29
+ }
30
+ //# sourceMappingURL=SourcePayloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourcePayloads.d.ts","sourceRoot":"","sources":["../../../src/lib/SourcePayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIhC,qBAAa,cAAc;IAGN,cAAc,EAAE,OAAO,EAAE;IAF5C,YAAY,EAAE,KAAK,EAAE,CAAK;gBAEP,cAAc,EAAE,OAAO,EAAE;IAE5C,IAAI,QAAQ;;8DAEX;WAEY,KAAK,CAAC,QAAQ,EAAE,MAAM;WAYtB,mBAAmB;;;;;;;;;;;;;;;;;IAKhC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CAe/C"}
@@ -1,28 +1,26 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
1
+ // src/lib/MockSourcePayloads.ts
2
+ var MockSourcePayloads = () => {
3
+ const tenMin = 6e5;
4
+ return [
5
+ {
6
+ baseFee: 38.90155387825,
7
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },
8
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
9
+ schema: "network.xyo.blockchain.ethereum.gas",
10
+ timestamp: Date.now() - tenMin
11
+ },
12
+ {
13
+ baseFee: 38.90155387825,
14
+ feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },
15
+ priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
16
+ schema: "network.xyo.blockchain.ethereum.gas",
17
+ timestamp: Date.now()
18
+ }
19
+ ];
17
20
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var SourcePayloads_exports = {};
20
- __export(SourcePayloads_exports, {
21
- SourcePayloads: () => SourcePayloads
22
- });
23
- module.exports = __toCommonJS(SourcePayloads_exports);
24
- var import_MockSourcePayloads = require("./MockSourcePayloads");
25
- class SourcePayloads {
21
+
22
+ // src/lib/SourcePayloads.ts
23
+ var SourcePayloads = class {
26
24
  constructor(sourcePayloads) {
27
25
  this.sourcePayloads = sourcePayloads;
28
26
  }
@@ -41,7 +39,7 @@ class SourcePayloads {
41
39
  }
42
40
  // TODO - fetch from archivist
43
41
  static async fetchSourcePayloads() {
44
- const payloads = await Promise.resolve((0, import_MockSourcePayloads.MockSourcePayloads)());
42
+ const payloads = await Promise.resolve(MockSourcePayloads());
45
43
  return payloads;
46
44
  }
47
45
  jsonPathTraverser(obj, path) {
@@ -57,9 +55,8 @@ class SourcePayloads {
57
55
  }
58
56
  return result;
59
57
  }
60
- }
61
- // Annotate the CommonJS export names for ESM import in node:
62
- 0 && (module.exports = {
58
+ };
59
+ export {
63
60
  SourcePayloads
64
- });
61
+ };
65
62
  //# sourceMappingURL=SourcePayloads.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/SourcePayloads.ts"],"sourcesContent":["import { Payload } from '@xyo-network/payload-model'\nimport { Point } from 'chart.js'\n\nimport { MockSourcePayloads } from './MockSourcePayloads'\n\nexport class SourcePayloads {\n sourcePrices: Point[] = []\n\n constructor(public sourcePayloads: Payload[]) {}\n\n get payloads() {\n return this.sourcePayloads\n }\n\n static async build(jsonPath: string) {\n const sourcePayloads = await this.fetchSourcePayloads()\n const instance = new this(sourcePayloads)\n\n const paths = jsonPath.split('.')\n instance.sourcePrices = sourcePayloads.map((payload) => {\n return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) }\n })\n return instance\n }\n\n // TODO - fetch from archivist\n static async fetchSourcePayloads() {\n const payloads = await Promise.resolve(MockSourcePayloads())\n return payloads\n }\n\n jsonPathTraverser(obj: Payload, path: string[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj\n for (const key of path) {\n if (key in result) {\n const foundKey = key as keyof typeof result\n result = result[foundKey]\n } else {\n result = undefined\n break\n }\n }\n\n return result\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,gCAAmC;AAE5B,MAAM,eAAe;AAAA,EAG1B,YAAmB,gBAA2B;AAA3B;AAAA,EAA4B;AAAA,EAF/C,eAAwB,CAAC;AAAA,EAIzB,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAAa,MAAM,UAAkB;AACnC,UAAM,iBAAiB,MAAM,KAAK,oBAAoB;AACtD,UAAM,WAAW,IAAI,KAAK,cAAc;AAExC,UAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,aAAS,eAAe,eAAe,IAAI,CAAC,YAAY;AACtD,aAAO,EAAE,GAAG,QAAQ,WAAW,GAAG,SAAS,kBAAkB,SAAS,KAAK,EAAE;AAAA,IAC/E,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,aAAa,sBAAsB;AACjC,UAAM,WAAW,MAAM,QAAQ,YAAQ,8CAAmB,CAAC;AAC3D,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB,KAAc,MAAgB;AAE9C,QAAI,SAAc;AAClB,eAAW,OAAO,MAAM;AACtB,UAAI,OAAO,QAAQ;AACjB,cAAM,WAAW;AACjB,iBAAS,OAAO,QAAQ;AAAA,MAC1B,OAAO;AACL,iBAAS;AACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/MockSourcePayloads.ts","../../../src/lib/SourcePayloads.ts"],"sourcesContent":["export const MockSourcePayloads = () => {\n const tenMin = 600000\n return [\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.90155387825,\n feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },\n priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n","import { Payload } from '@xyo-network/payload-model'\nimport { Point } from 'chart.js'\n\nimport { MockSourcePayloads } from './MockSourcePayloads'\n\nexport class SourcePayloads {\n sourcePrices: Point[] = []\n\n constructor(public sourcePayloads: Payload[]) {}\n\n get payloads() {\n return this.sourcePayloads\n }\n\n static async build(jsonPath: string) {\n const sourcePayloads = await this.fetchSourcePayloads()\n const instance = new this(sourcePayloads)\n\n const paths = jsonPath.split('.')\n instance.sourcePrices = sourcePayloads.map((payload) => {\n return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) }\n })\n return instance\n }\n\n // TODO - fetch from archivist\n static async fetchSourcePayloads() {\n const payloads = await Promise.resolve(MockSourcePayloads())\n return payloads\n }\n\n jsonPathTraverser(obj: Payload, path: string[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj\n for (const key of path) {\n if (key in result) {\n const foundKey = key as keyof typeof result\n result = result[foundKey]\n } else {\n result = undefined\n break\n }\n }\n\n return result\n }\n}\n"],"mappings":";AAAO,IAAM,qBAAqB,MAAM;AACtC,QAAM,SAAS;AACf,SAAO;AAAA,IACL;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,cAAc,UAAU,eAAe;AAAA,MACpG,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,WAAW,EAAE,MAAM,eAAe,KAAK,cAAc,QAAQ,KAAK,UAAU,eAAe;AAAA,MAC3F,mBAAmB,EAAE,MAAM,oBAAoB,KAAK,sBAAsB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,MACrH,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAAA,EACF;AACF;;;ACbO,IAAM,iBAAN,MAAqB;AAAA,EAG1B,YAAmB,gBAA2B;AAA3B;AAAA,EAA4B;AAAA,EAF/C,eAAwB,CAAC;AAAA,EAIzB,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAAa,MAAM,UAAkB;AACnC,UAAM,iBAAiB,MAAM,KAAK,oBAAoB;AACtD,UAAM,WAAW,IAAI,KAAK,cAAc;AAExC,UAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,aAAS,eAAe,eAAe,IAAI,CAAC,YAAY;AACtD,aAAO,EAAE,GAAG,QAAQ,WAAW,GAAG,SAAS,kBAAkB,SAAS,KAAK,EAAE;AAAA,IAC/E,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,aAAa,sBAAsB;AACjC,UAAM,WAAW,MAAM,QAAQ,QAAQ,mBAAmB,CAAC;AAC3D,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB,KAAc,MAAgB;AAE9C,QAAI,SAAc;AAClB,eAAW,OAAO,MAAM;AACtB,UAAI,OAAO,QAAQ;AACjB,cAAM,WAAW;AACjB,iBAAS,OAAO,QAAQ;AAAA,MAC1B,OAAO;AACL,iBAAS;AACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}