@the-situation/indexer 0.9.1 → 0.11.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 (163) hide show
  1. package/dist/api/app.d.ts +4 -0
  2. package/dist/api/app.d.ts.map +1 -1
  3. package/dist/api/app.js +3 -3
  4. package/dist/api/app.js.map +1 -1
  5. package/dist/api/middleware/admin-auth.d.ts.map +1 -1
  6. package/dist/api/middleware/admin-auth.js +11 -3
  7. package/dist/api/middleware/admin-auth.js.map +1 -1
  8. package/dist/api/middleware/error-handler.d.ts.map +1 -1
  9. package/dist/api/middleware/error-handler.js +2 -2
  10. package/dist/api/middleware/error-handler.js.map +1 -1
  11. package/dist/api/routes/admin.d.ts +2 -0
  12. package/dist/api/routes/admin.d.ts.map +1 -1
  13. package/dist/api/routes/admin.js +29 -5
  14. package/dist/api/routes/admin.js.map +1 -1
  15. package/dist/api/routes/health.d.ts +3 -2
  16. package/dist/api/routes/health.d.ts.map +1 -1
  17. package/dist/api/routes/health.js +11 -4
  18. package/dist/api/routes/health.js.map +1 -1
  19. package/dist/api/routes/index.d.ts +3 -3
  20. package/dist/api/routes/index.d.ts.map +1 -1
  21. package/dist/api/routes/index.js +3 -3
  22. package/dist/api/routes/index.js.map +1 -1
  23. package/dist/api/routes/market-events.d.ts.map +1 -1
  24. package/dist/api/routes/market-events.js +14 -8
  25. package/dist/api/routes/market-events.js.map +1 -1
  26. package/dist/api/routes/market-traders.d.ts.map +1 -1
  27. package/dist/api/routes/market-traders.js +1 -1
  28. package/dist/api/routes/market-traders.js.map +1 -1
  29. package/dist/api/routes/markets.d.ts.map +1 -1
  30. package/dist/api/routes/markets.js +83 -5
  31. package/dist/api/routes/markets.js.map +1 -1
  32. package/dist/api/routes/rankings.d.ts.map +1 -1
  33. package/dist/api/routes/rankings.js +2 -1
  34. package/dist/api/routes/rankings.js.map +1 -1
  35. package/dist/api/routes/trader-events.d.ts +1 -1
  36. package/dist/api/routes/trader-events.d.ts.map +1 -1
  37. package/dist/api/routes/trader-events.js +11 -6
  38. package/dist/api/routes/trader-events.js.map +1 -1
  39. package/dist/api/routes/ws.d.ts.map +1 -1
  40. package/dist/api/routes/ws.js +4 -3
  41. package/dist/api/routes/ws.js.map +1 -1
  42. package/dist/client/IndexerClient.d.ts +10 -1
  43. package/dist/client/IndexerClient.d.ts.map +1 -1
  44. package/dist/client/IndexerClient.js.map +1 -1
  45. package/dist/client/IndexerClientLive.d.ts +1 -0
  46. package/dist/client/IndexerClientLive.d.ts.map +1 -1
  47. package/dist/client/IndexerClientLive.js +54 -8
  48. package/dist/client/IndexerClientLive.js.map +1 -1
  49. package/dist/client/convenience.d.ts +11 -2
  50. package/dist/client/convenience.d.ts.map +1 -1
  51. package/dist/client/convenience.js +4 -0
  52. package/dist/client/convenience.js.map +1 -1
  53. package/dist/client/index.d.ts +6 -5
  54. package/dist/client/index.d.ts.map +1 -1
  55. package/dist/client/index.js +4 -4
  56. package/dist/client/index.js.map +1 -1
  57. package/dist/client/trader-stats.d.ts +2 -2
  58. package/dist/client/trader-stats.d.ts.map +1 -1
  59. package/dist/client/trader-stats.js +1 -1
  60. package/dist/client/trader-stats.js.map +1 -1
  61. package/dist/config.d.ts +3 -0
  62. package/dist/config.d.ts.map +1 -1
  63. package/dist/config.js +19 -6
  64. package/dist/config.js.map +1 -1
  65. package/dist/db/connection.d.ts.map +1 -1
  66. package/dist/db/connection.js +4 -1
  67. package/dist/db/connection.js.map +1 -1
  68. package/dist/db/repositories/event.d.ts +1 -1
  69. package/dist/db/repositories/event.d.ts.map +1 -1
  70. package/dist/db/repositories/event.js +11 -9
  71. package/dist/db/repositories/event.js.map +1 -1
  72. package/dist/db/repositories/index.d.ts +3 -2
  73. package/dist/db/repositories/index.d.ts.map +1 -1
  74. package/dist/db/repositories/index.js +3 -2
  75. package/dist/db/repositories/index.js.map +1 -1
  76. package/dist/db/repositories/market-state.d.ts +1 -0
  77. package/dist/db/repositories/market-state.d.ts.map +1 -1
  78. package/dist/db/repositories/market-state.js +8 -0
  79. package/dist/db/repositories/market-state.js.map +1 -1
  80. package/dist/db/repositories/market.d.ts +1 -1
  81. package/dist/db/repositories/market.d.ts.map +1 -1
  82. package/dist/db/repositories/market.js +39 -17
  83. package/dist/db/repositories/market.js.map +1 -1
  84. package/dist/db/repositories/multinoulli-market-state.d.ts +30 -0
  85. package/dist/db/repositories/multinoulli-market-state.d.ts.map +1 -0
  86. package/dist/db/repositories/multinoulli-market-state.js +48 -0
  87. package/dist/db/repositories/multinoulli-market-state.js.map +1 -0
  88. package/dist/db/repositories/position.d.ts +2 -1
  89. package/dist/db/repositories/position.d.ts.map +1 -1
  90. package/dist/db/repositories/position.js +14 -3
  91. package/dist/db/repositories/position.js.map +1 -1
  92. package/dist/db/schema.d.ts.map +1 -1
  93. package/dist/db/schema.js +68 -1
  94. package/dist/db/schema.js.map +1 -1
  95. package/dist/etl/decoder.d.ts +4 -3
  96. package/dist/etl/decoder.d.ts.map +1 -1
  97. package/dist/etl/decoder.js +149 -31
  98. package/dist/etl/decoder.js.map +1 -1
  99. package/dist/etl/event-indexer.d.ts +3 -2
  100. package/dist/etl/event-indexer.d.ts.map +1 -1
  101. package/dist/etl/event-indexer.js +140 -37
  102. package/dist/etl/event-indexer.js.map +1 -1
  103. package/dist/etl/position-refresher.d.ts +4 -3
  104. package/dist/etl/position-refresher.d.ts.map +1 -1
  105. package/dist/etl/position-refresher.js +54 -8
  106. package/dist/etl/position-refresher.js.map +1 -1
  107. package/dist/etl/scheduler.d.ts +2 -2
  108. package/dist/etl/scheduler.d.ts.map +1 -1
  109. package/dist/etl/scheduler.js +19 -23
  110. package/dist/etl/scheduler.js.map +1 -1
  111. package/dist/etl/state-refresher.d.ts +4 -3
  112. package/dist/etl/state-refresher.d.ts.map +1 -1
  113. package/dist/etl/state-refresher.js +39 -9
  114. package/dist/etl/state-refresher.js.map +1 -1
  115. package/dist/index.d.ts +3 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +129 -31
  118. package/dist/index.js.map +1 -1
  119. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  120. package/dist/layers/ChainReaderLive.js +96 -6
  121. package/dist/layers/ChainReaderLive.js.map +1 -1
  122. package/dist/layers/DatabaseLive.d.ts +1 -1
  123. package/dist/layers/DatabaseLive.d.ts.map +1 -1
  124. package/dist/layers/DatabaseLive.js +2 -1
  125. package/dist/layers/DatabaseLive.js.map +1 -1
  126. package/dist/layers/EventBusLive.d.ts.map +1 -1
  127. package/dist/layers/EventBusLive.js +2 -2
  128. package/dist/layers/EventBusLive.js.map +1 -1
  129. package/dist/layers/VoyagerClientLive.d.ts +3 -2
  130. package/dist/layers/VoyagerClientLive.d.ts.map +1 -1
  131. package/dist/layers/VoyagerClientLive.js +29 -10
  132. package/dist/layers/VoyagerClientLive.js.map +1 -1
  133. package/dist/layers/index.d.ts +2 -2
  134. package/dist/layers/index.d.ts.map +1 -1
  135. package/dist/layers/index.js +2 -2
  136. package/dist/layers/index.js.map +1 -1
  137. package/dist/services/ChainReader.d.ts +3 -0
  138. package/dist/services/ChainReader.d.ts.map +1 -1
  139. package/dist/services/ChainReader.js.map +1 -1
  140. package/dist/services/Database.d.ts +3 -2
  141. package/dist/services/Database.d.ts.map +1 -1
  142. package/dist/services/Database.js.map +1 -1
  143. package/dist/services/EventBus.d.ts.map +1 -1
  144. package/dist/services/EventBus.js.map +1 -1
  145. package/dist/services/VoyagerRateLimit.d.ts +40 -0
  146. package/dist/services/VoyagerRateLimit.d.ts.map +1 -0
  147. package/dist/services/VoyagerRateLimit.js +91 -0
  148. package/dist/services/VoyagerRateLimit.js.map +1 -0
  149. package/dist/services/index.d.ts +4 -4
  150. package/dist/services/index.d.ts.map +1 -1
  151. package/dist/services/index.js +2 -2
  152. package/dist/services/index.js.map +1 -1
  153. package/dist/types/api.d.ts +48 -1
  154. package/dist/types/api.d.ts.map +1 -1
  155. package/dist/types/event.d.ts +43 -2
  156. package/dist/types/event.d.ts.map +1 -1
  157. package/dist/types/index.d.ts +4 -4
  158. package/dist/types/index.d.ts.map +1 -1
  159. package/dist/types/market.d.ts +64 -0
  160. package/dist/types/market.d.ts.map +1 -1
  161. package/dist/types/position.d.ts +8 -0
  162. package/dist/types/position.d.ts.map +1 -1
  163. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"trader-events.d.ts","sourceRoot":"","sources":["../../../src/api/routes/trader-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAyB1E,eAAO,MAAM,kBAAkB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BnD,CAAC"}
