@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.
- package/dist/browser/Plugin.cjs +270 -0
- package/dist/browser/Plugin.cjs.map +1 -0
- package/dist/browser/Plugin.d.cts +3 -0
- package/dist/browser/Plugin.d.cts.map +1 -0
- package/dist/browser/Plugin.js +244 -2
- package/dist/browser/Plugin.js.map +1 -1
- package/dist/browser/components/DetailsBox.cjs +254 -0
- package/dist/browser/components/DetailsBox.cjs.map +1 -0
- package/dist/browser/components/DetailsBox.d.cts +9 -0
- package/dist/browser/components/DetailsBox.d.cts.map +1 -0
- package/dist/browser/components/DetailsBox.js +204 -3
- package/dist/browser/components/DetailsBox.js.map +1 -1
- package/dist/browser/components/index.cjs +256 -0
- package/dist/browser/components/index.cjs.map +1 -0
- package/dist/browser/components/index.d.cts +2 -0
- package/dist/browser/components/index.d.cts.map +1 -0
- package/dist/browser/components/index.js +242 -1
- package/dist/browser/components/index.js.map +1 -1
- package/dist/browser/index.cjs +271 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts +3 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.js +257 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/lib/DataLineStyles.cjs +31 -0
- package/dist/{node/lib/DataLineStyles.mjs.map → browser/lib/DataLineStyles.cjs.map} +1 -1
- package/dist/browser/lib/DataLineStyles.d.cts +5 -0
- package/dist/browser/lib/DataLineStyles.d.cts.map +1 -0
- package/dist/browser/lib/DataLineStyles.js +2 -1
- package/dist/browser/lib/DataLineStyles.js.map +1 -1
- package/dist/browser/lib/DataPointStyles.cjs +33 -0
- package/dist/{node/lib/DataPointStyles.mjs.map → browser/lib/DataPointStyles.cjs.map} +1 -1
- package/dist/browser/lib/DataPointStyles.d.cts +8 -0
- package/dist/browser/lib/DataPointStyles.d.cts.map +1 -0
- package/dist/browser/lib/DataPointStyles.js +2 -1
- package/dist/browser/lib/DataPointStyles.js.map +1 -1
- package/dist/browser/lib/ForecastLineChartConfigBuilder.cjs +225 -0
- package/dist/browser/lib/ForecastLineChartConfigBuilder.cjs.map +1 -0
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.cts +47 -0
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.cts.map +1 -0
- package/dist/browser/lib/ForecastLineChartConfigBuilder.js +80 -7
- package/dist/browser/lib/ForecastLineChartConfigBuilder.js.map +1 -1
- package/dist/browser/lib/MockSourcePayloads.cjs +45 -0
- package/dist/{node/lib/MockSourcePayloads.mjs.map → browser/lib/MockSourcePayloads.cjs.map} +1 -1
- package/dist/browser/lib/MockSourcePayloads.d.cts +18 -0
- package/dist/browser/lib/MockSourcePayloads.d.cts.map +1 -0
- package/dist/browser/lib/MockSourcePayloads.js +2 -1
- package/dist/browser/lib/MockSourcePayloads.js.map +1 -1
- package/dist/browser/lib/SourcePayloads.cjs +85 -0
- package/dist/browser/lib/SourcePayloads.cjs.map +1 -0
- package/dist/browser/lib/SourcePayloads.d.cts +30 -0
- package/dist/browser/lib/SourcePayloads.d.cts.map +1 -0
- package/dist/browser/lib/SourcePayloads.js +24 -3
- package/dist/browser/lib/SourcePayloads.js.map +1 -1
- package/dist/browser/lib/index.cjs +227 -0
- package/dist/browser/lib/index.cjs.map +1 -0
- package/dist/browser/lib/index.d.cts +4 -0
- package/dist/browser/lib/index.d.cts.map +1 -0
- package/dist/browser/lib/index.js +203 -3
- package/dist/browser/lib/index.js.map +1 -1
- package/dist/docs.json +23326 -0
- package/dist/node/Plugin.cjs +278 -0
- package/dist/node/Plugin.cjs.map +1 -0
- package/dist/node/Plugin.d.cts +3 -0
- package/dist/node/Plugin.d.cts.map +1 -0
- package/dist/node/Plugin.js +249 -27
- package/dist/node/Plugin.js.map +1 -1
- package/dist/node/components/DetailsBox.cjs +262 -0
- package/dist/node/components/DetailsBox.cjs.map +1 -0
- package/dist/node/components/DetailsBox.d.cts +9 -0
- package/dist/node/components/DetailsBox.d.cts.map +1 -0
- package/dist/node/components/DetailsBox.js +230 -39
- package/dist/node/components/DetailsBox.js.map +1 -1
- package/dist/node/components/index.cjs +264 -0
- package/dist/node/components/index.cjs.map +1 -0
- package/dist/node/components/index.d.cts +2 -0
- package/dist/node/components/index.d.cts.map +1 -0
- package/dist/node/components/index.js +244 -20
- package/dist/node/components/index.js.map +1 -1
- package/dist/node/index.cjs +280 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +3 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.js +259 -22
- package/dist/node/index.js.map +1 -1
- package/dist/node/lib/DataLineStyles.cjs +35 -0
- package/dist/node/lib/DataLineStyles.cjs.map +1 -0
- package/dist/node/lib/DataLineStyles.d.cts +5 -0
- package/dist/node/lib/DataLineStyles.d.cts.map +1 -0
- package/dist/node/lib/DataLineStyles.js +6 -29
- package/dist/node/lib/DataLineStyles.js.map +1 -1
- package/dist/node/lib/DataPointStyles.cjs +37 -0
- package/dist/node/lib/DataPointStyles.cjs.map +1 -0
- package/dist/node/lib/DataPointStyles.d.cts +8 -0
- package/dist/node/lib/DataPointStyles.d.cts.map +1 -0
- package/dist/node/lib/DataPointStyles.js +4 -27
- package/dist/node/lib/DataPointStyles.js.map +1 -1
- package/dist/node/lib/ForecastLineChartConfigBuilder.cjs +233 -0
- package/dist/node/lib/ForecastLineChartConfigBuilder.cjs.map +1 -0
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.cts +47 -0
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.cts.map +1 -0
- package/dist/node/lib/ForecastLineChartConfigBuilder.js +92 -39
- package/dist/node/lib/ForecastLineChartConfigBuilder.js.map +1 -1
- package/dist/node/lib/MockSourcePayloads.cjs +49 -0
- package/dist/node/lib/MockSourcePayloads.cjs.map +1 -0
- package/dist/node/lib/MockSourcePayloads.d.cts +18 -0
- package/dist/node/lib/MockSourcePayloads.d.cts.map +1 -0
- package/dist/node/lib/MockSourcePayloads.js +4 -27
- package/dist/node/lib/MockSourcePayloads.js.map +1 -1
- package/dist/node/lib/SourcePayloads.cjs +89 -0
- package/dist/node/lib/SourcePayloads.cjs.map +1 -0
- package/dist/node/lib/SourcePayloads.d.cts +30 -0
- package/dist/node/lib/SourcePayloads.d.cts.map +1 -0
- package/dist/node/lib/SourcePayloads.js +26 -29
- package/dist/node/lib/SourcePayloads.js.map +1 -1
- package/dist/node/lib/index.cjs +237 -0
- package/dist/node/lib/index.cjs.map +1 -0
- package/dist/node/lib/index.d.cts +4 -0
- package/dist/node/lib/index.d.cts.map +1 -0
- package/dist/node/lib/index.js +205 -24
- package/dist/node/lib/index.js.map +1 -1
- package/package.json +18 -18
- package/dist/browser/components/DetailsBox.stories.js +0 -64
- package/dist/browser/components/DetailsBox.stories.js.map +0 -1
- package/dist/node/Plugin.mjs +0 -17
- package/dist/node/Plugin.mjs.map +0 -1
- package/dist/node/components/DetailsBox.mjs +0 -42
- package/dist/node/components/DetailsBox.mjs.map +0 -1
- package/dist/node/components/DetailsBox.stories.js +0 -89
- package/dist/node/components/DetailsBox.stories.js.map +0 -1
- package/dist/node/components/DetailsBox.stories.mjs +0 -64
- package/dist/node/components/DetailsBox.stories.mjs.map +0 -1
- package/dist/node/components/index.mjs +0 -2
- package/dist/node/components/index.mjs.map +0 -1
- package/dist/node/index.mjs +0 -3
- package/dist/node/index.mjs.map +0 -1
- package/dist/node/lib/DataLineStyles.mjs +0 -9
- package/dist/node/lib/DataPointStyles.mjs +0 -11
- package/dist/node/lib/ForecastLineChartConfigBuilder.mjs +0 -129
- package/dist/node/lib/ForecastLineChartConfigBuilder.mjs.map +0 -1
- package/dist/node/lib/MockSourcePayloads.mjs +0 -23
- package/dist/node/lib/SourcePayloads.mjs +0 -41
- package/dist/node/lib/SourcePayloads.mjs.map +0 -1
- package/dist/node/lib/index.mjs +0 -4
- package/dist/node/lib/index.mjs.map +0 -1
|
@@ -1,30 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
|
54
|
-
await instance.build(sourcePayloadConfig
|
|
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
|
|
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
|
|
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
|
|
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
|
-
...(
|
|
136
|
-
...(
|
|
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
|
-
|
|
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
|
-
...(
|
|
145
|
-
...(
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
var
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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(
|
|
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
|
-
|
|
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":"
|
|
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":[]}
|