fema-pf-calc 1.0.0 → 1.0.2

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/README.md CHANGED
@@ -8,7 +8,7 @@ Supports **mainnet-beta** and **devnet**.
8
8
 
9
9
  ## The Problem
10
10
 
11
- Every Solana transaction can include a priority fee a tip paid to validators to land the transaction faster. Set it too low and your transaction gets stuck or dropped. Set it too high and you overpay.
11
+ Every Solana transaction can include a priority fee, a tip paid to validators to land the transaction faster. Set it too low and your transaction gets stuck or dropped. Set it too high and you overpay.
12
12
 
13
13
  The fee you need also depends on what kind of transaction you are sending. A Jupiter swap competes with other Jupiter swaps. An NFT mint competes with other NFT mints. They are not in the same queue, so they should not use the same fee.
14
14
 
@@ -24,7 +24,7 @@ FEMA solves this by scanning recent blocks, building a real fee distribution, an
24
24
  4. If you specify a protocol or pass your transaction, it filters the data to only transactions that used the same programs as yours
25
25
  5. It returns the fee at the percentile matching your chosen speed and strategy
26
26
 
27
- Results are cached for 5–10 seconds to avoid hammering the RPC on every call.
27
+ Results are cached for 30 seconds to avoid hammering the RPC on every call.
28
28
 
29
29
  ---
30
30
 
@@ -65,30 +65,30 @@ That is all a developer needs to do. No RPC calls, no math, no guessing.
65
65
 
66
66
  ```ts
67
67
  const result = await estimateFee({
68
- speed: "slow" | "medium" | "fast", // how urgently you need it to land
69
- strategy: "cheap" | "balanced" | "aggressive", // how competitive to be
70
- protocol: "jupiter" | "raydium" | "orca" | "nft" | "pumpfun" | "openbook" | "system" | "token",
71
- transaction: myTransaction, // pass your actual tx for automatic protocol detection
72
- maxFee: 500_000, // optional cap in microLamports
73
- includeStats: true, // include full distribution in response
68
+ speed: "fast", // "slow" | "medium" | "fast"
69
+ strategy: "balanced", // "cheap" | "balanced" | "aggressive"
70
+ protocol: "jupiter", // see supported protocols below
71
+ transaction: myTransaction, // pass your actual tx for automatic protocol detection
72
+ maxFee: 500_000, // optional cap in microLamports
73
+ includeStats: true, // include full distribution in response
74
74
  });
75
75
  ```
76
76
 
77
77
  ### Speed
78
78
 
79
- | Speed | Percentile | What it means |
80
- |-------|-----------|---------------|
81
- | `slow` | p25 | Cheaper. May take a few blocks to land. |
82
- | `medium` | p50 | Balanced. Lands within a couple of blocks. |
83
- | `fast` | p75 | More expensive. Designed to land in the next block. |
79
+ | Speed | Percentile | What it means |
80
+ | -------- | ---------- | --------------------------------------------------- |
81
+ | `slow` | p25 | Cheaper. May take a few blocks to land. |
82
+ | `medium` | p50 | Balanced. Lands within a couple of blocks. |
83
+ | `fast` | p75 | More expensive. Designed to land in the next block. |
84
84
 
85
85
  ### Strategy
86
86
 
87
- | Strategy | Adjustment | What it means |
88
- |----------|-----------|---------------|
89
- | `cheap` | −10 percentile points | Slightly undercut the target. Risk: might not land if the network spikes. |
90
- | `balanced` | none | Hit the target exactly. Safe default for most use cases. |
91
- | `aggressive` | +15 percentile points | Slightly overpay to guarantee landing. |
87
+ | Strategy | Adjustment | What it means |
88
+ | ------------ | --------------------- | ------------------------------------------------------------------------- |
89
+ | `cheap` | −10 percentile points | Slightly undercut the target. Risk: might not land if the network spikes. |
90
+ | `balanced` | none | Hit the target exactly. Safe default for most use cases. |
91
+ | `aggressive` | +15 percentile points | Slightly overpay to guarantee landing. |
92
92
 
93
93
  ---
94
94
 
@@ -98,13 +98,19 @@ The most powerful feature of FEMA. When you specify a protocol, FEMA filters the
98
98
 
