@the-situation/indexer 0.11.2 → 0.11.4

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 (95) hide show
  1. package/dist/api/app.d.ts +150 -0
  2. package/dist/api/app.d.ts.map +1 -1
  3. package/dist/api/app.js +3 -1
  4. package/dist/api/app.js.map +1 -1
  5. package/dist/api/routes/activity-feed.d.ts +54 -0
  6. package/dist/api/routes/activity-feed.d.ts.map +1 -0
  7. package/dist/api/routes/activity-feed.js +66 -0
  8. package/dist/api/routes/activity-feed.js.map +1 -0
  9. package/dist/api/routes/admin-subscriptions.d.ts +176 -0
  10. package/dist/api/routes/admin-subscriptions.d.ts.map +1 -0
  11. package/dist/api/routes/admin-subscriptions.js +69 -0
  12. package/dist/api/routes/admin-subscriptions.js.map +1 -0
  13. package/dist/api/routes/index.d.ts +2 -0
  14. package/dist/api/routes/index.d.ts.map +1 -1
  15. package/dist/api/routes/index.js +2 -0
  16. package/dist/api/routes/index.js.map +1 -1
  17. package/dist/client/IndexerClient.d.ts +8 -0
  18. package/dist/client/IndexerClient.d.ts.map +1 -1
  19. package/dist/client/IndexerClient.js.map +1 -1
  20. package/dist/client/IndexerClientLive.d.ts.map +1 -1
  21. package/dist/client/IndexerClientLive.js +28 -0
  22. package/dist/client/IndexerClientLive.js.map +1 -1
  23. package/dist/client/convenience.d.ts +2 -0
  24. package/dist/client/convenience.d.ts.map +1 -1
  25. package/dist/client/convenience.js +1 -0
  26. package/dist/client/convenience.js.map +1 -1
  27. package/dist/client/index.d.ts +2 -1
  28. package/dist/client/index.d.ts.map +1 -1
  29. package/dist/client/index.js +1 -1
  30. package/dist/client/index.js.map +1 -1
  31. package/dist/db/repositories/activity-feed.d.ts +24 -0
  32. package/dist/db/repositories/activity-feed.d.ts.map +1 -0
  33. package/dist/db/repositories/activity-feed.js +76 -0
  34. package/dist/db/repositories/activity-feed.js.map +1 -0
  35. package/dist/db/repositories/index.d.ts +2 -0
  36. package/dist/db/repositories/index.d.ts.map +1 -1
  37. package/dist/db/repositories/index.js +2 -0
  38. package/dist/db/repositories/index.js.map +1 -1
  39. package/dist/db/repositories/position.d.ts +1 -0
  40. package/dist/db/repositories/position.d.ts.map +1 -1
  41. package/dist/db/repositories/position.js +10 -4
  42. package/dist/db/repositories/position.js.map +1 -1
  43. package/dist/db/repositories/ranking.d.ts.map +1 -1
  44. package/dist/db/repositories/ranking.js +18 -10
  45. package/dist/db/repositories/ranking.js.map +1 -1
  46. package/dist/db/repositories/subscription.d.ts +18 -0
  47. package/dist/db/repositories/subscription.d.ts.map +1 -0
  48. package/dist/db/repositories/subscription.js +73 -0
  49. package/dist/db/repositories/subscription.js.map +1 -0
  50. package/dist/db/schema.d.ts.map +1 -1
  51. package/dist/db/schema.js +17 -0
  52. package/dist/db/schema.js.map +1 -1
  53. package/dist/etl/event-indexer.d.ts +1 -1
  54. package/dist/etl/position-refresher.d.ts +1 -1
  55. package/dist/etl/position-refresher.d.ts.map +1 -1
  56. package/dist/etl/position-refresher.js +62 -20
  57. package/dist/etl/position-refresher.js.map +1 -1
  58. package/dist/etl/scheduler.d.ts.map +1 -1
  59. package/dist/etl/scheduler.js +79 -14
  60. package/dist/etl/scheduler.js.map +1 -1
  61. package/dist/etl/state-refresher.d.ts +1 -1
  62. package/dist/index.js +13 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  65. package/dist/layers/ChainReaderLive.js +45 -33
  66. package/dist/layers/ChainReaderLive.js.map +1 -1
  67. package/dist/layers/DatabaseLive.d.ts.map +1 -1
  68. package/dist/layers/DatabaseLive.js +3 -1
  69. package/dist/layers/DatabaseLive.js.map +1 -1
  70. package/dist/logger.d.ts +13 -0
  71. package/dist/logger.d.ts.map +1 -0
  72. package/dist/logger.js +29 -0
  73. package/dist/logger.js.map +1 -0
  74. package/dist/services/ActivityEnricher.d.ts +29 -0
  75. package/dist/services/ActivityEnricher.d.ts.map +1 -0
  76. package/dist/services/ActivityEnricher.js +90 -0
  77. package/dist/services/ActivityEnricher.js.map +1 -0
  78. package/dist/services/Database.d.ts +3 -1
  79. package/dist/services/Database.d.ts.map +1 -1
  80. package/dist/services/Database.js.map +1 -1
  81. package/dist/services/WebhookDispatcher.d.ts +14 -0
  82. package/dist/services/WebhookDispatcher.d.ts.map +1 -0
  83. package/dist/services/WebhookDispatcher.js +122 -0
  84. package/dist/services/WebhookDispatcher.js.map +1 -0
  85. package/dist/types/activity.d.ts +89 -0
  86. package/dist/types/activity.d.ts.map +1 -0
  87. package/dist/types/activity.js +28 -0
  88. package/dist/types/activity.js.map +1 -0
  89. package/dist/types/index.d.ts +2 -0
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/index.js +1 -1
  92. package/dist/types/index.js.map +1 -1
  93. package/dist/types/position.d.ts +2 -0
  94. package/dist/types/position.d.ts.map +1 -1
  95. package/package.json +1 -1