1
+ {"version":3,"file":"trader-events.d.ts","sourceRoot":"","sources":["../../../src/api/routes/trader-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAkB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAwB1F,eAAO,MAAM,kBAAkB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwClD,CAAC"}
@@ -22,14 +22,19 @@ function toTraderEventResponse(row) {
22
22
  };
23
23
  }
24
24
  export const traderEventsRoutes = (db) => new Elysia().get('/api/positions/:trader/events', ({ params, query }) => {
25
- const page = parseInt(query['page'] ?? '1', 10);
26
- const pageSize = Math.min(parseInt(query['pageSize'] ?? '100', 10), 500);
25
+ const typedQuery = query;
26
+ const page = Math.max(1, parseInt(typedQuery.page ?? '1', 10) || 1);
27
+ const pageSize = Math.min(Math.max(1, parseInt(typedQuery.pageSize ?? '100', 10) || 100), 500);
27
28
  const offset = (page - 1) * pageSize;
28
29
  const opts = { limit: pageSize, offset };
29
- if (query['from'])
30
- opts.fromTimestamp = parseInt(query['from'], 10);
31
- if (query['to'])
32
- opts.toTimestamp = parseInt(query['to'], 10);
30
+ const from = parseInt(typedQuery.from ?? '', 10);
31
+ const to = parseInt(typedQuery.to ?? '', 10);
32
+ if (Number.isFinite(from)) {
33
+ opts.fromTimestamp = from;
34
+ }
35
+ if (Number.isFinite(to)) {
36
+ opts.toTimestamp = to;
37
+ }
33
38
  const rows = db.events.findByTrader(params.trader, opts);
34
39
  const total = db.events.countByTrader(params.trader);
35
40
  const response = {
@@ -1 +1 @@
1
- {"version":3,"file":"trader-events.js","sourceRoot":"","sources":["../../../src/api/routes/trader-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,SAAS,qBAAqB,CAC5B,GAA8C;IAE9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,WAAW;QAC1B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACxD,IAAI,MAAM,EAAE,CAAC,GAAG,CACd,+BAA+B,EAC/B,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,QAAQ,CAAE,KAAK,CAAC,MAAM,CAAY,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,QAAQ,CAAE,KAAK,CAAC,UAAU,CAAY,IAAI,KAAK,EAAE,EAAE,CAAC,EACpD,GAAG,CACJ,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAErC,MAAM,IAAI,GAKN,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9D,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,QAAQ,GAA2C;QACvD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACrC,KAAK;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"trader-events.js","sourceRoot":"","sources":["../../../src/api/routes/trader-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,qBAAqB,CAC5B,GAA8C;IAE9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,WAAW;QAC1B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACxD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,KAKlB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAC9D,GAAG,CACJ,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAErC,MAAM,IAAI,GAKN,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,QAAQ,GAA2C;QACvD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACrC,KAAK;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/api/routes/ws.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,QAAQ,GAAI,UAAU,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB9C,CAAC"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/api/routes/ws.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,QAAQ,GAAI,UAAU,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB9C,CAAC"}
@@ -13,15 +13,16 @@ export const wsRoutes = (eventBus) => new Elysia().ws('/ws', {
13
13
  }
14
14
  });
15
15
  // Store unsubscribe on the ws context for cleanup
16
- ws.data['_unsubscribe'] = unsubscribe;
16
+ ws.data._unsubscribe = unsubscribe;
17
17
  },
18
18
  message(_ws, _message) {
19
19
  // We don't expect messages from clients; could add filtering later
20
20
  },
21
21
  close(ws) {
22
- const unsub = ws.data['_unsubscribe'];
23
- if (unsub)
22
+ const unsub = ws.data._unsubscribe;
23
+ if (unsub) {
24
24
  unsub();
25
+ }
25
26
  },
26
27
  });