99
99
  ```ts
100
100
  // Jupiter swap
101
- const { fee: swapFee } = await estimateFee({ speed: "fast", protocol: "jupiter" });
101
+ const { fee: swapFee } = await estimateFee({
102
+ speed: "fast",
103
+ protocol: "jupiter",
104
+ });
102
105
 
103
106
  // NFT mint
104
107
  const { fee: nftFee } = await estimateFee({ speed: "fast", protocol: "nft" });
105
108
 
106
109
  // Pump.fun trade
107
- const { fee: pumpFee } = await estimateFee({ speed: "fast", protocol: "pumpfun" });
110
+ const { fee: pumpFee } = await estimateFee({
111
+ speed: "fast",
112
+ protocol: "pumpfun",
113
+ });
108
114
  ```
109
115
 
110
116
  Alternatively, pass your actual transaction and FEMA will detect the protocol automatically:
@@ -118,16 +124,16 @@ const { fee } = await estimateFee({
118
124
 
119
125
  ### Supported Protocols
120
126
 
121
- | Protocol | Programs Included |
122
- |----------|------------------|
123
- | `jupiter` | Jupiter V4, Jupiter V6 |
124
- | `raydium` | Raydium AMM V4, AMM V5, CLMM |
125
- | `orca` | Orca Whirlpool, Orca V1 |
126
- | `nft` | Token Metadata, Candy Machine V2/V3, Auction House |
127
- | `pumpfun` | Pump.fun |
128
- | `openbook` | OpenBook V1, OpenBook V2 |
129
- | `system` | System Program (SOL transfers) |
130
- | `token` | Token Program, Token 2022, Associated Token Program |
127
+ | Protocol | Programs Included |
128
+ | ---------- | --------------------------------------------------- |
129
+ | `jupiter` | Jupiter V4, Jupiter V6 |
130
+ | `raydium` | Raydium AMM V4, AMM V5, CLMM |
131
+ | `orca` | Orca Whirlpool, Orca V1 |
132
+ | `nft` | Token Metadata, Candy Machine V2/V3, Auction House |
133
+ | `pumpfun` | Pump.fun |
134
+ | `openbook` | OpenBook V1, OpenBook V2 |
135
+ | `system` | System Program (SOL transfers) |
136
+ | `token` | Token Program, Token 2022, Associated Token Program |
131
137
 
132
138
  ---
133
139
 
@@ -166,18 +172,18 @@ The `fee` value is in **microLamports per compute unit** — the exact unit that
166
172
 
167
173
  ```ts
168
174
  init({
169
- cluster: "mainnet-beta", // "mainnet-beta" | "devnet" (default: "mainnet-beta")
170
- rpcUrl: "https://your-rpc.com", // optional — overrides the cluster default
171
- cacheDurationMs: 7000, // how long to cache results in ms (default: 7000)
175
+ cluster: "mainnet-beta", // "mainnet-beta" | "devnet" (default: "mainnet-beta")
176
+ rpcUrl: "https://your-rpc.com", // optional — overrides the cluster default
177
+ cacheDurationMs: 7000, // how long to cache results in ms (default: 7000)
172
178
  });
173
179
  ```
174
180
 
175
181
  ### Cluster RPC defaults
176
182
 
177
- | Cluster | Default RPC |
178
- |---------|-------------|
183
+ | Cluster | Default RPC |
184
+ | -------------- | ------------------------------------- |
179
185
  | `mainnet-beta` | `https://api.mainnet-beta.solana.com` |
180
- | `devnet` | `https://api.devnet.solana.com` |
186
+ | `devnet` | `https://api.devnet.solana.com` |
181
187
 
182
188
  Or configure via `.env`:
183
189
 
@@ -185,52 +191,19 @@ Or configure via `.env`:
185
191
  # Network: mainnet-beta (default) or devnet
186
192
  SOLANA_CLUSTER=mainnet-beta
187
193
 
188
- # Optional: override the RPC URL for the selected cluster
194
+ # Helius API key get one free at https://helius.dev
195
+ # The base URL is set in code; only your key goes here
196
+ HELIUS_API_KEY=your-api-key-here
197
+
198
+ # Optional: use a different RPC provider entirely (overrides HELIUS_API_KEY)
189
199
  # SOLANA_RPC_URL=https://your-custom-rpc.com
190
200
 
191
201
  # How long to cache fee data in milliseconds (default: 7000)
192
202
  CACHE_DURATION_MS=7000
193
-
194
- # Express server port (default: 3000)
195
- PORT=3000
196
203
  ```
197
204
 
198
205
  ---
199
206
 
200
- ## Test Script
201
-
202
- Run a live fee report from the terminal:
203
-
204
- ```bash
205
- # Mainnet (default)
206
- ts-node test-fees.ts
207
-
208
- # Devnet
209
- ts-node test-fees.ts --network devnet
210
- ts-node test-fees.ts --network=devnet
211
-
212
- # Via env var
213
- SOLANA_CLUSTER=devnet ts-node test-fees.ts
214
- ```
215
-
216
- ---
217
-
218
- ## Optional HTTP Server
219
-
220
- FEMA includes an Express server for teams who want to expose fee estimation over HTTP instead of importing the package directly.
221
-
222
- ```bash
223
- npm run server
224
- ```
225
-
226
- | Endpoint | Description |
227
- |----------|-------------|
228
- | `GET /health` | Check server status and active RPC URL |
229
- | `GET /estimate-fee?speed=fast&strategy=balanced` | Get a fee recommendation |
230
- | `GET /stats` | Get fee with full distribution stats |
231
-
232
- ---
233
-
234
207
  ## RPC Recommendations
235
208
 
236
209
  The public Solana RPC endpoints rate-limit aggressively. For reliable results use a private RPC:
@@ -246,7 +219,6 @@ The public Solana RPC endpoints rate-limit aggressively. For reliable results us
246
219
  ```
247
220
  src/
248
221
  ├── index.ts # SDK entry point — estimateFee() and init()
249
- ├── server.ts # Optional Express HTTP server
250
222
  ├── types.ts # TypeScript types and interfaces
251
223
  ├── config.ts # Configuration and cluster RPC resolution
252
224
  ├── protocols.ts # Known protocol registry (Jupiter, Raydium, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAG9C,CAAC;AAsBF,wBAAgB,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAIzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,wBAAgB,SAAS,IAAI,UAAU,CAEtC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAG9C,CAAC;AA0BF,wBAAgB,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAIzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,wBAAgB,SAAS,IAAI,UAAU,CAEtC"}
package/dist/config.js CHANGED
@@ -15,8 +15,13 @@ function resolveCluster() {
15
15
  return "devnet";
16
16
  return "mainnet-beta";
17
17
  }
18
+ const HELIUS_RPC = "https://mainnet.helius-rpc.com/?api-key=";
18
19
  function resolveRpc(cluster) {
19
- return process.env.SOLANA_RPC_URL ?? CLUSTER_RPC[cluster];
20
+ if (process.env.SOLANA_RPC_URL)
21
+ return process.env.SOLANA_RPC_URL;
22
+ if (process.env.HELIUS_API_KEY)
23
+ return `${HELIUS_RPC}${process.env.HELIUS_API_KEY}`;
24
+ return CLUSTER_RPC[cluster];
20
25
  }
21
26
  const defaultCluster = resolveCluster();
22
27
  let _config = {
@@ -26,7 +31,7 @@ let _config = {
26
31
  };
27
32
  function init(overrides) {
28
33
  const cluster = overrides.cluster ?? _config.cluster;
29
- const rpcUrl = overrides.rpcUrl ?? CLUSTER_RPC[cluster];
34
+ const rpcUrl = overrides.rpcUrl ?? resolveRpc(cluster);
30
35
  _config = { ..._config, ...overrides, cluster, rpcUrl };
31
36
  }
32
37
  function getConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AA2BA,oBAIC;AAID,8BAEC;AAnCD,MAAM,WAAW,GAAkC;IACjD,cAAc,EAAE,qCAAqC;IACrD,QAAQ,EAAE,+BAA+B;CAC1C,CAAC;AA4BO,kCAAW;AA1BpB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,cAAc,CAAC;IACzD,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAsB;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,cAAc,GAAG,cAAc,EAAE,CAAC;AAExC,IAAI,OAAO,GAAe;IACxB,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB,CAAC;CAC3E,CAAC;AAEF,SAAgB,IAAI,CAAC,SAA8B;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AAID,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AA+BA,oBAIC;AAID,8BAEC;AAvCD,MAAM,WAAW,GAAkC;IACjD,cAAc,EAAE,qCAAqC;IACrD,QAAQ,EAAE,+BAA+B;CAC1C,CAAC;AAgCO,kCAAW;AA9BpB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,cAAc,CAAC;IACzD,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,GAAG,0CAA0C,CAAC;AAE9D,SAAS,UAAU,CAAC,OAAsB;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IACpF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,cAAc,GAAG,cAAc,EAAE,CAAC;AAExC,IAAI,OAAO,GAAe;IACxB,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB,CAAC;CAC3E,CAAC;AAEF,SAAgB,IAAI,CAAC,SAA8B;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AAID,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAA6B,MAAM,SAAS,CAAC;AAiBvG,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,eAAe,EACf,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,wBAAgB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAQtD;AAID,wBAAsB,WAAW,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsE5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAA6B,MAAM,SAAS,CAAC;AAiBvG,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,eAAe,EACf,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkBxC,wBAAgB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAiBtD;AAID,wBAAsB,WAAW,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsE5B"}
package/dist/index.js CHANGED
@@ -13,11 +13,30 @@ var protocols_2 = require("./protocols");
13
13
  Object.defineProperty(exports, "PROTOCOLS", { enumerable: true, get: function () { return protocols_2.PROTOCOLS; } });
14
14
  // ─── SDK initialisation ───────────────────────────────────────────────────────
15
15
  let _started = false;
16
+ // Deduplicate concurrent fetches — if a block scan is already in flight,
17
+ // all callers share the same promise instead of each firing their own RPC requests.
18
+ let _pendingFetch = null;
19
+ async function fetchEntries(needsProgramData) {
20
+ if (_pendingFetch)
21
+ return _pendingFetch;
22
+ _pendingFetch = (0, solana_1.fetchRecentPriorityFees)(30, needsProgramData).finally(() => {
23
+ _pendingFetch = null;
24
+ });
25
+ return _pendingFetch;
26
+ }
16
27
  function init(config) {
17
28
  (0, config_1.init)(config);
18
29
  (0, solana_1.resetConnection)();
19
30
  if (!_started) {
20
- (0, database_1.startPersistedInterval)(() => (0, database_1.getLatestSnapshotSync)(), 15000);
31
+ // Pre-warm the cache so the first estimateFee call is instant
32
+ fetchEntries(true).then((entries) => {
33
+ if (entries.length > 0) {
34
+ const { snapshot } = (0, feeCalculator_1.calculateFee)(entries.map(e => e.fee).sort((a, b) => a - b), "medium", "balanced");
35
+ (0, cache_1.setCache)(snapshot, entries);
36
+ (0, database_1.setLatestSnapshot)(snapshot);
37
+ }
38
+ }).catch(() => { });
39
+ (0, database_1.startPersistedInterval)(() => (0, database_1.getLatestSnapshotSync)(), 30000);
21
40
  _started = true;
22
41
  }
23
42
  }
@@ -53,7 +72,7 @@ async function estimateFee(options = {}) {
53
72
  let entries = [];
54
73
  let fromFallback = false;
55
74
  try {
56
- entries = await (0, solana_1.fetchRecentPriorityFees)(30, needsProgramData);
75
+ entries = await fetchEntries(needsProgramData);
57
76
  if (entries.length === 0)
58
77
  throw new Error("No fee data returned from RPC");
59
78
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/services/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAWpC,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,GAAE,MAAW,EACvB,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqBrB;AAsGD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,WAAW,GAAG,oBAAoB,GACrC,MAAM,EAAE,CAmBV;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,WAAW,GAAG,oBAAoB,GACrC,MAAM,CAgCR"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/services/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAWpC,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,GAAE,MAAW,EACvB,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqBrB;AAoGD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,WAAW,GAAG,oBAAoB,GACrC,MAAM,EAAE,CAmBV;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,WAAW,GAAG,oBAAoB,GACrC,MAAM,CAgCR"}
@@ -79,7 +79,6 @@ async function scanBlocks(connection, blockCount) {
79
79
  const microLamportsPerCU = Math.round((priorityFeeLamports * 1000000) / cuConsumed);
80
80
  if (microLamportsPerCU <= 0)
81
81
  continue;
82
- // Extract program IDs from the transaction's instructions
83
82
  const programs = extractProgramIdsFromBlock(tx.transaction);
84
83
  entries.push({ fee: microLamportsPerCU, programs });
85
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/services/solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/services/solana.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fema-pf-calc",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Intelligent Solana priority fee estimation engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,8 +21,6 @@
21
21
  "build": "tsc",
22
22
  "prepublishOnly": "npm run build",
23
23
  "dev": "ts-node test-fees.ts",
24
- "server": "ts-node src/server.ts",
25
- "start": "node dist/server.js",
26
24
  "lint": "eslint src/**/*.ts"
27
25
  },
28
26
  "keywords": [
@@ -37,7 +35,6 @@
37
35
  },
38
36
  "devDependencies": {
39
37
  "@solana/web3.js": "^1.98.0",
40
- "@types/express": "^5.0.1",
41
38
  "@types/node": "^22.15.2",
42
39
  "dotenv": "^16.5.0",
43
40
  "express": "^4.21.2",