@@ -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;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,CA0DxF,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,CAwFxF,CAAC"}
@@ -118,6 +118,34 @@ export const IndexerClientLive = (config) => {
118
118
  createMarket: (body) => fetchJsonWithAuth('POST', `${base}/admin/markets`, config.adminApiKey, body),
119
119
  updateMarket: (address, body) => fetchJsonWithAuth('PUT', `${base}/admin/markets/${address}`, config.adminApiKey, body),
120
120
  deleteMarket: (address) => fetchJsonWithAuth('DELETE', `${base}/admin/markets/${address}`, config.adminApiKey),
121
+ // ── Activity feed ──────────────────────────────────────────────
122
+ getActivityFeed: (params) => {
123
+ const url = new URL(`${base}/api/activity`);
124
+ if (params?.page !== undefined)
125
+ url.searchParams.set('page', params.page.toString());
126
+ if (params?.pageSize !== undefined)
127
+ url.searchParams.set('pageSize', params.pageSize.toString());
128
+ if (params?.eventTypes && params.eventTypes.length > 0)
129
+ url.searchParams.set('eventTypes', params.eventTypes.join(','));
130
+ if (params?.marketTypes && params.marketTypes.length > 0)
131
+ url.searchParams.set('marketTypes', params.marketTypes.join(','));
132
+ if (params?.marketAddresses && params.marketAddresses.length > 0)
133
+ url.searchParams.set('marketAddresses', params.marketAddresses.join(','));
134
+ if (params?.traders && params.traders.length > 0)
135
+ url.searchParams.set('traders', params.traders.join(','));
136
+ if (params?.minCollateral !== undefined)
137
+ url.searchParams.set('minCollateral', params.minCollateral.toString());
138
+ if (params?.from !== undefined)
139
+ url.searchParams.set('from', params.from.toString());
140
+ if (params?.to !== undefined)
141
+ url.searchParams.set('to', params.to.toString());
142
+ return fetchJson(url.toString());
143
+ },
144
+ // ── Subscription admin ─────────────────────────────────────────
145
+ getSubscriptions: () => fetchJsonWithAuth('GET', `${base}/admin/subscriptions`, config.adminApiKey),
146
+ createSubscription: (body) => fetchJsonWithAuth('POST', `${base}/admin/subscriptions`, config.adminApiKey, body),
147
+ updateSubscription: (id, body) => fetchJsonWithAuth('PUT', `${base}/admin/subscriptions/${id}`, config.adminApiKey, body),
148
+ deleteSubscription: (id) => fetchJsonWithAuth('DELETE', `${base}/admin/subscriptions/${id}`, config.adminApiKey),
121
149
  }));
122
150
  };
