@valve-tech/gas-oracle 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +115 -16
  3. package/dist/block-position.d.ts +3 -3
  4. package/dist/block-position.d.ts.map +1 -1
  5. package/dist/block-position.js +32 -20
  6. package/dist/block-position.js.map +1 -1
  7. package/dist/classify-tip.d.ts +33 -0
  8. package/dist/classify-tip.d.ts.map +1 -0
  9. package/dist/classify-tip.js +52 -0
  10. package/dist/classify-tip.js.map +1 -0
  11. package/dist/inclusion-labels.d.ts +30 -0
  12. package/dist/inclusion-labels.d.ts.map +1 -0
  13. package/dist/inclusion-labels.js +35 -0
  14. package/dist/inclusion-labels.js.map +1 -0
  15. package/dist/index.d.ts +7 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +10 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/math.d.ts +1 -1
  20. package/dist/math.d.ts.map +1 -1
  21. package/dist/math.js +20 -18
  22. package/dist/math.js.map +1 -1
  23. package/dist/oracle.d.ts +2 -2
  24. package/dist/oracle.d.ts.map +1 -1
  25. package/dist/oracle.js +27 -11
  26. package/dist/oracle.js.map +1 -1
  27. package/dist/presets.d.ts +36 -0
  28. package/dist/presets.d.ts.map +1 -0
  29. package/dist/presets.js +27 -0
  30. package/dist/presets.js.map +1 -0
  31. package/dist/replacement.d.ts +80 -0
  32. package/dist/replacement.d.ts.map +1 -0
  33. package/dist/replacement.js +114 -0
  34. package/dist/replacement.js.map +1 -0
  35. package/dist/types.d.ts +49 -5
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/types.js +57 -1
  38. package/dist/types.js.map +1 -1
  39. package/dist/viem-transport.d.ts +1 -1
  40. package/dist/viem-transport.d.ts.map +1 -1
  41. package/dist/viem-transport.js +11 -5
  42. package/dist/viem-transport.js.map +1 -1
  43. package/package.json +2 -2
  44. package/skills/gas-oracle-integration/SKILL.md +159 -13
package/dist/index.js CHANGED
@@ -16,8 +16,18 @@ export { createGasOracle, reducePollInputs, sampleGasFees, } from './oracle.js';
16
16
  export { effectiveTip, computePercentiles, detectTrend, cappedTip, computeTiers, computeBlobBaseFee, flattenTxPool, gasWeightedPercentiles, sortedTips, DEFAULT_PRIORITY_FEE_DECAY_CAP, DEFAULT_BASE_FEE_LIVENESS_BLOCKS, } from './math.js';
17
17
  export { blockToSample, mempoolToSamples, } from './samples.js';
18
18
  export { fetchOracleInputs, fetchHeadBlockNumber, } from './transport.js';
19
+ // Const-namespace pairs (value + type share the identifier — see types.ts).
20
+ export { PriorityModel, TierName, TIER_LADDER, Trend, TxType } from './types.js';
19
21
  // Mempool inspection
20
22
  export { normalizeMempool, findByHash, findByAddressNonce, findInMempool, } from './mempool.js';
21
23
  // Block-position calculations
22
24
  export { tipForBlockPosition } from './block-position.js';
25
+ // Replacement helpers (same-nonce EIP-1559)
26
+ export { minimumReplacementFee, bumpForReplacement, recommendBumpTier, BumpStrategy, ReplacementBumpPercent, } from './replacement.js';
27
+ // Tip classification (inverse of tipForBlockPosition)
28
+ export { classifyTip } from './classify-tip.js';
29
+ // Inclusion labels (UI copy with optional locale overrides)
30
+ export { defaultInclusionLabels, inclusionLabel } from './inclusion-labels.js';
31
+ // Chain presets (per-chain config overrides for createGasOracle)
32
+ export { chainPresets, presetForChainId, } from './presets.js';
23
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,GAGd,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAA;AAiBvB,qBAAqB;AACrB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAA;AAQrB,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,GAGd,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAA;AAcvB,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEhF,qBAAqB;AACrB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAA;AAQrB,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAMzD,4CAA4C;AAC5C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAMzB,sDAAsD;AACtD,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAA;AAEvE,4DAA4D;AAC5D,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE9E,iEAAiE;AACjE,OAAO,EACL,YAAY,EACZ,gBAAgB,GAEjB,MAAM,cAAc,CAAA"}
package/dist/math.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * (legacy txs, EIP-1559 with zero headroom, cold-start cap, post-EIP-4844
8
8
  * blob fee) is handled here rather than at higher layers.
