@conquest-eth/tools 0.0.0 → 0.0.1

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 (178) hide show
  1. package/README.md +20 -51
  2. package/dist/cli-tool-generator.d.ts +2 -1
  3. package/dist/cli-tool-generator.d.ts.map +1 -1
  4. package/dist/cli.js +61 -32
  5. package/dist/cli.js.map +1 -1
  6. package/dist/contracts/space-info.d.ts.map +1 -1
  7. package/dist/contracts/space-info.js +22 -1
  8. package/dist/contracts/space-info.js.map +1 -1
  9. package/dist/fleet/resolve.d.ts +1 -1
  10. package/dist/fleet/resolve.d.ts.map +1 -1
  11. package/dist/fleet/resolve.js +5 -4
  12. package/dist/fleet/resolve.js.map +1 -1
  13. package/dist/fleet/send.d.ts.map +1 -1
  14. package/dist/fleet/send.js +8 -8
  15. package/dist/fleet/send.js.map +1 -1
  16. package/dist/index.d.ts +6 -32
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +21 -128
  19. package/dist/index.js.map +1 -1
  20. package/dist/mcp.d.ts +14 -0
  21. package/dist/mcp.d.ts.map +1 -0
  22. package/dist/mcp.js +29 -0
  23. package/dist/mcp.js.map +1 -0
  24. package/dist/planet/acquire.d.ts +3 -2
  25. package/dist/planet/acquire.d.ts.map +1 -1
  26. package/dist/planet/acquire.js +6 -4
  27. package/dist/planet/acquire.js.map +1 -1
  28. package/dist/planet/exit.d.ts.map +1 -1
  29. package/dist/planet/exit.js +1 -0
  30. package/dist/planet/exit.js.map +1 -1
  31. package/dist/planet/manager.d.ts +63 -0
  32. package/dist/planet/manager.d.ts.map +1 -1
  33. package/dist/planet/manager.js +125 -2
  34. package/dist/planet/manager.js.map +1 -1
  35. package/dist/planet/withdraw.d.ts +17 -0
  36. package/dist/planet/withdraw.d.ts.map +1 -0
  37. package/dist/planet/withdraw.js +25 -0
  38. package/dist/planet/withdraw.js.map +1 -0
  39. package/dist/storage/interface.d.ts +6 -0
  40. package/dist/storage/interface.d.ts.map +1 -1
  41. package/dist/storage/json-storage.d.ts +1 -0
  42. package/dist/storage/json-storage.d.ts.map +1 -1
  43. package/dist/storage/json-storage.js +10 -1
  44. package/dist/storage/json-storage.js.map +1 -1
  45. package/dist/tool-handling/cli-tool-generator.d.ts +22 -0
  46. package/dist/tool-handling/cli-tool-generator.d.ts.map +1 -0
  47. package/dist/tool-handling/cli-tool-generator.js +345 -0
  48. package/dist/tool-handling/cli-tool-generator.js.map +1 -0
  49. package/dist/tool-handling/cli.d.ts +19 -0
  50. package/dist/tool-handling/cli.d.ts.map +1 -0
  51. package/dist/tool-handling/cli.js +472 -0
  52. package/dist/tool-handling/cli.js.map +1 -0
  53. package/dist/tool-handling/index.d.ts +15 -0
  54. package/dist/tool-handling/index.d.ts.map +1 -0
  55. package/dist/tool-handling/index.js +32 -0
  56. package/dist/tool-handling/index.js.map +1 -0
  57. package/dist/tool-handling/mcp.d.ts +22 -0
  58. package/dist/tool-handling/mcp.d.ts.map +1 -0
  59. package/dist/tool-handling/mcp.js +88 -0
  60. package/dist/tool-handling/mcp.js.map +1 -0
  61. package/dist/tool-handling/types.d.ts +72 -0
  62. package/dist/tool-handling/types.d.ts.map +1 -0
  63. package/dist/tool-handling/types.js +10 -0
  64. package/dist/tool-handling/types.js.map +1 -0
  65. package/dist/tools/acquire_planets.d.ts +7 -5
  66. package/dist/tools/acquire_planets.d.ts.map +1 -1
  67. package/dist/tools/acquire_planets.js +28 -42
  68. package/dist/tools/acquire_planets.js.map +1 -1
  69. package/dist/tools/exit_planets.d.ts +7 -3
  70. package/dist/tools/exit_planets.d.ts.map +1 -1
  71. package/dist/tools/exit_planets.js +20 -9
  72. package/dist/tools/exit_planets.js.map +1 -1
  73. package/dist/tools/get_my_planets.d.ts +3 -2
  74. package/dist/tools/get_my_planets.d.ts.map +1 -1
  75. package/dist/tools/get_my_planets.js +5 -4
  76. package/dist/tools/get_my_planets.js.map +1 -1
  77. package/dist/tools/get_native_token_balance.d.ts +6 -0
  78. package/dist/tools/get_native_token_balance.d.ts.map +1 -0
  79. package/dist/tools/get_native_token_balance.js +64 -0
  80. package/dist/tools/get_native_token_balance.js.map +1 -0
  81. package/dist/tools/get_pending_exits.d.ts +2 -1
  82. package/dist/tools/get_pending_exits.d.ts.map +1 -1
  83. package/dist/tools/get_pending_exits.js +5 -4
  84. package/dist/tools/get_pending_exits.js.map +1 -1
  85. package/dist/tools/get_pending_fleets.d.ts +2 -1
  86. package/dist/tools/get_pending_fleets.d.ts.map +1 -1
  87. package/dist/tools/get_pending_fleets.js +5 -4
  88. package/dist/tools/get_pending_fleets.js.map +1 -1
  89. package/dist/tools/get_planets_around.d.ts +8 -4
  90. package/dist/tools/get_planets_around.d.ts.map +1 -1
  91. package/dist/tools/get_planets_around.js +40 -15
  92. package/dist/tools/get_planets_around.js.map +1 -1
  93. package/dist/tools/get_play_token_balance.d.ts +6 -0
  94. package/dist/tools/get_play_token_balance.d.ts.map +1 -0
  95. package/dist/tools/get_play_token_balance.js +80 -0
  96. package/dist/tools/get_play_token_balance.js.map +1 -0
  97. package/dist/tools/index.d.ts +7 -1
  98. package/dist/tools/index.d.ts.map +1 -1
  99. package/dist/tools/index.js +7 -1
  100. package/dist/tools/index.js.map +1 -1
  101. package/dist/tools/missiv_get_user.d.ts +6 -0
  102. package/dist/tools/missiv_get_user.d.ts.map +1 -0
  103. package/dist/tools/missiv_get_user.js +50 -0
  104. package/dist/tools/missiv_get_user.js.map +1 -0
  105. package/dist/tools/missiv_register.d.ts +6 -0
  106. package/dist/tools/missiv_register.d.ts.map +1 -0
  107. package/dist/tools/missiv_register.js +103 -0
  108. package/dist/tools/missiv_register.js.map +1 -0
  109. package/dist/tools/resolve_fleet.d.ts +3 -2
  110. package/dist/tools/resolve_fleet.d.ts.map +1 -1
  111. package/dist/tools/resolve_fleet.js +5 -4
  112. package/dist/tools/resolve_fleet.js.map +1 -1
  113. package/dist/tools/send_fleet.d.ts +3 -2
  114. package/dist/tools/send_fleet.d.ts.map +1 -1
  115. package/dist/tools/send_fleet.js +16 -15
  116. package/dist/tools/send_fleet.js.map +1 -1
  117. package/dist/tools/simulate.d.ts +14 -0
  118. package/dist/tools/simulate.d.ts.map +1 -0
  119. package/dist/tools/simulate.js +123 -0
  120. package/dist/tools/simulate.js.map +1 -0
  121. package/dist/tools/simulate_multiple.d.ts +17 -0
  122. package/dist/tools/simulate_multiple.d.ts.map +1 -0
  123. package/dist/tools/simulate_multiple.js +166 -0
  124. package/dist/tools/simulate_multiple.js.map +1 -0
  125. package/dist/tools/verify_exit_status.d.ts +5 -3
  126. package/dist/tools/verify_exit_status.d.ts.map +1 -1
  127. package/dist/tools/verify_exit_status.js +12 -8
  128. package/dist/tools/verify_exit_status.js.map +1 -1
  129. package/dist/tools/withdraw.d.ts +9 -0
  130. package/dist/tools/withdraw.d.ts.map +1 -0
  131. package/dist/tools/withdraw.js +86 -0
  132. package/dist/tools/withdraw.js.map +1 -0
  133. package/dist/types.d.ts +31 -28
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +1 -33
  136. package/dist/types.js.map +1 -1
  137. package/dist/util/time.d.ts +0 -30
  138. package/dist/util/time.d.ts.map +1 -1
  139. package/dist/util/time.js +0 -36
  140. package/dist/util/time.js.map +1 -1
  141. package/package.json +7 -2
  142. package/src/cli.ts +88 -59
  143. package/src/contracts/space-info.ts +24 -1
  144. package/src/fleet/resolve.ts +5 -4
  145. package/src/fleet/send.ts +9 -8
  146. package/src/index.ts +28 -162
  147. package/src/mcp.ts +46 -0
  148. package/src/planet/acquire.ts +6 -6
  149. package/src/planet/exit.ts +1 -0
  150. package/src/planet/manager.ts +163 -0
  151. package/src/planet/withdraw.ts +33 -0
  152. package/src/storage/interface.ts +7 -0
  153. package/src/storage/json-storage.ts +11 -1
  154. package/src/tool-handling/cli.ts +559 -0
  155. package/src/tool-handling/index.ts +45 -0
  156. package/src/tool-handling/mcp.ts +127 -0
  157. package/src/tool-handling/types.ts +86 -0
  158. package/src/tools/acquire_planets.ts +34 -60
  159. package/src/tools/exit_planets.ts +25 -12
  160. package/src/tools/get_native_token_balance.ts +72 -0
  161. package/src/tools/get_pending_exits.ts +8 -5
  162. package/src/tools/get_pending_fleets.ts +8 -5
  163. package/src/tools/get_planets_around.ts +45 -16
  164. package/src/tools/get_play_token_balance.ts +90 -0
  165. package/src/tools/index.ts +7 -1
  166. package/src/tools/missiv_get_user.ts +68 -0
  167. package/src/tools/missiv_register.ts +122 -0
  168. package/src/tools/resolve_fleet.ts +8 -5
  169. package/src/tools/send_fleet.ts +21 -18
  170. package/src/tools/simulate.ts +141 -0
  171. package/src/tools/simulate_multiple.ts +197 -0
  172. package/src/tools/verify_exit_status.ts +15 -11
  173. package/src/tools/withdraw.ts +100 -0
  174. package/src/types.ts +33 -71
  175. package/src/util/time.ts +0 -46
  176. package/src/cli-tool-generator.ts +0 -287
  177. package/src/helpers/index.ts +0 -59
  178. 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
