@the-situation/indexer 0.11.6 → 0.11.8

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 (51) hide show
  1. package/dist/api/app.d.ts +34 -0
  2. package/dist/api/app.d.ts.map +1 -1
  3. package/dist/api/app.js +2 -1
  4. package/dist/api/app.js.map +1 -1
  5. package/dist/api/routes/index.d.ts +1 -0
  6. package/dist/api/routes/index.d.ts.map +1 -1
  7. package/dist/api/routes/index.js +1 -0
  8. package/dist/api/routes/index.js.map +1 -1
  9. package/dist/api/routes/lp-history.d.ts +69 -0
  10. package/dist/api/routes/lp-history.d.ts.map +1 -0
  11. package/dist/api/routes/lp-history.js +46 -0
  12. package/dist/api/routes/lp-history.js.map +1 -0
  13. package/dist/api/routes/market-lps.d.ts.map +1 -1
  14. package/dist/api/routes/market-lps.js +6 -0
  15. package/dist/api/routes/market-lps.js.map +1 -1
  16. package/dist/api/routes/markets.d.ts +0 -3
  17. package/dist/api/routes/markets.d.ts.map +1 -1
  18. package/dist/api/routes/markets.js +21 -2
  19. package/dist/api/routes/markets.js.map +1 -1
  20. package/dist/db/repositories/lp-position.d.ts +20 -0
  21. package/dist/db/repositories/lp-position.d.ts.map +1 -1
  22. package/dist/db/repositories/lp-position.js +59 -1
  23. package/dist/db/repositories/lp-position.js.map +1 -1
  24. package/dist/db/repositories/multinoulli-market-state.d.ts +5 -2
  25. package/dist/db/repositories/multinoulli-market-state.d.ts.map +1 -1
  26. package/dist/db/repositories/multinoulli-market-state.js +5 -6
  27. package/dist/db/repositories/multinoulli-market-state.js.map +1 -1
  28. package/dist/db/schema.d.ts.map +1 -1
  29. package/dist/db/schema.js +16 -2
  30. package/dist/db/schema.js.map +1 -1
  31. package/dist/etl/event-indexer.d.ts.map +1 -1
  32. package/dist/etl/event-indexer.js +46 -4
  33. package/dist/etl/event-indexer.js.map +1 -1
  34. package/dist/etl/lp-position-refresher.d.ts +7 -0
  35. package/dist/etl/lp-position-refresher.d.ts.map +1 -1
  36. package/dist/etl/lp-position-refresher.js +32 -0
  37. package/dist/etl/lp-position-refresher.js.map +1 -1
  38. package/dist/etl/state-refresher.d.ts +0 -3
  39. package/dist/etl/state-refresher.d.ts.map +1 -1
  40. package/dist/etl/state-refresher.js +18 -2
  41. package/dist/etl/state-refresher.js.map +1 -1
  42. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  43. package/dist/layers/ChainReaderLive.js +1 -2
  44. package/dist/layers/ChainReaderLive.js.map +1 -1
  45. package/dist/types/api.d.ts +16 -2
  46. package/dist/types/api.d.ts.map +1 -1
  47. package/dist/types/index.d.ts +1 -1
  48. package/dist/types/index.d.ts.map +1 -1
  49. package/dist/types/market.d.ts +7 -4
  50. package/dist/types/market.d.ts.map +1 -1
  51. package/package.json +1 -1
package/dist/api/app.d.ts CHANGED
@@ -218,6 +218,40 @@ export declare function createApp(config: AppConfig): Elysia<"", {
218
218
  };
219
219
  };
220
220
  };
