@xyo-network/gas-price-plugin 2.99.5 → 2.99.6

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.
@@ -1,11 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __getProtoOf = Object.getPrototypeOf;
3
- var __reflectGet = Reflect.get;
4
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
- var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
8
-
9
1
  // src/Diviner.ts
10
2
  import { AbstractDiviner } from "@xyo-network/diviner-abstract";
11
3
  import { EthereumGasSchema as EthereumGasSchema2 } from "@xyo-network/gas-price-payload-plugin";
@@ -16,11 +8,11 @@ import { PayloadBuilder } from "@xyo-network/payload-builder";
16
8
 
17
9
  // src/lib/average.ts
18
10
  import { exists } from "@xylabs/exists";
19
- var listAverage = /* @__PURE__ */ __name((x) => (x == null ? void 0 : x.length) ? x.reduce((a, b) => a + b) / x.length : void 0, "listAverage");
20
- var averageProperty = /* @__PURE__ */ __name((data, propertyExpression) => {
11
+ var listAverage = (x) => (x == null ? void 0 : x.length) ? x.reduce((a, b) => a + b) / x.length : void 0;
12
+ var averageProperty = (data, propertyExpression) => {
21
13
  return listAverage(data.map(propertyExpression).filter(exists));
22
- }, "averageProperty");
23
- var average = /* @__PURE__ */ __name((input) => {
14
+ };
15
+ var average = (input) => {
24
16
  const data = (input == null ? void 0 : input.filter(exists)) || [];
25
17
  const averaged = {
26
18
  baseFee: averageProperty(data, (x) => x.baseFee),
@@ -38,68 +30,53 @@ var average = /* @__PURE__ */ __name((input) => {
38
30
  }
39
31
  };
40
32
  return averaged;
41
- }, "average");
33
+ };
42
34
 
43
35
  // src/lib/identities/isEthereumGasBlocknativePayload.ts
44
36
  import { EthereumGasBlocknativeSchema } from "@xyo-network/blocknative-ethereum-gas-payload-plugin";
45
- var isEthereumGasBlocknativePayload = /* @__PURE__ */ __name((payload) => {
37
+ var isEthereumGasBlocknativePayload = (payload) => {
46
38
  return (payload == null ? void 0 : payload.schema) === EthereumGasBlocknativeSchema;
47
- }, "isEthereumGasBlocknativePayload");
39
+ };
48
40
 
49
41
  // src/lib/identities/isEthereumGasEtherchainV2Payload.ts
50
42
  import { EthereumGasEtherchainV2Schema } from "@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins";
51
- var isEthereumGasEtherchainV2Payload = /* @__PURE__ */ __name((payload) => {
43
+ var isEthereumGasEtherchainV2Payload = (payload) => {
52
44
  return (payload == null ? void 0 : payload.schema) === EthereumGasEtherchainV2Schema;
53
- }, "isEthereumGasEtherchainV2Payload");
45
+ };
54
46
 
55
47
  // src/lib/identities/isEthereumGasEtherscanPayload.ts
56
48
  import { EthereumGasEtherscanSchema } from "@xyo-network/etherscan-ethereum-gas-payload-plugin";
57
- var isEthereumGasEtherscanPayload = /* @__PURE__ */ __name((payload) => {
49
+ var isEthereumGasEtherscanPayload = (payload) => {
58
50
  return (payload == null ? void 0 : payload.schema) === EthereumGasEtherscanSchema;
59
- }, "isEthereumGasEtherscanPayload");
51
+ };
60
52
 
61
53
  // src/lib/identities/isEthereumGasEthersPayload.ts
62
54
  import { EthereumGasEthersSchema } from "@xyo-network/ethers-ethereum-gas-payload-plugin";
63
- var isEthereumGasEthersPayload = /* @__PURE__ */ __name((payload) => {
55
+ var isEthereumGasEthersPayload = (payload) => {
64
56
  return (payload == null ? void 0 : payload.schema) === EthereumGasEthersSchema;
65
- }, "isEthereumGasEthersPayload");
57
+ };
66
58
 
67
59
  // src/lib/identities/isEthereumGasEthgasstationPayload.ts
68
60
  import { EthereumGasEthgasstationSchema } from "@xyo-network/ethgasstation-ethereum-gas-payload-plugin";
69
- var isEthereumGasEthgasstationPayload = /* @__PURE__ */ __name((payload) => {
61
+ var isEthereumGasEthgasstationPayload = (payload) => {
70
62
  return (payload == null ? void 0 : payload.schema) === EthereumGasEthgasstationSchema;
71
- }, "isEthereumGasEthgasstationPayload");
63
+ };
72
64
 
73
65
  // src/lib/transforms/transformGasFromBlocknative.ts
74
66
  import { linear } from "regression";
75
- var getBaseFee = /* @__PURE__ */ __name((payload) => {
67
+ var getBaseFee = (payload) => {
76
68
  var _a, _b;
77
69
  return (_b = (_a = payload == null ? void 0 : payload.blockPrices) == null ? void 0 : _a[0]) == null ? void 0 : _b.baseFeePerGas;
78
- }, "getBaseFee");
79
- var getFeePerGas = /* @__PURE__ */ __name((payload) => {
70
+ };
71
+ var getFeePerGas = (payload) => {
80
72
  var _a, _b;
81
73
  const sorted = (_b = (_a = payload.blockPrices) == null ? void 0 : _a[0].estimatedPrices) == null ? void 0 : _b.sort((a, b) => a.confidence - b.confidence);
82
74
  const trend = linear([
83
- [
84
- 0,
85
- sorted == null ? void 0 : sorted[0].price
86
- ],
87
- [
88
- 1,
89
- sorted == null ? void 0 : sorted[1].price
90
- ],
91
- [
92
- 2,
93
- sorted == null ? void 0 : sorted[2].price
94
- ],
95
- [
96
- 3,
97
- sorted == null ? void 0 : sorted[3].price
98
- ],
99
- [
100
- 4,
101
- sorted == null ? void 0 : sorted[4].price
102
- ]
75
+ [0, sorted == null ? void 0 : sorted[0].price],
76
+ [1, sorted == null ? void 0 : sorted[1].price],
77
+ [2, sorted == null ? void 0 : sorted[2].price],
78
+ [3, sorted == null ? void 0 : sorted[3].price],
79
+ [4, sorted == null ? void 0 : sorted[4].price]
103
80
  ]);
104
81
  const feePerGas = {
105
82
  low: trend.predict(0.5)[1],
@@ -108,31 +85,16 @@ var getFeePerGas = /* @__PURE__ */ __name((payload) => {
108
85
  veryHigh: trend.predict(3.5)[1]
109
86
  };
110
87
  return feePerGas;
111
- }, "getFeePerGas");
112
- var getPriorityFeePerGas = /* @__PURE__ */ __name((payload) => {
88
+ };
89
+ var getPriorityFeePerGas = (payload) => {
113
90
  var _a, _b;
114
91
  const sorted = (_b = (_a = payload.blockPrices) == null ? void 0 : _a[0].estimatedPrices) == null ? void 0 : _b.sort((a, b) => a.confidence - b.confidence);
115
92
  const trend = linear([
116
- [
117
- 0,
118
- sorted == null ? void 0 : sorted[0].maxPriorityFeePerGas
119
- ],
120
- [
121
- 1,
122
- sorted == null ? void 0 : sorted[1].maxPriorityFeePerGas
123
- ],
124
- [
125
- 2,
126
- sorted == null ? void 0 : sorted[2].maxPriorityFeePerGas
127
- ],
128
- [
129
- 3,
130
- sorted == null ? void 0 : sorted[3].maxPriorityFeePerGas
131
- ],
132
- [
133
- 4,
134
- sorted == null ? void 0 : sorted[4].maxPriorityFeePerGas
135
- ]
93
+ [0, sorted == null ? void 0 : sorted[0].maxPriorityFeePerGas],
94
+ [1, sorted == null ? void 0 : sorted[1].maxPriorityFeePerGas],
95
+ [2, sorted == null ? void 0 : sorted[2].maxPriorityFeePerGas],
96
+ [3, sorted == null ? void 0 : sorted[3].maxPriorityFeePerGas],
97
+ [4, sorted == null ? void 0 : sorted[4].maxPriorityFeePerGas]
136
98
  ]);
137
99
  const priorityFeePerGas = {
138
100
  low: trend.predict(0.5)[1],
@@ -141,242 +103,151 @@ var getPriorityFeePerGas = /* @__PURE__ */ __name((payload) => {
141
103
  veryHigh: trend.predict(3.5)[1]
142
104
  };
143
105
  return priorityFeePerGas;
144
- }, "getPriorityFeePerGas");
145
- var transformGasFromBlocknative = /* @__PURE__ */ __name((payload) => {
106
+ };
107
+ var transformGasFromBlocknative = (payload) => {
146
108
  const baseFee = getBaseFee(payload);
147
109
  const feePerGas = getFeePerGas(payload);
148
110
  const priorityFeePerGas = getPriorityFeePerGas(payload);
149
- return {
150
- baseFee,
151
- feePerGas,
152
- priorityFeePerGas
153
- };
154
- }, "transformGasFromBlocknative");
111
+ return { baseFee, feePerGas, priorityFeePerGas };
112
+ };
155
113
 
156
114
  // src/lib/transforms/transformGasFromEtherchainV2.ts
157
- var getFeePerGas2 = /* @__PURE__ */ __name((payload) => {
115
+ var getFeePerGas2 = (payload) => {
158
116
  const { slow, standard, fast, rapid } = payload.data;
159
117
  const low = slow / 1e9;
160
118
  const medium = standard / 1e9;
161
119
  const high = fast / 1e9;
162
120
  const veryHigh = rapid / 1e9;
163
- return {
164
- high,
165
- low,
166
- medium,
167
- veryHigh
168
- };
169
- }, "getFeePerGas");
170
- var transformGasFromEtherchainV2 = /* @__PURE__ */ __name((payload) => {
121
+ return { high, low, medium, veryHigh };
122
+ };
123
+ var transformGasFromEtherchainV2 = (payload) => {
171
124
  const baseFee = void 0;
172
125
  const feePerGas = getFeePerGas2(payload);
173
126
  const priorityFeePerGas = {};
174
- return {
175
- baseFee,
176
- feePerGas,
177
- priorityFeePerGas
178
- };
179
- }, "transformGasFromEtherchainV2");
127
+ return { baseFee, feePerGas, priorityFeePerGas };
128
+ };
180
129
 
181
130
  // src/lib/transforms/transformGasFromEthers.ts
182
- var getBaseFee2 = /* @__PURE__ */ __name((payload) => {
131
+ var getBaseFee2 = (payload) => {
183
132
  const { gasPrice } = payload;
184
133
  return gasPrice ? gasPrice / 1e9 : void 0;
185
- }, "getBaseFee");
186
- var getFeePerGas3 = /* @__PURE__ */ __name((payload) => {
134
+ };
135
+ var getFeePerGas3 = (payload) => {
187
136
  const { maxFeePerGas } = payload;
188
137
  const high = maxFeePerGas ? maxFeePerGas / 1e9 : void 0;
189
- return {
190
- high
191
- };
192
- }, "getFeePerGas");
193
- var getPriorityFeePerGas2 = /* @__PURE__ */ __name((payload) => {
138
+ return { high };
139
+ };
140
+ var getPriorityFeePerGas2 = (payload) => {
194
141
  const { maxPriorityFeePerGas } = payload;
195
142
  const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1e9 : void 0;
196
- return {
197
- high
198
- };
199
- }, "getPriorityFeePerGas");
200
- var transformGasFromEthers = /* @__PURE__ */ __name((payload) => {
143
+ return { high };
144
+ };
145
+ var transformGasFromEthers = (payload) => {
201
146
  const baseFee = getBaseFee2(payload);
202
147
  const feePerGas = getFeePerGas3(payload);
203
148
  const priorityFeePerGas = getPriorityFeePerGas2(payload);
204
- return {
205
- baseFee,
206
- feePerGas,
207
- priorityFeePerGas
208
- };
209
- }, "transformGasFromEthers");
149
+ return { baseFee, feePerGas, priorityFeePerGas };
150
+ };
210
151
 
211
152
  // src/lib/transforms/transformGasFromEtherscan.ts
212
153
  import { linear as linear2 } from "regression";
213
- var getBaseFee3 = /* @__PURE__ */ __name((payload) => {
154
+ var getBaseFee3 = (payload) => {
214
155
  const { suggestBaseFee } = payload.result;
215
156
  return Number.parseFloat(suggestBaseFee);
216
- }, "getBaseFee");
217
- var getFeePerGas4 = /* @__PURE__ */ __name((payload) => {
157
+ };
158
+ var getFeePerGas4 = (payload) => {
218
159
  const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result;
219
160
  const low = Number.parseFloat(SafeGasPrice);
220
161
  const medium = Number.parseFloat(ProposeGasPrice);
221
162
  const high = Number.parseFloat(FastGasPrice);
222
163
  const veryHigh = linear2([
223
- [
224
- 0,
225
- low
226
- ],
227
- [
228
- 1,
229
- medium
230
- ],
231
- [
232
- 2,
233
- high
234
- ]
164
+ [0, low],
165
+ [1, medium],
166
+ [2, high]
235
167
  ]).predict(3)[1];
236
- return {
237
- high,
238
- low,
239
- medium,
240
- veryHigh
241
- };
242
- }, "getFeePerGas");
243
- var transformGasFromEtherscan = /* @__PURE__ */ __name((payload) => {
168
+ return { high, low, medium, veryHigh };
169
+ };
170
+ var transformGasFromEtherscan = (payload) => {
244
171
  const baseFee = getBaseFee3(payload);
245
172
  const feePerGas = getFeePerGas4(payload);
246
173
  const priorityFeePerGas = {};
247
- return {
248
- baseFee,
249
- feePerGas,
250
- priorityFeePerGas
251
- };
252
- }, "transformGasFromEtherscan");
174
+ return { baseFee, feePerGas, priorityFeePerGas };
175
+ };
253
176
 
254
177
  // src/lib/transforms/transformGasFromEthgasstation.ts
255
178
  import { linear as linear3 } from "regression";
256
- var getBaseFee4 = /* @__PURE__ */ __name((payload) => {
179
+ var getBaseFee4 = (payload) => {
257
180
  const { baseFee } = payload;
258
181
  return baseFee;
259
- }, "getBaseFee");
260
- var getFeePerGas5 = /* @__PURE__ */ __name((payload) => {
182
+ };
183
+ var getFeePerGas5 = (payload) => {
261
184
  const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice;
262
185
  const trend = linear3([
263
- [
264
- 1,
265
- medium
266
- ],
267
- [
268
- 2,
269
- high
270
- ],
271
- [
272
- 3,
273
- veryHigh
274
- ]
186
+ [1, medium],
187
+ [2, high],
188
+ [3, veryHigh]
275
189
  ]);
276
190
  const low = trend.predict(0)[1];
277
- return {
278
- low,
279
- medium,
280
- high,
281
- veryHigh
282
- };
283
- }, "getFeePerGas");
284
- var getPriorityFeePerGas3 = /* @__PURE__ */ __name((payload) => {
191
+ return { low, medium, high, veryHigh };
192
+ };
193
+ var getPriorityFeePerGas3 = (payload) => {
285
194
  const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee;
286
195
  const trend = linear3([
287
- [
288
- 1,
289
- medium
290
- ],
291
- [
292
- 2,
293
- high
294
- ],
295
- [
296
- 3,
297
- veryHigh
298
- ]
196
+ [1, medium],
197
+ [2, high],
198
+ [3, veryHigh]
299
199
  ]);
300
200
  const low = trend.predict(0)[1];
301
- return {
302
- low,
303
- medium,
304
- high,
305
- veryHigh
306
- };
307
- }, "getPriorityFeePerGas");
308
- var transformGasFromEthgasstation = /* @__PURE__ */ __name((payload) => {
201
+ return { low, medium, high, veryHigh };
202
+ };
203
+ var transformGasFromEthgasstation = (payload) => {
309
204
  const baseFee = getBaseFee4(payload);
310
205
  const feePerGas = getFeePerGas5(payload);
311
206
  const priorityFeePerGas = getPriorityFeePerGas3(payload);
312
- return {
313
- baseFee,
314
- feePerGas,
315
- priorityFeePerGas
316
- };
317
- }, "transformGasFromEthgasstation");
207
+ return { baseFee, feePerGas, priorityFeePerGas };
208
+ };
318
209
 
319
210
  // src/lib/divineGas.ts
320
- var divineGas = /* @__PURE__ */ __name(async (payloads) => {
211
+ var divineGas = async (payloads) => {
321
212
  const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative);
322
213
  const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2);
323
214
  const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers);
324
215
  const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan);
325
216
  const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation);
326
- const transactionCosts = [
327
- ...blocknative,
328
- ...etherchainV2,
329
- ...ethers,
330
- ...etherscan,
331
- ...ethgasstation
332
- ];
217
+ const transactionCosts = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation];
333
218
  const avg = average(transactionCosts);
334
219
  const timestamp = Date.now();
335
- const payload = await new PayloadBuilder({
336
- schema: EthereumGasSchema
337
- }).fields({
338
- ...avg,
339
- timestamp
340
- }).build();
220
+ const payload = await new PayloadBuilder({ schema: EthereumGasSchema }).fields({ ...avg, timestamp }).build();
341
221
  return payload;
342
- }, "divineGas");
222
+ };
343
223
 