123
151
  //# 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":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASjE,wEAAwE;AAExE,SAAS,SAAS,CAAI,GAAW;IAC/B,OAAO,MAAM,CAAC,UAAU,CAAC;QACvB,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,eAAe,CAAC;oBACxB,OAAO,EAAE,eAAe,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;oBACjE,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QACtC,CAAC;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACzB,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;gBACrE,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAQ,EAAE,MAAyB;IAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAc,EACd,GAAW,EACX,MAA0B,EAC1B,IAAc;IAEd,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC;QACvB,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpE,MAAM,IAAI,eAAe,CAAC;oBACxB,OAAO,EAAE,eAAe,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;oBAClD,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QACtC,CAAC;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACzB,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;gBACrE,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAA2B,EAA8B,EAAE;IAC3F,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE/C,OAAO,KAAK,CAAC,OAAO,CAClB,aAAa,EACb,aAAa,CAAC,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC;QAEzC,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,cAAc,CAAC;QAElD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,OAAO,EAAE,CAAC;QAEnE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAO,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,gBAAgB,OAAO,SAAS,CAAC,CAAC;YAC7D,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,OAAO,UAAU,CAAC;QAElF,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,kBAAkB,MAAM,EAAE,CAAC;QAE5E,eAAe,EAAE,CAAC,MAAM,EAAE,MAAO,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,kBAAkB,MAAM,SAAS,CAAC,CAAC;YAC9D,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,kBAAkB,MAAM,QAAQ,CAAC;QAE9E,WAAW,EAAE,CAAC,MAAO,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,uBAAuB,EAAE,CAAC,OAAO,EAAE,KAAM,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,gBAAgB,OAAO,wBAAwB,CAAC,CAAC;YAC5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,iEAAiE;QAEjE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CACrB,iBAAiB,CAAC,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAE9E,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAC9B,iBAAiB,CAAC,KAAK,EAAE,GAAG,IAAI,kBAAkB,OAAO,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAExF,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CACxB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,IAAI,kBAAkB,OAAO,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC;QAErF,kEAAkE;QAElE,eAAe,EAAE,CAAC,MAAO,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrF,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjG,IAAI,MAAM,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxH,IAAI,MAAM,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5H,IAAI,MAAM,EAAE,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5I,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5G,IAAI,MAAM,EAAE,aAAa,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChH,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrF,IAAI,MAAM,EAAE,EAAE,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/E,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,kEAAkE;QAElE,gBAAgB,EAAE,GAAG,EAAE,CACrB,iBAAiB,CAAC,KAAK,EAAE,GAAG,IAAI,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC;QAE7E,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC3B,iBAAiB,CAAC,MAAM,EAAE,GAAG,IAAI,sBAAsB,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAEpF,kBAAkB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAC/B,iBAAiB,CAAC,KAAK,EAAE,GAAG,IAAI,wBAAwB,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAEzF,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,IAAI,wBAAwB,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC;KACvF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * Standalone Effect convenience functions — each requires IndexerClient in R.
3
3
  */
4
4
  import { Effect } from 'effect';
5
+ import type { ActivityFeedQueryParams } from '../types/activity';
5
6
  import type { AdminCreateMarketBody, AdminUpdateMarketBody, EventResponse, PaginatedResponse, RankingEntry } from '../types/api';
6
7
  import type { EventQueryParams, RankingQueryParams } from './IndexerClient';
7
8
  import { type IndexerApiError, IndexerClient } from './IndexerClient';
@@ -14,6 +15,7 @@ export declare const getTraderPositions: (trader: string) => Effect.Effect<reado
14
15
  export declare const getTraderEvents: (trader: string, params?: EventQueryParams) => Effect.Effect<PaginatedResponse<import(".").TraderEventResponse>, IndexerApiError, IndexerClient>;
15
16
  export declare const getTraderStats: (trader: string) => Effect.Effect<import(".").TraderStatsResponse, IndexerApiError, IndexerClient>;
16
17
  export declare const getRankings: (params?: RankingQueryParams) => Effect.Effect<readonly RankingEntry[], IndexerApiError, IndexerClient>;
18
+ export declare const getActivityFeed: (params?: ActivityFeedQueryParams) => Effect.Effect<PaginatedResponse<import(".").ActivityFeedItem>, IndexerApiError, IndexerClient>;
17
19
  /**
18
20
  * Auto-paginate to fetch every event for a market (useful for full time series).
19
21
  */
