thecrownsk-bot 1.0.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 +268 -0
  3. package/dist/blockchain/chain.d.ts +49 -0
  4. package/dist/blockchain/chain.d.ts.map +1 -0
  5. package/dist/blockchain/chain.js +33 -0
  6. package/dist/blockchain/chain.js.map +1 -0
  7. package/dist/blockchain/client.d.ts +19 -0
  8. package/dist/blockchain/client.d.ts.map +1 -0
  9. package/dist/blockchain/client.js +121 -0
  10. package/dist/blockchain/client.js.map +1 -0
  11. package/dist/config/constants.d.ts +53 -0
  12. package/dist/config/constants.d.ts.map +1 -0
  13. package/dist/config/constants.js +61 -0
  14. package/dist/config/constants.js.map +1 -0
  15. package/dist/config/env.d.ts +38 -0
  16. package/dist/config/env.d.ts.map +1 -0
  17. package/dist/config/env.js +38 -0
  18. package/dist/config/env.js.map +1 -0
  19. package/dist/crown-king.d.ts +3 -0
  20. package/dist/crown-king.d.ts.map +1 -0
  21. package/dist/crown-king.js +1093 -0
  22. package/dist/crown-king.js.map +1 -0
  23. package/dist/crownking/agent-alliance.d.ts +49 -0
  24. package/dist/crownking/agent-alliance.d.ts.map +1 -0
  25. package/dist/crownking/agent-alliance.js +260 -0
  26. package/dist/crownking/agent-alliance.js.map +1 -0
  27. package/dist/crownking/agent.d.ts +77 -0
  28. package/dist/crownking/agent.d.ts.map +1 -0
  29. package/dist/crownking/agent.js +361 -0
  30. package/dist/crownking/agent.js.map +1 -0
  31. package/dist/crownking/auto-poster.d.ts +43 -0
  32. package/dist/crownking/auto-poster.d.ts.map +1 -0
  33. package/dist/crownking/auto-poster.js +179 -0
  34. package/dist/crownking/auto-poster.js.map +1 -0
  35. package/dist/crownking/contract.d.ts +62 -0
  36. package/dist/crownking/contract.d.ts.map +1 -0
  37. package/dist/crownking/contract.js +130 -0
  38. package/dist/crownking/contract.js.map +1 -0
  39. package/dist/crownking/copy-trader.d.ts +77 -0
  40. package/dist/crownking/copy-trader.d.ts.map +1 -0
  41. package/dist/crownking/copy-trader.js +265 -0
  42. package/dist/crownking/copy-trader.js.map +1 -0
  43. package/dist/crownking/index.d.ts +16 -0
  44. package/dist/crownking/index.d.ts.map +1 -0
  45. package/dist/crownking/index.js +18 -0
  46. package/dist/crownking/index.js.map +1 -0
  47. package/dist/crownking/leaderboard.d.ts +51 -0
  48. package/dist/crownking/leaderboard.d.ts.map +1 -0
  49. package/dist/crownking/leaderboard.js +213 -0
  50. package/dist/crownking/leaderboard.js.map +1 -0
  51. package/dist/crownking/live-scanner.d.ts +85 -0
  52. package/dist/crownking/live-scanner.d.ts.map +1 -0
  53. package/dist/crownking/live-scanner.js +345 -0
  54. package/dist/crownking/live-scanner.js.map +1 -0
  55. package/dist/crownking/momentum.d.ts +41 -0
  56. package/dist/crownking/momentum.d.ts.map +1 -0
  57. package/dist/crownking/momentum.js +251 -0
  58. package/dist/crownking/momentum.js.map +1 -0
  59. package/dist/crownking/personality.d.ts +77 -0
  60. package/dist/crownking/personality.d.ts.map +1 -0
  61. package/dist/crownking/personality.js +222 -0
  62. package/dist/crownking/personality.js.map +1 -0
  63. package/dist/crownking/portfolio.d.ts +62 -0
  64. package/dist/crownking/portfolio.d.ts.map +1 -0
  65. package/dist/crownking/portfolio.js +183 -0
  66. package/dist/crownking/portfolio.js.map +1 -0
  67. package/dist/crownking/sniper.d.ts +68 -0
  68. package/dist/crownking/sniper.d.ts.map +1 -0
  69. package/dist/crownking/sniper.js +264 -0
  70. package/dist/crownking/sniper.js.map +1 -0
  71. package/dist/crownking/social-graph.d.ts +72 -0
  72. package/dist/crownking/social-graph.d.ts.map +1 -0
  73. package/dist/crownking/social-graph.js +219 -0
  74. package/dist/crownking/social-graph.js.map +1 -0
  75. package/dist/crownking/token-creator.d.ts +42 -0
  76. package/dist/crownking/token-creator.d.ts.map +1 -0
  77. package/dist/crownking/token-creator.js +159 -0
  78. package/dist/crownking/token-creator.js.map +1 -0
  79. package/dist/crownking/trading-signals.d.ts +56 -0
  80. package/dist/crownking/trading-signals.d.ts.map +1 -0
  81. package/dist/crownking/trading-signals.js +253 -0
  82. package/dist/crownking/trading-signals.js.map +1 -0
  83. package/dist/crownking/types.d.ts +3 -0
  84. package/dist/crownking/types.d.ts.map +1 -0
  85. package/dist/crownking/types.js +4 -0
  86. package/dist/crownking/types.js.map +1 -0
  87. package/dist/crownking/whale-tracker.d.ts +53 -0
  88. package/dist/crownking/whale-tracker.d.ts.map +1 -0
  89. package/dist/crownking/whale-tracker.js +188 -0
  90. package/dist/crownking/whale-tracker.js.map +1 -0
  91. package/dist/crownsk/agent-alliance.d.ts +49 -0
  92. package/dist/crownsk/agent-alliance.d.ts.map +1 -0
  93. package/dist/crownsk/agent-alliance.js +260 -0
  94. package/dist/crownsk/agent-alliance.js.map +1 -0
  95. package/dist/crownsk/agent.d.ts +77 -0
  96. package/dist/crownsk/agent.d.ts.map +1 -0
  97. package/dist/crownsk/agent.js +361 -0
  98. package/dist/crownsk/agent.js.map +1 -0
  99. package/dist/crownsk/auto-poster.d.ts +43 -0
  100. package/dist/crownsk/auto-poster.d.ts.map +1 -0
  101. package/dist/crownsk/auto-poster.js +179 -0
  102. package/dist/crownsk/auto-poster.js.map +1 -0
  103. package/dist/crownsk/contract.d.ts +62 -0
  104. package/dist/crownsk/contract.d.ts.map +1 -0
  105. package/dist/crownsk/contract.js +130 -0
  106. package/dist/crownsk/contract.js.map +1 -0
  107. package/dist/crownsk/copy-trader.d.ts +77 -0
  108. package/dist/crownsk/copy-trader.d.ts.map +1 -0
  109. package/dist/crownsk/copy-trader.js +265 -0
  110. package/dist/crownsk/copy-trader.js.map +1 -0
  111. package/dist/crownsk/index.d.ts +16 -0
  112. package/dist/crownsk/index.d.ts.map +1 -0
  113. package/dist/crownsk/index.js +18 -0
  114. package/dist/crownsk/index.js.map +1 -0
  115. package/dist/crownsk/leaderboard.d.ts +51 -0
  116. package/dist/crownsk/leaderboard.d.ts.map +1 -0
  117. package/dist/crownsk/leaderboard.js +213 -0
  118. package/dist/crownsk/leaderboard.js.map +1 -0
  119. package/dist/crownsk/live-scanner.d.ts +85 -0
  120. package/dist/crownsk/live-scanner.d.ts.map +1 -0
  121. package/dist/crownsk/live-scanner.js +345 -0
  122. package/dist/crownsk/live-scanner.js.map +1 -0
  123. package/dist/crownsk/momentum.d.ts +41 -0
  124. package/dist/crownsk/momentum.d.ts.map +1 -0
  125. package/dist/crownsk/momentum.js +251 -0
  126. package/dist/crownsk/momentum.js.map +1 -0
  127. package/dist/crownsk/personality.d.ts +77 -0
  128. package/dist/crownsk/personality.d.ts.map +1 -0
  129. package/dist/crownsk/personality.js +222 -0
  130. package/dist/crownsk/personality.js.map +1 -0
  131. package/dist/crownsk/portfolio.d.ts +62 -0
  132. package/dist/crownsk/portfolio.d.ts.map +1 -0
  133. package/dist/crownsk/portfolio.js +183 -0
  134. package/dist/crownsk/portfolio.js.map +1 -0
  135. package/dist/crownsk/sniper.d.ts +68 -0
  136. package/dist/crownsk/sniper.d.ts.map +1 -0
  137. package/dist/crownsk/sniper.js +264 -0
  138. package/dist/crownsk/sniper.js.map +1 -0
  139. package/dist/crownsk/social-graph.d.ts +72 -0
  140. package/dist/crownsk/social-graph.d.ts.map +1 -0
  141. package/dist/crownsk/social-graph.js +219 -0
  142. package/dist/crownsk/social-graph.js.map +1 -0
  143. package/dist/crownsk/trading-signals.d.ts +56 -0
  144. package/dist/crownsk/trading-signals.d.ts.map +1 -0
  145. package/dist/crownsk/trading-signals.js +253 -0
  146. package/dist/crownsk/trading-signals.js.map +1 -0
  147. package/dist/crownsk/types.d.ts +3 -0
  148. package/dist/crownsk/types.d.ts.map +1 -0
  149. package/dist/crownsk/types.js +4 -0
  150. package/dist/crownsk/types.js.map +1 -0
  151. package/dist/crownsk/whale-tracker.d.ts +53 -0
  152. package/dist/crownsk/whale-tracker.d.ts.map +1 -0
  153. package/dist/crownsk/whale-tracker.js +188 -0
  154. package/dist/crownsk/whale-tracker.js.map +1 -0
  155. package/dist/crownsk.d.ts +3 -0
  156. package/dist/crownsk.d.ts.map +1 -0
  157. package/dist/crownsk.js +1102 -0
  158. package/dist/crownsk.js.map +1 -0
  159. package/dist/index.d.ts +5 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +9 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/karma/agent.d.ts +81 -0
  164. package/dist/karma/agent.d.ts.map +1 -0
  165. package/dist/karma/agent.js +366 -0
  166. package/dist/karma/agent.js.map +1 -0
  167. package/dist/karma/contract.d.ts +62 -0
  168. package/dist/karma/contract.d.ts.map +1 -0
  169. package/dist/karma/contract.js +130 -0
  170. package/dist/karma/contract.js.map +1 -0
  171. package/dist/karma/index.d.ts +6 -0
  172. package/dist/karma/index.d.ts.map +1 -0
  173. package/dist/karma/index.js +7 -0
  174. package/dist/karma/index.js.map +1 -0
  175. package/dist/karma/live-scanner.d.ts +85 -0
  176. package/dist/karma/live-scanner.d.ts.map +1 -0
  177. package/dist/karma/live-scanner.js +345 -0
  178. package/dist/karma/live-scanner.js.map +1 -0
  179. package/dist/karma/social-graph.d.ts +72 -0
  180. package/dist/karma/social-graph.d.ts.map +1 -0
  181. package/dist/karma/social-graph.js +219 -0
  182. package/dist/karma/social-graph.js.map +1 -0
  183. package/dist/karma/trading-signals.d.ts +38 -0
  184. package/dist/karma/trading-signals.d.ts.map +1 -0
  185. package/dist/karma/trading-signals.js +291 -0
  186. package/dist/karma/trading-signals.js.map +1 -0
  187. package/dist/karma/types.d.ts +3 -0
  188. package/dist/karma/types.d.ts.map +1 -0
  189. package/dist/karma/types.js +4 -0
  190. package/dist/karma/types.js.map +1 -0
  191. package/dist/karma-king.d.ts +3 -0
  192. package/dist/karma-king.d.ts.map +1 -0
  193. package/dist/karma-king.js +580 -0
  194. package/dist/karma-king.js.map +1 -0
  195. package/dist/moltbook/client.d.ts +34 -0
  196. package/dist/moltbook/client.d.ts.map +1 -0
  197. package/dist/moltbook/client.js +280 -0
  198. package/dist/moltbook/client.js.map +1 -0
  199. package/dist/moltbook/index.d.ts +3 -0
  200. package/dist/moltbook/index.d.ts.map +1 -0
  201. package/dist/moltbook/index.js +4 -0
  202. package/dist/moltbook/index.js.map +1 -0
  203. package/dist/moltbook/types.d.ts +100 -0
  204. package/dist/moltbook/types.d.ts.map +1 -0
  205. package/dist/moltbook/types.js +3 -0
  206. package/dist/moltbook/types.js.map +1 -0
  207. package/dist/nadfun/abis.d.ts +403 -0
  208. package/dist/nadfun/abis.d.ts.map +1 -0
  209. package/dist/nadfun/abis.js +267 -0
  210. package/dist/nadfun/abis.js.map +1 -0
  211. package/dist/nadfun/client.d.ts +21 -0
  212. package/dist/nadfun/client.d.ts.map +1 -0
  213. package/dist/nadfun/client.js +349 -0
  214. package/dist/nadfun/client.js.map +1 -0
  215. package/dist/nadfun/index.d.ts +5 -0
  216. package/dist/nadfun/index.d.ts.map +1 -0
  217. package/dist/nadfun/index.js +5 -0
  218. package/dist/nadfun/index.js.map +1 -0
  219. package/dist/nadfun/types.d.ts +72 -0
  220. package/dist/nadfun/types.d.ts.map +1 -0
  221. package/dist/nadfun/types.js +2 -0
  222. package/dist/nadfun/types.js.map +1 -0
  223. package/dist/nadfun/websocket.d.ts +18 -0
  224. package/dist/nadfun/websocket.d.ts.map +1 -0
  225. package/dist/nadfun/websocket.js +110 -0
  226. package/dist/nadfun/websocket.js.map +1 -0
  227. package/dist/utils/format.d.ts +9 -0
  228. package/dist/utils/format.d.ts.map +1 -0
  229. package/dist/utils/format.js +39 -0
  230. package/dist/utils/format.js.map +1 -0
  231. package/dist/utils/index.d.ts +3 -0
  232. package/dist/utils/index.d.ts.map +1 -0
  233. package/dist/utils/index.js +3 -0
  234. package/dist/utils/index.js.map +1 -0
  235. package/dist/utils/logger.d.ts +3 -0
  236. package/dist/utils/logger.d.ts.map +1 -0
  237. package/dist/utils/logger.js +81 -0
  238. package/dist/utils/logger.js.map +1 -0
  239. package/dist/wallet/manager.d.ts +76 -0
  240. package/dist/wallet/manager.d.ts.map +1 -0
  241. package/dist/wallet/manager.js +300 -0
  242. package/dist/wallet/manager.js.map +1 -0
  243. package/package.json +61 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 TheCrownSK
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,268 @@
1
+ # 👑 TheCrownSK Trading Bot
2
+
3
+ **Autonomous AI Trading Agent for Monad Blockchain**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/thecrownsk-bot.svg)](https://www.npmjs.com/package/thecrownsk-bot)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ Built for **Moltiverse Hackathon 2026** | nad.fun Integration | Moltbook Social
9
+
10
+ ---
11
+
12
+ ## 🚀 Quick Install
13
+
14
+ ```bash
15
+ npm install -g thecrownsk-bot
16
+ ```
17
+
18
+ Or run directly with npx:
19
+ ```bash
20
+ npx thecrownsk-bot
21
+ ```
22
+
23
+ ---
24
+
25
+ ## ✨ Features
26
+
27
+ | Feature | Description |
28
+ |---------|-------------|
29
+ | 🐋 **Whale Tracking** | Follow smart money movements in real-time |
30
+ | 🎯 **Token Sniping** | Detect and snipe new token launches |
31
+ | 📋 **Copy Trading** | Automatically copy successful wallets |
32
+ | 📊 **Momentum Detection** | Price and volume momentum analysis |
33
+ | 🤖 **Auto-Posting** | Automated Moltbook social engagement |
34
+ | 🤝 **Agent Alliances** | Coordinate with other AI agents |
35
+ | 🏆 **Leaderboard** | Track your ranking vs other agents |
36
+ | 💼 **Portfolio Tracking** | P&L and trade history |
37
+ | 🔒 **Secure Wallet** | AES-256 encrypted private key storage |
38
+
39
+ ---
40
+
41
+ ## 📦 Installation
42
+
43
+ ### Option 1: NPM Global Install (Recommended)
44
+ ```bash
45
+ npm install -g thecrownsk-bot
46
+ thecrownsk
47
+ ```
48
+
49
+ ### Option 2: NPX (No Install)
50
+ ```bash
51
+ npx thecrownsk-bot
52
+ ```
53
+
54
+ ### Option 3: Clone Repository
55
+ ```bash
56
+ git clone https://github.com/soloking/thecrownsk-bot.git
57
+ cd thecrownsk-bot
58
+ npm install
59
+ npm run build
60
+ npm start
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 🔧 Setup Guide
66
+
67
+ ### Step 1: Start the Bot
68
+ ```bash
69
+ thecrownsk
70
+ ```
71
+
72
+ ### Step 2: Configure Your Wallet
73
+ ```
74
+ wallet set
75
+ ```
76
+ - Enter your Monad private key
77
+ - Create a secure password
78
+ - Your key is encrypted locally at `~/.thecrownsk/wallet.enc`
79
+
80
+ ### Step 3: Register on Moltbook
81
+ ```
82
+ register
83
+ ```
84
+ - Enter your agent name
85
+ - Save the **Claim URL** provided
86
+ - Tweet to verify ownership
87
+
88
+ ### Step 4: Start Trading
89
+ ```
90
+ start
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 📋 Commands Reference
96
+
97
+ ### 💰 Trading
98
+ | Command | Description |
99
+ |---------|-------------|
100
+ | `tokens` | View top tokens by market cap |
101
+ | `new` | View newest tokens on nad.fun |
102
+ | `analyze <token>` | Deep analysis of a token |
103
+ | `momentum <token>` | Price & volume momentum |
104
+ | `quote <token>` | Get price quotes |
105
+ | `buy <token> <amount>` | Buy tokens with MON |
106
+ | `sell <token> <amount>` | Sell tokens for MON |
107
+
108
+ ### 🎯 Sniping
109
+ | Command | Description |
110
+ |---------|-------------|
111
+ | `snipe scan` | Scan for new token launches |
112
+ | `snipe watch` | Start real-time token watcher |
113
+ | `snipe stop` | Stop token watcher |
114
+ | `snipe auto on/off` | Toggle auto-snipe |
115
+
116
+ ### 🐋 Whale Tracking
117
+ | Command | Description |
118
+ |---------|-------------|
119
+ | `whales` | Show top whales |
120
+ | `whales scan` | Scan for whale activity |
121
+ | `whales tokens` | Tokens whales are buying |
122
+
123
+ ### 📋 Copy Trading
124
+ | Command | Description |
125
+ |---------|-------------|
126
+ | `copy` | Copy trading status |
127
+ | `copy add <addr> <name>` | Add wallet to copy |
128
+ | `copy start` | Start copy trading |
129
+ | `copy stop` | Stop copy trading |
130
+
131
+ ### 👛 Wallet Management
132
+ | Command | Description |
133
+ |---------|-------------|
134
+ | `wallet` | Show current wallet |
135
+ | `wallet set` | Add/change private key |
136
+ | `wallet unlock` | Unlock saved wallet |
137
+ | `wallet remove` | Remove saved wallet |
138
+ | `wallet password` | Change password |
139
+ | `balance` | Check MON balance |
140
+
141
+ ### 🤖 Moltbook Social
142
+ | Command | Description |
143
+ |---------|-------------|
144
+ | `register` | Register agent on Moltbook |
145
+ | `me` | Your agent info |
146
+ | `feed` | View recent feed |
147
+ | `post <submolt> <message>` | Create a post |
148
+ | `gm` | Post good morning |
149
+ | `gn` | Post good night |
150
+
151
+ ### 🤝 Alliances
152
+ | Command | Description |
153
+ |---------|-------------|
154
+ | `allies` | Alliance stats |
155
+ | `allies discover` | Find potential allies |
156
+ | `allies run` | Engage with allies |
157
+
158
+ ### 📊 Status & Analytics
159
+ | Command | Description |
160
+ |---------|-------------|
161
+ | `status` | Full bot status |
162
+ | `portfolio` | Portfolio summary |
163
+ | `pnl` | Profit & Loss stats |
164
+ | `history` | Trade history |
165
+ | `leaderboard` | Your ranking |
166
+ | `scan` | Scan for signals |
167
+ | `signals` | View current signals |
168
+
169
+ ### ⚙️ Control
170
+ | Command | Description |
171
+ |---------|-------------|
172
+ | `start` | Start autonomous mode |
173
+ | `stop` | Stop autonomous mode |
174
+ | `help` | Show all commands |
175
+ | `exit` | Exit the bot |
176
+
177
+ ---
178
+
179
+ ## 🔒 Security
180
+
181
+ Your private keys are protected with industry-standard encryption:
182
+
183
+ - **AES-256-GCM** encryption
184
+ - **PBKDF2** key derivation (100,000 iterations)
185
+ - **Secure file permissions** (owner-only)
186
+ - **Automatic log redaction** of sensitive data
187
+
188
+ Wallet storage: `~/.thecrownsk/wallet.enc`
189
+
190
+ ---
191
+
192
+ ## ⚙️ Environment Variables (Optional)
193
+
194
+ Create a `.env` file for custom configuration:
195
+
196
+ ```env
197
+ MONAD_RPC_URL=https://rpc.monad.xyz
198
+ MONAD_RPC_URL_BACKUP=https://rpc2.monad.xyz
199
+ LOG_LEVEL=info
200
+ AGENT_NAME=MyAgent
201
+ ```
202
+
203
+ ---
204
+
205
+ ## 🏗️ For Developers
206
+
207
+ ### Build from Source
208
+ ```bash
209
+ git clone https://github.com/soloking/thecrownsk-bot.git
210
+ cd thecrownsk-bot
211
+ npm install
212
+ npm run build
213
+ npm start
214
+ ```
215
+
216
+ ### Project Structure
217
+ ```
218
+ src/
219
+ ├── crownsk.ts # Main CLI entry point
220
+ ├── crownsk/ # Core trading modules
221
+ │ ├── agent.ts # Autonomous agent loop
222
+ │ ├── whale-tracker.ts # Whale tracking
223
+ │ ├── sniper.ts # Token sniping
224
+ │ ├── copy-trader.ts # Copy trading
225
+ │ ├── momentum.ts # Momentum analysis
226
+ │ ├── portfolio.ts # Portfolio tracking
227
+ │ └── ...
228
+ ├── wallet/ # Secure wallet management
229
+ ├── nadfun/ # nad.fun DEX integration
230
+ ├── moltbook/ # Moltbook API client
231
+ └── blockchain/ # Monad blockchain client
232
+ ```
233
+
234
+ ---
235
+
236
+ ## 🎯 Moltiverse Hackathon 2026
237
+
238
+ This bot was built for the Moltiverse Hackathon:
239
+
240
+ - **Track:** Agent + Token
241
+ - **Prize Pool:** $200K+
242
+ - **Dates:** Feb 2-18, 2026
243
+
244
+ ---
245
+
246
+ ## ⚠️ Disclaimer
247
+
248
+ This bot is for educational and experimental purposes. Cryptocurrency trading involves substantial risk of loss. Never invest more than you can afford to lose. This software is not financial advice.
249
+
250
+ ---
251
+
252
+ ## 🤝 Contributing
253
+
254
+ Contributions are welcome! Please feel free to submit a Pull Request.
255
+
256
+ ---
257
+
258
+ ## 📜 License
259
+
260
+ MIT License - see [LICENSE](LICENSE) for details.
261
+
262
+ ---
263
+
264
+ ## 👑 Created by TheCrownSK
265
+
266
+ *The crown sees all. Fortune favors the crowned.*
267
+
268
+ **Twitter:** [@lord_soloking](https://twitter.com/lord_soloking)
@@ -0,0 +1,49 @@
1
+ export declare const monad: {
2
+ blockExplorers: {
3
+ readonly default: {
4
+ readonly name: "MonadVision";
5
+ readonly url: "https://monadvision.com";
6
+ };
7
+ readonly monadScan: {
8
+ readonly name: "MonadScan";
9
+ readonly url: "https://monadscan.com";
10
+ };
11
+ };
12
+ blockTime?: number | undefined | undefined;
13
+ contracts: {
14
+ readonly multicall3: {
15
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
16
+ };
17
+ };
18
+ ensTlds?: readonly string[] | undefined;
19
+ id: 143;
20
+ name: "Monad";
21
+ nativeCurrency: {
22
+ readonly name: "MON";
23
+ readonly symbol: "MON";
24
+ readonly decimals: 18;
25
+ };
26
+ experimental_preconfirmationTime?: number | undefined | undefined;
27
+ rpcUrls: {
28
+ readonly default: {
29
+ readonly http: readonly ["https://rpc.monad.xyz"];
30
+ readonly webSocket: readonly ["wss://rpc.monad.xyz"];
31
+ };
32
+ };
33
+ sourceId?: number | undefined | undefined;
34
+ testnet?: boolean | undefined | undefined;
35
+ custom?: Record<string, unknown> | undefined;
36
+ extendSchema?: Record<string, unknown> | undefined;
37
+ fees?: import("viem").ChainFees<undefined> | undefined;
38
+ formatters?: undefined;
39
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
40
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
41
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
42
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
43
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
44
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
45
+ }] | undefined;
46
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
47
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
48
+ };
49
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/blockchain/chain.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BhB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { defineChain } from 'viem';
2
+ // Monad Mainnet Chain Definition
3
+ export const monad = defineChain({
4
+ id: 143,
5
+ name: 'Monad',
6
+ nativeCurrency: {
7
+ name: 'MON',
8
+ symbol: 'MON',
9
+ decimals: 18,
10
+ },
11
+ rpcUrls: {
12
+ default: {
13
+ http: ['https://rpc.monad.xyz'],
14
+ webSocket: ['wss://rpc.monad.xyz'],
15
+ },
16
+ },
17
+ blockExplorers: {
18
+ default: {
19
+ name: 'MonadVision',
20
+ url: 'https://monadvision.com',
21
+ },
22
+ monadScan: {
23
+ name: 'MonadScan',
24
+ url: 'https://monadscan.com',
25
+ },
26
+ },
27
+ contracts: {
28
+ multicall3: {
29
+ address: '0xcA11bde05977b3631167028862bE2a173976CA11',
30
+ },
31
+ },
32
+ });
33
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/blockchain/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,iCAAiC;AACjC,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE;KACb;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,SAAS,EAAE,CAAC,qBAAqB,CAAC;SACnC;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,yBAAyB;SAC/B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,uBAAuB;SAC7B;KACF;IACD,SAAS,EAAE;QACT,UAAU,EAAE;YACV,OAAO,EAAE,4CAA4C;SACtD;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type PublicClient, type WalletClient, type Transport, type Chain, type Account } from 'viem';
2
+ export declare function getPublicClient(): PublicClient<Transport, Chain>;
3
+ /**
4
+ * Reset wallet client (call after loading new wallet)
5
+ */
6
+ export declare function resetWalletClient(): void;
7
+ /**
8
+ * Get wallet client using the currently loaded wallet
9
+ */
10
+ export declare function getWalletClient(): WalletClient<Transport, Chain, Account>;
11
+ /**
12
+ * Check if wallet is available
13
+ */
14
+ export declare function hasWallet(): boolean;
15
+ export declare function getAccount(): Account;
16
+ export declare function getWebSocketClient(): PublicClient<Transport, Chain>;
17
+ export declare function getBalance(): Promise<bigint>;
18
+ export declare function waitForTransaction(hash: `0x${string}`): Promise<import("viem").TransactionReceipt>;
19
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/blockchain/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,OAAO,EAEb,MAAM,MAAM,CAAC;AAUd,wBAAgB,eAAe,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAmBhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAoDzE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAKnE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAQlD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,8CAM3D"}
@@ -0,0 +1,121 @@
1
+ import { createPublicClient, createWalletClient, http, webSocket, fallback, } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { monad } from './chain.js';
4
+ import { env } from '../config/env.js';
5
+ import { WS_URL } from '../config/constants.js';
6
+ import { getCurrentPrivateKey } from '../wallet/manager.js';
7
+ let publicClient = null;
8
+ let walletClient = null;
9
+ export function getPublicClient() {
10
+ if (!publicClient) {
11
+ publicClient = createPublicClient({
12
+ chain: monad,
13
+ transport: fallback([
14
+ http(env.MONAD_RPC_URL, {
15
+ batch: { wait: 50 },
16
+ retryCount: 3,
17
+ retryDelay: 150,
18
+ }),
19
+ http(env.MONAD_RPC_URL_BACKUP, {
20
+ batch: { wait: 50 },
21
+ retryCount: 3,
22
+ retryDelay: 150,
23
+ }),
24
+ ]),
25
+ });
26
+ }
27
+ return publicClient;
28
+ }
29
+ /**
30
+ * Reset wallet client (call after loading new wallet)
31
+ */
32
+ export function resetWalletClient() {
33
+ walletClient = null;
34
+ }
35
+ /**
36
+ * Get wallet client using the currently loaded wallet
37
+ */
38
+ export function getWalletClient() {
39
+ // Try to use wallet from manager first
40
+ const privateKey = getCurrentPrivateKey();
41
+ if (privateKey) {
42
+ // Rebuild wallet client if private key changed
43
+ const account = privateKeyToAccount(privateKey);
44
+ if (!walletClient || walletClient.account.address !== account.address) {
45
+ walletClient = createWalletClient({
46
+ account,
47
+ chain: monad,
48
+ transport: fallback([
49
+ http(env.MONAD_RPC_URL, {
50
+ retryCount: 3,
51
+ retryDelay: 150,
52
+ }),
53
+ http(env.MONAD_RPC_URL_BACKUP, {
54
+ retryCount: 3,
55
+ retryDelay: 150,
56
+ }),
57
+ ]),
58
+ });
59
+ }
60
+ return walletClient;
61
+ }
62
+ // Fallback to env variable (backward compatibility)
63
+ if (env.AGENT_PRIVATE_KEY && env.AGENT_PRIVATE_KEY !== '0x') {
64
+ if (!walletClient) {
65
+ const account = privateKeyToAccount(env.AGENT_PRIVATE_KEY);
66
+ walletClient = createWalletClient({
67
+ account,
68
+ chain: monad,
69
+ transport: fallback([
70
+ http(env.MONAD_RPC_URL, {
71
+ retryCount: 3,
72
+ retryDelay: 150,
73
+ }),
74
+ http(env.MONAD_RPC_URL_BACKUP, {
75
+ retryCount: 3,
76
+ retryDelay: 150,
77
+ }),
78
+ ]),
79
+ });
80
+ }
81
+ return walletClient;
82
+ }
83
+ throw new Error('No wallet loaded. Use "wallet set" to add your private key or "wallet unlock" to unlock existing wallet.');
84
+ }
85
+ /**
86
+ * Check if wallet is available
87
+ */
88
+ export function hasWallet() {
89
+ const privateKey = getCurrentPrivateKey();
90
+ if (privateKey)
91
+ return true;
92
+ if (env.AGENT_PRIVATE_KEY && env.AGENT_PRIVATE_KEY !== '0x')
93
+ return true;
94
+ return false;
95
+ }
96
+ export function getAccount() {
97
+ const client = getWalletClient();
98
+ return client.account;
99
+ }
100
+ export function getWebSocketClient() {
101
+ return createPublicClient({
102
+ chain: monad,
103
+ transport: webSocket(WS_URL),
104
+ });
105
+ }
106
+ export async function getBalance() {
107
+ if (!hasWallet()) {
108
+ return 0n;
109
+ }
110
+ const client = getPublicClient();
111
+ const account = getAccount();
112
+ return client.getBalance({ address: account.address });
113
+ }
114
+ export async function waitForTransaction(hash) {
115
+ const client = getPublicClient();
116
+ return client.waitForTransactionReceipt({
117
+ hash,
118
+ confirmations: 1,
119
+ });
120
+ }
121
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/blockchain/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export declare const NADFUN_CONTRACTS: {
2
+ readonly WMON: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A";
3
+ readonly BONDING_CURVE_ROUTER: "0x6F6B8F1a20703309951a5127c45B49b1CD981A22";
4
+ readonly BONDING_CURVE: "0xA7283d07812a02AFB7C09B60f8896bCEA3F90aCE";
5
+ readonly LENS: "0x7e78A8DE94f21804F7a17F4E8BF9EC2c872187ea";
6
+ readonly DEX_ROUTER: "0x0B79d71AE99528D1dB24A4148b5f4F865cc2b137";
7
+ readonly DEX_FACTORY: "0x6B5F564339DbAD6b780249827f2198a841FEB7F3";
8
+ };
9
+ export declare const MONAD_CONTRACTS: {
10
+ readonly WMON: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A";
11
+ readonly MULTICALL3: "0xcA11bde05977b3631167028862bE2a173976CA11";
12
+ readonly PERMIT2: "0x000000000022d473030f116ddee9f6b43ac78ba3";
13
+ readonly ENTRYPOINT_V07: "0x0000000071727De22E5E9d8BAf0edAc6f37da032";
14
+ };
15
+ export declare const RPC_URL: string;
16
+ export declare const RPC_URL_BACKUP: string;
17
+ export declare const WS_URL = "wss://rpc.monad.xyz";
18
+ export declare const CHAIN_ID = 143;
19
+ export declare const NADFUN_API_BASE = "https://api.nadapp.net";
20
+ export declare const NADFUN_ENDPOINTS: {
21
+ readonly TOKENS_BY_CREATION: "/order/creation_time";
22
+ readonly TOKENS_BY_MARKET_CAP: "/order/market_cap";
23
+ readonly TOKENS_BY_LAST_REPLY: "/order/last_reply";
24
+ readonly TOKENS_GRADUATED: "/token/graduated";
25
+ readonly TOKEN_MARKET: "/token/market";
26
+ readonly TOKEN_INFO: "/token/info";
27
+ readonly METADATA_IMAGE: "/metadata/image";
28
+ readonly METADATA_UPLOAD: "/metadata/metadata";
29
+ readonly TOKEN_SALT: "/token/salt";
30
+ };
31
+ export declare const GAS_CONFIG: {
32
+ readonly GAS_PRICE: bigint;
33
+ readonly MAX_PRIORITY_FEE: bigint;
34
+ };
35
+ export declare const BONDING_CURVE_CONFIG: {
36
+ readonly VIRTUAL_MON_RESERVE: bigint;
37
+ readonly VIRTUAL_TOKEN_RESERVE: bigint;
38
+ readonly GRADUATION_TOKENS: bigint;
39
+ readonly DEPLOY_FEE: bigint;
40
+ readonly GRADUATION_FEE: bigint;
41
+ };
42
+ export declare const RPC_RATE_LIMITS: {
43
+ readonly PRIMARY: {
44
+ readonly requests: 25;
45
+ readonly perSeconds: 1;
46
+ };
47
+ readonly BACKUP: {
48
+ readonly requests: 300;
49
+ readonly perSeconds: 10;
50
+ };
51
+ };
52
+ export declare const getCurrentNetwork: () => string;
53
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAGX,eAAO,MAAM,OAAO,QAAuD,CAAC;AAC5E,eAAO,MAAM,cAAc,QAA+D,CAAC;AAC3F,eAAO,MAAM,MAAM,wBAAwB,CAAC;AAG5C,eAAO,MAAM,QAAQ,MAAM,CAAC;AAG5B,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAGxD,eAAO,MAAM,gBAAgB;;;;;;;;;;CAenB,CAAC;AAGX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAGX,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC;AAGX,eAAO,MAAM,eAAe;;;;;;;;;CAGlB,CAAC;AAGX,eAAO,MAAM,iBAAiB,QAAO,MAAmB,CAAC"}
@@ -0,0 +1,61 @@
1
+ // Monad Mainnet Configuration
2
+ // KarmaKing Trading Bot for nad.fun
3
+ // Mainnet contract addresses
4
+ export const NADFUN_CONTRACTS = {
5
+ WMON: '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A',
6
+ BONDING_CURVE_ROUTER: '0x6F6B8F1a20703309951a5127c45B49b1CD981A22',
7
+ BONDING_CURVE: '0xA7283d07812a02AFB7C09B60f8896bCEA3F90aCE',
8
+ LENS: '0x7e78A8DE94f21804F7a17F4E8BF9EC2c872187ea',
9
+ DEX_ROUTER: '0x0B79d71AE99528D1dB24A4148b5f4F865cc2b137',
10
+ DEX_FACTORY: '0x6B5F564339DbAD6b780249827f2198a841FEB7F3',
11
+ };
12
+ export const MONAD_CONTRACTS = {
13
+ WMON: NADFUN_CONTRACTS.WMON,
14
+ MULTICALL3: '0xcA11bde05977b3631167028862bE2a173976CA11',
15
+ PERMIT2: '0x000000000022d473030f116ddee9f6b43ac78ba3',
16
+ ENTRYPOINT_V07: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
17
+ };
18
+ // RPC URLs
19
+ export const RPC_URL = process.env.MONAD_RPC_URL || 'https://rpc.monad.xyz';
20
+ export const RPC_URL_BACKUP = process.env.MONAD_RPC_URL_BACKUP || 'https://rpc2.monad.xyz';
21
+ export const WS_URL = 'wss://rpc.monad.xyz';
22
+ // Chain ID
23
+ export const CHAIN_ID = 143; // Monad Mainnet
24
+ // nad.fun API
25
+ export const NADFUN_API_BASE = 'https://api.nadapp.net';
26
+ // API endpoints
27
+ export const NADFUN_ENDPOINTS = {
28
+ // Token listing
29
+ TOKENS_BY_CREATION: '/order/creation_time',
30
+ TOKENS_BY_MARKET_CAP: '/order/market_cap',
31
+ TOKENS_BY_LAST_REPLY: '/order/last_reply',
32
+ TOKENS_GRADUATED: '/token/graduated',
33
+ // Token details
34
+ TOKEN_MARKET: '/token/market',
35
+ TOKEN_INFO: '/token/info',
36
+ // Token creation
37
+ METADATA_IMAGE: '/metadata/image',
38
+ METADATA_UPLOAD: '/metadata/metadata',
39
+ TOKEN_SALT: '/token/salt',
40
+ };
41
+ // Gas configuration
42
+ export const GAS_CONFIG = {
43
+ GAS_PRICE: 52n * 10n ** 9n, // 52 gwei
44
+ MAX_PRIORITY_FEE: 2n * 10n ** 9n, // 2 gwei
45
+ };
46
+ // Bonding curve parameters
47
+ export const BONDING_CURVE_CONFIG = {
48
+ VIRTUAL_MON_RESERVE: 90000n * 10n ** 18n,
49
+ VIRTUAL_TOKEN_RESERVE: 1073000191n * 10n ** 18n,
50
+ GRADUATION_TOKENS: 279900191n * 10n ** 18n,
51
+ DEPLOY_FEE: 10n * 10n ** 18n, // 10 MON
52
+ GRADUATION_FEE: 3000n * 10n ** 18n, // 3000 MON
53
+ };
54
+ // RPC rate limits
55
+ export const RPC_RATE_LIMITS = {
56
+ PRIMARY: { requests: 25, perSeconds: 1 },
57
+ BACKUP: { requests: 300, perSeconds: 10 },
58
+ };
59
+ // Network helper (always mainnet)
60
+ export const getCurrentNetwork = () => 'mainnet';
61
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,oCAAoC;AAEpC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,4CAA4C;IAClD,oBAAoB,EAAE,4CAA4C;IAClE,aAAa,EAAE,4CAA4C;IAC3D,IAAI,EAAE,4CAA4C;IAClD,UAAU,EAAE,4CAA4C;IACxD,WAAW,EAAE,4CAA4C;CACjD,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,gBAAgB,CAAC,IAAI;IAC3B,UAAU,EAAE,4CAA4C;IACxD,OAAO,EAAE,4CAA4C;IACrD,cAAc,EAAE,4CAA4C;CACpD,CAAC;AAEX,WAAW;AACX,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAC;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,wBAAwB,CAAC;AAC3F,MAAM,CAAC,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAE5C,WAAW;AACX,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,gBAAgB;AAE7C,cAAc;AACd,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,gBAAgB;IAChB,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,mBAAmB;IACzC,gBAAgB,EAAE,kBAAkB;IAEpC,gBAAgB;IAChB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IAEzB,iBAAiB;IACjB,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,aAAa;CACjB,CAAC;AAEX,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,UAAU;IACtC,gBAAgB,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,SAAS;CACnC,CAAC;AAEX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,mBAAmB,EAAE,MAAO,GAAG,GAAG,IAAI,GAAG;IACzC,qBAAqB,EAAE,WAAc,GAAG,GAAG,IAAI,GAAG;IAClD,iBAAiB,EAAE,UAAY,GAAG,GAAG,IAAI,GAAG;IAC5C,UAAU,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,SAAS;IACvC,cAAc,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,WAAW;CACvC,CAAC;AAEX,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IACxC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE;CACjC,CAAC;AAEX,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE,CAAC,SAAS,CAAC"}