- pnpm install
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
- node dist/cli.js --help
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
- node dist/cli.js get_my_planets --radius 10
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
- node dist/cli.js get_my_planets --radius 10
77
+ ecli get_my_planets --radius 10
80
78
 
81
79
  # Find planets near a location
82
- node dist/cli.js get_planets_around --center-x 0 --center-y 0 --radius 20
80
+ ecli get_planets_around --center-x 0 --center-y 0 --radius 20
83
81
 
84
82
  # Acquire planets
85
- node dist/cli.js acquire_planets --planet-ids 1,2,3,4,5
83
+ ecli acquire_planets --planet-ids 1,2,3,4,5
86
84
 
87
- # Send a fleet
88
- node dist/cli.js send_fleet --from-x 10 --from-y 20 --to-x 15 --to-y 25 --quantity 100
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
- node dist/cli.js resolve_fleet --fleet-id "your-fleet-id"
89
+ ecli resolve_fleet --fleet-id "your-fleet-id"
92
90
 
93
91
  # Exit planets
94
- node dist/cli.js exit_planets --planet-ids 1,2,3
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
- node dist/cli.js mcp --rpc-url https://rpc.gnosischain.com --game-contract 0x322813fd9a801c5507c9de605d63cea4f2ce6c44
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 node dist/cli.js --game-contract 0xD833d4dBBb0C19aF1EEf76540d66E2076a5e9D72 --rpc-url https://rpc.gnosis.gateway.fm
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 node dist/cli.js --game-contract 0xD833d4dBBb0C19aF1EEf76540d66E2076a5e9D72 --rpc-url https://rpc.gnosis.gateway.fm
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, StorageConfig } from './types.js';
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,EAAmB,aAAa,EAAC,MAAM,YAAY,CAAC;AAWrE;;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"}
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 './cli-tool-generator.js';
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
- // MCP subcommand - starts the MCP server
28
- program
29
- .command('mcp')
30
- .description('Start the MCP server')
31
- .option('--ethereum', 'Whether to also provide tools-ethereum tools', process.env.ETHEREUM_TOOLS === 'true')
32
- .action(async () => {
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
- const chain = await getChain(rpcUrl);
59
- const transport = new StdioServerTransport();
60
- const server = createServer({
61
- chain,
62
- privateKey: privateKey,
63
- gameContract: gameContract,
64
- }, {
65
- ethereum,
66
- storageConfig: {
67
- type: storage,
68
- dataDir: storagePath,
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
- // Register all tool commands dynamically
74
- registerAllToolCommands(program, tools);
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":"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"}
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;AAEzF,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,CAkCjE"}
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;KACzD,CAAC;IAEF,wCAAwC;IACxC,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;QAC/C,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"}
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"}
@@ -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 (not yet resolved and past resolve window)
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,CASzB"}
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"}
@@ -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 (not yet resolved and past resolve window)
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
- // Check if fleet is past the resolve window
136
- const resolveWindowOpen = fleet.estimatedArrivalTime + Number(resolveWindow);
137
- return !fleet.resolved && currentTime >= resolveWindowOpen;
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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"}
@@ -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;AAIrF;;;;;;;;;;;;;;;;;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,CAuEvB"}
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"}
@@ -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
- // Calculate estimated arrival time using contract config
36
- const estimatedArrivalTime = calculateEstimatedArrivalTime({
37
- startTime: BigInt(getCurrentTimestamp()),
38
- distance: BigInt(distance),
39
- timePerDistance: contractConfig.timePerDistance,
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: getCurrentTimestamp(),
69
+ committedAt: blockTimestamp,
70
70
  estimatedArrivalTime,
71
71
  resolved: false,
72
72
  };
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/fleet/send.ts"],"names":[],"mappings":"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"}
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 { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
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
- * Create and configure an MCP server for Conquest.eth game interactions
3
+ * Factory function to create the ConquestEnv
4
+ * This is shared between CLI and MCP server
7
5
  *
8
- * @param params - Configuration parameters for the server
9
- * @param params.chain - The blockchain chain to connect to
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 createServer(params: {
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAElE,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,MAAM,CAAC;AAC3B,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAe/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;CAAC,EAC/E,OAAO,CAAC,EAAE;IACT,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,aAAa,CAAC,EAAE;QAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CAC5D,aAwID"}
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"}