@3rd-eye-labs/openmm 0.1.1 → 0.1.3

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 (268) hide show
  1. package/dist/cli/cli.js +4 -0
  2. package/dist/cli/cli.js.map +1 -1
  3. package/dist/cli/commands/ohlcv.d.ts +3 -0
  4. package/dist/cli/commands/ohlcv.d.ts.map +1 -0
  5. package/dist/cli/commands/ohlcv.js +115 -0
  6. package/dist/cli/commands/ohlcv.js.map +1 -0
  7. package/dist/cli/commands/wallet.d.ts +7 -0
  8. package/dist/cli/commands/wallet.d.ts.map +1 -0
  9. package/dist/cli/commands/wallet.js +271 -0
  10. package/dist/cli/commands/wallet.js.map +1 -0
  11. package/dist/core/exchange/base-exchange-connector.d.ts +2 -1
  12. package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -1
  13. package/dist/core/exchange/base-exchange-connector.js.map +1 -1
  14. package/dist/exchanges/bitget/bitget-connector.d.ts +11 -1
  15. package/dist/exchanges/bitget/bitget-connector.d.ts.map +1 -1
  16. package/dist/exchanges/bitget/bitget-connector.js +52 -0
  17. package/dist/exchanges/bitget/bitget-connector.js.map +1 -1
  18. package/dist/exchanges/gateio/gateio-connector.d.ts +11 -1
  19. package/dist/exchanges/gateio/gateio-connector.d.ts.map +1 -1
  20. package/dist/exchanges/gateio/gateio-connector.js +54 -0
  21. package/dist/exchanges/gateio/gateio-connector.js.map +1 -1
  22. package/dist/exchanges/kraken/kraken-connector.d.ts +6 -1
  23. package/dist/exchanges/kraken/kraken-connector.d.ts.map +1 -1
  24. package/dist/exchanges/kraken/kraken-connector.js +44 -0
  25. package/dist/exchanges/kraken/kraken-connector.js.map +1 -1
  26. package/dist/exchanges/mexc/mexc-auth.d.ts +1 -0
  27. package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -1
  28. package/dist/exchanges/mexc/mexc-auth.js +4 -1
  29. package/dist/exchanges/mexc/mexc-auth.js.map +1 -1
  30. package/dist/exchanges/mexc/mexc-connector.d.ts +6 -1
  31. package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -1
  32. package/dist/exchanges/mexc/mexc-connector.js +37 -0
  33. package/dist/exchanges/mexc/mexc-connector.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +25 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/types/market.d.ts +15 -0
  39. package/dist/types/market.d.ts.map +1 -1
  40. package/dist/x402/crypto.d.ts +79 -0
  41. package/dist/x402/crypto.d.ts.map +1 -0
  42. package/dist/x402/crypto.js +300 -0
  43. package/dist/x402/crypto.js.map +1 -0
  44. package/dist/x402/evm.d.ts +41 -0
  45. package/dist/x402/evm.d.ts.map +1 -0
  46. package/dist/x402/evm.js +229 -0
  47. package/dist/x402/evm.js.map +1 -0
  48. package/dist/x402/handler.d.ts +53 -0
  49. package/dist/x402/handler.d.ts.map +1 -0
  50. package/dist/x402/handler.js +233 -0
  51. package/dist/x402/handler.js.map +1 -0
  52. package/dist/x402/index.d.ts +29 -0
  53. package/dist/x402/index.d.ts.map +1 -0
  54. package/dist/x402/index.js +67 -0
  55. package/dist/x402/index.js.map +1 -0
  56. package/dist/x402/types.d.ts +185 -0
  57. package/dist/x402/types.d.ts.map +1 -0
  58. package/dist/x402/types.js +7 -0
  59. package/dist/x402/types.js.map +1 -0
  60. package/dist/x402/wallet.d.ts +65 -0
  61. package/dist/x402/wallet.d.ts.map +1 -0
  62. package/dist/x402/wallet.js +282 -0
  63. package/dist/x402/wallet.js.map +1 -0
  64. package/package.json +1 -1
  65. package/dist/cli/commands/grid.d.ts +0 -3
  66. package/dist/cli/commands/grid.d.ts.map +0 -1
  67. package/dist/cli/commands/grid.js +0 -103
  68. package/dist/cli/commands/grid.js.map +0 -1
  69. package/dist/cli/commands/multi-trade.d.ts +0 -3
  70. package/dist/cli/commands/multi-trade.d.ts.map +0 -1
  71. package/dist/cli/commands/multi-trade.js +0 -175
  72. package/dist/cli/commands/multi-trade.js.map +0 -1
  73. package/dist/cli/pool-discovery.d.ts +0 -56
  74. package/dist/cli/pool-discovery.d.ts.map +0 -1
  75. package/dist/cli/pool-discovery.js +0 -283
  76. package/dist/cli/pool-discovery.js.map +0 -1
  77. package/dist/core/price-aggregation/price-cache.d.ts +0 -55
  78. package/dist/core/price-aggregation/price-cache.d.ts.map +0 -1
  79. package/dist/core/price-aggregation/price-cache.js +0 -152
  80. package/dist/core/price-aggregation/price-cache.js.map +0 -1
  81. package/dist/examples/mexc-connector-comprehensive-test.d.ts +0 -15
  82. package/dist/examples/mexc-connector-comprehensive-test.d.ts.map +0 -1
  83. package/dist/examples/mexc-connector-comprehensive-test.js +0 -514
  84. package/dist/examples/mexc-connector-comprehensive-test.js.map +0 -1
  85. package/dist/examples/mexc-order-update-test.d.ts +0 -4
  86. package/dist/examples/mexc-order-update-test.d.ts.map +0 -1
  87. package/dist/examples/mexc-order-update-test.js +0 -186
  88. package/dist/examples/mexc-order-update-test.js.map +0 -1
  89. package/dist/examples/mexc-test.d.ts +0 -9
  90. package/dist/examples/mexc-test.d.ts.map +0 -1
  91. package/dist/examples/mexc-test.js +0 -218
  92. package/dist/examples/mexc-test.js.map +0 -1
  93. package/dist/examples/mexc-trades-debug.d.ts +0 -2
  94. package/dist/examples/mexc-trades-debug.d.ts.map +0 -1
  95. package/dist/examples/mexc-trades-debug.js +0 -101
  96. package/dist/examples/mexc-trades-debug.js.map +0 -1
  97. package/dist/examples/mexc-trades-subscription-debug.d.ts +0 -2
  98. package/dist/examples/mexc-trades-subscription-debug.d.ts.map +0 -1
  99. package/dist/examples/mexc-trades-subscription-debug.js +0 -150
  100. package/dist/examples/mexc-trades-subscription-debug.js.map +0 -1
  101. package/dist/examples/mexc-websocket-test.d.ts +0 -8
  102. package/dist/examples/mexc-websocket-test.d.ts.map +0 -1
  103. package/dist/examples/mexc-websocket-test.js +0 -115
  104. package/dist/examples/mexc-websocket-test.js.map +0 -1
  105. package/dist/examples/test-protobuf-status-detection.d.ts +0 -9
  106. package/dist/examples/test-protobuf-status-detection.d.ts.map +0 -1
  107. package/dist/examples/test-protobuf-status-detection.js +0 -83
  108. package/dist/examples/test-protobuf-status-detection.js.map +0 -1
  109. package/dist/exchanges/base-exchange-connector.d.ts +0 -33
  110. package/dist/exchanges/base-exchange-connector.d.ts.map +0 -1
  111. package/dist/exchanges/base-exchange-connector.js +0 -55
  112. package/dist/exchanges/base-exchange-connector.js.map +0 -1
  113. package/dist/exchanges/kraken/test-kraken-websocket.d.ts +0 -19
  114. package/dist/exchanges/kraken/test-kraken-websocket.d.ts.map +0 -1
  115. package/dist/exchanges/kraken/test-kraken-websocket.js +0 -413
  116. package/dist/exchanges/kraken/test-kraken-websocket.js.map +0 -1
  117. package/dist/mcp/resources/index.d.ts +0 -3
  118. package/dist/mcp/resources/index.d.ts.map +0 -1
  119. package/dist/mcp/resources/index.js +0 -11
  120. package/dist/mcp/resources/index.js.map +0 -1
  121. package/dist/mcp/server.d.ts +0 -4
  122. package/dist/mcp/server.d.ts.map +0 -1
  123. package/dist/mcp/server.js +0 -29
  124. package/dist/mcp/server.js.map +0 -1
  125. package/dist/mcp/tools/index.d.ts +0 -3
  126. package/dist/mcp/tools/index.d.ts.map +0 -1
  127. package/dist/mcp/tools/index.js +0 -12
  128. package/dist/mcp/tools/index.js.map +0 -1
  129. package/dist/tests/fixtures/test-helpers.d.ts +0 -5
  130. package/dist/tests/fixtures/test-helpers.d.ts.map +0 -1
  131. package/dist/tests/fixtures/test-helpers.js +0 -8
  132. package/dist/tests/fixtures/test-helpers.js.map +0 -1
  133. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts +0 -2
  134. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts.map +0 -1
  135. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js +0 -237
  136. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js.map +0 -1
  137. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts +0 -2
  138. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts.map +0 -1
  139. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js +0 -57
  140. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js.map +0 -1
  141. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts +0 -2
  142. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts.map +0 -1
  143. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js +0 -141
  144. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js.map +0 -1
  145. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts +0 -2
  146. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts.map +0 -1
  147. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js +0 -375
  148. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js.map +0 -1
  149. package/dist/tests/unit/cli/exchange-factory.test.d.ts +0 -2
  150. package/dist/tests/unit/cli/exchange-factory.test.d.ts.map +0 -1
  151. package/dist/tests/unit/cli/exchange-factory.test.js +0 -148
  152. package/dist/tests/unit/cli/exchange-factory.test.js.map +0 -1
  153. package/dist/tests/unit/config/environment.test.d.ts +0 -2
  154. package/dist/tests/unit/config/environment.test.d.ts.map +0 -1
  155. package/dist/tests/unit/config/environment.test.js +0 -158
  156. package/dist/tests/unit/config/environment.test.js.map +0 -1
  157. package/dist/tests/unit/config/launcher-config.test.d.ts +0 -2
  158. package/dist/tests/unit/config/launcher-config.test.d.ts.map +0 -1
  159. package/dist/tests/unit/config/launcher-config.test.js +0 -117
  160. package/dist/tests/unit/config/launcher-config.test.js.map +0 -1
  161. package/dist/tests/unit/config/price-aggregation.test.d.ts +0 -2
  162. package/dist/tests/unit/config/price-aggregation.test.d.ts.map +0 -1
  163. package/dist/tests/unit/config/price-aggregation.test.js +0 -144
  164. package/dist/tests/unit/config/price-aggregation.test.js.map +0 -1
  165. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts +0 -2
  166. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts.map +0 -1
  167. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js +0 -191
  168. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js.map +0 -1
  169. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts +0 -2
  170. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts.map +0 -1
  171. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js +0 -324
  172. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js.map +0 -1
  173. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts +0 -2
  174. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts.map +0 -1
  175. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js +0 -177
  176. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js.map +0 -1
  177. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts +0 -2
  178. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts.map +0 -1
  179. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js +0 -168
  180. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js.map +0 -1
  181. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts +0 -2
  182. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts.map +0 -1
  183. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js +0 -217
  184. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js.map +0 -1
  185. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts +0 -2
  186. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts.map +0 -1
  187. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js +0 -229
  188. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js.map +0 -1
  189. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts +0 -2
  190. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts.map +0 -1
  191. package/dist/tests/unit/core/risk-management/risk-manager.test.js +0 -194
  192. package/dist/tests/unit/core/risk-management/risk-manager.test.js.map +0 -1
  193. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts +0 -2
  194. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts.map +0 -1
  195. package/dist/tests/unit/core/strategy/base-strategy.test.js +0 -254
  196. package/dist/tests/unit/core/strategy/base-strategy.test.js.map +0 -1
  197. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts +0 -2
  198. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts.map +0 -1
  199. package/dist/tests/unit/core/strategy/strategy-factory.test.js +0 -213
  200. package/dist/tests/unit/core/strategy/strategy-factory.test.js.map +0 -1
  201. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts +0 -2
  202. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts.map +0 -1
  203. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js +0 -452
  204. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js.map +0 -1
  205. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts +0 -2
  206. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts.map +0 -1
  207. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js +0 -1419
  208. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js.map +0 -1
  209. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts +0 -2
  210. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts.map +0 -1
  211. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js +0 -435
  212. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js.map +0 -1
  213. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts +0 -2
  214. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts.map +0 -1
  215. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js +0 -314
  216. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js.map +0 -1
  217. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts +0 -2
  218. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts.map +0 -1
  219. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js +0 -178
  220. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js.map +0 -1
  221. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts +0 -2
  222. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts.map +0 -1
  223. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js +0 -502
  224. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js.map +0 -1
  225. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts +0 -2
  226. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts.map +0 -1
  227. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js +0 -317
  228. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js.map +0 -1
  229. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts +0 -2
  230. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts.map +0 -1
  231. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js +0 -843
  232. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js.map +0 -1
  233. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts +0 -2
  234. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts.map +0 -1
  235. package/dist/tests/unit/strategies/grid/grid-calculator.test.js +0 -67
  236. package/dist/tests/unit/strategies/grid/grid-calculator.test.js.map +0 -1
  237. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts +0 -2
  238. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts.map +0 -1
  239. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js +0 -211
  240. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js.map +0 -1
  241. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts +0 -2
  242. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts.map +0 -1
  243. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js +0 -197
  244. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js.map +0 -1
  245. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts +0 -2
  246. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts.map +0 -1
  247. package/dist/tests/unit/strategies/grid/grid-strategy.test.js +0 -429
  248. package/dist/tests/unit/strategies/grid/grid-strategy.test.js.map +0 -1
  249. package/dist/tests/unit/utils/logger.test.d.ts +0 -2
  250. package/dist/tests/unit/utils/logger.test.d.ts.map +0 -1
  251. package/dist/tests/unit/utils/logger.test.js +0 -260
  252. package/dist/tests/unit/utils/logger.test.js.map +0 -1
  253. package/dist/tests/unit/utils/symbol-utils.test.d.ts +0 -2
  254. package/dist/tests/unit/utils/symbol-utils.test.d.ts.map +0 -1
  255. package/dist/tests/unit/utils/symbol-utils.test.js +0 -178
  256. package/dist/tests/unit/utils/symbol-utils.test.js.map +0 -1
  257. package/dist/types/price-aggregation.d.ts +0 -31
  258. package/dist/types/price-aggregation.d.ts.map +0 -1
  259. package/dist/types/price-aggregation.js +0 -6
  260. package/dist/types/price-aggregation.js.map +0 -1
  261. package/dist/utils/crypto.d.ts +0 -15
  262. package/dist/utils/crypto.d.ts.map +0 -1
  263. package/dist/utils/crypto.js +0 -50
  264. package/dist/utils/crypto.js.map +0 -1
  265. package/dist/utils/validation.d.ts +0 -36
  266. package/dist/utils/validation.d.ts.map +0 -1
  267. package/dist/utils/validation.js +0 -174
  268. package/dist/utils/validation.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ /**
2
+ * OpenMM x402 Payment Types
3
+ * Type definitions for x402 payment protocol support.
4
+ */
5
+ /**
6
+ * Payment requirement from 402 response header.
7
+ */
8
+ export interface PaymentRequirement {
9
+ /** CAIP-2 network identifier (e.g., "eip155:8453" for Base) */
10
+ network: string;
11
+ /** Token contract address */
12
+ asset: string;
13
+ /** Amount in smallest unit (e.g., USDC with 6 decimals: 1000000 = $1) */
14
+ amount: string;
15
+ /** Recipient address */
16
+ payTo?: string;
17
+ pay_to?: string;
18
+ /** Additional requirements (e.g., EIP-712 domain info) */
19
+ extra?: {
20
+ name?: string;
21
+ version?: string;
22
+ [key: string]: unknown;
23
+ };
24
+ }
25
+ /**
26
+ * Parsed 402 response with payment requirements.
27
+ */
28
+ export interface PaymentRequiredResponse {
29
+ accepts: PaymentRequirement[];
30
+ }
31
+ /**
32
+ * EVM wallet keypair.
33
+ */
34
+ export interface EvmWallet {
35
+ address: string;
36
+ privateKey: string;
37
+ }
38
+ /**
39
+ * Solana wallet keypair.
40
+ */
41
+ export interface SolanaWallet {
42
+ address: string;
43
+ privateKey: string;
44
+ }
45
+ /**
46
+ * Encrypted key storage format.
47
+ */
48
+ export interface EncryptedKey {
49
+ /** Unencrypted storage */
50
+ data?: string;
51
+ encrypted?: boolean;
52
+ /** Encrypted storage */
53
+ cipher?: string;
54
+ kdf?: string;
55
+ kdfParams?: {
56
+ N: number;
57
+ r: number;
58
+ p: number;
59
+ };
60
+ salt?: string;
61
+ iv?: string;
62
+ authTag?: string;
63
+ ciphertext?: string;
64
+ }
65
+ /**
66
+ * Stored wallet format.
67
+ */
68
+ export interface StoredWallet {
69
+ name: string;
70
+ createdAt: string;
71
+ evm: {
72
+ address: string;
73
+ encrypted: EncryptedKey;
74
+ };
75
+ solana?: {
76
+ address: string;
77
+ encrypted: EncryptedKey;
78
+ };
79
+ }
80
+ /**
81
+ * Wallet configuration.
82
+ */
83
+ export interface WalletConfig {
84
+ defaultWallet: string | null;
85
+ passwordHash: {
86
+ salt: string;
87
+ hash: string;
88
+ } | null;
89
+ }
90
+ /**
91
+ * Exported wallet with decrypted keys.
92
+ */
93
+ export interface ExportedWallet {
94
+ name: string;
95
+ evm: {
96
+ address: string;
97
+ privateKey: string;
98
+ };
99
+ solana?: {
100
+ address: string;
101
+ privateKey: string;
102
+ };
103
+ }
104
+ /**
105
+ * Wallet list entry (public info only).
106
+ */
107
+ export interface WalletListEntry {
108
+ name: string;
109
+ evm: string | null;
110
+ solana: string | null;
111
+ createdAt: string;
112
+ isDefault: boolean;
113
+ }
114
+ /**
115
+ * EIP-712 domain for typed data signing.
116
+ */
117
+ export interface EIP712Domain {
118
+ name: string;
119
+ version: string;
120
+ chainId: number;
121
+ verifyingContract: string;
122
+ }
123
+ /**
124
+ * EIP-3009 TransferWithAuthorization message.
125
+ */
126
+ export interface TransferAuthorization {
127
+ from: string;
128
+ to: string;
129
+ value: bigint;
130
+ validAfter: bigint;
131
+ validBefore: bigint;
132
+ nonce: string;
133
+ }
134
+ /**
135
+ * ECDSA signature components.
136
+ */
137
+ export interface ECDSASignature {
138
+ r: Buffer;
139
+ s: Buffer;
140
+ v: number;
141
+ }
142
+ /**
143
+ * x402 payment payload for Payment-Signature header.
144
+ */
145
+ export interface X402PaymentPayload {
146
+ x402Version: number;
147
+ payload: {
148
+ authorization: {
149
+ from: string;
150
+ to: string;
151
+ value: string;
152
+ validAfter: string;
153
+ validBefore: string;
154
+ nonce: string;
155
+ };
156
+ signature: string;
157
+ };
158
+ accepted: PaymentRequirement;
159
+ resource?: {
160
+ url: string;
161
+ };
162
+ }
163
+ /**
164
+ * Options for x402 fetch wrapper.
165
+ */
166
+ export interface X402FetchOptions extends RequestInit {
167
+ /** Wallet name to use (defaults to default wallet) */
168
+ walletName?: string;
169
+ /** Wallet password (defaults to env var OPENMM_WALLET_PASSWORD) */
170
+ password?: string;
171
+ /** Skip auto-payment, just return 402 response */
172
+ skipPayment?: boolean;
173
+ /** Maximum retries after payment */
174
+ maxRetries?: number;
175
+ }
176
+ /**
177
+ * Result of checking x402 balance.
178
+ */
179
+ export interface X402BalanceResult {
180
+ network: string;
181
+ address: string;
182
+ balance: number;
183
+ symbol: string;
184
+ }
185
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/x402/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * OpenMM x402 Payment Types
4
+ * Type definitions for x402 payment protocol support.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/x402/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * OpenMM x402 Wallet Management
3
+ * Local key generation and storage for EVM and Solana chains.
4
+ */
5
+ import type { WalletConfig, ExportedWallet, WalletListEntry } from './types';
6
+ /**
7
+ * Resolve wallet password from environment variable.
8
+ */
9
+ export declare function resolvePassword(): string | null;
10
+ /**
11
+ * Get wallet configuration.
12
+ */
13
+ export declare function getWalletConfig(): WalletConfig;
14
+ /**
15
+ * List all wallets.
16
+ */
17
+ export declare function listWallets(): {
18
+ wallets: WalletListEntry[];
19
+ defaultWallet: string | null;
20
+ };
21
+ /**
22
+ * Create a new wallet pair (EVM + Solana).
23
+ */
24
+ export declare function createWallet(name: string, password: string | null): {
25
+ name: string;
26
+ evm: string;
27
+ solana: string;
28
+ isDefault: boolean;
29
+ };
30
+ /**
31
+ * Show wallet details (addresses only, no keys).
32
+ */
33
+ export declare function showWallet(name: string): {
34
+ name: string;
35
+ evm: string | null;
36
+ solana: string | null;
37
+ createdAt: string;
38
+ isDefault: boolean;
39
+ };
40
+ /**
41
+ * Export private keys for a wallet (requires password).
42
+ */
43
+ export declare function exportWallet(name: string, password: string | null): ExportedWallet;
44
+ /**
45
+ * Set the default wallet.
46
+ */
47
+ export declare function setDefaultWallet(name: string): {
48
+ defaultWallet: string;
49
+ };
50
+ /**
51
+ * Delete a wallet.
52
+ */
53
+ export declare function deleteWallet(name: string, password: string | null): {
54
+ deleted: string;
55
+ newDefault: string | null;
56
+ };
57
+ /**
58
+ * Get the default wallet's addresses without requiring password.
59
+ */
60
+ export declare function getDefaultWalletAddresses(): {
61
+ name: string;
62
+ evm: string | null;
63
+ solana: string | null;
64
+ } | null;
65
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/x402/wallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAEV,YAAY,EACZ,cAAc,EACd,eAAe,EAEhB,MAAM,SAAS,CAAC;AAuCjB;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAID;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAM9C;AAqCD;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAmB1F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB,CAsEA;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAgBA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CA0BlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAWxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA2BhD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,IAAI,CAcP"}
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ /**
3
+ * OpenMM x402 Wallet Management
4
+ * Local key generation and storage for EVM and Solana chains.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.resolvePassword = resolvePassword;
11
+ exports.getWalletConfig = getWalletConfig;
12
+ exports.listWallets = listWallets;
13
+ exports.createWallet = createWallet;
14
+ exports.showWallet = showWallet;
15
+ exports.exportWallet = exportWallet;
16
+ exports.setDefaultWallet = setDefaultWallet;
17
+ exports.deleteWallet = deleteWallet;
18
+ exports.getDefaultWalletAddresses = getDefaultWalletAddresses;
19
+ const fs_1 = __importDefault(require("fs"));
20
+ const path_1 = __importDefault(require("path"));
21
+ const crypto_1 = require("./crypto");
22
+ // ============= Constants =============
23
+ function getWalletsDir() {
24
+ const configDir = path_1.default.join(process.env.HOME || process.env.USERPROFILE || '', '.openmm');
25
+ return path_1.default.join(configDir, 'wallets');
26
+ }
27
+ function getWalletConfigPath() {
28
+ return path_1.default.join(getWalletsDir(), 'config.json');
29
+ }
30
+ const WALLET_NAME_RE = /^[a-zA-Z0-9_-]{1,64}$/;
31
+ // ============= Helpers =============
32
+ function ensureWalletsDir() {
33
+ const dir = getWalletsDir();
34
+ if (!fs_1.default.existsSync(dir)) {
35
+ fs_1.default.mkdirSync(dir, { mode: 0o700, recursive: true });
36
+ }
37
+ }
38
+ function validateWalletName(name) {
39
+ if (!name || !WALLET_NAME_RE.test(name)) {
40
+ throw new Error('Wallet name must be 1-64 characters: letters, numbers, hyphens, underscores only');
41
+ }
42
+ }
43
+ function getWalletFile(name) {
44
+ validateWalletName(name);
45
+ return path_1.default.join(getWalletsDir(), `${name}.json`);
46
+ }
47
+ // ============= Password Resolution =============
48
+ /**
49
+ * Resolve wallet password from environment variable.
50
+ */
51
+ function resolvePassword() {
52
+ return process.env.OPENMM_WALLET_PASSWORD || null;
53
+ }
54
+ // ============= Configuration =============
55
+ /**
56
+ * Get wallet configuration.
57
+ */
58
+ function getWalletConfig() {
59
+ const configPath = getWalletConfigPath();
60
+ if (!fs_1.default.existsSync(configPath)) {
61
+ return { defaultWallet: null, passwordHash: null };
62
+ }
63
+ return JSON.parse(fs_1.default.readFileSync(configPath, 'utf8'));
64
+ }
65
+ /**
66
+ * Save wallet configuration.
67
+ */
68
+ function saveWalletConfig(config) {
69
+ ensureWalletsDir();
70
+ fs_1.default.writeFileSync(getWalletConfigPath(), JSON.stringify(config, null, 2), { mode: 0o600 });
71
+ }
72
+ // ============= Wallet Operations =============
73
+ /**
74
+ * Generate an EVM wallet (secp256k1).
75
+ */
76
+ function generateEvmWallet() {
77
+ const privateKey = (0, crypto_1.generatePrivateKey)();
78
+ const address = (0, crypto_1.privateKeyToEvmAddress)(privateKey);
79
+ const privateKeyHex = privateKey.toString('hex');
80
+ // Zero sensitive buffer
81
+ privateKey.fill(0);
82
+ return { privateKey: privateKeyHex, address };
83
+ }
84
+ /**
85
+ * Generate a Solana wallet (Ed25519).
86
+ */
87
+ function generateSolanaWallet() {
88
+ const { privateKey, publicKey } = (0, crypto_1.generateSolanaKeypair)();
89
+ return {
90
+ privateKey: privateKey.toString('hex'),
91
+ address: (0, crypto_1.base58Encode)(publicKey),
92
+ };
93
+ }
94
+ /**
95
+ * List all wallets.
96
+ */
97
+ function listWallets() {
98
+ ensureWalletsDir();
99
+ const config = getWalletConfig();
100
+ const walletsDir = getWalletsDir();
101
+ const files = fs_1.default.readdirSync(walletsDir).filter(f => f.endsWith('.json') && f !== 'config.json');
102
+ const wallets = files.map(f => {
103
+ const data = JSON.parse(fs_1.default.readFileSync(path_1.default.join(walletsDir, f), 'utf8'));
104
+ return {
105
+ name: data.name,
106
+ evm: data.evm?.address || null,
107
+ solana: data.solana?.address || null,
108
+ createdAt: data.createdAt,
109
+ isDefault: data.name === config.defaultWallet,
110
+ };
111
+ });
112
+ return { wallets, defaultWallet: config.defaultWallet };
113
+ }
114
+ /**
115
+ * Create a new wallet pair (EVM + Solana).
116
+ */
117
+ function createWallet(name, password) {
118
+ ensureWalletsDir();
119
+ const config = getWalletConfig();
120
+ const walletFile = getWalletFile(name);
121
+ if (fs_1.default.existsSync(walletFile)) {
122
+ throw new Error(`Wallet "${name}" already exists`);
123
+ }
124
+ // Validate password requirements
125
+ if (password === null) {
126
+ // Passwordless mode: reject if existing wallets are encrypted
127
+ if (config.passwordHash) {
128
+ throw new Error('Existing wallets are password-protected. Set OPENMM_WALLET_PASSWORD.');
129
+ }
130
+ }
131
+ else {
132
+ // Encrypted mode
133
+ if (password.length < 12) {
134
+ throw new Error('Password must be at least 12 characters');
135
+ }
136
+ if (!config.passwordHash) {
137
+ // First encrypted wallet: reject if passwordless local wallets exist
138
+ const walletsDir = getWalletsDir();
139
+ const existingWallets = fs_1.default
140
+ .readdirSync(walletsDir)
141
+ .filter(f => f.endsWith('.json') && f !== 'config.json');
142
+ if (existingWallets.length > 0) {
143
+ throw new Error('Existing wallets are passwordless. Cannot mix encrypted and unencrypted wallets.');
144
+ }
145
+ config.passwordHash = (0, crypto_1.hashPassword)(password);
146
+ }
147
+ else if (!(0, crypto_1.verifyPassword)(password, config.passwordHash)) {
148
+ throw new Error('Incorrect password');
149
+ }
150
+ }
151
+ // Generate wallets
152
+ const evm = generateEvmWallet();
153
+ const solana = generateSolanaWallet();
154
+ const wallet = {
155
+ name,
156
+ createdAt: new Date().toISOString(),
157
+ evm: {
158
+ address: evm.address,
159
+ encrypted: (0, crypto_1.encryptKey)(evm.privateKey, password),
160
+ },
161
+ solana: {
162
+ address: solana.address,
163
+ encrypted: (0, crypto_1.encryptKey)(solana.privateKey, password),
164
+ },
165
+ };
166
+ fs_1.default.writeFileSync(walletFile, JSON.stringify(wallet, null, 2), { mode: 0o600 });
167
+ // Set as default if it's the first wallet
168
+ if (!config.defaultWallet) {
169
+ config.defaultWallet = name;
170
+ }
171
+ saveWalletConfig(config);
172
+ return {
173
+ name,
174
+ evm: evm.address,
175
+ solana: solana.address,
176
+ isDefault: config.defaultWallet === name,
177
+ };
178
+ }
179
+ /**
180
+ * Show wallet details (addresses only, no keys).
181
+ */
182
+ function showWallet(name) {
183
+ const walletFile = getWalletFile(name);
184
+ if (!fs_1.default.existsSync(walletFile)) {
185
+ throw new Error(`Wallet "${name}" not found`);
186
+ }
187
+ const data = JSON.parse(fs_1.default.readFileSync(walletFile, 'utf8'));
188
+ const config = getWalletConfig();
189
+ return {
190
+ name: data.name,
191
+ evm: data.evm?.address || null,
192
+ solana: data.solana?.address || null,
193
+ createdAt: data.createdAt,
194
+ isDefault: data.name === config.defaultWallet,
195
+ };
196
+ }
197
+ /**
198
+ * Export private keys for a wallet (requires password).
199
+ */
200
+ function exportWallet(name, password) {
201
+ const walletFile = getWalletFile(name);
202
+ if (!fs_1.default.existsSync(walletFile)) {
203
+ throw new Error(`Wallet "${name}" not found`);
204
+ }
205
+ const data = JSON.parse(fs_1.default.readFileSync(walletFile, 'utf8'));
206
+ const config = getWalletConfig();
207
+ if (config.passwordHash && !(0, crypto_1.verifyPassword)(password || '', config.passwordHash)) {
208
+ throw new Error('Incorrect password');
209
+ }
210
+ return {
211
+ name: data.name,
212
+ evm: {
213
+ address: data.evm?.address || '',
214
+ privateKey: data.evm ? (0, crypto_1.decryptKey)(data.evm.encrypted, password) : '',
215
+ },
216
+ solana: data.solana
217
+ ? {
218
+ address: data.solana.address,
219
+ privateKey: (0, crypto_1.decryptKey)(data.solana.encrypted, password),
220
+ }
221
+ : undefined,
222
+ };
223
+ }
224
+ /**
225
+ * Set the default wallet.
226
+ */
227
+ function setDefaultWallet(name) {
228
+ const walletFile = getWalletFile(name);
229
+ if (!fs_1.default.existsSync(walletFile)) {
230
+ throw new Error(`Wallet "${name}" not found`);
231
+ }
232
+ const config = getWalletConfig();
233
+ config.defaultWallet = name;
234
+ saveWalletConfig(config);
235
+ return { defaultWallet: name };
236
+ }
237
+ /**
238
+ * Delete a wallet.
239
+ */
240
+ function deleteWallet(name, password) {
241
+ const walletFile = getWalletFile(name);
242
+ if (!fs_1.default.existsSync(walletFile)) {
243
+ throw new Error(`Wallet "${name}" not found`);
244
+ }
245
+ const config = getWalletConfig();
246
+ if (config.passwordHash && !(0, crypto_1.verifyPassword)(password || '', config.passwordHash)) {
247
+ throw new Error('Incorrect password');
248
+ }
249
+ fs_1.default.unlinkSync(walletFile);
250
+ const remaining = fs_1.default
251
+ .readdirSync(getWalletsDir())
252
+ .filter(f => f.endsWith('.json') && f !== 'config.json');
253
+ if (remaining.length === 0) {
254
+ config.defaultWallet = null;
255
+ config.passwordHash = null;
256
+ }
257
+ else if (config.defaultWallet === name) {
258
+ config.defaultWallet = remaining[0].replace('.json', '');
259
+ }
260
+ saveWalletConfig(config);
261
+ return { deleted: name, newDefault: config.defaultWallet };
262
+ }
263
+ /**
264
+ * Get the default wallet's addresses without requiring password.
265
+ */
266
+ function getDefaultWalletAddresses() {
267
+ const config = getWalletConfig();
268
+ if (!config.defaultWallet)
269
+ return null;
270
+ try {
271
+ const wallet = showWallet(config.defaultWallet);
272
+ return {
273
+ name: wallet.name,
274
+ evm: wallet.evm,
275
+ solana: wallet.solana,
276
+ };
277
+ }
278
+ catch {
279
+ return null;
280
+ }
281
+ }
282
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/x402/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3rd-eye-labs/openmm",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Universal Market Making Toolkit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const gridCommand: Command;
3
- //# sourceMappingURL=grid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,WAAW,SAiFpB,CAAC"}