@@ -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,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,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,4FACoB,CAAC;AAE5F;;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,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,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;AAExE,eAAO,MAAM,eAAe,GAAI,SAAS,uBAAuB,mGACW,CAAC;AAI5E;;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,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,4FACoB,CAAC;AAE5F;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM;;;;;;kCAsB5C,CAAC"}
@@ -13,6 +13,7 @@ export const getTraderPositions = (trader) => Effect.flatMap(IndexerClient, (cli
13
13
  export const getTraderEvents = (trader, params) => Effect.flatMap(IndexerClient, (client) => client.getTraderEvents(trader, params));
14
14
  export const getTraderStats = (trader) => Effect.flatMap(IndexerClient, (client) => client.getTraderStats(trader));
15
15
  export const getRankings = (params) => Effect.flatMap(IndexerClient, (client) => client.getRankings(params));
16
+ export const getActivityFeed = (params) => Effect.flatMap(IndexerClient, (client) => client.getActivityFeed(params));
16
17
  // ── Composed helpers ─────────────────────────────────────────────────
17
18
  /**
18
19
  * Auto-paginate to fetch every event for a market (useful for full time series).
@@ -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 type { ActivityEventType, ActivityFeedItem, ActivityFeedQueryParams, CreateSubscriptionInput, SubscriptionFilters, SubscriptionResponse, UpdateSubscriptionInput, } from '../types/activity';
6
7
  export type { AdminCreateMarketBody, AdminUpdateMarketBody, EventResponse, HealthResponse, MarketResponse, MarketStateResponse, MultinoulliMarketStateResponse, MultinoulliSnapshotResponse, MultinoulliSnapshotsResponse, PaginatedResponse, RankingEntry, TraderEventResponse, TraderPositionResponse, TraderStatsResponse, } from '../types/api';
7
8
  export type { MarketType } from '../types/market';
8
- export { checkHealth, createMarket, deleteMarket, getAllMarketEvents, getMarket, getMarketEvents, getMarkets, getMarketTraders, getMarketWithEvents, getMultinoulliSnapshots, getRankings, getTraderEvents, getTraderPositions, getTraderProfile, getTraderStats, updateMarket, } from './convenience';
9
+ export { checkHealth, createMarket, deleteMarket, getActivityFeed, getAllMarketEvents, getMarket, getMarketEvents, getMarkets, getMarketTraders, getMarketWithEvents, getMultinoulliSnapshots, getRankings, getTraderEvents, getTraderPositions, getTraderProfile, getTraderStats, updateMarket, } from './convenience';
9
10
  export { type EventQueryParams, IndexerApiError, IndexerClient, type IndexerClientService, type RankingQueryParams, } from './IndexerClient';
10
11
  export { type IndexerClientConfig, IndexerClientLive, } from './IndexerClientLive';
11
12
  export { computePnlHistory, getFullTraderProfile, getTraderActivity, type PnlDataPoint, type TraderActivityEntry, type TraderProfile, } from './trader-stats';
@@ -1 +1 @@
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,2BAA2B,EAC3B,4BAA4B,EAC5B,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,uBAAuB,EACvB,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,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,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,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"}
@@ -4,7 +4,7 @@
4
4
  * This module is completely isolated from server-side code (no bun:sqlite, no elysia).
5
5
  */
6
6
  // ── Convenience functions ────────────────────────────────────────────
7
- export { checkHealth, createMarket, deleteMarket, getAllMarketEvents, getMarket, getMarketEvents, getMarkets, getMarketTraders, getMarketWithEvents, getMultinoulliSnapshots, getRankings, getTraderEvents, getTraderPositions, getTraderProfile, getTraderStats, updateMarket, } from './convenience';
7
+ export { checkHealth, createMarket, deleteMarket, getActivityFeed, getAllMarketEvents, getMarket, getMarketEvents, getMarkets, getMarketTraders, getMarketWithEvents, getMultinoulliSnapshots, getRankings, getTraderEvents, getTraderPositions, getTraderProfile, getTraderStats, updateMarket, } from './convenience';
8
8
  // ── Service & error ──────────────────────────────────────────────────
9
9
  export { IndexerApiError, IndexerClient, } from './IndexerClient';
10
10
  // ── Layer ────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH,wEAAwE;AACxE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH,wEAAwE;AACxE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Activity feed repository — cross-table JOIN queries with dynamic filtering.
3
+ */
4
+ import type { Database } from 'bun:sqlite';
5
+ import type { EnrichedEventRow } from '../../services/ActivityEnricher';
6
+ import type { ActivityEventType } from '../../types/activity';
7
+ export interface ActivityFeedQueryOptions {
8
+ readonly limit?: number | undefined;
9
+ readonly offset?: number | undefined;
10
+ readonly eventTypes?: readonly ActivityEventType[] | undefined;
11
+ readonly marketTypes?: readonly string[] | undefined;
12
+ readonly marketAddresses?: readonly string[] | undefined;
13
+ readonly traders?: readonly string[] | undefined;
14
+ readonly minCollateral?: number | undefined;
15
+ readonly fromTimestamp?: number | undefined;
16
+ readonly toTimestamp?: number | undefined;
17
+ }
18
+ export declare class ActivityFeedRepository {
19
+ private readonly db;
20
+ constructor(db: Database);
21
+ findAll(options?: ActivityFeedQueryOptions): EnrichedEventRow[];
22
+ count(options?: ActivityFeedQueryOptions): number;
23
+ }
24
+ //# sourceMappingURL=activity-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/activity-feed.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AA0DD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,OAAO,CAAC,OAAO,GAAE,wBAA6B,GAAG,gBAAgB,EAAE;IAqBnE,KAAK,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM;CActD"}
@@ -0,0 +1,76 @@
1
+ import { activityTypeToRawTypes } from '../../types/activity';
2
+ const TWO_128 = 2 ** 128;
3
+ function buildWhereClause(options) {
4
+ const conditions = [];
5
+ const params = [];
6
+ if (options.eventTypes && options.eventTypes.length > 0) {
7
+ const rawTypes = options.eventTypes.flatMap(activityTypeToRawTypes);
8
+ const placeholders = rawTypes.map(() => '?').join(', ');
9
+ conditions.push(`e.event_type IN (${placeholders})`);
10
+ params.push(...rawTypes);
11
+ }
12
+ if (options.marketTypes && options.marketTypes.length > 0) {
13
+ const placeholders = options.marketTypes.map(() => '?').join(', ');
14
+ conditions.push(`m.market_type IN (${placeholders})`);
15
+ params.push(...options.marketTypes);
16
+ }
17
+ if (options.marketAddresses && options.marketAddresses.length > 0) {
18
+ const placeholders = options.marketAddresses.map(() => '?').join(', ');
19
+ conditions.push(`e.market_address IN (${placeholders})`);
20
+ params.push(...options.marketAddresses);
21
+ }
22
+ if (options.traders && options.traders.length > 0) {
23
+ const placeholders = options.traders.map(() => '?').join(', ');
24
+ conditions.push(`e.trader IN (${placeholders})`);
25
+ params.push(...options.traders);
26
+ }
27
+ if (options.minCollateral != null) {
28
+ // collateral_posted is a raw SQ128x128 magnitude string; compare as REAL / 2^128
29
+ conditions.push(`CAST(e.collateral_posted AS REAL) / ? >= ?`);
30
+ params.push(TWO_128, options.minCollateral);
31
+ }
32
+ if (options.fromTimestamp != null) {
33
+ conditions.push('e.timestamp >= ?');
34
+ params.push(options.fromTimestamp);
35
+ }
36
+ if (options.toTimestamp != null) {
37
+ conditions.push('e.timestamp <= ?');
38
+ params.push(options.toTimestamp);
39
+ }
40
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
41
+ return { where, params };
42
+ }
43
+ export class ActivityFeedRepository {
44
+ db;
45
+ constructor(db) {
46
+ this.db = db;
47
+ }
48
+ findAll(options = {}) {
49
+ const limit = Math.min(Math.max(1, options.limit ?? 50), 200);
50
+ const offset = Math.max(0, options.offset ?? 0);
51
+ const { where, params } = buildWhereClause(options);
52
+ return this.db
53
+ .query(`SELECT
54
+ e.id, e.market_address, e.tx_hash, e.block_number, e.timestamp,
55
+ e.event_type, e.trader, e.mean, e.std_dev, e.old_mean, e.old_std_dev,
56
+ e.collateral_posted, e.settlement_value, e.settlement_outcomes_json,
57
+ m.title as market_title, m.category as market_category, m.market_type
58
+ FROM market_events e
59
+ JOIN markets m ON e.market_address = m.address
60
+ ${where}
61
+ ORDER BY e.timestamp DESC, e.id DESC
62
+ LIMIT ? OFFSET ?`)
63
+ .all(...params, limit, offset);
64
+ }
65
+ count(options = {}) {
66
+ const { where, params } = buildWhereClause(options);
67
+ const result = this.db
68
+ .query(`SELECT COUNT(*) as total
69
+ FROM market_events e
70
+ JOIN markets m ON e.market_address = m.address
71
+ ${where}`)
72
+ .get(...params);
73
+ return result.total;
74
+ }
75
+ }
76
+ //# sourceMappingURL=activity-feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../src/db/repositories/activity-feed.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { ActivityFeedRepository } from './activity-feed';
1
2
  export { CursorRepository } from './cursor';
2
3
  export { EventRepository } from './event';
3
4
  export { MarketRepository } from './market';
@@ -5,4 +6,5 @@ export { MarketStateRepository, type UpsertMarketStateInput } from './market-sta
5
6
  export { MultinoulliMarketStateRepository, type UpsertMultinoulliMarketStateInput, } from './multinoulli-market-state';
6
7
  export { PositionRepository } from './position';
7
8
  export { RankingRepository } from './ranking';
9
+ export { SubscriptionRepository } from './subscription';
8
10
  //# 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,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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,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;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { ActivityFeedRepository } from './activity-feed';
1
2
  export { CursorRepository } from './cursor';
2
3
  export { EventRepository } from './event';
3
4
  export { MarketRepository } from './market';
@@ -5,4 +6,5 @@ export { MarketStateRepository } from './market-state';
5
6
  export { MultinoulliMarketStateRepository, } from './multinoulli-market-state';
6
7
  export { PositionRepository } from './position';
7
8
  export { RankingRepository } from './ranking';
9
+ export { SubscriptionRepository } from './subscription';
8
10
  //# 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,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,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;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -8,6 +8,7 @@ export declare class PositionRepository {
8
8
  constructor(db: Database);
9
9
  upsert(input: UpsertPositionInput): void;
10
10
  ensureTrader(marketAddress: string, trader: string): void;
11
+ findOne(marketAddress: string, trader: string): UserPositionRow | null;
11
12
  findByMarket(marketAddress: string): UserPositionRow[];
12
13
  findByTrader(trader: string): UserPositionRow[];
13
14
  findAll(): UserPositionRow[];
@@ -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,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;IAwDxC,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"}
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;IA0DxC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASzD,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAQtE,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"}
@@ -10,9 +10,9 @@ export class PositionRepository {
10
10
  mean, sigma, variance, settlement_state, unrealized_pnl,
11
11
  delta_count, claimed, position_type, outcome_count,
12
12
  original_probs_json, collateral_locked_raw,
13
- expected_value, effective_mean, effective_sigma, effective_variance,
14
- effective_probs_json, fetched_at)
15
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, unixepoch())
13
+ expected_value, realized_pnl, effective_mean, effective_sigma,
14
+ effective_variance, effective_probs_json, fetched_at)
15
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, unixepoch())
16
16
  ON CONFLICT(market_address, trader) DO UPDATE SET
