@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,74 @@
1
+ import { z } from "zod";
2
+ import * as services from "../services/index.js";
3
+ export function registerBlockTools(registerTool) {
4
+ registerTool("get_block", {
5
+ description: "Get block details by block number or hash",
6
+ inputSchema: {
7
+ blockIdentifier: z.string().describe("Block number (as string) or block hash"),
8
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
9
+ },
10
+ annotations: {
11
+ title: "Get Block",
12
+ readOnlyHint: true,
13
+ destructiveHint: false,
14
+ idempotentHint: true,
15
+ openWorldHint: true,
16
+ },
17
+ }, async ({ blockIdentifier, network = "mainnet" }) => {
18
+ try {
19
+ let block;
20
+ // Check if it's a hash (hex string usually 64 chars + prefix) or number
21
+ if (blockIdentifier.startsWith("0x") ||
22
+ (blockIdentifier.length > 20 && isNaN(Number(blockIdentifier)))) {
23
+ // Assume hash
24
+ block = await services.getBlockByHash(blockIdentifier, network);
25
+ }
26
+ else {
27
+ // Assume number
28
+ block = await services.getBlockByNumber(parseInt(blockIdentifier), network);
29
+ }
30
+ return { content: [{ type: "text", text: services.helpers.formatJson(block) }] };
31
+ }
32
+ catch (error) {
33
+ return {
34
+ content: [
35
+ {
36
+ type: "text",
37
+ text: `Error fetching block: ${error instanceof Error ? error.message : String(error)}`,
38
+ },
39
+ ],
40
+ isError: true,
41
+ };
42
+ }
43
+ });
44
+ registerTool("get_latest_block", {
45
+ description: "Get the latest block from the network",
46
+ inputSchema: {
47
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
48
+ },
49
+ annotations: {
50
+ title: "Get Latest Block",
51
+ readOnlyHint: true,
52
+ destructiveHint: false,
53
+ idempotentHint: false,
54
+ openWorldHint: true,
55
+ },
56
+ }, async ({ network = "mainnet" }) => {
57
+ try {
58
+ const block = await services.getLatestBlock(network);
59
+ return { content: [{ type: "text", text: services.helpers.formatJson(block) }] };
60
+ }
61
+ catch (error) {
62
+ return {
63
+ content: [
64
+ {
65
+ type: "text",
66
+ text: `Error fetching latest block: ${error instanceof Error ? error.message : String(error)}`,
67
+ },
68
+ ],
69
+ isError: true,
70
+ };
71
+ }
72
+ });
73
+ }
74
+ //# sourceMappingURL=block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/core/tools/block.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RegisterToolFn } from "./types.js";
2
+ export declare function registerBroadcastTools(registerTool: RegisterToolFn): void;
@@ -0,0 +1,102 @@
1
+ import { z } from "zod";
2
+ import * as services from "../services/index.js";
3
+ export function registerBroadcastTools(registerTool) {
4
+ registerTool("broadcast_transaction", {
5
+ description: "Broadcast a signed transaction to the TRON network. Accepts the full signed transaction JSON object.",
6
+ inputSchema: {
7
+ transaction: z.string().describe("The full signed transaction as a JSON string"),
8
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
9
+ },
10
+ annotations: {
11
+ title: "Broadcast Transaction",
12
+ readOnlyHint: false,
13
+ destructiveHint: true,
14
+ idempotentHint: false,
15
+ openWorldHint: true,
16
+ },
17
+ }, async ({ transaction, network = "mainnet" }) => {
18
+ try {
19
+ const txObj = JSON.parse(transaction);
20
+ const result = await services.broadcastTransaction(txObj, network);
21
+ return { content: [{ type: "text", text: services.helpers.formatJson(result) }] };
22
+ }
23
+ catch (error) {
24
+ return {
25
+ content: [
26
+ {
27
+ type: "text",
28
+ text: `Error broadcasting transaction: ${error instanceof Error ? error.message : String(error)}`,
29
+ },
30
+ ],
31
+ isError: true,
32
+ };
33
+ }
34
+ });
35
+ registerTool("broadcast_hex", {
36
+ description: "Broadcast a signed, protocol buffer-encoded transaction hex string to the TRON network.",
37
+ inputSchema: {
38
+ transaction: z.string().describe("Signed transaction hex string"),
39
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
40
+ },
41
+ annotations: {
42
+ title: "Broadcast Hex",
43
+ readOnlyHint: false,
44
+ destructiveHint: true,
45
+ idempotentHint: false,
46
+ openWorldHint: true,
47
+ },
48
+ }, async ({ transaction, network = "mainnet" }) => {
49
+ try {
50
+ const result = await services.broadcastHex(transaction, network);
51
+ return { content: [{ type: "text", text: services.helpers.formatJson(result) }] };
52
+ }
53
+ catch (error) {
54
+ return {
55
+ content: [
56
+ {
57
+ type: "text",
58
+ text: `Error broadcasting hex: ${error instanceof Error ? error.message : String(error)}`,
59
+ },
60
+ ],
61
+ isError: true,
62
+ };
63
+ }
64
+ });
65
+ registerTool("create_transaction", {
66
+ description: "Create an unsigned TRX transfer transaction. The recipient account will be auto-activated if it does not exist. Returns an unsigned transaction object that must be signed before broadcasting.",
67
+ inputSchema: {
68
+ ownerAddress: z.string().describe("Sender address (Base58)"),
69
+ toAddress: z.string().describe("Recipient address (Base58)"),
70
+ amount: z.coerce
71
+ .number()
72
+ .int()
73
+ .positive()
74
+ .describe("Transfer amount in SUN (1 TRX = 1,000,000 SUN)"),
75
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
76
+ },
77
+ annotations: {
78
+ title: "Create Transaction",
79
+ readOnlyHint: false,
80
+ destructiveHint: false,
81
+ idempotentHint: true,
82
+ openWorldHint: true,
83
+ },
84
+ }, async ({ ownerAddress, toAddress, amount, network = "mainnet" }) => {
85
+ try {
86
+ const result = await services.createTransaction(ownerAddress, toAddress, amount, network);
87
+ return { content: [{ type: "text", text: services.helpers.formatJson(result) }] };
88
+ }
89
+ catch (error) {
90
+ return {
91
+ content: [
92
+ {
93
+ type: "text",
94
+ text: `Error creating transaction: ${error instanceof Error ? error.message : String(error)}`,
95
+ },
96
+ ],
97
+ isError: true,
98
+ };
99
+ }
100
+ });
101
+ }
102
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../../src/core/tools/broadcast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RegisterToolFn } from "./types.js";
2
+ export declare function registerContractDataTools(registerTool: RegisterToolFn): void;
@@ -0,0 +1,159 @@
1
+ import { z } from "zod";
2
+ import * as services from "../services/index.js";
3
+ export function registerContractDataTools(registerTool) {
4
+ registerTool("get_contract_transactions", {
5
+ description: "Get transaction history for a smart contract from TronGrid indexed data. Unlike " +
6
+ "get_account_transactions, this aggregates transactions BY contract. Supports pagination " +
7
+ "via limit + fingerprint. Default 20 results, max 200 per page.",
8
+ inputSchema: {
9
+ address: z
10
+ .string()
11
+ .min(1)
12
+ .describe("Contract address (base58 T-address or hex 41-prefixed)"),
13
+ limit: z
14
+ .number()
15
+ .max(200)
16
+ .optional()
17
+ .describe("Max transactions per page (default 20, max 200)"),
18
+ fingerprint: z.string().optional().describe("Pagination token from previous response"),
19
+ onlyConfirmed: z.boolean().optional().describe("Only return confirmed transactions"),
20
+ onlyUnconfirmed: z.boolean().optional().describe("Only return unconfirmed transactions"),
21
+ orderBy: z.string().optional().describe("Sort field, e.g. 'block_timestamp,desc'"),
22
+ minTimestamp: z.number().optional().describe("Filter: minimum block timestamp (ms)"),
23
+ maxTimestamp: z.number().optional().describe("Filter: maximum block timestamp (ms)"),
24
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
25
+ },
26
+ annotations: {
27
+ title: "Get Contract Transactions",
28
+ readOnlyHint: true,
29
+ destructiveHint: false,
30
+ idempotentHint: true,
31
+ openWorldHint: true,
32
+ },
33
+ }, async ({ address, limit, fingerprint, onlyConfirmed, onlyUnconfirmed, orderBy, minTimestamp, maxTimestamp, network = "mainnet", }) => {
34
+ try {
35
+ const result = await services.getContractTransactions(address, {
36
+ limit,
37
+ fingerprint,
38
+ onlyConfirmed,
39
+ onlyUnconfirmed,
40
+ orderBy,
41
+ minTimestamp,
42
+ maxTimestamp,
43
+ }, network);
44
+ return {
45
+ content: [{ type: "text", text: services.helpers.formatJson(result) }],
46
+ };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ content: [
51
+ {
52
+ type: "text",
53
+ text: `Error fetching contract transactions: ${error instanceof Error ? error.message : String(error)}`,
54
+ },
55
+ ],
56
+ isError: true,
57
+ };
58
+ }
59
+ });
60
+ registerTool("get_contract_internal_transactions", {
61
+ description: "Get internal transactions (triggered by smart contract execution) for a contract address " +
62
+ "from TronGrid indexed data. Supports pagination via limit + fingerprint. Default 20, max 200.",
63
+ inputSchema: {
64
+ address: z
65
+ .string()
66
+ .min(1)
67
+ .describe("Contract address (base58 T-address or hex 41-prefixed)"),
68
+ limit: z
69
+ .number()
70
+ .max(200)
71
+ .optional()
72
+ .describe("Max transactions per page (default 20, max 200)"),
73
+ fingerprint: z.string().optional().describe("Pagination token from previous response"),
74
+ onlyConfirmed: z.boolean().optional().describe("Only return confirmed transactions"),
75
+ onlyUnconfirmed: z.boolean().optional().describe("Only return unconfirmed transactions"),
76
+ orderBy: z.string().optional().describe("Sort field, e.g. 'block_timestamp,desc'"),
77
+ minTimestamp: z.number().optional().describe("Filter: minimum block timestamp (ms)"),
78
+ maxTimestamp: z.number().optional().describe("Filter: maximum block timestamp (ms)"),
79
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
80
+ },
81
+ annotations: {
82
+ title: "Get Contract Internal Transactions",
83
+ readOnlyHint: true,
84
+ destructiveHint: false,
85
+ idempotentHint: true,
86
+ openWorldHint: true,
87
+ },
88
+ }, async ({ address, limit, fingerprint, onlyConfirmed, onlyUnconfirmed, orderBy, minTimestamp, maxTimestamp, network = "mainnet", }) => {
89
+ try {
90
+ const result = await services.getContractInternalTransactions(address, {
91
+ limit,
92
+ fingerprint,
93
+ onlyConfirmed,
94
+ onlyUnconfirmed,
95
+ orderBy,
96
+ minTimestamp,
97
+ maxTimestamp,
98
+ }, network);
99
+ return {
100
+ content: [{ type: "text", text: services.helpers.formatJson(result) }],
101
+ };
102
+ }
103
+ catch (error) {
104
+ return {
105
+ content: [
106
+ {
107
+ type: "text",
108
+ text: `Error fetching contract internal transactions: ${error instanceof Error ? error.message : String(error)}`,
109
+ },
110
+ ],
111
+ isError: true,
112
+ };
113
+ }
114
+ });
115
+ registerTool("get_trc20_token_holders", {
116
+ description: "Get token holder list for a TRC20 contract from TronGrid indexed data. Returns " +
117
+ "holder addresses and their balances. Supports pagination via limit + fingerprint.",
118
+ inputSchema: {
119
+ address: z
120
+ .string()
121
+ .min(1)
122
+ .describe("TRC20 token contract address (base58 T-address or hex 41-prefixed)"),
123
+ limit: z
124
+ .number()
125
+ .max(200)
126
+ .optional()
127
+ .describe("Max holders per page (default 20, max 200)"),
128
+ fingerprint: z.string().optional().describe("Pagination token from previous response"),
129
+ orderBy: z.string().optional().describe("Sort field, e.g. 'balance,desc'"),
130
+ network: z.string().optional().describe("Network name. Defaults to mainnet."),
131
+ },
132
+ annotations: {
133
+ title: "Get TRC20 Token Holders",
134
+ readOnlyHint: true,
135
+ destructiveHint: false,
136
+ idempotentHint: true,
137
+ openWorldHint: true,
138
+ },
139
+ }, async ({ address, limit, fingerprint, orderBy, network = "mainnet" }) => {
140
+ try {
141
+ const result = await services.getTrc20TokenHolders(address, { limit, fingerprint, orderBy }, network);
142
+ return {
143
+ content: [{ type: "text", text: services.helpers.formatJson(result) }],
144
+ };
145
+ }
146
+ catch (error) {
147
+ return {
148
+ content: [
149
+ {
150
+ type: "text",
151
+ text: `Error fetching token holders: ${error instanceof Error ? error.message : String(error)}`,
152
+ },
153
+ ],
154
+ isError: true,
155
+ };
156
+ }
157
+ });
158
+ }
159
+ //# sourceMappingURL=contract-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-data.js","sourceRoot":"","sources":["../../../src/core/tools/contract-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RegisterToolFn } from "./types.js";
2
+ export declare function registerContractTools(registerTool: RegisterToolFn): void;