@the-situation/indexer 0.9.3 → 0.11.1

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 (155) hide show
  1. package/README.md +5 -1
  2. package/dist/api/app.d.ts +42 -0
  3. package/dist/api/app.d.ts.map +1 -1
  4. package/dist/api/app.js +3 -2
  5. package/dist/api/app.js.map +1 -1
  6. package/dist/api/middleware/admin-auth.d.ts.map +1 -1
  7. package/dist/api/middleware/admin-auth.js +6 -4
  8. package/dist/api/middleware/admin-auth.js.map +1 -1
  9. package/dist/api/middleware/error-handler.d.ts.map +1 -1
  10. package/dist/api/middleware/error-handler.js +0 -1
  11. package/dist/api/middleware/error-handler.js.map +1 -1
  12. package/dist/api/routes/admin.d.ts +2 -0
  13. package/dist/api/routes/admin.d.ts.map +1 -1
  14. package/dist/api/routes/admin.js +27 -6
  15. package/dist/api/routes/admin.js.map +1 -1
  16. package/dist/api/routes/index.d.ts +4 -3
  17. package/dist/api/routes/index.d.ts.map +1 -1
  18. package/dist/api/routes/index.js +4 -3
  19. package/dist/api/routes/index.js.map +1 -1
  20. package/dist/api/routes/market-events.d.ts.map +1 -1
  21. package/dist/api/routes/market-events.js +12 -8
  22. package/dist/api/routes/market-events.js.map +1 -1
  23. package/dist/api/routes/market-traders.d.ts.map +1 -1
  24. package/dist/api/routes/market-traders.js +1 -1
  25. package/dist/api/routes/market-traders.js.map +1 -1
  26. package/dist/api/routes/markets.d.ts.map +1 -1
  27. package/dist/api/routes/markets.js +18 -9
  28. package/dist/api/routes/markets.js.map +1 -1
  29. package/dist/api/routes/multinoulli-snapshots.d.ts +78 -0
  30. package/dist/api/routes/multinoulli-snapshots.d.ts.map +1 -0
  31. package/dist/api/routes/multinoulli-snapshots.js +33 -0
  32. package/dist/api/routes/multinoulli-snapshots.js.map +1 -0
  33. package/dist/api/routes/rankings.d.ts.map +1 -1
  34. package/dist/api/routes/rankings.js +2 -1
  35. package/dist/api/routes/rankings.js.map +1 -1
  36. package/dist/api/routes/trader-events.d.ts +1 -1
  37. package/dist/api/routes/trader-events.d.ts.map +1 -1
  38. package/dist/api/routes/trader-events.js +9 -6
  39. package/dist/api/routes/trader-events.js.map +1 -1
  40. package/dist/api/routes/ws.d.ts.map +1 -1
  41. package/dist/api/routes/ws.js +4 -3
  42. package/dist/api/routes/ws.js.map +1 -1
  43. package/dist/client/IndexerClient.d.ts +2 -1
  44. package/dist/client/IndexerClient.d.ts.map +1 -1
  45. package/dist/client/IndexerClient.js.map +1 -1
  46. package/dist/client/IndexerClientLive.d.ts.map +1 -1
  47. package/dist/client/IndexerClientLive.js +24 -9
  48. package/dist/client/IndexerClientLive.js.map +1 -1
  49. package/dist/client/convenience.d.ts +3 -2
  50. package/dist/client/convenience.d.ts.map +1 -1
  51. package/dist/client/convenience.js +1 -0
  52. package/dist/client/convenience.js.map +1 -1
  53. package/dist/client/index.d.ts +5 -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.map +1 -1
  62. package/dist/config.js +5 -4
  63. package/dist/config.js.map +1 -1
  64. package/dist/db/repositories/event.d.ts +3 -2
  65. package/dist/db/repositories/event.d.ts.map +1 -1
  66. package/dist/db/repositories/event.js +17 -15
  67. package/dist/db/repositories/event.js.map +1 -1
  68. package/dist/db/repositories/index.d.ts +3 -3
  69. package/dist/db/repositories/index.d.ts.map +1 -1
  70. package/dist/db/repositories/index.js +3 -3
  71. package/dist/db/repositories/index.js.map +1 -1
  72. package/dist/db/repositories/market-state.d.ts.map +1 -1
  73. package/dist/db/repositories/market-state.js +1 -3
  74. package/dist/db/repositories/market-state.js.map +1 -1
  75. package/dist/db/repositories/market.d.ts +1 -1
  76. package/dist/db/repositories/market.d.ts.map +1 -1
  77. package/dist/db/repositories/market.js +22 -24
  78. package/dist/db/repositories/market.js.map +1 -1
  79. package/dist/db/repositories/multinoulli-snapshots.d.ts +44 -0
  80. package/dist/db/repositories/multinoulli-snapshots.d.ts.map +1 -0
  81. package/dist/db/repositories/multinoulli-snapshots.js +54 -0
  82. package/dist/db/repositories/multinoulli-snapshots.js.map +1 -0
  83. package/dist/db/repositories/position.d.ts +2 -1
  84. package/dist/db/repositories/position.d.ts.map +1 -1
  85. package/dist/db/repositories/position.js +6 -0
  86. package/dist/db/repositories/position.js.map +1 -1
  87. package/dist/db/schema.d.ts.map +1 -1
  88. package/dist/db/schema.js +127 -1
  89. package/dist/db/schema.js.map +1 -1
  90. package/dist/etl/decoder.d.ts +1 -1
  91. package/dist/etl/decoder.d.ts.map +1 -1
  92. package/dist/etl/decoder.js +233 -63
  93. package/dist/etl/decoder.js.map +1 -1
  94. package/dist/etl/event-indexer.d.ts +1 -1
  95. package/dist/etl/event-indexer.d.ts.map +1 -1
  96. package/dist/etl/event-indexer.js +36 -11
  97. package/dist/etl/event-indexer.js.map +1 -1
  98. package/dist/etl/position-refresher.d.ts +2 -2
  99. package/dist/etl/position-refresher.d.ts.map +1 -1
  100. package/dist/etl/position-refresher.js +15 -8
  101. package/dist/etl/position-refresher.js.map +1 -1
  102. package/dist/etl/scheduler.d.ts +2 -2
  103. package/dist/etl/scheduler.d.ts.map +1 -1
  104. package/dist/etl/scheduler.js +19 -23
  105. package/dist/etl/scheduler.js.map +1 -1
  106. package/dist/etl/state-refresher.d.ts +2 -2
  107. package/dist/etl/state-refresher.d.ts.map +1 -1
  108. package/dist/etl/state-refresher.js +17 -5
  109. package/dist/etl/state-refresher.js.map +1 -1
  110. package/dist/index.d.ts +3 -0
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +15 -189
  113. package/dist/index.js.map +1 -1
  114. package/dist/layers/ChainReaderLive.d.ts +2 -0
  115. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  116. package/dist/layers/ChainReaderLive.js +222 -65
  117. package/dist/layers/ChainReaderLive.js.map +1 -1
  118. package/dist/layers/DatabaseLive.d.ts +1 -1
  119. package/dist/layers/DatabaseLive.d.ts.map +1 -1
  120. package/dist/layers/DatabaseLive.js +3 -1
  121. package/dist/layers/DatabaseLive.js.map +1 -1
  122. package/dist/layers/EventBusLive.d.ts.map +1 -1
  123. package/dist/layers/EventBusLive.js +2 -2
  124. package/dist/layers/EventBusLive.js.map +1 -1
  125. package/dist/layers/VoyagerClientLive.d.ts.map +1 -1
  126. package/dist/layers/VoyagerClientLive.js +10 -6
  127. package/dist/layers/VoyagerClientLive.js.map +1 -1
  128. package/dist/layers/index.d.ts +2 -2
  129. package/dist/layers/index.d.ts.map +1 -1
  130. package/dist/layers/index.js +2 -2
  131. package/dist/layers/index.js.map +1 -1
  132. package/dist/services/ChainReader.d.ts +3 -3
  133. package/dist/services/ChainReader.d.ts.map +1 -1
  134. package/dist/services/ChainReader.js.map +1 -1
  135. package/dist/services/Database.d.ts +4 -2
  136. package/dist/services/Database.d.ts.map +1 -1
  137. package/dist/services/Database.js.map +1 -1
  138. package/dist/services/EventBus.d.ts.map +1 -1
  139. package/dist/services/EventBus.js.map +1 -1
  140. package/dist/services/VoyagerRateLimit.d.ts.map +1 -1
  141. package/dist/services/VoyagerRateLimit.js +5 -6
  142. package/dist/services/VoyagerRateLimit.js.map +1 -1
  143. package/dist/services/index.d.ts +4 -4
  144. package/dist/services/index.d.ts.map +1 -1
  145. package/dist/services/index.js +2 -2
  146. package/dist/services/index.js.map +1 -1
  147. package/dist/types/api.d.ts +11 -0
  148. package/dist/types/api.d.ts.map +1 -1
  149. package/dist/types/event.d.ts +16 -1
  150. package/dist/types/event.d.ts.map +1 -1
  151. package/dist/types/index.d.ts +4 -4
  152. package/dist/types/index.d.ts.map +1 -1
  153. package/dist/types/market.d.ts +1 -1
  154. package/dist/types/market.d.ts.map +1 -1
  155. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- export { MarketRepository } from './market';