9
9
  */
10
- import type { PriorityModel, RawTx, TierRecommendation, TierName, TipPercentiles, TipSample, Trend } from './types.js';
10
+ import { PriorityModel, TierName, Trend, type RawTx, type TierRecommendation, type TipPercentiles, type TipSample } from './types.js';
11
11
  /** Default priority-fee decay cap = 12.5% / block (EIP-1559 parity). */
12
12
  export declare const DEFAULT_PRIORITY_FEE_DECAY_CAP: bigint;
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,KAAK,EACN,MAAM,YAAY,CAAA;AAcnB,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,QAAW,CAAA;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,KAAK,EAAE,SAAS,MAAM,KAAG,MAezD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,KAAG,cASrD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,KAAK,EAAE,EAAE,SAAS,MAAM,KAAG,MAAM,EAGhB,CAAA;AAEjD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,KAAG,KAS/C,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,gBAAgB,MAAM,EACtB,eAAe,MAAM,GAAG,SAAS,EACjC,0BAA0B,MAAM,GAAG,SAAS,EAC5C,WAAU,MAAM,GAAG,IAAqC,KACvD,MAgBF,CAAA;AAeD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,SAAS,EAAE,EACpB,aAAa,MAAM,EAAE,KACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAkCvB,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAqDjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,cAAc,EAAE,SAAS,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,KAAK,CAAA;IACnB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAA;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACvD,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,KAAG;IACF,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IAC3C,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;CA4DxC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,MAAM,KAAG,MAY1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,KAC7D,KAAK,EAOP,CAAA"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,aAAa,EACb,QAAQ,EACR,KAAK,EAEL,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,YAAY,CAAA;AAcnB,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,QAAW,CAAA;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,KAAK,EAAE,SAAS,MAAM,KAAG,MAezD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,KAAG,cASrD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,KAAK,EAAE,EAAE,SAAS,MAAM,KAAG,MAAM,EAK5B,CAAA;AAErC;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,KAAG,KAS/C,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,gBAAgB,MAAM,EACtB,eAAe,MAAM,GAAG,SAAS,EACjC,0BAA0B,MAAM,GAAG,SAAS,EAC5C,WAAU,MAAM,GAAG,IAAqC,KACvD,MAgBF,CAAA;AAeD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,SAAS,EAAE,EACpB,aAAa,MAAM,EAAE,KACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAkCvB,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAmDjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,cAAc,EAAE,SAAS,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,KAAK,CAAA;IACnB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAA;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACvD,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,KAAG;IACF,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IAC3C,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;CA4DxC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,MAAM,KAAG,MAY1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,KAC7D,KAAK,EAOP,CAAA"}
package/dist/math.js CHANGED
@@ -7,6 +7,7 @@
7
7
  * (legacy txs, EIP-1559 with zero headroom, cold-start cap, post-EIP-4844
8
8
  * blob fee) is handled here rather than at higher layers.
9
9
  */
10
+ import { PriorityModel, TierName, Trend, TxType, } from './types.js';
10
11
  const TREND_RISING_THRESHOLD_PCT = 10n;
11
12
  const TREND_FALLING_THRESHOLD_PCT = -10n;
12
13
  /**
@@ -65,7 +66,9 @@ export const computePercentiles = (sorted) => {
65
66
  */
66
67
  export const sortedTips = (txs, baseFee) => txs
67
68
  .map((tx) => effectiveTip(tx, baseFee))
68
- .sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
69
+ // Equal-key arm is fine to fold into the >= side the result is
70
+ // a sorted list, not a stable sort by identity.
71
+ .sort((a, b) => (a < b ? -1 : 1));
69
72
  /**
70
73
  * Classify a base-fee history as rising, falling, or stable. Threshold
71
74
  * is ±10% comparing first to last value. Single-element or empty input
@@ -73,17 +76,17 @@ export const sortedTips = (txs, baseFee) => txs
73
76
  */
