@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,206 @@
|
|
|
1
|
+
import { allTools } from "@0xwh1sker/mantle-core/tools/index.js";
|
|
2
|
+
import { formatKeyValue, formatTable, formatJson } from "../formatter.js";
|
|
3
|
+
import { parseNumberOption, parseIntegerOption } from "../utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* DEX swap & token operations:
|
|
6
|
+
* swap build-swap — Build unsigned swap transaction
|
|
7
|
+
* swap approve — Build unsigned ERC-20 approve for whitelisted spender
|
|
8
|
+
* swap wrap-mnt — Build unsigned wrap MNT → WMNT
|
|
9
|
+
* swap unwrap-mnt — Build unsigned unwrap WMNT → MNT
|
|
10
|
+
* swap pairs — List known trading pairs & pool parameters
|
|
11
|
+
*/
|
|
12
|
+
export function registerSwap(parent) {
|
|
13
|
+
const group = parent
|
|
14
|
+
.command("swap")
|
|
15
|
+
.description("DEX swap & token operations (build unsigned transactions)");
|
|
16
|
+
// ── build-swap ──────────────────────────────────────────────────────
|
|
17
|
+
group
|
|
18
|
+
.command("build-swap")
|
|
19
|
+
.description("Build an unsigned swap transaction for Agni, Fluxion, or Merchant Moe")
|
|
20
|
+
.requiredOption("--provider <provider>", "DEX provider: agni, fluxion, or merchant_moe")
|
|
21
|
+
.requiredOption("--in <token>", "input token symbol or address")
|
|
22
|
+
.requiredOption("--out <token>", "output token symbol or address")
|
|
23
|
+
.requiredOption("--amount <amount>", "human-readable amount of input token")
|
|
24
|
+
.requiredOption("--recipient <address>", "address to receive output tokens")
|
|
25
|
+
.option("--amount-out-min <amount>", "minimum output (raw units from swap-quote). '0' if unknown (not recommended)")
|
|
26
|
+
.option("--slippage-bps <bps>", "slippage tolerance in basis points (default: 50 = 0.5%)", (v) => parseIntegerOption(v, "--slippage-bps"))
|
|
27
|
+
.option("--fee-tier <tier>", "V3 fee tier (500, 3000, 10000). Auto-resolved from known pairs", (v) => parseNumberOption(v, "--fee-tier"))
|
|
28
|
+
.option("--bin-step <step>", "LB bin step (1, 5, 20). Auto-resolved from known pairs", (v) => parseIntegerOption(v, "--bin-step"))
|
|
29
|
+
.action(async (opts, cmd) => {
|
|
30
|
+
const globals = cmd.optsWithGlobals();
|
|
31
|
+
const result = await allTools["mantle_buildSwap"].handler({
|
|
32
|
+
provider: opts.provider,
|
|
33
|
+
token_in: opts.in,
|
|
34
|
+
token_out: opts.out,
|
|
35
|
+
amount_in: String(opts.amount),
|
|
36
|
+
recipient: opts.recipient,
|
|
37
|
+
amount_out_min: opts.amountOutMin ? String(opts.amountOutMin) : undefined,
|
|
38
|
+
slippage_bps: opts.slippageBps,
|
|
39
|
+
fee_tier: opts.feeTier,
|
|
40
|
+
bin_step: opts.binStep,
|
|
41
|
+
network: globals.network
|
|
42
|
+
});
|
|
43
|
+
if (globals.json) {
|
|
44
|
+
formatJson(result);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
formatUnsignedTxResult(result);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
// ── approve ─────────────────────────────────────────────────────────
|
|
51
|
+
group
|
|
52
|
+
.command("approve")
|
|
53
|
+
.description("Build an unsigned ERC-20 approve for a whitelisted spender")
|
|
54
|
+
.requiredOption("--token <token>", "token symbol or address")
|
|
55
|
+
.requiredOption("--spender <address>", "whitelisted contract address to approve")
|
|
56
|
+
.requiredOption("--amount <amount>", "decimal amount to approve, or 'max' for unlimited")
|
|
57
|
+
.option("--owner <address>", "wallet address (used to check existing allowance)")
|
|
58
|
+
.action(async (opts, cmd) => {
|
|
59
|
+
const globals = cmd.optsWithGlobals();
|
|
60
|
+
const result = await allTools["mantle_buildApprove"].handler({
|
|
61
|
+
token: opts.token,
|
|
62
|
+
spender: opts.spender,
|
|
63
|
+
amount: String(opts.amount),
|
|
64
|
+
owner: opts.owner,
|
|
65
|
+
network: globals.network
|
|
66
|
+
});
|
|
67
|
+
if (globals.json) {
|
|
68
|
+
formatJson(result);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
formatUnsignedTxResult(result);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// ── wrap-mnt ────────────────────────────────────────────────────────
|
|
75
|
+
group
|
|
76
|
+
.command("wrap-mnt")
|
|
77
|
+
.description("Build an unsigned wrap MNT → WMNT transaction")
|
|
78
|
+
.requiredOption("--amount <amount>", "decimal amount of MNT to wrap")
|
|
79
|
+
.action(async (opts, cmd) => {
|
|
80
|
+
const globals = cmd.optsWithGlobals();
|
|
81
|
+
const result = await allTools["mantle_buildWrapMnt"].handler({
|
|
82
|
+
amount: String(opts.amount),
|
|
83
|
+
network: globals.network
|
|
84
|
+
});
|
|
85
|
+
if (globals.json) {
|
|
86
|
+
formatJson(result);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
formatUnsignedTxResult(result);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
// ── unwrap-mnt ──────────────────────────────────────────────────────
|
|
93
|
+
group
|
|
94
|
+
.command("unwrap-mnt")
|
|
95
|
+
.description("Build an unsigned unwrap WMNT → MNT transaction")
|
|
96
|
+
.requiredOption("--amount <amount>", "decimal amount of WMNT to unwrap")
|
|
97
|
+
.action(async (opts, cmd) => {
|
|
98
|
+
const globals = cmd.optsWithGlobals();
|
|
99
|
+
const result = await allTools["mantle_buildUnwrapMnt"].handler({
|
|
100
|
+
amount: String(opts.amount),
|
|
101
|
+
network: globals.network
|
|
102
|
+
});
|
|
103
|
+
if (globals.json) {
|
|
104
|
+
formatJson(result);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
formatUnsignedTxResult(result);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
// ── pairs ───────────────────────────────────────────────────────────
|
|
111
|
+
group
|
|
112
|
+
.command("pairs")
|
|
113
|
+
.description("List known trading pairs and pool parameters per DEX")
|
|
114
|
+
.option("--provider <provider>", "filter by DEX: agni, fluxion, or merchant_moe")
|
|
115
|
+
.action(async (opts, cmd) => {
|
|
116
|
+
const globals = cmd.optsWithGlobals();
|
|
117
|
+
const result = await allTools["mantle_getSwapPairs"].handler({
|
|
118
|
+
provider: opts.provider,
|
|
119
|
+
network: globals.network
|
|
120
|
+
});
|
|
121
|
+
if (globals.json) {
|
|
122
|
+
formatJson(result);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const data = result;
|
|
126
|
+
const pairColumns = [
|
|
127
|
+
{ key: "tokenA", label: "Token A" },
|
|
128
|
+
{ key: "tokenB", label: "Token B" },
|
|
129
|
+
{ key: "pool", label: "Pool Address" },
|
|
130
|
+
{
|
|
131
|
+
key: "fee_tier",
|
|
132
|
+
label: "Fee Tier",
|
|
133
|
+
align: "right",
|
|
134
|
+
format: (v) => (v === undefined ? "-" : String(v))
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
key: "bin_step",
|
|
138
|
+
label: "Bin Step",
|
|
139
|
+
align: "right",
|
|
140
|
+
format: (v) => (v === undefined ? "-" : String(v))
|
|
141
|
+
}
|
|
142
|
+
];
|
|
143
|
+
if (data.pairs) {
|
|
144
|
+
// Single provider response
|
|
145
|
+
const pairs = data.pairs;
|
|
146
|
+
console.log(`\n Provider: ${data.provider} (${data.count} pairs)\n`);
|
|
147
|
+
formatTable(pairs, pairColumns);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// All providers — tool returns `pairs_by_provider`
|
|
151
|
+
const grouped = (data.pairs_by_provider ?? data.providers ?? {});
|
|
152
|
+
for (const [provider, pairList] of Object.entries(grouped)) {
|
|
153
|
+
const pairs = (pairList ?? []);
|
|
154
|
+
console.log(`\n Provider: ${provider} (${pairs.length} pairs)\n`);
|
|
155
|
+
formatTable(pairs, pairColumns);
|
|
156
|
+
}
|
|
157
|
+
if (Object.keys(grouped).length === 0) {
|
|
158
|
+
console.log("\n No trading pairs found.\n");
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
// Shared formatter for unsigned-tx results
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
function formatUnsignedTxResult(data) {
|
|
168
|
+
const tx = data.unsigned_tx;
|
|
169
|
+
const warnings = (data.warnings ?? []);
|
|
170
|
+
formatKeyValue({
|
|
171
|
+
intent: data.intent,
|
|
172
|
+
human_summary: data.human_summary,
|
|
173
|
+
tx_to: tx?.to,
|
|
174
|
+
tx_value: tx?.value,
|
|
175
|
+
tx_chainId: tx?.chainId,
|
|
176
|
+
tx_data: truncateHex(tx?.data),
|
|
177
|
+
tx_gas: tx?.gas ?? "auto",
|
|
178
|
+
built_at: data.built_at_utc
|
|
179
|
+
}, {
|
|
180
|
+
labels: {
|
|
181
|
+
intent: "Intent",
|
|
182
|
+
human_summary: "Summary",
|
|
183
|
+
tx_to: "To",
|
|
184
|
+
tx_value: "Value (hex)",
|
|
185
|
+
tx_chainId: "Chain ID",
|
|
186
|
+
tx_data: "Calldata",
|
|
187
|
+
tx_gas: "Gas Limit",
|
|
188
|
+
built_at: "Built At"
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
if (warnings.length > 0) {
|
|
192
|
+
console.log(" Warnings:");
|
|
193
|
+
for (const w of warnings) {
|
|
194
|
+
console.log(` - ${w}`);
|
|
195
|
+
}
|
|
196
|
+
console.log();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function truncateHex(hex) {
|
|
200
|
+
if (!hex)
|
|
201
|
+
return "null";
|
|
202
|
+
if (hex.length <= 66)
|
|
203
|
+
return hex;
|
|
204
|
+
return `${hex.slice(0, 34)}...${hex.slice(-16)} (${hex.length} chars)`;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=defi-swap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defi-swap.js","sourceRoot":"","sources":["../../src/commands/defi-swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defi.d.ts","sourceRoot":"","sources":["../../src/commands/defi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyYlD"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { allTools } from "@0xwh1sker/mantle-core/tools/index.js";
|
|
2
|
+
import { formatKeyValue, formatTable, formatJson } from "../formatter.js";
|
|
3
|
+
import { parseIntegerOption, parseNumberOption } from "../utils.js";
|
|
4
|
+
export function registerDefi(parent) {
|
|
5
|
+
const group = parent.command("defi").description("DeFi read-only operations");
|
|
6
|
+
group
|
|
7
|
+
.command("swap-quote")
|
|
8
|
+
.description("Get swap quotes for Agni and Merchant Moe routes")
|
|
9
|
+
.requiredOption("--in <token>", "input token symbol or address")
|
|
10
|
+
.requiredOption("--out <token>", "output token symbol or address")
|
|
11
|
+
.requiredOption("--amount <amount>", "human-readable amount in")
|
|
12
|
+
.option("--provider <provider>", "routing provider (agni, merchant_moe, best)", "best")
|
|
13
|
+
.option("--fee-tier <tier>", "optional V3 fee tier", (value) => parseNumberOption(value, "--fee-tier"))
|
|
14
|
+
.action(async (opts, cmd) => {
|
|
15
|
+
const globals = cmd.optsWithGlobals();
|
|
16
|
+
const result = await allTools["mantle_getSwapQuote"].handler({
|
|
17
|
+
token_in: opts.in,
|
|
18
|
+
token_out: opts.out,
|
|
19
|
+
amount_in: String(opts.amount),
|
|
20
|
+
provider: opts.provider,
|
|
21
|
+
fee_tier: opts.feeTier,
|
|
22
|
+
network: globals.network
|
|
23
|
+
});
|
|
24
|
+
if (globals.json) {
|
|
25
|
+
formatJson(result);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const data = result;
|
|
29
|
+
const tokenIn = data.token_in;
|
|
30
|
+
const tokenOut = data.token_out;
|
|
31
|
+
formatKeyValue({
|
|
32
|
+
provider: data.provider,
|
|
33
|
+
token_in: `${tokenIn.symbol} (${tokenIn.address})`,
|
|
34
|
+
token_out: `${tokenOut.symbol} (${tokenOut.address})`,
|
|
35
|
+
amount_in: data.amount_in_decimal,
|
|
36
|
+
estimated_out: data.estimated_out_decimal,
|
|
37
|
+
minimum_out: data.minimum_out_decimal,
|
|
38
|
+
price_impact: data.price_impact_pct,
|
|
39
|
+
router: data.router_address,
|
|
40
|
+
route: data.route,
|
|
41
|
+
quoted_at: data.quoted_at_utc
|
|
42
|
+
}, {
|
|
43
|
+
labels: {
|
|
44
|
+
provider: "Provider",
|
|
45
|
+
token_in: "Token In",
|
|
46
|
+
token_out: "Token Out",
|
|
47
|
+
amount_in: "Amount In",
|
|
48
|
+
estimated_out: "Estimated Out",
|
|
49
|
+
minimum_out: "Minimum Out (0.5% slip)",
|
|
50
|
+
price_impact: "Price Impact %",
|
|
51
|
+
router: "Router Address",
|
|
52
|
+
route: "Route",
|
|
53
|
+
quoted_at: "Quoted At"
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
group
|
|
59
|
+
.command("pool-liquidity")
|
|
60
|
+
.description("Read pool reserves and liquidity metadata")
|
|
61
|
+
.argument("<pool-address>", "pool contract address")
|
|
62
|
+
.option("--provider <provider>", "DEX provider (agni, merchant_moe)", "agni")
|
|
63
|
+
.action(async (poolAddress, opts, cmd) => {
|
|
64
|
+
const globals = cmd.optsWithGlobals();
|
|
65
|
+
const result = await allTools["mantle_getPoolLiquidity"].handler({
|
|
66
|
+
pool_address: poolAddress,
|
|
67
|
+
provider: opts.provider,
|
|
68
|
+
network: globals.network
|
|
69
|
+
});
|
|
70
|
+
if (globals.json) {
|
|
71
|
+
formatJson(result);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const data = result;
|
|
75
|
+
const token0 = data.token_0;
|
|
76
|
+
const token1 = data.token_1;
|
|
77
|
+
formatKeyValue({
|
|
78
|
+
pool_address: data.pool_address,
|
|
79
|
+
provider: data.provider,
|
|
80
|
+
token_0: `${token0.symbol} (${token0.address})`,
|
|
81
|
+
token_1: `${token1.symbol} (${token1.address})`,
|
|
82
|
+
reserve_0: data.reserve_0_decimal,
|
|
83
|
+
reserve_1: data.reserve_1_decimal,
|
|
84
|
+
total_liquidity_usd: data.total_liquidity_usd,
|
|
85
|
+
fee_tier: data.fee_tier,
|
|
86
|
+
collected_at: data.collected_at_utc
|
|
87
|
+
}, {
|
|
88
|
+
labels: {
|
|
89
|
+
pool_address: "Pool",
|
|
90
|
+
provider: "Provider",
|
|
91
|
+
token_0: "Token 0",
|
|
92
|
+
token_1: "Token 1",
|
|
93
|
+
reserve_0: "Reserve 0",
|
|
94
|
+
reserve_1: "Reserve 1",
|
|
95
|
+
total_liquidity_usd: "Liquidity (USD)",
|
|
96
|
+
fee_tier: "Fee Tier",
|
|
97
|
+
collected_at: "Collected At"
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
group
|
|
103
|
+
.command("pool-opportunities")
|
|
104
|
+
.description("Scan and rank pools for a token pair")
|
|
105
|
+
.requiredOption("--token-a <token>", "first token symbol or address")
|
|
106
|
+
.requiredOption("--token-b <token>", "second token symbol or address")
|
|
107
|
+
.option("--provider <provider>", "DEX provider filter (agni, merchant_moe, all)", "all")
|
|
108
|
+
.option("--max-results <n>", "max candidates (1-10)", (value) => parseIntegerOption(value, "--max-results"), 5)
|
|
109
|
+
.action(async (opts, cmd) => {
|
|
110
|
+
const globals = cmd.optsWithGlobals();
|
|
111
|
+
const result = await allTools["mantle_getPoolOpportunities"].handler({
|
|
112
|
+
token_a: opts.tokenA,
|
|
113
|
+
token_b: opts.tokenB,
|
|
114
|
+
provider: opts.provider,
|
|
115
|
+
max_results: opts.maxResults,
|
|
116
|
+
network: globals.network
|
|
117
|
+
});
|
|
118
|
+
if (globals.json) {
|
|
119
|
+
formatJson(result);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const data = result;
|
|
123
|
+
const candidates = (data.candidates ?? []);
|
|
124
|
+
console.log(`\n Token A: ${data.token_a.symbol} Token B: ${data.token_b.symbol}\n`);
|
|
125
|
+
formatTable(candidates, [
|
|
126
|
+
{ key: "provider", label: "Provider" },
|
|
127
|
+
{ key: "pool_address", label: "Pool Address" },
|
|
128
|
+
{
|
|
129
|
+
key: "liquidity_usd",
|
|
130
|
+
label: "Liquidity (USD)",
|
|
131
|
+
align: "right",
|
|
132
|
+
format: (v) => (v === null ? "N/A" : String(v))
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
key: "volume_24h_usd",
|
|
136
|
+
label: "24h Volume (USD)",
|
|
137
|
+
align: "right",
|
|
138
|
+
format: (v) => (v === null ? "N/A" : String(v))
|
|
139
|
+
},
|
|
140
|
+
{ key: "score", label: "Score", align: "right" }
|
|
141
|
+
]);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
group
|
|
145
|
+
.command("tvl")
|
|
146
|
+
.description("Protocol TVL for Mantle DeFi protocols")
|
|
147
|
+
.option("--protocol <protocol>", "protocol (agni, merchant_moe, all)", "all")
|
|
148
|
+
.action(async (opts, cmd) => {
|
|
149
|
+
const globals = cmd.optsWithGlobals();
|
|
150
|
+
const result = await allTools["mantle_getProtocolTvl"].handler({
|
|
151
|
+
protocol: opts.protocol,
|
|
152
|
+
network: globals.network
|
|
153
|
+
});
|
|
154
|
+
if (globals.json) {
|
|
155
|
+
formatJson(result);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
const data = result;
|
|
159
|
+
const breakdown = (data.breakdown ?? []);
|
|
160
|
+
formatTable(breakdown, [
|
|
161
|
+
{ key: "protocol", label: "Protocol" },
|
|
162
|
+
{
|
|
163
|
+
key: "tvl_usd",
|
|
164
|
+
label: "TVL (USD)",
|
|
165
|
+
align: "right",
|
|
166
|
+
format: (v) => (v === null ? "N/A" : `$${Number(v).toLocaleString()}`)
|
|
167
|
+
},
|
|
168
|
+
{ key: "source", label: "Source" },
|
|
169
|
+
{ key: "updated_at_utc", label: "Updated At" }
|
|
170
|
+
]);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
group
|
|
174
|
+
.command("lending-markets")
|
|
175
|
+
.description("Aave v3 lending market metrics")
|
|
176
|
+
.option("--protocol <protocol>", "lending protocol (aave_v3, all)", "all")
|
|
177
|
+
.option("--asset <asset>", "optional asset filter (symbol or address)")
|
|
178
|
+
.action(async (opts, cmd) => {
|
|
179
|
+
const globals = cmd.optsWithGlobals();
|
|
180
|
+
const result = await allTools["mantle_getLendingMarkets"].handler({
|
|
181
|
+
protocol: opts.protocol,
|
|
182
|
+
asset: opts.asset,
|
|
183
|
+
network: globals.network
|
|
184
|
+
});
|
|
185
|
+
if (globals.json) {
|
|
186
|
+
formatJson(result);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
const data = result;
|
|
190
|
+
const markets = (data.markets ?? []);
|
|
191
|
+
formatTable(markets, [
|
|
192
|
+
{ key: "asset", label: "Asset" },
|
|
193
|
+
{ key: "supply_apy", label: "Supply APY%", align: "right" },
|
|
194
|
+
{ key: "borrow_apy_variable", label: "Borrow APY%", align: "right" },
|
|
195
|
+
{
|
|
196
|
+
key: "tvl_usd",
|
|
197
|
+
label: "TVL (USD)",
|
|
198
|
+
align: "right",
|
|
199
|
+
format: (v) => (v === null ? "N/A" : `$${Number(v).toLocaleString()}`)
|
|
200
|
+
},
|
|
201
|
+
{ key: "ltv", label: "LTV%", align: "right" },
|
|
202
|
+
{ key: "liquidation_threshold", label: "Liq Threshold%", align: "right" }
|
|
203
|
+
]);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
group
|
|
207
|
+
.command("lb-state")
|
|
208
|
+
.description("Read Merchant Moe LB pair on-chain state (active bin, reserves)")
|
|
209
|
+
.option("--pair <address>", "LB pair address (or use --token-a/--token-b/--bin-step)")
|
|
210
|
+
.option("--token-a <token>", "first token symbol or address")
|
|
211
|
+
.option("--token-b <token>", "second token symbol or address")
|
|
212
|
+
.option("--bin-step <step>", "LB bin step", (v) => parseIntegerOption(v, "--bin-step"))
|
|
213
|
+
.action(async (opts, cmd) => {
|
|
214
|
+
const globals = cmd.optsWithGlobals();
|
|
215
|
+
const result = await allTools["mantle_getLBPairState"].handler({
|
|
216
|
+
pair_address: opts.pair,
|
|
217
|
+
token_a: opts.tokenA,
|
|
218
|
+
token_b: opts.tokenB,
|
|
219
|
+
bin_step: opts.binStep,
|
|
220
|
+
network: globals.network
|
|
221
|
+
});
|
|
222
|
+
if (globals.json) {
|
|
223
|
+
formatJson(result);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
const data = result;
|
|
227
|
+
formatKeyValue({
|
|
228
|
+
pair: data.pair_address,
|
|
229
|
+
active_id: data.active_id,
|
|
230
|
+
bin_step: data.bin_step
|
|
231
|
+
}, {
|
|
232
|
+
labels: {
|
|
233
|
+
pair: "LB Pair",
|
|
234
|
+
active_id: "Active Bin ID",
|
|
235
|
+
bin_step: "Bin Step"
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
const bins = (data.nearby_bins ?? []);
|
|
239
|
+
if (bins.length > 0) {
|
|
240
|
+
formatTable(bins, [
|
|
241
|
+
{ key: "id", label: "Bin ID", align: "right" },
|
|
242
|
+
{ key: "delta", label: "Delta", align: "right" },
|
|
243
|
+
{ key: "reserve_x_decimal", label: "Reserve X", align: "right" },
|
|
244
|
+
{ key: "reserve_y_decimal", label: "Reserve Y", align: "right" },
|
|
245
|
+
{
|
|
246
|
+
key: "is_active",
|
|
247
|
+
label: "Active",
|
|
248
|
+
format: (v) => v === true ? "◆" : ""
|
|
249
|
+
}
|
|
250
|
+
]);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
group
|
|
255
|
+
.command("analyze-pool")
|
|
256
|
+
.description("Deep analysis of a V3 pool: fee APR, multi-range APR comparison, risk assessment, and investment projections")
|
|
257
|
+
.option("--pool <address>", "V3 pool address (or use --token-a/--token-b/--fee-tier/--provider)")
|
|
258
|
+
.option("--token-a <token>", "first token symbol or address")
|
|
259
|
+
.option("--token-b <token>", "second token symbol or address")
|
|
260
|
+
.option("--fee-tier <tier>", "V3 fee tier (500, 3000, 10000)", (v) => parseNumberOption(v, "--fee-tier"))
|
|
261
|
+
.option("--provider <provider>", "DEX provider (agni, fluxion)")
|
|
262
|
+
.option("--investment <usd>", "USD amount for return projections (default: 1000)", (v) => parseNumberOption(v, "--investment"), 1000)
|
|
263
|
+
.action(async (opts, cmd) => {
|
|
264
|
+
const globals = cmd.optsWithGlobals();
|
|
265
|
+
const result = await allTools["mantle_analyzePool"].handler({
|
|
266
|
+
pool_address: opts.pool,
|
|
267
|
+
token_a: opts.tokenA,
|
|
268
|
+
token_b: opts.tokenB,
|
|
269
|
+
fee_tier: opts.feeTier,
|
|
270
|
+
provider: opts.provider,
|
|
271
|
+
investment_usd: opts.investment,
|
|
272
|
+
network: globals.network
|
|
273
|
+
});
|
|
274
|
+
if (globals.json) {
|
|
275
|
+
formatJson(result);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
const data = result;
|
|
279
|
+
const token0 = data.token0;
|
|
280
|
+
const token1 = data.token1;
|
|
281
|
+
const market = data.market_data;
|
|
282
|
+
const risk = data.risk;
|
|
283
|
+
const investment = data.investment;
|
|
284
|
+
// Pool overview
|
|
285
|
+
formatKeyValue({
|
|
286
|
+
pool: data.pool_address,
|
|
287
|
+
provider: data.provider,
|
|
288
|
+
pair: `${token0.symbol} / ${token1.symbol}`,
|
|
289
|
+
fee: `${data.fee_rate_pct}%`,
|
|
290
|
+
price: `${data.current_price_token1_per_token0} ${token1.symbol}/${token0.symbol}`,
|
|
291
|
+
tvl: market.tvl_usd != null ? `$${Number(market.tvl_usd).toLocaleString()}` : "N/A",
|
|
292
|
+
volume_24h: market.volume_24h_usd != null ? `$${Number(market.volume_24h_usd).toLocaleString()}` : "N/A",
|
|
293
|
+
change_24h: market.price_change_24h_pct != null ? `${market.price_change_24h_pct}%` : "N/A",
|
|
294
|
+
base_fee_apr: market.base_fee_apr_pct != null ? `${market.base_fee_apr_pct}%` : "N/A"
|
|
295
|
+
}, {
|
|
296
|
+
labels: {
|
|
297
|
+
pool: "Pool",
|
|
298
|
+
provider: "Provider",
|
|
299
|
+
pair: "Pair",
|
|
300
|
+
fee: "Fee Tier",
|
|
301
|
+
price: "Current Price",
|
|
302
|
+
tvl: "TVL (USD)",
|
|
303
|
+
volume_24h: "24h Volume (USD)",
|
|
304
|
+
change_24h: "24h Price Change",
|
|
305
|
+
base_fee_apr: "Base Fee APR"
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
// Range analysis table
|
|
309
|
+
const ranges = (data.ranges ?? []);
|
|
310
|
+
const recommended = data.recommended_range;
|
|
311
|
+
console.log(` Investment: $${Number(investment.amount_usd).toLocaleString()} Recommended range: ${recommended ?? "N/A"}\n`);
|
|
312
|
+
formatTable(ranges, [
|
|
313
|
+
{
|
|
314
|
+
key: "label",
|
|
315
|
+
label: "Range",
|
|
316
|
+
format: (v) => (v === recommended ? `${v} *` : String(v))
|
|
317
|
+
},
|
|
318
|
+
{ key: "fee_apr_pct", label: "Fee APR%", align: "right" },
|
|
319
|
+
{ key: "concentration_factor", label: "Conc. Factor", align: "right" },
|
|
320
|
+
{
|
|
321
|
+
key: "daily_fee_usd",
|
|
322
|
+
label: "Daily Fee",
|
|
323
|
+
align: "right",
|
|
324
|
+
format: (v) => (v != null ? `$${v}` : "N/A")
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
key: "monthly_fee_usd",
|
|
328
|
+
label: "Monthly Fee",
|
|
329
|
+
align: "right",
|
|
330
|
+
format: (v) => (v != null ? `$${v}` : "N/A")
|
|
331
|
+
},
|
|
332
|
+
{ key: "rebalance_risk", label: "Rebal. Risk" }
|
|
333
|
+
]);
|
|
334
|
+
// Risk assessment
|
|
335
|
+
const details = (risk.details ?? []);
|
|
336
|
+
formatKeyValue({
|
|
337
|
+
overall: risk.overall,
|
|
338
|
+
tvl_risk: risk.tvl_risk,
|
|
339
|
+
volatility_risk: risk.volatility_risk,
|
|
340
|
+
concentration_risk: risk.concentration_risk
|
|
341
|
+
}, {
|
|
342
|
+
labels: {
|
|
343
|
+
overall: "Overall Risk",
|
|
344
|
+
tvl_risk: "TVL Risk",
|
|
345
|
+
volatility_risk: "Volatility Risk",
|
|
346
|
+
concentration_risk: "Concentration Risk"
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
if (details.length > 0) {
|
|
350
|
+
for (const detail of details) {
|
|
351
|
+
console.log(` · ${detail}`);
|
|
352
|
+
}
|
|
353
|
+
console.log();
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=defi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defi.js","sourceRoot":"","sources":["../../src/commands/defi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAE9E,KAAK;SACF,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,cAAc,CAAC,cAAc,EAAE,+BAA+B,CAAC;SAC/D,cAAc,CAAC,eAAe,EAAE,gCAAgC,CAAC;SACjE,cAAc,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;SAC/D,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,EAAE,MAAM,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,CAAC,KAAa,EAAE,EAAE,CACrE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,CACvC;SACA,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC;YAC3D,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG;YACnB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAmC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAoC,CAAC;YAC3D,cAAc,CACZ;gBACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG;gBAClD,SAAS,EAAE,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,GAAG;gBACrD,SAAS,EAAE,IAAI,CAAC,iBAAiB;gBACjC,aAAa,EAAE,IAAI,CAAC,qBAAqB;gBACzC,WAAW,EAAE,IAAI,CAAC,mBAAmB;gBACrC,YAAY,EAAE,IAAI,CAAC,gBAAgB;gBACnC,MAAM,EAAE,IAAI,CAAC,cAAc;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,aAAa;aAC9B,EACD;gBACE,MAAM,EAAE;oBACN,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,WAAW;oBACtB,SAAS,EAAE,WAAW;oBACtB,aAAa,EAAE,eAAe;oBAC9B,WAAW,EAAE,yBAAyB;oBACtC,YAAY,EAAE,gBAAgB;oBAC9B,MAAM,EAAE,gBAAgB;oBACxB,KAAK,EAAE,OAAO;oBACd,SAAS,EAAE,WAAW;iBACvB;aACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;SACnD,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,EAAE,MAAM,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QACjF,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;YAC/D,YAAY,EAAE,WAAW;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAkC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAkC,CAAC;YACvD,cAAc,CACZ;gBACE,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,GAAG;gBAC/C,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,GAAG;gBAC/C,SAAS,EAAE,IAAI,CAAC,iBAAiB;gBACjC,SAAS,EAAE,IAAI,CAAC,iBAAiB;gBACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,gBAAgB;aACpC,EACD;gBACE,MAAM,EAAE;oBACN,YAAY,EAAE,MAAM;oBACpB,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,SAAS;oBAClB,SAAS,EAAE,WAAW;oBACtB,SAAS,EAAE,WAAW;oBACtB,mBAAmB,EAAE,iBAAiB;oBACtC,QAAQ,EAAE,UAAU;oBACpB,YAAY,EAAE,cAAc;iBAC7B;aACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,sCAAsC,CAAC;SACnD,cAAc,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SACpE,cAAc,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SACrE,MAAM,CAAC,uBAAuB,EAAE,+CAA+C,EAAE,KAAK,CAAC;SACvF,MAAM,CACL,mBAAmB,EACnB,uBAAuB,EACvB,CAAC,KAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,EAC7D,CAAC,CACF;SACA,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC;YACnE,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAA8B,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,gBAAiB,IAAI,CAAC,OAAmC,CAAC,MAAM,cAAe,IAAI,CAAC,OAAmC,CAAC,MAAM,IAAI,CAAC,CAAC;YAChJ,WAAW,CAAC,UAAU,EAAE;gBACtB,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;gBACtC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;gBAC9C;oBACE,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,iBAAiB;oBACxB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAChD;gBACD;oBACE,GAAG,EAAE,gBAAgB;oBACrB,KAAK,EAAE,kBAAkB;oBACzB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAChD;gBACD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,EAAE,KAAK,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC;YAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAA8B,CAAC;YACtE,WAAW,CAAC,SAAS,EAAE;gBACrB,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;gBACtC;oBACE,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;iBACvE;gBACD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAClC,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,EAAE,KAAK,CAAC;SACzE,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC;YAChE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA8B,CAAC;YAClE,WAAW,CAAC,OAAO,EAAE;gBACnB,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC3D,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE;gBACpE;oBACE,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;iBACvE;gBACD,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC7C,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,CAAC;SACrF,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SAC7D,MAAM,CACL,mBAAmB,EACnB,aAAa,EACb,CAAC,CAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,CACnD;SACA,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC;YAC7D,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,cAAc,CACZ;gBACE,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EACD;gBACE,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,eAAe;oBAC1B,QAAQ,EAAE,UAAU;iBACrB;aACF,CACF,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAA8B,CAAC;YACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,EAAE;oBAChB,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;oBAC9C,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;oBAChD,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;oBAChE,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;oBAChE;wBACE,GAAG,EAAE,WAAW;wBAChB,KAAK,EAAE,QAAQ;wBACf,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;qBACrC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,8GAA8G,CAC/G;SACA,MAAM,CAAC,kBAAkB,EAAE,oEAAoE,CAAC;SAChG,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SAC7D,MAAM,CACL,mBAAmB,EACnB,gCAAgC,EAChC,CAAC,CAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAClD;SACA,MAAM,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;SAC/D,MAAM,CACL,oBAAoB,EACpB,mDAAmD,EACnD,CAAC,CAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,cAAc,CAAC,EACnD,IAAI,CACL;SACA,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,GAAY,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;YAC1D,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,UAAU;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAsC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAqC,CAAC;YAE9D,gBAAgB;YAChB,cAAc,CACZ;gBACE,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,MAAM,EAAE;gBAC3C,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG;gBAC5B,KAAK,EAAE,GAAG,IAAI,CAAC,+BAA+B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;gBAClF,GAAG,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;gBACnF,UAAU,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;gBACxG,UAAU,EAAE,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,KAAK;gBAC3F,YAAY,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK;aACtF,EACD;gBACE,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,eAAe;oBACtB,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,kBAAkB;oBAC9B,YAAY,EAAE,cAAc;iBAC7B;aACF,CACF,CAAC;YAEF,uBAAuB;YACvB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAA8B,CAAC;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAkC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,0BAA0B,WAAW,IAAI,KAAK,IAAI,CAAC,CAAC;YAChI,WAAW,CAAC,MAAM,EAAE;gBAClB;oBACE,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC1D;gBACD,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;gBACzD,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;gBACtE;oBACE,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;iBAC7C;gBACD;oBACE,GAAG,EAAE,iBAAiB;oBACtB,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;iBAC7C;gBACD,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE;aAChD,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAa,CAAC;YACjD,cAAc,CACZ;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;aAC5C,EACD;gBACE,MAAM,EAAE;oBACN,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,UAAU;oBACpB,eAAe,EAAE,iBAAiB;oBAClC,kBAAkB,EAAE,oBAAoB;iBACzC;aACF,CACF,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/commands/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAuEzD"}
|