@0xwh1sker/mantle-cli 0.1.3
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/LICENSE +21 -0
- package/README.md +43 -0
- package/dist/commands/account.d.ts +3 -0
- package/dist/commands/account.d.ts.map +1 -0
- package/dist/commands/account.js +96 -0
- package/dist/commands/account.js.map +1 -0
- package/dist/commands/catalog.d.ts +3 -0
- package/dist/commands/catalog.d.ts.map +1 -0
- package/dist/commands/catalog.js +93 -0
- package/dist/commands/catalog.js.map +1 -0
- package/dist/commands/chain.d.ts +3 -0
- package/dist/commands/chain.d.ts.map +1 -0
- package/dist/commands/chain.js +65 -0
- package/dist/commands/chain.js.map +1 -0
- package/dist/commands/defi-aave.d.ts +11 -0
- package/dist/commands/defi-aave.d.ts.map +1 -0
- package/dist/commands/defi-aave.js +216 -0
- package/dist/commands/defi-aave.js.map +1 -0
- package/dist/commands/defi-lp.d.ts +13 -0
- package/dist/commands/defi-lp.d.ts.map +1 -0
- package/dist/commands/defi-lp.js +496 -0
- package/dist/commands/defi-lp.js.map +1 -0
- package/dist/commands/defi-swap.d.ts +11 -0
- package/dist/commands/defi-swap.d.ts.map +1 -0
- package/dist/commands/defi-swap.js +206 -0
- package/dist/commands/defi-swap.js.map +1 -0
- package/dist/commands/defi.d.ts +3 -0
- package/dist/commands/defi.d.ts.map +1 -0
- package/dist/commands/defi.js +358 -0
- package/dist/commands/defi.js.map +1 -0
- package/dist/commands/diagnostics.d.ts +3 -0
- package/dist/commands/diagnostics.d.ts.map +1 -0
- package/dist/commands/diagnostics.js +76 -0
- package/dist/commands/diagnostics.js.map +1 -0
- package/dist/commands/indexer.d.ts +3 -0
- package/dist/commands/indexer.d.ts.map +1 -0
- package/dist/commands/indexer.js +92 -0
- package/dist/commands/indexer.js.map +1 -0
- package/dist/commands/registry.d.ts +3 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +76 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/token.d.ts +3 -0
- package/dist/commands/token.d.ts.map +1 -0
- package/dist/commands/token.js +100 -0
- package/dist/commands/token.js.map +1 -0
- package/dist/formatter.d.ts +20 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +98 -0
- package/dist/formatter.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +62 -0
- package/dist/utils.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
import { allTools } from "@0xwh1sker/mantle-core/tools/index.js";
|
|
2
|
+
import { formatKeyValue, formatTable, formatJson } from "../formatter.js";
|
|
3
|
+
import { parseIntegerOption, parseNumberOption, parseJsonArray } from "../utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* Liquidity provision operations:
|
|
6
|
+
* lp add — Build unsigned add-liquidity transaction
|
|
7
|
+
* lp remove — Build unsigned remove-liquidity transaction
|
|
8
|
+
* lp positions — List V3 LP positions for an owner
|
|
9
|
+
* lp pool-state — Read V3 pool on-chain state (tick, price, liquidity)
|
|
10
|
+
* lp analyze — Deep pool analysis (APR, risk, investment projections)
|
|
11
|
+
* lp collect-fees — Build unsigned fee collection transaction
|
|
12
|
+
* lp suggest-ticks — Suggest tick ranges for V3 LP
|
|
13
|
+
*/
|
|
14
|
+
export function registerLp(parent) {
|
|
15
|
+
const group = parent
|
|
16
|
+
.command("lp")
|
|
17
|
+
.description("Liquidity provision operations (build unsigned transactions)");
|
|
18
|
+
// ── add ─────────────────────────────────────────────────────────────
|
|
19
|
+
group
|
|
20
|
+
.command("add")
|
|
21
|
+
.description("Build unsigned add-liquidity transaction. " +
|
|
22
|
+
"V3 (agni/fluxion) mints an NFT position; Merchant Moe LB adds to bins.\n" +
|
|
23
|
+
"Amount modes: provide --amount-a + --amount-b, OR --amount-usd for automatic sizing.")
|
|
24
|
+
.requiredOption("--provider <provider>", "DEX provider: agni, fluxion, or merchant_moe")
|
|
25
|
+
.requiredOption("--token-a <token>", "first token symbol or address")
|
|
26
|
+
.requiredOption("--token-b <token>", "second token symbol or address")
|
|
27
|
+
.option("--amount-a <amount>", "decimal amount of token A (required unless --amount-usd is used)")
|
|
28
|
+
.option("--amount-b <amount>", "decimal amount of token B (required unless --amount-usd is used)")
|
|
29
|
+
.option("--amount-usd <usd>", "USD amount to invest (auto-splits between tokens using live prices and pool state)", (v) => parseNumberOption(v, "--amount-usd"))
|
|
30
|
+
.requiredOption("--recipient <address>", "address to receive LP position")
|
|
31
|
+
.option("--slippage-bps <bps>", "slippage tolerance in basis points (default: 50)", (v) => parseIntegerOption(v, "--slippage-bps"))
|
|
32
|
+
.option("--fee-tier <tier>", "V3 fee tier (default: 3000). For agni/fluxion", (v) => parseNumberOption(v, "--fee-tier"))
|
|
33
|
+
.option("--tick-lower <tick>", "lower tick bound. For agni/fluxion. Default: full range", (v) => parseIntegerOption(v, "--tick-lower"))
|
|
34
|
+
.option("--tick-upper <tick>", "upper tick bound. For agni/fluxion. Default: full range", (v) => parseIntegerOption(v, "--tick-upper"))
|
|
35
|
+
.option("--bin-step <step>", "LB bin step (default: 20). For merchant_moe", (v) => parseIntegerOption(v, "--bin-step"))
|
|
36
|
+
.option("--active-id <id>", "active bin ID. For merchant_moe", (v) => parseIntegerOption(v, "--active-id"))
|
|
37
|
+
.option("--id-slippage <slippage>", "bin ID slippage tolerance. For merchant_moe", (v) => parseIntegerOption(v, "--id-slippage"))
|
|
38
|
+
.option("--delta-ids <json>", "relative bin IDs as JSON array. For merchant_moe")
|
|
39
|
+
.option("--distribution-x <json>", "token X distribution per bin as JSON array. For merchant_moe")
|
|
40
|
+
.option("--distribution-y <json>", "token Y distribution per bin as JSON array. For merchant_moe")
|
|
41
|
+
.action(async (opts, cmd) => {
|
|
42
|
+
const globals = cmd.optsWithGlobals();
|
|
43
|
+
const hasTokenAmounts = opts.amountA != null && opts.amountB != null;
|
|
44
|
+
const hasUsdAmount = opts.amountUsd != null;
|
|
45
|
+
if (!hasTokenAmounts && !hasUsdAmount) {
|
|
46
|
+
throw new Error("Provide either (--amount-a + --amount-b) or --amount-usd.");
|
|
47
|
+
}
|
|
48
|
+
const result = await allTools["mantle_buildAddLiquidity"].handler({
|
|
49
|
+
provider: opts.provider,
|
|
50
|
+
token_a: opts.tokenA,
|
|
51
|
+
token_b: opts.tokenB,
|
|
52
|
+
amount_a: opts.amountA != null ? String(opts.amountA) : undefined,
|
|
53
|
+
amount_b: opts.amountB != null ? String(opts.amountB) : undefined,
|
|
54
|
+
amount_usd: opts.amountUsd,
|
|
55
|
+
recipient: opts.recipient,
|
|
56
|
+
slippage_bps: opts.slippageBps,
|
|
57
|
+
fee_tier: opts.feeTier,
|
|
58
|
+
tick_lower: opts.tickLower,
|
|
59
|
+
tick_upper: opts.tickUpper,
|
|
60
|
+
bin_step: opts.binStep,
|
|
61
|
+
active_id: opts.activeId,
|
|
62
|
+
id_slippage: opts.idSlippage,
|
|
63
|
+
delta_ids: opts.deltaIds ? parseJsonArray(opts.deltaIds, "--delta-ids") : undefined,
|
|
64
|
+
distribution_x: opts.distributionX
|
|
65
|
+
? parseJsonArray(opts.distributionX, "--distribution-x")
|
|
66
|
+
: undefined,
|
|
67
|
+
distribution_y: opts.distributionY
|
|
68
|
+
? parseJsonArray(opts.distributionY, "--distribution-y")
|
|
69
|
+
: undefined,
|
|
70
|
+
network: globals.network
|
|
71
|
+
});
|
|
72
|
+
if (globals.json) {
|
|
73
|
+
formatJson(result);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
formatUnsignedTxResult(result);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// ── remove ──────────────────────────────────────────────────────────
|
|
80
|
+
group
|
|
81
|
+
.command("remove")
|
|
82
|
+
.description("Build unsigned remove-liquidity transaction. " +
|
|
83
|
+
"V3 uses decreaseLiquidity+collect; Merchant Moe LB removes from bins.\n" +
|
|
84
|
+
"V3 amount modes: --liquidity (exact) or --percentage (1-100, reads position on-chain).")
|
|
85
|
+
.requiredOption("--provider <provider>", "DEX provider: agni, fluxion, or merchant_moe")
|
|
86
|
+
.requiredOption("--recipient <address>", "address to receive withdrawn tokens")
|
|
87
|
+
.option("--token-id <id>", "V3 NFT position token ID. For agni/fluxion")
|
|
88
|
+
.option("--liquidity <amount>", "exact amount of liquidity to remove. For agni/fluxion")
|
|
89
|
+
.option("--percentage <pct>", "percentage of position to remove (1-100). For agni/fluxion. Reads liquidity on-chain.", (v) => parseNumberOption(v, "--percentage"))
|
|
90
|
+
.option("--token-a <token>", "first token symbol or address. For merchant_moe")
|
|
91
|
+
.option("--token-b <token>", "second token symbol or address. For merchant_moe")
|
|
92
|
+
.option("--bin-step <step>", "LB bin step. For merchant_moe", (v) => parseIntegerOption(v, "--bin-step"))
|
|
93
|
+
.option("--ids <json>", "bin IDs to remove from as JSON array. For merchant_moe")
|
|
94
|
+
.option("--amounts <json>", "amounts per bin as JSON array. For merchant_moe")
|
|
95
|
+
.action(async (opts, cmd) => {
|
|
96
|
+
const globals = cmd.optsWithGlobals();
|
|
97
|
+
const provider = String(opts.provider).toLowerCase();
|
|
98
|
+
// V3 providers require --token-id and either --liquidity or --percentage
|
|
99
|
+
if (provider === "agni" || provider === "fluxion") {
|
|
100
|
+
if (!opts.tokenId) {
|
|
101
|
+
throw new Error("--token-id is required for V3 providers (agni/fluxion).");
|
|
102
|
+
}
|
|
103
|
+
if (!opts.liquidity && opts.percentage == null) {
|
|
104
|
+
throw new Error("--liquidity or --percentage is required for V3 providers (agni/fluxion). " +
|
|
105
|
+
"Use --percentage 100 to remove the full position.");
|
|
106
|
+
}
|
|
107
|
+
if (opts.liquidity && opts.percentage != null) {
|
|
108
|
+
throw new Error("--liquidity and --percentage are mutually exclusive. Use one or the other.");
|
|
109
|
+
}
|
|
110
|
+
if (opts.liquidity) {
|
|
111
|
+
const liq = BigInt(opts.liquidity);
|
|
112
|
+
if (liq <= 0n) {
|
|
113
|
+
throw new Error("--liquidity must be a positive value. " +
|
|
114
|
+
"A zero-liquidity removal would produce a no-op or fee-collect-only transaction.");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const result = await allTools["mantle_buildRemoveLiquidity"].handler({
|
|
119
|
+
provider: opts.provider,
|
|
120
|
+
recipient: opts.recipient,
|
|
121
|
+
token_id: opts.tokenId,
|
|
122
|
+
liquidity: opts.liquidity,
|
|
123
|
+
percentage: opts.percentage,
|
|
124
|
+
token_a: opts.tokenA,
|
|
125
|
+
token_b: opts.tokenB,
|
|
126
|
+
bin_step: opts.binStep,
|
|
127
|
+
ids: opts.ids ? parseJsonArray(opts.ids, "--ids") : undefined,
|
|
128
|
+
amounts: opts.amounts ? parseJsonArray(opts.amounts, "--amounts") : undefined,
|
|
129
|
+
network: globals.network
|
|
130
|
+
});
|
|
131
|
+
if (globals.json) {
|
|
132
|
+
formatJson(result);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
formatUnsignedTxResult(result);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
// ── positions ───────────────────────────────────────────────────────
|
|
139
|
+
group
|
|
140
|
+
.command("positions")
|
|
141
|
+
.description("List V3 LP positions for an owner across Agni and Fluxion")
|
|
142
|
+
.requiredOption("--owner <address>", "wallet address to query")
|
|
143
|
+
.option("--provider <provider>", "filter by provider: agni or fluxion")
|
|
144
|
+
.option("--include-empty", "include zero-liquidity positions", false)
|
|
145
|
+
.action(async (opts, cmd) => {
|
|
146
|
+
const globals = cmd.optsWithGlobals();
|
|
147
|
+
const result = await allTools["mantle_getV3Positions"].handler({
|
|
148
|
+
owner: opts.owner,
|
|
149
|
+
provider: opts.provider,
|
|
150
|
+
include_empty: opts.includeEmpty,
|
|
151
|
+
network: globals.network
|
|
152
|
+
});
|
|
153
|
+
if (globals.json) {
|
|
154
|
+
formatJson(result);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
const data = result;
|
|
158
|
+
const positions = (data.positions ?? []);
|
|
159
|
+
if (positions.length === 0) {
|
|
160
|
+
console.log("\n No V3 LP positions found.\n");
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
formatTable(positions, [
|
|
164
|
+
{ key: "token_id", label: "Token ID" },
|
|
165
|
+
{ key: "provider", label: "Provider" },
|
|
166
|
+
{
|
|
167
|
+
key: "token0",
|
|
168
|
+
label: "Token 0",
|
|
169
|
+
format: (v) => v?.symbol ?? "?"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
key: "token1",
|
|
173
|
+
label: "Token 1",
|
|
174
|
+
format: (v) => v?.symbol ?? "?"
|
|
175
|
+
},
|
|
176
|
+
{ key: "fee", label: "Fee", align: "right" },
|
|
177
|
+
{ key: "tick_lower", label: "Tick Lo", align: "right" },
|
|
178
|
+
{ key: "tick_upper", label: "Tick Hi", align: "right" },
|
|
179
|
+
{ key: "liquidity", label: "Liquidity", align: "right" },
|
|
180
|
+
{
|
|
181
|
+
key: "in_range",
|
|
182
|
+
label: "In Range",
|
|
183
|
+
format: (v) => v === true ? "YES" : v === false ? "NO" : "?"
|
|
184
|
+
}
|
|
185
|
+
]);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
// ── pool-state ──────────────────────────────────────────────────────
|
|
190
|
+
group
|
|
191
|
+
.command("pool-state")
|
|
192
|
+
.description("Read V3 pool on-chain state (tick, price, liquidity)")
|
|
193
|
+
.option("--pool <address>", "pool contract address (or use --token-a/--token-b/--fee-tier)")
|
|
194
|
+
.option("--token-a <token>", "first token symbol or address")
|
|
195
|
+
.option("--token-b <token>", "second token symbol or address")
|
|
196
|
+
.option("--fee-tier <tier>", "V3 fee tier", (v) => parseNumberOption(v, "--fee-tier"))
|
|
197
|
+
.option("--provider <provider>", "DEX provider: agni or fluxion", "agni")
|
|
198
|
+
.action(async (opts, cmd) => {
|
|
199
|
+
const globals = cmd.optsWithGlobals();
|
|
200
|
+
const result = await allTools["mantle_getV3PoolState"].handler({
|
|
201
|
+
pool_address: opts.pool,
|
|
202
|
+
token_a: opts.tokenA,
|
|
203
|
+
token_b: opts.tokenB,
|
|
204
|
+
fee_tier: opts.feeTier,
|
|
205
|
+
provider: opts.provider,
|
|
206
|
+
network: globals.network
|
|
207
|
+
});
|
|
208
|
+
if (globals.json) {
|
|
209
|
+
formatJson(result);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const data = result;
|
|
213
|
+
formatKeyValue({
|
|
214
|
+
pool: data.pool_address,
|
|
215
|
+
provider: data.provider,
|
|
216
|
+
current_tick: data.current_tick,
|
|
217
|
+
tick_spacing: data.tick_spacing,
|
|
218
|
+
liquidity: data.pool_liquidity,
|
|
219
|
+
price_0_per_1: data.price_token0_per_token1,
|
|
220
|
+
price_1_per_0: data.price_token1_per_token0
|
|
221
|
+
}, {
|
|
222
|
+
labels: {
|
|
223
|
+
pool: "Pool",
|
|
224
|
+
provider: "Provider",
|
|
225
|
+
current_tick: "Current Tick",
|
|
226
|
+
tick_spacing: "Tick Spacing",
|
|
227
|
+
liquidity: "Pool Liquidity",
|
|
228
|
+
price_0_per_1: "Price (token0/token1)",
|
|
229
|
+
price_1_per_0: "Price (token1/token0)"
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
// ── collect-fees ────────────────────────────────────────────────────
|
|
235
|
+
group
|
|
236
|
+
.command("collect-fees")
|
|
237
|
+
.description("Build unsigned V3 fee collection transaction")
|
|
238
|
+
.requiredOption("--provider <provider>", "DEX provider: agni or fluxion")
|
|
239
|
+
.requiredOption("--token-id <id>", "V3 NFT position token ID")
|
|
240
|
+
.requiredOption("--recipient <address>", "address to receive collected fees")
|
|
241
|
+
.action(async (opts, cmd) => {
|
|
242
|
+
const globals = cmd.optsWithGlobals();
|
|
243
|
+
const result = await allTools["mantle_buildCollectFees"].handler({
|
|
244
|
+
provider: opts.provider,
|
|
245
|
+
token_id: opts.tokenId,
|
|
246
|
+
recipient: opts.recipient,
|
|
247
|
+
network: globals.network
|
|
248
|
+
});
|
|
249
|
+
if (globals.json) {
|
|
250
|
+
formatJson(result);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
formatUnsignedTxResult(result);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
// ── suggest-ticks ───────────────────────────────────────────────────
|
|
257
|
+
group
|
|
258
|
+
.command("suggest-ticks")
|
|
259
|
+
.description("Suggest tick ranges for V3 LP (wide/moderate/tight strategies)")
|
|
260
|
+
.option("--pool <address>", "pool contract address (or use --token-a/--token-b/--fee-tier)")
|
|
261
|
+
.option("--token-a <token>", "first token symbol or address")
|
|
262
|
+
.option("--token-b <token>", "second token symbol or address")
|
|
263
|
+
.option("--fee-tier <tier>", "V3 fee tier", (v) => parseNumberOption(v, "--fee-tier"))
|
|
264
|
+
.option("--provider <provider>", "DEX provider: agni or fluxion", "agni")
|
|
265
|
+
.action(async (opts, cmd) => {
|
|
266
|
+
const globals = cmd.optsWithGlobals();
|
|
267
|
+
const result = await allTools["mantle_suggestTickRange"].handler({
|
|
268
|
+
pool_address: opts.pool,
|
|
269
|
+
token_a: opts.tokenA,
|
|
270
|
+
token_b: opts.tokenB,
|
|
271
|
+
fee_tier: opts.feeTier,
|
|
272
|
+
provider: opts.provider,
|
|
273
|
+
network: globals.network
|
|
274
|
+
});
|
|
275
|
+
if (globals.json) {
|
|
276
|
+
formatJson(result);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
const data = result;
|
|
280
|
+
console.log(`\n Current Tick: ${data.current_tick} Tick Spacing: ${data.tick_spacing}\n`);
|
|
281
|
+
const suggestions = (data.suggestions ?? []);
|
|
282
|
+
formatTable(suggestions, [
|
|
283
|
+
{ key: "strategy", label: "Strategy" },
|
|
284
|
+
{ key: "tick_lower", label: "Tick Lower", align: "right" },
|
|
285
|
+
{ key: "tick_upper", label: "Tick Upper", align: "right" },
|
|
286
|
+
{
|
|
287
|
+
key: "price_lower",
|
|
288
|
+
label: "Price Lower",
|
|
289
|
+
align: "right",
|
|
290
|
+
format: (v) => Number(v).toFixed(4)
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
key: "price_upper",
|
|
294
|
+
label: "Price Upper",
|
|
295
|
+
align: "right",
|
|
296
|
+
format: (v) => Number(v).toFixed(4)
|
|
297
|
+
}
|
|
298
|
+
]);
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
// ── find-pools ──────────────────────────────────────────────────────
|
|
302
|
+
group
|
|
303
|
+
.command("find-pools")
|
|
304
|
+
.description("Discover all available pools for a token pair across Agni, Fluxion, and Merchant Moe. " +
|
|
305
|
+
"Queries factory contracts on-chain — the authoritative source.")
|
|
306
|
+
.requiredOption("--token-a <token>", "first token symbol or address")
|
|
307
|
+
.requiredOption("--token-b <token>", "second token symbol or address")
|
|
308
|
+
.action(async (opts, cmd) => {
|
|
309
|
+
const globals = cmd.optsWithGlobals();
|
|
310
|
+
const result = await allTools["mantle_findPools"].handler({
|
|
311
|
+
token_a: opts.tokenA,
|
|
312
|
+
token_b: opts.tokenB,
|
|
313
|
+
network: globals.network
|
|
314
|
+
});
|
|
315
|
+
if (globals.json) {
|
|
316
|
+
formatJson(result);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
const data = result;
|
|
320
|
+
const tokenA = data.token_a;
|
|
321
|
+
const tokenB = data.token_b;
|
|
322
|
+
console.log(`\n ${tokenA.symbol}/${tokenB.symbol} — ` +
|
|
323
|
+
`${data.with_liquidity} pools with liquidity (${data.total_found} total)\n`);
|
|
324
|
+
const pools = (data.pools ?? []);
|
|
325
|
+
formatTable(pools, [
|
|
326
|
+
{ key: "provider", label: "DEX" },
|
|
327
|
+
{
|
|
328
|
+
key: "fee_tier",
|
|
329
|
+
label: "Fee Tier",
|
|
330
|
+
align: "right",
|
|
331
|
+
format: (v) => v != null ? `${Number(v) / 10000}%` : "-"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
key: "bin_step",
|
|
335
|
+
label: "Bin Step",
|
|
336
|
+
align: "right",
|
|
337
|
+
format: (v) => v != null ? String(v) : "-"
|
|
338
|
+
},
|
|
339
|
+
{ key: "pool_address", label: "Pool Address" },
|
|
340
|
+
{
|
|
341
|
+
key: "has_liquidity",
|
|
342
|
+
label: "Liquid",
|
|
343
|
+
format: (v) => v === true ? "YES" : "NO"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
key: "liquidity_raw",
|
|
347
|
+
label: "Liquidity",
|
|
348
|
+
align: "right",
|
|
349
|
+
format: (v) => {
|
|
350
|
+
const n = BigInt(v);
|
|
351
|
+
if (n === 0n)
|
|
352
|
+
return "-";
|
|
353
|
+
if (n > 10n ** 18n)
|
|
354
|
+
return (Number(n / (10n ** 12n)) / 1e6).toFixed(1) + "T";
|
|
355
|
+
return n.toString();
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
]);
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
// ── analyze ─────────────────────────────────────────────────────────
|
|
362
|
+
group
|
|
363
|
+
.command("analyze")
|
|
364
|
+
.description("Deep pool analysis: fee APR, multi-range comparison, risk scoring, investment projections. " +
|
|
365
|
+
"Fetches 24h volume and TVL from DexScreener to compute concentrated APR across 10 range brackets.")
|
|
366
|
+
.option("--pool <address>", "pool contract address (or use --token-a/--token-b/--fee-tier)")
|
|
367
|
+
.option("--token-a <token>", "first token symbol or address")
|
|
368
|
+
.option("--token-b <token>", "second token symbol or address")
|
|
369
|
+
.option("--fee-tier <tier>", "V3 fee tier", (v) => parseNumberOption(v, "--fee-tier"))
|
|
370
|
+
.option("--provider <provider>", "DEX provider: agni or fluxion", "agni")
|
|
371
|
+
.option("--investment-usd <amount>", "USD amount to project returns for (default: 1000)", (v) => parseNumberOption(v, "--investment-usd"))
|
|
372
|
+
.action(async (opts, cmd) => {
|
|
373
|
+
const globals = cmd.optsWithGlobals();
|
|
374
|
+
const result = await allTools["mantle_analyzePool"].handler({
|
|
375
|
+
pool_address: opts.pool,
|
|
376
|
+
token_a: opts.tokenA,
|
|
377
|
+
token_b: opts.tokenB,
|
|
378
|
+
fee_tier: opts.feeTier,
|
|
379
|
+
provider: opts.provider,
|
|
380
|
+
investment_usd: opts.investmentUsd,
|
|
381
|
+
network: globals.network
|
|
382
|
+
});
|
|
383
|
+
if (globals.json) {
|
|
384
|
+
formatJson(result);
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
const data = result;
|
|
388
|
+
const market = data.market_data;
|
|
389
|
+
const risk = data.risk;
|
|
390
|
+
formatKeyValue({
|
|
391
|
+
pool: data.pool_address,
|
|
392
|
+
provider: data.provider,
|
|
393
|
+
fee: `${data.fee_rate_pct.toFixed(2)}%`,
|
|
394
|
+
tvl: market.tvl_usd != null ? `$${Number(market.tvl_usd).toLocaleString()}` : "N/A",
|
|
395
|
+
volume_24h: market.volume_24h_usd != null ? `$${Number(market.volume_24h_usd).toLocaleString()}` : "N/A",
|
|
396
|
+
base_fee_apr: market.base_fee_apr_pct != null ? `${market.base_fee_apr_pct}%` : "N/A",
|
|
397
|
+
price_change_24h: market.price_change_24h_pct != null ? `${market.price_change_24h_pct}%` : "N/A",
|
|
398
|
+
risk_overall: risk.overall,
|
|
399
|
+
recommended_range: data.recommended_range ?? "N/A"
|
|
400
|
+
}, {
|
|
401
|
+
labels: {
|
|
402
|
+
pool: "Pool",
|
|
403
|
+
provider: "Provider",
|
|
404
|
+
fee: "Fee Rate",
|
|
405
|
+
tvl: "TVL",
|
|
406
|
+
volume_24h: "24h Volume",
|
|
407
|
+
base_fee_apr: "Base Fee APR",
|
|
408
|
+
price_change_24h: "24h Price Change",
|
|
409
|
+
risk_overall: "Risk Level",
|
|
410
|
+
recommended_range: "Recommended Range"
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
const ranges = (data.ranges ?? []);
|
|
414
|
+
console.log("\n Range Analysis:");
|
|
415
|
+
formatTable(ranges, [
|
|
416
|
+
{ key: "label", label: "Range" },
|
|
417
|
+
{
|
|
418
|
+
key: "fee_apr_pct",
|
|
419
|
+
label: "Fee APR",
|
|
420
|
+
align: "right",
|
|
421
|
+
format: (v) => `${v}%`
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
key: "concentration_factor",
|
|
425
|
+
label: "Conc. Factor",
|
|
426
|
+
align: "right",
|
|
427
|
+
format: (v) => `${v}x`
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
key: "daily_fee_usd",
|
|
431
|
+
label: "Daily Fee",
|
|
432
|
+
align: "right",
|
|
433
|
+
format: (v) => v != null ? `$${v}` : "N/A"
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
key: "monthly_fee_usd",
|
|
437
|
+
label: "Monthly Fee",
|
|
438
|
+
align: "right",
|
|
439
|
+
format: (v) => v != null ? `$${v}` : "N/A"
|
|
440
|
+
},
|
|
441
|
+
{ key: "rebalance_risk", label: "Rebal. Risk" }
|
|
442
|
+
]);
|
|
443
|
+
const riskDetails = (risk.details ?? []);
|
|
444
|
+
if (riskDetails.length > 0) {
|
|
445
|
+
console.log("\n Risk Details:");
|
|
446
|
+
for (const d of riskDetails) {
|
|
447
|
+
console.log(` - ${d}`);
|
|
448
|
+
}
|
|
449
|
+
console.log();
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
// ---------------------------------------------------------------------------
|
|
455
|
+
// Shared formatter for unsigned-tx results
|
|
456
|
+
// ---------------------------------------------------------------------------
|
|
457
|
+
function formatUnsignedTxResult(data) {
|
|
458
|
+
const tx = data.unsigned_tx;
|
|
459
|
+
const warnings = (data.warnings ?? []);
|
|
460
|
+
formatKeyValue({
|
|
461
|
+
intent: data.intent,
|
|
462
|
+
human_summary: data.human_summary,
|
|
463
|
+
tx_to: tx?.to,
|
|
464
|
+
tx_value: tx?.value,
|
|
465
|
+
tx_chainId: tx?.chainId,
|
|
466
|
+
tx_data: truncateHex(tx?.data),
|
|
467
|
+
tx_gas: tx?.gas ?? "auto",
|
|
468
|
+
built_at: data.built_at_utc
|
|
469
|
+
}, {
|
|
470
|
+
labels: {
|
|
471
|
+
intent: "Intent",
|
|
472
|
+
human_summary: "Summary",
|
|
473
|
+
tx_to: "To",
|
|
474
|
+
tx_value: "Value (hex)",
|
|
475
|
+
tx_chainId: "Chain ID",
|
|
476
|
+
tx_data: "Calldata",
|
|
477
|
+
tx_gas: "Gas Limit",
|
|
478
|
+
built_at: "Built At"
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
if (warnings.length > 0) {
|
|
482
|
+
console.log(" Warnings:");
|
|
483
|
+
for (const w of warnings) {
|
|
484
|
+
console.log(` - ${w}`);
|
|
485
|
+
}
|
|
486
|
+
console.log();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
function truncateHex(hex) {
|
|
490
|
+
if (!hex)
|
|
491
|
+
return "null";
|
|
492
|
+
if (hex.length <= 66)
|
|
493
|
+
return hex;
|
|
494
|
+
return `${hex.slice(0, 34)}...${hex.slice(-16)} (${hex.length} chars)`;
|
|
495
|
+
}
|
|
496
|
+
//# sourceMappingURL=defi-lp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defi-lp.js","sourceRoot":"","sources":["../../src/commands/defi-lp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* DEX swap & token operations:
|
|
4
|
+
* swap build-swap — Build unsigned swap transaction
|
|
5
|
+
* swap approve — Build unsigned ERC-20 approve for whitelisted spender
|
|
6
|
+
* swap wrap-mnt — Build unsigned wrap MNT → WMNT
|
|
7
|
+
* swap unwrap-mnt — Build unsigned unwrap WMNT → MNT
|
|
8
|
+
* swap pairs — List known trading pairs & pool parameters
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerSwap(parent: Command): void;
|
|
11
|
+
//# sourceMappingURL=defi-swap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defi-swap.d.ts","sourceRoot":"","sources":["../../src/commands/defi-swap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAoKlD"}
|