@quantulabs/8004-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.
Files changed (243) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/dist/chains/evm/index.d.ts +2 -0
  4. package/dist/chains/evm/index.d.ts.map +1 -0
  5. package/dist/chains/evm/index.js +3 -0
  6. package/dist/chains/evm/index.js.map +1 -0
  7. package/dist/chains/evm/provider.d.ts +48 -0
  8. package/dist/chains/evm/provider.d.ts.map +1 -0
  9. package/dist/chains/evm/provider.js +446 -0
  10. package/dist/chains/evm/provider.js.map +1 -0
  11. package/dist/chains/index.d.ts +3 -0
  12. package/dist/chains/index.d.ts.map +1 -0
  13. package/dist/chains/index.js +4 -0
  14. package/dist/chains/index.js.map +1 -0
  15. package/dist/chains/solana/data-source.d.ts +17 -0
  16. package/dist/chains/solana/data-source.d.ts.map +1 -0
  17. package/dist/chains/solana/data-source.js +65 -0
  18. package/dist/chains/solana/data-source.js.map +1 -0
  19. package/dist/chains/solana/index.d.ts +8 -0
  20. package/dist/chains/solana/index.d.ts.map +1 -0
  21. package/dist/chains/solana/index.js +9 -0
  22. package/dist/chains/solana/index.js.map +1 -0
  23. package/dist/chains/solana/parsers.d.ts +11 -0
  24. package/dist/chains/solana/parsers.d.ts.map +1 -0
  25. package/dist/chains/solana/parsers.js +94 -0
  26. package/dist/chains/solana/parsers.js.map +1 -0
  27. package/dist/chains/solana/provider.d.ts +33 -0
  28. package/dist/chains/solana/provider.d.ts.map +1 -0
  29. package/dist/chains/solana/provider.js +407 -0
  30. package/dist/chains/solana/provider.js.map +1 -0
  31. package/dist/chains/solana/state.d.ts +55 -0
  32. package/dist/chains/solana/state.d.ts.map +1 -0
  33. package/dist/chains/solana/state.js +162 -0
  34. package/dist/chains/solana/state.js.map +1 -0
  35. package/dist/chains/solana/tools/atom.d.ts +45 -0
  36. package/dist/chains/solana/tools/atom.d.ts.map +1 -0
  37. package/dist/chains/solana/tools/atom.js +115 -0
  38. package/dist/chains/solana/tools/atom.js.map +1 -0
  39. package/dist/chains/solana/tools/validation.d.ts +45 -0
  40. package/dist/chains/solana/tools/validation.d.ts.map +1 -0
  41. package/dist/chains/solana/tools/validation.js +212 -0
  42. package/dist/chains/solana/tools/validation.js.map +1 -0
  43. package/dist/chains/solana/tools/wallet.d.ts +45 -0
  44. package/dist/chains/solana/tools/wallet.d.ts.map +1 -0
  45. package/dist/chains/solana/tools/wallet.js +103 -0
  46. package/dist/chains/solana/tools/wallet.js.map +1 -0
  47. package/dist/config/defaults.d.ts +68 -0
  48. package/dist/config/defaults.d.ts.map +1 -0
  49. package/dist/config/defaults.js +247 -0
  50. package/dist/config/defaults.js.map +1 -0
  51. package/dist/config/env.d.ts +33 -0
  52. package/dist/config/env.d.ts.map +1 -0
  53. package/dist/config/env.js +42 -0
  54. package/dist/config/env.js.map +1 -0
  55. package/dist/config/index.d.ts +3 -0
  56. package/dist/config/index.d.ts.map +1 -0
  57. package/dist/config/index.js +3 -0
  58. package/dist/config/index.js.map +1 -0
  59. package/dist/core/cache/agent-cache.d.ts +36 -0
  60. package/dist/core/cache/agent-cache.d.ts.map +1 -0
  61. package/dist/core/cache/agent-cache.js +87 -0
  62. package/dist/core/cache/agent-cache.js.map +1 -0
  63. package/dist/core/cache/data-source.d.ts +31 -0
  64. package/dist/core/cache/data-source.d.ts.map +1 -0
  65. package/dist/core/cache/data-source.js +6 -0
  66. package/dist/core/cache/data-source.js.map +1 -0
  67. package/dist/core/cache/index.d.ts +7 -0
  68. package/dist/core/cache/index.d.ts.map +1 -0
  69. package/dist/core/cache/index.js +9 -0
  70. package/dist/core/cache/index.js.map +1 -0
  71. package/dist/core/cache/lazy-cache.d.ts +30 -0
  72. package/dist/core/cache/lazy-cache.d.ts.map +1 -0
  73. package/dist/core/cache/lazy-cache.js +79 -0
  74. package/dist/core/cache/lazy-cache.js.map +1 -0
  75. package/dist/core/cache/slim-store.d.ts +66 -0
  76. package/dist/core/cache/slim-store.d.ts.map +1 -0
  77. package/dist/core/cache/slim-store.js +285 -0
  78. package/dist/core/cache/slim-store.js.map +1 -0
  79. package/dist/core/cache/sqlite-store.d.ts +99 -0
  80. package/dist/core/cache/sqlite-store.d.ts.map +1 -0
  81. package/dist/core/cache/sqlite-store.js +470 -0
  82. package/dist/core/cache/sqlite-store.js.map +1 -0
  83. package/dist/core/cache/sync-manager.d.ts +38 -0
  84. package/dist/core/cache/sync-manager.d.ts.map +1 -0
  85. package/dist/core/cache/sync-manager.js +213 -0
  86. package/dist/core/cache/sync-manager.js.map +1 -0
  87. package/dist/core/errors/index.d.ts +2 -0
  88. package/dist/core/errors/index.d.ts.map +1 -0
  89. package/dist/core/errors/index.js +2 -0
  90. package/dist/core/errors/index.js.map +1 -0
  91. package/dist/core/errors/mcp-error.d.ts +39 -0
  92. package/dist/core/errors/mcp-error.d.ts.map +1 -0
  93. package/dist/core/errors/mcp-error.js +79 -0
  94. package/dist/core/errors/mcp-error.js.map +1 -0
  95. package/dist/core/interfaces/agent.d.ts +84 -0
  96. package/dist/core/interfaces/agent.d.ts.map +1 -0
  97. package/dist/core/interfaces/agent.js +40 -0
  98. package/dist/core/interfaces/agent.js.map +1 -0
  99. package/dist/core/interfaces/chain-provider.d.ts +50 -0
  100. package/dist/core/interfaces/chain-provider.d.ts.map +1 -0
  101. package/dist/core/interfaces/chain-provider.js +5 -0
  102. package/dist/core/interfaces/chain-provider.js.map +1 -0
  103. package/dist/core/interfaces/feedback.d.ts +46 -0
  104. package/dist/core/interfaces/feedback.d.ts.map +1 -0
  105. package/dist/core/interfaces/feedback.js +3 -0
  106. package/dist/core/interfaces/feedback.js.map +1 -0
  107. package/dist/core/interfaces/index.d.ts +6 -0
  108. package/dist/core/interfaces/index.d.ts.map +1 -0
  109. package/dist/core/interfaces/index.js +7 -0
  110. package/dist/core/interfaces/index.js.map +1 -0
  111. package/dist/core/interfaces/reputation.d.ts +47 -0
  112. package/dist/core/interfaces/reputation.d.ts.map +1 -0
  113. package/dist/core/interfaces/reputation.js +30 -0
  114. package/dist/core/interfaces/reputation.js.map +1 -0
  115. package/dist/core/interfaces/x402.d.ts +226 -0
  116. package/dist/core/interfaces/x402.d.ts.map +1 -0
  117. package/dist/core/interfaces/x402.js +120 -0
  118. package/dist/core/interfaces/x402.js.map +1 -0
  119. package/dist/core/parsers/common.d.ts +31 -0
  120. package/dist/core/parsers/common.d.ts.map +1 -0
  121. package/dist/core/parsers/common.js +185 -0
  122. package/dist/core/parsers/common.js.map +1 -0
  123. package/dist/core/parsers/index.d.ts +2 -0
  124. package/dist/core/parsers/index.d.ts.map +1 -0
  125. package/dist/core/parsers/index.js +2 -0
  126. package/dist/core/parsers/index.js.map +1 -0
  127. package/dist/core/registry/chain-registry.d.ts +26 -0
  128. package/dist/core/registry/chain-registry.d.ts.map +1 -0
  129. package/dist/core/registry/chain-registry.js +141 -0
  130. package/dist/core/registry/chain-registry.js.map +1 -0
  131. package/dist/core/registry/index.d.ts +3 -0
  132. package/dist/core/registry/index.d.ts.map +1 -0
  133. package/dist/core/registry/index.js +3 -0
  134. package/dist/core/registry/index.js.map +1 -0
  135. package/dist/core/registry/tool-registry.d.ts +23 -0
  136. package/dist/core/registry/tool-registry.d.ts.map +1 -0
  137. package/dist/core/registry/tool-registry.js +66 -0
  138. package/dist/core/registry/tool-registry.js.map +1 -0
  139. package/dist/core/serializers/common.d.ts +20 -0
  140. package/dist/core/serializers/common.d.ts.map +1 -0
  141. package/dist/core/serializers/common.js +76 -0
  142. package/dist/core/serializers/common.js.map +1 -0
  143. package/dist/core/serializers/index.d.ts +2 -0
  144. package/dist/core/serializers/index.d.ts.map +1 -0
  145. package/dist/core/serializers/index.js +2 -0
  146. package/dist/core/serializers/index.js.map +1 -0
  147. package/dist/core/services/index.d.ts +3 -0
  148. package/dist/core/services/index.d.ts.map +1 -0
  149. package/dist/core/services/index.js +3 -0
  150. package/dist/core/services/index.js.map +1 -0
  151. package/dist/core/services/ipfs-service.d.ts +59 -0
  152. package/dist/core/services/ipfs-service.d.ts.map +1 -0
  153. package/dist/core/services/ipfs-service.js +84 -0
  154. package/dist/core/services/ipfs-service.js.map +1 -0
  155. package/dist/core/utils/tags.d.ts +38 -0
  156. package/dist/core/utils/tags.d.ts.map +1 -0
  157. package/dist/core/utils/tags.js +77 -0
  158. package/dist/core/utils/tags.js.map +1 -0
  159. package/dist/core/utils/value-encoding.d.ts +36 -0
  160. package/dist/core/utils/value-encoding.d.ts.map +1 -0
  161. package/dist/core/utils/value-encoding.js +196 -0
  162. package/dist/core/utils/value-encoding.js.map +1 -0
  163. package/dist/core/wallet/index.d.ts +2 -0
  164. package/dist/core/wallet/index.d.ts.map +1 -0
  165. package/dist/core/wallet/index.js +3 -0
  166. package/dist/core/wallet/index.js.map +1 -0
  167. package/dist/core/wallet/wallet-manager.d.ts +86 -0
  168. package/dist/core/wallet/wallet-manager.d.ts.map +1 -0
  169. package/dist/core/wallet/wallet-manager.js +783 -0
  170. package/dist/core/wallet/wallet-manager.js.map +1 -0
  171. package/dist/core/x402/index.d.ts +2 -0
  172. package/dist/core/x402/index.d.ts.map +1 -0
  173. package/dist/core/x402/index.js +3 -0
  174. package/dist/core/x402/index.js.map +1 -0
  175. package/dist/core/x402/proof-validator.d.ts +57 -0
  176. package/dist/core/x402/proof-validator.d.ts.map +1 -0
  177. package/dist/core/x402/proof-validator.js +103 -0
  178. package/dist/core/x402/proof-validator.js.map +1 -0
  179. package/dist/index.d.ts +3 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +135 -0
  182. package/dist/index.js.map +1 -0
  183. package/dist/state/global-state.d.ts +98 -0
  184. package/dist/state/global-state.d.ts.map +1 -0
  185. package/dist/state/global-state.js +258 -0
  186. package/dist/state/global-state.js.map +1 -0
  187. package/dist/tools/definitions.d.ts +10 -0
  188. package/dist/tools/definitions.d.ts.map +1 -0
  189. package/dist/tools/definitions.js +163 -0
  190. package/dist/tools/definitions.js.map +1 -0
  191. package/dist/tools/unified/agent.d.ts +5 -0
  192. package/dist/tools/unified/agent.d.ts.map +1 -0
  193. package/dist/tools/unified/agent.js +300 -0
  194. package/dist/tools/unified/agent.js.map +1 -0
  195. package/dist/tools/unified/cache.d.ts +5 -0
  196. package/dist/tools/unified/cache.d.ts.map +1 -0
  197. package/dist/tools/unified/cache.js +207 -0
  198. package/dist/tools/unified/cache.js.map +1 -0
  199. package/dist/tools/unified/collection.d.ts +5 -0
  200. package/dist/tools/unified/collection.d.ts.map +1 -0
  201. package/dist/tools/unified/collection.js +162 -0
  202. package/dist/tools/unified/collection.js.map +1 -0
  203. package/dist/tools/unified/config.d.ts +5 -0
  204. package/dist/tools/unified/config.d.ts.map +1 -0
  205. package/dist/tools/unified/config.js +217 -0
  206. package/dist/tools/unified/config.js.map +1 -0
  207. package/dist/tools/unified/crawler.d.ts +5 -0
  208. package/dist/tools/unified/crawler.d.ts.map +1 -0
  209. package/dist/tools/unified/crawler.js +212 -0
  210. package/dist/tools/unified/crawler.js.map +1 -0
  211. package/dist/tools/unified/feedback.d.ts +5 -0
  212. package/dist/tools/unified/feedback.d.ts.map +1 -0
  213. package/dist/tools/unified/feedback.js +274 -0
  214. package/dist/tools/unified/feedback.js.map +1 -0
  215. package/dist/tools/unified/ipfs.d.ts +5 -0
  216. package/dist/tools/unified/ipfs.d.ts.map +1 -0
  217. package/dist/tools/unified/ipfs.js +156 -0
  218. package/dist/tools/unified/ipfs.js.map +1 -0
  219. package/dist/tools/unified/oasf.d.ts +5 -0
  220. package/dist/tools/unified/oasf.d.ts.map +1 -0
  221. package/dist/tools/unified/oasf.js +167 -0
  222. package/dist/tools/unified/oasf.js.map +1 -0
  223. package/dist/tools/unified/registration.d.ts +5 -0
  224. package/dist/tools/unified/registration.d.ts.map +1 -0
  225. package/dist/tools/unified/registration.js +223 -0
  226. package/dist/tools/unified/registration.js.map +1 -0
  227. package/dist/tools/unified/reputation.d.ts +5 -0
  228. package/dist/tools/unified/reputation.d.ts.map +1 -0
  229. package/dist/tools/unified/reputation.js +121 -0
  230. package/dist/tools/unified/reputation.js.map +1 -0
  231. package/dist/tools/unified/wallet.d.ts +5 -0
  232. package/dist/tools/unified/wallet.d.ts.map +1 -0
  233. package/dist/tools/unified/wallet.js +434 -0
  234. package/dist/tools/unified/wallet.js.map +1 -0
  235. package/dist/tools/unified/write-operations.d.ts +5 -0
  236. package/dist/tools/unified/write-operations.d.ts.map +1 -0
  237. package/dist/tools/unified/write-operations.js +582 -0
  238. package/dist/tools/unified/write-operations.js.map +1 -0
  239. package/dist/tools/unified/x402.d.ts +5 -0
  240. package/dist/tools/unified/x402.d.ts.map +1 -0
  241. package/dist/tools/unified/x402.js +594 -0
  242. package/dist/tools/unified/x402.js.map +1 -0
  243. package/package.json +67 -0