1
+ export { CursorRepository } from './cursor';
2
2
  export { EventRepository } from './event';
3
+ export { MarketRepository } from './market';
3
4
  export { MarketStateRepository, type UpsertMarketStateInput } from './market-state';
4
- export { MultinoulliMarketStateRepository, type UpsertMultinoulliMarketStateInput } from './multinoulli-market-state';
5
+ export { MultinoulliMarketStateRepository, type UpsertMultinoulliMarketStateInput, } from './multinoulli-market-state';
5
6
  export { PositionRepository } from './position';
6
- export { CursorRepository } from './cursor';
7
7
  export { RankingRepository } from './ranking';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,gCAAgC,EAAE,KAAK,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AACtH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EACL,gCAAgC,EAChC,KAAK,iCAAiC,GACvC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,8 +1,8 @@
1
- export { MarketRepository } from './market';
1
+ export { CursorRepository } from './cursor';
2
2
  export { EventRepository } from './event';
3
+ export { MarketRepository } from './market';
3
4
  export { MarketStateRepository } from './market-state';
4
- export { MultinoulliMarketStateRepository } from './multinoulli-market-state';
5
+ export { MultinoulliMarketStateRepository, } from './multinoulli-market-state';
5
6
  export { PositionRepository } from './position';
6
- export { CursorRepository } from './cursor';
7
7
  export { RankingRepository } from './ranking';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAA+B,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,gCAAgC,EAA0C,MAAM,4BAA4B,CAAC;AACtH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAA+B,MAAM,gBAAgB,CAAC;AACpF,OAAO,EACL,gCAAgC,GAEjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"market-state.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/market-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAwC3C,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAQ1D,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;CAU5C"}
