fourmm 0.1.0

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.
Files changed (151) hide show
  1. package/README.md +147 -0
  2. package/dist/bin.d.ts +9 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +14 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/cli.d.ts +319 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +25 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/config.d.ts +35 -0
  11. package/dist/commands/config.d.ts.map +1 -0
  12. package/dist/commands/config.js +145 -0
  13. package/dist/commands/config.js.map +1 -0
  14. package/dist/commands/query.d.ts +51 -0
  15. package/dist/commands/query.d.ts.map +1 -0
  16. package/dist/commands/query.js +364 -0
  17. package/dist/commands/query.js.map +1 -0
  18. package/dist/commands/token.d.ts +55 -0
  19. package/dist/commands/token.d.ts.map +1 -0
  20. package/dist/commands/token.js +650 -0
  21. package/dist/commands/token.js.map +1 -0
  22. package/dist/commands/tools.d.ts +54 -0
  23. package/dist/commands/tools.d.ts.map +1 -0
  24. package/dist/commands/tools.js +499 -0
  25. package/dist/commands/tools.js.map +1 -0
  26. package/dist/commands/trade.d.ts +63 -0
  27. package/dist/commands/trade.d.ts.map +1 -0
  28. package/dist/commands/trade.js +933 -0
  29. package/dist/commands/trade.js.map +1 -0
  30. package/dist/commands/transfer.d.ts +51 -0
  31. package/dist/commands/transfer.d.ts.map +1 -0
  32. package/dist/commands/transfer.js +728 -0
  33. package/dist/commands/transfer.js.map +1 -0
  34. package/dist/commands/wallet.d.ts +111 -0
  35. package/dist/commands/wallet.d.ts.map +1 -0
  36. package/dist/commands/wallet.js +716 -0
  37. package/dist/commands/wallet.js.map +1 -0
  38. package/dist/contracts/erc20.d.ts +72 -0
  39. package/dist/contracts/erc20.d.ts.map +1 -0
  40. package/dist/contracts/erc20.js +55 -0
  41. package/dist/contracts/erc20.js.map +1 -0
  42. package/dist/contracts/fourmemeMmRouter.d.ts +68 -0
  43. package/dist/contracts/fourmemeMmRouter.d.ts.map +1 -0
  44. package/dist/contracts/fourmemeMmRouter.js +48 -0
  45. package/dist/contracts/fourmemeMmRouter.js.map +1 -0
  46. package/dist/contracts/pancakeRouter.d.ts +73 -0
  47. package/dist/contracts/pancakeRouter.d.ts.map +1 -0
  48. package/dist/contracts/pancakeRouter.js +50 -0
  49. package/dist/contracts/pancakeRouter.js.map +1 -0
  50. package/dist/contracts/tokenManager2.d.ts +193 -0
  51. package/dist/contracts/tokenManager2.d.ts.map +1 -0
  52. package/dist/contracts/tokenManager2.js +108 -0
  53. package/dist/contracts/tokenManager2.js.map +1 -0
  54. package/dist/contracts/tokenManagerHelper3.d.ts +118 -0
  55. package/dist/contracts/tokenManagerHelper3.d.ts.map +1 -0
  56. package/dist/contracts/tokenManagerHelper3.js +66 -0
  57. package/dist/contracts/tokenManagerHelper3.js.map +1 -0
  58. package/dist/datastore/cache.d.ts +20 -0
  59. package/dist/datastore/cache.d.ts.map +1 -0
  60. package/dist/datastore/cache.js +45 -0
  61. package/dist/datastore/cache.js.map +1 -0
  62. package/dist/datastore/index.d.ts +85 -0
  63. package/dist/datastore/index.d.ts.map +1 -0
  64. package/dist/datastore/index.js +341 -0
  65. package/dist/datastore/index.js.map +1 -0
  66. package/dist/datastore/paths.d.ts +17 -0
  67. package/dist/datastore/paths.d.ts.map +1 -0
  68. package/dist/datastore/paths.js +39 -0
  69. package/dist/datastore/paths.js.map +1 -0
  70. package/dist/datastore/types.d.ts +105 -0
  71. package/dist/datastore/types.d.ts.map +1 -0
  72. package/dist/datastore/types.js +8 -0
  73. package/dist/datastore/types.js.map +1 -0
  74. package/dist/fourmeme/auth.d.ts +22 -0
  75. package/dist/fourmeme/auth.d.ts.map +1 -0
  76. package/dist/fourmeme/auth.js +78 -0
  77. package/dist/fourmeme/auth.js.map +1 -0
  78. package/dist/fourmeme/create.d.ts +31 -0
  79. package/dist/fourmeme/create.d.ts.map +1 -0
  80. package/dist/fourmeme/create.js +111 -0
  81. package/dist/fourmeme/create.js.map +1 -0
  82. package/dist/fourmeme/upload.d.ts +16 -0
  83. package/dist/fourmeme/upload.d.ts.map +1 -0
  84. package/dist/fourmeme/upload.js +52 -0
  85. package/dist/fourmeme/upload.js.map +1 -0
  86. package/dist/lib/bundle.d.ts +51 -0
  87. package/dist/lib/bundle.d.ts.map +1 -0
  88. package/dist/lib/bundle.js +95 -0
  89. package/dist/lib/bundle.js.map +1 -0
  90. package/dist/lib/config.d.ts +58 -0
  91. package/dist/lib/config.d.ts.map +1 -0
  92. package/dist/lib/config.js +183 -0
  93. package/dist/lib/config.js.map +1 -0
  94. package/dist/lib/const.d.ts +165 -0
  95. package/dist/lib/const.d.ts.map +1 -0
  96. package/dist/lib/const.js +98 -0
  97. package/dist/lib/const.js.map +1 -0
  98. package/dist/lib/env.d.ts +14 -0
  99. package/dist/lib/env.d.ts.map +1 -0
  100. package/dist/lib/env.js +18 -0
  101. package/dist/lib/env.js.map +1 -0
  102. package/dist/lib/guards.d.ts +44 -0
  103. package/dist/lib/guards.d.ts.map +1 -0
  104. package/dist/lib/guards.js +65 -0
  105. package/dist/lib/guards.js.map +1 -0
  106. package/dist/lib/identify.d.ts +85 -0
  107. package/dist/lib/identify.d.ts.map +1 -0
  108. package/dist/lib/identify.js +88 -0
  109. package/dist/lib/identify.js.map +1 -0
  110. package/dist/lib/pricing.d.ts +62 -0
  111. package/dist/lib/pricing.d.ts.map +1 -0
  112. package/dist/lib/pricing.js +302 -0
  113. package/dist/lib/pricing.js.map +1 -0
  114. package/dist/lib/routing.d.ts +57 -0
  115. package/dist/lib/routing.d.ts.map +1 -0
  116. package/dist/lib/routing.js +67 -0
  117. package/dist/lib/routing.js.map +1 -0
  118. package/dist/lib/slippage.d.ts +29 -0
  119. package/dist/lib/slippage.d.ts.map +1 -0
  120. package/dist/lib/slippage.js +110 -0
  121. package/dist/lib/slippage.js.map +1 -0
  122. package/dist/lib/tracker.d.ts +68 -0
  123. package/dist/lib/tracker.d.ts.map +1 -0
  124. package/dist/lib/tracker.js +155 -0
  125. package/dist/lib/tracker.js.map +1 -0
  126. package/dist/lib/viem.d.ts +12 -0
  127. package/dist/lib/viem.d.ts.map +1 -0
  128. package/dist/lib/viem.js +44 -0
  129. package/dist/lib/viem.js.map +1 -0
  130. package/dist/lib/wallet-rows.d.ts +30 -0
  131. package/dist/lib/wallet-rows.d.ts.map +1 -0
  132. package/dist/lib/wallet-rows.js +9 -0
  133. package/dist/lib/wallet-rows.js.map +1 -0
  134. package/dist/lib/walletClient.d.ts +16 -0
  135. package/dist/lib/walletClient.d.ts.map +1 -0
  136. package/dist/lib/walletClient.js +26 -0
  137. package/dist/lib/walletClient.js.map +1 -0
  138. package/dist/wallets/groups/encrypt.d.ts +26 -0
  139. package/dist/wallets/groups/encrypt.d.ts.map +1 -0
  140. package/dist/wallets/groups/encrypt.js +52 -0
  141. package/dist/wallets/groups/encrypt.js.map +1 -0
  142. package/dist/wallets/groups/generate.d.ts +19 -0
  143. package/dist/wallets/groups/generate.d.ts.map +1 -0
  144. package/dist/wallets/groups/generate.js +36 -0
  145. package/dist/wallets/groups/generate.js.map +1 -0
  146. package/dist/wallets/groups/store.d.ts +107 -0
  147. package/dist/wallets/groups/store.d.ts.map +1 -0
  148. package/dist/wallets/groups/store.js +254 -0
  149. package/dist/wallets/groups/store.js.map +1 -0
  150. package/package.json +50 -0
  151. package/skills/SKILL.md +187 -0
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ # fourMM — Four.meme Market Maker
2
+
3
+ > Agent-first CLI for Four.meme market making on BSC.
4
+
5
+ ## What it does
6
+
7
+ fourMM is a command-line tool for running market-making strategies on [Four.meme](https://four.meme) tokens on BNB Smart Chain, designed to be driven by AI agents (Claude Code, MCP clients) or used directly.
8
+
9
+ ### Key Features
10
+
11
+ 1. **Flashbot Bundle Execution** — Pump/dump commands sign all wallets' txs offline and submit via `eth_sendBundle` (BlockRazor), atomically executing in the same block. No MEV, no sandwich.
12
+ 2. **Atomic Router Contract** — A Solidity router on BSC does `buy + sell round-trip` in a single tx (`volume()`), `buy for another wallet` (`turnover()`), and `PancakeSwap round-trip` (`volumePancake()`).
13
+ 3. **Bonding Curve + PancakeSwap Auto-Routing** — Every trade command detects whether the token has graduated and routes through the correct contract. Your volume bot doesn't break at graduation.
14
+ 4. **Token Creation** — Full Four.meme REST API integration: auth, image upload, token registration, on-chain `createToken`, optional dev-buy.
15
+ 5. **Refuses TaxToken / X Mode** — Because the round-trip math doesn't work. fourMM knows what real market making means.
16
+
17
+ ## Install
18
+
19
+ ```bash
20
+ pnpm install
21
+ pnpm build
22
+ ```
23
+
24
+ Requires Node.js >= 22.
25
+
26
+ ## Quick Start
27
+
28
+ ```bash
29
+ # Initialize config (BlockRazor MEV-protected RPC by default)
30
+ fourmm config init
31
+
32
+ # Create wallet group with 5 wallets
33
+ fourmm wallet create-group --name snipers --count 5
34
+
35
+ # Fund wallets from your main wallet
36
+ fourmm transfer out --from 0xYourWallet --to-group 1 --value 0.01
37
+
38
+ # Create a token on Four.meme
39
+ fourmm token create --name "My Token" --symbol "MTK" --image logo.png --dev-wallet 1
40
+
41
+ # Buy
42
+ fourmm trade buy --group 1 --token 0x...4444 --amount 0.01
43
+
44
+ # Sell all
45
+ fourmm trade sell --group 1 --token 0x...4444 --amount all
46
+
47
+ # Pump price (Flashbot bundle, all wallets buy atomically each round)
48
+ fourmm tools robot-price --group 1 --token 0x...4444 --direction up --target-price 0.00001 --amount 0.01
49
+
50
+ # Dump price
51
+ fourmm tools robot-price --group 1 --token 0x...4444 --direction down --target-price 0.000001 --amount 0.01
52
+
53
+ # Generate volume (atomic buy+sell per wallet, zero net position)
54
+ fourmm tools volume --group 1 --token 0x...4444 --amount 0.01 --rounds 10
55
+
56
+ # Check PnL
57
+ fourmm query monitor --group 1 --token 0x...4444
58
+ ```
59
+
60
+ ## Agent Integration
61
+
62
+ ```bash
63
+ # Option 1: Install skills globally (any agent can discover them)
64
+ pnpm install && pnpm build
65
+ npx fourmm skills add
66
+
67
+ # Option 2: MCP server (Claude Desktop / Cursor / etc.)
68
+ npx fourmm --mcp
69
+ ```
70
+
71
+ Skills are in the `skills/` directory. The top-level `skills/SKILL.md` is a routing table that maps user intents to commands. Sub-skills (`skills/fourmm-*/SKILL.md`) contain detailed parameter schemas and output types.
72
+
73
+ ## Commands (34)
74
+
75
+ ```
76
+ config (3) init, set, get
77
+ wallet (11) create-group, generate, list-groups, group-info,
78
+ add, import, export, export-group, overview,
79
+ delete-group, remove
80
+ token (5) create, info, pool, identify, graduate-status
81
+ trade (4) buy, sell, sniper, batch
82
+ tools (3) volume, turnover, robot-price
83
+ transfer (3) in, out, many-to-many
84
+ query (5) balance, price, kline, transactions, monitor
85
+ ```
86
+
87
+ See [skills/SKILL.md](./skills/SKILL.md) for the full routing guide with all options.
88
+
89
+ ## Architecture
90
+
91
+ ```
92
+ ┌─────────────────────────────────────────────┐
93
+ │ AI Agent (Claude Code / MCP) │
94
+ │ reads skills/SKILL.md → picks command │
95
+ └──────────────┬──────────────────────────────┘
96
+
97
+ ┌──────────────▼──────────────────────────────┐
98
+ │ fourmm CLI (incur framework) │
99
+ │ 34 commands, TOON/JSON/YAML output │
100
+ │ zod schemas for agent-safe I/O │
101
+ └──────────────┬──────────────────────────────┘
102
+
103
+ ┌──────────┼──────────────┐
104
+ │ │ │
105
+ ┌───▼───┐ ┌───▼────┐ ┌─────▼──────┐
106
+ │Bonding│ │Pancake │ │ Flashbot │
107
+ │ Curve │ │ Swap │ │ Bundle │
108
+ │(V1/V2)│ │(Router)│ │(eth_send │
109
+ │ │ │ │ │ Bundle) │
110
+ └───┬───┘ └───┬────┘ └─────┬──────┘
111
+ │ │ │
112
+ ┌───▼─────────▼──────────────▼──────┐
113
+ │ BSC Mainnet │
114
+ │ TokenManager2 PancakeRouter02 │
115
+ │ FourmemeMmRouter v2 │
116
+ │ (0xd62c...216c) │
117
+ └────────────────────────────────────┘
118
+ ```
119
+
120
+ ## On-Chain Contracts
121
+
122
+ | Contract | Address | Description |
123
+ |----------|---------|-------------|
124
+ | FourmemeMmRouter v2 | `0xd62c2fd94176f98424af83e4b9a333d454b2216c` | Atomic volume/turnover/volumePancake |
125
+ | TokenManager2 | `0x5c952063c7fc8610FFDB798152D69F0B9550762b` | Four.meme V2 (buy/sell/create) |
126
+ | TokenManagerHelper3 | `0xF251F83e40a78868FcfA3FA4599Dad6494E46034` | Unified query interface |
127
+ | PancakeSwap V2 Router | `0x10ED43C718714eb63d5aA57B78B54704E256024E` | Graduated token trading |
128
+
129
+ ## Environment Variables
130
+
131
+ | Variable | Description |
132
+ |----------|-------------|
133
+ | `FOURMM_PASSWORD` | Master password for wallet encryption |
134
+ | `BSC_RPC_URL` | Override primary RPC endpoint |
135
+ | `BSCSCAN_API_KEY` | BSCScan API key |
136
+
137
+ ## Tech Stack
138
+
139
+ - **CLI Framework**: [incur](https://github.com/nicholasgasior/incur) — agent-first with TOON output, CTAs, skills/MCP auto-generation
140
+ - **EVM Client**: [viem](https://viem.sh) — TypeScript EVM interactions
141
+ - **Contracts**: [Foundry](https://getfoundry.sh) — Solidity development + fork testing
142
+ - **Encryption**: crypto-js AES — wallet-at-rest encryption
143
+ - **Bundle**: BlockRazor `eth_sendBundle` — Flashbot-style atomic execution
144
+
145
+ ## License
146
+
147
+ MIT
package/dist/bin.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * fourMM CLI entry point.
4
+ *
5
+ * Force exit after serve() resolves so fire-and-forget background tasks
6
+ * (trackInBackground) don't keep the process alive for 30+ seconds.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
package/dist/bin.js ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * fourMM CLI entry point.
4
+ *
5
+ * Force exit after serve() resolves so fire-and-forget background tasks
6
+ * (trackInBackground) don't keep the process alive for 30+ seconds.
7
+ */
8
+ import { cli } from './cli.js';
9
+ cli.serve().then(() => {
10
+ // Give background tasks 2s grace period to flush DataStore writes,
11
+ // then exit regardless of pending HTTP handles.
12
+ setTimeout(() => process.exit(0), 2_000).unref();
13
+ });
14
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACpB,mEAAmE;IACnE,gDAAgD;IAChD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAClD,CAAC,CAAC,CAAA"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,319 @@
1
+ /**
2
+ * fourMM — Four.meme Market Maker
3
+ *
4
+ * Root CLI definition. Command groups are mounted here.
5
+ */
6
+ import { Cli } from 'incur';
7
+ export declare const cli: Cli.Cli<{
8
+ [x: `${string} init`]: {
9
+ args: {};
10
+ options: {
11
+ rpcUrl?: string | undefined;
12
+ network?: "bsc" | "bsc-testnet" | undefined;
13
+ slippageBps?: number | undefined;
14
+ };
15
+ };
16
+ [x: `${string} set`]: {
17
+ args: {
18
+ key: string;
19
+ value: string;
20
+ };
21
+ options: {};
22
+ };
23
+ [x: `${string} get`]: {
24
+ args: {};
25
+ options: {
26
+ key?: string | undefined;
27
+ };
28
+ };
29
+ } & {
30
+ [x: `${string} create-group`]: {
31
+ args: {};
32
+ options: {
33
+ name: string;
34
+ count: number;
35
+ note?: string | undefined;
36
+ password?: string | undefined;
37
+ };
38
+ };
39
+ [x: `${string} generate`]: {
40
+ args: {};
41
+ options: {
42
+ group: number;
43
+ count: number;
44
+ password?: string | undefined;
45
+ };
46
+ };
47
+ [x: `${string} add`]: {
48
+ args: {};
49
+ options: {
50
+ group: number;
51
+ privateKey: string;
52
+ note?: string | undefined;
53
+ password?: string | undefined;
54
+ };
55
+ };
56
+ [x: `${string} group-info`]: {
57
+ args: {};
58
+ options: {
59
+ id: number;
60
+ showKeys: boolean;
61
+ password?: string | undefined;
62
+ };
63
+ };
64
+ [x: `${string} list-groups`]: {
65
+ args: {};
66
+ options: {
67
+ password?: string | undefined;
68
+ };
69
+ };
70
+ [x: `${string} delete-group`]: {
71
+ args: {};
72
+ options: {
73
+ id: number;
74
+ force: boolean;
75
+ password?: string | undefined;
76
+ };
77
+ };
78
+ [x: `${string} remove`]: {
79
+ args: {};
80
+ options: {
81
+ group: number;
82
+ address: string;
83
+ password?: string | undefined;
84
+ };
85
+ };
86
+ [x: `${string} import`]: {
87
+ args: {};
88
+ options: {
89
+ group: number;
90
+ file: string;
91
+ password?: string | undefined;
92
+ };
93
+ };
94
+ [x: `${string} export`]: {
95
+ args: {};
96
+ options: {
97
+ group: number;
98
+ file: string;
99
+ password?: string | undefined;
100
+ };
101
+ };
102
+ [x: `${string} export-group`]: {
103
+ args: {};
104
+ options: {
105
+ file: string;
106
+ encrypt: boolean;
107
+ password?: string | undefined;
108
+ };
109
+ };
110
+ [x: `${string} overview`]: {
111
+ args: {};
112
+ options: {
113
+ groups: string;
114
+ token?: string | undefined;
115
+ password?: string | undefined;
116
+ };
117
+ };
118
+ } & {
119
+ [x: `${string} pool`]: {
120
+ args: {};
121
+ options: {
122
+ ca: string;
123
+ };
124
+ };
125
+ [x: `${string} create`]: {
126
+ args: {};
127
+ options: {
128
+ name: string;
129
+ symbol: string;
130
+ image: string;
131
+ description: string;
132
+ category: "Meme" | "AI" | "Defi" | "Games" | "Infra" | "De-Sci" | "Social" | "Depin" | "Charity" | "Others";
133
+ presetBuy: number;
134
+ dryRun: boolean;
135
+ twitter?: string | undefined;
136
+ website?: string | undefined;
137
+ telegram?: string | undefined;
138
+ devWallet?: number | undefined;
139
+ password?: string | undefined;
140
+ };
141
+ };
142
+ [x: `${string} identify`]: {
143
+ args: {};
144
+ options: {
145
+ ca: string;
146
+ };
147
+ };
148
+ [x: `${string} graduate-status`]: {
149
+ args: {};
150
+ options: {
151
+ ca: string;
152
+ };
153
+ };
154
+ [x: `${string} info`]: {
155
+ args: {};
156
+ options: {
157
+ ca: string;
158
+ };
159
+ };
160
+ } & {
161
+ [x: `${string} balance`]: {
162
+ args: {};
163
+ options: {
164
+ address: string;
165
+ token?: string | undefined;
166
+ };
167
+ };
168
+ [x: `${string} transactions`]: {
169
+ args: {};
170
+ options: {
171
+ group: number;
172
+ limit: number;
173
+ token?: string | undefined;
174
+ };
175
+ };
176
+ [x: `${string} price`]: {
177
+ args: {};
178
+ options: {
179
+ token: string;
180
+ };
181
+ };
182
+ [x: `${string} monitor`]: {
183
+ args: {};
184
+ options: {
185
+ group: number;
186
+ token: string;
187
+ };
188
+ };
189
+ [x: `${string} kline`]: {
190
+ args: {};
191
+ options: {
192
+ token: string;
193
+ interval: "1m" | "5m" | "15m" | "1h" | "4h" | "12h" | "1d";
194
+ count: number;
195
+ pool?: string | undefined;
196
+ };
197
+ };
198
+ } & {
199
+ [x: `${string} out`]: {
200
+ args: {};
201
+ options: {
202
+ from: string;
203
+ toGroup: number;
204
+ value: number;
205
+ dryRun: boolean;
206
+ password?: string | undefined;
207
+ };
208
+ };
209
+ [x: `${string} in`]: {
210
+ args: {};
211
+ options: {
212
+ to: string;
213
+ fromGroup: number;
214
+ amount: "fixed" | "all" | "reserve";
215
+ dryRun: boolean;
216
+ value?: number | undefined;
217
+ password?: string | undefined;
218
+ };
219
+ };
220
+ [x: `${string} many-to-many`]: {
221
+ args: {};
222
+ options: {
223
+ fromGroup: number;
224
+ toGroup: number;
225
+ amount: "fixed" | "all" | "reserve";
226
+ dryRun: boolean;
227
+ value?: number | undefined;
228
+ password?: string | undefined;
229
+ };
230
+ };
231
+ } & {
232
+ [x: `${string} buy`]: {
233
+ args: {};
234
+ options: {
235
+ group: number;
236
+ token: string;
237
+ amount: number;
238
+ slippage: number;
239
+ dryRun: boolean;
240
+ password?: string | undefined;
241
+ };
242
+ };
243
+ [x: `${string} sell`]: {
244
+ args: {};
245
+ options: {
246
+ group: number;
247
+ token: string;
248
+ amount: string;
249
+ slippage: number;
250
+ dryRun: boolean;
251
+ password?: string | undefined;
252
+ };
253
+ };
254
+ [x: `${string} batch`]: {
255
+ args: {};
256
+ options: {
257
+ group: number;
258
+ token: string;
259
+ amount: number;
260
+ slippage: number;
261
+ dryRun: boolean;
262
+ password?: string | undefined;
263
+ };
264
+ };
265
+ [x: `${string} sniper`]: {
266
+ args: {};
267
+ options: {
268
+ group: number;
269
+ token: string;
270
+ amounts: string;
271
+ slippage: number;
272
+ dryRun: boolean;
273
+ password?: string | undefined;
274
+ };
275
+ };
276
+ } & {
277
+ [x: `${string} turnover`]: {
278
+ args: {};
279
+ options: {
280
+ fromGroup: number;
281
+ toGroup: number;
282
+ token: string;
283
+ amount: number;
284
+ slippage: number;
285
+ dryRun: boolean;
286
+ password?: string | undefined;
287
+ };
288
+ };
289
+ [x: `${string} volume`]: {
290
+ args: {};
291
+ options: {
292
+ group: number;
293
+ token: string;
294
+ amount: number;
295
+ slippage: number;
296
+ rounds: number;
297
+ interval: number;
298
+ dryRun: boolean;
299
+ password?: string | undefined;
300
+ };
301
+ };
302
+ [x: `${string} robot-price`]: {
303
+ args: {};
304
+ options: {
305
+ group: number;
306
+ token: string;
307
+ direction: "up" | "down";
308
+ targetPrice: number;
309
+ amount: number;
310
+ interval: number;
311
+ maxRounds: number;
312
+ slippage: number;
313
+ dryRun: boolean;
314
+ maxCost?: number | undefined;
315
+ password?: string | undefined;
316
+ };
317
+ };
318
+ }, undefined, undefined>;
319
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAS3B,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAWC,CAAA"}
package/dist/cli.js ADDED
@@ -0,0 +1,25 @@
1
+ /**
2
+ * fourMM — Four.meme Market Maker
3
+ *
4
+ * Root CLI definition. Command groups are mounted here.
5
+ */
6
+ import { Cli } from 'incur';
7
+ import { config } from './commands/config.js';
8
+ import { query } from './commands/query.js';
9
+ import { token } from './commands/token.js';
10
+ import { tools } from './commands/tools.js';
11
+ import { trade } from './commands/trade.js';
12
+ import { transfer } from './commands/transfer.js';
13
+ import { wallet } from './commands/wallet.js';
14
+ export const cli = Cli.create('fourmm', {
15
+ version: '0.1.0',
16
+ description: 'fourMM — agent-first CLI for Four.meme market making on BSC.',
17
+ })
18
+ .command(config)
19
+ .command(wallet)
20
+ .command(token)
21
+ .command(query)
22
+ .command(transfer)
23
+ .command(trade)
24
+ .command(tools);
25
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,OAAO;IAChB,WAAW,EACT,8DAA8D;CACjE,CAAC;KACC,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAC,KAAK,CAAC;KACd,OAAO,CAAC,KAAK,CAAC;KACd,OAAO,CAAC,QAAQ,CAAC;KACjB,OAAO,CAAC,KAAK,CAAC;KACd,OAAO,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `fourmm config` command group — manage ~/.fourmm/config.json.
3
+ *
4
+ * Subcommands:
5
+ * - init: create config file with defaults (or overrides)
6
+ * - set <key> <value>: update a single value
7
+ * - get [key]: read one value or the whole config
8
+ */
9
+ import { Cli } from 'incur';
10
+ export declare const config: Cli.Cli<{
11
+ init: {
12
+ args: {};
13
+ options: {
14
+ rpcUrl?: string | undefined;
15
+ network?: "bsc" | "bsc-testnet" | undefined;
16
+ slippageBps?: number | undefined;
17
+ };
18
+ };
19
+ } & {
20
+ set: {
21
+ args: {
22
+ key: string;
23
+ value: string;
24
+ };
25
+ options: {};
26
+ };
27
+ } & {
28
+ get: {
29
+ args: {};
30
+ options: {
31
+ key?: string | undefined;
32
+ };
33
+ };
34
+ }, undefined, undefined>;
35
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAK,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;wBAqIf,CAAA"}