solforge 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/.agi/agi.sqlite +0 -0
  2. package/.claude/settings.local.json +9 -0
  3. package/.github/workflows/release-binaries.yml +133 -0
  4. package/.tmp/.787ebcdbf7b8fde8-00000000.hm +0 -0
  5. package/.tmp/.bffe6efebdf8aedc-00000000.hm +0 -0
  6. package/AGENTS.md +271 -0
  7. package/CLAUDE.md +106 -0
  8. package/PROJECT_STRUCTURE.md +124 -0
  9. package/README.md +367 -393
  10. package/SOLANA_KIT_GUIDE.md +251 -0
  11. package/SOLFORGE.md +119 -0
  12. package/biome.json +34 -0
  13. package/bun.lock +743 -0
  14. package/docs/bun-single-file-executable.md +585 -0
  15. package/docs/cli-plan.md +154 -0
  16. package/docs/data-indexing-plan.md +214 -0
  17. package/docs/gui-roadmap.md +202 -0
  18. package/drizzle/0000_friendly_millenium_guard.sql +53 -0
  19. package/drizzle/0001_stale_sentinels.sql +2 -0
  20. package/drizzle/meta/0000_snapshot.json +329 -0
  21. package/drizzle/meta/0001_snapshot.json +345 -0
  22. package/drizzle/meta/_journal.json +20 -0
  23. package/drizzle.config.ts +12 -0
  24. package/index.ts +21 -0
  25. package/mint.sh +47 -0
  26. package/package.json +45 -69
  27. package/postcss.config.js +6 -0
  28. package/rpc-server.ts.backup +519 -0
  29. package/server/index.ts +5 -0
  30. package/server/lib/base58.ts +33 -0
  31. package/server/lib/faucet.ts +110 -0
  32. package/server/lib/spl-token.ts +57 -0
  33. package/server/methods/TEMPLATE.md +117 -0
  34. package/server/methods/account/get-account-info.ts +90 -0
  35. package/server/methods/account/get-balance.ts +27 -0
  36. package/server/methods/account/get-multiple-accounts.ts +83 -0
  37. package/server/methods/account/get-parsed-account-info.ts +21 -0
  38. package/server/methods/account/index.ts +12 -0
  39. package/server/methods/account/parsers/index.ts +52 -0
  40. package/server/methods/account/parsers/loader-upgradeable.ts +66 -0
  41. package/server/methods/account/parsers/spl-token.ts +237 -0
  42. package/server/methods/account/parsers/system.ts +4 -0
  43. package/server/methods/account/request-airdrop.ts +219 -0
  44. package/server/methods/admin/adopt-mint-authority.ts +94 -0
  45. package/server/methods/admin/clone-program-accounts.ts +55 -0
  46. package/server/methods/admin/clone-program.ts +152 -0
  47. package/server/methods/admin/clone-token-accounts.ts +117 -0
  48. package/server/methods/admin/clone-token-mint.ts +82 -0
  49. package/server/methods/admin/create-mint.ts +114 -0
  50. package/server/methods/admin/create-token-account.ts +137 -0
  51. package/server/methods/admin/helpers.ts +70 -0
  52. package/server/methods/admin/index.ts +10 -0
  53. package/server/methods/admin/list-mints.ts +21 -0
  54. package/server/methods/admin/load-program.ts +52 -0
  55. package/server/methods/admin/mint-to.ts +278 -0
  56. package/server/methods/block/get-block-height.ts +5 -0
  57. package/server/methods/block/get-block.ts +35 -0
  58. package/server/methods/block/get-blocks-with-limit.ts +23 -0
  59. package/server/methods/block/get-latest-blockhash.ts +12 -0
  60. package/server/methods/block/get-slot.ts +5 -0
  61. package/server/methods/block/index.ts +6 -0
  62. package/server/methods/block/is-blockhash-valid.ts +23 -0
  63. package/server/methods/epoch/get-cluster-nodes.ts +17 -0
  64. package/server/methods/epoch/get-epoch-info.ts +16 -0
  65. package/server/methods/epoch/get-epoch-schedule.ts +15 -0
  66. package/server/methods/epoch/get-highest-snapshot-slot.ts +9 -0
  67. package/server/methods/epoch/get-leader-schedule.ts +8 -0
  68. package/server/methods/epoch/get-max-retransmit-slot.ts +9 -0
  69. package/server/methods/epoch/get-max-shred-insert-slot.ts +9 -0
  70. package/server/methods/epoch/get-slot-leader.ts +6 -0
  71. package/server/methods/epoch/get-slot-leaders.ts +9 -0
  72. package/server/methods/epoch/get-stake-activation.ts +9 -0
  73. package/server/methods/epoch/get-stake-minimum-delegation.ts +9 -0
  74. package/server/methods/epoch/get-vote-accounts.ts +19 -0
  75. package/server/methods/epoch/index.ts +13 -0
  76. package/server/methods/epoch/minimum-ledger-slot.ts +5 -0
  77. package/server/methods/fee/get-fee-calculator-for-blockhash.ts +12 -0
  78. package/server/methods/fee/get-fee-for-message.ts +8 -0
  79. package/server/methods/fee/get-fee-rate-governor.ts +16 -0
  80. package/server/methods/fee/get-fees.ts +14 -0
  81. package/server/methods/fee/get-recent-prioritization-fees.ts +22 -0
  82. package/server/methods/fee/index.ts +5 -0
  83. package/server/methods/get-address-lookup-table.ts +31 -0
  84. package/server/methods/index.ts +265 -0
  85. package/server/methods/performance/get-recent-performance-samples.ts +25 -0
  86. package/server/methods/performance/get-transaction-count.ts +5 -0
  87. package/server/methods/performance/index.ts +2 -0
  88. package/server/methods/program/get-block-commitment.ts +9 -0
  89. package/server/methods/program/get-block-production.ts +14 -0
  90. package/server/methods/program/get-block-time.ts +21 -0
  91. package/server/methods/program/get-blocks.ts +11 -0
  92. package/server/methods/program/get-first-available-block.ts +9 -0
  93. package/server/methods/program/get-genesis-hash.ts +6 -0
  94. package/server/methods/program/get-identity.ts +6 -0
  95. package/server/methods/program/get-inflation-governor.ts +15 -0
  96. package/server/methods/program/get-inflation-rate.ts +10 -0
  97. package/server/methods/program/get-inflation-reward.ts +12 -0
  98. package/server/methods/program/get-largest-accounts.ts +8 -0
  99. package/server/methods/program/get-parsed-program-accounts.ts +12 -0
  100. package/server/methods/program/get-parsed-token-accounts-by-delegate.ts +12 -0
  101. package/server/methods/program/get-parsed-token-accounts-by-owner.ts +12 -0
  102. package/server/methods/program/get-program-accounts.ts +221 -0
  103. package/server/methods/program/get-supply.ts +13 -0
  104. package/server/methods/program/get-token-account-balance.ts +64 -0
  105. package/server/methods/program/get-token-accounts-by-delegate.ts +81 -0
  106. package/server/methods/program/get-token-accounts-by-owner.ts +390 -0
  107. package/server/methods/program/get-token-largest-accounts.ts +80 -0
  108. package/server/methods/program/get-token-supply.ts +38 -0
  109. package/server/methods/program/index.ts +21 -0
  110. package/server/methods/solforge/index.ts +155 -0
  111. package/server/methods/system/get-health.ts +5 -0
  112. package/server/methods/system/get-minimum-balance-for-rent-exemption.ts +13 -0
  113. package/server/methods/system/get-version.ts +9 -0
  114. package/server/methods/system/index.ts +3 -0
  115. package/server/methods/transaction/get-confirmed-transaction.ts +11 -0
  116. package/server/methods/transaction/get-parsed-transaction.ts +21 -0
  117. package/server/methods/transaction/get-signature-statuses.ts +72 -0
  118. package/server/methods/transaction/get-signatures-for-address.ts +45 -0
  119. package/server/methods/transaction/get-transaction.ts +428 -0
  120. package/server/methods/transaction/index.ts +7 -0
  121. package/server/methods/transaction/send-transaction.ts +232 -0
  122. package/server/methods/transaction/simulate-transaction.ts +56 -0
  123. package/server/rpc-server.ts +474 -0
  124. package/server/types.ts +74 -0
  125. package/server/ws-server.ts +171 -0
  126. package/sf.config.json +38 -0
  127. package/src/cli/bootstrap.ts +67 -0
  128. package/src/cli/commands/airdrop.ts +37 -0
  129. package/src/cli/commands/config.ts +39 -0
  130. package/src/cli/commands/mint.ts +187 -0
  131. package/src/cli/commands/program-clone.ts +124 -0
  132. package/src/cli/commands/program-load.ts +64 -0
  133. package/src/cli/commands/rpc-start.ts +46 -0
  134. package/src/cli/commands/token-adopt-authority.ts +37 -0
  135. package/src/cli/commands/token-clone.ts +113 -0
  136. package/src/cli/commands/token-create.ts +81 -0
  137. package/src/cli/main.ts +130 -0
  138. package/src/cli/run-solforge.ts +98 -0
  139. package/src/cli/setup-utils.ts +54 -0
  140. package/src/cli/setup-wizard.ts +256 -0
  141. package/src/cli/utils/args.ts +15 -0
  142. package/src/config/index.ts +130 -0
  143. package/src/db/index.ts +83 -0
  144. package/src/db/schema/accounts.ts +23 -0
  145. package/src/db/schema/address-signatures.ts +31 -0
  146. package/src/db/schema/index.ts +5 -0
  147. package/src/db/schema/meta-kv.ts +9 -0
  148. package/src/db/schema/transactions.ts +29 -0
  149. package/src/db/schema/tx-accounts.ts +33 -0
  150. package/src/db/tx-store.ts +229 -0
  151. package/src/gui/public/app.css +1 -0
  152. package/src/gui/public/index.html +19 -0
  153. package/src/gui/server.ts +297 -0
  154. package/src/gui/src/api.ts +127 -0
  155. package/src/gui/src/app.tsx +390 -0
  156. package/src/gui/src/components/airdrop-mint-form.tsx +216 -0
  157. package/src/gui/src/components/clone-program-modal.tsx +183 -0
  158. package/src/gui/src/components/clone-token-modal.tsx +211 -0
  159. package/src/gui/src/components/modal.tsx +127 -0
  160. package/src/gui/src/components/programs-panel.tsx +112 -0
  161. package/src/gui/src/components/status-panel.tsx +122 -0
  162. package/src/gui/src/components/tokens-panel.tsx +116 -0
  163. package/src/gui/src/hooks/use-interval.ts +17 -0
  164. package/src/gui/src/index.css +529 -0
  165. package/src/gui/src/main.tsx +17 -0
  166. package/src/migrations-bundled.ts +17 -0
  167. package/src/rpc/start.ts +44 -0
  168. package/tailwind.config.js +27 -0
  169. package/test-client.ts +120 -0
  170. package/tmp/inspect-html.ts +4 -0
  171. package/tmp/response-test.ts +5 -0
  172. package/tmp/test-html.ts +5 -0
  173. package/tmp/test-server.ts +13 -0
  174. package/tsconfig.json +24 -23
  175. package/LICENSE +0 -21
  176. package/scripts/postinstall.cjs +0 -103
  177. package/src/api-server-entry.ts +0 -109
  178. package/src/commands/add-program.ts +0 -337
  179. package/src/commands/init.ts +0 -122
  180. package/src/commands/list.ts +0 -136
  181. package/src/commands/mint.ts +0 -288
  182. package/src/commands/start.ts +0 -877
  183. package/src/commands/status.ts +0 -99
  184. package/src/commands/stop.ts +0 -406
  185. package/src/config/manager.ts +0 -157
  186. package/src/index.ts +0 -188
  187. package/src/services/api-server.ts +0 -485
  188. package/src/services/port-manager.ts +0 -177
  189. package/src/services/process-registry.ts +0 -154
  190. package/src/services/program-cloner.ts +0 -317
  191. package/src/services/token-cloner.ts +0 -809
  192. package/src/services/validator.ts +0 -295
  193. package/src/types/config.ts +0 -110
  194. package/src/utils/shell.ts +0 -110
  195. package/src/utils/token-loader.ts +0 -115
