zano-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -0
- package/dist/clients/daemon.d.ts +6 -0
- package/dist/clients/daemon.d.ts.map +1 -0
- package/dist/clients/daemon.js +30 -0
- package/dist/clients/daemon.js.map +1 -0
- package/dist/clients/trade.d.ts +8 -0
- package/dist/clients/trade.d.ts.map +1 -0
- package/dist/clients/trade.js +33 -0
- package/dist/clients/trade.js.map +1 -0
- package/dist/clients/wallet.d.ts +8 -0
- package/dist/clients/wallet.d.ts.map +1 -0
- package/dist/clients/wallet.js +45 -0
- package/dist/clients/wallet.js.map +1 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +42 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +9 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +28 -0
- package/dist/logger.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +54 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +4 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +60 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +22 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/assets/definitions.d.ts +127 -0
- package/dist/tools/assets/definitions.d.ts.map +1 -0
- package/dist/tools/assets/definitions.js +43 -0
- package/dist/tools/assets/definitions.js.map +1 -0
- package/dist/tools/assets/handlers.d.ts +21 -0
- package/dist/tools/assets/handlers.d.ts.map +1 -0
- package/dist/tools/assets/handlers.js +115 -0
- package/dist/tools/assets/handlers.js.map +1 -0
- package/dist/tools/daemon/definitions.d.ts +139 -0
- package/dist/tools/daemon/definitions.d.ts.map +1 -0
- package/dist/tools/daemon/definitions.js +55 -0
- package/dist/tools/daemon/definitions.js.map +1 -0
- package/dist/tools/daemon/handlers.d.ts +30 -0
- package/dist/tools/daemon/handlers.d.ts.map +1 -0
- package/dist/tools/daemon/handlers.js +274 -0
- package/dist/tools/daemon/handlers.js.map +1 -0
- package/dist/tools/register.d.ts +4 -0
- package/dist/tools/register.d.ts.map +1 -0
- package/dist/tools/register.js +93 -0
- package/dist/tools/register.js.map +1 -0
- package/dist/tools/swap/definitions.d.ts +103 -0
- package/dist/tools/swap/definitions.d.ts.map +1 -0
- package/dist/tools/swap/definitions.js +28 -0
- package/dist/tools/swap/definitions.js.map +1 -0
- package/dist/tools/swap/handlers.d.ts +17 -0
- package/dist/tools/swap/handlers.d.ts.map +1 -0
- package/dist/tools/swap/handlers.js +98 -0
- package/dist/tools/swap/handlers.js.map +1 -0
- package/dist/tools/trade/definitions.d.ts +137 -0
- package/dist/tools/trade/definitions.d.ts.map +1 -0
- package/dist/tools/trade/definitions.js +48 -0
- package/dist/tools/trade/definitions.js.map +1 -0
- package/dist/tools/trade/handlers.d.ts +23 -0
- package/dist/tools/trade/handlers.d.ts.map +1 -0
- package/dist/tools/trade/handlers.js +196 -0
- package/dist/tools/trade/handlers.js.map +1 -0
- package/dist/tools/wallet/definitions.d.ts +158 -0
- package/dist/tools/wallet/definitions.d.ts.map +1 -0
- package/dist/tools/wallet/definitions.js +73 -0
- package/dist/tools/wallet/definitions.js.map +1 -0
- package/dist/tools/wallet/handlers.d.ts +28 -0
- package/dist/tools/wallet/handlers.d.ts.map +1 -0
- package/dist/tools/wallet/handlers.js +214 -0
- package/dist/tools/wallet/handlers.js.map +1 -0
- package/dist/utils/constants.d.ts +25 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +19 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/formatting.d.ts +14 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +68 -0
- package/dist/utils/formatting.js.map +1 -0
- package/package.json +43 -0
- package/src/clients/daemon.ts +41 -0
- package/src/clients/trade.ts +51 -0
- package/src/clients/wallet.ts +59 -0
- package/src/config.ts +56 -0
- package/src/index.ts +20 -0
- package/src/logger.ts +33 -0
- package/src/prompts/index.ts +80 -0
- package/src/resources/index.ts +73 -0
- package/src/server.ts +26 -0
- package/src/tools/assets/definitions.ts +58 -0
- package/src/tools/assets/handlers.ts +140 -0
- package/src/tools/daemon/definitions.ts +86 -0
- package/src/tools/daemon/handlers.ts +349 -0
- package/src/tools/register.ts +194 -0
- package/src/tools/swap/definitions.ts +36 -0
- package/src/tools/swap/handlers.ts +139 -0
- package/src/tools/trade/definitions.ts +67 -0
- package/src/tools/trade/handlers.ts +264 -0
- package/src/tools/wallet/definitions.ts +92 -0
- package/src/tools/wallet/handlers.ts +268 -0
- package/src/utils/constants.ts +24 -0
- package/src/utils/formatting.ts +78 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ASSET_WHITELIST_URLS, PUBLIC_NODES, DEFAULT_PORTS } from "../utils/constants.js";
|
|
2
|
+
import { logger } from "../logger.js";
|
|
3
|
+
export function registerResources(server, config) {
|
|
4
|
+
server.resource("network-info", "zano://network/info", {
|
|
5
|
+
description: "Current Zano network configuration",
|
|
6
|
+
mimeType: "application/json",
|
|
7
|
+
}, async () => {
|
|
8
|
+
const ports = DEFAULT_PORTS[config.network];
|
|
9
|
+
const info = {
|
|
10
|
+
network: config.network,
|
|
11
|
+
daemonUrl: config.daemonUrl,
|
|
12
|
+
walletConfigured: !!config.walletUrl,
|
|
13
|
+
tradeAuthenticated: !!config.tradeToken,
|
|
14
|
+
defaultPorts: ports,
|
|
15
|
+
publicNode: PUBLIC_NODES[config.network],
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
contents: [
|
|
19
|
+
{
|
|
20
|
+
uri: "zano://network/info",
|
|
21
|
+
mimeType: "application/json",
|
|
22
|
+
text: JSON.stringify(info, null, 2),
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
server.resource("asset-whitelist", "zano://assets/whitelist", {
|
|
28
|
+
description: "Official Zano asset whitelist",
|
|
29
|
+
mimeType: "application/json",
|
|
30
|
+
}, async () => {
|
|
31
|
+
try {
|
|
32
|
+
const url = ASSET_WHITELIST_URLS[config.network];
|
|
33
|
+
const res = await fetch(url);
|
|
34
|
+
const data = await res.text();
|
|
35
|
+
return {
|
|
36
|
+
contents: [
|
|
37
|
+
{
|
|
38
|
+
uri: "zano://assets/whitelist",
|
|
39
|
+
mimeType: "application/json",
|
|
40
|
+
text: data,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
logger.error("Failed to fetch asset whitelist:", e);
|
|
47
|
+
return {
|
|
48
|
+
contents: [
|
|
49
|
+
{
|
|
50
|
+
uri: "zano://assets/whitelist",
|
|
51
|
+
mimeType: "application/json",
|
|
52
|
+
text: JSON.stringify({ error: "Failed to fetch whitelist" }),
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
logger.info("Resources registered (2 resources)");
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAc;IACjE,MAAM,CAAC,QAAQ,CACb,cAAc,EACd,qBAAqB,EACrB;QACE,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;YACpC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;YACvC,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;SACzC,CAAC;QACF,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,qBAAqB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,QAAQ,CACb,iBAAiB,EACjB,yBAAyB,EACzB;QACE,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,yBAAyB;wBAC9B,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI;qBACX;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,yBAAyB;wBAC9B,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;qBAC7D;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAkBtD"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { registerAllTools } from "./tools/register.js";
|
|
3
|
+
import { registerResources } from "./resources/index.js";
|
|
4
|
+
import { registerPrompts } from "./prompts/index.js";
|
|
5
|
+
import { logger } from "./logger.js";
|
|
6
|
+
export function createServer(config) {
|
|
7
|
+
const server = new McpServer({
|
|
8
|
+
name: "zano-mcp",
|
|
9
|
+
version: "0.1.0",
|
|
10
|
+
});
|
|
11
|
+
registerAllTools(server, config);
|
|
12
|
+
registerResources(server, config);
|
|
13
|
+
registerPrompts(server, config);
|
|
14
|
+
logger.info("Zano MCP server created", {
|
|
15
|
+
daemon: config.daemonUrl,
|
|
16
|
+
wallet: config.walletUrl ? "configured" : "disabled",
|
|
17
|
+
trade: config.tradeToken ? "authenticated" : "public only",
|
|
18
|
+
network: config.network,
|
|
19
|
+
});
|
|
20
|
+
return server;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC,SAAS;QACxB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;QACpD,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa;QAC1D,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const DeployAssetShape: {
|
|
3
|
+
ticker: z.ZodString;
|
|
4
|
+
full_name: z.ZodString;
|
|
5
|
+
total_max_supply: z.ZodString;
|
|
6
|
+
current_supply: z.ZodString;
|
|
7
|
+
decimal_point: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
meta_info: z.ZodOptional<z.ZodString>;
|
|
9
|
+
hidden_supply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
|
+
};
|
|
11
|
+
export declare const EmitAssetShape: {
|
|
12
|
+
asset_id: z.ZodString;
|
|
13
|
+
amount: z.ZodString;
|
|
14
|
+
};
|
|
15
|
+
export declare const BurnAssetShape: {
|
|
16
|
+
asset_id: z.ZodString;
|
|
17
|
+
amount: z.ZodString;
|
|
18
|
+
};
|
|
19
|
+
export declare const UpdateAssetShape: {
|
|
20
|
+
asset_id: z.ZodString;
|
|
21
|
+
ticker: z.ZodOptional<z.ZodString>;
|
|
22
|
+
full_name: z.ZodOptional<z.ZodString>;
|
|
23
|
+
meta_info: z.ZodOptional<z.ZodString>;
|
|
24
|
+
};
|
|
25
|
+
export declare const TransferAssetOwnershipShape: {
|
|
26
|
+
asset_id: z.ZodString;
|
|
27
|
+
new_owner: z.ZodString;
|
|
28
|
+
};
|
|
29
|
+
export declare const WhitelistAssetShape: {
|
|
30
|
+
asset_id: z.ZodString;
|
|
31
|
+
};
|
|
32
|
+
export declare const RemoveAssetFromWhitelistShape: {
|
|
33
|
+
asset_id: z.ZodString;
|
|
34
|
+
};
|
|
35
|
+
export declare const DeployAssetSchema: z.ZodObject<{
|
|
36
|
+
ticker: z.ZodString;
|
|
37
|
+
full_name: z.ZodString;
|
|
38
|
+
total_max_supply: z.ZodString;
|
|
39
|
+
current_supply: z.ZodString;
|
|
40
|
+
decimal_point: z.ZodDefault<z.ZodNumber>;
|
|
41
|
+
meta_info: z.ZodOptional<z.ZodString>;
|
|
42
|
+
hidden_supply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
full_name: string;
|
|
45
|
+
ticker: string;
|
|
46
|
+
decimal_point: number;
|
|
47
|
+
total_max_supply: string;
|
|
48
|
+
current_supply: string;
|
|
49
|
+
hidden_supply: boolean;
|
|
50
|
+
meta_info?: string | undefined;
|
|
51
|
+
}, {
|
|
52
|
+
full_name: string;
|
|
53
|
+
ticker: string;
|
|
54
|
+
total_max_supply: string;
|
|
55
|
+
current_supply: string;
|
|
56
|
+
decimal_point?: number | undefined;
|
|
57
|
+
meta_info?: string | undefined;
|
|
58
|
+
hidden_supply?: boolean | undefined;
|
|
59
|
+
}>;
|
|
60
|
+
export declare const EmitAssetSchema: z.ZodObject<{
|
|
61
|
+
asset_id: z.ZodString;
|
|
62
|
+
amount: z.ZodString;
|
|
63
|
+
}, "strip", z.ZodTypeAny, {
|
|
64
|
+
asset_id: string;
|
|
65
|
+
amount: string;
|
|
66
|
+
}, {
|
|
67
|
+
asset_id: string;
|
|
68
|
+
amount: string;
|
|
69
|
+
}>;
|
|
70
|
+
export declare const BurnAssetSchema: z.ZodObject<{
|
|
71
|
+
asset_id: z.ZodString;
|
|
72
|
+
amount: z.ZodString;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
asset_id: string;
|
|
75
|
+
amount: string;
|
|
76
|
+
}, {
|
|
77
|
+
asset_id: string;
|
|
78
|
+
amount: string;
|
|
79
|
+
}>;
|
|
80
|
+
export declare const UpdateAssetSchema: z.ZodObject<{
|
|
81
|
+
asset_id: z.ZodString;
|
|
82
|
+
ticker: z.ZodOptional<z.ZodString>;
|
|
83
|
+
full_name: z.ZodOptional<z.ZodString>;
|
|
84
|
+
meta_info: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, "strip", z.ZodTypeAny, {
|
|
86
|
+
asset_id: string;
|
|
87
|
+
full_name?: string | undefined;
|
|
88
|
+
ticker?: string | undefined;
|
|
89
|
+
meta_info?: string | undefined;
|
|
90
|
+
}, {
|
|
91
|
+
asset_id: string;
|
|
92
|
+
full_name?: string | undefined;
|
|
93
|
+
ticker?: string | undefined;
|
|
94
|
+
meta_info?: string | undefined;
|
|
95
|
+
}>;
|
|
96
|
+
export declare const TransferAssetOwnershipSchema: z.ZodObject<{
|
|
97
|
+
asset_id: z.ZodString;
|
|
98
|
+
new_owner: z.ZodString;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
asset_id: string;
|
|
101
|
+
new_owner: string;
|
|
102
|
+
}, {
|
|
103
|
+
asset_id: string;
|
|
104
|
+
new_owner: string;
|
|
105
|
+
}>;
|
|
106
|
+
export declare const WhitelistAssetSchema: z.ZodObject<{
|
|
107
|
+
asset_id: z.ZodString;
|
|
108
|
+
}, "strip", z.ZodTypeAny, {
|
|
109
|
+
asset_id: string;
|
|
110
|
+
}, {
|
|
111
|
+
asset_id: string;
|
|
112
|
+
}>;
|
|
113
|
+
export declare const RemoveAssetFromWhitelistSchema: z.ZodObject<{
|
|
114
|
+
asset_id: z.ZodString;
|
|
115
|
+
}, "strip", z.ZodTypeAny, {
|
|
116
|
+
asset_id: string;
|
|
117
|
+
}, {
|
|
118
|
+
asset_id: string;
|
|
119
|
+
}>;
|
|
120
|
+
export type DeployAssetInput = z.infer<typeof DeployAssetSchema>;
|
|
121
|
+
export type EmitAssetInput = z.infer<typeof EmitAssetSchema>;
|
|
122
|
+
export type BurnAssetInput = z.infer<typeof BurnAssetSchema>;
|
|
123
|
+
export type UpdateAssetInput = z.infer<typeof UpdateAssetSchema>;
|
|
124
|
+
export type TransferAssetOwnershipInput = z.infer<typeof TransferAssetOwnershipSchema>;
|
|
125
|
+
export type WhitelistAssetInput = z.infer<typeof WhitelistAssetSchema>;
|
|
126
|
+
export type RemoveAssetFromWhitelistInput = z.infer<typeof RemoveAssetFromWhitelistSchema>;
|
|
127
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/tools/assets/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;CAQ5B,CAAC;AAEF,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;CAEzC,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAC5D,eAAO,MAAM,eAAe;;;;;;;;;EAA2B,CAAC;AACxD,eAAO,MAAM,eAAe;;;;;;;;;EAA2B,CAAC;AACxD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAA6B,CAAC;AAC5D,eAAO,MAAM,4BAA4B;;;;;;;;;EAAwC,CAAC;AAClF,eAAO,MAAM,oBAAoB;;;;;;EAAgC,CAAC;AAClE,eAAO,MAAM,8BAA8B;;;;;;EAA0C,CAAC;AAEtF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACvF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const DeployAssetShape = {
|
|
3
|
+
ticker: z.string().describe("Asset ticker symbol (e.g. 'MYTOKEN')"),
|
|
4
|
+
full_name: z.string().describe("Full asset name"),
|
|
5
|
+
total_max_supply: z.string().describe("Maximum supply in human-readable units"),
|
|
6
|
+
current_supply: z.string().describe("Initial supply to mint in human-readable units"),
|
|
7
|
+
decimal_point: z.number().int().min(0).max(18).default(12).describe("Decimal places"),
|
|
8
|
+
meta_info: z.string().optional().describe("JSON metadata string"),
|
|
9
|
+
hidden_supply: z.boolean().optional().default(false).describe("Whether to hide supply info"),
|
|
10
|
+
};
|
|
11
|
+
export const EmitAssetShape = {
|
|
12
|
+
asset_id: z.string().describe("Asset ID to mint"),
|
|
13
|
+
amount: z.string().describe("Amount to mint in human-readable units"),
|
|
14
|
+
};
|
|
15
|
+
export const BurnAssetShape = {
|
|
16
|
+
asset_id: z.string().describe("Asset ID to burn"),
|
|
17
|
+
amount: z.string().describe("Amount to burn in human-readable units"),
|
|
18
|
+
};
|
|
19
|
+
export const UpdateAssetShape = {
|
|
20
|
+
asset_id: z.string().describe("Asset ID to update"),
|
|
21
|
+
ticker: z.string().optional().describe("New ticker"),
|
|
22
|
+
full_name: z.string().optional().describe("New full name"),
|
|
23
|
+
meta_info: z.string().optional().describe("New metadata"),
|
|
24
|
+
};
|
|
25
|
+
export const TransferAssetOwnershipShape = {
|
|
26
|
+
asset_id: z.string().describe("Asset ID"),
|
|
27
|
+
new_owner: z.string().describe("New owner's public key"),
|
|
28
|
+
};
|
|
29
|
+
export const WhitelistAssetShape = {
|
|
30
|
+
asset_id: z.string().describe("Asset ID to add to whitelist"),
|
|
31
|
+
};
|
|
32
|
+
export const RemoveAssetFromWhitelistShape = {
|
|
33
|
+
asset_id: z.string().describe("Asset ID to remove from whitelist"),
|
|
34
|
+
};
|
|
35
|
+
// Schemas and types
|
|
36
|
+
export const DeployAssetSchema = z.object(DeployAssetShape);
|
|
37
|
+
export const EmitAssetSchema = z.object(EmitAssetShape);
|
|
38
|
+
export const BurnAssetSchema = z.object(BurnAssetShape);
|
|
39
|
+
export const UpdateAssetSchema = z.object(UpdateAssetShape);
|
|
40
|
+
export const TransferAssetOwnershipSchema = z.object(TransferAssetOwnershipShape);
|
|
41
|
+
export const WhitelistAssetSchema = z.object(WhitelistAssetShape);
|
|
42
|
+
export const RemoveAssetFromWhitelistSchema = z.object(RemoveAssetFromWhitelistShape);
|
|
43
|
+
//# sourceMappingURL=definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/tools/assets/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WalletClient } from "../../clients/wallet.js";
|
|
2
|
+
import type { DeployAssetInput, EmitAssetInput, BurnAssetInput, UpdateAssetInput, TransferAssetOwnershipInput, WhitelistAssetInput, RemoveAssetFromWhitelistInput } from "./definitions.js";
|
|
3
|
+
type ToolResult = {
|
|
4
|
+
content: Array<{
|
|
5
|
+
type: "text";
|
|
6
|
+
text: string;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
export declare class AssetHandlers {
|
|
10
|
+
private client;
|
|
11
|
+
constructor(client: WalletClient);
|
|
12
|
+
deployAsset(input: DeployAssetInput): Promise<ToolResult>;
|
|
13
|
+
emitAsset(input: EmitAssetInput): Promise<ToolResult>;
|
|
14
|
+
burnAsset(input: BurnAssetInput): Promise<ToolResult>;
|
|
15
|
+
updateAsset(input: UpdateAssetInput): Promise<ToolResult>;
|
|
16
|
+
transferAssetOwnership(input: TransferAssetOwnershipInput): Promise<ToolResult>;
|
|
17
|
+
whitelistAsset(input: WhitelistAssetInput): Promise<ToolResult>;
|
|
18
|
+
removeAssetFromWhitelist(input: RemoveAssetFromWhitelistInput): Promise<ToolResult>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/assets/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAE1B,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AASrE,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAI1B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBzD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAerD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAcrD,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBzD,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB/E,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAW/D,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC;CAU1F"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { humanToAtomic } from "../../utils/formatting.js";
|
|
2
|
+
function textResult(text) {
|
|
3
|
+
return { content: [{ type: "text", text }] };
|
|
4
|
+
}
|
|
5
|
+
function errorResult(error) {
|
|
6
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
7
|
+
return textResult(`Error: ${msg}`);
|
|
8
|
+
}
|
|
9
|
+
export class AssetHandlers {
|
|
10
|
+
client;
|
|
11
|
+
constructor(client) {
|
|
12
|
+
this.client = client;
|
|
13
|
+
}
|
|
14
|
+
async deployAsset(input) {
|
|
15
|
+
try {
|
|
16
|
+
const decimals = input.decimal_point;
|
|
17
|
+
const totalMaxSupply = humanToAtomic(input.total_max_supply, decimals);
|
|
18
|
+
const currentSupply = humanToAtomic(input.current_supply, decimals);
|
|
19
|
+
const res = await this.client.call("deploy_asset", {
|
|
20
|
+
asset_descriptor: {
|
|
21
|
+
ticker: input.ticker,
|
|
22
|
+
full_name: input.full_name,
|
|
23
|
+
total_max_supply: Number(totalMaxSupply),
|
|
24
|
+
current_supply: Number(currentSupply),
|
|
25
|
+
decimal_point: decimals,
|
|
26
|
+
meta_info: input.meta_info || "",
|
|
27
|
+
hidden_supply: input.hidden_supply || false,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return textResult(`Asset deployed!\nAsset ID: ${res.new_asset_id || res.asset_id}\nTX hash: ${res.tx_hash || "N/A"}`);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
return errorResult(e);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async emitAsset(input) {
|
|
37
|
+
try {
|
|
38
|
+
// Need to look up decimals from the asset - default to 12 if unknown
|
|
39
|
+
const res = await this.client.call("emit_asset", {
|
|
40
|
+
asset_id: input.asset_id,
|
|
41
|
+
amount: input.amount,
|
|
42
|
+
});
|
|
43
|
+
return textResult(`Asset emitted: ${input.amount} of ${input.asset_id.slice(0, 16)}...\nTX hash: ${res.tx_hash || "N/A"}`);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
return errorResult(e);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async burnAsset(input) {
|
|
50
|
+
try {
|
|
51
|
+
const res = await this.client.call("burn_asset", {
|
|
52
|
+
asset_id: input.asset_id,
|
|
53
|
+
amount: input.amount,
|
|
54
|
+
});
|
|
55
|
+
return textResult(`Asset burned: ${input.amount} of ${input.asset_id.slice(0, 16)}...\nTX hash: ${res.tx_hash || "N/A"}`);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
return errorResult(e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async updateAsset(input) {
|
|
62
|
+
try {
|
|
63
|
+
const descriptor = {};
|
|
64
|
+
if (input.ticker)
|
|
65
|
+
descriptor.ticker = input.ticker;
|
|
66
|
+
if (input.full_name)
|
|
67
|
+
descriptor.full_name = input.full_name;
|
|
68
|
+
if (input.meta_info)
|
|
69
|
+
descriptor.meta_info = input.meta_info;
|
|
70
|
+
const res = await this.client.call("update_asset", {
|
|
71
|
+
asset_id: input.asset_id,
|
|
72
|
+
asset_descriptor: descriptor,
|
|
73
|
+
});
|
|
74
|
+
return textResult(`Asset updated: ${input.asset_id.slice(0, 16)}...\nTX hash: ${res.tx_hash || "N/A"}`);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
return errorResult(e);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async transferAssetOwnership(input) {
|
|
81
|
+
try {
|
|
82
|
+
const res = await this.client.call("transfer_asset_ownership", {
|
|
83
|
+
asset_id: input.asset_id,
|
|
84
|
+
new_owner: input.new_owner,
|
|
85
|
+
});
|
|
86
|
+
return textResult(`Ownership transferred for ${input.asset_id.slice(0, 16)}...\nNew owner: ${input.new_owner}\nTX hash: ${res.tx_hash || "N/A"}`);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
return errorResult(e);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async whitelistAsset(input) {
|
|
93
|
+
try {
|
|
94
|
+
await this.client.call("assets_whitelist_add", {
|
|
95
|
+
asset_id: input.asset_id,
|
|
96
|
+
});
|
|
97
|
+
return textResult(`Asset ${input.asset_id.slice(0, 16)}... added to whitelist.`);
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
return errorResult(e);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async removeAssetFromWhitelist(input) {
|
|
104
|
+
try {
|
|
105
|
+
await this.client.call("assets_whitelist_remove", {
|
|
106
|
+
asset_id: input.asset_id,
|
|
107
|
+
});
|
|
108
|
+
return textResult(`Asset ${input.asset_id.slice(0, 16)}... removed from whitelist.`);
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
return errorResult(e);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/tools/assets/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const GetNetworkInfoShape: {};
|
|
3
|
+
export declare const GetHeightShape: {};
|
|
4
|
+
export declare const GetBlockByHeightShape: {
|
|
5
|
+
height: z.ZodNumber;
|
|
6
|
+
};
|
|
7
|
+
export declare const GetBlockByHashShape: {
|
|
8
|
+
hash: z.ZodString;
|
|
9
|
+
};
|
|
10
|
+
export declare const GetLastBlockShape: {};
|
|
11
|
+
export declare const GetBlockDetailsShape: {
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
};
|
|
14
|
+
export declare const GetTransactionShape: {
|
|
15
|
+
tx_hash: z.ZodString;
|
|
16
|
+
};
|
|
17
|
+
export declare const GetTransactionsShape: {
|
|
18
|
+
tx_hashes: z.ZodArray<z.ZodString, "many">;
|
|
19
|
+
};
|
|
20
|
+
export declare const GetPoolInfoShape: {};
|
|
21
|
+
export declare const GetAssetInfoShape: {
|
|
22
|
+
asset_id: z.ZodString;
|
|
23
|
+
};
|
|
24
|
+
export declare const GetAssetsListShape: {
|
|
25
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
27
|
+
};
|
|
28
|
+
export declare const ResolveAliasShape: {
|
|
29
|
+
alias: z.ZodString;
|
|
30
|
+
};
|
|
31
|
+
export declare const GetAliasByAddressShape: {
|
|
32
|
+
address: z.ZodString;
|
|
33
|
+
};
|
|
34
|
+
export declare const SearchBlockchainShape: {
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
};
|
|
37
|
+
export declare const ValidateSignatureShape: {
|
|
38
|
+
buff: z.ZodString;
|
|
39
|
+
address: z.ZodString;
|
|
40
|
+
signature: z.ZodString;
|
|
41
|
+
};
|
|
42
|
+
export declare const GetBlockByHeightSchema: z.ZodObject<{
|
|
43
|
+
height: z.ZodNumber;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
height: number;
|
|
46
|
+
}, {
|
|
47
|
+
height: number;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const GetBlockByHashSchema: z.ZodObject<{
|
|
50
|
+
hash: z.ZodString;
|
|
51
|
+
}, "strip", z.ZodTypeAny, {
|
|
52
|
+
hash: string;
|
|
53
|
+
}, {
|
|
54
|
+
hash: string;
|
|
55
|
+
}>;
|
|
56
|
+
export declare const GetBlockDetailsSchema: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
}, "strip", z.ZodTypeAny, {
|
|
59
|
+
id: string;
|
|
60
|
+
}, {
|
|
61
|
+
id: string;
|
|
62
|
+
}>;
|
|
63
|
+
export declare const GetTransactionSchema: z.ZodObject<{
|
|
64
|
+
tx_hash: z.ZodString;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
tx_hash: string;
|
|
67
|
+
}, {
|
|
68
|
+
tx_hash: string;
|
|
69
|
+
}>;
|
|
70
|
+
export declare const GetTransactionsSchema: z.ZodObject<{
|
|
71
|
+
tx_hashes: z.ZodArray<z.ZodString, "many">;
|
|
72
|
+
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
tx_hashes: string[];
|
|
74
|
+
}, {
|
|
75
|
+
tx_hashes: string[];
|
|
76
|
+
}>;
|
|
77
|
+
export declare const GetAssetInfoSchema: z.ZodObject<{
|
|
78
|
+
asset_id: z.ZodString;
|
|
79
|
+
}, "strip", z.ZodTypeAny, {
|
|
80
|
+
asset_id: string;
|
|
81
|
+
}, {
|
|
82
|
+
asset_id: string;
|
|
83
|
+
}>;
|
|
84
|
+
export declare const GetAssetsListSchema: z.ZodObject<{
|
|
85
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
86
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
offset: number;
|
|
89
|
+
count: number;
|
|
90
|
+
}, {
|
|
91
|
+
offset?: number | undefined;
|
|
92
|
+
count?: number | undefined;
|
|
93
|
+
}>;
|
|
94
|
+
export declare const ResolveAliasSchema: z.ZodObject<{
|
|
95
|
+
alias: z.ZodString;
|
|
96
|
+
}, "strip", z.ZodTypeAny, {
|
|
97
|
+
alias: string;
|
|
98
|
+
}, {
|
|
99
|
+
alias: string;
|
|
100
|
+
}>;
|
|
101
|
+
export declare const GetAliasByAddressSchema: z.ZodObject<{
|
|
102
|
+
address: z.ZodString;
|
|
103
|
+
}, "strip", z.ZodTypeAny, {
|
|
104
|
+
address: string;
|
|
105
|
+
}, {
|
|
106
|
+
address: string;
|
|
107
|
+
}>;
|
|
108
|
+
export declare const SearchBlockchainSchema: z.ZodObject<{
|
|
109
|
+
id: z.ZodString;
|
|
110
|
+
}, "strip", z.ZodTypeAny, {
|
|
111
|
+
id: string;
|
|
112
|
+
}, {
|
|
113
|
+
id: string;
|
|
114
|
+
}>;
|
|
115
|
+
export declare const ValidateSignatureSchema: z.ZodObject<{
|
|
116
|
+
buff: z.ZodString;
|
|
117
|
+
address: z.ZodString;
|
|
118
|
+
signature: z.ZodString;
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
address: string;
|
|
121
|
+
buff: string;
|
|
122
|
+
signature: string;
|
|
123
|
+
}, {
|
|
124
|
+
address: string;
|
|
125
|
+
buff: string;
|
|
126
|
+
signature: string;
|
|
127
|
+
}>;
|
|
128
|
+
export type GetBlockByHeightInput = z.infer<typeof GetBlockByHeightSchema>;
|
|
129
|
+
export type GetBlockByHashInput = z.infer<typeof GetBlockByHashSchema>;
|
|
130
|
+
export type GetBlockDetailsInput = z.infer<typeof GetBlockDetailsSchema>;
|
|
131
|
+
export type GetTransactionInput = z.infer<typeof GetTransactionSchema>;
|
|
132
|
+
export type GetTransactionsInput = z.infer<typeof GetTransactionsSchema>;
|
|
133
|
+
export type GetAssetInfoInput = z.infer<typeof GetAssetInfoSchema>;
|
|
134
|
+
export type GetAssetsListInput = z.infer<typeof GetAssetsListSchema>;
|
|
135
|
+
export type ResolveAliasInput = z.infer<typeof ResolveAliasSchema>;
|
|
136
|
+
export type GetAliasByAddressInput = z.infer<typeof GetAliasByAddressSchema>;
|
|
137
|
+
export type SearchBlockchainInput = z.infer<typeof SearchBlockchainSchema>;
|
|
138
|
+
export type ValidateSignatureInput = z.infer<typeof ValidateSignatureSchema>;
|
|
139
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/tools/daemon/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC,eAAO,MAAM,cAAc,IAAK,CAAC;AAEjC,eAAO,MAAM,qBAAqB;;CAEjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,IAAK,CAAC;AAEpC,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,IAAK,CAAC;AAEnC,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CAElC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;CAEjC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;;;;EAAkC,CAAC;AACtE,eAAO,MAAM,oBAAoB;;;;;;EAAgC,CAAC;AAClE,eAAO,MAAM,qBAAqB;;;;;;EAAiC,CAAC;AACpE,eAAO,MAAM,oBAAoB;;;;;;EAAgC,CAAC;AAClE,eAAO,MAAM,qBAAqB;;;;;;EAAiC,CAAC;AACpE,eAAO,MAAM,kBAAkB;;;;;;EAA8B,CAAC;AAC9D,eAAO,MAAM,mBAAmB;;;;;;;;;EAA+B,CAAC;AAChE,eAAO,MAAM,kBAAkB;;;;;;EAA8B,CAAC;AAC9D,eAAO,MAAM,uBAAuB;;;;;;EAAmC,CAAC;AACxE,eAAO,MAAM,sBAAsB;;;;;;EAAkC,CAAC;AACtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAAmC,CAAC;AAIxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACzE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACzE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC7E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// --- Zod raw shapes (passed to server.tool()) ---
|
|
3
|
+
export const GetNetworkInfoShape = {};
|
|
4
|
+
export const GetHeightShape = {};
|
|
5
|
+
export const GetBlockByHeightShape = {
|
|
6
|
+
height: z.number().int().min(0).describe("Block height"),
|
|
7
|
+
};
|
|
8
|
+
export const GetBlockByHashShape = {
|
|
9
|
+
hash: z.string().describe("Block hash"),
|
|
10
|
+
};
|
|
11
|
+
export const GetLastBlockShape = {};
|
|
12
|
+
export const GetBlockDetailsShape = {
|
|
13
|
+
id: z.string().describe("Block hash"),
|
|
14
|
+
};
|
|
15
|
+
export const GetTransactionShape = {
|
|
16
|
+
tx_hash: z.string().describe("Transaction hash"),
|
|
17
|
+
};
|
|
18
|
+
export const GetTransactionsShape = {
|
|
19
|
+
tx_hashes: z.array(z.string()).describe("Array of transaction hashes"),
|
|
20
|
+
};
|
|
21
|
+
export const GetPoolInfoShape = {};
|
|
22
|
+
export const GetAssetInfoShape = {
|
|
23
|
+
asset_id: z.string().describe("Asset ID (64-char hex)"),
|
|
24
|
+
};
|
|
25
|
+
export const GetAssetsListShape = {
|
|
26
|
+
offset: z.number().int().min(0).default(0).describe("Offset for pagination"),
|
|
27
|
+
count: z.number().int().min(1).max(100).default(50).describe("Number of assets to return"),
|
|
28
|
+
};
|
|
29
|
+
export const ResolveAliasShape = {
|
|
30
|
+
alias: z.string().describe("Zano alias (without @)"),
|
|
31
|
+
};
|
|
32
|
+
export const GetAliasByAddressShape = {
|
|
33
|
+
address: z.string().describe("Zano address"),
|
|
34
|
+
};
|
|
35
|
+
export const SearchBlockchainShape = {
|
|
36
|
+
id: z.string().describe("Hash, alias, or address to search for"),
|
|
37
|
+
};
|
|
38
|
+
export const ValidateSignatureShape = {
|
|
39
|
+
buff: z.string().describe("Message that was signed"),
|
|
40
|
+
address: z.string().describe("Address of the signer"),
|
|
41
|
+
signature: z.string().describe("Signature to validate"),
|
|
42
|
+
};
|
|
43
|
+
// --- Zod full schemas (for type inference) ---
|
|
44
|
+
export const GetBlockByHeightSchema = z.object(GetBlockByHeightShape);
|
|
45
|
+
export const GetBlockByHashSchema = z.object(GetBlockByHashShape);
|
|
46
|
+
export const GetBlockDetailsSchema = z.object(GetBlockDetailsShape);
|
|
47
|
+
export const GetTransactionSchema = z.object(GetTransactionShape);
|
|
48
|
+
export const GetTransactionsSchema = z.object(GetTransactionsShape);
|
|
49
|
+
export const GetAssetInfoSchema = z.object(GetAssetInfoShape);
|
|
50
|
+
export const GetAssetsListSchema = z.object(GetAssetsListShape);
|
|
51
|
+
export const ResolveAliasSchema = z.object(ResolveAliasShape);
|
|
52
|
+
export const GetAliasByAddressSchema = z.object(GetAliasByAddressShape);
|
|
53
|
+
export const SearchBlockchainSchema = z.object(SearchBlockchainShape);
|
|
54
|
+
export const ValidateSignatureSchema = z.object(ValidateSignatureShape);
|
|
55
|
+
//# sourceMappingURL=definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/tools/daemon/definitions.ts"],"names":[],"mappings":"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"}
|