17
17
  has_position = excluded.has_position,
18
18
  collateral_locked = excluded.collateral_locked,
@@ -28,12 +28,13 @@ export class PositionRepository {
28
28
  original_probs_json = excluded.original_probs_json,
29
29
  collateral_locked_raw = excluded.collateral_locked_raw,
30
30
  expected_value = excluded.expected_value,
31
+ realized_pnl = COALESCE(excluded.realized_pnl, user_positions.realized_pnl),
31
32
  effective_mean = excluded.effective_mean,
32
33
  effective_sigma = excluded.effective_sigma,
33
34
  effective_variance = excluded.effective_variance,
34
35
  effective_probs_json = excluded.effective_probs_json,
35
36
  fetched_at = unixepoch()`)
36
- .run(input.market_address, input.trader, input.has_position ? 1 : 0, input.collateral_locked ?? null, input.mean ?? null, input.sigma ?? null, input.variance ?? null, input.settlement_state ?? 'unknown', input.unrealized_pnl ?? null, input.delta_count ?? 0, input.claimed ? 1 : 0, input.position_type ?? 'normal', input.outcome_count ?? null, input.original_probs_json ?? null, input.collateral_locked_raw ?? null, input.expected_value ?? null, input.effective_mean ?? null, input.effective_sigma ?? null, input.effective_variance ?? null, input.effective_probs_json ?? null);
37
+ .run(input.market_address, input.trader, input.has_position ? 1 : 0, input.collateral_locked ?? null, input.mean ?? null, input.sigma ?? null, input.variance ?? null, input.settlement_state ?? 'unknown', input.unrealized_pnl ?? null, input.delta_count ?? 0, input.claimed ? 1 : 0, input.position_type ?? 'normal', input.outcome_count ?? null, input.original_probs_json ?? null, input.collateral_locked_raw ?? null, input.expected_value ?? null, input.realized_pnl ?? null, input.effective_mean ?? null, input.effective_sigma ?? null, input.effective_variance ?? null, input.effective_probs_json ?? null);
37
38
  }
38
39
  ensureTrader(marketAddress, trader) {
39
40
  this.db
@@ -41,6 +42,11 @@ export class PositionRepository {
41
42
  VALUES (?, ?)`)