27
28
  //# sourceMappingURL=ws.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/api/routes/ws.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAyB,EAAE,EAAE,CACpD,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;IACrB,IAAI,CAAC,EAAE;QACL,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAe,EAAE,EAAE;YACzD,IAAI,CAAC;gBACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,kDAAkD;QACjD,EAAE,CAAC,IAAgC,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ;QACnB,mEAAmE;IACrE,CAAC;IACD,KAAK,CAAC,EAAE;QACN,MAAM,KAAK,GAAI,EAAE,CAAC,IAAgC,CAAC,cAAc,CAEpD,CAAC;QACd,IAAI,KAAK;YAAE,KAAK,EAAE,CAAC;IACrB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/api/routes/ws.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAyB,EAAE,EAAE,CACpD,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;IACrB,IAAI,CAAC,EAAE;QAEL,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAe,EAAE,EAAE;YACzD,IAAI,CAAC;gBACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,kDAAkD;QACjD,EAAE,CAAC,IAAe,CAAC,YAAY,GAAG,WAAW,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ;QACnB,mEAAmE;IACrE,CAAC;IACD,KAAK,CAAC,EAAE;QAEN,MAAM,KAAK,GAAI,EAAE,CAAC,IAAe,CAAC,YAAY,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * IndexerClient — Effect Context.Tag service definition for the indexer REST API.
3
3
  */
4
4
  import { Context, type Effect } from 'effect';
