chia-explorer 0.2.0 → 0.2.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
@@ -220,7 +220,7 @@ Skills are read-only and idempotent, persist state between runs, and accept stru
220
220
  | `get_prefarm_status` | Live per-wallet balances of the 21M XCH strategic reserve, plus total spent |
221
221
  | `get_prefarm_spends` | Outflows from the reserve, with destinations labelled when known (partners / market makers / exchanges). Filter by wallet, height, or count |
222
222
  | `list_prefarm_addresses` | The hardcoded registry: custody wallets and known destination addresses. No network call |
223
- | `list_chips` | Merged Chia Improvement Proposals on `main`, parsed front matter + abstract. Filter by status or category |
223
+ | `list_chips` | All Chia Improvement Proposals from the canonical README index in `Chia-Network/chips`, across every status (Living, Draft, Review, Final, Stagnant, Withdrawn, Obsolete, Grandfathered). Draft and Review entries link to open PRs; Final entries link to merged files. Status comes from the README; front matter is enriched in. Filter by status or category |
224
224
  | `get_chip` | One CHIP by number. Returns the merged version (if any), any open PR drafts proposing the same number, and optionally the full markdown |
225
225
  | `list_chip_drafts` | Open PRs against `Chia-Network/chips` that add or modify a CHIP, with parsed front matter and PR context (author, reviewers, draft flag) |
226
226
  | `search_chips` | Keyword search across merged CHIPs and open PR drafts (title, description, abstract, authors) |
@@ -17,7 +17,7 @@ export interface ChipSummary {
17
17
  replaces: string | null;
18
18
  superseded_by: string | null;
19
19
  source_url: string;
20
- filename: string;
20
+ filename: string | null;
21
21
  }