42
43
  .run(marketAddress, trader);
43
44
  }
45
+ findOne(marketAddress, trader) {
46
+ return (this.db
47
+ .query('SELECT * FROM user_positions WHERE market_address = ? AND trader = ?')
48
+ .get(marketAddress, trader) ?? null);
49
+ }
44
50
  findByMarket(marketAddress) {
45
51
  return this.db
46
52
  .query(`SELECT * FROM user_positions
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA2B4B,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,EACnC,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,eAAe,IAAI,IAAI,EAC7B,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAChC,KAAK,CAAC,oBAAoB,IAAI,IAAI,CACnC,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
+ {"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA4B4B,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,EACnC,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,eAAe,IAAI,IAAI,EAC7B,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAChC,KAAK,CAAC,oBAAoB,IAAI,IAAI,CACnC,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,OAAO,CAAC,aAAqB,EAAE,MAAc;QAC3C,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,sEAAsE,CAAC;aAC7E,GAAG,CAAC,aAAa,EAAE,MAAM,CAA4B,IAAI,IAAI,CACjE,CAAC;IACJ,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":"ranking.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/ranking.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErE,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,cAAc,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;IAiB1C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;CA+CpD"}
1
+ {"version":3,"file":"ranking.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/ranking.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErE,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,cAAc,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;IAyB1C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;CA+CpD"}
@@ -6,13 +6,21 @@ export class RankingRepository {
6
6
  getLeaderboard(limit = 50) {
7
7
  return this.db
8
8
  .query(`SELECT
9
- trader,
10
- COALESCE(SUM(unrealized_pnl), 0) as totalPnl,
11
- COUNT(DISTINCT market_address) as marketsTraded,
12
- SUM(delta_count) as totalTrades
13
- FROM user_positions
14
- WHERE has_position = 1 OR delta_count > 0
15
- GROUP BY trader
9
+ p.trader,
10
+ COALESCE(SUM(COALESCE(p.unrealized_pnl, 0) + COALESCE(p.realized_pnl, 0)), 0) as totalPnl,
11
+ COUNT(DISTINCT p.market_address) as marketsTraded,
12
+ COALESCE(e.totalTrades, 0) as totalTrades
13
+ FROM user_positions p
14
+ LEFT JOIN (
15
+ SELECT trader, COUNT(*) as totalTrades
16
+ FROM market_events
17
+ WHERE trader IS NOT NULL
18
+ GROUP BY trader
19
+ ) e ON LOWER(p.trader) = LOWER(e.trader)
20
+ WHERE p.has_position = 1 OR EXISTS (
21
+ SELECT 1 FROM market_events me WHERE LOWER(me.trader) = LOWER(p.trader)
22
+ )
23
+ GROUP BY p.trader
16
24
  ORDER BY totalPnl DESC
17
25
  LIMIT ?`)
18
26
  .all(limit);
@@ -29,10 +37,10 @@ export class RankingRepository {
29
37
  .get(trader);
30
38
  const pnlStats = this.db
31
39
  .query(`SELECT
32
- COALESCE(SUM(unrealized_pnl), 0) as totalPnl,
33
- COALESCE(MAX(unrealized_pnl), 0) as biggestWin
40
+ COALESCE(SUM(COALESCE(unrealized_pnl, 0) + COALESCE(realized_pnl, 0)), 0) as totalPnl,
41
+ COALESCE(MAX(COALESCE(unrealized_pnl, 0) + COALESCE(realized_pnl, 0)), 0) as biggestWin
34
42
  FROM user_positions
35
- WHERE trader = ? AND unrealized_pnl IS NOT NULL`)
43
+ WHERE trader = ? AND (unrealized_pnl IS NOT NULL OR realized_pnl IS NOT NULL)`)
36
44
  .get(trader);
37
45
  const unrealizedPnl = this.db
38
46
  .query(`SELECT COALESCE(SUM(unrealized_pnl), 0) as unrealizedPnl
@@ -1 +1 @@
1
- {"version":3,"file":"ranking.js","sourceRoot":"","sources":["../../../src/db/repositories/ranking.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,cAAc,CAAC,KAAK,GAAG,EAAE;QACvB,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CACJ;;;;;;;;;iBASS,CACV;aACA,GAAG,CAAC,KAAK,CAAmB,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;aACvB,KAAK,CACJ;;;;;;0BAMkB,CACnB;aACA,GAAG,CAAC,MAAM,CAKZ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,KAAK,CACJ;;;;yDAIiD,CAClD;aACA,GAAG,CAAC,MAAM,CAA6C,CAAC;QAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE;aAC1B,KAAK,CACJ;;8EAEsE,CACvE;aACA,GAAG,CAAC,MAAM,CAA8B,CAAC;QAE5C,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"ranking.js","sourceRoot":"","sources":["../../../src/db/repositories/ranking.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,cAAc,CAAC,KAAK,GAAG,EAAE;QACvB,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CACJ;;;;;;;;;;;;;;;;;iBAiBS,CACV;aACA,GAAG,CAAC,KAAK,CAAmB,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;aACvB,KAAK,CACJ;;;;;;0BAMkB,CACnB;aACA,GAAG,CAAC,MAAM,CAKZ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,KAAK,CACJ;;;;uFAI+E,CAChF;aACA,GAAG,CAAC,MAAM,CAA6C,CAAC;QAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE;aAC1B,KAAK,CACJ;;8EAEsE,CACvE;aACA,GAAG,CAAC,MAAM,CAA8B,CAAC;QAE5C,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Webhook subscription CRUD repository.
3
+ */
4
+ import type { Database } from 'bun:sqlite';
5
+ import type { CreateSubscriptionInput, SubscriptionRow, UpdateSubscriptionInput } from '../../types/activity';
6
+ export declare class SubscriptionRepository {
7
+ private readonly db;
8
+ constructor(db: Database);
9
+ create(input: CreateSubscriptionInput): SubscriptionRow;
10
+ findAll(): SubscriptionRow[];
11
+ findActive(): SubscriptionRow[];
12
+ findById(id: number): SubscriptionRow | null;
13
+ update(id: number, input: UpdateSubscriptionInput): SubscriptionRow | null;
14
+ delete(id: number): boolean;
15
+ recordSuccess(id: number): void;
16
+ recordFailure(id: number): void;
17
+ }
18
+ //# sourceMappingURL=subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/subscription.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAI9B,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,eAAe;IAWvD,OAAO,IAAI,eAAe,EAAE;IAM5B,UAAU,IAAI,eAAe,EAAE;IAM/B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAQ5C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,eAAe,GAAG,IAAI;IA8B1E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK3B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ/B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAWhC"}
@@ -0,0 +1,73 @@
1
+ const MAX_FAILURES = 10;
2
+ export class SubscriptionRepository {
3
+ db;
4
+ constructor(db) {
5
+ this.db = db;
6
+ }
7
+ create(input) {
8
+ const result = this.db
9
+ .query(`INSERT INTO subscriptions (name, webhook_url, filters)
10
+ VALUES (?, ?, ?)
11
+ RETURNING *`)
12
+ .get(input.name, input.webhook_url, JSON.stringify(input.filters));
13
+ return result;
14
+ }
15
+ findAll() {
16
+ return this.db
17
+ .query('SELECT * FROM subscriptions ORDER BY created_at DESC')
18
+ .all();
19
+ }
20
+ findActive() {
21
+ return this.db
22
+ .query('SELECT * FROM subscriptions WHERE is_active = 1 ORDER BY id')
23
+ .all();
24
+ }
25
+ findById(id) {
26
+ return (this.db
27
+ .query('SELECT * FROM subscriptions WHERE id = ?')
28
+ .get(id) ?? null);
29
+ }
30
+ update(id, input) {
31
+ const sets = ['updated_at = unixepoch()'];
32
+ const params = [];
33
+ if (input.name !== undefined) {
34
+ sets.push('name = ?');
35
+ params.push(input.name);
36
+ }
37
+ if (input.webhook_url !== undefined) {
38
+ sets.push('webhook_url = ?');
39
+ params.push(input.webhook_url);
40
+ }
41
+ if (input.filters !== undefined) {
42
+ sets.push('filters = ?');
43
+ params.push(JSON.stringify(input.filters));
44
+ }
45
+ if (input.is_active !== undefined) {
46
+ sets.push('is_active = ?');
47
+ params.push(input.is_active ? 1 : 0);
48
+ }
49
+ params.push(id);
50
+ return (this.db
51
+ .query(`UPDATE subscriptions SET ${sets.join(', ')} WHERE id = ? RETURNING *`)
52
+ .get(...params) ?? null);
53
+ }
54
+ delete(id) {
55
+ const result = this.db.query('DELETE FROM subscriptions WHERE id = ?').run(id);
56
+ return result.changes > 0;
57
+ }
58
+ recordSuccess(id) {
59
+ this.db
60
+ .query(`UPDATE subscriptions SET last_delivered_at = unixepoch(), failure_count = 0, updated_at = unixepoch() WHERE id = ?`)
61
+ .run(id);
62
+ }
63
+ recordFailure(id) {
64
+ this.db
65
+ .query(`UPDATE subscriptions SET
66
+ failure_count = failure_count + 1,
67
+ is_active = CASE WHEN failure_count + 1 >= ? THEN 0 ELSE is_active END,
68
+ updated_at = unixepoch()
69
+ WHERE id = ?`)
70
+ .run(MAX_FAILURES, id);
71
+ }
72
+ }
73
+ //# sourceMappingURL=subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/db/repositories/subscription.ts"],"names":[],"mappings":"AAUA,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAE7C,MAAM,CAAC,KAA8B;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,KAAK,CACJ;;qBAEa,CACd;aACA,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAoB,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,sDAAsD,CAAC;aAC7D,GAAG,EAAuB,CAAC;IAChC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,EAAE;aACX,KAAK,CAAC,6DAA6D,CAAC;aACpE,GAAG,EAAuB,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,0CAA0C,CAAC;aACjD,GAAG,CAAC,EAAE,CAA4B,IAAI,IAAI,CAC9C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,KAA8B;QAC/C,MAAM,IAAI,GAAa,CAAC,0BAA0B,CAAC,CAAC;QACpD,MAAM,MAAM,GAA+B,EAAE,CAAC;QAE9C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CACJ,IAAI,CAAC,EAAE;aACL,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC;aAC7E,GAAG,CAAC,GAAG,MAAM,CAA4B,IAAI,IAAI,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ,oHAAoH,CACrH;aACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,IAAI,CAAC,EAAE;aACJ,KAAK,CACJ;;;;sBAIc,CACf;aACA,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3B,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;AA4R3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAsCnD"}
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;AA4S3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAuCnD"}
package/dist/db/schema.js CHANGED
@@ -112,6 +112,7 @@ CREATE TABLE IF NOT EXISTS user_positions (
112
112
  original_probs_json TEXT,
113
113
  collateral_locked_raw TEXT,
114
114
  expected_value REAL,
115
+ realized_pnl REAL,
115
116
  effective_mean REAL,
116
117
  effective_sigma REAL,
117
118
  effective_variance REAL,
@@ -140,6 +141,21 @@ CREATE TABLE IF NOT EXISTS multinoulli_state_snapshots (
140
141
  CREATE INDEX IF NOT EXISTS idx_multinoulli_snapshots_market_ts
141
142
  ON multinoulli_state_snapshots(market_address, timestamp);
142
143
 
144
+ CREATE TABLE IF NOT EXISTS subscriptions (
145
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
146
+ name TEXT NOT NULL,
147
+ webhook_url TEXT NOT NULL,
148
+ filters TEXT NOT NULL DEFAULT '{}',
149
+ is_active INTEGER NOT NULL DEFAULT 1,
150
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
151
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
152
+ last_delivered_at INTEGER,
153
+ failure_count INTEGER NOT NULL DEFAULT 0
154
+ );
155
+
156
+ CREATE INDEX IF NOT EXISTS idx_events_timestamp_desc
157
+ ON market_events(timestamp DESC, id DESC);
158
+
143
159
  CREATE TABLE IF NOT EXISTS indexer_cursors (
144
160
  market_address TEXT PRIMARY KEY REFERENCES markets(address),
145
161
  last_block_number INTEGER NOT NULL DEFAULT 0,
@@ -277,6 +293,7 @@ export function initializeSchema(db) {
277
293
  safeAddColumn(db, 'user_positions', 'collateral_locked_raw', 'TEXT');
278
294
  // Leaderboard: expected value and effective distribution columns
279
295
  safeAddColumn(db, 'user_positions', 'expected_value', 'REAL');
296
+ safeAddColumn(db, 'user_positions', 'realized_pnl', 'REAL');
280
297
  safeAddColumn(db, 'user_positions', 'effective_mean', 'REAL');
281
298
  safeAddColumn(db, 'user_positions', 'effective_sigma', 'REAL');
282
299
  safeAddColumn(db, 'user_positions', 'effective_variance', 'REAL');