@conquest-eth/tools 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -51
- package/dist/cli-tool-generator.d.ts +2 -1
- package/dist/cli-tool-generator.d.ts.map +1 -1
- package/dist/cli.js +61 -32
- package/dist/cli.js.map +1 -1
- package/dist/contracts/space-info.d.ts.map +1 -1
- package/dist/contracts/space-info.js +22 -1
- package/dist/contracts/space-info.js.map +1 -1
- package/dist/fleet/resolve.d.ts +1 -1
- package/dist/fleet/resolve.d.ts.map +1 -1
- package/dist/fleet/resolve.js +5 -4
- package/dist/fleet/resolve.js.map +1 -1
- package/dist/fleet/send.d.ts.map +1 -1
- package/dist/fleet/send.js +8 -8
- package/dist/fleet/send.js.map +1 -1
- package/dist/index.d.ts +6 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -128
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +14 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +29 -0
- package/dist/mcp.js.map +1 -0
- package/dist/planet/acquire.d.ts +3 -2
- package/dist/planet/acquire.d.ts.map +1 -1
- package/dist/planet/acquire.js +6 -4
- package/dist/planet/acquire.js.map +1 -1
- package/dist/planet/exit.d.ts.map +1 -1
- package/dist/planet/exit.js +1 -0
- package/dist/planet/exit.js.map +1 -1
- package/dist/planet/manager.d.ts +63 -0
- package/dist/planet/manager.d.ts.map +1 -1
- package/dist/planet/manager.js +125 -2
- package/dist/planet/manager.js.map +1 -1
- package/dist/planet/withdraw.d.ts +17 -0
- package/dist/planet/withdraw.d.ts.map +1 -0
- package/dist/planet/withdraw.js +25 -0
- package/dist/planet/withdraw.js.map +1 -0
- package/dist/storage/interface.d.ts +6 -0
- package/dist/storage/interface.d.ts.map +1 -1
- package/dist/storage/json-storage.d.ts +1 -0
- package/dist/storage/json-storage.d.ts.map +1 -1
- package/dist/storage/json-storage.js +10 -1
- package/dist/storage/json-storage.js.map +1 -1
- package/dist/tool-handling/cli-tool-generator.d.ts +22 -0
- package/dist/tool-handling/cli-tool-generator.d.ts.map +1 -0
- package/dist/tool-handling/cli-tool-generator.js +345 -0
- package/dist/tool-handling/cli-tool-generator.js.map +1 -0
- package/dist/tool-handling/cli.d.ts +19 -0
- package/dist/tool-handling/cli.d.ts.map +1 -0
- package/dist/tool-handling/cli.js +472 -0
- package/dist/tool-handling/cli.js.map +1 -0
- package/dist/tool-handling/index.d.ts +15 -0
- package/dist/tool-handling/index.d.ts.map +1 -0
- package/dist/tool-handling/index.js +32 -0
- package/dist/tool-handling/index.js.map +1 -0
- package/dist/tool-handling/mcp.d.ts +22 -0
- package/dist/tool-handling/mcp.d.ts.map +1 -0
- package/dist/tool-handling/mcp.js +88 -0
- package/dist/tool-handling/mcp.js.map +1 -0
- package/dist/tool-handling/types.d.ts +72 -0
- package/dist/tool-handling/types.d.ts.map +1 -0
- package/dist/tool-handling/types.js +10 -0
- package/dist/tool-handling/types.js.map +1 -0
- package/dist/tools/acquire_planets.d.ts +7 -5
- package/dist/tools/acquire_planets.d.ts.map +1 -1
- package/dist/tools/acquire_planets.js +28 -42
- package/dist/tools/acquire_planets.js.map +1 -1
- package/dist/tools/exit_planets.d.ts +7 -3
- package/dist/tools/exit_planets.d.ts.map +1 -1
- package/dist/tools/exit_planets.js +20 -9
- package/dist/tools/exit_planets.js.map +1 -1
- package/dist/tools/get_my_planets.d.ts +3 -2
- package/dist/tools/get_my_planets.d.ts.map +1 -1
- package/dist/tools/get_my_planets.js +5 -4
- package/dist/tools/get_my_planets.js.map +1 -1
- package/dist/tools/get_native_token_balance.d.ts +6 -0
- package/dist/tools/get_native_token_balance.d.ts.map +1 -0
- package/dist/tools/get_native_token_balance.js +64 -0
- package/dist/tools/get_native_token_balance.js.map +1 -0
- package/dist/tools/get_pending_exits.d.ts +2 -1
- package/dist/tools/get_pending_exits.d.ts.map +1 -1
- package/dist/tools/get_pending_exits.js +5 -4
- package/dist/tools/get_pending_exits.js.map +1 -1
- package/dist/tools/get_pending_fleets.d.ts +2 -1
- package/dist/tools/get_pending_fleets.d.ts.map +1 -1
- package/dist/tools/get_pending_fleets.js +5 -4
- package/dist/tools/get_pending_fleets.js.map +1 -1
- package/dist/tools/get_planets_around.d.ts +8 -4
- package/dist/tools/get_planets_around.d.ts.map +1 -1
- package/dist/tools/get_planets_around.js +40 -15
- package/dist/tools/get_planets_around.js.map +1 -1
- package/dist/tools/get_play_token_balance.d.ts +6 -0
- package/dist/tools/get_play_token_balance.d.ts.map +1 -0
- package/dist/tools/get_play_token_balance.js +80 -0
- package/dist/tools/get_play_token_balance.js.map +1 -0
- package/dist/tools/index.d.ts +7 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/missiv_get_user.d.ts +6 -0
- package/dist/tools/missiv_get_user.d.ts.map +1 -0
- package/dist/tools/missiv_get_user.js +50 -0
- package/dist/tools/missiv_get_user.js.map +1 -0
- package/dist/tools/missiv_register.d.ts +6 -0
- package/dist/tools/missiv_register.d.ts.map +1 -0
- package/dist/tools/missiv_register.js +103 -0
- package/dist/tools/missiv_register.js.map +1 -0
- package/dist/tools/resolve_fleet.d.ts +3 -2
- package/dist/tools/resolve_fleet.d.ts.map +1 -1
- package/dist/tools/resolve_fleet.js +5 -4
- package/dist/tools/resolve_fleet.js.map +1 -1
- package/dist/tools/send_fleet.d.ts +3 -2
- package/dist/tools/send_fleet.d.ts.map +1 -1
- package/dist/tools/send_fleet.js +16 -15
- package/dist/tools/send_fleet.js.map +1 -1
- package/dist/tools/simulate.d.ts +14 -0
- package/dist/tools/simulate.d.ts.map +1 -0
- package/dist/tools/simulate.js +123 -0
- package/dist/tools/simulate.js.map +1 -0
- package/dist/tools/simulate_multiple.d.ts +17 -0
- package/dist/tools/simulate_multiple.d.ts.map +1 -0
- package/dist/tools/simulate_multiple.js +166 -0
- package/dist/tools/simulate_multiple.js.map +1 -0
- package/dist/tools/verify_exit_status.d.ts +5 -3
- package/dist/tools/verify_exit_status.d.ts.map +1 -1
- package/dist/tools/verify_exit_status.js +12 -8
- package/dist/tools/verify_exit_status.js.map +1 -1
- package/dist/tools/withdraw.d.ts +9 -0
- package/dist/tools/withdraw.d.ts.map +1 -0
- package/dist/tools/withdraw.js +86 -0
- package/dist/tools/withdraw.js.map +1 -0
- package/dist/types.d.ts +31 -28
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -33
- package/dist/types.js.map +1 -1
- package/dist/util/time.d.ts +0 -30
- package/dist/util/time.d.ts.map +1 -1
- package/dist/util/time.js +0 -36
- package/dist/util/time.js.map +1 -1
- package/package.json +80 -77
- package/src/cli.ts +88 -59
- package/src/contracts/space-info.ts +24 -1
- package/src/fleet/resolve.ts +5 -4
- package/src/fleet/send.ts +9 -8
- package/src/index.ts +28 -162
- package/src/mcp.ts +46 -0
- package/src/planet/acquire.ts +6 -6
- package/src/planet/exit.ts +1 -0
- package/src/planet/manager.ts +163 -0
- package/src/planet/withdraw.ts +33 -0
- package/src/storage/interface.ts +7 -0
- package/src/storage/json-storage.ts +11 -1
- package/src/tool-handling/cli.ts +559 -0
- package/src/tool-handling/index.ts +45 -0
- package/src/tool-handling/mcp.ts +127 -0
- package/src/tool-handling/types.ts +86 -0
- package/src/tools/acquire_planets.ts +34 -60
- package/src/tools/exit_planets.ts +25 -12
- package/src/tools/get_native_token_balance.ts +72 -0
- package/src/tools/get_pending_exits.ts +8 -5
- package/src/tools/get_pending_fleets.ts +8 -5
- package/src/tools/get_planets_around.ts +45 -16
- package/src/tools/get_play_token_balance.ts +90 -0
- package/src/tools/index.ts +7 -1
- package/src/tools/missiv_get_user.ts +68 -0
- package/src/tools/missiv_register.ts +122 -0
- package/src/tools/resolve_fleet.ts +8 -5
- package/src/tools/send_fleet.ts +21 -18
- package/src/tools/simulate.ts +141 -0
- package/src/tools/simulate_multiple.ts +197 -0
- package/src/tools/verify_exit_status.ts +15 -11
- package/src/tools/withdraw.ts +100 -0
- package/src/types.ts +33 -71
- package/src/util/time.ts +0 -46
- package/src/cli-tool-generator.ts +0 -287
- package/src/helpers/index.ts +0 -59
- package/src/tools/get_my_planets.ts +0 -30
package/README.md
CHANGED
|
@@ -12,8 +12,7 @@ A dual-mode CLI tool for interacting with the Conquest.eth blockchain game. It c
|
|
|
12
12
|
## Installation
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
|
|
16
|
-
pnpm build
|
|
15
|
+
npm i -g @conquest-eth/tools
|
|
17
16
|
```
|
|
18
17
|
|
|
19
18
|
## Usage
|
|
@@ -23,18 +22,17 @@ pnpm build
|
|
|
23
22
|
Show help and available commands:
|
|
24
23
|
|
|
25
24
|
```bash
|
|
26
|
-
|
|
25
|
+
ecli --help
|
|
27
26
|
```
|
|
28
27
|
|
|
29
28
|
#### Global Options
|
|
30
29
|
|
|
31
|
-
| Option | Environment Variable | Description | Default
|
|
32
|
-
| --------------------------- | -------------------- | -------------------------------- |
|
|
33
|
-
| `--rpc-url <url>` | `RPC_URL` | RPC URL for the Ethereum network | (required)
|
|
34
|
-
| `--game-contract <address>` | `GAME_CONTRACT` | Game contract address | (required)
|
|
35
|
-
| `--storage <type>` | `STORAGE_TYPE` | Storage backend: json or sqlite | json
|
|
36
|
-
| `--storage-path <path>` | `STORAGE_PATH` | Storage directory path | ./data
|
|
37
|
-
| `--private-key <key>` | `PRIVATE_KEY` | Private key for transactions | (required for write ops) |
|
|
30
|
+
| Option | Environment Variable | Description | Default |
|
|
31
|
+
| --------------------------- | -------------------- | -------------------------------- | ---------- |
|
|
32
|
+
| `--rpc-url <url>` | `RPC_URL` | RPC URL for the Ethereum network | (required) |
|
|
33
|
+
| `--game-contract <address>` | `GAME_CONTRACT` | Game contract address | (required) |
|
|
34
|
+
| `--storage <type>` | `STORAGE_TYPE` | Storage backend: json or sqlite | json |
|
|
35
|
+
| `--storage-path <path>` | `STORAGE_PATH` | Storage directory path | ./data |
|
|
38
36
|
|
|
39
37
|
#### MCP Server Options
|
|
40
38
|
|
|
@@ -55,7 +53,7 @@ export PRIVATE_KEY=0x...
|
|
|
55
53
|
Then run commands without repeating options:
|
|
56
54
|
|
|
57
55
|
```bash
|
|
58
|
-
|
|
56
|
+
ecli get_my_planets --radius 10
|
|
59
57
|
```
|
|
60
58
|
|
|
61
59
|
#### Available Commands
|
|
@@ -76,22 +74,22 @@ node dist/cli.js get_my_planets --radius 10
|
|
|
76
74
|
|
|
77
75
|
```bash
|
|
78
76
|
# Get your planets
|
|
79
|
-
|
|
77
|
+
ecli get_my_planets --radius 10
|
|
80
78
|
|
|
81
79
|
# Find planets near a location
|
|
82
|
-
|
|
80
|
+
ecli get_planets_around --center-x 0 --center-y 0 --radius 20
|
|
83
81
|
|
|
84
82
|
# Acquire planets
|
|
85
|
-
|
|
83
|
+
ecli acquire_planets --planet-ids 1,2,3,4,5
|
|
86
84
|
|
|
87
|
-
# Send a fleet
|
|
88
|
-
|
|
85
|
+
# Send a fleet (coordinates use x,y format)
|
|
86
|
+
ecli send_fleet --from 10,20 --to 15,25 --quantity 100
|
|
89
87
|
|
|
90
88
|
# Resolve a fleet
|
|
91
|
-
|
|
89
|
+
ecli resolve_fleet --fleet-id "your-fleet-id"
|
|
92
90
|
|
|
93
91
|
# Exit planets
|
|
94
|
-
|
|
92
|
+
ecli exit_planets --planet-ids 1,2,3
|
|
95
93
|
```
|
|
96
94
|
|
|
97
95
|
See [`EXAMPLES.md`](./EXAMPLES.md) for more detailed usage examples.
|
|
@@ -101,19 +99,19 @@ See [`EXAMPLES.md`](./EXAMPLES.md) for more detailed usage examples.
|
|
|
101
99
|
Start the MCP server for AI assistant integration:
|
|
102
100
|
|
|
103
101
|
```bash
|
|
104
|
-
|
|
102
|
+
ecli mcp --rpc-url https://rpc.gnosischain.com --game-contract 0x322813fd9a801c5507c9de605d63cea4f2ce6c44
|
|
105
103
|
```
|
|
106
104
|
|
|
107
105
|
Or use the MCP Inspector for testing:
|
|
108
106
|
|
|
109
107
|
```bash
|
|
110
|
-
pnpm mcp:inspector
|
|
108
|
+
pnpm mcp:inspector ecli --game-contract 0xD833d4dBBb0C19aF1EEf76540d66E2076a5e9D72 --rpc-url https://rpc.gnosis.gateway.fm
|
|
111
109
|
```
|
|
112
110
|
|
|
113
111
|
For Conquest 2025-1 edition, use:
|
|
114
112
|
|
|
115
113
|
```bash
|
|
116
|
-
pnpm mcp:inspector
|
|
114
|
+
pnpm mcp:inspector ecli --game-contract 0xD833d4dBBb0C19aF1EEf76540d66E2076a5e9D72 --rpc-url https://rpc.gnosis.gateway.fm
|
|
117
115
|
```
|
|
118
116
|
|
|
119
117
|
## Architecture
|
|
@@ -143,7 +141,7 @@ Tools are defined with a standardized pattern:
|
|
|
143
141
|
|
|
144
142
|
```typescript
|
|
145
143
|
import {z} from 'zod';
|
|
146
|
-
import {createTool} from '../types.js';
|
|
144
|
+
import {createTool} from '../tool-handling/types.js';
|
|
147
145
|
|
|
148
146
|
export const example_tool = createTool({
|
|
149
147
|
description: 'Description of what this tool does',
|
|
@@ -215,35 +213,6 @@ pnpm format
|
|
|
215
213
|
pnpm start
|
|
216
214
|
```
|
|
217
215
|
|
|
218
|
-
## Project Structure
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
lobsters/mcp/src/
|
|
222
|
-
├── cli.ts # CLI entry point (dual-mode)
|
|
223
|
-
├── cli-tool-generator.ts # Dynamic CLI command generation
|
|
224
|
-
├── index.ts # MCP server setup
|
|
225
|
-
├── types.ts # Type definitions
|
|
226
|
-
├── helpers/
|
|
227
|
-
│ └── index.ts # Helper functions
|
|
228
|
-
├── tools/
|
|
229
|
-
│ ├── index.ts # Tool exports
|
|
230
|
-
│ ├── acquire_planets.ts # Tool implementations
|
|
231
|
-
│ ├── send_fleet.ts
|
|
232
|
-
│ ├── resolve_fleet.ts
|
|
233
|
-
│ └── ...
|
|
234
|
-
├── fleet/
|
|
235
|
-
│ ├── manager.ts # Fleet operations manager
|
|
236
|
-
│ ├── send.ts
|
|
237
|
-
│ └── resolve.ts
|
|
238
|
-
├── planet/
|
|
239
|
-
│ ├── manager.ts # Planet operations manager
|
|
240
|
-
│ ├── acquire.ts
|
|
241
|
-
│ └── exit.ts
|
|
242
|
-
└── storage/
|
|
243
|
-
├── interface.ts # Storage interface
|
|
244
|
-
└── json-storage.ts # JSON storage implementation
|
|
245
|
-
```
|
|
246
|
-
|
|
247
216
|
## License
|
|
248
217
|
|
|
249
218
|
MIT
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import type { Tool
|
|
3
|
+
import type { Tool } from './tool-handling/types.js';
|
|
4
|
+
import type { StorageConfig } from './types.js';
|
|
4
5
|
/**
|
|
5
6
|
* CLI configuration parameters
|
|
6
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-tool-generator.d.ts","sourceRoot":"","sources":["../src/cli-tool-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"cli-tool-generator.d.ts","sourceRoot":"","sources":["../src/cli-tool-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,IAAI,EAAkB,MAAM,0BAA0B,CAAC;AAOpE,OAAO,KAAK,EAA0C,aAAa,EAAC,MAAM,YAAY,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;CAC7B;AA6HD;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAC1B,IAAI,CAuHN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAQ3F"}
|
package/dist/cli.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
-
import { createServer } from './index.js';
|
|
4
3
|
import { Command } from 'commander';
|
|
5
4
|
import pkg from '../package.json' with { type: 'json' };
|
|
6
|
-
import { getChain } from 'tools-ethereum/helpers';
|
|
7
5
|
import { loadEnv } from 'ldenv';
|
|
8
6
|
import * as tools from './tools/index.js';
|
|
9
|
-
import { registerAllToolCommands } from './
|
|
7
|
+
import { registerAllToolCommands } from './tool-handling/cli.js';
|
|
8
|
+
import { createServer } from './mcp.js';
|
|
9
|
+
import { createConquestEnv } from './index.js';
|
|
10
10
|
loadEnv();
|
|
11
11
|
const program = new Command();
|
|
12
12
|
// Get the binary name from package.json
|
|
13
13
|
const binName = Object.keys(pkg.bin || {})[0];
|
|
14
|
+
// ----------------------------------------------------------------------------
|
|
15
|
+
// GLOBAL OPTIONS
|
|
16
|
+
// ----------------------------------------------------------------------------
|
|
14
17
|
program
|
|
15
18
|
.name(binName)
|
|
16
19
|
.description(pkg.description || 'Conquest.eth CLI - MCP server and direct tool execution')
|
|
@@ -20,24 +23,15 @@ program
|
|
|
20
23
|
.option('--game-contract <address>', 'Contract address of the game', process.env.GAME_CONTRACT || '')
|
|
21
24
|
.option('--storage <type>', 'Storage backend: json or sqlite', process.env.STORAGE_TYPE || 'json')
|
|
22
25
|
.option('--storage-path <path>', 'Path to storage directory', process.env.STORAGE_PATH || './data')
|
|
23
|
-
.option('--private-key <key>', 'Private key for sending transactions', process.env.PRIVATE_KEY || '')
|
|
24
26
|
.action(() => {
|
|
25
27
|
program.help();
|
|
26
28
|
});
|
|
27
|
-
|
|
28
|
-
program
|
|
29
|
-
.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const options = program.opts();
|
|
34
|
-
const mcpOptions = program.commands.find((cmd) => cmd.name() === 'mcp')?.opts() || {};
|
|
35
|
-
const rpcUrl = options.rpcUrl;
|
|
36
|
-
const gameContract = options.gameContract;
|
|
37
|
-
const ethereum = mcpOptions.ethereum ?? process.env.ETHEREUM_TOOLS === 'true';
|
|
38
|
-
const privateKey = options.privateKey;
|
|
39
|
-
const storage = options.storage;
|
|
40
|
-
const storagePath = options.storagePath;
|
|
29
|
+
function gatherGlobalOptions(program) {
|
|
30
|
+
const globalOptions = program.opts();
|
|
31
|
+
const rpcUrl = globalOptions.rpcUrl;
|
|
32
|
+
const gameContract = globalOptions.gameContract;
|
|
33
|
+
const storage = globalOptions.storage;
|
|
34
|
+
const storagePath = globalOptions.storagePath;
|
|
41
35
|
// Validate required options
|
|
42
36
|
if (!rpcUrl) {
|
|
43
37
|
console.error('Error: --rpc-url option or RPC_URL environment variable is required');
|
|
@@ -47,6 +41,7 @@ program
|
|
|
47
41
|
console.error('Error: --game-contract option or GAME_CONTRACT environment variable is required');
|
|
48
42
|
process.exit(1);
|
|
49
43
|
}
|
|
44
|
+
const privateKey = process.env.PRIVATE_KEY;
|
|
50
45
|
// Warn if private key is not provided for write operations
|
|
51
46
|
if (!privateKey) {
|
|
52
47
|
console.warn('Warning: PRIVATE_KEY environment variable is required for sending transactions');
|
|
@@ -55,22 +50,56 @@ program
|
|
|
55
50
|
console.error('Error: PRIVATE_KEY must start with 0x');
|
|
56
51
|
process.exit(1);
|
|
57
52
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
53
|
+
return { rpcUrl, gameContract, privateKey, storage, storagePath };
|
|
54
|
+
}
|
|
55
|
+
// ----------------------------------------------------------------------------
|
|
56
|
+
// ----------------------------------------------------------------------------
|
|
57
|
+
// FACTORY THAT GENERATE THE Conquest Environment Used By Tools
|
|
58
|
+
// ----------------------------------------------------------------------------
|
|
59
|
+
/**
|
|
60
|
+
* Factory function to create the ConquestEnv from CLI options
|
|
61
|
+
*/
|
|
62
|
+
const envFactory = async () => {
|
|
63
|
+
const { rpcUrl, gameContract, privateKey, storage, storagePath } = gatherGlobalOptions(program);
|
|
64
|
+
return createConquestEnv({
|
|
65
|
+
rpcUrl,
|
|
66
|
+
gameContract,
|
|
67
|
+
privateKey,
|
|
68
|
+
storagePath,
|
|
70
69
|
});
|
|
70
|
+
};
|
|
71
|
+
// ----------------------------------------------------------------------------
|
|
72
|
+
// ----------------------------------------------------------------------------
|
|
73
|
+
// MCP subcommand - starts the MCP server
|
|
74
|
+
// ----------------------------------------------------------------------------
|
|
75
|
+
program
|
|
76
|
+
.command('mcp')
|
|
77
|
+
.description('Start the MCP server')
|
|
78
|
+
.option('--ethereum', 'Whether to also provide tools-ethereum tools', process.env.ETHEREUM_TOOLS === 'true')
|
|
79
|
+
.action(async (options) => {
|
|
80
|
+
const env = await envFactory();
|
|
81
|
+
const ethereum = options.ethereum ?? process.env.ETHEREUM_TOOLS === 'true';
|
|
82
|
+
const transport = new StdioServerTransport();
|
|
83
|
+
const server = await createServer(env, { ethereum });
|
|
71
84
|
await server.connect(transport);
|
|
72
85
|
});
|
|
73
|
-
//
|
|
74
|
-
|
|
86
|
+
// ----------------------------------------------------------------------------
|
|
87
|
+
// ----------------------------------------------------------------------------
|
|
88
|
+
// Register all tool commands dynamically with the CLI config
|
|
89
|
+
registerAllToolCommands(program, tools, envFactory);
|
|
90
|
+
// ----------------------------------------------------------------------------
|
|
91
|
+
// ----------------------------------------------------------------------------
|
|
92
|
+
// HANDLE unknown command
|
|
93
|
+
// ----------------------------------------------------------------------------
|
|
94
|
+
const args = process.argv.slice(2);
|
|
95
|
+
const registeredCommands = program.commands.map((cmd) => cmd.name());
|
|
96
|
+
// Check if the first argument is a known command or a global flag
|
|
97
|
+
const isKnown = registeredCommands.includes(args[0]) || args[0]?.startsWith('-');
|
|
98
|
+
if (args.length > 0 && !isKnown) {
|
|
99
|
+
console.error(`error: unknown command: ${args[0]}`);
|
|
100
|
+
program.outputHelp();
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
// ----------------------------------------------------------------------------
|
|
75
104
|
program.parse(process.argv);
|
|
76
105
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-info.d.ts","sourceRoot":"","sources":["../../src/contracts/space-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAC,yBAAyB,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"space-info.d.ts","sourceRoot":"","sources":["../../src/contracts/space-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAC,yBAAyB,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAazF,wBAAsB,eAAe,CACpC,OAAO,EAAE,yBAAyB,EAClC,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAC,CAAC,CA8CjE"}
|
|
@@ -1,22 +1,43 @@
|
|
|
1
1
|
import { SpaceInfo } from 'conquest-eth-v0-contracts';
|
|
2
|
+
// Minimal ABI for reading numTokensPerNativeTokenAt18Decimals from PlayToken
|
|
3
|
+
const PlayTokenAbi = [
|
|
4
|
+
{
|
|
5
|
+
name: 'numTokensPerNativeTokenAt18Decimals',
|
|
6
|
+
type: 'function',
|
|
7
|
+
stateMutability: 'view',
|
|
8
|
+
inputs: [],
|
|
9
|
+
outputs: [{ type: 'uint256' }],
|
|
10
|
+
},
|
|
11
|
+
];
|
|
2
12
|
export async function createSpaceInfo(clients, gameContract) {
|
|
3
13
|
// Fetch config from contract
|
|
4
14
|
const config = await clients.publicClient.readContract({
|
|
5
15
|
...gameContract,
|
|
6
16
|
functionName: 'getConfig',
|
|
7
17
|
});
|
|
18
|
+
// Extract stakingToken address and fetch numTokensPerNativeToken from PlayToken contract
|
|
19
|
+
const stakingToken = config.stakingToken;
|
|
20
|
+
const numTokensPerNativeToken = await clients.publicClient.readContract({
|
|
21
|
+
address: stakingToken,
|
|
22
|
+
abi: PlayTokenAbi,
|
|
23
|
+
functionName: 'numTokensPerNativeTokenAt18Decimals',
|
|
24
|
+
});
|
|
8
25
|
const contractConfig = {
|
|
9
26
|
genesis: BigInt(config.genesis),
|
|
10
27
|
resolveWindow: BigInt(config.resolveWindow),
|
|
11
28
|
timePerDistance: BigInt(config.timePerDistance),
|
|
12
29
|
exitDuration: BigInt(config.exitDuration),
|
|
13
30
|
acquireNumSpaceships: Number(config.acquireNumSpaceships),
|
|
31
|
+
stakingToken,
|
|
32
|
+
numTokensPerNativeToken: BigInt(numTokensPerNativeToken),
|
|
14
33
|
};
|
|
15
34
|
// Create SpaceInfo instance with config
|
|
35
|
+
// Note: The contract's getConfig() returns timePerDistance already divided by 4 (see OuterSpaceFacetBase constructor).
|
|
36
|
+
// SpaceInfo also divides by 4 internally, so we need to multiply by 4 here to compensate.
|
|
16
37
|
const spaceInfo = new SpaceInfo({
|
|
17
38
|
genesis: config.genesis,
|
|
18
39
|
resolveWindow: Number(config.resolveWindow),
|
|
19
|
-
timePerDistance: Number(config.timePerDistance),
|
|
40
|
+
timePerDistance: Number(config.timePerDistance) * 4,
|
|
20
41
|
exitDuration: Number(config.exitDuration),
|
|
21
42
|
acquireNumSpaceships: Number(config.acquireNumSpaceships),
|
|
22
43
|
productionSpeedUp: Number(config.productionSpeedUp),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-info.js","sourceRoot":"","sources":["../../src/contracts/space-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,OAAkC,EAClC,YAA0B;IAE1B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACtD,GAAG,YAAY;QACf,YAAY,EAAE,WAAW;KACzB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAmB;QACtC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"space-info.js","sourceRoot":"","sources":["../../src/contracts/space-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,6EAA6E;AAC7E,MAAM,YAAY,GAAG;IACpB;QACC,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;KAC5B;CACQ,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,OAAkC,EAClC,YAA0B;IAE1B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACtD,GAAG,YAAY;QACf,YAAY,EAAE,WAAW;KACzB,CAAC,CAAC;IAEH,yFAAyF;IACzF,MAAM,YAAY,GAAG,MAAM,CAAC,YAA6B,CAAC;IAC1D,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACvE,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,YAAY;QACjB,YAAY,EAAE,qCAAqC;KACnD,CAAC,CAAC;IAEH,MAAM,cAAc,GAAmB;QACtC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACzD,YAAY;QACZ,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,CAAC;KACxD,CAAC;IAEF,wCAAwC;IACxC,uHAAuH;IACvH,0FAA0F;IAC1F,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAwB;QACxC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;QACnD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACzD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACnD,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;QAC/D,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC,sCAAsC,CAAC;QAC7F,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACjD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAC7D,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;QAC/D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;KACnD,CAAC,CAAC;IAEH,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,CAAC;AACpC,CAAC"}
|
package/dist/fleet/resolve.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export declare function resolveFleetWithSpaceInfo(clients: Clients, gameContract
|
|
|
41
41
|
reason: string;
|
|
42
42
|
}>;
|
|
43
43
|
/**
|
|
44
|
-
* Get fleets that can be resolved (
|
|
44
|
+
* Get fleets that can be resolved (arrived and still within resolve window)
|
|
45
45
|
*
|
|
46
46
|
* @param storage - Storage instance for tracking pending fleets
|
|
47
47
|
* @param resolveWindow - The resolve window duration in seconds from contract config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/fleet/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,MAAM,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAmB,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAGjF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CACjC,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;CACvC,EACD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAwDpF;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAkEpF;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/fleet/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,MAAM,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAmB,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAGjF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CACjC,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;CACvC,EACD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAwDpF;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAkEpF;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC,CAUzB"}
|
package/dist/fleet/resolve.js
CHANGED
|
@@ -122,7 +122,7 @@ export async function resolveFleetWithSpaceInfo(clients, gameContract, spaceInfo
|
|
|
122
122
|
return { resolved: true, fleet: resolvedFleet };
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
|
-
* Get fleets that can be resolved (
|
|
125
|
+
* Get fleets that can be resolved (arrived and still within resolve window)
|
|
126
126
|
*
|
|
127
127
|
* @param storage - Storage instance for tracking pending fleets
|
|
128
128
|
* @param resolveWindow - The resolve window duration in seconds from contract config
|
|
@@ -132,9 +132,10 @@ export async function getResolvableFleets(storage, resolveWindow) {
|
|
|
132
132
|
const currentTime = getCurrentTimestamp();
|
|
133
133
|
const fleets = await storage.getResolvableFleets();
|
|
134
134
|
return fleets.filter((fleet) => {
|
|
135
|
-
//
|
|
136
|
-
const
|
|
137
|
-
|
|
135
|
+
// Fleet can be resolved after arrival but before resolve window closes
|
|
136
|
+
const arrivalTime = fleet.estimatedArrivalTime;
|
|
137
|
+
const resolveWindowEnd = arrivalTime + Number(resolveWindow);
|
|
138
|
+
return !fleet.resolved && currentTime >= arrivalTime && currentTime < resolveWindowEnd;
|
|
138
139
|
});
|
|
139
140
|
}
|
|
140
141
|
//# sourceMappingURL=resolve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/fleet/resolve.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/fleet/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/fleet/send.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/fleet/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,MAAM,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/fleet/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,MAAM,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAGrF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAC9B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;IACT,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CACvB,GACC,OAAO,CAAC,YAAY,CAAC,CAyEvB"}
|
package/dist/fleet/send.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { zeroAddress } from 'viem';
|
|
2
2
|
import { computeFleetId, computeToHash, generateSecret } from '../util/hashing.js';
|
|
3
|
-
import { calculateEstimatedArrivalTime, getCurrentTimestamp } from '../util/time.js';
|
|
4
3
|
/**
|
|
5
4
|
* Send a fleet to a destination planet
|
|
6
5
|
*
|
|
@@ -32,12 +31,13 @@ export async function sendFleet(clients, gameContract, fromPlanetId, toPlanetId,
|
|
|
32
31
|
const distance = spaceInfo.distance(fromPlanet, toPlanet);
|
|
33
32
|
// Generate secret if not provided
|
|
34
33
|
const secret = options?.secret || generateSecret();
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
// Get current blockchain timestamp (not local time) for accurate arrival calculation
|
|
35
|
+
const block = await clients.publicClient.getBlock();
|
|
36
|
+
const blockTimestamp = Number(block.timestamp);
|
|
37
|
+
// Calculate estimated arrival time using SpaceInfo which accounts for planet speed
|
|
38
|
+
// The travel time formula is: distance * (timePerDistance * 10000) / speed
|
|
39
|
+
const travelTime = spaceInfo.timeToArrive(fromPlanet, toPlanet);
|
|
40
|
+
const estimatedArrivalTime = blockTimestamp + travelTime;
|
|
41
41
|
const parameters = {
|
|
42
42
|
gift: options?.gift ?? false,
|
|
43
43
|
specific: options?.specific ?? zeroAddress,
|
|
@@ -66,7 +66,7 @@ export async function sendFleet(clients, gameContract, fromPlanetId, toPlanetId,
|
|
|
66
66
|
arrivalTimeWanted: parameters.arrivalTimeWanted,
|
|
67
67
|
fleetSender,
|
|
68
68
|
operator,
|
|
69
|
-
committedAt:
|
|
69
|
+
committedAt: blockTimestamp,
|
|
70
70
|
estimatedArrivalTime,
|
|
71
71
|
resolved: false,
|
|
72
72
|
};
|
package/dist/fleet/send.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/fleet/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAe,MAAM,MAAM,CAAC;AAI/C,OAAO,EAAC,cAAc,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/fleet/send.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,36 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Implementation } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
-
import { Chain } from 'viem';
|
|
4
|
-
import { ServerOptions } from '@modelcontextprotocol/sdk/server';
|
|
1
|
+
import type { ConquestEnv, EnvFactoryOptions } from './types.js';
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
3
|
+
* Factory function to create the ConquestEnv
|
|
4
|
+
* This is shared between CLI and MCP server
|
|
7
5
|
*
|
|
8
|
-
* @param
|
|
9
|
-
* @
|
|
10
|
-
* @param params.privateKey - Optional private key for signing transactions (wallet operations)
|
|
11
|
-
* @param params.gameContract - The game contract address
|
|
12
|
-
* @param options - Optional server configuration
|
|
13
|
-
* @param options.ethereum - Whether to include Ethereum MCP tools (default: false)
|
|
14
|
-
* @param options.rpcURL - Optional custom RPC URL
|
|
15
|
-
* @param options.serverOptions - Optional MCP server options
|
|
16
|
-
* @param options.serverInfo - Optional server metadata to override defaults
|
|
17
|
-
* @param options.storageConfig - Storage configuration for fleets and exits
|
|
18
|
-
* @param options.storageConfig.type - Storage type ('json' or 'sqlite')
|
|
19
|
-
* @param options.storageConfig.dataDir - Optional data directory path
|
|
20
|
-
* @returns Configured MCP server instance with Conquest game tools registered
|
|
6
|
+
* @param options - Configuration options for creating the environment
|
|
7
|
+
* @returns ConquestEnv with fleetManager and planetManager
|
|
21
8
|
*/
|
|
22
|
-
export declare function
|
|
23
|
-
chain: Chain;
|
|
24
|
-
privateKey?: `0x${string}`;
|
|
25
|
-
gameContract: `0x${string}`;
|
|
26
|
-
}, options?: {
|
|
27
|
-
ethereum?: boolean;
|
|
28
|
-
rpcURL?: string;
|
|
29
|
-
serverOptions?: ServerOptions;
|
|
30
|
-
serverInfo?: Implementation;
|
|
31
|
-
storageConfig?: {
|
|
32
|
-
type: 'json' | 'sqlite';
|
|
33
|
-
dataDir?: string;
|
|
34
|
-
};
|
|
35
|
-
}): McpServer;
|
|
9
|
+
export declare function createConquestEnv(options: EnvFactoryOptions): Promise<ConquestEnv>;
|
|
36
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEX,WAAW,EACX,iBAAiB,EAEjB,MAAM,YAAY,CAAC;AAIpB;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBxF"}
|