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.
- package/README.md +147 -0
- package/dist/bin.d.ts +9 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +14 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +319 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +25 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/config.d.ts +35 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +145 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/query.d.ts +51 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +364 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/token.d.ts +55 -0
- package/dist/commands/token.d.ts.map +1 -0
- package/dist/commands/token.js +650 -0
- package/dist/commands/token.js.map +1 -0
- package/dist/commands/tools.d.ts +54 -0
- package/dist/commands/tools.d.ts.map +1 -0
- package/dist/commands/tools.js +499 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/trade.d.ts +63 -0
- package/dist/commands/trade.d.ts.map +1 -0
- package/dist/commands/trade.js +933 -0
- package/dist/commands/trade.js.map +1 -0
- package/dist/commands/transfer.d.ts +51 -0
- package/dist/commands/transfer.d.ts.map +1 -0
- package/dist/commands/transfer.js +728 -0
- package/dist/commands/transfer.js.map +1 -0
- package/dist/commands/wallet.d.ts +111 -0
- package/dist/commands/wallet.d.ts.map +1 -0
- package/dist/commands/wallet.js +716 -0
- package/dist/commands/wallet.js.map +1 -0
- package/dist/contracts/erc20.d.ts +72 -0
- package/dist/contracts/erc20.d.ts.map +1 -0
- package/dist/contracts/erc20.js +55 -0
- package/dist/contracts/erc20.js.map +1 -0
- package/dist/contracts/fourmemeMmRouter.d.ts +68 -0
- package/dist/contracts/fourmemeMmRouter.d.ts.map +1 -0
- package/dist/contracts/fourmemeMmRouter.js +48 -0
- package/dist/contracts/fourmemeMmRouter.js.map +1 -0
- package/dist/contracts/pancakeRouter.d.ts +73 -0
- package/dist/contracts/pancakeRouter.d.ts.map +1 -0
- package/dist/contracts/pancakeRouter.js +50 -0
- package/dist/contracts/pancakeRouter.js.map +1 -0
- package/dist/contracts/tokenManager2.d.ts +193 -0
- package/dist/contracts/tokenManager2.d.ts.map +1 -0
- package/dist/contracts/tokenManager2.js +108 -0
- package/dist/contracts/tokenManager2.js.map +1 -0
- package/dist/contracts/tokenManagerHelper3.d.ts +118 -0
- package/dist/contracts/tokenManagerHelper3.d.ts.map +1 -0
- package/dist/contracts/tokenManagerHelper3.js +66 -0
- package/dist/contracts/tokenManagerHelper3.js.map +1 -0
- package/dist/datastore/cache.d.ts +20 -0
- package/dist/datastore/cache.d.ts.map +1 -0
- package/dist/datastore/cache.js +45 -0
- package/dist/datastore/cache.js.map +1 -0
- package/dist/datastore/index.d.ts +85 -0
- package/dist/datastore/index.d.ts.map +1 -0
- package/dist/datastore/index.js +341 -0
- package/dist/datastore/index.js.map +1 -0
- package/dist/datastore/paths.d.ts +17 -0
- package/dist/datastore/paths.d.ts.map +1 -0
- package/dist/datastore/paths.js +39 -0
- package/dist/datastore/paths.js.map +1 -0
- package/dist/datastore/types.d.ts +105 -0
- package/dist/datastore/types.d.ts.map +1 -0
- package/dist/datastore/types.js +8 -0
- package/dist/datastore/types.js.map +1 -0
- package/dist/fourmeme/auth.d.ts +22 -0
- package/dist/fourmeme/auth.d.ts.map +1 -0
- package/dist/fourmeme/auth.js +78 -0
- package/dist/fourmeme/auth.js.map +1 -0
- package/dist/fourmeme/create.d.ts +31 -0
- package/dist/fourmeme/create.d.ts.map +1 -0
- package/dist/fourmeme/create.js +111 -0
- package/dist/fourmeme/create.js.map +1 -0
- package/dist/fourmeme/upload.d.ts +16 -0
- package/dist/fourmeme/upload.d.ts.map +1 -0
- package/dist/fourmeme/upload.js +52 -0
- package/dist/fourmeme/upload.js.map +1 -0
- package/dist/lib/bundle.d.ts +51 -0
- package/dist/lib/bundle.d.ts.map +1 -0
- package/dist/lib/bundle.js +95 -0
- package/dist/lib/bundle.js.map +1 -0
- package/dist/lib/config.d.ts +58 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +183 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/const.d.ts +165 -0
- package/dist/lib/const.d.ts.map +1 -0
- package/dist/lib/const.js +98 -0
- package/dist/lib/const.js.map +1 -0
- package/dist/lib/env.d.ts +14 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/env.js +18 -0
- package/dist/lib/env.js.map +1 -0
- package/dist/lib/guards.d.ts +44 -0
- package/dist/lib/guards.d.ts.map +1 -0
- package/dist/lib/guards.js +65 -0
- package/dist/lib/guards.js.map +1 -0
- package/dist/lib/identify.d.ts +85 -0
- package/dist/lib/identify.d.ts.map +1 -0
- package/dist/lib/identify.js +88 -0
- package/dist/lib/identify.js.map +1 -0
- package/dist/lib/pricing.d.ts +62 -0
- package/dist/lib/pricing.d.ts.map +1 -0
- package/dist/lib/pricing.js +302 -0
- package/dist/lib/pricing.js.map +1 -0
- package/dist/lib/routing.d.ts +57 -0
- package/dist/lib/routing.d.ts.map +1 -0
- package/dist/lib/routing.js +67 -0
- package/dist/lib/routing.js.map +1 -0
- package/dist/lib/slippage.d.ts +29 -0
- package/dist/lib/slippage.d.ts.map +1 -0
- package/dist/lib/slippage.js +110 -0
- package/dist/lib/slippage.js.map +1 -0
- package/dist/lib/tracker.d.ts +68 -0
- package/dist/lib/tracker.d.ts.map +1 -0
- package/dist/lib/tracker.js +155 -0
- package/dist/lib/tracker.js.map +1 -0
- package/dist/lib/viem.d.ts +12 -0
- package/dist/lib/viem.d.ts.map +1 -0
- package/dist/lib/viem.js +44 -0
- package/dist/lib/viem.js.map +1 -0
- package/dist/lib/wallet-rows.d.ts +30 -0
- package/dist/lib/wallet-rows.d.ts.map +1 -0
- package/dist/lib/wallet-rows.js +9 -0
- package/dist/lib/wallet-rows.js.map +1 -0
- package/dist/lib/walletClient.d.ts +16 -0
- package/dist/lib/walletClient.d.ts.map +1 -0
- package/dist/lib/walletClient.js +26 -0
- package/dist/lib/walletClient.js.map +1 -0
- package/dist/wallets/groups/encrypt.d.ts +26 -0
- package/dist/wallets/groups/encrypt.d.ts.map +1 -0
- package/dist/wallets/groups/encrypt.js +52 -0
- package/dist/wallets/groups/encrypt.js.map +1 -0
- package/dist/wallets/groups/generate.d.ts +19 -0
- package/dist/wallets/groups/generate.d.ts.map +1 -0
- package/dist/wallets/groups/generate.js +36 -0
- package/dist/wallets/groups/generate.js.map +1 -0
- package/dist/wallets/groups/store.d.ts +107 -0
- package/dist/wallets/groups/store.d.ts.map +1 -0
- package/dist/wallets/groups/store.js +254 -0
- package/dist/wallets/groups/store.js.map +1 -0
- package/package.json +50 -0
- 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 @@
|
|
|
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
|
package/dist/bin.js.map
ADDED
|
@@ -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
|
package/dist/cli.js.map
ADDED
|
@@ -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"}
|