5
- import type { HealthResponse, MarketResponse, EventResponse, TraderPositionResponse, TraderEventResponse, TraderStatsResponse, RankingEntry, PaginatedResponse } from '../types/api';
5
+ import type { AdminCreateMarketBody, AdminUpdateMarketBody, EventResponse, HealthResponse, MarketResponse, PaginatedResponse, RankingEntry, TraderEventResponse, TraderPositionResponse, TraderStatsResponse } from '../types/api';
6
6
  declare const IndexerApiError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
7
7
  readonly _tag: "IndexerApiError";
8
8
  } & Readonly<A>;
@@ -31,6 +31,15 @@ export interface IndexerClientService {
31
31
  readonly getTraderEvents: (trader: string, params?: EventQueryParams) => Effect.Effect<PaginatedResponse<TraderEventResponse>, IndexerApiError>;
32
32
  readonly getTraderStats: (trader: string) => Effect.Effect<TraderStatsResponse, IndexerApiError>;
33
33
  readonly getRankings: (params?: RankingQueryParams) => Effect.Effect<readonly RankingEntry[], IndexerApiError>;
34
+ readonly createMarket: (body: AdminCreateMarketBody) => Effect.Effect<{
35
+ success: true;
36
+ }, IndexerApiError>;
37
+ readonly updateMarket: (address: string, body: AdminUpdateMarketBody) => Effect.Effect<{
38
+ success: true;
39
+ }, IndexerApiError>;
40
+ readonly deleteMarket: (address: string) => Effect.Effect<{
41
+ success: true;
42
+ }, IndexerApiError>;
34
43
  }
35
44
  declare const IndexerClient_base: Context.TagClass<IndexerClient, "IndexerClient", IndexerClientService>;