22
22
  export interface MergedChip extends ChipSummary {
23
23
  source: 'merged';
@@ -31,6 +31,11 @@ export interface DraftChip extends ChipSummary {
31
31
  modifies_existing: boolean;
32
32
  body?: string;
33
33
  }
34
+ export interface ChipIndexEntry extends ChipSummary {
35
+ kind: 'file' | 'pr' | 'external';
36
+ pr: PrContext | null;
37
+ ref: string | null;
38
+ }
34
39
  export interface PrContext {
35
40
  number: number;
36
41
  url: string;
@@ -45,7 +50,6 @@ export interface PrContext {
45
50
  head_ref: string;
46
51
  base_ref: string;
47
52
  }
48
- export declare function listMergedChips(): Promise<ChipSummary[]>;
49
53
  export declare function getMergedChip(number: number, options?: {
50
54
  includeBody?: boolean;
51
55
  }): Promise<MergedChip | null>;
@@ -59,10 +63,14 @@ export declare function findChipByNumber(number: number, options?: {
59
63
  merged: MergedChip | null;
60
64
  drafts: DraftChip[];
61
65
  }>;
66
+ export declare function listChipsFromReadme(): Promise<ChipIndexEntry[]>;
62
67
  export interface SearchOptions {
63
68
  status?: string;
64
69
  source?: 'merged' | 'draft' | 'both';
65
70
  limit?: number;
66
71
  }
67
- export declare function searchChips(query: string, options?: SearchOptions): Promise<Array<MergedChip | DraftChip>>;
72
+ export interface SearchMatch extends ChipIndexEntry {
73
+ source: 'merged' | 'draft';
74
+ }
75
+ export declare function searchChips(query: string, options?: SearchOptions): Promise<SearchMatch[]>;
68
76
  export { resetCache } from '../github/cache.js';
@@ -1,10 +1,9 @@
1
1
  import { FileNotFoundError, fetchRawFile, githubApi } from '../github/client.js';
2
2
  import { getCached } from '../github/cache.js';
3
3
  import { buildChipFileName, extractAbstract, extractChipPathInfo, parseChipFrontMatter, } from './parser.js';
4
+ import { getChipReadmeIndex } from './readme-index.js';
4
5
  const REPO = 'Chia-Network/chips';
5
6
  const DEFAULT_REF = 'main';
6
- const CHIPS_DIR = 'CHIPs';
7
- const LISTING_TTL_MS = 5 * 60_000;
8
7
  const CONTENT_TTL_MS = 10 * 60_000;
9
8
  const PR_LIST_TTL_MS = 2 * 60_000;
10
9
  function summarize(fm, body, ref, filename) {
@@ -29,30 +28,11 @@ function summarize(fm, body, ref, filename) {
29
28
  filename,
30
29
  };
31
30
  }
32
- async function listChipFilenames() {
33
- return getCached(`chips:contents:${DEFAULT_REF}`, async () => {
34
- const entries = await githubApi(`/repos/${REPO}/contents/${CHIPS_DIR}?ref=${DEFAULT_REF}`);
35
- return entries
36
- .filter((e) => e.type === 'file' && /^chip-\d{1,5}\.md$/i.test(e.name))
37
- .map((e) => e.path)
38
- .sort();
39
- }, LISTING_TTL_MS);
40
- }
41
31
  async function fetchChipFile(ref, path) {
42
32
  return getCached(`chips:raw:${ref}:${path}`, () => fetchRawFile(REPO, ref, path), CONTENT_TTL_MS);
43
33
  }
44
- export async function listMergedChips() {
45
- const paths = await listChipFilenames();
46
- const summaries = await Promise.all(paths.map(async (path) => {
47
- const body = await fetchChipFile(DEFAULT_REF, path);
48
- const fm = parseChipFrontMatter(body);
49
- return summarize(fm, body, DEFAULT_REF, path);
50
- }));
51
- summaries.sort((a, b) => (a.number ?? 0) - (b.number ?? 0));
52
- return summaries;
53
- }
54
34
  export async function getMergedChip(number, options = {}) {
55
- const filename = `${CHIPS_DIR}/${buildChipFileName(number)}`;
35
+ const filename = `CHIPs/${buildChipFileName(number)}`;
56
36
  try {
57
37
  const body = await fetchChipFile(DEFAULT_REF, filename);
58
38
  const fm = parseChipFrontMatter(body);
@@ -173,6 +153,103 @@ export async function findChipByNumber(number, options = {}) {
173
153
  }
174
154
  return { merged, drafts };
175
155
  }
156
+ function sparseEntry(idx) {
157
+ return {
158
+ number: idx.number,
159
+ title: idx.title,
160
+ status: idx.status,
161
+ category: null,
162
+ sub_category: null,
163
+ type: null,
164
+ authors: [],
165
+ editors: [],
166
+ description: null,
167
+ abstract: null,
168
+ created: null,
169
+ updated: null,
170
+ comments_uri: null,
171
+ requires: null,
172
+ replaces: null,
173
+ superseded_by: null,
174
+ source_url: idx.url,
175
+ filename: idx.filename,
176
+ kind: idx.kind,
177
+ pr: null,
178
+ ref: null,
179
+ };
180
+ }
181
+ async function buildIndexEntry(idx, openPrs) {
182
+ if (idx.kind === 'file' && idx.filename) {
183
+ try {
184
+ const body = await fetchChipFile(DEFAULT_REF, idx.filename);
185
+ const fm = parseChipFrontMatter(body);
186
+ const summary = summarize(fm, body, DEFAULT_REF, idx.filename);
187
+ return {
188
+ ...summary,
189
+ number: idx.number ?? summary.number,
190
+ title: summary.title ?? idx.title,
191
+ status: idx.status,
192
+ source_url: idx.url,
193
+ kind: 'file',
194
+ pr: null,
195
+ ref: DEFAULT_REF,
196
+ };
197
+ }
198
+ catch (err) {
199
+ if (err instanceof FileNotFoundError)
200
+ return sparseEntry(idx);
201
+ throw err;
202
+ }
203
+ }
204
+ if (idx.kind === 'pr' && idx.prNumber != null) {
205
+ const pr = openPrs.get(idx.prNumber);
206
+ if (pr) {
207
+ const files = await listPrChipFiles(pr.number).catch(() => []);
208
+ const chipFiles = files.filter((f) => f.status !== 'removed' && extractChipPathInfo(f.filename));
209
+ let chipFile;
210
+ if (idx.number != null) {
211
+ const target = buildChipFileName(idx.number);
212
+ chipFile = chipFiles.find((f) => f.filename.toLowerCase().endsWith(target.toLowerCase()));
213
+ }
214
+ if (!chipFile)
215
+ chipFile = chipFiles[0];
216
+ if (chipFile) {
217
+ const body = await fetchChipFile(pr.head.sha, chipFile.filename).catch(() => null);
218
+ if (body) {
219
+ const fm = parseChipFrontMatter(body);
220
+ const summary = summarize(fm, body, pr.head.sha, chipFile.filename);
221
+ return {
222
+ ...summary,
223
+ number: idx.number ?? summary.number,
224
+ title: summary.title ?? idx.title,
225
+ status: idx.status,
226
+ source_url: idx.url,
227
+ kind: 'pr',
228
+ pr: prContext(pr),
229
+ ref: pr.head.sha,
230
+ };
231
+ }
232
+ }
233
+ }
234
+ return sparseEntry(idx);
235
+ }
236
+ return sparseEntry(idx);
237
+ }
238
+ export async function listChipsFromReadme() {
239
+ const [index, openPrsList] = await Promise.all([getChipReadmeIndex(), listOpenChipPrs()]);
240
+ const openPrs = new Map(openPrsList.map((pr) => [pr.number, pr]));
241
+ const entries = await Promise.all(index.map((idx) => buildIndexEntry(idx, openPrs)));
242
+ entries.sort((a, b) => {
243
+ if (a.number == null && b.number == null)
244
+ return 0;
245
+ if (a.number == null)
246
+ return 1;
247
+ if (b.number == null)
248
+ return -1;
249
+ return a.number - b.number;
250
+ });
251
+ return entries;
252
+ }
176
253
  function matchesQuery(s, q) {
177
254
  const needle = q.toLowerCase();
178
255
  const haystacks = [];
@@ -188,25 +265,22 @@ function matchesQuery(s, q) {
188
265
  haystacks.push(String(s.number));
189
266
  return haystacks.some((h) => h.toLowerCase().includes(needle));
190
267
  }
268
+ function kindToSource(kind) {
269
+ return kind === 'pr' ? 'draft' : 'merged';
270
+ }
191
271
  export async function searchChips(query, options = {}) {
192
272
  const source = options.source ?? 'both';
193
273
  const limit = options.limit ?? 20;
194
274
  const statusFilter = options.status?.toLowerCase();
195
- const pool = [];
196
- if (source === 'merged' || source === 'both') {
197
- const merged = await listMergedChips();
198
- for (const m of merged) {
199
- pool.push({ ...m, source: 'merged', ref: 'main' });
200
- }
201
- }
202
- if (source === 'draft' || source === 'both') {
203
- const drafts = await listChipDrafts();
204
- pool.push(...drafts);
205
- }
206
- const filtered = pool.filter((c) => {
207
- if (statusFilter && (c.status?.toLowerCase() ?? '') !== statusFilter)
275
+ const entries = await listChipsFromReadme();
276
+ const filtered = entries
277
+ .map((e) => ({ ...e, source: kindToSource(e.kind) }))
278
+ .filter((e) => {
279
+ if (source !== 'both' && e.source !== source)
280
+ return false;
281
+ if (statusFilter && (e.status?.toLowerCase() ?? '') !== statusFilter)
208
282
  return false;
209
- return matchesQuery(c, query);
283
+ return matchesQuery(e, query);
210
284
  });
211
285
  return filtered.slice(0, limit);
212
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chips/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chips/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type ChipReadmeEntryKind = 'file' | 'pr' | 'external';
2
+ export interface ChipReadmeEntry {
3
+ number: number | null;
4
+ title: string;
5
+ status: string;
6
+ url: string;
7
+ kind: ChipReadmeEntryKind;
8
+ filename: string | null;
9
+ prNumber: number | null;
10
+ }
11
+ export declare function parseChipReadmeIndex(markdown: string): ChipReadmeEntry[];
12
+ export declare function getChipReadmeIndex(): Promise<ChipReadmeEntry[]>;
@@ -0,0 +1,82 @@
1
+ import { fetchRawFile } from '../github/client.js';
2
+ import { getCached } from '../github/cache.js';
3
+ const REPO = 'Chia-Network/chips';
4
+ const DEFAULT_REF = 'main';
5
+ const README_PATH = 'README.md';
6
+ const README_TTL_MS = 5 * 60_000;
7
+ const BULLET_PATTERN = /^\*\s+\[(.+?)\]\((.+?)\)/;
8
+ const FILE_LINK_PATTERN = /^\/?CHIPs\/(chip-\d{1,5}\.md)$/i;
9
+ const PR_LINK_PATTERN = /^https?:\/\/github\.com\/Chia-Network\/chips\/pull\/(\d+)\/?$/i;
10
+ function parseLabel(label) {
11
+ const m = label.match(/^\s*(\d+)\s*[-–—:]\s*(.+?)\s*$/);
12
+ if (m) {
13
+ return { number: Number(m[1]), title: m[2].trim() };
14
+ }
15
+ return { number: null, title: label.trim() };
16
+ }
17
+ function classify(url) {
18
+ const fileMatch = url.match(FILE_LINK_PATTERN);
19
+ if (fileMatch) {
20
+ const filename = `CHIPs/${fileMatch[1]}`;
21
+ return {
22
+ kind: 'file',
23
+ filename,
24
+ prNumber: null,
25
+ absoluteUrl: `https://github.com/${REPO}/blob/${DEFAULT_REF}/${filename}`,
26
+ };
27
+ }
28
+ const prMatch = url.match(PR_LINK_PATTERN);
29
+ if (prMatch) {
30
+ return {
31
+ kind: 'pr',
32
+ filename: null,
33
+ prNumber: Number(prMatch[1]),
34
+ absoluteUrl: url,
35
+ };
36
+ }
37
+ return { kind: 'external', filename: null, prNumber: null, absoluteUrl: url };
38
+ }
39
+ export function parseChipReadmeIndex(markdown) {
40
+ const lines = markdown.split(/\r?\n/);
41
+ const entries = [];
42
+ let currentStatus = null;
43
+ for (const raw of lines) {
44
+ const line = raw.trim();
45
+ const heading = line.match(/^###\s+(.+?)\s*$/);
46
+ if (heading) {
47
+ currentStatus = heading[1].trim();
48
+ continue;
49
+ }
50
+ if (line.startsWith('## ')) {
51
+ currentStatus = null;
52
+ continue;
53
+ }
54
+ if (!currentStatus)
55
+ continue;
56
+ const bullet = line.match(BULLET_PATTERN);
57
+ if (!bullet)
58
+ continue;
59
+ const [, label, url] = bullet;
60
+ if (!label || !url)
61
+ continue;
62
+ const { number, title } = parseLabel(label);
63
+ const { kind, filename, prNumber, absoluteUrl } = classify(url);
64
+ entries.push({
65
+ number,
66
+ title,
67
+ status: currentStatus,
68
+ url: absoluteUrl,
69
+ kind,
70
+ filename,
71
+ prNumber,
72
+ });
73
+ }
74
+ return entries;
75
+ }
76
+ export async function getChipReadmeIndex() {
77
+ return getCached(`chips:readme:${DEFAULT_REF}`, async () => {
78
+ const body = await fetchRawFile(REPO, DEFAULT_REF, README_PATH);
79
+ return parseChipReadmeIndex(body);
80
+ }, README_TTL_MS);
81
+ }
82
+ //# sourceMappingURL=readme-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readme-index.js","sourceRoot":"","sources":["../../src/chips/readme-index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { listChipDrafts } from '../../chips/index.js';
2
2
  import { errorText, jsonText } from '../shared/response.js';
3
3
  export function register(server) {
4
- server.tool('list_chip_drafts', 'List open pull requests against Chia-Network/chips that add or modify a CHIP file. Each entry includes parsed front matter from the proposed file plus PR context (number, url, author, requested reviewers, draft flag, updated_at) and a modifies_existing flag for amendments. PRs that do not touch a CHIPs/chip-*.md file are filtered out.', {}, async () => {
4
+ server.tool('list_chip_drafts', 'List the live state of every open pull request against Chia-Network/chips that adds or modifies a CHIP file. Use this for PR review context (author, requested reviewers, draft flag, updated_at) and the modifies_existing flag for amendments. PRs that do not touch a CHIPs/chip-*.md file are filtered out. For the canonical CHIP index across all statuses (including Draft proposals), use list_chips.', {}, async () => {
5
5
  try {
6
6
  const drafts = await listChipDrafts();
7
7
  return jsonText({
@@ -1 +1 @@
1
- {"version":3,"file":"list-chip-drafts.js","sourceRoot":"","sources":["../../../src/tools/chips/list-chip-drafts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,kVAAkV,EAClV,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,OAAO,QAAQ,CAAC;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-chip-drafts.js","sourceRoot":"","sources":["../../../src/tools/chips/list-chip-drafts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,+YAA+Y,EAC/Y,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,OAAO,QAAQ,CAAC;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,13 +1,13 @@
1
- import { listMergedChips } from '../../chips/index.js';
1
+ import { listChipsFromReadme } from '../../chips/index.js';
2
2
  import { chipCategoryFilterSchema, chipStatusFilterSchema } from '../../schemas/chips.js';
3
3
  import { errorText, jsonText } from '../shared/response.js';
4
4
  export function register(server) {
5
- server.tool('list_chips', 'List Chia Improvement Proposals (CHIPs) merged on the main branch of Chia-Network/chips. Returns parsed metadata (number, title, status, category, authors, abstract, dates) for every CHIP. Optional filters: status, category. For in-progress CHIPs in open PRs use list_chip_drafts.', {
5
+ server.tool('list_chips', 'List all Chia Improvement Proposals (CHIPs) from the canonical index in the Chia-Network/chips repo README, across every status (Living, Draft, Review, Final, Stagnant, Withdrawn, Obsolete, Grandfathered, Under Consideration). Draft and Review entries point to open PRs; Final entries point to merged files on main. Status comes from the README (authoritative); category, authors, and abstract are enriched from front matter when a CHIP file is available. Use this to find the most recent CHIPs — they are typically in Draft. Optional filters: status, category.', {
6
6
  status: chipStatusFilterSchema,
7
7
  category: chipCategoryFilterSchema,
8
8
  }, async ({ status, category }) => {
9
9
  try {
10
- const all = await listMergedChips();
10
+ const all = await listChipsFromReadme();
11
11
  const statusLc = status?.toLowerCase();
12
12
  const categoryLc = category?.toLowerCase();
13
13
  const filtered = all.filter((c) => {
@@ -20,7 +20,7 @@ export function register(server) {
20
20
  return jsonText({
21
21
  source: 'github',
22
22
  repo: 'Chia-Network/chips',
23
- ref: 'main',
23
+ index: 'README.md',
24
24
  count: filtered.length,
25
25
  chips: filtered,
26
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"list-chips.js","sourceRoot":"","sources":["../../../src/tools/chips/list-chips.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,0RAA0R,EAC1R;QACE,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,wBAAwB;KACnC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC3E,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-chips.js","sourceRoot":"","sources":["../../../src/tools/chips/list-chips.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,mjBAAmjB,EACnjB;QACE,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,wBAAwB;KACnC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC3E,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -15,6 +15,24 @@ const SPEND_TYPES = [
15
15
  'pw_absorb_rewards',
16
16
  'create_new_did_wallet',
17
17
  ];
18
+ // Approximate CLVM cost of one standard XCH spend.
19
+ const DEFAULT_SPEND_COST = 11_000_000;
20
+ // coinset's get_fee_estimate accepts only `cost` + `target_times` (it rejects `spend_type`),
21
+ // so a spend_type hint is translated into an approximate cost here. These are rough multiples
22
+ // of one standard spend, meant only to bias the estimate — pass an explicit `cost` for precision.
23
+ const SPEND_TYPE_COST = {
24
+ send_xch_transaction: DEFAULT_SPEND_COST,
25
+ cat_spend: DEFAULT_SPEND_COST * 3,
26
+ // chia.net's Jan-2024 fees post puts offer-take cost at 80-150M; *4 (44M)
27
+ // under-shoots by ~2-3x, which would translate directly to an underestimated fee.
28
+ take_offer: DEFAULT_SPEND_COST * 9,
29
+ cancel_offer: DEFAULT_SPEND_COST * 2,
30
+ nft_set_nft_did: DEFAULT_SPEND_COST * 5,
31
+ nft_transfer_nft: DEFAULT_SPEND_COST * 5,
32
+ create_new_pool_wallet: DEFAULT_SPEND_COST * 5,
33
+ pw_absorb_rewards: DEFAULT_SPEND_COST * 4,
34
+ create_new_did_wallet: DEFAULT_SPEND_COST * 4,
35
+ };
18
36
  export function register(server) {
19
37
  server.tool('estimate_fee', 'Estimate the recommended mojo fee for inclusion in the next block within each target time (in seconds). Default target_times = [60, 300, 900] (1, 5, 15 minutes). Optionally bias the estimate by passing `spend_type` and `spend_count`, or supply an explicit CLVM `cost`.', {
20
38
  target_times: z
@@ -43,14 +61,19 @@ export function register(server) {
43
61
  }, async ({ target_times, cost, spend_type, spend_count, network }) => {
44
62
  try {
45
63
  const agent = getAgent(network);
46
- const payload = { target_times };
47
- if (cost !== undefined)
48
- payload.cost = cost;
49
- if (spend_type !== undefined)
50
- payload.spend_type = spend_type;
51
- if (spend_count !== undefined)
52
- payload.spend_count = spend_count;
53
- const res = await get_fee_estimate(agent, payload);
64
+ // coinset's get_fee_estimate accepts only `cost` + `target_times`. Resolve to a cost:
65
+ // an explicit `cost`, else the spend_type's approximate cost (or a standard spend)
66
+ // scaled by spend_count. This avoids the "missing field cost" / "unknown field
67
+ // spend_type" errors coinset returns for the raw payload.
68
+ let effectiveCost;
69
+ if (cost !== undefined) {
70
+ effectiveCost = cost;
71
+ }
72
+ else {
73
+ const perSpend = spend_type ? SPEND_TYPE_COST[spend_type] : DEFAULT_SPEND_COST;
74
+ effectiveCost = perSpend * (spend_count ?? 1);
75
+ }
76
+ const res = await get_fee_estimate(agent, { target_times, cost: effectiveCost });
54
77
  const estimates_mojo = (res.estimates ?? []).map((e) => toBigInt(e).toString());
55
78
  const estimates_xch = estimates_mojo.map((m) => mojoToXch(m));
56
79
  return jsonText({
@@ -1 +1 @@
1
- {"version":3,"file":"estimate-fee.js","sourceRoot":"","sources":["../../../src/tools/mempool/estimate-fee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"estimate-fee.js","sourceRoot":"","sources":["../../../src/tools/mempool/estimate-fee.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chia-explorer",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server that answers questions about the Chia blockchain via the public coinset.org API",
5
5
  "mcpName": "io.github.Spacetime-Technology/chia-explorer",
6
6
  "type": "module",