@missionsquad/mcp-server-tron 1.2.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.
Files changed (193) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +537 -0
  3. package/bin/cli.js +51 -0
  4. package/build/core/chains.d.ts +17 -0
  5. package/build/core/chains.js +87 -0
  6. package/build/core/chains.js.map +1 -0
  7. package/build/core/prompts.d.ts +19 -0
  8. package/build/core/prompts.js +485 -0
  9. package/build/core/prompts.js.map +1 -0
  10. package/build/core/resources.d.ts +14 -0
  11. package/build/core/resources.js +42 -0
  12. package/build/core/resources.js.map +1 -0
  13. package/build/core/services/account-data.d.ts +144 -0
  14. package/build/core/services/account-data.js +228 -0
  15. package/build/core/services/account-data.js.map +1 -0
  16. package/build/core/services/account-resource.d.ts +56 -0
  17. package/build/core/services/account-resource.js +133 -0
  18. package/build/core/services/account-resource.js.map +1 -0
  19. package/build/core/services/account.d.ts +141 -0
  20. package/build/core/services/account.js +191 -0
  21. package/build/core/services/account.js.map +1 -0
  22. package/build/core/services/address.d.ts +8 -0
  23. package/build/core/services/address.js +52 -0
  24. package/build/core/services/address.js.map +1 -0
  25. package/build/core/services/agent-wallet.d.ts +62 -0
  26. package/build/core/services/agent-wallet.js +234 -0
  27. package/build/core/services/agent-wallet.js.map +1 -0
  28. package/build/core/services/balance.d.ts +26 -0
  29. package/build/core/services/balance.js +60 -0
  30. package/build/core/services/balance.js.map +1 -0
  31. package/build/core/services/blocks.d.ts +25 -0
  32. package/build/core/services/blocks.js +65 -0
  33. package/build/core/services/blocks.js.map +1 -0
  34. package/build/core/services/broadcast.d.ts +13 -0
  35. package/build/core/services/broadcast.js +24 -0
  36. package/build/core/services/broadcast.js.map +1 -0
  37. package/build/core/services/clients.d.ts +5 -0
  38. package/build/core/services/clients.js +29 -0
  39. package/build/core/services/clients.js.map +1 -0
  40. package/build/core/services/contract-data.d.ts +31 -0
  41. package/build/core/services/contract-data.js +54 -0
  42. package/build/core/services/contract-data.js.map +1 -0
  43. package/build/core/services/contracts.d.ts +108 -0
  44. package/build/core/services/contracts.js +482 -0
  45. package/build/core/services/contracts.js.map +1 -0
  46. package/build/core/services/events.d.ts +56 -0
  47. package/build/core/services/events.js +99 -0
  48. package/build/core/services/events.js.map +1 -0
  49. package/build/core/services/governance.d.ts +78 -0
  50. package/build/core/services/governance.js +207 -0
  51. package/build/core/services/governance.js.map +1 -0
  52. package/build/core/services/index.d.ts +28 -0
  53. package/build/core/services/index.js +81 -0
  54. package/build/core/services/index.js.map +1 -0
  55. package/build/core/services/mempool.d.ts +12 -0
  56. package/build/core/services/mempool.js +32 -0
  57. package/build/core/services/mempool.js.map +1 -0
  58. package/build/core/services/multicall-abi.d.ts +55 -0
  59. package/build/core/services/multicall-abi.js +61 -0
  60. package/build/core/services/multicall-abi.js.map +1 -0
  61. package/build/core/services/nodes.d.ts +8 -0
  62. package/build/core/services/nodes.js +18 -0
  63. package/build/core/services/nodes.js.map +1 -0
  64. package/build/core/services/proposals.d.ts +33 -0
  65. package/build/core/services/proposals.js +95 -0
  66. package/build/core/services/proposals.js.map +1 -0
  67. package/build/core/services/query.d.ts +34 -0
  68. package/build/core/services/query.js +60 -0
  69. package/build/core/services/query.js.map +1 -0
  70. package/build/core/services/staking.d.ts +40 -0
  71. package/build/core/services/staking.js +113 -0
  72. package/build/core/services/staking.js.map +1 -0
  73. package/build/core/services/tokens.d.ts +22 -0
  74. package/build/core/services/tokens.js +68 -0
  75. package/build/core/services/tokens.js.map +1 -0
  76. package/build/core/services/transactions.d.ts +16 -0
  77. package/build/core/services/transactions.js +42 -0
  78. package/build/core/services/transactions.js.map +1 -0
  79. package/build/core/services/transfer.d.ts +24 -0
  80. package/build/core/services/transfer.js +84 -0
  81. package/build/core/services/transfer.js.map +1 -0
  82. package/build/core/services/trongrid-client.d.ts +14 -0
  83. package/build/core/services/trongrid-client.js +19 -0
  84. package/build/core/services/trongrid-client.js.map +1 -0
  85. package/build/core/services/utils.d.ts +13 -0
  86. package/build/core/services/utils.js +39 -0
  87. package/build/core/services/utils.js.map +1 -0
  88. package/build/core/services/wallet.d.ts +13 -0
  89. package/build/core/services/wallet.js +18 -0
  90. package/build/core/services/wallet.js.map +1 -0
  91. package/build/core/tools/account-data.d.ts +2 -0
  92. package/build/core/tools/account-data.js +253 -0
  93. package/build/core/tools/account-data.js.map +1 -0
  94. package/build/core/tools/account-resource.d.ts +2 -0
  95. package/build/core/tools/account-resource.js +269 -0
  96. package/build/core/tools/account-resource.js.map +1 -0
  97. package/build/core/tools/account.d.ts +2 -0
  98. package/build/core/tools/account.js +451 -0
  99. package/build/core/tools/account.js.map +1 -0
  100. package/build/core/tools/address.d.ts +2 -0
  101. package/build/core/tools/address.js +45 -0
  102. package/build/core/tools/address.js.map +1 -0
  103. package/build/core/tools/balance.d.ts +2 -0
  104. package/build/core/tools/balance.js +94 -0
  105. package/build/core/tools/balance.js.map +1 -0
  106. package/build/core/tools/block.d.ts +2 -0
  107. package/build/core/tools/block.js +74 -0
  108. package/build/core/tools/block.js.map +1 -0
  109. package/build/core/tools/broadcast.d.ts +2 -0
  110. package/build/core/tools/broadcast.js +102 -0
  111. package/build/core/tools/broadcast.js.map +1 -0
  112. package/build/core/tools/contract-data.d.ts +2 -0
  113. package/build/core/tools/contract-data.js +159 -0
  114. package/build/core/tools/contract-data.js.map +1 -0
  115. package/build/core/tools/contract.d.ts +2 -0
  116. package/build/core/tools/contract.js +600 -0
  117. package/build/core/tools/contract.js.map +1 -0
  118. package/build/core/tools/event.d.ts +2 -0
  119. package/build/core/tools/event.js +159 -0
  120. package/build/core/tools/event.js.map +1 -0
  121. package/build/core/tools/governance.d.ts +6 -0
  122. package/build/core/tools/governance.js +424 -0
  123. package/build/core/tools/governance.js.map +1 -0
  124. package/build/core/tools/index.d.ts +15 -0
  125. package/build/core/tools/index.js +93 -0
  126. package/build/core/tools/index.js.map +1 -0
  127. package/build/core/tools/mempool.d.ts +2 -0
  128. package/build/core/tools/mempool.js +116 -0
  129. package/build/core/tools/mempool.js.map +1 -0
  130. package/build/core/tools/network.d.ts +2 -0
  131. package/build/core/tools/network.js +114 -0
  132. package/build/core/tools/network.js.map +1 -0
  133. package/build/core/tools/node.d.ts +2 -0
  134. package/build/core/tools/node.js +75 -0
  135. package/build/core/tools/node.js.map +1 -0
  136. package/build/core/tools/proposals.d.ts +6 -0
  137. package/build/core/tools/proposals.js +219 -0
  138. package/build/core/tools/proposals.js.map +1 -0
  139. package/build/core/tools/query.d.ts +2 -0
  140. package/build/core/tools/query.js +399 -0
  141. package/build/core/tools/query.js.map +1 -0
  142. package/build/core/tools/staking.d.ts +2 -0
  143. package/build/core/tools/staking.js +281 -0
  144. package/build/core/tools/staking.js.map +1 -0
  145. package/build/core/tools/transaction.d.ts +2 -0
  146. package/build/core/tools/transaction.js +65 -0
  147. package/build/core/tools/transaction.js.map +1 -0
  148. package/build/core/tools/transfer.d.ts +2 -0
  149. package/build/core/tools/transfer.js +101 -0
  150. package/build/core/tools/transfer.js.map +1 -0
  151. package/build/core/tools/types.d.ts +13 -0
  152. package/build/core/tools/types.js +2 -0
  153. package/build/core/tools/types.js.map +1 -0
  154. package/build/core/tools/wallet.d.ts +2 -0
  155. package/build/core/tools/wallet.js +172 -0
  156. package/build/core/tools/wallet.js.map +1 -0
  157. package/build/index.d.ts +1 -0
  158. package/build/index.js +21 -0
  159. package/build/index.js.map +1 -0
  160. package/build/middleware/auth.d.ts +16 -0
  161. package/build/middleware/auth.js +44 -0
  162. package/build/middleware/auth.js.map +1 -0
  163. package/build/oauth/OAuthService.d.ts +100 -0
  164. package/build/oauth/OAuthService.js +507 -0
  165. package/build/oauth/OAuthService.js.map +1 -0
  166. package/build/oauth/page.d.ts +1 -0
  167. package/build/oauth/page.js +255 -0
  168. package/build/oauth/page.js.map +1 -0
  169. package/build/oauth/types.d.ts +65 -0
  170. package/build/oauth/types.js +2 -0
  171. package/build/oauth/types.js.map +1 -0
  172. package/build/server/http-app.d.ts +9 -0
  173. package/build/server/http-app.js +128 -0
  174. package/build/server/http-app.js.map +1 -0
  175. package/build/server/http-server.d.ts +1 -0
  176. package/build/server/http-server.js +35 -0
  177. package/build/server/http-server.js.map +1 -0
  178. package/build/server/oauth-routes.d.ts +7 -0
  179. package/build/server/oauth-routes.js +157 -0
  180. package/build/server/oauth-routes.js.map +1 -0
  181. package/build/server/server.d.ts +9 -0
  182. package/build/server/server.js +54 -0
  183. package/build/server/server.js.map +1 -0
  184. package/build/tenant/TenantManager.d.ts +35 -0
  185. package/build/tenant/TenantManager.js +167 -0
  186. package/build/tenant/TenantManager.js.map +1 -0
  187. package/build/tenant/context.d.ts +11 -0
  188. package/build/tenant/context.js +23 -0
  189. package/build/tenant/context.js.map +1 -0
  190. package/build/tenant/types.d.ts +16 -0
  191. package/build/tenant/types.js +2 -0
  192. package/build/tenant/types.js.map +1 -0
  193. package/package.json +95 -0