221
+ } & {
222
+ api: {
223
+ markets: {
224
+ ":address": {
225
+ lps: {
226
+ ":provider": {
227
+ history: {
228
+ get: {
229
+ body: unknown;
230
+ params: {
231
+ address: string;
232
+ provider: string;
233
+ } & {};
234
+ query: unknown;
235
+ headers: unknown;
236
+ response: {
237
+ 200: import("../types").LPHistoryEventResponse[];
238
+ 422: {
239
+ type: "validation";
240
+ on: string;
241
+ summary?: string;
242
+ message?: string;
243
+ found?: unknown;
244
+ property?: string;
245
+ expected?: string;
246
+ };
247
+ };
248
+ };
249
+ };
250
+ };
251
+ };
252
+ };
253
+ };
254
+ };
221
255
  } & {
222
256
  api: {
223
257
  positions: {
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/api/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAoB1E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmB1C"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/api/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAqB1E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoB1C"}
package/dist/api/app.js CHANGED
@@ -4,7 +4,7 @@
4
4
  import { cors } from '@elysiajs/cors';
5
5
  import { Elysia } from 'elysia';
6
6
  import { errorHandler } from './middleware/error-handler';
7
- import { activityFeedRoutes, adminRoutes, adminSubscriptionRoutes, spiceFaucetRoutes, healthRoutes, marketEventsRoutes, marketLPsRoutes, marketRoutes, marketTradersRoutes, multinoulliSnapshotsRoute, positionRoutes, rankingRoutes, traderEventsRoutes, traderStatsRoutes, wsRoutes, } from './routes';
7
+ import { activityFeedRoutes, adminRoutes, adminSubscriptionRoutes, spiceFaucetRoutes, healthRoutes, lpHistoryRoutes, marketEventsRoutes, marketLPsRoutes, marketRoutes, marketTradersRoutes, multinoulliSnapshotsRoute, positionRoutes, rankingRoutes, traderEventsRoutes, traderStatsRoutes, wsRoutes, } from './routes';
8
8
  export function createApp(config) {
9
9
  return new Elysia()
10
10
  .use(cors())
@@ -15,6 +15,7 @@ export function createApp(config) {
15
15
  .use(multinoulliSnapshotsRoute(config.db))
16
16
  .use(marketTradersRoutes(config.db))
17
17
  .use(marketLPsRoutes(config.db))
18
+ .use(lpHistoryRoutes(config.db))
18
19
  .use(positionRoutes(config.db))
19
20
  .use(traderEventsRoutes(config.db))
20
21
  .use(traderStatsRoutes(config.db))
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/api/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GACT,MAAM,UAAU,CAAC;AASlB,MAAM,UAAU,SAAS,CAAC,MAAiB;IACzC,OAAO,IAAI,MAAM,EAAE;SAChB,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,YAAY,CAAC;SACjB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;SAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC5B,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACzC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACnC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC/B,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC9B,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC7B,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SAC/C,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SAC3D,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/api/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GACT,MAAM,UAAU,CAAC;AASlB,MAAM,UAAU,SAAS,CAAC,MAAiB;IACzC,OAAO,IAAI,MAAM,EAAE;SAChB,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,YAAY,CAAC;SACjB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;SAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC5B,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACzC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACnC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC/B,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC/B,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC9B,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC7B,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SAC/C,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SAC3D,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -2,6 +2,7 @@ export { activityFeedRoutes } from './activity-feed';
2
2
  export { adminRoutes } from './admin';
3
3
  export { adminSubscriptionRoutes } from './admin-subscriptions';
4
4
  export { healthRoutes } from './health';
5
+ export { lpHistoryRoutes } from './lp-history';
5
6
  export { marketEventsRoutes } from './market-events';
6
7
  export { marketLPsRoutes } from './market-lps';
7
8
  export { marketTradersRoutes } from './market-traders';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC"}
@@ -2,6 +2,7 @@ export { activityFeedRoutes } from './activity-feed';
2
2
  export { adminRoutes } from './admin';
3
3
  export { adminSubscriptionRoutes } from './admin-subscriptions';
4
4
  export { healthRoutes } from './health';
5
+ export { lpHistoryRoutes } from './lp-history';
5
6
  export { marketEventsRoutes } from './market-events';
6
7
  export { marketLPsRoutes } from './market-lps';
7
8
  export { marketTradersRoutes } from './market-traders';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * GET /api/markets/:address/lps/:provider/history — LP transaction history.
3
+ */
4
+ import { Elysia } from 'elysia';
5
+ import type { DatabaseService } from '../../services/Database';
6
+ import type { LPHistoryEventResponse } from '../../types';
7
+ export declare const lpHistoryRoutes: (db: DatabaseService) => Elysia<"", {
8
+ decorator: {};
9
+ store: {};
10
+ derive: {};
11
+ resolve: {};
12
+ }, {
13
+ typebox: {};
14
+ error: {};
15
+ }, {
16
+ schema: {};
17
+ standaloneSchema: {};
18
+ macro: {};
19
+ macroFn: {};
20
+ parser: {};
21
+ response: {};
22
+ }, {
23
+ api: {
24
+ markets: {
25
+ ":address": {
26
+ lps: {
27
+ ":provider": {
28
+ history: {
29
+ get: {
30
+ body: unknown;
31
+ params: {
32
+ address: string;
33
+ provider: string;
34
+ } & {};
35
+ query: unknown;
36
+ headers: unknown;
37
+ response: {
38
+ 200: LPHistoryEventResponse[];
39
+ 422: {
40
+ type: "validation";
41
+ on: string;
42
+ summary?: string;
43
+ message?: string;
44
+ found?: unknown;
45
+ property?: string;
46
+ expected?: string;
47
+ };
48
+ };
49
+ };
50
+ };
51
+ };
52
+ };
53
+ };
54
+ };
55
+ };
56
+ }, {
57
+ derive: {};
58
+ resolve: {};
59
+ schema: {};
60
+ standaloneSchema: {};
61
+ response: {};
62
+ }, {
63
+ derive: {};
64
+ resolve: {};
65
+ schema: {};
66
+ standaloneSchema: {};
67
+ response: {};
68
+ }>;
69
+ //# sourceMappingURL=lp-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp-history.d.ts","sourceRoot":"","sources":["../../../src/api/routes/lp-history.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,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAyC1D,eAAO,MAAM,eAAe,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB/C,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * GET /api/markets/:address/lps/:provider/history — LP transaction history.
3
+ */
4
+ import { Elysia } from 'elysia';
5
+ function toLPHistoryResponse(row) {
6
+ // Attempt to extract shares from raw_data if available
7
+ let shares = null;
8
+ if (row.raw_data) {
9
+ try {
10
+ const data = JSON.parse(row.raw_data);
11
+ if (data.length >= 5) {
12
+ // Shares are encoded as SQ128x128 in data[0..3], neg in data[4]
13
+ const sharesRaw = BigInt(data[0]) +
14
+ (BigInt(data[1]) << 64n) +
15
+ (BigInt(data[2]) << 128n) +
16
+ (BigInt(data[3]) << 192n);
17
+ shares = sharesRaw.toString();
18
+ }
19
+ }
20
+ catch {
21
+ // raw_data not parseable — leave shares as null
22
+ }
23
+ }
24
+ return {
25
+ eventType: row.event_type,
26
+ timestamp: row.timestamp,
27
+ tokenAmount: row.collateral_posted,
28
+ shares,
29
+ txHash: row.tx_hash,
30
+ blockNumber: row.block_number,
31
+ };
32
+ }
33
+ export const lpHistoryRoutes = (db) => new Elysia().get('/api/markets/:address/lps/:provider/history', ({ params }) => {
34
+ const marketAddress = params.address.toLowerCase();
35
+ const provider = params.provider.toLowerCase();
36
+ const rows = db.db
37
+ .query(`SELECT event_type, timestamp, collateral_posted, raw_data, tx_hash, block_number
38
+ FROM market_events
39
+ WHERE market_address = ?
40
+ AND LOWER(trader) = ?
41
+ AND event_type IN ('liquidity_added', 'liquidity_removed', 'market_initialized')
42
+ ORDER BY timestamp ASC, block_number ASC, id ASC`)
43
+ .all(marketAddress, provider);
44
+ return rows.map(toLPHistoryResponse);
45
+ });
46
+ //# sourceMappingURL=lp-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp-history.js","sourceRoot":"","sources":["../../../src/api/routes/lp-history.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,SAAS,mBAAmB,CAAC,GAAe;IAC1C,uDAAuD;IACvD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAa,CAAC;YAClD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,gEAAgE;gBAChE,MAAM,SAAS,GACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;oBAChB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,GAAG,CAAC;oBACzB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC;oBAC1B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC7B,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,WAAW,EAAE,GAAG,CAAC,iBAAiB;QAClC,MAAM;QACN,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,GAAG,CAAC,YAAY;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAmB,EAAE,EAAE,CACrD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,6CAA6C,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC7E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE/C,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE;SACf,KAAK,CACJ;;;;;0DAKkD,CACnD;SACA,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAiB,CAAC;IAEhD,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"market-lps.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-lps.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,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAqBtD,eAAO,MAAM,eAAe,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/C,CAAC"}
1
+ {"version":3,"file":"market-lps.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-lps.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,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA2BtD,eAAO,MAAM,eAAe,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/C,CAAC"}
@@ -16,6 +16,12 @@ function toLPResponse(row) {
16
16
  withdrawalCount: row.withdrawal_count,
17
17
  firstDepositAt: row.first_deposit_at,
18
18
  lastActivityAt: row.last_activity_at,
19
+ entryMean: row.entry_mean,
20
+ entrySigma: row.entry_sigma,
21
+ entryK: row.entry_k,
22
+ componentLambda: row.component_lambda,
23
+ claimedAt: row.claimed_at,
24
+ claimPayout: row.claim_payout,
19
25
  fetchedAt: row.fetched_at,
20
26
  };
21
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"market-lps.js","sourceRoot":"","sources":["../../../src/api/routes/market-lps.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,SAAS,YAAY,CAAC,GAAkB;IACtC,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAmB,EAAE,EAAE,CACrD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3D,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"market-lps.js","sourceRoot":"","sources":["../../../src/api/routes/market-lps.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,SAAS,YAAY,CAAC,GAAkB;IACtC,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAmB,EAAE,EAAE,CACrD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3D,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
@@ -1,6 +1,3 @@
1
- /**
2
- * GET /api/markets, GET /api/markets/:address
3
- */
4
1
  import { Elysia } from 'elysia';
5
2
  import type { DatabaseService } from '../../services/Database';
6
3
  import type { MarketResponse } from '../../types';
@@ -1 +1 @@
1
- {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../src/api/routes/markets.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,EACV,cAAc,EAOf,MAAM,aAAa,CAAC;AAqHrB,eAAO,MAAM,YAAY,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1C,CAAC"}
1
+ {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,aAAa,CAAC;AAwIrB,eAAO,MAAM,YAAY,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1C,CAAC"}
@@ -1,7 +1,27 @@
1
1
  /**
2
2
  * GET /api/markets, GET /api/markets/:address
3
3
  */
4
+ import { MultinoulliMatrixConstraintMode } from '@the-situation/abi';
4
5
  import { Elysia } from 'elysia';
6
+ /**
7
+ * Inverse of `matrixConstraintModeToU8` in state-refresher.ts. Maps the
8
+ * u8 discriminant persisted in `multinoulli_market_state.matrix_constraint_mode`
9
+ * back into the ABI-level enum variant name.
10
+ */
11
+ function matrixConstraintModeFromU8(raw) {
12
+ switch (raw) {
13
+ case 0:
14
+ return MultinoulliMatrixConstraintMode.Disabled;
15
+ case 1:
16
+ return MultinoulliMatrixConstraintMode.RowAndCol;
17
+ case 2:
18
+ return MultinoulliMatrixConstraintMode.RowOnly;
19
+ case 3:
20
+ return MultinoulliMatrixConstraintMode.ColOnly;
21
+ default:
22
+ return MultinoulliMatrixConstraintMode.Disabled;
23
+ }
24
+ }
5
25
  // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: mapping preserves explicit field-level normalization.
6
26
  function toMarketResponse(market, state, multinoulliState = null) {
7
27
  let parsedTopics = [];
@@ -56,10 +76,9 @@ function toMarketResponse(market, state, multinoulliState = null) {
56
76
  isPaused: multinoulliState.is_paused === 1,
57
77
  isSettled: multinoulliState.is_settled === 1,
58
78
  settlementOutcomes,
59
- matrixEnabled: multinoulliState.matrix_enabled === 1,
79
+ matrixMode: matrixConstraintModeFromU8(multinoulliState.matrix_constraint_mode),
60
80
  matrixRows: multinoulliState.matrix_rows,
61
81
  matrixCols: multinoulliState.matrix_cols,
62
- matrixEnforceFullRow: multinoulliState.matrix_enforce_full_row === 1,
63
82
  payoutAmplifier: multinoulliState.payout_amplifier ?? 1,
64
83
  fetchedAt: multinoulliState.fetched_at,
65
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"markets.js","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markets.js","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,12 @@ export interface LPPositionRow {
15
15
  readonly withdrawal_count: number;
16
16
  readonly first_deposit_at: number | null;
17
17
  readonly last_activity_at: number | null;
18
+ readonly entry_mean: number | null;
19
+ readonly entry_sigma: number | null;
20
+ readonly entry_k: number | null;
21
+ readonly component_lambda: number | null;
22
+ readonly claimed_at: number | null;
23
+ readonly claim_payout: number | null;
18
24
  readonly fetched_at: number;
19
25
  }
20
26
  export interface UpsertLPPositionInput {
@@ -33,6 +39,20 @@ export declare class LPPositionRepository {
33
39
  /** Recompute deposit/withdrawal totals from market_events. Idempotent — safe
34
40
  * to call on every event cycle without double-counting. */
35
41
  recomputeFromEvents(marketAddress: string, provider: string): void;
42
+ /**
43
+ * If entry_mean is null, populate entry distribution + component_lambda from market_state.
44
+ *
45
+ * Lambda formula: `k × √(2σ√π)` — the AMM's full-pool lambda for the distribution.
46
+ * This is the full lambda, not scaled by share fraction. Consumers must scale by
47
+ * `shares / totalShares` to get the per-LP component lambda. We store the full value
48
+ * because the share fraction at LP-entry time isn't readily available in this context,
49
+ * and the consumer already has the shares data from `getLPShares`.
50
+ */
51
+ private populateEntryDistributionIfMissing;
52
+ /** Set entry distribution fields if not yet populated. */
53
+ upsertEntryDistribution(marketAddress: string, provider: string, mean: number | null, sigma: number | null, k: number | null): void;
54
+ /** Mark an LP position as claimed (called when a position_claimed event is processed). */
55
+ markClaimed(marketAddress: string, provider: string, claimedAt: number, claimPayout: number): void;
36
56
  /** Update chain-read fields (shares, value, PnL). */
37
57
  upsert(input: UpsertLPPositionInput): void;
38
58
  findByMarket(marketAddress: string): LPPositionRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"lp-position.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lp-position.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,8DAA8D;IAC9D,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS7D;gEAC4D;IAC5D,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqDlE,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAqB1C,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,EAAE;IAMpD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAMjD,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAQtE,OAAO,IAAI,aAAa,EAAE;IAI1B,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAK9C"}
1
+ {"version":3,"file":"lp-position.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lp-position.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export class LPPositionRepository {
27
27
  MAX(timestamp) AS last_activity_at
28
28
  FROM market_events
29
29
  WHERE market_address = ? AND LOWER(trader) = ?
30
- AND event_type IN ('liquidity_added', 'liquidity_removed')`)
30
+ AND event_type IN ('liquidity_added', 'liquidity_removed', 'market_initialized')`)
31
31
  .get(mAddr, pAddr);
32
32
  if (!row)
33
33
  return;
@@ -41,6 +41,64 @@ export class LPPositionRepository {
41
41
  last_activity_at = ?
42
42
  WHERE market_address = ? AND provider = ?`)
43
43
  .run(row.total_deposited, row.total_withdrawn, row.deposit_count, row.withdrawal_count, row.first_deposit_at, row.last_activity_at, mAddr, pAddr);
44
+ // Populate entry distribution from market_state if not yet set.
45
+ // The initial LP sets the market distribution, so their entry distribution
46
+ // equals the market's initial distribution at the time of their first deposit.
47
+ this.populateEntryDistributionIfMissing(mAddr, pAddr);
48
+ }
49
+ /**
50
+ * If entry_mean is null, populate entry distribution + component_lambda from market_state.
51
+ *
52
+ * Lambda formula: `k × √(2σ√π)` — the AMM's full-pool lambda for the distribution.
53
+ * This is the full lambda, not scaled by share fraction. Consumers must scale by
54
+ * `shares / totalShares` to get the per-LP component lambda. We store the full value
55
+ * because the share fraction at LP-entry time isn't readily available in this context,
56
+ * and the consumer already has the shares data from `getLPShares`.
57
+ */
58
+ populateEntryDistributionIfMissing(marketAddress, provider) {
59
+ const existing = this.db
60
+ .query('SELECT entry_mean FROM lp_positions WHERE market_address = ? AND provider = ?')
61
+ .get(marketAddress, provider);
62
+ if (existing?.entry_mean != null)
63
+ return; // already populated
64
+ // Use the market's current distribution as fallback (works for the bootstrapper LP
65
+ // who set the initial distribution, and is a reasonable approximation for later LPs).
66
+ const state = this.db
67
+ .query('SELECT mean, sigma, k FROM market_state WHERE market_address = ?')
68
+ .get(marketAddress);
69
+ if (!state || state.mean == null || state.sigma == null || state.k == null)
70
+ return;
71
+ // Lambda = k × √(2σ√π) — the AMM's invariant-derived scaling factor.
72
+ const lambda = state.k * Math.sqrt(2 * state.sigma * Math.sqrt(Math.PI));
73
+ this.db
74
+ .query(`UPDATE lp_positions
75
+ SET entry_mean = ?,
76
+ entry_sigma = ?,
77
+ entry_k = ?,
78
+ component_lambda = ?
79
+ WHERE market_address = ? AND provider = ?`)
80
+ .run(state.mean, state.sigma, state.k, lambda, marketAddress, provider);
81
+ }
82
+ /** Set entry distribution fields if not yet populated. */
83
+ upsertEntryDistribution(marketAddress, provider, mean, sigma, k) {
84
+ if (mean == null)
85
+ return;
86
+ this.db
87
+ .query(`UPDATE lp_positions
88
+ SET entry_mean = ?,
89
+ entry_sigma = ?,
90
+ entry_k = ?
91
+ WHERE market_address = ? AND provider = ? AND entry_mean IS NULL`)
92
+ .run(mean, sigma, k, marketAddress.toLowerCase(), provider.toLowerCase());
93
+ }
94
+ /** Mark an LP position as claimed (called when a position_claimed event is processed). */
95
+ markClaimed(marketAddress, provider, claimedAt, claimPayout) {
96
+ this.db
97
+ .query(`UPDATE lp_positions
98
+ SET claimed_at = ?,
99
+ claim_payout = ?
100
+ WHERE market_address = ? AND provider = ?`)
101
+ .run(claimedAt, claimPayout, marketAddress.toLowerCase(), provider.toLowerCase());
44
102
  }
45
103
  /** Update chain-read fields (shares, value, PnL). */
46
104
  upsert(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"lp-position.js","sourceRoot":"","sources":["../../../src/db/repositories/lp-position.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,8DAA8D;IAC9D,cAAc,CAAC,aAAqB,EAAE,QAAgB;QACpD,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;uBACe,CAChB;aACA,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;gEAC4D;IAC5D,mBAAmB,CAAC,aAAqB,EAAE,QAAgB;QACzD,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAErC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,KAAK,CACJ;;;;;;;;;;;sEAW8D,CAC/D;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAOT,CAAC;QAEX,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;mDAO2C,CAC5C;aACA,GAAG,CACF,GAAG,CAAC,eAAe,EACnB,GAAG,CAAC,eAAe,EACnB,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,gBAAgB,EACpB,GAAG,CAAC,gBAAgB,EACpB,GAAG,CAAC,gBAAgB,EACpB,KAAK,EACL,KAAK,CACN,CAAC;IACN,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,KAA4B;QACjC,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;mDAM2C,CAC5C;aACA,GAAG,CACF,KAAK,CAAC,MAAM,IAAI,IAAI,EACpB,KAAK,CAAC,aAAa,IAAI,IAAI,EAC3B,KAAK,CAAC,aAAa,IAAI,IAAI,EAC3B,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,EAClC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAC7B,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,iFAAiF,CAAC;aACxF,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAoB,CAAC;IACzD,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,+CAA+C,CAAC;aACtD,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAoB,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,aAAqB,EAAE,QAAgB;QAC7C,OACE,IAAI,CAAC,EAAE;aACJ,KAAK,CAAC,sEAAsE,CAAC;aAC7E,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,WAAW,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAqB,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,aAAqB;QAClC,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,mDAAmD,CAAC;aAC1D,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"lp-position.js","sourceRoot":"","sources":["../../../src/db/repositories/lp-position.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,13 @@ export interface UpsertMultinoulliMarketStateInput {
15
15
  readonly is_paused: boolean;
16
16
  readonly is_settled: boolean;
17
17
  readonly settlement_outcomes_json: string;
18
- readonly matrix_enabled: boolean;
18
+ /**
19
+ * Matrix constraint mode as u8 discriminant:
20
+ * 0 = Disabled, 1 = RowAndCol, 2 = RowOnly, 3 = ColOnly.
21
+ */
22
+ readonly matrix_constraint_mode: number;
19
23
  readonly matrix_rows: number;
20
24
  readonly matrix_cols: number;
21
- readonly matrix_enforce_full_row: boolean;
22
25
  readonly payout_amplifier: number | null;
23
26
  }
24
27
  export declare class MultinoulliMarketStateRepository {
@@ -1 +1 @@
1
- {"version":3,"file":"multinoulli-market-state.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/multinoulli-market-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,qBAAa,gCAAgC;IAC/B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,IAAI;IA+CtD,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI;IAQrE,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC;CAUvD"}
1
+ {"version":3,"file":"multinoulli-market-state.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/multinoulli-market-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,qBAAa,gCAAgC;IAC/B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,IAAI;IA6CtD,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI;IAQrE,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC;CAUvD"}
@@ -8,9 +8,9 @@ export class MultinoulliMarketStateRepository {
8
8
  .query(`INSERT INTO multinoulli_market_state
9
9
  (market_address, outcome_count, probs_json, k, effective_k,
10
10
  total_shares, total_backing, is_initialized, is_paused, is_settled,
11
- settlement_outcomes_json, matrix_enabled, matrix_rows, matrix_cols,
12
- matrix_enforce_full_row, payout_amplifier, fetched_at)
13
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, unixepoch())
11
+ settlement_outcomes_json, matrix_constraint_mode, matrix_rows, matrix_cols,
12
+ payout_amplifier, fetched_at)
13
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, unixepoch())
14
14
  ON CONFLICT(market_address) DO UPDATE SET
15
15
  outcome_count = excluded.outcome_count,
16
16
  probs_json = excluded.probs_json,
@@ -22,13 +22,12 @@ export class MultinoulliMarketStateRepository {
22
22
  is_paused = excluded.is_paused,
23
23
  is_settled = excluded.is_settled,
24
24
  settlement_outcomes_json = excluded.settlement_outcomes_json,
25
- matrix_enabled = excluded.matrix_enabled,
25
+ matrix_constraint_mode = excluded.matrix_constraint_mode,
26
26
  matrix_rows = excluded.matrix_rows,
27
27
  matrix_cols = excluded.matrix_cols,
28
- matrix_enforce_full_row = excluded.matrix_enforce_full_row,
29
28
  payout_amplifier = excluded.payout_amplifier,
30
29
  fetched_at = unixepoch()`)
31
- .run(input.market_address, input.outcome_count, input.probs_json, input.k, input.effective_k, input.total_shares, input.total_backing, input.is_initialized ? 1 : 0, input.is_paused ? 1 : 0, input.is_settled ? 1 : 0, input.settlement_outcomes_json, input.matrix_enabled ? 1 : 0, input.matrix_rows, input.matrix_cols, input.matrix_enforce_full_row ? 1 : 0, input.payout_amplifier);
30
+ .run(input.market_address, input.outcome_count, input.probs_json, input.k, input.effective_k, input.total_shares, input.total_backing, input.is_initialized ? 1 : 0, input.is_paused ? 1 : 0, input.is_settled ? 1 : 0, input.settlement_outcomes_json, input.matrix_constraint_mode, input.matrix_rows, input.matrix_cols, input.payout_amplifier);
32
31
  }
33
32
  findByMarket(marketAddress) {
34
33
  return (this.db
@@ -1 +1 @@
1
- {"version":3,"file":"multinoulli-market-state.js","sourceRoot":"","sources":["../../../src/db/repositories/multinoulli-market-state.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,gCAAgC;IACd;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAAwC;QAC7C,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;;;;;;;;;;;;;;;;oCAsB4B,CAC7B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,CAAC,EACP,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,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,wBAAwB,EAC9B,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,KAAK,CAAC,gBAAgB,CACvB,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,iEAAiE,CAAC;aACxE,GAAG,CAAC,aAAa,CAAsC,IAAI,IAAI,CACnE,CAAC;IACJ,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,CAAC,wCAAwC,CAAC;aAC/C,GAAG,EAAiC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqC,CAAC;QACzD,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":"multinoulli-market-state.js","sourceRoot":"","sources":["../../../src/db/repositories/multinoulli-market-state.ts"],"names":[],"mappings":"AA4BA,MAAM,OAAO,gCAAgC;IACd;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAAwC;QAC7C,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;;;;;;;;;;;;;;;;;;oCAqB4B,CAC7B;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,CAAC,EACP,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,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,wBAAwB,EAC9B,KAAK,CAAC,sBAAsB,EAC5B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,gBAAgB,CACvB,CAAC;IACN,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,iEAAiE,CAAC;aACxE,GAAG,CAAC,aAAa,CAAsC,IAAI,IAAI,CACnE,CAAC;IACJ,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,CAAC,wCAAwC,CAAC;aAC/C,GAAG,EAAiC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqC,CAAC;QACzD,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 +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;AAyU3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA4CnD"}
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;AAgV3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAoDnD"}
package/dist/db/schema.js CHANGED
@@ -49,10 +49,11 @@ CREATE TABLE IF NOT EXISTS multinoulli_market_state (
49
49
  is_paused INTEGER DEFAULT 0,
50
50
  is_settled INTEGER DEFAULT 0,
51
51
  settlement_outcomes_json TEXT DEFAULT '[]',
52
- matrix_enabled INTEGER DEFAULT 0,
52
+ -- Matrix constraint mode: 0=Disabled, 1=RowAndCol, 2=RowOnly, 3=ColOnly
53
+ -- Mirrors Cairo MultinoulliMatrixConstraintMode discriminant order.
54
+ matrix_constraint_mode INTEGER DEFAULT 0,
53
55
  matrix_rows INTEGER DEFAULT 0,
54
56
  matrix_cols INTEGER DEFAULT 0,
55
- matrix_enforce_full_row INTEGER DEFAULT 0,
56
57
  payout_amplifier REAL DEFAULT 1.0,
57
58
  fetched_at INTEGER DEFAULT (unixepoch())
58
59
  );
@@ -178,6 +179,12 @@ CREATE TABLE IF NOT EXISTS lp_positions (
178
179
  withdrawal_count INTEGER NOT NULL DEFAULT 0,
179
180
  first_deposit_at INTEGER,
180
181
  last_activity_at INTEGER,
182
+ entry_mean REAL,
183
+ entry_sigma REAL,
184
+ entry_k REAL,
185
+ component_lambda REAL,
186
+ claimed_at INTEGER,
187
+ claim_payout REAL,
181
188
  fetched_at INTEGER NOT NULL DEFAULT (unixepoch()),
182
189
  PRIMARY KEY (market_address, provider)
183
190
  );
@@ -340,6 +347,13 @@ export function initializeSchema(db) {
340
347
  safeAddColumn(db, 'markets', 'row_labels', 'TEXT DEFAULT NULL');
341
348
  safeAddColumn(db, 'markets', 'col_labels', 'TEXT DEFAULT NULL');
342
349
  safeAddColumn(db, 'markets', 'resolution_source', 'TEXT DEFAULT NULL');
350
+ // LP position entry distribution + claim tracking
351
+ safeAddColumn(db, 'lp_positions', 'entry_mean', 'REAL');
352
+ safeAddColumn(db, 'lp_positions', 'entry_sigma', 'REAL');
353
+ safeAddColumn(db, 'lp_positions', 'entry_k', 'REAL');
354
+ safeAddColumn(db, 'lp_positions', 'component_lambda', 'REAL');
355
+ safeAddColumn(db, 'lp_positions', 'claimed_at', 'INTEGER');
356
+ safeAddColumn(db, 'lp_positions', 'claim_payout', 'REAL');
343
357
  // Rebuild event table when upgrading from legacy tx_hash-unique schema.
344
358
  migrateMarketEventsTable(db);
345
359
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}