@@ -0,0 +1,162 @@
1
+ // Solana runtime state management
2
+ import { Keypair } from '@solana/web3.js';
3
+ import { SolanaSDK, IndexerClient } from '8004-solana';
4
+ import { DEFAULT_SOLANA_CLUSTER, DEFAULT_INDEXER_URL, DEFAULT_INDEXER_API_KEY } from '../../config/defaults.js';
5
+ import { getWalletManager } from '../../core/wallet/index.js';
6
+ import { globalState } from '../../state/global-state.js';
7
+ // Create default config
8
+ export function createDefaultConfig() {
9
+ return {
10
+ cluster: DEFAULT_SOLANA_CLUSTER,
11
+ useIndexer: true,
12
+ indexerFallback: true,
13
+ forceOnChain: false,
14
+ indexerUrl: DEFAULT_INDEXER_URL,
15
+ indexerApiKey: DEFAULT_INDEXER_API_KEY,
16
+ };
17
+ }
18
+ // Parse keypair from environment or string
19
+ export function parseKeypairFromEnv(privateKey) {
20
+ if (!privateKey)
21
+ return undefined;
22
+ try {
23
+ const trimmed = privateKey.trim();
24
+ // JSON array format
25
+ if (trimmed.startsWith('[')) {
26
+ const arr = JSON.parse(trimmed);
27
+ return Keypair.fromSecretKey(Uint8Array.from(arr));
28
+ }
29
+ // Hex format
30
+ if (trimmed.startsWith('0x') || (trimmed.length === 128 && /^[0-9a-fA-F]+$/.test(trimmed))) {
31
+ const hex = trimmed.startsWith('0x') ? trimmed.slice(2) : trimmed;
32
+ return Keypair.fromSecretKey(Uint8Array.from(Buffer.from(hex, 'hex')));
33
+ }
34
+ // Base64 format
35
+ const decoded = Buffer.from(trimmed, 'base64');
36
+ if (decoded.length === 64) {
37
+ return Keypair.fromSecretKey(Uint8Array.from(decoded));
38
+ }
39
+ return undefined;
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ }
45
+ // Solana state manager (per-instance, not singleton)
46
+ export class SolanaStateManager {
47
+ _config;
48
+ _sdk;
49
+ _indexer;
50
+ _keypair;
51
+ constructor(config, privateKey) {
52
+ this._config = { ...createDefaultConfig(), ...config };
53
+ this._keypair = parseKeypairFromEnv(privateKey);
54
+ }
55
+ // Config management
56
+ get config() {
57
+ return this._config;
58
+ }
59
+ setConfig(updates) {
60
+ this._config = { ...this._config, ...updates };
61
+ // Invalidate cached instances
62
+ this._sdk = undefined;
63
+ this._indexer = undefined;
64
+ }
65
+ setIpfsConfig(config) {
66
+ // Delegate to global IPFS service for multi-chain compatibility
67
+ globalState.ipfs.configure(config);
68
+ }
69
+ // Keypair management - supports both env-based and wallet manager
70
+ get keypair() {
71
+ // Priority: 1. Env keypair, 2. Wallet manager (any unlocked Solana wallet)
72
+ if (this._keypair) {
73
+ return this._keypair;
74
+ }
75
+ // Check wallet manager for any unlocked Solana keypair
76
+ return getWalletManager().getAnyUnlockedSolanaKeypair() ?? undefined;
77
+ }
78
+ setKeypair(keypair) {
79
+ this._keypair = keypair;
80
+ // Invalidate SDK as signer changed
81
+ this._sdk = undefined;
82
+ }
83
+ getSignerInfo() {
84
+ const keypair = this.keypair;
85
+ if (!keypair) {
86
+ return { configured: false };
87
+ }
88
+ return {
89
+ configured: true,
90
+ publicKey: keypair.publicKey.toBase58(),
91
+ };
92
+ }
93
+ canWrite() {
94
+ return this.keypair !== undefined;
95
+ }
96
+ // Force SDK to rebuild (e.g., after wallet unlock)
97
+ invalidateSdk() {
98
+ this._sdk = undefined;
99
+ }
100
+ // SDK access (lazy initialization)
101
+ getSdk() {
102
+ if (!this._sdk) {
103
+ // Use this.keypair (includes wallet manager fallback) instead of this._keypair
104
+ this._sdk = new SolanaSDK({
105
+ cluster: this._config.cluster,
106
+ rpcUrl: this._config.rpcUrl,
107
+ signer: this.keypair,
108
+ indexerUrl: this._config.useIndexer ? this._config.indexerUrl : undefined,
109
+ indexerApiKey: this._config.indexerApiKey,
110
+ useIndexer: this._config.useIndexer,
111
+ indexerFallback: this._config.indexerFallback,
112
+ forceOnChain: this._config.forceOnChain,
113
+ });
114
+ }
115
+ return this._sdk;
116
+ }
117
+ // Indexer access
118
+ getIndexer() {
119
+ if (!this._config.useIndexer || !this._config.indexerUrl || !this._config.indexerApiKey) {
120
+ return undefined;
121
+ }
122
+ if (!this._indexer) {
123
+ this._indexer = new IndexerClient({
124
+ baseUrl: this._config.indexerUrl,
125
+ apiKey: this._config.indexerApiKey,
126
+ });
127
+ }
128
+ return this._indexer;
129
+ }
130
+ // IPFS access - delegates to global service for multi-chain compatibility
131
+ getIpfs() {
132
+ // Use global IPFS service
133
+ return globalState.ipfs.getClient();
134
+ }
135
+ hasIpfs() {
136
+ // Delegate to global IPFS service
137
+ return globalState.ipfs.isConfigured();
138
+ }
139
+ // Async initialization check
140
+ async isIndexerAvailable() {
141
+ const indexer = this.getIndexer();
142
+ if (!indexer)
143
+ return false;
144
+ try {
145
+ await indexer.getGlobalStats();
146
+ return true;
147
+ }
148
+ catch {
149
+ return false;
150
+ }
151
+ }
152
+ // Get snapshot for debugging
153
+ getSnapshot() {
154
+ return {
155
+ config: this._config,
156
+ signer: this.getSignerInfo(),
157
+ hasIpfs: this.hasIpfs(),
158
+ hasIndexer: this._config.useIndexer && !!this._config.indexerUrl,
159
+ };
160
+ }
161
+ }
162
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/chains/solana/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { SolanaStateManager } from '../state.js';
2
+ export declare function createAtomTools(getState: () => SolanaStateManager): {
3
+ tools: {
4
+ inputSchema: {
5
+ [x: string]: unknown;
6
+ type: "object";
7
+ properties?: {
8
+ [x: string]: object;
9
+ } | undefined;
10
+ required?: string[] | undefined;
11
+ };
12
+ name: string;
13
+ description?: string | undefined;
14
+ outputSchema?: {
15
+ [x: string]: unknown;
16
+ type: "object";
17
+ properties?: {
18
+ [x: string]: object;
19
+ } | undefined;
20
+ required?: string[] | undefined;
21
+ } | undefined;
22
+ annotations?: {
23
+ title?: string | undefined;
24
+ readOnlyHint?: boolean | undefined;
25
+ destructiveHint?: boolean | undefined;
26
+ idempotentHint?: boolean | undefined;
27
+ openWorldHint?: boolean | undefined;
28
+ } | undefined;
29
+ execution?: {
30
+ taskSupport?: "optional" | "required" | "forbidden" | undefined;
31
+ } | undefined;
32
+ _meta?: {
33
+ [x: string]: unknown;
34
+ } | undefined;
35
+ icons?: {
36
+ src: string;
37
+ mimeType?: string | undefined;
38
+ sizes?: string[] | undefined;
39
+ theme?: "light" | "dark" | undefined;
40
+ }[] | undefined;
41
+ title?: string | undefined;
42
+ }[];
43
+ handlers: Record<string, (args: unknown) => Promise<unknown>>;
44
+ };
45
+ //# sourceMappingURL=atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atom.d.ts","sourceRoot":"","sources":["../../../../src/chains/solana/tools/atom.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAE1B,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;EA+GnE"}
@@ -0,0 +1,115 @@
1
+ // Solana ATOM engine tools
2
+ import { PublicKey } from '@solana/web3.js';
3
+ import { getArgs, readString, readBoolean } from '../../../core/parsers/common.js';
4
+ import { successResponse } from '../../../core/serializers/common.js';
5
+ import { getTrustTierName } from '../../../core/interfaces/reputation.js';
6
+ export function createAtomTools(getState) {
7
+ const tools = [];
8
+ const handlers = {};
9
+ // solana_atom_stats_get
10
+ tools.push({
11
+ name: 'solana_atom_stats_get',
12
+ description: 'Get ATOM reputation engine statistics for a Solana agent including quality score, HyperLogLog cardinality, EMA scores, and historical data',
13
+ inputSchema: {
14
+ type: 'object',
15
+ properties: {
16
+ asset: {
17
+ type: 'string',
18
+ description: 'Agent asset public key (base58)',
19
+ },
20
+ },
21
+ required: ['asset'],
22
+ },
23
+ });
24
+ handlers['solana_atom_stats_get'] = async (args) => {
25
+ const input = getArgs(args);
26
+ const assetStr = readString(input, 'asset', true);
27
+ const asset = new PublicKey(assetStr);
28
+ const sdk = getState().getSdk();
29
+ const stats = await sdk.getAtomStats(asset);
30
+ return successResponse(stats);
31
+ };
32
+ // solana_atom_stats_initialize
33
+ tools.push({
34
+ name: 'solana_atom_stats_initialize',
35
+ description: 'Initialize ATOM stats account for a Solana agent (required before receiving feedback)',
36
+ inputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ asset: {
40
+ type: 'string',
41
+ description: 'Agent asset public key (base58)',
42
+ },
43
+ skipSend: {
44
+ type: 'boolean',
45
+ description: 'If true, returns unsigned transaction instead of sending',
46
+ },
47
+ },
48
+ required: ['asset'],
49
+ },
50
+ });
51
+ handlers['solana_atom_stats_initialize'] = async (args) => {
52
+ const input = getArgs(args);
53
+ const assetStr = readString(input, 'asset', true);
54
+ const asset = new PublicKey(assetStr);
55
+ const skipSend = readBoolean(input, 'skipSend') ?? false;
56
+ const sdk = getState().getSdk();
57
+ const result = await sdk.initializeAtomStats(asset, { skipSend });
58
+ return successResponse(result);
59
+ };
60
+ // solana_trust_tier_get
61
+ tools.push({
62
+ name: 'solana_trust_tier_get',
63
+ description: 'Get trust tier (0-4: Unrated, Bronze, Silver, Gold, Platinum) for a Solana agent',
64
+ inputSchema: {
65
+ type: 'object',
66
+ properties: {
67
+ asset: {
68
+ type: 'string',
69
+ description: 'Agent asset public key (base58)',
70
+ },
71
+ },
72
+ required: ['asset'],
73
+ },
74
+ });
75
+ handlers['solana_trust_tier_get'] = async (args) => {
76
+ const input = getArgs(args);
77
+ const assetStr = readString(input, 'asset', true);
78
+ const asset = new PublicKey(assetStr);
79
+ const sdk = getState().getSdk();
80
+ const stats = await sdk.getAtomStats(asset);
81
+ if (!stats) {
82
+ return successResponse({ trustTier: 0, trustTierName: 'Unrated', qualityScore: 0 });
83
+ }
84
+ return successResponse({
85
+ trustTier: stats.trust_tier,
86
+ trustTierName: getTrustTierName(stats.trust_tier),
87
+ qualityScore: stats.quality_score,
88
+ });
89
+ };
90
+ // solana_enriched_summary_get
91
+ tools.push({
92
+ name: 'solana_enriched_summary_get',
93
+ description: 'Get enriched reputation summary combining ATOM metrics with feedback statistics',
94
+ inputSchema: {
95
+ type: 'object',
96
+ properties: {
97
+ asset: {
98
+ type: 'string',
99
+ description: 'Agent asset public key (base58)',
100
+ },
101
+ },
102
+ required: ['asset'],
103
+ },
104
+ });
105
+ handlers['solana_enriched_summary_get'] = async (args) => {
106
+ const input = getArgs(args);
107
+ const assetStr = readString(input, 'asset', true);
108
+ const asset = new PublicKey(assetStr);
109
+ const sdk = getState().getSdk();
110
+ const summary = await sdk.getEnrichedSummary(asset);
111
+ return successResponse(summary);
112
+ };
113
+ return { tools, handlers };
114
+ }
115
+ //# sourceMappingURL=atom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atom.js","sourceRoot":"","sources":["../../../../src/chains/solana/tools/atom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { SolanaStateManager } from '../state.js';
2
+ export declare function createValidationTools(getState: () => SolanaStateManager): {
3
+ tools: {
4
+ inputSchema: {
5
+ [x: string]: unknown;
6
+ type: "object";
7
+ properties?: {
8
+ [x: string]: object;
9
+ } | undefined;
10
+ required?: string[] | undefined;
11
+ };
12
+ name: string;
13
+ description?: string | undefined;
14
+ outputSchema?: {
15
+ [x: string]: unknown;
16
+ type: "object";
17
+ properties?: {
18
+ [x: string]: object;
19
+ } | undefined;
20
+ required?: string[] | undefined;
21
+ } | undefined;
22
+ annotations?: {
23
+ title?: string | undefined;
24
+ readOnlyHint?: boolean | undefined;
25
+ destructiveHint?: boolean | undefined;
26
+ idempotentHint?: boolean | undefined;
27
+ openWorldHint?: boolean | undefined;
28
+ } | undefined;
29
+ execution?: {
30
+ taskSupport?: "optional" | "required" | "forbidden" | undefined;
31
+ } | undefined;
32
+ _meta?: {
33
+ [x: string]: unknown;
34
+ } | undefined;
35
+ icons?: {
36
+ src: string;
37
+ mimeType?: string | undefined;
38
+ sizes?: string[] | undefined;
39
+ theme?: "light" | "dark" | undefined;
40
+ }[] | undefined;
41
+ title?: string | undefined;
42
+ }[];
43
+ handlers: Record<string, (args: unknown) => Promise<unknown>>;
44
+ };
45
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/chains/solana/tools/validation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAEhC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;EAkNnE"}
@@ -0,0 +1,212 @@
1
+ // Solana validation tools
2
+ import { PublicKey } from '@solana/web3.js';
3
+ import { getArgs, readString, readNumber, readBoolean, parseBuffer } from '../../../core/parsers/common.js';
4
+ import { successResponse } from '../../../core/serializers/common.js';
5
+ export function createValidationTools(getState) {
6
+ const tools = [];
7
+ const handlers = {};
8
+ // solana_validation_request
9
+ tools.push({
10
+ name: 'solana_validation_request',
11
+ description: 'Request third-party validation for a Solana agent',
12
+ inputSchema: {
13
+ type: 'object',
14
+ properties: {
15
+ asset: {
16
+ type: 'string',
17
+ description: 'Agent asset public key (base58)',
18
+ },
19
+ validator: {
20
+ type: 'string',
21
+ description: 'Validator public key (base58)',
22
+ },
23
+ nonce: {
24
+ type: 'number',
25
+ description: 'Validation request nonce',
26
+ },
27
+ requestUri: {
28
+ type: 'string',
29
+ description: 'Request URI (IPFS/Arweave)',
30
+ },
31
+ requestHash: {
32
+ type: 'string',
33
+ description: 'Request hash (base64 or hex, 32 bytes)',
34
+ },
35
+ skipSend: {
36
+ type: 'boolean',
37
+ description: 'If true, returns unsigned transaction',
38
+ },
39
+ },
40
+ required: ['asset', 'validator', 'nonce', 'requestUri', 'requestHash'],
41
+ },
42
+ });
43
+ handlers['solana_validation_request'] = async (args) => {
44
+ const input = getArgs(args);
45
+ const assetStr = readString(input, 'asset', true);
46
+ const validatorStr = readString(input, 'validator', true);
47
+ const nonce = readNumber(input, 'nonce', true);
48
+ const requestUri = readString(input, 'requestUri', true);
49
+ const requestHashStr = readString(input, 'requestHash', true);
50
+ const requestHash = parseBuffer(requestHashStr, 'requestHash');
51
+ const skipSend = readBoolean(input, 'skipSend') ?? false;
52
+ const asset = new PublicKey(assetStr);
53
+ const validator = new PublicKey(validatorStr);
54
+ const sdk = getState().getSdk();
55
+ const result = await sdk.requestValidation(asset, validator, requestUri, { nonce, requestHash, skipSend });
56
+ return successResponse(result);
57
+ };
58
+ // solana_validation_respond
59
+ tools.push({
60
+ name: 'solana_validation_respond',
61
+ description: 'Respond to a validation request (as validator)',
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ asset: {
66
+ type: 'string',
67
+ description: 'Agent asset public key (base58)',
68
+ },
69
+ nonce: {
70
+ type: 'number',
71
+ description: 'Validation request nonce',
72
+ },
73
+ response: {
74
+ type: 'number',
75
+ description: 'Response score (0-100)',
76
+ },
77
+ responseUri: {
78
+ type: 'string',
79
+ description: 'Response URI (IPFS/Arweave)',
80
+ },
81
+ responseHash: {
82
+ type: 'string',
83
+ description: 'Response hash (base64 or hex, 32 bytes)',
84
+ },
85
+ tag: {
86
+ type: 'string',
87
+ description: 'Response tag (optional, max 32 bytes)',
88
+ },
89
+ skipSend: {
90
+ type: 'boolean',
91
+ description: 'If true, returns unsigned transaction',
92
+ },
93
+ },
94
+ required: ['asset', 'nonce', 'response', 'responseUri', 'responseHash'],
95
+ },
96
+ });
97
+ handlers['solana_validation_respond'] = async (args) => {
98
+ const input = getArgs(args);
99
+ const assetStr = readString(input, 'asset', true);
100
+ const nonce = readNumber(input, 'nonce', true);
101
+ const response = readNumber(input, 'response', true);
102
+ const responseUri = readString(input, 'responseUri', true);
103
+ const responseHashStr = readString(input, 'responseHash', true);
104
+ const responseHash = parseBuffer(responseHashStr, 'responseHash');
105
+ const tag = readString(input, 'tag');
106
+ const skipSend = readBoolean(input, 'skipSend') ?? false;
107
+ const asset = new PublicKey(assetStr);
108
+ const sdk = getState().getSdk();
109
+ const result = await sdk.respondToValidation(asset, nonce, response, responseUri, { responseHash, tag, skipSend });
110
+ return successResponse(result);
111
+ };
112
+ // solana_validation_read
113
+ tools.push({
114
+ name: 'solana_validation_read',
115
+ description: 'Read validation request details',
116
+ inputSchema: {
117
+ type: 'object',
118
+ properties: {
119
+ asset: {
120
+ type: 'string',
121
+ description: 'Agent asset public key (base58)',
122
+ },
123
+ validator: {
124
+ type: 'string',
125
+ description: 'Validator public key (base58)',
126
+ },
127
+ nonce: {
128
+ type: 'number',
129
+ description: 'Validation request nonce',
130
+ },
131
+ },
132
+ required: ['asset', 'validator', 'nonce'],
133
+ },
134
+ });
135
+ handlers['solana_validation_read'] = async (args) => {
136
+ const input = getArgs(args);
137
+ const assetStr = readString(input, 'asset', true);
138
+ const validatorStr = readString(input, 'validator', true);
139
+ const nonce = readNumber(input, 'nonce', true);
140
+ const asset = new PublicKey(assetStr);
141
+ const validator = new PublicKey(validatorStr);
142
+ const sdk = getState().getSdk();
143
+ const validation = await sdk.readValidation(asset, validator, nonce);
144
+ return successResponse(validation);
145
+ };
146
+ // solana_validation_wait
147
+ tools.push({
148
+ name: 'solana_validation_wait',
149
+ description: 'Wait for validation response with retry logic',
150
+ inputSchema: {
151
+ type: 'object',
152
+ properties: {
153
+ asset: {
154
+ type: 'string',
155
+ description: 'Agent asset public key (base58)',
156
+ },
157
+ validator: {
158
+ type: 'string',
159
+ description: 'Validator public key (base58)',
160
+ },
161
+ nonce: {
162
+ type: 'number',
163
+ description: 'Validation request nonce',
164
+ },
165
+ timeoutMs: {
166
+ type: 'number',
167
+ description: 'Timeout in milliseconds (default: 30000)',
168
+ },
169
+ },
170
+ required: ['asset', 'validator', 'nonce'],
171
+ },
172
+ });
173
+ handlers['solana_validation_wait'] = async (args) => {
174
+ const input = getArgs(args);
175
+ const assetStr = readString(input, 'asset', true);
176
+ const validatorStr = readString(input, 'validator', true);
177
+ const nonce = readNumber(input, 'nonce', true);
178
+ const timeoutMs = readNumber(input, 'timeoutMs') ?? 30000;
179
+ const asset = new PublicKey(assetStr);
180
+ const validator = new PublicKey(validatorStr);
181
+ const sdk = getState().getSdk();
182
+ const result = await sdk.waitForValidation(asset, validator, nonce, { timeout: timeoutMs });
183
+ return successResponse(result);
184
+ };
185
+ // solana_validation_pending_get
186
+ tools.push({
187
+ name: 'solana_validation_pending_get',
188
+ description: 'Get pending validation requests for a validator (requires indexer)',
189
+ inputSchema: {
190
+ type: 'object',
191
+ properties: {
192
+ validator: {
193
+ type: 'string',
194
+ description: 'Validator public key (base58)',
195
+ },
196
+ },
197
+ required: ['validator'],
198
+ },
199
+ });
200
+ handlers['solana_validation_pending_get'] = async (args) => {
201
+ const input = getArgs(args);
202
+ const validatorStr = readString(input, 'validator', true);
203
+ const indexer = getState().getIndexer();
204
+ if (!indexer) {
205
+ throw new Error('Indexer not available. Configure INDEXER_URL to use this feature.');
206
+ }
207
+ const result = await indexer.getPendingValidations(validatorStr);
208
+ return successResponse(result);
209
+ };
210
+ return { tools, handlers };
211
+ }
212
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/chains/solana/tools/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { SolanaStateManager } from '../state.js';
2
+ export declare function createWalletTools(getState: () => SolanaStateManager): {
3
+ tools: {
4
+ inputSchema: {
5
+ [x: string]: unknown;
6
+ type: "object";
7
+ properties?: {
8
+ [x: string]: object;
9
+ } | undefined;
10
+ required?: string[] | undefined;
11
+ };
12
+ name: string;
13
+ description?: string | undefined;
14
+ outputSchema?: {
15
+ [x: string]: unknown;
16
+ type: "object";
17
+ properties?: {
18
+ [x: string]: object;
19
+ } | undefined;
20
+ required?: string[] | undefined;
21
+ } | undefined;
22
+ annotations?: {
23
+ title?: string | undefined;
24
+ readOnlyHint?: boolean | undefined;
25
+ destructiveHint?: boolean | undefined;
26
+ idempotentHint?: boolean | undefined;
27
+ openWorldHint?: boolean | undefined;
28
+ } | undefined;
29
+ execution?: {
30
+ taskSupport?: "optional" | "required" | "forbidden" | undefined;
31
+ } | undefined;
32
+ _meta?: {
33
+ [x: string]: unknown;
34
+ } | undefined;
35
+ icons?: {
36
+ src: string;
37
+ mimeType?: string | undefined;
38
+ sizes?: string[] | undefined;
39
+ theme?: "light" | "dark" | undefined;
40
+ }[] | undefined;
41
+ title?: string | undefined;
42
+ }[];
43
+ handlers: Record<string, (args: unknown) => Promise<unknown>>;
44
+ };
45
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/chains/solana/tools/wallet.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAE5B,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;EAmGnE"}