74
77
  export const detectTrend = (history) => {
75
78
  if (history.length < 2)
76
- return 'stable';
79
+ return Trend.stable;
77
80
  const first = history[0];
78
81
  const last = history[history.length - 1];
79
82
  if (first === 0n)
80
- return last > 0n ? 'rising' : 'stable';
83
+ return last > 0n ? Trend.rising : Trend.stable;
81
84
  const change = ((last - first) * 100n) / first;
82
85
  if (change > TREND_RISING_THRESHOLD_PCT)
83
- return 'rising';
86
+ return Trend.rising;
84
87
  if (change < TREND_FALLING_THRESHOLD_PCT)
85
- return 'falling';
86
- return 'stable';
88
+ return Trend.falling;
89
+ return Trend.stable;
87
90
  };
88
91
  /**
89
92
  * Clamp a tip from below by the previously-published tip, decayed at
@@ -128,10 +131,10 @@ export const cappedTip = (rawTip, nowBlockNumber, lastPublished, lastPublishedBl
128
131
  * than chasing the spam lane at p25.
129
132
  */
130
133
  const TIER_PERCENTILE = [
131
- ['slow', 10],
132
- ['standard', 50],
133
- ['fast', 75],
134
- ['instant', 90],
134
+ [TierName.slow, 10],
135
+ [TierName.standard, 50],
136
+ [TierName.fast, 75],
137
+ [TierName.instant, 90],
135
138
  ];
136
139
  /**
137
140
  * Gas-weighted percentile of a tip distribution. Each sample is one
@@ -209,7 +212,7 @@ export const DEFAULT_BASE_FEE_LIVENESS_BLOCKS = 1;
209
212
  * At `N=1` this matches the pre-v0.2 hardcoded values (1.25 / 1.125 / 1).
210
213
  */