@@ -0,0 +1,329 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "b6ef19fa-06b7-4396-874f-2b252549b98f",
5
+ "prevId": "00000000-0000-0000-0000-000000000000",
6
+ "tables": {
7
+ "accounts": {
8
+ "name": "accounts",
9
+ "columns": {
10
+ "address": {
11
+ "name": "address",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "lamports": {
18
+ "name": "lamports",
19
+ "type": "integer",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "owner_program": {
25
+ "name": "owner_program",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false
30
+ },
31
+ "executable": {
32
+ "name": "executable",
33
+ "type": "integer",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "rent_epoch": {
39
+ "name": "rent_epoch",
40
+ "type": "integer",
41
+ "primaryKey": false,
42
+ "notNull": true,
43
+ "autoincrement": false
44
+ },
45
+ "data_len": {
46
+ "name": "data_len",
47
+ "type": "integer",
48
+ "primaryKey": false,
49
+ "notNull": true,
50
+ "autoincrement": false
51
+ },
52
+ "data_base64": {
53
+ "name": "data_base64",
54
+ "type": "text",
55
+ "primaryKey": false,
56
+ "notNull": false,
57
+ "autoincrement": false
58
+ },
59
+ "last_slot": {
60
+ "name": "last_slot",
61
+ "type": "integer",
62
+ "primaryKey": false,
63
+ "notNull": true,
64
+ "autoincrement": false
65
+ }
66
+ },
67
+ "indexes": {
68
+ "idx_accounts_owner": {
69
+ "name": "idx_accounts_owner",
70
+ "columns": ["owner_program"],
71
+ "isUnique": false
72
+ },
73
+ "idx_accounts_last_slot": {
74
+ "name": "idx_accounts_last_slot",
75
+ "columns": ["last_slot"],
76
+ "isUnique": false
77
+ }
78
+ },
79
+ "foreignKeys": {},
80
+ "compositePrimaryKeys": {},
81
+ "uniqueConstraints": {},
82
+ "checkConstraints": {}
83
+ },
84
+ "address_signatures": {
85
+ "name": "address_signatures",
86
+ "columns": {
87
+ "address": {
88
+ "name": "address",
89
+ "type": "text",
90
+ "primaryKey": false,
91
+ "notNull": true,
92
+ "autoincrement": false
93
+ },
94
+ "signature": {
95
+ "name": "signature",
96
+ "type": "text",
97
+ "primaryKey": false,
98
+ "notNull": true,
99
+ "autoincrement": false
100
+ },
101
+ "slot": {
102
+ "name": "slot",
103
+ "type": "integer",
104
+ "primaryKey": false,
105
+ "notNull": true,
106
+ "autoincrement": false
107
+ },
108
+ "err": {
109
+ "name": "err",
110
+ "type": "integer",
111
+ "primaryKey": false,
112
+ "notNull": true,
113
+ "autoincrement": false
114
+ },
115
+ "block_time": {
116
+ "name": "block_time",
117
+ "type": "integer",
118
+ "primaryKey": false,
119
+ "notNull": false,
120
+ "autoincrement": false
121
+ }
122
+ },
123
+ "indexes": {
124
+ "idx_address_signatures_addr_slot": {
125
+ "name": "idx_address_signatures_addr_slot",
126
+ "columns": ["address", "slot"],
127
+ "isUnique": false
128
+ }
129
+ },
130
+ "foreignKeys": {},
131
+ "compositePrimaryKeys": {
132
+ "pk_address_signatures": {
133
+ "columns": ["address", "signature"],
134
+ "name": "pk_address_signatures"
135
+ }
136
+ },
137
+ "uniqueConstraints": {},
138
+ "checkConstraints": {}
139
+ },
140
+ "transactions": {
141
+ "name": "transactions",
142
+ "columns": {
143
+ "signature": {
144
+ "name": "signature",
145
+ "type": "text",
146
+ "primaryKey": true,
147
+ "notNull": true,
148
+ "autoincrement": false
149
+ },
150
+ "slot": {
151
+ "name": "slot",
152
+ "type": "integer",
153
+ "primaryKey": false,
154
+ "notNull": true,
155
+ "autoincrement": false
156
+ },
157
+ "block_time": {
158
+ "name": "block_time",
159
+ "type": "integer",
160
+ "primaryKey": false,
161
+ "notNull": false,
162
+ "autoincrement": false
163
+ },
164
+ "version": {
165
+ "name": "version",
166
+ "type": "text",
167
+ "primaryKey": false,
168
+ "notNull": true,
169
+ "autoincrement": false
170
+ },
171
+ "err_json": {
172
+ "name": "err_json",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": false,
176
+ "autoincrement": false
177
+ },
178
+ "fee": {
179
+ "name": "fee",
180
+ "type": "integer",
181
+ "primaryKey": false,
182
+ "notNull": true,
183
+ "autoincrement": false
184
+ },
185
+ "raw_base64": {
186
+ "name": "raw_base64",
187
+ "type": "text",
188
+ "primaryKey": false,
189
+ "notNull": true,
190
+ "autoincrement": false
191
+ },
192
+ "pre_balances_json": {
193
+ "name": "pre_balances_json",
194
+ "type": "text",
195
+ "primaryKey": false,
196
+ "notNull": true,
197
+ "autoincrement": false
198
+ },
199
+ "post_balances_json": {
200
+ "name": "post_balances_json",
201
+ "type": "text",
202
+ "primaryKey": false,
203
+ "notNull": true,
204
+ "autoincrement": false
205
+ },
206
+ "logs_json": {
207
+ "name": "logs_json",
208
+ "type": "text",
209
+ "primaryKey": false,
210
+ "notNull": true,
211
+ "autoincrement": false
212
+ }
213
+ },
214
+ "indexes": {
215
+ "idx_transactions_slot": {
216
+ "name": "idx_transactions_slot",
217
+ "columns": ["slot"],
218
+ "isUnique": false
219
+ }
220
+ },
221
+ "foreignKeys": {},
222
+ "compositePrimaryKeys": {},
223
+ "uniqueConstraints": {},
224
+ "checkConstraints": {}
225
+ },
226
+ "tx_accounts": {
227
+ "name": "tx_accounts",
228
+ "columns": {
229
+ "signature": {
230
+ "name": "signature",
231
+ "type": "text",
232
+ "primaryKey": false,
233
+ "notNull": true,
234
+ "autoincrement": false
235
+ },
236
+ "account_index": {
237
+ "name": "account_index",
238
+ "type": "integer",
239
+ "primaryKey": false,
240
+ "notNull": true,
241
+ "autoincrement": false
242
+ },
243
+ "address": {
244
+ "name": "address",
245
+ "type": "text",
246
+ "primaryKey": false,
247
+ "notNull": true,
248
+ "autoincrement": false
249
+ },
250
+ "signer": {
251
+ "name": "signer",
252
+ "type": "integer",
253
+ "primaryKey": false,
254
+ "notNull": true,
255
+ "autoincrement": false
256
+ },
257
+ "writable": {
258
+ "name": "writable",
259
+ "type": "integer",
260
+ "primaryKey": false,
261
+ "notNull": true,
262
+ "autoincrement": false
263
+ },
264
+ "program_id_index": {
265
+ "name": "program_id_index",
266
+ "type": "integer",
267
+ "primaryKey": false,
268
+ "notNull": false,
269
+ "autoincrement": false
270
+ }
271
+ },
272
+ "indexes": {
273
+ "idx_tx_accounts_address": {
274
+ "name": "idx_tx_accounts_address",
275
+ "columns": ["address"],
276
+ "isUnique": false
277
+ },
278
+ "idx_tx_accounts_address_signature": {
279
+ "name": "idx_tx_accounts_address_signature",
280
+ "columns": ["address", "signature"],
281
+ "isUnique": false
282
+ }
283
+ },
284
+ "foreignKeys": {},
285
+ "compositePrimaryKeys": {
286
+ "pk_tx_accounts": {
287
+ "columns": ["signature", "account_index"],
288
+ "name": "pk_tx_accounts"
289
+ }
290
+ },
291
+ "uniqueConstraints": {},
292
+ "checkConstraints": {}
293
+ },
294
+ "meta_kv": {
295
+ "name": "meta_kv",
296
+ "columns": {
297
+ "key": {
298
+ "name": "key",
299
+ "type": "text",
300
+ "primaryKey": true,
301
+ "notNull": true,
302
+ "autoincrement": false
303
+ },
304
+ "value": {
305
+ "name": "value",
306
+ "type": "text",
307
+ "primaryKey": false,
308
+ "notNull": true,
309
+ "autoincrement": false
310
+ }
311
+ },
312
+ "indexes": {},
313
+ "foreignKeys": {},
314
+ "compositePrimaryKeys": {},
315
+ "uniqueConstraints": {},
316
+ "checkConstraints": {}
317
+ }
318
+ },
319
+ "views": {},
320
+ "enums": {},
321
+ "_meta": {
322
+ "schemas": {},
323
+ "tables": {},
324
+ "columns": {}
325
+ },
326
+ "internal": {
327
+ "indexes": {}
328
+ }
329
+ }
@@ -0,0 +1,345 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "4f6ccd4b-6625-4b77-b209-6606cea0dbc6",
5
+ "prevId": "b6ef19fa-06b7-4396-874f-2b252549b98f",
6
+ "tables": {
7
+ "accounts": {
8
+ "name": "accounts",
9
+ "columns": {
10
+ "address": {
11
+ "name": "address",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "lamports": {
18
+ "name": "lamports",
19
+ "type": "integer",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "owner_program": {
25
+ "name": "owner_program",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false
30
+ },
31
+ "executable": {
32
+ "name": "executable",
33
+ "type": "integer",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "rent_epoch": {
39
+ "name": "rent_epoch",
40
+ "type": "integer",
41
+ "primaryKey": false,
42
+ "notNull": true,
43
+ "autoincrement": false
44
+ },
45
+ "data_len": {
46
+ "name": "data_len",
47
+ "type": "integer",
48
+ "primaryKey": false,
49
+ "notNull": true,
50
+ "autoincrement": false
51
+ },
52
+ "data_base64": {
53
+ "name": "data_base64",
54
+ "type": "text",
55
+ "primaryKey": false,
56
+ "notNull": false,
57
+ "autoincrement": false
58
+ },
59
+ "last_slot": {
60
+ "name": "last_slot",
61
+ "type": "integer",
62
+ "primaryKey": false,
63
+ "notNull": true,
64
+ "autoincrement": false
65
+ }
66
+ },
67
+ "indexes": {
68
+ "idx_accounts_owner": {
69
+ "name": "idx_accounts_owner",
70
+ "columns": ["owner_program"],
71
+ "isUnique": false
72
+ },
73
+ "idx_accounts_last_slot": {
74
+ "name": "idx_accounts_last_slot",
75
+ "columns": ["last_slot"],
76
+ "isUnique": false
77
+ }
78
+ },
79
+ "foreignKeys": {},
80
+ "compositePrimaryKeys": {},
81
+ "uniqueConstraints": {},
82
+ "checkConstraints": {}
83
+ },
84
+ "address_signatures": {
85
+ "name": "address_signatures",
86
+ "columns": {
87
+ "address": {
88
+ "name": "address",
89
+ "type": "text",
90
+ "primaryKey": false,
91
+ "notNull": true,
92
+ "autoincrement": false
93
+ },
94
+ "signature": {
95
+ "name": "signature",
96
+ "type": "text",
97
+ "primaryKey": false,
98
+ "notNull": true,
99
+ "autoincrement": false
100
+ },
101
+ "slot": {
102
+ "name": "slot",
103
+ "type": "integer",
104
+ "primaryKey": false,
105
+ "notNull": true,
106
+ "autoincrement": false
107
+ },
108
+ "err": {
109
+ "name": "err",
110
+ "type": "integer",
111
+ "primaryKey": false,
112
+ "notNull": true,
113
+ "autoincrement": false
114
+ },
115
+ "block_time": {
116
+ "name": "block_time",
117
+ "type": "integer",
118
+ "primaryKey": false,
119
+ "notNull": false,
120
+ "autoincrement": false
121
+ }
122
+ },
123
+ "indexes": {
124
+ "idx_address_signatures_addr_slot": {
125
+ "name": "idx_address_signatures_addr_slot",
126
+ "columns": ["address", "slot"],
127
+ "isUnique": false
128
+ }
129
+ },
130
+ "foreignKeys": {},
131
+ "compositePrimaryKeys": {
132
+ "pk_address_signatures": {
133
+ "columns": ["address", "signature"],
134
+ "name": "pk_address_signatures"
135
+ }
136
+ },
137
+ "uniqueConstraints": {},
138
+ "checkConstraints": {}
139
+ },
140
+ "transactions": {
141
+ "name": "transactions",
142
+ "columns": {
143
+ "signature": {
144
+ "name": "signature",
145
+ "type": "text",
146
+ "primaryKey": true,
147
+ "notNull": true,
148
+ "autoincrement": false
149
+ },
150
+ "slot": {
151
+ "name": "slot",
152
+ "type": "integer",
153
+ "primaryKey": false,
154
+ "notNull": true,
155
+ "autoincrement": false
156
+ },
157
+ "block_time": {
158
+ "name": "block_time",
159
+ "type": "integer",
160
+ "primaryKey": false,
161
+ "notNull": false,
162
+ "autoincrement": false
163
+ },
164
+ "version": {
165
+ "name": "version",
166
+ "type": "text",
167
+ "primaryKey": false,
168
+ "notNull": true,
169
+ "autoincrement": false
170
+ },
171
+ "err_json": {
172
+ "name": "err_json",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": false,
176
+ "autoincrement": false
177
+ },
178
+ "fee": {
179
+ "name": "fee",
180
+ "type": "integer",
181
+ "primaryKey": false,
182
+ "notNull": true,
183
+ "autoincrement": false
184
+ },
185
+ "raw_base64": {
186
+ "name": "raw_base64",
187
+ "type": "text",
188
+ "primaryKey": false,
189
+ "notNull": true,
190
+ "autoincrement": false
191
+ },
192
+ "pre_balances_json": {
193
+ "name": "pre_balances_json",
194
+ "type": "text",
195
+ "primaryKey": false,
196
+ "notNull": true,
197
+ "autoincrement": false
198
+ },
199
+ "post_balances_json": {
200
+ "name": "post_balances_json",
201
+ "type": "text",
202
+ "primaryKey": false,
203
+ "notNull": true,
204
+ "autoincrement": false
205
+ },
206
+ "logs_json": {
207
+ "name": "logs_json",
208
+ "type": "text",
209
+ "primaryKey": false,
210
+ "notNull": true,
211
+ "autoincrement": false
212
+ },
213
+ "pre_token_balances_json": {
214
+ "name": "pre_token_balances_json",
215
+ "type": "text",
216
+ "primaryKey": false,
217
+ "notNull": true,
218
+ "autoincrement": false,
219
+ "default": "'[]'"
220
+ },
221
+ "post_token_balances_json": {
222
+ "name": "post_token_balances_json",
223
+ "type": "text",
224
+ "primaryKey": false,
225
+ "notNull": true,
226
+ "autoincrement": false,
227
+ "default": "'[]'"
228
+ }
229
+ },
230
+ "indexes": {
231
+ "idx_transactions_slot": {
232
+ "name": "idx_transactions_slot",
233
+ "columns": ["slot"],
234
+ "isUnique": false
235
+ }
236
+ },
237
+ "foreignKeys": {},
238
+ "compositePrimaryKeys": {},
239
+ "uniqueConstraints": {},
240
+ "checkConstraints": {}
241
+ },
242
+ "tx_accounts": {
243
+ "name": "tx_accounts",
244
+ "columns": {
245
+ "signature": {
246
+ "name": "signature",
247
+ "type": "text",
248
+ "primaryKey": false,
249
+ "notNull": true,
250
+ "autoincrement": false
251
+ },
252
+ "account_index": {
253
+ "name": "account_index",
254
+ "type": "integer",
255
+ "primaryKey": false,
256
+ "notNull": true,
257
+ "autoincrement": false
258
+ },
259
+ "address": {
260
+ "name": "address",
261
+ "type": "text",
262
+ "primaryKey": false,
263
+ "notNull": true,
264
+ "autoincrement": false
265
+ },
266
+ "signer": {
267
+ "name": "signer",
268
+ "type": "integer",
269
+ "primaryKey": false,
270
+ "notNull": true,
271
+ "autoincrement": false
272
+ },
273
+ "writable": {
274
+ "name": "writable",
275
+ "type": "integer",
276
+ "primaryKey": false,
277
+ "notNull": true,
278
+ "autoincrement": false
279
+ },
280
+ "program_id_index": {
281
+ "name": "program_id_index",
282
+ "type": "integer",
283
+ "primaryKey": false,
284
+ "notNull": false,
285
+ "autoincrement": false
286
+ }
287
+ },
288
+ "indexes": {
289
+ "idx_tx_accounts_address": {
290
+ "name": "idx_tx_accounts_address",
291
+ "columns": ["address"],
292
+ "isUnique": false
293
+ },
294
+ "idx_tx_accounts_address_signature": {
295
+ "name": "idx_tx_accounts_address_signature",
296
+ "columns": ["address", "signature"],
297
+ "isUnique": false
298
+ }
299
+ },
300
+ "foreignKeys": {},
301
+ "compositePrimaryKeys": {
302
+ "pk_tx_accounts": {
303
+ "columns": ["signature", "account_index"],
304
+ "name": "pk_tx_accounts"
305
+ }
306
+ },
307
+ "uniqueConstraints": {},
308
+ "checkConstraints": {}
309
+ },
310
+ "meta_kv": {
311
+ "name": "meta_kv",
312
+ "columns": {
313
+ "key": {
314
+ "name": "key",
315
+ "type": "text",
316
+ "primaryKey": true,
317
+ "notNull": true,
318
+ "autoincrement": false
319
+ },
320
+ "value": {
321
+ "name": "value",
322
+ "type": "text",
323
+ "primaryKey": false,
324
+ "notNull": true,
325
+ "autoincrement": false
326
+ }
327
+ },
328
+ "indexes": {},
329
+ "foreignKeys": {},
330
+ "compositePrimaryKeys": {},
331
+ "uniqueConstraints": {},
332
+ "checkConstraints": {}
333
+ }
334
+ },
335
+ "views": {},
336
+ "enums": {},
337
+ "_meta": {
338
+ "schemas": {},
339
+ "tables": {},
340
+ "columns": {}
341
+ },
342
+ "internal": {
343
+ "indexes": {}
344
+ }
345
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "sqlite",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "6",
8
+ "when": 1757791582272,
9
+ "tag": "0000_friendly_millenium_guard",
10
+ "breakpoints": true
11
+ },
12
+ {
13
+ "idx": 1,
14
+ "version": "6",
15
+ "when": 1757872206845,
16
+ "tag": "0001_stale_sentinels",
17
+ "breakpoints": true
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,12 @@
1
+ import { defineConfig } from "drizzle-kit";
2
+
3
+ const dbPath = process.env.SOLFORGE_DB_PATH || ".solforge/db.db";
4
+
5
+ export default defineConfig({
6
+ dialect: "sqlite",
7
+ schema: ["./src/db/schema"],
8
+ out: "./drizzle",
9
+ dbCredentials: {
10
+ url: `file:${dbPath}`,
11
+ },
12
+ });