chia-explorer 0.2.1 → 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.
|
@@ -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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
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":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,GAAG;IAClB,sBAAsB;IACtB,WAAW;IACX,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,wBAAwB;IACxB,mBAAmB;IACnB,uBAAuB;CACf,CAAC;AAEX,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,cAAc,EACd,8QAA8Q,EAC9Q;QACE,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACvB,QAAQ,CAAC,qEAAqE,CAAC;QAClF,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,0DAA0D,CAAC;QACvE,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,WAAW,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,OAAO,EAAE,aAAa;KACvB,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAkB,CAAC,CAAC;YAC3C,
|
|
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