1
+ {"version":3,"file":"market-state.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/market-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAwC3C,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAQ1D,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;CAQ5C"}
@@ -32,9 +32,7 @@ export class MarketStateRepository {
32
32
  .get(marketAddress) ?? null);
33
33
  }
34
34
  findAllAsMap() {
35
- const rows = this.db
36
- .query('SELECT * FROM market_state')
37
- .all();
35
+ const rows = this.db.query('SELECT * FROM market_state').all();
38
36
  const map = new Map();
39
37
  for (const row of rows) {
40
38
  map.set(row.market_address, row);
@@ -1 +1 @@
1
- {"version":3,"file":"market-state.js","sourceRoot":"","sources":["../../../src/db/repositories/market-state.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAA6B;QAClC,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;;;;;;;;;;;;oCAkB4B,CAC7B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,CACnB,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,qDAAqD,CAAC;aAC5D,GAAG,CAAC,aAAa,CAA2B,IAAI,IAAI,CACxD,CAAC;IACJ,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,CAAC,4BAA4B,CAAC;aACnC,GAAG,EAAsB,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"market-state.js","sourceRoot":"","sources":["../../../src/db/repositories/market-state.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAA6B;QAClC,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;;;;;;;;;;;;oCAkB4B,CAC7B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,CACnB,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,qDAAqD,CAAC;aAC5D,GAAG,CAAC,aAAa,CAA2B,IAAI,IAAI,CACxD,CAAC;IACJ,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAsB,CAAC;QACnF,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -2,7 +2,7 @@
2
2
  * Market registry CRUD.
3
3
  */
4
4
  import type { Database } from 'bun:sqlite';
5
- import type { MarketRow, CreateMarketInput, UpdateMarketInput } from '../../types';
5
+ import type { CreateMarketInput, MarketRow, UpdateMarketInput } from '../../types';
6
6
  export declare class MarketRepository {
7
7
  private readonly db;
8
8
  constructor(db: Database);
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,OAAO,CAAC,UAAU,UAAQ,GAAG,SAAS,EAAE;IAOxC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQhD,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS;IA4B3C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI;IA6DnE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASpC,KAAK,IAAI,MAAM;CAMhB"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnF,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,OAAO,CAAC,UAAU,UAAQ,GAAG,SAAS,EAAE;IAOxC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAOhD,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS;IA6B3C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI;IAmEnE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOpC,KAAK,IAAI,MAAM;CAMhB"}
@@ -10,9 +10,8 @@ export class MarketRepository {
10
10
  return this.db.query(sql).all();
11
11
  }
12
12
  findByAddress(address) {
13
- return (this.db
14
- .query('SELECT * FROM markets WHERE address = ?')
15
- .get(address) ?? null);
13
+ return (this.db.query('SELECT * FROM markets WHERE address = ?').get(address) ??
14
+ null);
16
15
  }
17
16
  create(input) {
18
17
  const topics = JSON.stringify(input.topics ?? []);
@@ -26,38 +25,37 @@ export class MarketRepository {
26
25
  .run(input.address.toLowerCase(), input.title, input.description ?? '', input.category ?? '', topics, input.market_type ?? 'normal', input.x_axis_label ?? null, input.x_axis_unit ?? null, outcomeLabels, rowLabels, colLabels, input.resolution_source ?? null);
27
26
  return this.findByAddress(input.address.toLowerCase());
28
27
  }
28
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: explicit merge logic keeps update semantics deterministic.
29
29
  update(address, input) {
30
30
  const existing = this.findByAddress(address);
31
- if (!existing)
31
+ if (!existing) {
32
32
  return null;
33
+ }
33
34
  const title = input.title ?? existing.title;
34
35
  const description = input.description ?? existing.description;
35
36
  const category = input.category ?? existing.category;
36
- const topics = input.topics !== undefined
37
- ? JSON.stringify(input.topics)
38
- : existing.topics;
39
- const isActive = input.is_active !== undefined
40
- ? input.is_active
41
- ? 1
42
- : 0
43
- : existing.is_active;
37
+ const topics = input.topics !== undefined ? JSON.stringify(input.topics) : existing.topics;
38
+ const isActive = input.is_active !== undefined ? (input.is_active ? 1 : 0) : existing.is_active;
44
39
  const marketType = input.market_type ?? existing.market_type;
45
40
  // New metadata fields: undefined = keep existing, null = clear, value = set
46
- const xAxisLabel = input.x_axis_label === undefined ? existing.x_axis_label
47
- : input.x_axis_label;
48
- const xAxisUnit = input.x_axis_unit === undefined ? existing.x_axis_unit
49
- : input.x_axis_unit;
50
- const outcomeLabels = input.outcome_labels === undefined ? existing.outcome_labels
51
- : input.outcome_labels === null ? null
41
+ const xAxisLabel = input.x_axis_label === undefined ? existing.x_axis_label : input.x_axis_label;
42
+ const xAxisUnit = input.x_axis_unit === undefined ? existing.x_axis_unit : input.x_axis_unit;
43
+ const outcomeLabels = input.outcome_labels === undefined
44
+ ? existing.outcome_labels
45
+ : input.outcome_labels === null
46
+ ? null
52
47
  : JSON.stringify(input.outcome_labels);
53
- const rowLabels = input.row_labels === undefined ? existing.row_labels
54
- : input.row_labels === null ? null
48
+ const rowLabels = input.row_labels === undefined
49
+ ? existing.row_labels
50
+ : input.row_labels === null
51
+ ? null
55
52
  : JSON.stringify(input.row_labels);
56
- const colLabels = input.col_labels === undefined ? existing.col_labels
57
- : input.col_labels === null ? null
53
+ const colLabels = input.col_labels === undefined
54
+ ? existing.col_labels
55
+ : input.col_labels === null
56
+ ? null
58
57
  : JSON.stringify(input.col_labels);
59
- const resolutionSource = input.resolution_source === undefined ? existing.resolution_source
60
- : input.resolution_source;
58
+ const resolutionSource = input.resolution_source === undefined ? existing.resolution_source : input.resolution_source;
61
59
  this.db
62
60
  .query(`UPDATE markets
63
61
  SET title = ?, description = ?, category = ?, topics = ?,
@@ -1 +1 @@
1
- {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/db/repositories/market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/db/repositories/market.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Multinoulli state snapshots — historical probability vectors for time series.
3
+ *
4
+ * A new row is inserted each time the state refresher detects a probability
5
+ * change (via probs_hash), giving the frontend a time series of probability
6
+ * vectors without needing per-event RPC calls.
7
+ */
8
+ import type { Database } from 'bun:sqlite';
9
+ export interface MultinoulliSnapshotRow {
10
+ readonly id: number;
11
+ readonly market_address: string;
12
+ readonly timestamp: number;
13
+ readonly probs_json: string;
14
+ readonly probs_hash: string;
15
+ readonly outcome_count: number;
16
+ readonly matrix_rows: number;
17
+ readonly matrix_cols: number;
18
+ }
19
+ export interface InsertSnapshotInput {
20
+ readonly market_address: string;
21
+ readonly probs_json: string;
22
+ readonly probs_hash: string;
23
+ readonly outcome_count: number;
24
+ readonly matrix_rows: number;
25
+ readonly matrix_cols: number;
26
+ }
27
+ export declare class MultinoulliSnapshotsRepository {
28
+ private readonly db;
29
+ constructor(db: Database);
30
+ /**
31
+ * Insert a snapshot only if the probs have changed since the last one.
32
+ * Uses probs_hash to deduplicate — if the hash matches the latest
33
+ * snapshot for this market, the insert is skipped.
34
+ */
35
+ insertIfChanged(input: InsertSnapshotInput): boolean;
36
+ /**
37
+ * Get all snapshots for a market, ordered by timestamp ascending.
38
+ * Optionally limited to the most recent N snapshots.
39
+ */
40
+ findByMarket(marketAddress: string, limit?: number): MultinoulliSnapshotRow[];
41
+ /** Count snapshots for a market */
42
+ countByMarket(marketAddress: string): number;
43
+ }
44
+ //# sourceMappingURL=multinoulli-snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multinoulli-snapshots.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/multinoulli-snapshots.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,8BAA8B;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IA+BpD;;;OAGG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAiB7E,mCAAmC;IACnC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAM7C"}
@@ -0,0 +1,54 @@
1
+ export class MultinoulliSnapshotsRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ /**
7
+ * Insert a snapshot only if the probs have changed since the last one.
8
+ * Uses probs_hash to deduplicate — if the hash matches the latest
9
+ * snapshot for this market, the insert is skipped.
10
+ */
11
+ insertIfChanged(input) {
12
+ const latest = this.db
13
+ .query(`SELECT probs_hash FROM multinoulli_state_snapshots
14
+ WHERE market_address = ?
15
+ ORDER BY timestamp DESC LIMIT 1`)
16
+ .get(input.market_address);
17
+ if (latest?.probs_hash === input.probs_hash) {
18
+ return false; // No change — skip
19
+ }
20
+ this.db
21
+ .query(`INSERT INTO multinoulli_state_snapshots
22
+ (market_address, probs_json, probs_hash, outcome_count, matrix_rows, matrix_cols)
23
+ VALUES (?, ?, ?, ?, ?, ?)`)
24
+ .run(input.market_address, input.probs_json, input.probs_hash, input.outcome_count, input.matrix_rows, input.matrix_cols);
25
+ return true;
26
+ }
27
+ /**
28
+ * Get all snapshots for a market, ordered by timestamp ascending.
29
+ * Optionally limited to the most recent N snapshots.
30
+ */
31
+ findByMarket(marketAddress, limit) {
32
+ const sql = limit
33
+ ? `SELECT * FROM (
34
+ SELECT * FROM multinoulli_state_snapshots
35
+ WHERE market_address = ?
36
+ ORDER BY timestamp DESC
37
+ LIMIT ?
38
+ ) sub ORDER BY timestamp ASC`
39
+ : `SELECT * FROM multinoulli_state_snapshots
40
+ WHERE market_address = ?
41
+ ORDER BY timestamp ASC`;
42
+ return limit
43
+ ? this.db.query(sql).all(marketAddress, limit)
44
+ : this.db.query(sql).all(marketAddress);
45
+ }
46
+ /** Count snapshots for a market */
47
+ countByMarket(marketAddress) {
48
+ const row = this.db
49
+ .query('SELECT COUNT(*) as count FROM multinoulli_state_snapshots WHERE market_address = ?')
50
+ .get(marketAddress);
51
+ return row.count;
52
+ }
53
+ }
54
+ //# sourceMappingURL=multinoulli-snapshots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multinoulli-snapshots.js","sourceRoot":"","sources":["../../../src/db/repositories/multinoulli-snapshots.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C;;;;OAIG;IACH,eAAe,CAAC,KAA0B;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,KAAK,CACJ;;yCAEiC,CAClC;aACA,GAAG,CAAC,KAAK,CAAC,cAAc,CAAkC,CAAC;QAE9D,IAAI,MAAM,EAAE,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC,CAAC,mBAAmB;QACnC,CAAC;QAED,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;mCAE2B,CAC5B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,WAAW,CAClB,CAAC;QAEJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,aAAqB,EAAE,KAAc;QAChD,MAAM,GAAG,GAAG,KAAK;YACf,CAAC,CAAC;;;;;sCAK8B;YAChC,CAAC,CAAC;;gCAEwB,CAAC;QAE7B,OAAO,KAAK;YACV,CAAC,CAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAA8B;YAC5E,CAAC,CAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAA8B,CAAC;IAC1E,CAAC;IAED,mCAAmC;IACnC,aAAa,CAAC,aAAqB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,KAAK,CAAC,oFAAoF,CAAC;aAC3F,GAAG,CAAC,aAAa,CAAsB,CAAC;QAC3C,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;CACF"}
@@ -2,7 +2,7 @@
2
2
  * Trader position upsert + queries.
3
3
  */
4
4
  import type { Database } from 'bun:sqlite';
5
- import type { UserPositionRow, UpsertPositionInput } from '../../types';
5
+ import type { UpsertPositionInput, UserPositionRow } from '../../types';
6
6
  export declare class PositionRepository {
7
7
  private readonly db;
8
8
  constructor(db: Database);
@@ -11,5 +11,6 @@ export declare class PositionRepository {
11
11
  findByMarket(marketAddress: string): UserPositionRow[];
12
12
  findByTrader(trader: string): UserPositionRow[];
13
13
  findAll(): UserPositionRow[];
14
+ deleteByMarket(marketAddress: string): number;
14
15
  }
15
16
  //# sourceMappingURL=position.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/position.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAExE,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IA4CxC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASzD,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,EAAE;IAUtD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE;IAU/C,OAAO,IAAI,eAAe,EAAE;CAK7B"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/position.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IA4CxC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASzD,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,EAAE;IAUtD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE;IAU/C,OAAO,IAAI,eAAe,EAAE;IAM5B,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAM9C"}
@@ -53,5 +53,11 @@ export class PositionRepository {
53
53
  .query('SELECT * FROM user_positions ORDER BY market_address, trader')
54
54
  .all();
55
55
  }
56
+ deleteByMarket(marketAddress) {
57
+ const result = this.db
58
+ .query('DELETE FROM user_positions WHERE market_address = ?')
59
+ .run(marketAddress);
60
+ return result.changes;
61
+ }
56
62
  }
57
63
  //# sourceMappingURL=position.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/db/repositories/position.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAA0B;QAC/B,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;;;;;;;;;;;;;;oCAoB4B,CAC7B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAC/B,KAAK,CAAC,IAAI,IAAI,IAAI,EAClB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,gBAAgB,IAAI,SAAS,EACnC,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,WAAW,IAAI,CAAC,EACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrB,KAAK,CAAC,aAAa,IAAI,QAAQ,EAC/B,KAAK,CAAC,aAAa,IAAI,IAAI,EAC3B,KAAK,CAAC,mBAAmB,IAAI,IAAI,EACjC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CACpC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB,EAAE,MAAc;QAChD,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;uBACe,CAChB;aACA,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CACJ;;yBAEiB,CAClB;aACA,GAAG,CAAC,aAAa,CAAsB,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CACJ;;iCAEyB,CAC1B;aACA,GAAG,CAAC,MAAM,CAAsB,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,8DAA8D,CAAC;aACrE,GAAG,EAAuB,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/db/repositories/position.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAA0B;QAC/B,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;;;;;;;;;;;;;;oCAoB4B,CAC7B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAC/B,KAAK,CAAC,IAAI,IAAI,IAAI,EAClB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,gBAAgB,IAAI,SAAS,EACnC,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,WAAW,IAAI,CAAC,EACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrB,KAAK,CAAC,aAAa,IAAI,QAAQ,EAC/B,KAAK,CAAC,aAAa,IAAI,IAAI,EAC3B,KAAK,CAAC,mBAAmB,IAAI,IAAI,EACjC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CACpC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB,EAAE,MAAc;QAChD,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;uBACe,CAChB;aACA,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CACJ;;yBAEiB,CAClB;aACA,GAAG,CAAC,aAAa,CAAsB,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CACJ;;iCAEyB,CAC1B;aACA,GAAG,CAAC,MAAM,CAAsB,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,8DAA8D,CAAC;aACrE,GAAG,EAAuB,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,aAAqB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,KAAK,CAAC,qDAAqD,CAAC;aAC5D,GAAG,CAAC,aAAa,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6I3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAsBnD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqR3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA6BnD"}
package/dist/db/schema.js CHANGED
@@ -56,7 +56,8 @@ CREATE TABLE IF NOT EXISTS multinoulli_market_state (
56
56
  CREATE TABLE IF NOT EXISTS market_events (
57
57
  id INTEGER PRIMARY KEY AUTOINCREMENT,
58
58
  market_address TEXT NOT NULL REFERENCES markets(address),
59
- tx_hash TEXT NOT NULL UNIQUE,
59
+ event_uid TEXT NOT NULL UNIQUE,
60
+ tx_hash TEXT NOT NULL,
60
61
  block_number INTEGER NOT NULL,
61
62
  timestamp INTEGER NOT NULL,
62
63
  event_type TEXT NOT NULL,
@@ -74,6 +75,9 @@ CREATE TABLE IF NOT EXISTS market_events (
74
75
  is_position_sell INTEGER,
75
76
  settlement_outcome_index INTEGER,
76
77
  settlement_outcomes_json TEXT,
78
+ settlement_value REAL,
79
+ settlement_x1 REAL,
80
+ settlement_x2 REAL,
77
81
  created_at INTEGER NOT NULL DEFAULT (unixepoch())
78
82
  );
79
83
 
@@ -83,6 +87,9 @@ CREATE INDEX IF NOT EXISTS idx_events_market_block
83
87
  CREATE INDEX IF NOT EXISTS idx_events_trader
84
88
  ON market_events(trader) WHERE trader IS NOT NULL;
85
89
 
90
+ CREATE INDEX IF NOT EXISTS idx_events_trader_ts
91
+ ON market_events(trader, timestamp DESC) WHERE trader IS NOT NULL;
92
+
86
93
  CREATE INDEX IF NOT EXISTS idx_events_market_ts
87
94
  ON market_events(market_address, timestamp);
88
95
 
@@ -112,6 +119,20 @@ CREATE INDEX IF NOT EXISTS idx_positions_trader
112
119
  CREATE INDEX IF NOT EXISTS idx_markets_active
113
120
  ON markets(is_active) WHERE is_active = 1;
114
121
 
122
+ CREATE TABLE IF NOT EXISTS multinoulli_state_snapshots (
123
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
124
+ market_address TEXT NOT NULL REFERENCES markets(address),
125
+ timestamp INTEGER NOT NULL DEFAULT (unixepoch()),
126
+ probs_json TEXT NOT NULL,
127
+ probs_hash TEXT NOT NULL,
128
+ outcome_count INTEGER NOT NULL,
129
+ matrix_rows INTEGER DEFAULT 0,
130
+ matrix_cols INTEGER DEFAULT 0
131
+ );
132
+
133
+ CREATE INDEX IF NOT EXISTS idx_multinoulli_snapshots_market_ts
134
+ ON multinoulli_state_snapshots(market_address, timestamp);
135
+
115
136
  CREATE TABLE IF NOT EXISTS indexer_cursors (
116
137
  market_address TEXT PRIMARY KEY REFERENCES markets(address),
117
138
  last_block_number INTEGER NOT NULL DEFAULT 0,
@@ -131,15 +152,118 @@ function safeAddColumn(db, table, column, definition) {
131
152
  // Column already exists — ignore
132
153
  }
133
154
  }
155
+ function tableColumns(db, table) {
156
+ const rows = db.query(`PRAGMA table_info(${table})`).all();
157
+ return new Set(rows.map((r) => r.name));
158
+ }
159
+ function hasUniqueSingleColumnIndex(db, table, column) {
160
+ const indexes = db.query(`PRAGMA index_list(${table})`).all();
161
+ for (const idx of indexes) {
162
+ if (idx.unique !== 1) {
163
+ continue;
164
+ }
165
+ const cols = db.query(`PRAGMA index_info(${idx.name})`).all();
166
+ if (cols.length === 1 && cols[0]?.name === column) {
167
+ return true;
168
+ }
169
+ }
170
+ return false;
171
+ }
172
+ function migrateMarketEventsTable(db) {
173
+ const columns = tableColumns(db, 'market_events');
174
+ const hasEventUid = columns.has('event_uid');
175
+ const hasLegacyUniqueTxHash = hasUniqueSingleColumnIndex(db, 'market_events', 'tx_hash');
176
+ if (hasEventUid && !hasLegacyUniqueTxHash) {
177
+ return;
178
+ }
179
+ const hasSettlementValue = columns.has('settlement_value');
180
+ const hasSettlementX1 = columns.has('settlement_x1');
181
+ const hasSettlementX2 = columns.has('settlement_x2');
182
+ const eventUidExpr = hasEventUid
183
+ ? "COALESCE(event_uid, tx_hash || ':' || CAST(id AS TEXT))"
184
+ : "tx_hash || ':' || CAST(id AS TEXT)";
185
+ const settlementValueExpr = hasSettlementValue ? 'settlement_value' : 'NULL';
186
+ const settlementX1Expr = hasSettlementX1 ? 'settlement_x1' : 'NULL';
187
+ const settlementX2Expr = hasSettlementX2 ? 'settlement_x2' : 'NULL';
188
+ db.exec('PRAGMA foreign_keys = OFF');
189
+ db.exec('BEGIN');
190
+ try {
191
+ db.exec(`
192
+ CREATE TABLE IF NOT EXISTS market_events_v2 (
193
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
194
+ market_address TEXT NOT NULL REFERENCES markets(address),
195
+ event_uid TEXT NOT NULL UNIQUE,
196
+ tx_hash TEXT NOT NULL,
197
+ block_number INTEGER NOT NULL,
198
+ timestamp INTEGER NOT NULL,
199
+ event_type TEXT NOT NULL,
200
+ trader TEXT,
201
+ mean REAL NOT NULL,
202
+ std_dev REAL NOT NULL,
203
+ lower_bound REAL NOT NULL,
204
+ upper_bound REAL NOT NULL,
205
+ old_mean REAL,
206
+ old_std_dev REAL,
207
+ collateral_posted TEXT,
208
+ raw_data TEXT,
209
+ outcome_count INTEGER,
210
+ min_outcome_index INTEGER,
211
+ is_position_sell INTEGER,
212
+ settlement_outcome_index INTEGER,
213
+ settlement_outcomes_json TEXT,
214
+ settlement_value REAL,
215
+ settlement_x1 REAL,
216
+ settlement_x2 REAL,
217
+ created_at INTEGER NOT NULL DEFAULT (unixepoch())
218
+ );
219
+ `);
220
+ db.exec(`
221
+ INSERT INTO market_events_v2 (
222
+ id, market_address, event_uid, tx_hash, block_number, timestamp, event_type,
223
+ trader, mean, std_dev, lower_bound, upper_bound,
224
+ old_mean, old_std_dev, collateral_posted, raw_data,
225
+ outcome_count, min_outcome_index, is_position_sell,
226
+ settlement_outcome_index, settlement_outcomes_json,
227
+ settlement_value, settlement_x1, settlement_x2, created_at
228
+ )
229
+ SELECT
230
+ id, market_address, ${eventUidExpr}, tx_hash, block_number, timestamp, event_type,
231
+ trader, mean, std_dev, lower_bound, upper_bound,
232
+ old_mean, old_std_dev, collateral_posted, raw_data,
233
+ outcome_count, min_outcome_index, is_position_sell,
234
+ settlement_outcome_index, settlement_outcomes_json,
235
+ ${settlementValueExpr}, ${settlementX1Expr}, ${settlementX2Expr}, created_at
236
+ FROM market_events;
237
+ `);
238
+ db.exec('DROP TABLE market_events');
239
+ db.exec('ALTER TABLE market_events_v2 RENAME TO market_events');
240
+ db.exec('CREATE INDEX IF NOT EXISTS idx_events_market_block ON market_events(market_address, block_number)');
241
+ db.exec('CREATE INDEX IF NOT EXISTS idx_events_trader ON market_events(trader) WHERE trader IS NOT NULL');
242
+ db.exec('CREATE INDEX IF NOT EXISTS idx_events_trader_ts ON market_events(trader, timestamp DESC) WHERE trader IS NOT NULL');
243
+ db.exec('CREATE INDEX IF NOT EXISTS idx_events_market_ts ON market_events(market_address, timestamp)');
244
+ db.exec('COMMIT');
245
+ }
246
+ catch (error) {
247
+ db.exec('ROLLBACK');
248
+ throw error;
249
+ }
250
+ finally {
251
+ db.exec('PRAGMA foreign_keys = ON');
252
+ }
253
+ }
134
254
  export function initializeSchema(db) {
135
255
  db.exec(SCHEMA_DDL);
136
256
  // Migrations for existing databases
137
257
  safeAddColumn(db, 'markets', 'market_type', "TEXT NOT NULL DEFAULT 'normal'");
258
+ safeAddColumn(db, 'market_events', 'event_uid', 'TEXT');
138
259
  safeAddColumn(db, 'market_events', 'outcome_count', 'INTEGER');
139
260
  safeAddColumn(db, 'market_events', 'min_outcome_index', 'INTEGER');
140
261
  safeAddColumn(db, 'market_events', 'is_position_sell', 'INTEGER');
141
262
  safeAddColumn(db, 'market_events', 'settlement_outcome_index', 'INTEGER');
142
263
  safeAddColumn(db, 'market_events', 'settlement_outcomes_json', 'TEXT');
264
+ safeAddColumn(db, 'market_events', 'settlement_value', 'REAL');
265
+ safeAddColumn(db, 'market_events', 'settlement_x1', 'REAL');
266
+ safeAddColumn(db, 'market_events', 'settlement_x2', 'REAL');
143
267
  safeAddColumn(db, 'user_positions', 'position_type', "TEXT DEFAULT 'normal'");
144
268
  safeAddColumn(db, 'user_positions', 'outcome_count', 'INTEGER');
145
269
  safeAddColumn(db, 'user_positions', 'original_probs_json', 'TEXT');
@@ -151,5 +275,7 @@ export function initializeSchema(db) {
151
275
  safeAddColumn(db, 'markets', 'row_labels', 'TEXT DEFAULT NULL');
152
276
  safeAddColumn(db, 'markets', 'col_labels', 'TEXT DEFAULT NULL');
153
277
  safeAddColumn(db, 'markets', 'resolution_source', 'TEXT DEFAULT NULL');
278
+ // Rebuild event table when upgrading from legacy tx_hash-unique schema.
279
+ migrateMarketEventsTable(db);
154
280
  }
155
281
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHlB,CAAC;AAEF;;GAEG;AACH,SAAS,aAAa,CACpB,EAAY,EACZ,KAAa,EACb,MAAc,EACd,UAAkB;IAElB,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,eAAe,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpB,oCAAoC;IACpC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,gCAAgC,CAAC,CAAC;IAC9E,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAClE,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAC1E,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACvE,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;IAC9E,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAErE,+BAA+B;IAC/B,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAClE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACjE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACpE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * Current: MarketInitialized / TradeExecuted (SQ128x128 4-limb encoding)
7
7
  * Multinoulli: TradeExecuted (compact), MarketSettled, MarketSettledMulti
8
8
  */
9
- import type { VoyagerEvent, DecodedEvent, MarketType } from '../types';
9
+ import type { DecodedEvent, MarketType, VoyagerEvent } from '../types';
10
10
  export declare function decodeEvent(event: VoyagerEvent, marketType?: MarketType): DecodedEvent | null;
11
11
  export declare function decodeEvents(events: readonly VoyagerEvent[], marketType?: MarketType): DecodedEvent[];
12
12
  //# sourceMappingURL=decoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/etl/decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,YAAY,EAKZ,YAAY,EACZ,UAAU,EACX,MAAM,UAAU,CAAC;AAyClB,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,UAAU,CAAC,EAAE,UAAU,GACtB,YAAY,GAAG,IAAI,CAuBrB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,UAAU,CAAC,EAAE,UAAU,GACtB,YAAY,EAAE,CAYhB"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/etl/decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,YAAY,EAKZ,UAAU,EACV,YAAY,EACb,MAAM,UAAU,CAAC;AAkDlB,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CA2B7F;AAoCD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,UAAU,CAAC,EAAE,UAAU,GACtB,YAAY,EAAE,CAYhB"}