211
214
  const baseFeeBufferMultiplier = (trend, livenessBlocks) => {
212
- if (trend === 'falling')
215
+ if (trend === Trend.falling)
213
216
  return { num: 1n, den: 1n };
214
217
  let num = 1n;
215
218
  let den = 1n;
@@ -217,7 +220,7 @@ const baseFeeBufferMultiplier = (trend, livenessBlocks) => {
217
220
  num *= 9n;
218
221
  den *= 8n;
219
222
  }
220
- if (trend === 'rising') {
223
+ if (trend === Trend.rising) {
221
224
  num *= 10n;
222
225
  den *= 9n;
223
226
  }
@@ -226,13 +229,12 @@ const baseFeeBufferMultiplier = (trend, livenessBlocks) => {
226
229
  /**
227
230
  * `priorityModel` cutoff: which tx types count as "paying lane."
228
231
  *
229
- * A sample is in the paying lane iff its `txType >= EIP1559_TYPE_CUTOFF`
232
+ * A sample is in the paying lane iff its `txType >= TxType.eip1559`
230
233
  * (≥ 2). Samples without a captured `txType` are excluded from the
231
234
  * paying-lane filter — better to under-count than to mis-bucket a
232
235
  * legacy tx into the priority lane and pull the recommendation up.
233
236
  */
234
- const EIP1559_TYPE_CUTOFF = 2;
235
- const isPayingLaneSample = (sample) => sample.txType !== undefined && sample.txType >= EIP1559_TYPE_CUTOFF;
237
+ const isPayingLaneSample = (sample) => sample.txType !== undefined && sample.txType >= TxType.eip1559;
236
238
  /**
237
239
  * Concatenate ring + mempool samples into one gas-weighted distribution
238
240
  * and read the four tier percentiles from it. Each tier's raw tip is
@@ -274,7 +276,7 @@ export const computeTiers = (input) => {
274
276
  const decayCap = input.priorityFeeDecayCap === undefined
275
277
  ? DEFAULT_PRIORITY_FEE_DECAY_CAP
276
278
  : input.priorityFeeDecayCap;
277
- const priorityModel = input.priorityModel ?? 'flat';
279
+ const priorityModel = input.priorityModel ?? PriorityModel.eip1559;
278
280
  const combined = [...input.ringSamples, ...input.mempoolSamples];
279
281
  const targets = TIER_PERCENTILE.map(([, p]) => p);
280
282
  // Full-distribution percentiles always exist — `slow` reads from them
@@ -282,13 +284,13 @@ export const computeTiers = (input) => {
282
284
  const fullPercentiles = gasWeightedPercentiles(combined, targets);
283
285
  // Paying-lane percentiles only computed when the model demands them;
284
286
  // saves one pass on the much-more-common 'flat' path.
285
- const payingLanePercentiles = priorityModel === 'eip1559'
287
+ const payingLanePercentiles = priorityModel === PriorityModel.eip1559
286
288
  ? gasWeightedPercentiles(combined.filter(isPayingLaneSample), targets)
287
289
  : null;
288
290
  const tiers = {};
289
291
  const publishedTips = {};
290
292
  for (const [name, percentileTarget] of TIER_PERCENTILE) {
291
- const useFiltered = payingLanePercentiles !== null && name !== 'slow';
293
+ const useFiltered = payingLanePercentiles !== null && name !== TierName.slow;
292
294
  const source = useFiltered ? payingLanePercentiles : fullPercentiles;
293
295
  const rawTip = source[percentileTarget];
294
296
  const tip = cappedTip(rawTip, input.blockNumber, input.lastPublishedTips?.[name], input.lastPublishedBlockNumber, decayCap);
package/dist/math.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
package/dist/oracle.d.ts CHANGED
@@ -40,12 +40,12 @@ export interface CreateGasOracleOptions {
40
40
  /** EVM chain ID. Echoed back in `state.chainId`; not validated. */
41
41
  chainId: number;
42
42
  /**
43
- * Polling interval in ms. Default 10_000. Only consulted when the
43
+ * Polling interval in ms. Default 10_000n. Only consulted when the
44
44
  * oracle is constructing its own private `ChainSource` (i.e. when
45
45
  * `client` is provided). When a `source` is provided, the source's
46
46
  * own poll interval governs.
47
47
  */
48
- pollIntervalMs?: number;
48
+ pollIntervalMs?: bigint;
49
49
  /**
50
50
  * Optional error sink. Called for each sub-RPC that fails inside a
51
51
  * poll cycle. Default behavior is to swallow — the oracle keeps running
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAQzE,OAAO,KAAK,EAEV,cAAc,EAEd,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAA;AAMnB,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;IACrC;;;;;;;OAOG;IACH,kBAAkB,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAA;IAClD;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;CAC/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO;IACtC,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,KAAG,cAAc,GAAG,IA6FpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,SAkRjE,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,GAAU,SAAS;IAC3C,qDAAqD;IACrD,MAAM,EAAE,YAAY,CAAA;IACpB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,kDAAkD;IAClD,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,yCAAyC;IACzC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CACjD,KAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAahC,CAAA;AAID,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
package/dist/oracle.js CHANGED
@@ -14,7 +14,7 @@ import { createChainSource, } from '@valve-tech/chain-source';
14
14
  import { fetchOracleInputs } from './transport.js';
15
15
  import { computeBlobBaseFee, computeTiers, detectTrend, flattenTxPool, } from './math.js';
16
16
  import { blockToSample, mempoolToSamples } from './samples.js';
17
- const DEFAULT_POLL_INTERVAL_MS = 10000;
17
+ const DEFAULT_POLL_INTERVAL_MS = 10000n;
18
18
  const TREND_WINDOW = 5;
19
19
  const WAD = 1000000000000000000n;
20
20
  /**
@@ -48,8 +48,8 @@ export const reducePollInputs = (input) => {
48
48
  const ringSamples = blockSample.tips;
49
49
  // Mempool — best-effort signal.
50
50
  let mempool = {
51
- pendingCount: 0,
52
- queuedCount: 0,
51
+ pendingCount: 0n,
52
+ queuedCount: 0n,
53
53
  pendingGasDemand: 0n,
54
54
  blockGasLimit,
55
55
  };
@@ -58,8 +58,8 @@ export const reducePollInputs = (input) => {
58
58
  const pendingTxs = flattenTxPool(txPool.pending);
59
59
  const queuedTxs = flattenTxPool(txPool.queued);
60
60
  mempool = {
61
- pendingCount: pendingTxs.length,
62
- queuedCount: queuedTxs.length,
61
+ pendingCount: BigInt(pendingTxs.length),
62
+ queuedCount: BigInt(queuedTxs.length),
63
63
  pendingGasDemand: pendingTxs.reduce((sum, tx) => sum + (tx.gas ? BigInt(tx.gas) : 0n), 0n),
64
64
  blockGasLimit,
65
65
  };
@@ -106,6 +106,7 @@ export const reducePollInputs = (input) => {
106
106
  blob,
107
107
  tiers,
108
108
  ring,
109
+ mempoolSamples,
109
110
  lastPublishedTips: publishedTips,
110
111
  lastPublishedBlockNumber: blockNumber,
111
112
  };
@@ -155,6 +156,10 @@ export const createGasOracle = (options) => {
155
156
  if (options.priorityFeeDecayCap !== undefined &&
156
157
  options.priorityFeeDecayCap !== null) {
157
158
  const cap = options.priorityFeeDecayCap;
159
+ // Both halves of this `||` have dedicated tests (negative cap,
160
+ // exceeds WAD). v8 still flags one arm when most calls exit
161
+ // before this throw.
162
+ /* c8 ignore next */
158
163
  if (cap < 0n || cap > WAD) {
159
164
  throw new Error(`priorityFeeDecayCap must be in [0n, ${WAD}] (wad-scale; null = uncapped); got ${cap}`);
160
165
  }
@@ -178,7 +183,7 @@ export const createGasOracle = (options) => {
178
183
  createChainSource({
179
184
  // hasClient is true when hasSource is false, by the validation above.
180
185
  client: options.client,
181
- pollIntervalMs,
186
+ pollIntervalMs: Number(pollIntervalMs),
182
187
  poll: options.poll,
183
188
  onError: options.onError,
184
189
  });
@@ -215,6 +220,11 @@ export const createGasOracle = (options) => {
215
220
  priorityModel: options.priorityModel,
216
221
  baseFeeLivenessBlocks: options.baseFeeLivenessBlocks,
217
222
  });
223
+ // `next` is null only when the input block is null, but every
224
+ // caller of reduceAndPublish (handleBlock, pollOnce) already
225
+ // gates on a non-null block. Guard kept defensively in case a
226
+ // future caller wires it differently.
227
+ /* c8 ignore next */
218
228
  if (next) {
219
229
  state = next;
220
230
  notify(next);
@@ -252,10 +262,15 @@ export const createGasOracle = (options) => {
252
262
  // cycles are safe.
253
263
  if (ownsSource)
254
264
  source.start();
255
- if (staleTimer !== null) {
256
- clearTimeout(staleTimer);
257
- staleTimer = null;
258
- }
265
+ // Note: no need to clear `staleTimer` here. The only path that
266
+ // sets a non-null `staleTimer` is `scheduleIdleDetach` (called
267
+ // when the last subscriber leaves), and that path leaves
268
+ // `unsubBlocks !== null`. So a re-subscribe entering this
269
+ // function early-returns at the `unsubBlocks !== null` guard
270
+ // above before reaching this point. Every other path that
271
+ // crosses an attach/detach boundary (timer-driven detach,
272
+ // visibility-driven detach, oracle.stop, scheduleIdleDetach
273
+ // with staleAfter <= 0) clears the timer in `detachFromSource`.
259
274
  };
260
275
  const detachFromSource = () => {
261
276
  if (unsubBlocks !== null) {
@@ -283,8 +298,9 @@ export const createGasOracle = (options) => {
283
298
  if (staleTimer !== null)
284
299
  return;
285
300
  staleTimer = setTimeout(() => {
301
+ // detachFromSource already nullifies staleTimer; no need to
302
+ // do it explicitly here.
286
303
  detachFromSource();
287
- staleTimer = null;
288
304
  }, staleAfter);
289
305
  };
290
306
  const documentRef = typeof globalThis !== 'undefined' && 'document' in globalThis
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.js","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oracle.js","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Per-chain configuration presets for `createGasOracle`. Most chains
3
+ * need NO entry — the package default (PriorityModel.eip1559, no
4
+ * decay-cap override, default polling cadence) is correct. Add an entry
5
+ * only after verifying the chain's actual validator behavior against
6
+ * block-level data; the cost of being wrong is silent under-pricing
7
+ * and stuck transactions.
8
+ *
9
+ * PulseChain (chain 369) is the canonical exception: extractive
10
+ * validators ignore the EIP-2718 type byte and maximize fee/gas
11
+ * regardless of tx envelope, so percentile math has to draw from the
12
+ * full distribution (PriorityModel.flat).
13
+ */
14
+ import type { CreateGasOracleOptions } from './oracle.js';
15
+ /**
16
+ * Chain-specific configuration overrides. Includes the fields whose
17
+ * correct value varies by chain — transport (`client`/`source`),
18
+ * error handling (`onError`), and other non-chain-specific options
19
+ * are NOT here (those are caller-supplied, never preset).
20
+ */
21
+ export type ChainPreset = {
22
+ chainId: number;
23
+ } & Pick<CreateGasOracleOptions, 'priorityModel' | 'priorityFeeDecayCap' | 'pollIntervalMs'>;
24
+ export declare const chainPresets: {
25
+ readonly pulsechain: {
26
+ readonly chainId: 369;
27
+ readonly priorityModel: "flat";
28
+ };
29
+ };
30
+ /**
31
+ * Look up a preset by chainId. Returns `undefined` when no preset is
32
+ * registered — caller should treat that as "default behavior is correct"
33
+ * and call `createGasOracle` without spreading any preset.
34
+ */
35
+ export declare const presetForChainId: (chainId: number) => ChainPreset | undefined;
36
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAGzD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAAI,CACN,sBAAsB,EACtB,eAAe,GAAG,qBAAqB,GAAG,gBAAgB,CAC3D,CAAA;AAED,eAAO,MAAM,YAAY;;;;;CAKuB,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,KACd,WAAW,GAAG,SACyD,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Per-chain configuration presets for `createGasOracle`. Most chains
3
+ * need NO entry — the package default (PriorityModel.eip1559, no
4
+ * decay-cap override, default polling cadence) is correct. Add an entry
5
+ * only after verifying the chain's actual validator behavior against
6
+ * block-level data; the cost of being wrong is silent under-pricing
7
+ * and stuck transactions.
8
+ *
9
+ * PulseChain (chain 369) is the canonical exception: extractive
10
+ * validators ignore the EIP-2718 type byte and maximize fee/gas
11
+ * regardless of tx envelope, so percentile math has to draw from the
12
+ * full distribution (PriorityModel.flat).
13
+ */
14
+ import { PriorityModel } from './types.js';
15
+ export const chainPresets = {
16
+ pulsechain: {
17
+ chainId: 369,
18
+ priorityModel: PriorityModel.flat,
19
+ },
20
+ };
21
+ /**
22
+ * Look up a preset by chainId. Returns `undefined` when no preset is
23
+ * registered — caller should treat that as "default behavior is correct"
24
+ * and call `createGasOracle` without spreading any preset.
25
+ */
26
+ export const presetForChainId = (chainId) => Object.values(chainPresets).find((preset) => preset.chainId === chainId);
27
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAe1C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE,GAAG;QACZ,aAAa,EAAE,aAAa,CAAC,IAAI;KAClC;CAC6C,CAAA;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAe,EACU,EAAE,CAC3B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Same-nonce EIP-1559 replacement helpers. Pure functions; no I/O.
3
+ *
4
+ * The protocol-replacement-floor math is verified against geth
5
+ * `core/txpool/legacypool/list.go:Add()`, geth `core/txpool/blobpool/
6
+ * config.go`, reth `crates/transaction-pool/src/config.rs`, and PulseChain
7
+ * `gitlab.com/pulsechaincom/go-pulse/master/core/txpool/legacypool/
8
+ * legacypool.go`. The `+1n` term in `minimumReplacementFee` is load-
9
+ * bearing for small `current` values where geth's integer-floor threshold
10
+ * collapses below the strict `old < tx` check.
11
+ */
12
+ import { TierName, type GasOracleState } from './types.js';
13
+ import type { TxIdentifier } from './mempool.js';
14
+ export declare const ReplacementBumpPercent: {
15
+ /** geth `legacypool.DefaultConfig.PriceBump` — legacy / EIP-2930 / EIP-1559 / EIP-7702. */
16
+ readonly default: 10n;
17
+ /** geth `blobpool.DefaultConfig.PriceBump` — EIP-4844 blob txs. */
18
+ readonly blob: 100n;
19
+ };
20
+ /**
21
+ * Minimum fee required to replace a tx at a given current fee. Per-field
22
+ * primitive — apply once to `maxFeePerGas` and once to
23
+ * `maxPriorityFeePerGas` for an EIP-1559 replacement.
24
+ *
25
+ * Returns `(current * (100 + bump)) / 100 + 1`, where `bump` is `100n`
26
+ * for blob txs and `10n` otherwise. The `+1` clears geth's strict
27
+ * `old < tx` check at small `current` values where the integer-floor
28
+ * threshold collapses (e.g. `current=1`, `floor(1.1)=1`).
29
+ *
30
+ * Unknown future tx-type bytes default to the legacy/1559 +10% bump —
31
+ * the +100% rule is blob-specific.
32
+ */
33
+ export declare const minimumReplacementFee: (current: bigint, txType: number) => bigint;
34
+ export interface ReplacementGas {
35
+ maxFeePerGas: bigint;
36
+ maxPriorityFeePerGas: bigint;
37
+ }
38
+ /**
39
+ * Compute (maxFeePerGas, maxPriorityFeePerGas) for replacing a 1559 tx.
40
+ * Per-field rule: max(target, protocolFloor). Final guard ensures
41
+ * `result.maxFeePerGas >= result.maxPriorityFeePerGas` so the result is
42
+ * a well-formed tx even on degenerate target inputs.
43
+ *
44
+ * 1559-scoped — for blob replacement use `minimumReplacementFee(_,
45
+ * TxType.blob)` directly per fee field.
46
+ */
47
+ export declare const bumpForReplacement: (currentGas: ReplacementGas, targetGas: ReplacementGas) => ReplacementGas;
48
+ export declare const BumpStrategy: {
49
+ readonly cheapestThatLands: "cheapestThatLands";
50
+ readonly oneStepFasterThanRecommended: "oneStepFasterThanRecommended";
51
+ readonly instant: "instant";
52
+ };
53
+ export type BumpStrategy = (typeof BumpStrategy)[keyof typeof BumpStrategy];
54
+ export interface RecommendBumpTierOptions {
55
+ /** Default: `BumpStrategy.cheapestThatLands`. */
56
+ strategy?: BumpStrategy;
57
+ }
58
+ /**
59
+ * Pick a tier to bump to for a same-nonce EIP-1559 replacement. The
60
+ * effective floor is `max(protocolFloor, outpaceFloor)`:
61
+ * - protocolFloor = `minimumReplacementFee(stuckTx.priorityTip,
62
+ * TxType.eip1559)` — the geth +10% rule.
63
+ * - outpaceFloor = the tip required to be ranked strictly above every
64
+ * tx currently ahead of `stuckTx.identifier` in
65
+ * `snapshot.mempoolSamples`. Computed by locating stuck's rank via
66
+ * `tipForBlockPosition({ kind: 'aheadOf', tx: identifier })` then
67
+ * querying `{ kind: 'rank', rank: stuckRank - 1n }` to outbid the
68
+ * tx currently just above stuck. When stuck is already at the top
69
+ * of the distribution (or not present), this is `0n` and only the
70
+ * protocol floor applies.
71
+ *
72
+ * Returns `null` when no tier clears the effective floor — the original
73
+ * was already paying above the top of the ladder, or the snapshot has
74
+ * no tip data.
75
+ */
76
+ export declare const recommendBumpTier: (snapshot: GasOracleState, stuckTx: {
77
+ priorityTip: bigint;
78
+ identifier?: TxIdentifier;
79
+ }, options?: RecommendBumpTierOptions) => TierName | null;
80
+ //# sourceMappingURL=replacement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replacement.d.ts","sourceRoot":"","sources":["../src/replacement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAe,QAAQ,EAAU,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,eAAO,MAAM,sBAAsB;IACjC,2FAA2F;;IAE3F,mEAAmE;;CAE3D,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,QAAQ,MAAM,KACb,MAMF,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,cAAc,EAC1B,WAAW,cAAc,KACxB,cAiBF,CAAA;AAED,eAAO,MAAM,YAAY;;;;CAIf,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAA;AAE3E,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,cAAc,EACxB,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,YAAY,CAAA;CAAE,EAC3D,UAAS,wBAA6B,KACrC,QAAQ,GAAG,IAmCb,CAAA"}