@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/dist/index.js
CHANGED
|
@@ -1,143 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import pkg from '../package.json' with { type: 'json' };
|
|
3
|
-
import { createServer as createMCPEthereumServer } from 'tools-ethereum';
|
|
4
|
-
import { getClients } from 'tools-ethereum/helpers';
|
|
1
|
+
import { getClients, getChain } from 'tools-ethereum/helpers';
|
|
5
2
|
import { createSpaceInfo } from './contracts/space-info.js';
|
|
6
3
|
import { JsonFleetStorage } from './storage/json-storage.js';
|
|
7
4
|
import { FleetManager } from './fleet/manager.js';
|
|
8
5
|
import { PlanetManager } from './planet/manager.js';
|
|
9
|
-
// Import refactored tools
|
|
10
|
-
import * as tools from './tools/index.js';
|
|
11
|
-
import { stringifyWithBigInt } from './helpers/index.js';
|
|
12
6
|
import { Abi_IOuterSpace } from 'conquest-eth-v0-contracts/abis/IOuterSpace.js';
|
|
13
7
|
/**
|
|
14
|
-
*
|
|
8
|
+
* Factory function to create the ConquestEnv
|
|
9
|
+
* This is shared between CLI and MCP server
|
|
15
10
|
*
|
|
16
|
-
* @param
|
|
17
|
-
* @
|
|
18
|
-
* @param params.privateKey - Optional private key for signing transactions (wallet operations)
|
|
19
|
-
* @param params.gameContract - The game contract address
|
|
20
|
-
* @param options - Optional server configuration
|
|
21
|
-
* @param options.ethereum - Whether to include Ethereum MCP tools (default: false)
|
|
22
|
-
* @param options.rpcURL - Optional custom RPC URL
|
|
23
|
-
* @param options.serverOptions - Optional MCP server options
|
|
24
|
-
* @param options.serverInfo - Optional server metadata to override defaults
|
|
25
|
-
* @param options.storageConfig - Storage configuration for fleets and exits
|
|
26
|
-
* @param options.storageConfig.type - Storage type ('json' or 'sqlite')
|
|
27
|
-
* @param options.storageConfig.dataDir - Optional data directory path
|
|
28
|
-
* @returns Configured MCP server instance with Conquest game tools registered
|
|
11
|
+
* @param options - Configuration options for creating the environment
|
|
12
|
+
* @returns ConquestEnv with fleetManager and planetManager
|
|
29
13
|
*/
|
|
30
|
-
export function
|
|
31
|
-
const { gameContract: gameContractAddress,
|
|
32
|
-
const
|
|
14
|
+
export async function createConquestEnv(options) {
|
|
15
|
+
const { rpcUrl, gameContract: gameContractAddress, privateKey, storagePath = './data' } = options;
|
|
16
|
+
const chain = await getChain(rpcUrl);
|
|
17
|
+
const clients = getClients({
|
|
18
|
+
chain,
|
|
19
|
+
privateKey,
|
|
20
|
+
});
|
|
33
21
|
const gameContract = {
|
|
34
22
|
address: gameContractAddress,
|
|
35
23
|
abi: Abi_IOuterSpace,
|
|
36
24
|
};
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}, options?.serverOptions || { capabilities: { logging: {} } });
|
|
47
|
-
// Initialize SpaceInfo and contractConfig
|
|
48
|
-
let spaceInfo = null;
|
|
49
|
-
let contractConfig = null;
|
|
50
|
-
const initSpaceInfo = async () => {
|
|
51
|
-
if (!spaceInfo || !contractConfig) {
|
|
52
|
-
const result = await createSpaceInfo(clients, gameContract);
|
|
53
|
-
spaceInfo = result.spaceInfo;
|
|
54
|
-
contractConfig = result.contractConfig;
|
|
55
|
-
}
|
|
56
|
-
return { spaceInfo, contractConfig };
|
|
25
|
+
const { spaceInfo, contractConfig } = await createSpaceInfo(clients, gameContract);
|
|
26
|
+
const storage = new JsonFleetStorage(storagePath);
|
|
27
|
+
return {
|
|
28
|
+
fleetManager: new FleetManager(clients, gameContract, spaceInfo, contractConfig, storage),
|
|
29
|
+
planetManager: new PlanetManager(clients, gameContract, spaceInfo, contractConfig, storage),
|
|
30
|
+
spaceInfo,
|
|
31
|
+
contractConfig,
|
|
32
|
+
clients,
|
|
33
|
+
options,
|
|
57
34
|
};
|
|
58
|
-
// Initialize storage
|
|
59
|
-
const storageConfig = options?.storageConfig || { type: 'json', dataDir: './data' };
|
|
60
|
-
const storage = new JsonFleetStorage(storageConfig.dataDir || './data');
|
|
61
|
-
// Initialize managers (will be initialized after spaceInfo is ready)
|
|
62
|
-
let fleetManager = null;
|
|
63
|
-
let planetManager = null;
|
|
64
|
-
// Helper to ensure managers are initialized
|
|
65
|
-
const ensureManagersInitialized = async () => {
|
|
66
|
-
const { spaceInfo: si, contractConfig: cc } = await initSpaceInfo();
|
|
67
|
-
// Initialize fleetManager even without walletClient for read-only operations
|
|
68
|
-
if (!fleetManager && si && cc) {
|
|
69
|
-
fleetManager = new FleetManager(clients, gameContract, si, cc, storage);
|
|
70
|
-
}
|
|
71
|
-
// Initialize planetManager even without walletClient for read-only operations
|
|
72
|
-
if (!planetManager && si && cc) {
|
|
73
|
-
planetManager = new PlanetManager(clients, gameContract, si, cc, storage);
|
|
74
|
-
}
|
|
75
|
-
if (!fleetManager) {
|
|
76
|
-
throw new Error('Fleet manager not initialized');
|
|
77
|
-
}
|
|
78
|
-
if (!planetManager) {
|
|
79
|
-
throw new Error('Planet manager not initialized');
|
|
80
|
-
}
|
|
81
|
-
return { fleetManager, planetManager };
|
|
82
|
-
};
|
|
83
|
-
// Auto-register all tools
|
|
84
|
-
for (const [name, tool] of Object.entries(tools)) {
|
|
85
|
-
// Skip the file that's not a tool
|
|
86
|
-
if (name === 'default')
|
|
87
|
-
continue;
|
|
88
|
-
server.registerTool(name, {
|
|
89
|
-
description: tool.description,
|
|
90
|
-
inputSchema: tool.schema,
|
|
91
|
-
}, async (args) => {
|
|
92
|
-
try {
|
|
93
|
-
const { fleetManager, planetManager } = await ensureManagersInitialized();
|
|
94
|
-
const env = {
|
|
95
|
-
sendStatus: async (_message) => {
|
|
96
|
-
// TODO: Implement progress notifications when sessionId is available
|
|
97
|
-
},
|
|
98
|
-
fleetManager,
|
|
99
|
-
planetManager,
|
|
100
|
-
};
|
|
101
|
-
const result = await tool.execute(env, args);
|
|
102
|
-
// Convert ToolResult to CallToolResult
|
|
103
|
-
if (result.success === false) {
|
|
104
|
-
return {
|
|
105
|
-
content: [
|
|
106
|
-
{
|
|
107
|
-
type: 'text',
|
|
108
|
-
text: stringifyWithBigInt({
|
|
109
|
-
error: result.error,
|
|
110
|
-
...(result.stack ? { stack: result.stack } : {}),
|
|
111
|
-
}),
|
|
112
|
-
},
|
|
113
|
-
],
|
|
114
|
-
isError: true,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
content: [
|
|
119
|
-
{
|
|
120
|
-
type: 'text',
|
|
121
|
-
text: stringifyWithBigInt(result.result, 2),
|
|
122
|
-
},
|
|
123
|
-
],
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
return {
|
|
128
|
-
content: [
|
|
129
|
-
{
|
|
130
|
-
type: 'text',
|
|
131
|
-
text: stringifyWithBigInt({
|
|
132
|
-
error: error instanceof Error ? error.message : String(error),
|
|
133
|
-
}),
|
|
134
|
-
},
|
|
135
|
-
],
|
|
136
|
-
isError: true,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
return server;
|
|
142
35
|
}
|
|
143
36
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAQlD,OAAO,EAAC,eAAe,EAAC,MAAM,+CAA+C,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA0B;IACjE,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,GAAG,QAAQ,EAAC,GAAG,OAAO,CAAC;IAEhG,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC;QAC1B,KAAK;QACL,UAAU;KACV,CAA8B,CAAC;IAEhC,MAAM,YAAY,GAAiB;QAClC,OAAO,EAAE,mBAAmB;QAC5B,GAAG,EAAE,eAAe;KACpB,CAAC;IAEF,MAAM,EAAC,SAAS,EAAE,cAAc,EAAC,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElD,OAAO;QACN,YAAY,EAAE,IAAI,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC;QACzF,aAAa,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC;QAC3F,SAAS;QACT,cAAc;QACd,OAAO;QACP,OAAO;KACP,CAAC;AACH,CAAC"}
|
package/dist/mcp.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { ConquestEnv } from './types.js';
|
|
3
|
+
import { ServerOptions } from '@modelcontextprotocol/sdk/server';
|
|
4
|
+
import { Implementation } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Create and configure an MCP server for Conquest.eth game interactions
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
export declare function createServer(env: ConquestEnv, options?: {
|
|
10
|
+
ethereum?: boolean;
|
|
11
|
+
serverInfo?: Implementation;
|
|
12
|
+
serverOptions?: ServerOptions;
|
|
13
|
+
}): Promise<McpServer>;
|
|
14
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAElE,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAIlE;;;GAGG;AACH,wBAAsB,YAAY,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,CAAC,EAAE;IACT,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B,sBAyBD"}
|
package/dist/mcp.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import pkg from '../package.json' with { type: 'json' };
|
|
3
|
+
import * as tools from './tools/index.js';
|
|
4
|
+
import { createEthereumEnv, createEthereumMPCServer } from 'tools-ethereum';
|
|
5
|
+
import { registerAllMCPTools } from './tool-handling/mcp.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create and configure an MCP server for Conquest.eth game interactions
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export async function createServer(env, options) {
|
|
11
|
+
let server;
|
|
12
|
+
const name = `mcp-conquest-eth-v0`;
|
|
13
|
+
if (options?.ethereum) {
|
|
14
|
+
const ethereumEnv = await createEthereumEnv(env.options);
|
|
15
|
+
server = createEthereumMPCServer(ethereumEnv, {
|
|
16
|
+
serverInfo: { name, version: pkg.version, ...options?.serverInfo },
|
|
17
|
+
serverOptions: options?.serverOptions,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
server = new McpServer(options?.serverInfo || {
|
|
22
|
+
name,
|
|
23
|
+
version: pkg.version,
|
|
24
|
+
}, options?.serverOptions || { capabilities: { logging: {} } });
|
|
25
|
+
}
|
|
26
|
+
registerAllMCPTools({ server, tools, env });
|
|
27
|
+
return server;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAM,IAAI,EAAE,MAAM,EAAC,CAAC;AAEtD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,iBAAiB,EAAE,uBAAuB,EAAC,MAAM,gBAAgB,CAAC;AAI1E,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,GAAgB,EAChB,OAIC;IAED,IAAI,MAAiB,CAAC;IACtB,MAAM,IAAI,GAAG,qBAAqB,CAAC;IAEnC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,GAAG,uBAAuB,CAAC,WAAW,EAAE;YAC7C,UAAU,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAC;YAChE,aAAa,EAAE,OAAO,EAAE,aAAa;SACrC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,IAAI,SAAS,CACrB,OAAO,EAAE,UAAU,IAAI;YACtB,IAAI;YACJ,OAAO,EAAE,GAAG,CAAC,OAAO;SACpB,EACD,OAAO,EAAE,aAAa,IAAI,EAAC,YAAY,EAAE,EAAC,OAAO,EAAE,EAAE,EAAC,EAAC,CACvD,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/dist/planet/acquire.d.ts
CHANGED
|
@@ -5,11 +5,12 @@ import { Clients, GameContract } from '../types.js';
|
|
|
5
5
|
* @param clients - Viem clients (publicClient and walletClient)
|
|
6
6
|
* @param gameContract - The game contract instance with address and ABI
|
|
7
7
|
* @param planetIds - Array of planet location IDs to acquire
|
|
8
|
-
* @param amountToMint - Amount of
|
|
8
|
+
* @param amountToMint - Amount of play tokens to mint
|
|
9
9
|
* @param tokenAmount - Amount of staking token to spend
|
|
10
|
+
* @param numTokensPerNativeToken - How many play tokens (at 18 decimals) you get per 1 native token (fetched from PlayToken contract)
|
|
10
11
|
* @returns Transaction hash and list of planets acquired
|
|
11
12
|
*/
|
|
12
|
-
export declare function acquirePlanets(clients: Clients, gameContract: GameContract, planetIds: bigint[], amountToMint: bigint, tokenAmount: bigint): Promise<{
|
|
13
|
+
export declare function acquirePlanets(clients: Clients, gameContract: GameContract, planetIds: bigint[], amountToMint: bigint, tokenAmount: bigint, numTokensPerNativeToken: bigint): Promise<{
|
|
13
14
|
hash: `0x${string}`;
|
|
14
15
|
planetsAcquired: bigint[];
|
|
15
16
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.d.ts","sourceRoot":"","sources":["../../src/planet/acquire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"acquire.d.ts","sourceRoot":"","sources":["../../src/planet/acquire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,uBAAuB,EAAE,MAAM,GAC7B,OAAO,CAAC;IAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAoB3D"}
|
package/dist/planet/acquire.js
CHANGED
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
* @param clients - Viem clients (publicClient and walletClient)
|
|
5
5
|
* @param gameContract - The game contract instance with address and ABI
|
|
6
6
|
* @param planetIds - Array of planet location IDs to acquire
|
|
7
|
-
* @param amountToMint - Amount of
|
|
7
|
+
* @param amountToMint - Amount of play tokens to mint
|
|
8
8
|
* @param tokenAmount - Amount of staking token to spend
|
|
9
|
+
* @param numTokensPerNativeToken - How many play tokens (at 18 decimals) you get per 1 native token (fetched from PlayToken contract)
|
|
9
10
|
* @returns Transaction hash and list of planets acquired
|
|
10
11
|
*/
|
|
11
|
-
export async function acquirePlanets(clients, gameContract, planetIds, amountToMint, tokenAmount) {
|
|
12
|
+
export async function acquirePlanets(clients, gameContract, planetIds, amountToMint, tokenAmount, numTokensPerNativeToken) {
|
|
12
13
|
const sender = clients.walletClient.account.address;
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
// Calculate how much native token is needed to mint `amountToMint` play tokens
|
|
15
|
+
// nativeTokenAmount = amountToMint * 1e18 / numTokensPerNativeToken
|
|
16
|
+
const nativeTokenAmount = (amountToMint * 1000000000000000000n) / numTokensPerNativeToken;
|
|
15
17
|
// Get the contract acquireMultipleViaNativeTokenAndStakingToken function signature
|
|
16
18
|
const simulation = await clients.publicClient.simulateContract({
|
|
17
19
|
...gameContract,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/planet/acquire.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/planet/acquire.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,OAAgB,EAChB,YAA0B,EAC1B,SAAmB,EACnB,YAAoB,EACpB,WAAmB,EACnB,uBAA+B;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,OAAQ,CAAC,OAAO,CAAC;IAErD,+EAA+E;IAC/E,oEAAoE;IACpE,MAAM,iBAAiB,GAAG,CAAC,YAAY,GAAG,oBAAoB,CAAC,GAAG,uBAAuB,CAAC;IAE1F,mFAAmF;IACnF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;QAC9D,GAAG,YAAY;QACf,YAAY,EAAE,8CAA8C;QAC5D,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC;QAC5C,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,iBAAiB;KACxB,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE1E,OAAO,EAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../src/planet/exit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../src/planet/exit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAmD1D"}
|
package/dist/planet/exit.js
CHANGED
package/dist/planet/exit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/planet/exit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAIpD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAgB,EAChB,YAA0B,EAC1B,SAAmB,EACnB,YAAoB,EACpB,OAAqB;IAErB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,OAAQ,CAAC,OAAO,CAAC;IACrD,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAE1C,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACtD,GAAG,YAAY;QACf,YAAY,EAAE,iBAAiB;QAC/B,IAAI,EAAE,CAAC,SAAS,CAAC;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzB,8CAA8C;IAC9C,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,0DAA0D;QAC1D,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,MAAM,IAAI,GAAgB;gBACzB,QAAQ;gBACR,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,WAAW;gBAC1B,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;gBAClC,gBAAgB,EAAE,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;gBACpD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/planet/exit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAIpD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAgB,EAChB,YAA0B,EAC1B,SAAmB,EACnB,YAAoB,EACpB,OAAqB;IAErB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,OAAQ,CAAC,OAAO,CAAC;IACrD,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAE1C,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACtD,GAAG,YAAY;QACf,YAAY,EAAE,iBAAiB;QAC/B,IAAI,EAAE,CAAC,SAAS,CAAC;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzB,8CAA8C;IAC9C,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,0DAA0D;QAC1D,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,MAAM,IAAI,GAAgB;gBACzB,QAAQ;gBACR,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,WAAW;gBAC1B,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;gBAClC,gBAAgB,EAAE,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;gBACpD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,WAAW;gBAC1B,SAAS,EAAE,KAAK;aAChB,CAAC;YAEF,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,sDAAsD;IACtD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;QAC9D,GAAG,YAAY;QACf,YAAY,EAAE,iBAAiB;QAC/B,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QACzB,OAAO,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE1E,OAAO,EAAC,IAAI,EAAE,cAAc,EAAC,CAAC;AAC/B,CAAC"}
|
package/dist/planet/manager.d.ts
CHANGED
|
@@ -36,6 +36,13 @@ export declare class PlanetManager {
|
|
|
36
36
|
tokenAmount: bigint;
|
|
37
37
|
};
|
|
38
38
|
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Get the play token (staking token) balance for an address
|
|
41
|
+
*
|
|
42
|
+
* @param address - Address to check balance for. Defaults to current wallet address.
|
|
43
|
+
* @returns The balance in raw units (18 decimals)
|
|
44
|
+
*/
|
|
45
|
+
getPlayTokenBalance(address?: `0x${string}`): Promise<bigint>;
|
|
39
46
|
/**
|
|
40
47
|
* Calculate acquisition costs for planets based on their stats
|
|
41
48
|
*
|
|
@@ -46,6 +53,27 @@ export declare class PlanetManager {
|
|
|
46
53
|
amountToMint: bigint;
|
|
47
54
|
tokenAmount: bigint;
|
|
48
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* Acquire (stake) multiple planets using maximum available play token balance first,
|
|
58
|
+
* then minting the remainder with native tokens.
|
|
59
|
+
*
|
|
60
|
+
* This simplifies planet acquisition by automatically:
|
|
61
|
+
* 1. Calculating required token amount based on planet stats
|
|
62
|
+
* 2. Using ALL available play token balance first
|
|
63
|
+
* 3. Minting any remaining amount needed using native tokens
|
|
64
|
+
*
|
|
65
|
+
* @param planetIds - Array of planet location IDs to acquire
|
|
66
|
+
* @returns Transaction hash, planets acquired, and cost breakdown
|
|
67
|
+
*/
|
|
68
|
+
acquireWithMaxPlayToken(planetIds: bigint[]): Promise<{
|
|
69
|
+
hash: `0x${string}`;
|
|
70
|
+
planetsAcquired: bigint[];
|
|
71
|
+
costs: {
|
|
72
|
+
totalRequired: bigint;
|
|
73
|
+
playTokenUsed: bigint;
|
|
74
|
+
amountMinted: bigint;
|
|
75
|
+
};
|
|
76
|
+
}>;
|
|
49
77
|
/**
|
|
50
78
|
* Exit (unstake) multiple planets
|
|
51
79
|
*/
|
|
@@ -53,6 +81,41 @@ export declare class PlanetManager {
|
|
|
53
81
|
hash: `0x${string}`;
|
|
54
82
|
exitsInitiated: bigint[];
|
|
55
83
|
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Withdraw tokens from planets that have completed their exit process
|
|
86
|
+
*
|
|
87
|
+
* @param planetIds - Array of planet location IDs to withdraw from
|
|
88
|
+
* @returns Transaction hash and list of planet IDs for which withdrawals were processed
|
|
89
|
+
*/
|
|
90
|
+
withdraw(planetIds: bigint[]): Promise<{
|
|
91
|
+
hash: `0x${string}`;
|
|
92
|
+
planetsWithdrawn: bigint[];
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Get exits that are ready to be withdrawn
|
|
96
|
+
*
|
|
97
|
+
* Returns all pending exits that:
|
|
98
|
+
* - Have completed (exit time has passed)
|
|
99
|
+
* - Were not interrupted
|
|
100
|
+
* - Have not been withdrawn yet
|
|
101
|
+
*
|
|
102
|
+
* @returns Array of pending exits ready for withdrawal
|
|
103
|
+
*/
|
|
104
|
+
getWithdrawableExits(): Promise<PendingExit[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Withdraw all tokens from planets that have completed their exit process
|
|
107
|
+
*
|
|
108
|
+
* This method automatically finds all pending exits that are:
|
|
109
|
+
* - Past their completion time
|
|
110
|
+
* - Not interrupted
|
|
111
|
+
* - Not already withdrawn
|
|
112
|
+
*
|
|
113
|
+
* @returns Transaction hash and list of planet IDs for which withdrawals were processed, or null if no withdrawable exits found
|
|
114
|
+
*/
|
|
115
|
+
withdrawAll(): Promise<{
|
|
116
|
+
hash: `0x${string}`;
|
|
117
|
+
planetsWithdrawn: bigint[];
|
|
118
|
+
} | null>;
|
|
56
119
|
/**
|
|
57
120
|
* Get planet info by location ID
|
|
58
121
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/planet/manager.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,UAAU,EAAE,WAAW,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/planet/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/planet/manager.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { zeroAddress } from 'viem';
|
|
2
2
|
import { acquirePlanets } from './acquire.js';
|
|
3
3
|
import { exitPlanets } from './exit.js';
|
|
4
|
+
import { withdrawFromPlanets } from './withdraw.js';
|
|
5
|
+
// ERC20 balanceOf ABI for checking play token balance
|
|
6
|
+
const erc20BalanceOfAbi = [
|
|
7
|
+
{
|
|
8
|
+
name: 'balanceOf',
|
|
9
|
+
type: 'function',
|
|
10
|
+
stateMutability: 'view',
|
|
11
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
12
|
+
outputs: [{ name: '', type: 'uint256' }],
|
|
13
|
+
},
|
|
14
|
+
];
|
|
4
15
|
/**
|
|
5
16
|
* PlanetManager manages planet-related operations in the Conquest game
|
|
6
17
|
* including acquiring new planets and initiating exit processes
|
|
@@ -31,16 +42,39 @@ export class PlanetManager {
|
|
|
31
42
|
* Acquire (stake) multiple planets
|
|
32
43
|
*/
|
|
33
44
|
async acquire(planetIds, amountToMint, tokenAmount) {
|
|
34
|
-
return acquirePlanets(this.requireWalletClient(), this.gameContract, planetIds, amountToMint, tokenAmount);
|
|
45
|
+
return acquirePlanets(this.requireWalletClient(), this.gameContract, planetIds, amountToMint, tokenAmount, this.contractConfig.numTokensPerNativeToken);
|
|
35
46
|
}
|
|
36
47
|
/**
|
|
37
48
|
* Acquire (stake) multiple planets with automatic cost calculation
|
|
38
49
|
*/
|
|
39
50
|
async acquireWithAutoCalc(planetIds) {
|
|
40
51
|
const costs = this.calculateAcquisitionCosts(planetIds);
|
|
41
|
-
const result = await acquirePlanets(this.requireWalletClient(), this.gameContract, planetIds, costs.amountToMint, costs.tokenAmount);
|
|
52
|
+
const result = await acquirePlanets(this.requireWalletClient(), this.gameContract, planetIds, costs.amountToMint, costs.tokenAmount, this.contractConfig.numTokensPerNativeToken);
|
|
42
53
|
return { ...result, costs };
|
|
43
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the play token (staking token) balance for an address
|
|
57
|
+
*
|
|
58
|
+
* @param address - Address to check balance for. Defaults to current wallet address.
|
|
59
|
+
* @returns The balance in raw units (18 decimals)
|
|
60
|
+
*/
|
|
61
|
+
async getPlayTokenBalance(address) {
|
|
62
|
+
let targetAddress;
|
|
63
|
+
if (address) {
|
|
64
|
+
targetAddress = address;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const clients = this.requireWalletClient();
|
|
68
|
+
targetAddress = clients.walletClient.account.address;
|
|
69
|
+
}
|
|
70
|
+
const balanceRaw = await this.clients.publicClient.readContract({
|
|
71
|
+
address: this.contractConfig.stakingToken,
|
|
72
|
+
abi: erc20BalanceOfAbi,
|
|
73
|
+
functionName: 'balanceOf',
|
|
74
|
+
args: [targetAddress],
|
|
75
|
+
});
|
|
76
|
+
return balanceRaw;
|
|
77
|
+
}
|
|
44
78
|
/**
|
|
45
79
|
* Calculate acquisition costs for planets based on their stats
|
|
46
80
|
*
|
|
@@ -63,12 +97,101 @@ export class PlanetManager {
|
|
|
63
97
|
// When using native token, we set tokenAmount to 0
|
|
64
98
|
return { amountToMint, tokenAmount: 0n };
|
|
65
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Acquire (stake) multiple planets using maximum available play token balance first,
|
|
102
|
+
* then minting the remainder with native tokens.
|
|
103
|
+
*
|
|
104
|
+
* This simplifies planet acquisition by automatically:
|
|
105
|
+
* 1. Calculating required token amount based on planet stats
|
|
106
|
+
* 2. Using ALL available play token balance first
|
|
107
|
+
* 3. Minting any remaining amount needed using native tokens
|
|
108
|
+
*
|
|
109
|
+
* @param planetIds - Array of planet location IDs to acquire
|
|
110
|
+
* @returns Transaction hash, planets acquired, and cost breakdown
|
|
111
|
+
*/
|
|
112
|
+
async acquireWithMaxPlayToken(planetIds) {
|
|
113
|
+
// Calculate total required token amount
|
|
114
|
+
const { amountToMint: totalRequired } = this.calculateAcquisitionCosts(planetIds);
|
|
115
|
+
// Get current play token balance
|
|
116
|
+
const playTokenBalance = await this.getPlayTokenBalance();
|
|
117
|
+
// Determine how much play token to use (all of it, up to what's needed)
|
|
118
|
+
const playTokenUsed = playTokenBalance > totalRequired ? totalRequired : playTokenBalance;
|
|
119
|
+
// Calculate remaining amount to mint with native tokens
|
|
120
|
+
const amountToMint = totalRequired > playTokenUsed ? totalRequired - playTokenUsed : 0n;
|
|
121
|
+
// Acquire the planets
|
|
122
|
+
const result = await acquirePlanets(this.requireWalletClient(), this.gameContract, planetIds, amountToMint, playTokenUsed, this.contractConfig.numTokensPerNativeToken);
|
|
123
|
+
return {
|
|
124
|
+
...result,
|
|
125
|
+
costs: {
|
|
126
|
+
totalRequired,
|
|
127
|
+
playTokenUsed,
|
|
128
|
+
amountMinted: amountToMint,
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
66
132
|
/**
|
|
67
133
|
* Exit (unstake) multiple planets
|
|
68
134
|
*/
|
|
69
135
|
async exit(planetIds) {
|
|
70
136
|
return exitPlanets(this.requireWalletClient(), this.gameContract, planetIds, this.contractConfig.exitDuration, this.storage);
|
|
71
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Withdraw tokens from planets that have completed their exit process
|
|
140
|
+
*
|
|
141
|
+
* @param planetIds - Array of planet location IDs to withdraw from
|
|
142
|
+
* @returns Transaction hash and list of planet IDs for which withdrawals were processed
|
|
143
|
+
*/
|
|
144
|
+
async withdraw(planetIds) {
|
|
145
|
+
const result = await withdrawFromPlanets(this.requireWalletClient(), this.gameContract, planetIds);
|
|
146
|
+
// Mark the exits as withdrawn in storage
|
|
147
|
+
const currentTime = Math.floor(Date.now() / 1000);
|
|
148
|
+
for (const planetId of result.planetsWithdrawn) {
|
|
149
|
+
await this.storage.markExitWithdrawn(planetId, currentTime);
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get exits that are ready to be withdrawn
|
|
155
|
+
*
|
|
156
|
+
* Returns all pending exits that:
|
|
157
|
+
* - Have completed (exit time has passed)
|
|
158
|
+
* - Were not interrupted
|
|
159
|
+
* - Have not been withdrawn yet
|
|
160
|
+
*
|
|
161
|
+
* @returns Array of pending exits ready for withdrawal
|
|
162
|
+
*/
|
|
163
|
+
async getWithdrawableExits() {
|
|
164
|
+
const sender = this.requireWalletClient().walletClient.account.address;
|
|
165
|
+
const allExits = await this.storage.getPendingExitsByPlayer(sender);
|
|
166
|
+
const currentTime = Math.floor(Date.now() / 1000);
|
|
167
|
+
return allExits.filter((exit) => {
|
|
168
|
+
// Must be past exit complete time
|
|
169
|
+
const isPastExitTime = currentTime >= exit.exitCompleteTime;
|
|
170
|
+
// Must not be interrupted
|
|
171
|
+
const notInterrupted = !exit.interrupted;
|
|
172
|
+
// Must not already be withdrawn
|
|
173
|
+
const notWithdrawn = !exit.withdrawn;
|
|
174
|
+
return isPastExitTime && notInterrupted && notWithdrawn;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Withdraw all tokens from planets that have completed their exit process
|
|
179
|
+
*
|
|
180
|
+
* This method automatically finds all pending exits that are:
|
|
181
|
+
* - Past their completion time
|
|
182
|
+
* - Not interrupted
|
|
183
|
+
* - Not already withdrawn
|
|
184
|
+
*
|
|
185
|
+
* @returns Transaction hash and list of planet IDs for which withdrawals were processed, or null if no withdrawable exits found
|
|
186
|
+
*/
|
|
187
|
+
async withdrawAll() {
|
|
188
|
+
const withdrawableExits = await this.getWithdrawableExits();
|
|
189
|
+
if (withdrawableExits.length === 0) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
const planetIds = withdrawableExits.map((exit) => exit.planetId);
|
|
193
|
+
return this.withdraw(planetIds);
|
|
194
|
+
}
|
|
72
195
|
/**
|
|
73
196
|
* Get planet info by location ID
|
|
74
197
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/planet/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAe,MAAM,MAAM,CAAC;AAG/C,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAWtC;;;GAGG;AACH,MAAM,OAAO,aAAa;IAEP;IACA;IACA;IACA;IACA;IALlB,YACkB,OAAkC,EAClC,YAA0B,EAC1B,SAAoB,EACpB,cAA8B,EAC9B,OAAqB;QAJrB,YAAO,GAAP,OAAO,CAA2B;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAW;QACpB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,YAAO,GAAP,OAAO,CAAc;IACpC,CAAC;IAEJ;;OAEG;IACK,mBAAmB;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACd,kGAAkG,CAClG,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAkB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACZ,SAAmB,EACnB,YAAoB,EACpB,WAAmB;QAEnB,OAAO,cAAc,CACpB,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,CAAC,YAAY,EACjB,SAAS,EACT,YAAY,EACZ,WAAW,CACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAmB;QAK5C,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,cAAc,CAClC,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,CAAC,YAAY,EACjB,SAAS,EACT,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,OAAO,EAAC,GAAG,MAAM,EAAE,KAAK,EAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,SAAmB;QAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC;QACpC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAC;YACjD,CAAC;YACD,mDAAmD;YACnD,8CAA8C;YAC9C,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QAC7D,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC;QAEtC,mDAAmD;QACnD,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,SAAmB;QAC7B,OAAO,WAAW,CACjB,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,CAAC,YAAY,EACjB,SAAS,EACT,IAAI,CAAC,cAAc,CAAC,YAAY,EAChC,IAAI,CAAC,OAAO,CACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,CAAS,EAAE,CAAS;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAmB;QACjC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACrB,OAAe,EACf,OAAe,EACf,MAAc;QAEd,0DAA0D;QAC1D,MAAM,aAAa,GAAiB,EAAE,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CACvD,OAAO,GAAG,MAAM,EAChB,OAAO,GAAG,MAAM,EAChB,OAAO,GAAG,MAAM,EAChB,OAAO,GAAG,MAAM,CAChB,EAAE,CAAC;YACH,gDAAgD;YAChD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;YACvC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACxB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,yCAAyC;QACzC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAC3D,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;YAClC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;YAC1B,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEzB,8CAA8C;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElD,oDAAoD;QACpD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,wDAAwD;YACxD,MAAM,SAAS,GAAG;gBACjB,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;gBAClE,8BAA8B,EAAE,CAAC,EAAE,OAAO;gBAC1C,gBAAgB,EAAE,QAAQ,CAAC,WAAW;gBACtC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,QAAQ,EAAE,CAAC,EAAE,OAAO;gBACpB,eAAe,EAAE,CAAC,EAAE,OAAO;gBAC3B,QAAQ,EAAE,CAAC,EAAE,OAAO;gBACpB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,KAAK,EAAE,oBAAoB;gBACpC,YAAY,EAAE,CAAC,EAAE,oBAAoB;gBACrC,OAAO,EAAE,KAAK,EAAE,oBAAoB;gBACpC,SAAS,EAAE,KAAK,EAAE,oBAAoB;gBACtC,OAAO,EAAE,KAAK,EAAE,oBAAoB;gBACpC,WAAW,EAAE,EAAE,EAAE,oBAAoB;gBACrC,QAAQ,EAAE,EAAE;aACZ,CAAC;YACF,2CAA2C;YAC3C,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACjF,OAAO;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,SAAS;aAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACjB,SAAiB,GAAG;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,YAAY,CAAC,OAAQ,CAAC,OAAO,CAAC;QAExE,8EAA8E;QAC9E,0DAA0D;QAC1D,MAAM,aAAa,GAAiB,EAAE,CAAC;QAEvC,qCAAqC;QACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YAC5F,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,yCAAyC;QACzC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAC3D,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;YAClC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;YAC1B,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEzB,8CAA8C;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElD,2CAA2C;QAC3C,MAAM,SAAS,GAAqD,EAAE,CAAC;QACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzF,wDAAwD;gBACxD,MAAM,SAAS,GAAQ,EAAC,GAAG,QAAQ,EAAC,CAAC;gBACrC,2CAA2C;gBAC3C,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC3F,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,YAAY,CAAC,OAAQ,CAAC,OAAO,CAAC;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACrB,QAAgB;QAEhB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAC3D,GAAG,IAAI,CAAC,YAAY;YACpB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SAClB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElD,6CAA6C;QAC7C,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1F,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACnF,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,WAAW,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACN,IAAI,EAAE,WAAW;YACjB,WAAW;YACX,QAAQ,EAAE,YAAY,CAAC,KAAK;SAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB,CAAC,gBAAwB,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/E,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,YAAoB,EAAE,UAAkB;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/planet/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Clients, GameContract } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Withdraw tokens from planets that have completed their exit process
|
|
4
|
+
*
|
|
5
|
+
* Uses the fetchAndWithdrawFor contract function which fetches any completed
|
|
6
|
+
* exits and withdraws the staked tokens to the owner's wallet.
|
|
7
|
+
*
|
|
8
|
+
* @param clients - Viem clients (publicClient and walletClient)
|
|
9
|
+
* @param gameContract - The game contract instance with address and ABI
|
|
10
|
+
* @param planetIds - Array of planet location IDs to withdraw from
|
|
11
|
+
* @returns Transaction hash and list of planet IDs for which withdrawals were processed
|
|
12
|
+
*/
|
|
13
|
+
export declare function withdrawFromPlanets(clients: Clients, gameContract: GameContract, planetIds: bigint[]): Promise<{
|
|
14
|
+
hash: `0x${string}`;
|
|
15
|
+
planetsWithdrawn: bigint[];
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=withdraw.d.ts.map
|