@@ -0,0 +1,281 @@
1
+ import { z } from "zod";
2
+ import * as services from "../services/index.js";
3
+ export function registerStakingTools(registerTool) {
4
+ // Core Stake 2.0 staking actions
5
+ registerTool("freeze_balance_v2", {
6
+ description: "Freeze TRX to get resources (Stake 2.0).",
7
+ inputSchema: {
8
+ amount: z.coerce.string().describe("Amount to freeze in Sun (1 TRX = 1,000,000 Sun)"),
9
+ resource: z
10
+ .enum(["BANDWIDTH", "ENERGY"])
11
+ .optional()
12
+ .describe("Resource type to get. Defaults to BANDWIDTH."),
13
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
14
+ },
15
+ annotations: {
16
+ title: "Freeze Balance V2",
17
+ readOnlyHint: false,
18
+ destructiveHint: true,
19
+ idempotentHint: false,
20
+ openWorldHint: true,
21
+ },
22
+ }, async ({ amount, resource = "BANDWIDTH", network = "mainnet" }) => {
23
+ try {
24
+ const senderAddress = await services.getOwnerAddress();
25
+ const txHash = await services.freezeBalanceV2(amount, resource, network);
26
+ return {
27
+ content: [
28
+ {
29
+ type: "text",
30
+ text: JSON.stringify({
31
+ network,
32
+ from: senderAddress,
33
+ amount: `${services.utils.fromSun(amount)} TRX`,
34
+ resource,
35
+ txHash,
36
+ message: "Freeze transaction sent.",
37
+ }, null, 2),
38
+ },
39
+ ],
40
+ };
41
+ }
42
+ catch (error) {
43
+ return {
44
+ content: [
45
+ {
46
+ type: "text",
47
+ text: `Error freezing balance: ${error instanceof Error ? error.message : String(error)}`,
48
+ },
49
+ ],
50
+ isError: true,
51
+ };
52
+ }
53
+ });
54
+ registerTool("unfreeze_balance_v2", {
55
+ description: "Unfreeze TRX to release resources (Stake 2.0).",
56
+ inputSchema: {
57
+ amount: z.coerce.string().describe("Amount to unfreeze in Sun (1 TRX = 1,000,000 Sun)"),
58
+ resource: z
59
+ .enum(["BANDWIDTH", "ENERGY"])
60
+ .optional()
61
+ .describe("Resource type to release. Defaults to BANDWIDTH."),
62
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
63
+ },
64
+ annotations: {
65
+ title: "Unfreeze Balance V2",
66
+ readOnlyHint: false,
67
+ destructiveHint: true,
68
+ idempotentHint: false,
69
+ openWorldHint: true,
70
+ },
71
+ }, async ({ amount, resource = "BANDWIDTH", network = "mainnet" }) => {
72
+ try {
73
+ const senderAddress = await services.getOwnerAddress();
74
+ const txHash = await services.unfreezeBalanceV2(amount, resource, network);
75
+ return {
76
+ content: [
77
+ {
78
+ type: "text",
79
+ text: JSON.stringify({
80
+ network,
81
+ from: senderAddress,
82
+ amount: `${services.utils.fromSun(amount)} TRX`,
83
+ resource,
84
+ txHash,
85
+ message: "Unfreeze transaction sent.",
86
+ }, null, 2),
87
+ },
88
+ ],
89
+ };
90
+ }
91
+ catch (error) {
92
+ return {
93
+ content: [
94
+ {
95
+ type: "text",
96
+ text: `Error unfreezing balance: ${error instanceof Error ? error.message : String(error)}`,
97
+ },
98
+ ],
99
+ isError: true,
100
+ };
101
+ }
102
+ });
103
+ registerTool("withdraw_expire_unfreeze", {
104
+ description: "Withdraw expired unfrozen balance (Stake 2.0). Call this after the unfreezing period to return TRX to available balance.",
105
+ inputSchema: {
106
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
107
+ },
108
+ annotations: {
109
+ title: "Withdraw Expired Unfrozen Balance",
110
+ readOnlyHint: false,
111
+ destructiveHint: true,
112
+ idempotentHint: false,
113
+ openWorldHint: true,
114
+ },
115
+ }, async ({ network = "mainnet" }) => {
116
+ try {
117
+ const senderAddress = await services.getOwnerAddress();
118
+ const txHash = await services.withdrawExpireUnfreeze(network);
119
+ return {
120
+ content: [
121
+ {
122
+ type: "text",
123
+ text: JSON.stringify({
124
+ network,
125
+ from: senderAddress,
126
+ txHash,
127
+ message: "Withdrawal transaction sent.",
128
+ }, null, 2),
129
+ },
130
+ ],
131
+ };
132
+ }
133
+ catch (error) {
134
+ return {
135
+ content: [
136
+ {
137
+ type: "text",
138
+ text: `Error withdrawing balance: ${error instanceof Error ? error.message : String(error)}`,
139
+ },
140
+ ],
141
+ isError: true,
142
+ };
143
+ }
144
+ });
145
+ // Advanced Stake 2.0 staking utilities
146
+ registerTool("cancel_all_unfreeze_v2", {
147
+ description: "Cancel unstakings, all unstaked funds still in the waiting period will be re-staked, all unstaked funds that exceeded the 14-day waiting period will be automatically withdrawn to the owner’s account.",
148
+ inputSchema: {
149
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
150
+ },
151
+ annotations: {
152
+ title: "Cancel All Unfreeze V2",
153
+ readOnlyHint: false,
154
+ destructiveHint: true,
155
+ idempotentHint: false,
156
+ openWorldHint: true,
157
+ },
158
+ }, async ({ network = "mainnet" }) => {
159
+ try {
160
+ const senderAddress = await services.getOwnerAddress();
161
+ const txHash = await services.cancelAllUnfreezeV2(network);
162
+ return {
163
+ content: [
164
+ {
165
+ type: "text",
166
+ text: JSON.stringify({
167
+ network,
168
+ from: senderAddress,
169
+ txHash,
170
+ message: "CancelAllUnfreezeV2 transaction sent. This re-stakes pending unfreezes and withdraws already-expired ones.",
171
+ }, null, 2),
172
+ },
173
+ ],
174
+ };
175
+ }
176
+ catch (error) {
177
+ return {
178
+ content: [
179
+ {
180
+ type: "text",
181
+ text: `Error cancelling all unfreeze operations: ${error instanceof Error ? error.message : String(error)}`,
182
+ },
183
+ ],
184
+ isError: true,
185
+ };
186
+ }
187
+ });
188
+ registerTool("get_available_unfreeze_count", {
189
+ description: "Get remaining available unstake (unfreeze) operations for an address in Stake 2.0.",
190
+ inputSchema: {
191
+ address: z.string().describe("Wallet address (Base58 or hex)"),
192
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
193
+ },
194
+ annotations: {
195
+ title: "Get Available Unfreeze Count",
196
+ readOnlyHint: true,
197
+ destructiveHint: false,
198
+ idempotentHint: true,
199
+ openWorldHint: true,
200
+ },
201
+ }, async ({ address, network = "mainnet" }) => {
202
+ try {
203
+ const count = await services.getAvailableUnfreezeCount(address, network);
204
+ return {
205
+ content: [
206
+ {
207
+ type: "text",
208
+ text: JSON.stringify({
209
+ network,
210
+ address,
211
+ availableUnfreezeCount: count,
212
+ note: "Stake 2.0 allows up to 32 concurrent unstake operations. This value is the remaining quota.",
213
+ }, null, 2),
214
+ },
215
+ ],
216
+ };
217
+ }
218
+ catch (error) {
219
+ return {
220
+ content: [
221
+ {
222
+ type: "text",
223
+ text: `Error getting available unfreeze count: ${error instanceof Error ? error.message : String(error)}`,
224
+ },
225
+ ],
226
+ isError: true,
227
+ };
228
+ }
229
+ });
230
+ registerTool("get_can_withdraw_unfreeze_amount", {
231
+ description: "Get the withdrawable unstaked TRX amount for an address at a given timestamp in Stake 2.0.",
232
+ inputSchema: {
233
+ address: z.string().describe("Wallet address (Base58 or hex)"),
234
+ timestampMs: z
235
+ .string()
236
+ .optional()
237
+ .describe("Optional query timestamp in milliseconds. Defaults to current time."),
238
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
239
+ },
240
+ annotations: {
241
+ title: "Get Can Withdraw Unfreeze Amount",
242
+ readOnlyHint: true,
243
+ destructiveHint: false,
244
+ idempotentHint: true,
245
+ openWorldHint: true,
246
+ },
247
+ }, async ({ address, timestampMs, network = "mainnet" }) => {
248
+ try {
249
+ const ts = timestampMs ? Number(timestampMs) : undefined;
250
+ const { amountSun, timestampMs: usedTs } = await services.getCanWithdrawUnfreezeAmount(address, network, ts);
251
+ const amountTrx = services.utils.fromSun(amountSun.toString());
252
+ return {
253
+ content: [
254
+ {
255
+ type: "text",
256
+ text: JSON.stringify({
257
+ network,
258
+ address,
259
+ timestampMs: usedTs,
260
+ amountSun: amountSun.toString(),
261
+ amountTrx,
262
+ message: "This is the amount of TRX currently withdrawable from Stake 2.0 unfreeze operations at the given timestamp.",
263
+ }, null, 2),
264
+ },
265
+ ],
266
+ };
267
+ }
268
+ catch (error) {
269
+ return {
270
+ content: [
271
+ {
272
+ type: "text",
273
+ text: `Error getting can withdraw unfreeze amount: ${error instanceof Error ? error.message : String(error)}`,
274
+ },
275
+ ],
276
+ isError: true,
277
+ };
278
+ }
279
+ });
280
+ }
281
+ //# sourceMappingURL=staking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/core/tools/staking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RegisterToolFn } from "./types.js";
2
+ export declare function registerTransactionTools(registerTool: RegisterToolFn): void;
@@ -0,0 +1,65 @@
1
+ import { z } from "zod";
2
+ import * as services from "../services/index.js";
3
+ export function registerTransactionTools(registerTool) {
4
+ registerTool("get_transaction", {
5
+ description: "Get transaction details by transaction hash",
6
+ inputSchema: {
7
+ txHash: z.string().describe("Transaction hash"),
8
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
9
+ },
10
+ annotations: {
11
+ title: "Get Transaction",
12
+ readOnlyHint: true,
13
+ destructiveHint: false,
14
+ idempotentHint: true,
15
+ openWorldHint: true,
16
+ },
17
+ }, async ({ txHash, network = "mainnet" }) => {
18
+ try {
19
+ const tx = await services.getTransaction(txHash, network);
20
+ return { content: [{ type: "text", text: services.helpers.formatJson(tx) }] };
21
+ }
22
+ catch (error) {
23
+ return {
24
+ content: [
25
+ {
26
+ type: "text",
27
+ text: `Error fetching transaction: ${error instanceof Error ? error.message : String(error)}`,
28
+ },
29
+ ],
30
+ isError: true,
31
+ };
32
+ }
33
+ });
34
+ registerTool("get_transaction_info", {
35
+ description: "Get transaction info (receipt/confirmation status, energy usage, logs).",
36
+ inputSchema: {
37
+ txHash: z.string().describe("Transaction hash"),
38
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
39
+ },
40
+ annotations: {
41
+ title: "Get Transaction Info",
42
+ readOnlyHint: true,
43
+ destructiveHint: false,
44
+ idempotentHint: true,
45
+ openWorldHint: true,
46
+ },
47
+ }, async ({ txHash, network = "mainnet" }) => {
48
+ try {
49
+ const info = await services.getTransactionInfo(txHash, network);
50
+ return { content: [{ type: "text", text: services.helpers.formatJson(info) }] };
51
+ }
52
+ catch (error) {
53
+ return {
54
+ content: [
55
+ {
56
+ type: "text",
57
+ text: `Error fetching transaction info: ${error instanceof Error ? error.message : String(error)}`,
58
+ },
59
+ ],
60
+ isError: true,
61
+ };
62
+ }
63
+ });
64
+ }
65
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/core/tools/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAGjD,MAAM,UAAU,wBAAwB,CAAC,YAA4B;IACnE,YAAY,CACV,iBAAiB,EACjB;QACE,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SAC9E;QACD,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB;YACxB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAC9F;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,YAAY,CACV,sBAAsB,EACtB;QACE,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SAC9E;QACD,WAAW,EAAE;YACX,KAAK,EAAE,sBAAsB;YAC7B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBACnG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { RegisterToolFn } from "./types.js";
2
+ export declare function registerTransferTools(registerTool: RegisterToolFn): void;
@@ -0,0 +1,101 @@
1
+ import { z } from "zod";
2
+ import * as services from "../services/index.js";
3
+ export function registerTransferTools(registerTool) {
4
+ registerTool("transfer_trx", {
5
+ description: "Transfer TRX to an address.",
6
+ inputSchema: {
7
+ to: z.string().describe("Recipient address"),
8
+ amount: z.coerce.string().describe("Amount to send in TRX (e.g., '10.5')"),
9
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
10
+ },
11
+ annotations: {
12
+ title: "Transfer TRX",
13
+ readOnlyHint: false,
14
+ destructiveHint: true,
15
+ idempotentHint: false,
16
+ openWorldHint: true,
17
+ },
18
+ }, async ({ to, amount, network = "mainnet" }) => {
19
+ try {
20
+ const senderAddress = await services.getOwnerAddress();
21
+ const txHash = await services.transferTRX(to, amount, network);
22
+ return {
23
+ content: [
24
+ {
25
+ type: "text",
26
+ text: JSON.stringify({
27
+ network,
28
+ from: senderAddress,
29
+ to,
30
+ amount: `${amount} TRX`,
31
+ txHash,
32
+ message: "Transaction sent. Use get_transaction_info to check confirmation.",
33
+ }, null, 2),
34
+ },
35
+ ],
36
+ };
37
+ }
38
+ catch (error) {
39
+ return {
40
+ content: [
41
+ {
42
+ type: "text",
43
+ text: `Error transferring TRX: ${error instanceof Error ? error.message : String(error)}`,
44
+ },
45
+ ],
46
+ isError: true,
47
+ };
48
+ }
49
+ });
50
+ registerTool("transfer_trc20", {
51
+ description: "Transfer TRC20 tokens to an address.",
52
+ inputSchema: {
53
+ tokenAddress: z.string().describe("The TRC20 token contract address"),
54
+ to: z.string().describe("Recipient address"),
55
+ amount: z.coerce.string().describe("Amount to send (raw amount with decimals)"),
56
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
57
+ },
58
+ annotations: {
59
+ title: "Transfer TRC20 Tokens",
60
+ readOnlyHint: false,
61
+ destructiveHint: true,
62
+ idempotentHint: false,
63
+ openWorldHint: true,
64
+ },
65
+ }, async ({ tokenAddress, to, amount, network = "mainnet" }) => {
66
+ try {
67
+ const senderAddress = await services.getOwnerAddress();
68
+ const result = await services.transferTRC20(tokenAddress, to, amount, network);
69
+ return {
70
+ content: [
71
+ {
72
+ type: "text",
73
+ text: JSON.stringify({
74
+ network,
75
+ tokenAddress,
76
+ from: senderAddress,
77
+ to,
78
+ amount: result.amount.formatted,
79
+ symbol: result.token.symbol,
80
+ decimals: result.token.decimals,
81
+ txHash: result.txHash,
82
+ message: "Transaction sent.",
83
+ }, null, 2),
84
+ },
85
+ ],
86
+ };
87
+ }
88
+ catch (error) {
89
+ return {
90
+ content: [
91
+ {
92
+ type: "text",
93
+ text: `Error transferring TRC20 tokens: ${error instanceof Error ? error.message : String(error)}`,
94
+ },
95
+ ],
96
+ isError: true,
97
+ };
98
+ }
99
+ });
100
+ }
101
+ //# sourceMappingURL=transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/core/tools/transfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export type RegisterToolFn = <T extends z.ZodRawShape>(name: string, definition: {
3
+ inputSchema?: T;
4
+ description?: string;
5
+ legacyOnly?: boolean;
6
+ annotations?: {
7
+ title?: string;
8
+ readOnlyHint?: boolean;
9
+ destructiveHint?: boolean;
10
+ idempotentHint?: boolean;
11
+ openWorldHint?: boolean;
12
+ };
13
+ }, handler: (args: z.infer<z.ZodObject<T>>) => Promise<any>) => void;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/tools/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { RegisterToolFn } from "./types.js";
2
+ export declare function registerWalletTools(registerTool: RegisterToolFn): void;