36
45
  export declare class IndexerClient extends IndexerClient_base {
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClient.d.ts","sourceRoot":"","sources":["../../src/client/IndexerClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EAClB,MAAM,cAAc,CAAC;;;;AAItB,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;CAAG;AAIL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAEtE,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CACtC,SAAS,cAAc,EAAE,EACzB,eAAe,CAChB,CAAC;IAEF,QAAQ,CAAC,SAAS,EAAE,CAClB,OAAO,EAAE,MAAM,KACZ,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAEpD,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,KACtB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;IAEtE,QAAQ,CAAC,gBAAgB,EAAE,CACzB,OAAO,EAAE,MAAM,KACZ,MAAM,CAAC,MAAM,CAAC,SAAS,sBAAsB,EAAE,EAAE,eAAe,CAAC,CAAC;IAEvE,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,SAAS,sBAAsB,EAAE,EAAE,eAAe,CAAC,CAAC;IAEvE,QAAQ,CAAC,eAAe,EAAE,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,KACtB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,eAAe,CAAC,CAAC;IAE5E,QAAQ,CAAC,cAAc,EAAE,CACvB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IAEzD,QAAQ,CAAC,WAAW,EAAE,CACpB,MAAM,CAAC,EAAE,kBAAkB,KACxB,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;CAC9D;;AAID,qBAAa,aAAc,SAAQ,kBAGhC;CAAG"}
1
+ {"version":3,"file":"IndexerClient.d.ts","sourceRoot":"","sources":["../../src/client/IndexerClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClient.js","sourceRoot":"","sources":["../../src/client/IndexerClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAe,MAAM,QAAQ,CAAC;AAYpD,wEAAwE;AAExE,MAAM,OAAO,eAAgB,SAAQ,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAIrE;CAAG;AAwDL,wEAAwE;AAExE,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAG5D;CAAG"}
1
+ {"version":3,"file":"IndexerClient.js","sourceRoot":"","sources":["../../src/client/IndexerClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAe,MAAM,QAAQ,CAAC;AAcpD,wEAAwE;AAExE,MAAM,OAAO,eAAgB,SAAQ,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAIrE;CAAG;AA8DL,wEAAwE;AAExE,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAG5D;CAAG"}
@@ -5,6 +5,7 @@ import { Layer } from 'effect';
5
5
  import { IndexerClient } from './IndexerClient';
6
6
  export interface IndexerClientConfig {
7
7
  readonly baseUrl: string;
8
+ readonly adminApiKey?: string;
8
9
  }
9
10
  export declare const IndexerClientLive: (config: IndexerClientConfig) => Layer.Layer<IndexerClient>;
10
11
  //# sourceMappingURL=IndexerClientLive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClientLive.d.ts","sourceRoot":"","sources":["../../src/client/IndexerClientLive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAKjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AA2CD,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,mBAAmB,KAC1B,KAAK,CAAC,KAAK,CAAC,aAAa,CAyC3B,CAAC"}
1
+ {"version":3,"file":"IndexerClientLive.d.ts","sourceRoot":"","sources":["../../src/client/IndexerClientLive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAmB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AA8FD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,mBAAmB,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAkDxF,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * IndexerClientLive — fetch-based Layer implementation.
3
3
  */
4
4
  import { Effect, Layer } from 'effect';
5
- import { IndexerClient, IndexerApiError } from './IndexerClient';
5
+ import { IndexerApiError, IndexerClient } from './IndexerClient';
6
6
  // ── Helpers ──────────────────────────────────────────────────────────
7
7
  function fetchJson(url) {
8
8
  return Effect.tryPromise({
@@ -18,8 +18,9 @@ function fetchJson(url) {
18
18
  return (await response.json());
19
19
  },
20
20
  catch: (e) => {
21
- if (e instanceof IndexerApiError)
21
+ if (e instanceof IndexerApiError) {
22
22
  return e;
23
+ }
23
24
  return new IndexerApiError({
24
25
  message: e instanceof Error ? e.message : 'Unknown indexer API error',
25
26
  url,
@@ -28,16 +29,56 @@ function fetchJson(url) {
28
29
  });
29
30
  }
30
31
  function appendEventParams(url, params) {
31
- if (!params)
32
+ if (!params) {
32
33
  return;
33
- if (params.page !== undefined)
34
+ }
35
+ if (params.page !== undefined) {
34
36
  url.searchParams.set('page', params.page.toString());
35
- if (params.pageSize !== undefined)
37
+ }
38
+ if (params.pageSize !== undefined) {
36
39
  url.searchParams.set('pageSize', params.pageSize.toString());
37
- if (params.from !== undefined)
40
+ }
41
+ if (params.from !== undefined) {
38
42
  url.searchParams.set('from', params.from.toString());
39
- if (params.to !== undefined)
43
+ }
44
+ if (params.to !== undefined) {
40
45
  url.searchParams.set('to', params.to.toString());
46
+ }
47
+ }
48
+ function fetchJsonWithAuth(method, url, apiKey, body) {
49
+ if (!apiKey) {
50
+ return Effect.fail(new IndexerApiError({ message: 'Admin API key not configured', url }));
51
+ }
52
+ return Effect.tryPromise({
53
+ try: async () => {
54
+ const response = await fetch(url, {
55
+ method,
56
+ headers: {
57
+ Authorization: `Bearer ${apiKey}`,
58
+ 'Content-Type': 'application/json',
59
+ },
60
+ body: body !== undefined ? JSON.stringify(body) : undefined,
61
+ });
62
+ if (!response.ok) {
63
+ const text = await response.text().catch(() => response.statusText);
64
+ throw new IndexerApiError({
65
+ message: `Indexer API ${response.status}: ${text}`,
66
+ status: response.status,
67
+ url,
68
+ });
69
+ }
70
+ return (await response.json());
71
+ },
72
+ catch: (e) => {
73
+ if (e instanceof IndexerApiError) {
74
+ return e;
75
+ }
76
+ return new IndexerApiError({
77
+ message: e instanceof Error ? e.message : 'Unknown indexer API error',
78
+ url,
79
+ });
80
+ },
81
+ });
41
82
  }
42
83
  // ── Layer factory ────────────────────────────────────────────────────
43
84
  export const IndexerClientLive = (config) => {
@@ -61,10 +102,15 @@ export const IndexerClientLive = (config) => {
61
102
  getTraderStats: (trader) => fetchJson(`${base}/api/positions/${trader}/stats`),
62
103
  getRankings: (params) => {
63
104
  const url = new URL(`${base}/api/rankings`);
64
- if (params?.limit !== undefined)
105
+ if (params?.limit !== undefined) {
65
106
  url.searchParams.set('limit', params.limit.toString());
107
+ }
66
108
  return fetchJson(url.toString());
67
109
  },
110
+ // ── Admin operations ──────────────────────────────────────────
111
+ createMarket: (body) => fetchJsonWithAuth('POST', `${base}/admin/markets`, config.adminApiKey, body),
112
+ updateMarket: (address, body) => fetchJsonWithAuth('PUT', `${base}/admin/markets/${address}`, config.adminApiKey, body),
113
+ deleteMarket: (address) => fetchJsonWithAuth('DELETE', `${base}/admin/markets/${address}`, config.adminApiKey),
68
114
  }));
69
115
  };
70
116
  //# sourceMappingURL=IndexerClientLive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClientLive.js","sourceRoot":"","sources":["../../src/client/IndexerClientLive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexerClientLive.js","sourceRoot":"","sources":["../../src/client/IndexerClientLive.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  * Standalone Effect convenience functions — each requires IndexerClient in R.
3
3
  */
4
4
  import { Effect } from 'effect';
5
- import { IndexerClient, IndexerApiError } from './IndexerClient';
5
+ import type { AdminCreateMarketBody, AdminUpdateMarketBody, EventResponse, PaginatedResponse, RankingEntry } from '../types/api';
6
6
  import type { EventQueryParams, RankingQueryParams } from './IndexerClient';
7
- import type { EventResponse, RankingEntry, PaginatedResponse } from '../types/api';
7
+ import { type IndexerApiError, IndexerClient } from './IndexerClient';
8
8
  export declare const checkHealth: Effect.Effect<import(".").HealthResponse, IndexerApiError, IndexerClient>;
9
9
  export declare const getMarkets: Effect.Effect<readonly import(".").MarketResponse[], IndexerApiError, IndexerClient>;
10
10
  export declare const getMarket: (address: string) => Effect.Effect<import(".").MarketResponse, IndexerApiError, IndexerClient>;
@@ -27,6 +27,15 @@ export declare const getMarketWithEvents: (address: string, params?: EventQueryP
27
27
  market: import(".").MarketResponse;
28
28
  events: PaginatedResponse<EventResponse>;
29
29
  }, IndexerApiError, IndexerClient>;
30
+ export declare const createMarket: (body: AdminCreateMarketBody) => Effect.Effect<{
31
+ success: true;
32
+ }, IndexerApiError, IndexerClient>;
33
+ export declare const updateMarket: (address: string, body: AdminUpdateMarketBody) => Effect.Effect<{
34
+ success: true;
35
+ }, IndexerApiError, IndexerClient>;
36
+ export declare const deleteMarket: (address: string) => Effect.Effect<{
37
+ success: true;
38
+ }, IndexerApiError, IndexerClient>;
30
39
  /**
31
40
  * Parallel fetch of trader positions + ranking + stats + recent events.
32
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../../src/client/convenience.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,WAAW,2EAEvB,CAAC;AAEF,eAAO,MAAM,UAAU,sFAEtB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,8EAC6B,CAAC;AAEvE,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,SAAS,gBAAgB,oFAIxB,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,iGAG7C,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,iGAG9C,CAAC;AAEJ,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,SAAS,gBAAgB,sGAIxB,CAAC;AAEJ,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,mFAG1C,CAAC;AAEJ,eAAO,MAAM,WAAW,GAAI,SAAS,kBAAkB,2EAGpD,CAAC;AAIJ;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,OAAO;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,4EAqB1B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,gBAAgB;;;kCAUxB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM;;;;;;kCAsB5C,CAAC"}
1
+ {"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../../src/client/convenience.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAItE,eAAO,MAAM,WAAW,2EAA6D,CAAC;AAEtF,eAAO,MAAM,UAAU,sFAAiE,CAAC;AAEzF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,8EAC6B,CAAC;AAEvE,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,EAAE,SAAS,gBAAgB,oFACU,CAAC;AAErF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,iGAC6B,CAAC;AAE9E,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,iGAC6B,CAAC;AAE/E,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,SAAS,gBAAgB,sGACU,CAAC;AAEpF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,mFAC6B,CAAC;AAE3E,eAAO,MAAM,WAAW,GAAI,SAAS,kBAAkB,2EACgB,CAAC;AAIxE;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,EAAE,OAAO;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,4EAoB5E,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,SAAS,gBAAgB;;;kCAS3E,CAAC;AAIJ,eAAO,MAAM,YAAY,GAAI,MAAM,qBAAqB;;kCACc,CAAC;AAEvE,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,MAAM,qBAAqB;;kCACM,CAAC;AAEhF,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM;;kCAC6B,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM;;;;;;kCAsB5C,CAAC"}
@@ -35,6 +35,10 @@ export const getMarketWithEvents = (address, params) => Effect.flatMap(IndexerCl
35
35
  market: client.getMarket(address),
36
36
  events: client.getMarketEvents(address, params),
37
37
  }, { concurrency: 'unbounded' }));
38
+ // ── Admin operations ────────────────────────────────────────────────
39
+ export const createMarket = (body) => Effect.flatMap(IndexerClient, (client) => client.createMarket(body));
40
+ export const updateMarket = (address, body) => Effect.flatMap(IndexerClient, (client) => client.updateMarket(address, body));
41
+ export const deleteMarket = (address) => Effect.flatMap(IndexerClient, (client) => client.deleteMarket(address));
38
42
  /**
39
43
  * Parallel fetch of trader positions + ranking + stats + recent events.
40
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"convenience.js","sourceRoot":"","sources":["../../src/client/convenience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convenience.js","sourceRoot":"","sources":["../../src/client/convenience.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@
3
3
  *
4
4
  * This module is completely isolated from server-side code (no bun:sqlite, no elysia).
5
5
  */
6
- export { IndexerClient, IndexerApiError, type IndexerClientService, type EventQueryParams, type RankingQueryParams, } from './IndexerClient';
7
- export { IndexerClientLive, type IndexerClientConfig, } from './IndexerClientLive';
8
- export { checkHealth, getMarkets, getMarket, getMarketEvents, getMarketTraders, getTraderPositions, getTraderEvents, getTraderStats, getRankings, getAllMarketEvents, getMarketWithEvents, getTraderProfile, } from './convenience';
9
- export { type TraderActivityEntry, type PnlDataPoint, type TraderProfile, computePnlHistory, getTraderActivity, getFullTraderProfile, } from './trader-stats';
10
- export type { HealthResponse, MarketResponse, MarketStateResponse, EventResponse, TraderPositionResponse, TraderEventResponse, TraderStatsResponse, RankingEntry, PaginatedResponse, } from '../types/api';
6
+ export type { AdminCreateMarketBody, AdminUpdateMarketBody, EventResponse, HealthResponse, MarketResponse, MarketStateResponse, MultinoulliMarketStateResponse, PaginatedResponse, RankingEntry, TraderEventResponse, TraderPositionResponse, TraderStatsResponse, } from '../types/api';
7
+ export type { MarketType } from '../types/market';
8
+ export { checkHealth, createMarket, deleteMarket, getAllMarketEvents, getMarket, getMarketEvents, getMarkets, getMarketTraders, getMarketWithEvents, getRankings, getTraderEvents, getTraderPositions, getTraderProfile, getTraderStats, updateMarket, } from './convenience';
9
+ export { type EventQueryParams, IndexerApiError, IndexerClient, type IndexerClientService, type RankingQueryParams, } from './IndexerClient';
10
+ export { type IndexerClientConfig, IndexerClientLive, } from './IndexerClientLive';
11
+ export { computePnlHistory, getFullTraderProfile, getTraderActivity, type PnlDataPoint, type TraderActivityEntry, type TraderProfile, } from './trader-stats';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,8BAA8B,EAC9B,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,gBAAgB,EACrB,eAAe,EACf,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,mBAAmB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC"}
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * This module is completely isolated from server-side code (no bun:sqlite, no elysia).
5
5
  */
6
+ // ── Convenience functions ────────────────────────────────────────────
7
+ export { checkHealth, createMarket, deleteMarket, getAllMarketEvents, getMarket, getMarketEvents, getMarkets, getMarketTraders, getMarketWithEvents, getRankings, getTraderEvents, getTraderPositions, getTraderProfile, getTraderStats, updateMarket, } from './convenience';
6
8
  // ── Service & error ──────────────────────────────────────────────────
7
- export { IndexerClient, IndexerApiError, } from './IndexerClient';
9
+ export { IndexerApiError, IndexerClient, } from './IndexerClient';
8
10
  // ── Layer ────────────────────────────────────────────────────────────
9
11
  export { IndexerClientLive, } from './IndexerClientLive';
10
- // ── Convenience functions ────────────────────────────────────────────
11
- export { checkHealth, getMarkets, getMarket, getMarketEvents, getMarketTraders, getTraderPositions, getTraderEvents, getTraderStats, getRankings, getAllMarketEvents, getMarketWithEvents, getTraderProfile, } from './convenience';
12
12
  // ── Trader stats ─────────────────────────────────────────────────────
13
- export { computePnlHistory, getTraderActivity, getFullTraderProfile, } from './trader-stats';
13
+ export { computePnlHistory, getFullTraderProfile, getTraderActivity, } from './trader-stats';
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wEAAwE;AACxE,OAAO,EACL,aAAa,EACb,eAAe,GAIhB,MAAM,iBAAiB,CAAC;AAEzB,wEAAwE;AACxE,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAE7B,wEAAwE;AACxE,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,wEAAwE;AACxE,OAAO,EAIL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,wEAAwE;AACxE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,wEAAwE;AACxE,OAAO,EAEL,eAAe,EACf,aAAa,GAGd,MAAM,iBAAiB,CAAC;AACzB,wEAAwE;AACxE,OAAO,EAEL,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,wEAAwE;AACxE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAIlB,MAAM,gBAAgB,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * Trader stats module — composed types and functions the webapp profile needs.
3
3
  */
4
4
  import { Effect } from 'effect';
5
- import { IndexerClient, IndexerApiError } from './IndexerClient';
6
- import type { TraderStatsResponse, TraderPositionResponse, RankingEntry } from '../types/api';
5
+ import type { RankingEntry, TraderPositionResponse, TraderStatsResponse } from '../types/api';
6
+ import { type IndexerApiError, IndexerClient } from './IndexerClient';
7
7
  export interface TraderActivityEntry {
8
8
  readonly timestamp: number;
9
9
  readonly marketAddress: string;
@@ -1 +1 @@
1
- {"version":3,"file":"trader-stats.d.ts","sourceRoot":"","sources":["../../src/client/trader-stats.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAEV,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACb,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;CAC9C;AAuBD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GACvC,SAAS,YAAY,EAAE,CAmBzB;AAID;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,yEAsB5C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM;;;;;;;kCA+BhD,CAAC"}
1
+ {"version":3,"file":"trader-stats.d.ts","sourceRoot":"","sources":["../../src/client/trader-stats.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EACV,YAAY,EAEZ,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAItE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;CAC9C;AAsBD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GACvC,SAAS,YAAY,EAAE,CAmBzB;AAID;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,yEAiB5C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM;;;;;;;kCA6BhD,CAAC"}
@@ -31,7 +31,7 @@ export function computePnlHistory(activity) {
31
31
  const collateral = entry.collateralPosted;
32
32
  if (collateral !== null) {
33
33
  const val = parseFloat(collateral);
34
- if (!isNaN(val)) {
34
+ if (!Number.isNaN(val)) {
35
35
  cumulative += val;
36
36
  }
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trader-stats.js","sourceRoot":"","sources":["../../src/client/trader-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trader-stats.js","sourceRoot":"","sources":["../../src/client/trader-stats.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -10,6 +10,9 @@ export interface IndexerConfig {
10
10
  readonly eventPollIntervalMs: number;
11
11
  readonly statePollIntervalMs: number;
12
12
  readonly positionPollIntervalMs: number;
13
+ readonly voyagerMaxRetries: number;
14
+ readonly voyagerBaseDelayMs: number;
15
+ readonly voyagerMinRequestIntervalMs: number;
13
16
  }
14
17
  export declare function loadConfig(): IndexerConfig;
15
18
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC;AAED,wBAAgB,UAAU,IAAI,aAAa,CAyB1C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;CAC9C;AAED,wBAAgB,UAAU,IAAI,aAAa,CAkB1C"}
package/dist/config.js CHANGED
@@ -8,12 +8,14 @@ export function loadConfig() {
8
8
  voyagerApiKey,
9
9
  adminApiKey,
10
10
  dbPath: process.env['DB_PATH'] ?? './data/indexer.db',
11
- port: parseInt(process.env['PORT'] ?? '3000', 10),
12
- starknetRpcUrl: process.env['STARKNET_RPC_URL'] ??
13
- 'https://api.cartridge.gg/x/starknet/sepolia',
14
- eventPollIntervalMs: parseInt(process.env['EVENT_POLL_INTERVAL_MS'] ?? '15000', 10),
15
- statePollIntervalMs: parseInt(process.env['STATE_POLL_INTERVAL_MS'] ?? '30000', 10),
16
- positionPollIntervalMs: parseInt(process.env['POSITION_POLL_INTERVAL_MS'] ?? '60000', 10),
11
+ port: envInt('PORT', 3000),
12
+ starknetRpcUrl: process.env['STARKNET_RPC_URL'] ?? 'https://api.cartridge.gg/x/starknet/sepolia',
13
+ eventPollIntervalMs: envInt('EVENT_POLL_INTERVAL_MS', 15000),
14
+ statePollIntervalMs: envInt('STATE_POLL_INTERVAL_MS', 30000),
15
+ positionPollIntervalMs: envInt('POSITION_POLL_INTERVAL_MS', 60000),
16
+ voyagerMaxRetries: envInt('VOYAGER_MAX_RETRIES', 5),
17
+ voyagerBaseDelayMs: envInt('VOYAGER_BASE_DELAY_MS', 3000),
18
+ voyagerMinRequestIntervalMs: envInt('VOYAGER_MIN_REQUEST_INTERVAL_MS', 250),
17
19
  };
18
20
  }
19
21
  function requireEnv(name) {
@@ -23,4 +25,15 @@ function requireEnv(name) {
23
25
  }
24
26
  return value;
25
27
  }
28
+ function envInt(name, fallback) {
29
+ const raw = process.env[name];
30
+ if (!raw) {
31
+ return fallback;
32
+ }
33
+ const parsed = parseInt(raw, 10);
34
+ if (!Number.isFinite(parsed) || parsed < 0) {
35
+ throw new Error(`Invalid integer for ${name}: "${raw}"`);
36
+ }
37
+ return parsed;
38
+ }
26
39
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,UAAU,UAAU;IACxB,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO;QACL,aAAa;QACb,WAAW;QACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,mBAAmB;QACrD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;QACjD,cAAc,EACZ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC/B,6CAA6C;QAC/C,mBAAmB,EAAE,QAAQ,CAC3B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,OAAO,EAChD,EAAE,CACH;QACD,mBAAmB,EAAE,QAAQ,CAC3B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,OAAO,EAChD,EAAE,CACH;QACD,sBAAsB,EAAE,QAAQ,CAC9B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,OAAO,EACnD,EAAE,CACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,MAAM,UAAU,UAAU;IACxB,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO;QACL,aAAa;QACb,WAAW;QACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,mBAAmB;QACrD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1B,cAAc,EACZ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,6CAA6C;QAClF,mBAAmB,EAAE,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC;QAC5D,mBAAmB,EAAE,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC;QAC5D,sBAAsB,EAAE,MAAM,CAAC,2BAA2B,EAAE,KAAK,CAAC;QAClE,iBAAiB,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACnD,kBAAkB,EAAE,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC;QACzD,2BAA2B,EAAE,MAAM,CAAC,iCAAiC,EAAE,GAAG,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,QAAgB;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAYvD;AAED,wBAAgB,sBAAsB,IAAI,QAAQ,CAIjD"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAevD;AAED,wBAAgB,sBAAsB,IAAI,QAAQ,CAIjD"}
@@ -8,9 +8,12 @@ export function createDatabase(dbPath) {
8
8
  // Ensure the directory exists
9
9
  mkdirSync(dirname(dbPath), { recursive: true });
10
10
  const db = new Database(dbPath, { create: true });
11
- // Enable WAL mode for better concurrent read performance
11
+ // Performance pragmas
12
12
  db.exec('PRAGMA journal_mode = WAL');
13
+ db.exec('PRAGMA synchronous = NORMAL');
13
14
  db.exec('PRAGMA busy_timeout = 5000');
15
+ db.exec('PRAGMA cache_size = -10000'); // 10MB
16
+ db.exec('PRAGMA temp_store = MEMORY');
14
17
  db.exec('PRAGMA foreign_keys = ON');
15
18
  return db;
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,8BAA8B;IAC9B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,yDAAyD;IACzD,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,8BAA8B;IAC9B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,sBAAsB;IACtB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACvC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO;IAC9C,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Event insert (dedup by tx_hash UNIQUE) + queries.
3
3
  */
4
4
  import type { Database } from 'bun:sqlite';
5
- import type { MarketEventRow, InsertEventInput } from '../../types';
5
+ import type { InsertEventInput, MarketEventRow } from '../../types';
6
6
  export declare class EventRepository {
7
7
  private readonly db;
8
8
  constructor(db: Database);
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAgCxC,WAAW,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM;IAoCxD,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,GACL,cAAc,EAAE;IA0BnB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAS5C,UAAU,IAAI,MAAM;IAOpB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,GACL,CAAC,cAAc,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;IA4BhD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IASrC,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;CAUrD"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpE,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAuCxC,WAAW,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM;IA2CxD,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,GACL,cAAc,EAAE;IA0BnB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAO5C,UAAU,IAAI,MAAM;IAKpB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,GACL,CAAC,cAAc,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;IA4BhD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOrC,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;CAUrD"}