344
224
  // src/Schema.ts
345
225
  var EthereumGasDivinerQuerySchema = "network.xyo.blockchain.ethereum.gas.diviner.query";
346
226
  var EthereumGasDivinerConfigSchema = "network.xyo.blockchain.ethereum.gas.diviner.config";
347
227
 
348
228
  // src/Diviner.ts
349
- var _EthereumGasDiviner = class _EthereumGasDiviner extends AbstractDiviner {
229
+ var EthereumGasDiviner = class extends AbstractDiviner {
230
+ static configSchemas = [...super.configSchemas, EthereumGasDivinerConfigSchema];
231
+ static defaultConfigSchema = EthereumGasDivinerConfigSchema;
232
+ static targetSchema = EthereumGasSchema2;
350
233
  async divineHandler(payloads) {
351
234
  const cost = await divineGas(payloads ?? []);
352
- return [
353
- cost
354
- ];
235
+ return [cost];
355
236
  }
356
237
  };
357
- __name(_EthereumGasDiviner, "EthereumGasDiviner");
358
- __publicField(_EthereumGasDiviner, "configSchemas", [
359
- ...__superGet(_EthereumGasDiviner, _EthereumGasDiviner, "configSchemas"),
360
- EthereumGasDivinerConfigSchema
361
- ]);
362
- __publicField(_EthereumGasDiviner, "defaultConfigSchema", EthereumGasDivinerConfigSchema);
363
- __publicField(_EthereumGasDiviner, "targetSchema", EthereumGasSchema2);
364
- var EthereumGasDiviner = _EthereumGasDiviner;
365
238
 
366
239
  // src/Plugin.ts
367
240
  import { EthereumGasSchema as EthereumGasSchema3 } from "@xyo-network/gas-price-payload-plugin";
368
241
  import { PayloadSetSchema } from "@xyo-network/payload-model";
369
242
  import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
370
- var EthereumGasPlugin = /* @__PURE__ */ __name(() => createPayloadSetDivinerPlugin({
371
- required: {
372
- [EthereumGasSchema3]: 1
373
- },
374
- schema: PayloadSetSchema
375
- }, {
376
- diviner: /* @__PURE__ */ __name(async (params) => {
377
- return await EthereumGasDiviner.create(params);
378
- }, "diviner")
379
- }), "EthereumGasPlugin");
243
+ var EthereumGasPlugin = () => createPayloadSetDivinerPlugin(
244
+ { required: { [EthereumGasSchema3]: 1 }, schema: PayloadSetSchema },
245
+ {
246
+ diviner: async (params) => {
247
+ return await EthereumGasDiviner.create(params);
248
+ }
249
+ }
250
+ );
380
251
  export {
381
252
  EthereumGasDiviner,
382
253
  EthereumGasDivinerConfigSchema,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner.ts","../../src/lib/divineGas.ts","../../src/lib/average.ts","../../src/lib/identities/isEthereumGasBlocknativePayload.ts","../../src/lib/identities/isEthereumGasEtherchainV2Payload.ts","../../src/lib/identities/isEthereumGasEtherscanPayload.ts","../../src/lib/identities/isEthereumGasEthersPayload.ts","../../src/lib/identities/isEthereumGasEthgasstationPayload.ts","../../src/lib/transforms/transformGasFromBlocknative.ts","../../src/lib/transforms/transformGasFromEtherchainV2.ts","../../src/lib/transforms/transformGasFromEthers.ts","../../src/lib/transforms/transformGasFromEtherscan.ts","../../src/lib/transforms/transformGasFromEthgasstation.ts","../../src/Schema.ts","../../src/Plugin.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { divineGas } from './lib/index.ts'\nimport { EthereumGasDivinerConfigSchema } from './Schema.ts'\n\nexport type EthereumGasDivinerConfig = DivinerConfig<{ schema: EthereumGasDivinerConfigSchema }>\nexport type EthereumGasDivinerParams = DivinerParams<AnyConfigSchema<EthereumGasDivinerConfig>>\n\nexport class EthereumGasDiviner<TParams extends EthereumGasDivinerParams = EthereumGasDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EthereumGasDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EthereumGasDivinerConfigSchema\n static override targetSchema: string = EthereumGasSchema\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const cost = await divineGas(payloads ?? [])\n return [cost]\n }\n}\n","import { EthereumGasPayload, EthereumGasSchema, FeeData } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { average } from './average.ts'\nimport {\n isEthereumGasBlocknativePayload,\n isEthereumGasEtherchainV2Payload,\n isEthereumGasEtherscanPayload,\n isEthereumGasEthersPayload,\n isEthereumGasEthgasstationPayload,\n} from './identities/index.ts'\nimport {\n transformGasFromBlocknative,\n transformGasFromEtherchainV2,\n transformGasFromEthers,\n transformGasFromEtherscan,\n transformGasFromEthgasstation,\n} from './transforms/index.ts'\n\nexport const divineGas = async (payloads: Payload[]): Promise<EthereumGasPayload> => {\n const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative)\n const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2)\n const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers)\n const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan)\n const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation)\n const transactionCosts: FeeData[] = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation]\n const avg = average(transactionCosts)\n const timestamp = Date.now()\n const payload = await new PayloadBuilder<EthereumGasPayload>({ schema: EthereumGasSchema }).fields({ ...avg, timestamp }).build()\n return payload\n}\n","import { exists } from '@xylabs/exists'\nimport { FeeData } from '@xyo-network/gas-price-payload-plugin'\n\n/**\n * Averages an array of numbers\n * @param x Averages an array of numbers\n * @returns The average of the array of numbers or undefined if the\n * array is empty or undefined\n */\nconst listAverage = (x?: number[]) => (x?.length ? x.reduce((a, b) => a + b) / x.length : undefined)\n\n/**\n * Averages the property indicates by the supplied property\n * expression across the array of FeeData\n * @param data The array of data to average\n * @param propertyExpression The expression for the property to\n * average\n * @returns The average of the supplied property across the array\n */\nconst averageProperty = (data: FeeData[], propertyExpression: (x: FeeData) => number | undefined) => {\n return listAverage(data.map(propertyExpression).filter(exists))\n}\n\n/**\n * Averages the supplied FeeData\n * @param input An array of FeeData or undefined\n * @returns The average of the supplied FeeData\n */\nexport const average = (input?: (FeeData | undefined)[]): FeeData => {\n const data = input?.filter(exists) || []\n const averaged: FeeData = {\n baseFee: averageProperty(data, x => x.baseFee),\n feePerGas: {\n high: averageProperty(data, x => x.feePerGas.high),\n low: averageProperty(data, x => x.feePerGas.low),\n medium: averageProperty(data, x => x.feePerGas.medium),\n veryHigh: averageProperty(data, x => x.feePerGas.veryHigh),\n },\n priorityFeePerGas: {\n high: averageProperty(data, x => x.priorityFeePerGas.high),\n low: averageProperty(data, x => x.priorityFeePerGas.low),\n medium: averageProperty(data, x => x.priorityFeePerGas.medium),\n veryHigh: averageProperty(data, x => x.priorityFeePerGas.veryHigh),\n },\n }\n return averaged\n}\n","import { EthereumGasBlocknativePayload, EthereumGasBlocknativeSchema } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasBlocknativePayload = (payload?: Payload | null): payload is EthereumGasBlocknativePayload => {\n return payload?.schema === EthereumGasBlocknativeSchema\n}\n","import { EthereumGasEtherchainV2Payload, EthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherchainV2Payload = (payload?: Payload | null): payload is EthereumGasEtherchainV2Payload => {\n return payload?.schema === EthereumGasEtherchainV2Schema\n}\n","import { EthereumGasEtherscanPayload, EthereumGasEtherscanSchema } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherscanPayload = (payload?: Payload | null): payload is EthereumGasEtherscanPayload => {\n return payload?.schema === EthereumGasEtherscanSchema\n}\n","import { EthereumGasEthersPayload, EthereumGasEthersSchema } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthersPayload = (payload?: Payload | null): payload is EthereumGasEthersPayload => {\n return payload?.schema === EthereumGasEthersSchema\n}\n","import { EthereumGasEthgasstationPayload, EthereumGasEthgasstationSchema } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthgasstationPayload = (payload?: Payload | null): payload is EthereumGasEthgasstationPayload => {\n return payload?.schema === EthereumGasEthgasstationSchema\n}\n","import { EthereumGasBlocknativePayload } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasBlocknativePayload): number | undefined => {\n return payload?.blockPrices?.[0]?.baseFeePerGas\n}\n\nconst getFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<FeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].price],\n [1, sorted?.[1].price],\n [2, sorted?.[2].price],\n [3, sorted?.[3].price],\n [4, sorted?.[4].price],\n ])\n const feePerGas: FeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return feePerGas\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<PriorityFeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].maxPriorityFeePerGas],\n [1, sorted?.[1].maxPriorityFeePerGas],\n [2, sorted?.[2].maxPriorityFeePerGas],\n [3, sorted?.[3].maxPriorityFeePerGas],\n [4, sorted?.[4].maxPriorityFeePerGas],\n ])\n const priorityFeePerGas: PriorityFeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return priorityFeePerGas\n}\n\nexport const transformGasFromBlocknative = (payload: EthereumGasBlocknativePayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherchainV2Payload } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getFeePerGas = (payload: EthereumGasEtherchainV2Payload): Partial<FeePerGas> => {\n const { slow, standard, fast, rapid } = payload.data\n const low = slow / 1_000_000_000\n const medium = standard / 1_000_000_000\n const high = fast / 1_000_000_000\n const veryHigh = rapid / 1_000_000_000\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherchainV2 = (payload: EthereumGasEtherchainV2Payload): FeeData => {\n const baseFee = undefined\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthersPayload } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getBaseFee = (payload: EthereumGasEthersPayload): number | undefined => {\n const { gasPrice } = payload\n return gasPrice ? gasPrice / 1_000_000_000 : undefined\n}\n\nconst getFeePerGas = (payload: EthereumGasEthersPayload): Partial<FeePerGas> => {\n const { maxFeePerGas } = payload\n const high = maxFeePerGas ? maxFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthersPayload): Partial<PriorityFeePerGas> => {\n const { maxPriorityFeePerGas } = payload\n const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nexport const transformGasFromEthers = (payload: EthereumGasEthersPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherscanPayload } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEtherscanPayload): number | undefined => {\n const { suggestBaseFee } = payload.result\n return Number.parseFloat(suggestBaseFee)\n}\n\nconst getFeePerGas = (payload: EthereumGasEtherscanPayload): Partial<FeePerGas> => {\n const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result\n const low = Number.parseFloat(SafeGasPrice)\n const medium = Number.parseFloat(ProposeGasPrice)\n const high = Number.parseFloat(FastGasPrice)\n const veryHigh = linear([\n [0, low],\n [1, medium],\n [2, high],\n ]).predict(3)[1]\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherscan = (payload: EthereumGasEtherscanPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthgasstationPayload } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEthgasstationPayload): number | undefined => {\n const { baseFee } = payload\n return baseFee\n}\n\nconst getFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<FeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<PriorityFeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nexport const transformGasFromEthgasstation = (payload: EthereumGasEthgasstationPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","export type EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\nexport const EthereumGasDivinerQuerySchema: EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\n\nexport type EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\nexport const EthereumGasDivinerConfigSchema: EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\n","import { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { EthereumGasDiviner } from './Diviner.ts'\n\nexport const EthereumGasPlugin = () =>\n createPayloadSetDivinerPlugin<EthereumGasDiviner>(\n { required: { [EthereumGasSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await EthereumGasDiviner.create(params)) as EthereumGasDiviner\n },\n },\n )\n"],"mappings":"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","names":["AbstractDiviner","EthereumGasSchema","EthereumGasSchema","PayloadBuilder","exists","listAverage","x","length","reduce","a","b","undefined","averageProperty","data","propertyExpression","map","filter","exists","average","input","averaged","baseFee","feePerGas","high","low","medium","veryHigh","priorityFeePerGas","EthereumGasBlocknativeSchema","isEthereumGasBlocknativePayload","payload","schema","EthereumGasBlocknativeSchema","EthereumGasEtherchainV2Schema","isEthereumGasEtherchainV2Payload","payload","schema","EthereumGasEtherchainV2Schema","EthereumGasEtherscanSchema","isEthereumGasEtherscanPayload","payload","schema","EthereumGasEtherscanSchema","EthereumGasEthersSchema","isEthereumGasEthersPayload","payload","schema","EthereumGasEthersSchema","EthereumGasEthgasstationSchema","isEthereumGasEthgasstationPayload","payload","schema","EthereumGasEthgasstationSchema","linear","getBaseFee","payload","blockPrices","baseFeePerGas","getFeePerGas","sorted","estimatedPrices","sort","a","b","confidence","trend","linear","price","feePerGas","low","predict","medium","high","veryHigh","getPriorityFeePerGas","maxPriorityFeePerGas","priorityFeePerGas","transformGasFromBlocknative","baseFee","getFeePerGas","payload","slow","standard","fast","rapid","data","low","medium","high","veryHigh","transformGasFromEtherchainV2","baseFee","undefined","feePerGas","priorityFeePerGas","getBaseFee","payload","gasPrice","undefined","getFeePerGas","maxFeePerGas","high","getPriorityFeePerGas","maxPriorityFeePerGas","transformGasFromEthers","baseFee","feePerGas","priorityFeePerGas","linear","getBaseFee","payload","suggestBaseFee","result","Number","parseFloat","getFeePerGas","FastGasPrice","ProposeGasPrice","SafeGasPrice","low","medium","high","veryHigh","linear","predict","transformGasFromEtherscan","baseFee","feePerGas","priorityFeePerGas","linear","getBaseFee","payload","baseFee","getFeePerGas","standard","medium","fast","high","instant","veryHigh","gasPrice","trend","linear","low","predict","getPriorityFeePerGas","priorityFee","transformGasFromEthgasstation","feePerGas","priorityFeePerGas","divineGas","payloads","blocknative","filter","isEthereumGasBlocknativePayload","map","transformGasFromBlocknative","etherchainV2","isEthereumGasEtherchainV2Payload","transformGasFromEtherchainV2","ethers","isEthereumGasEthersPayload","transformGasFromEthers","etherscan","isEthereumGasEtherscanPayload","transformGasFromEtherscan","ethgasstation","isEthereumGasEthgasstationPayload","transformGasFromEthgasstation","transactionCosts","avg","average","timestamp","Date","now","payload","PayloadBuilder","schema","EthereumGasSchema","fields","build","EthereumGasDivinerQuerySchema","EthereumGasDivinerConfigSchema","EthereumGasDiviner","AbstractDiviner","divineHandler","payloads","cost","divineGas","configSchemas","EthereumGasDivinerConfigSchema","defaultConfigSchema","targetSchema","EthereumGasSchema","EthereumGasSchema","PayloadSetSchema","createPayloadSetDivinerPlugin","EthereumGasPlugin","createPayloadSetDivinerPlugin","required","EthereumGasSchema","schema","PayloadSetSchema","diviner","params","EthereumGasDiviner","create"]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/lib/divineGas.ts","../../src/lib/average.ts","../../src/lib/identities/isEthereumGasBlocknativePayload.ts","../../src/lib/identities/isEthereumGasEtherchainV2Payload.ts","../../src/lib/identities/isEthereumGasEtherscanPayload.ts","../../src/lib/identities/isEthereumGasEthersPayload.ts","../../src/lib/identities/isEthereumGasEthgasstationPayload.ts","../../src/lib/transforms/transformGasFromBlocknative.ts","../../src/lib/transforms/transformGasFromEtherchainV2.ts","../../src/lib/transforms/transformGasFromEthers.ts","../../src/lib/transforms/transformGasFromEtherscan.ts","../../src/lib/transforms/transformGasFromEthgasstation.ts","../../src/Schema.ts","../../src/Plugin.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { divineGas } from './lib/index.ts'\nimport { EthereumGasDivinerConfigSchema } from './Schema.ts'\n\nexport type EthereumGasDivinerConfig = DivinerConfig<{ schema: EthereumGasDivinerConfigSchema }>\nexport type EthereumGasDivinerParams = DivinerParams<AnyConfigSchema<EthereumGasDivinerConfig>>\n\nexport class EthereumGasDiviner<TParams extends EthereumGasDivinerParams = EthereumGasDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EthereumGasDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EthereumGasDivinerConfigSchema\n static override targetSchema: string = EthereumGasSchema\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const cost = await divineGas(payloads ?? [])\n return [cost]\n }\n}\n","import { EthereumGasPayload, EthereumGasSchema, FeeData } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { average } from './average.ts'\nimport {\n isEthereumGasBlocknativePayload,\n isEthereumGasEtherchainV2Payload,\n isEthereumGasEtherscanPayload,\n isEthereumGasEthersPayload,\n isEthereumGasEthgasstationPayload,\n} from './identities/index.ts'\nimport {\n transformGasFromBlocknative,\n transformGasFromEtherchainV2,\n transformGasFromEthers,\n transformGasFromEtherscan,\n transformGasFromEthgasstation,\n} from './transforms/index.ts'\n\nexport const divineGas = async (payloads: Payload[]): Promise<EthereumGasPayload> => {\n const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative)\n const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2)\n const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers)\n const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan)\n const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation)\n const transactionCosts: FeeData[] = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation]\n const avg = average(transactionCosts)\n const timestamp = Date.now()\n const payload = await new PayloadBuilder<EthereumGasPayload>({ schema: EthereumGasSchema }).fields({ ...avg, timestamp }).build()\n return payload\n}\n","import { exists } from '@xylabs/exists'\nimport { FeeData } from '@xyo-network/gas-price-payload-plugin'\n\n/**\n * Averages an array of numbers\n * @param x Averages an array of numbers\n * @returns The average of the array of numbers or undefined if the\n * array is empty or undefined\n */\nconst listAverage = (x?: number[]) => (x?.length ? x.reduce((a, b) => a + b) / x.length : undefined)\n\n/**\n * Averages the property indicates by the supplied property\n * expression across the array of FeeData\n * @param data The array of data to average\n * @param propertyExpression The expression for the property to\n * average\n * @returns The average of the supplied property across the array\n */\nconst averageProperty = (data: FeeData[], propertyExpression: (x: FeeData) => number | undefined) => {\n return listAverage(data.map(propertyExpression).filter(exists))\n}\n\n/**\n * Averages the supplied FeeData\n * @param input An array of FeeData or undefined\n * @returns The average of the supplied FeeData\n */\nexport const average = (input?: (FeeData | undefined)[]): FeeData => {\n const data = input?.filter(exists) || []\n const averaged: FeeData = {\n baseFee: averageProperty(data, x => x.baseFee),\n feePerGas: {\n high: averageProperty(data, x => x.feePerGas.high),\n low: averageProperty(data, x => x.feePerGas.low),\n medium: averageProperty(data, x => x.feePerGas.medium),\n veryHigh: averageProperty(data, x => x.feePerGas.veryHigh),\n },\n priorityFeePerGas: {\n high: averageProperty(data, x => x.priorityFeePerGas.high),\n low: averageProperty(data, x => x.priorityFeePerGas.low),\n medium: averageProperty(data, x => x.priorityFeePerGas.medium),\n veryHigh: averageProperty(data, x => x.priorityFeePerGas.veryHigh),\n },\n }\n return averaged\n}\n","import { EthereumGasBlocknativePayload, EthereumGasBlocknativeSchema } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasBlocknativePayload = (payload?: Payload | null): payload is EthereumGasBlocknativePayload => {\n return payload?.schema === EthereumGasBlocknativeSchema\n}\n","import { EthereumGasEtherchainV2Payload, EthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherchainV2Payload = (payload?: Payload | null): payload is EthereumGasEtherchainV2Payload => {\n return payload?.schema === EthereumGasEtherchainV2Schema\n}\n","import { EthereumGasEtherscanPayload, EthereumGasEtherscanSchema } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherscanPayload = (payload?: Payload | null): payload is EthereumGasEtherscanPayload => {\n return payload?.schema === EthereumGasEtherscanSchema\n}\n","import { EthereumGasEthersPayload, EthereumGasEthersSchema } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthersPayload = (payload?: Payload | null): payload is EthereumGasEthersPayload => {\n return payload?.schema === EthereumGasEthersSchema\n}\n","import { EthereumGasEthgasstationPayload, EthereumGasEthgasstationSchema } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthgasstationPayload = (payload?: Payload | null): payload is EthereumGasEthgasstationPayload => {\n return payload?.schema === EthereumGasEthgasstationSchema\n}\n","import { EthereumGasBlocknativePayload } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasBlocknativePayload): number | undefined => {\n return payload?.blockPrices?.[0]?.baseFeePerGas\n}\n\nconst getFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<FeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].price],\n [1, sorted?.[1].price],\n [2, sorted?.[2].price],\n [3, sorted?.[3].price],\n [4, sorted?.[4].price],\n ])\n const feePerGas: FeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return feePerGas\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<PriorityFeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].maxPriorityFeePerGas],\n [1, sorted?.[1].maxPriorityFeePerGas],\n [2, sorted?.[2].maxPriorityFeePerGas],\n [3, sorted?.[3].maxPriorityFeePerGas],\n [4, sorted?.[4].maxPriorityFeePerGas],\n ])\n const priorityFeePerGas: PriorityFeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return priorityFeePerGas\n}\n\nexport const transformGasFromBlocknative = (payload: EthereumGasBlocknativePayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherchainV2Payload } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getFeePerGas = (payload: EthereumGasEtherchainV2Payload): Partial<FeePerGas> => {\n const { slow, standard, fast, rapid } = payload.data\n const low = slow / 1_000_000_000\n const medium = standard / 1_000_000_000\n const high = fast / 1_000_000_000\n const veryHigh = rapid / 1_000_000_000\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherchainV2 = (payload: EthereumGasEtherchainV2Payload): FeeData => {\n const baseFee = undefined\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthersPayload } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getBaseFee = (payload: EthereumGasEthersPayload): number | undefined => {\n const { gasPrice } = payload\n return gasPrice ? gasPrice / 1_000_000_000 : undefined\n}\n\nconst getFeePerGas = (payload: EthereumGasEthersPayload): Partial<FeePerGas> => {\n const { maxFeePerGas } = payload\n const high = maxFeePerGas ? maxFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthersPayload): Partial<PriorityFeePerGas> => {\n const { maxPriorityFeePerGas } = payload\n const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nexport const transformGasFromEthers = (payload: EthereumGasEthersPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherscanPayload } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEtherscanPayload): number | undefined => {\n const { suggestBaseFee } = payload.result\n return Number.parseFloat(suggestBaseFee)\n}\n\nconst getFeePerGas = (payload: EthereumGasEtherscanPayload): Partial<FeePerGas> => {\n const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result\n const low = Number.parseFloat(SafeGasPrice)\n const medium = Number.parseFloat(ProposeGasPrice)\n const high = Number.parseFloat(FastGasPrice)\n const veryHigh = linear([\n [0, low],\n [1, medium],\n [2, high],\n ]).predict(3)[1]\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherscan = (payload: EthereumGasEtherscanPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthgasstationPayload } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEthgasstationPayload): number | undefined => {\n const { baseFee } = payload\n return baseFee\n}\n\nconst getFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<FeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<PriorityFeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nexport const transformGasFromEthgasstation = (payload: EthereumGasEthgasstationPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","export type EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\nexport const EthereumGasDivinerQuerySchema: EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\n\nexport type EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\nexport const EthereumGasDivinerConfigSchema: EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\n","import { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { EthereumGasDiviner } from './Diviner.ts'\n\nexport const EthereumGasPlugin = () =>\n createPayloadSetDivinerPlugin<EthereumGasDiviner>(\n { required: { [EthereumGasSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await EthereumGasDiviner.create(params)) as EthereumGasDiviner\n },\n },\n )\n"],"mappings":"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","names":["EthereumGasSchema","getFeePerGas","getBaseFee","getFeePerGas","getPriorityFeePerGas","linear","getBaseFee","getFeePerGas","linear","getBaseFee","getFeePerGas","getPriorityFeePerGas","EthereumGasSchema","EthereumGasSchema","EthereumGasSchema"]}
package/package.json CHANGED
@@ -10,30 +10,30 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/exists": "^3.6.8",
14
- "@xyo-network/blocknative-ethereum-gas-payload-plugin": "^2.99.5",
15
- "@xyo-network/diviner-abstract": "^2.111.2",
16
- "@xyo-network/diviner-model": "^2.111.2",
17
- "@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins": "^2.99.5",
18
- "@xyo-network/ethers-ethereum-gas-payload-plugin": "^2.99.5",
19
- "@xyo-network/etherscan-ethereum-gas-payload-plugin": "^2.99.5",
20
- "@xyo-network/ethgasstation-ethereum-gas-payload-plugin": "^2.99.5",
21
- "@xyo-network/gas-price-payload-plugin": "^2.99.5",
22
- "@xyo-network/module-model": "^2.111.2",
23
- "@xyo-network/payload-builder": "^2.111.2",
24
- "@xyo-network/payload-model": "^2.111.2",
25
- "@xyo-network/payloadset-plugin": "^2.111.2",
13
+ "@xylabs/exists": "^3.6.12",
14
+ "@xyo-network/blocknative-ethereum-gas-payload-plugin": "^2.99.6",
15
+ "@xyo-network/diviner-abstract": "^2.111.3",
16
+ "@xyo-network/diviner-model": "^2.111.3",
17
+ "@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins": "^2.99.6",
18
+ "@xyo-network/ethers-ethereum-gas-payload-plugin": "^2.99.6",
19
+ "@xyo-network/etherscan-ethereum-gas-payload-plugin": "^2.99.6",
20
+ "@xyo-network/ethgasstation-ethereum-gas-payload-plugin": "^2.99.6",
21
+ "@xyo-network/gas-price-payload-plugin": "^2.99.6",
22
+ "@xyo-network/module-model": "^2.111.3",
23
+ "@xyo-network/payload-builder": "^2.111.3",
24
+ "@xyo-network/payload-model": "^2.111.3",
25
+ "@xyo-network/payloadset-plugin": "^2.111.3",
26
26
  "regression": "^2.0.1"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/regression": "^2.0.6",
30
- "@xylabs/ts-scripts-yarn3": "^3.15.13",
31
- "@xylabs/tsconfig": "^3.15.13",
32
- "@xyo-network/blocknative-ethereum-gas-plugin": "^2.99.5",
33
- "@xyo-network/etherchain-gas-ethereum-blockchain-plugins": "^2.99.5",
34
- "@xyo-network/ethers-ethereum-gas-plugin": "^2.99.5",
35
- "@xyo-network/etherscan-ethereum-gas-plugin": "^2.99.5",
36
- "@xyo-network/witness-blockchain-abstract": "^2.111.2",
30
+ "@xylabs/ts-scripts-yarn3": "^3.15.14",
31
+ "@xylabs/tsconfig": "^3.15.14",
32
+ "@xyo-network/blocknative-ethereum-gas-plugin": "^2.99.6",
33
+ "@xyo-network/etherchain-gas-ethereum-blockchain-plugins": "^2.99.6",
34
+ "@xyo-network/ethers-ethereum-gas-plugin": "^2.99.6",
35
+ "@xyo-network/etherscan-ethereum-gas-plugin": "^2.99.6",
36
+ "@xyo-network/witness-blockchain-abstract": "^2.111.3",
37
37
  "typescript": "^5.5.4"
38
38
  },
39
39
  "description": "Typescript/Javascript Plugins for XYO Platform",
@@ -75,6 +75,6 @@
75
75
  "url": "https://github.com/XYOracleNetwork/plugins.git"
76
76
  },
77
77
  "sideEffects": false,
78
- "version": "2.99.5",
78
+ "version": "2.99.6",
79
79
  "type": "module"
80
80
  }