@the-situation/indexer 0.11.5 → 0.11.7

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 (110) hide show
  1. package/dist/api/app.d.ts +63 -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/admin-subscriptions.d.ts +6 -6
  6. package/dist/api/routes/index.d.ts +2 -0
  7. package/dist/api/routes/index.d.ts.map +1 -1
  8. package/dist/api/routes/index.js +2 -0
  9. package/dist/api/routes/index.js.map +1 -1
  10. package/dist/api/routes/lp-history.d.ts +69 -0
  11. package/dist/api/routes/lp-history.d.ts.map +1 -0
  12. package/dist/api/routes/lp-history.js +46 -0
  13. package/dist/api/routes/lp-history.js.map +1 -0
  14. package/dist/api/routes/market-lps.d.ts +64 -0
  15. package/dist/api/routes/market-lps.d.ts.map +1 -0
  16. package/dist/api/routes/market-lps.js +32 -0
  17. package/dist/api/routes/market-lps.js.map +1 -0
  18. package/dist/api/routes/market-traders.d.ts.map +1 -1
  19. package/dist/api/routes/market-traders.js +3 -0
  20. package/dist/api/routes/market-traders.js.map +1 -1
  21. package/dist/api/routes/markets.d.ts +0 -3
  22. package/dist/api/routes/markets.d.ts.map +1 -1
  23. package/dist/api/routes/markets.js +25 -2
  24. package/dist/api/routes/markets.js.map +1 -1
  25. package/dist/api/routes/positions.d.ts.map +1 -1
  26. package/dist/api/routes/positions.js +3 -0
  27. package/dist/api/routes/positions.js.map +1 -1
  28. package/dist/api/routes/spice-faucet.d.ts.map +1 -1
  29. package/dist/api/routes/spice-faucet.js +26 -20
  30. package/dist/api/routes/spice-faucet.js.map +1 -1
  31. package/dist/client/IndexerClient.d.ts +2 -1
  32. package/dist/client/IndexerClient.d.ts.map +1 -1
  33. package/dist/client/IndexerClient.js.map +1 -1
  34. package/dist/client/IndexerClientLive.d.ts.map +1 -1
  35. package/dist/client/IndexerClientLive.js +1 -0
  36. package/dist/client/IndexerClientLive.js.map +1 -1
  37. package/dist/client/convenience.d.ts +1 -0
  38. package/dist/client/convenience.d.ts.map +1 -1
  39. package/dist/client/convenience.js +1 -0
  40. package/dist/client/convenience.js.map +1 -1
  41. package/dist/client/index.d.ts +2 -2
  42. package/dist/client/index.d.ts.map +1 -1
  43. package/dist/client/index.js +1 -1
  44. package/dist/client/index.js.map +1 -1
  45. package/dist/db/repositories/event.d.ts.map +1 -1
  46. package/dist/db/repositories/event.js +3 -2
  47. package/dist/db/repositories/event.js.map +1 -1
  48. package/dist/db/repositories/index.d.ts +1 -0
  49. package/dist/db/repositories/index.d.ts.map +1 -1
  50. package/dist/db/repositories/index.js +1 -0
  51. package/dist/db/repositories/index.js.map +1 -1
  52. package/dist/db/repositories/lp-position.d.ts +64 -0
  53. package/dist/db/repositories/lp-position.d.ts.map +1 -0
  54. package/dist/db/repositories/lp-position.js +139 -0
  55. package/dist/db/repositories/lp-position.js.map +1 -0
  56. package/dist/db/repositories/market-state.d.ts +1 -0
  57. package/dist/db/repositories/market-state.d.ts.map +1 -1
  58. package/dist/db/repositories/market-state.js +4 -3
  59. package/dist/db/repositories/market-state.js.map +1 -1
  60. package/dist/db/repositories/multinoulli-market-state.d.ts +6 -2
  61. package/dist/db/repositories/multinoulli-market-state.d.ts.map +1 -1
  62. package/dist/db/repositories/multinoulli-market-state.js +5 -5
  63. package/dist/db/repositories/multinoulli-market-state.js.map +1 -1
  64. package/dist/db/schema.d.ts.map +1 -1
  65. package/dist/db/schema.js +40 -2
  66. package/dist/db/schema.js.map +1 -1
  67. package/dist/etl/decoder.d.ts.map +1 -1
  68. package/dist/etl/decoder.js +40 -2
  69. package/dist/etl/decoder.js.map +1 -1
  70. package/dist/etl/event-indexer.d.ts.map +1 -1
  71. package/dist/etl/event-indexer.js +99 -2
  72. package/dist/etl/event-indexer.js.map +1 -1
  73. package/dist/etl/lp-position-refresher.d.ts +17 -0
  74. package/dist/etl/lp-position-refresher.d.ts.map +1 -0
  75. package/dist/etl/lp-position-refresher.js +78 -0
  76. package/dist/etl/lp-position-refresher.js.map +1 -0
  77. package/dist/etl/position-refresher.d.ts +1 -1
  78. package/dist/etl/position-refresher.d.ts.map +1 -1
  79. package/dist/etl/position-refresher.js +110 -50
  80. package/dist/etl/position-refresher.js.map +1 -1
  81. package/dist/etl/scheduler.d.ts.map +1 -1
  82. package/dist/etl/scheduler.js +22 -0
  83. package/dist/etl/scheduler.js.map +1 -1
  84. package/dist/etl/state-refresher.d.ts +1 -4
  85. package/dist/etl/state-refresher.d.ts.map +1 -1
  86. package/dist/etl/state-refresher.js +45 -8
  87. package/dist/etl/state-refresher.js.map +1 -1
  88. package/dist/index.js +2 -1
  89. package/dist/index.js.map +1 -1
  90. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  91. package/dist/layers/ChainReaderLive.js +39 -9
  92. package/dist/layers/ChainReaderLive.js.map +1 -1
  93. package/dist/layers/DatabaseLive.d.ts.map +1 -1
  94. package/dist/layers/DatabaseLive.js +2 -1
  95. package/dist/layers/DatabaseLive.js.map +1 -1
  96. package/dist/services/ChainReader.d.ts +5 -0
  97. package/dist/services/ChainReader.d.ts.map +1 -1
  98. package/dist/services/ChainReader.js.map +1 -1
  99. package/dist/services/Database.d.ts +2 -1
  100. package/dist/services/Database.d.ts.map +1 -1
  101. package/dist/services/Database.js.map +1 -1
  102. package/dist/types/api.d.ts +38 -2
  103. package/dist/types/api.d.ts.map +1 -1
  104. package/dist/types/event.d.ts +13 -2
  105. package/dist/types/event.d.ts.map +1 -1
  106. package/dist/types/index.d.ts +2 -2
  107. package/dist/types/index.d.ts.map +1 -1
  108. package/dist/types/market.d.ts +10 -4
  109. package/dist/types/market.d.ts.map +1 -1
  110. package/package.json +1 -1
package/dist/api/app.d.ts CHANGED
@@ -189,6 +189,69 @@ export declare function createApp(config: AppConfig): Elysia<"", {
189
189
  };
190
190
  };
191
191
  };
192
+ } & {
193
+ api: {
194
+ markets: {
195
+ ":address": {
196
+ lps: {
197
+ get: {
198
+ body: unknown;
199
+ params: {
200
+ address: string;
201
+ } & {};
202
+ query: unknown;
203
+ headers: unknown;
204
+ response: {
205
+ 200: import("../types").LPPositionResponse[];
206
+ 422: {
207
+ type: "validation";
208
+ on: string;
209
+ summary?: string;
210
+ message?: string;
211
+ found?: unknown;
212
+ property?: string;
213
+ expected?: string;
214
+ };
215
+ };
216
+ };
217
+ };
218
+ };
219
+ };
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
+ };
192
255
  } & {
193
256
  api: {
194
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;AAmB1E,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkB1C"}
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, 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())
@@ -14,6 +14,8 @@ export function createApp(config) {
14
14
  .use(marketEventsRoutes(config.db))
15
15
  .use(multinoulliSnapshotsRoute(config.db))
16
16
  .use(marketTradersRoutes(config.db))
17
+ .use(marketLPsRoutes(config.db))
18
+ .use(lpHistoryRoutes(config.db))
17
19
  .use(positionRoutes(config.db))
18
20
  .use(traderEventsRoutes(config.db))
19
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,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,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"}
@@ -28,9 +28,9 @@ export declare const adminSubscriptionRoutes: (db: DatabaseService, adminApiKey:
28
28
  query: unknown;
29
29
  headers: unknown;
30
30
  response: {
31
- 200: SubscriptionResponse | {
31
+ 200: {
32
32
  error: string;
33
- } | {
33
+ } | SubscriptionResponse | {
34
34
  error: string;
35
35
  };
36
36
  };
@@ -65,9 +65,9 @@ export declare const adminSubscriptionRoutes: (db: DatabaseService, adminApiKey:
65
65
  query: unknown;
66
66
  headers: unknown;
67
67
  response: {
68
- 200: SubscriptionResponse | {
68
+ 200: {
69
69
  error: string;
70
- } | {
70
+ } | SubscriptionResponse | {
71
71
  error: string;
72
72
  };
73
73
  422: {
@@ -96,9 +96,9 @@ export declare const adminSubscriptionRoutes: (db: DatabaseService, adminApiKey:
96
96
  query: unknown;
97
97
  headers: unknown;
98
98
  response: {
99
- 200: SubscriptionResponse | {
99
+ 200: {
100
100
  error: string;
101
- } | {
101
+ } | SubscriptionResponse | {
102
102
  error: string;
103
103
  };
104
104
  422: {
@@ -2,7 +2,9 @@ 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';
7
+ export { marketLPsRoutes } from './market-lps';
6
8
  export { marketTradersRoutes } from './market-traders';
7
9
  export { marketRoutes } from './markets';
8
10
  export { multinoulliSnapshotsRoute } from './multinoulli-snapshots';
@@ -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,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,7 +2,9 @@ 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';
7
+ export { marketLPsRoutes } from './market-lps';
6
8
  export { marketTradersRoutes } from './market-traders';
7
9
  export { marketRoutes } from './markets';
8
10
  export { multinoulliSnapshotsRoute } from './multinoulli-snapshots';
@@ -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,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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * GET /api/markets/:address/lps — LP positions for a market.
3
+ */
4
+ import { Elysia } from 'elysia';
5
+ import type { DatabaseService } from '../../services/Database';
6
+ import type { LPPositionResponse } from '../../types';
7
+ export declare const marketLPsRoutes: (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
+ get: {
28
+ body: unknown;
29
+ params: {
30
+ address: string;
31
+ } & {};
32
+ query: unknown;
33
+ headers: unknown;
34
+ response: {
35
+ 200: LPPositionResponse[];
36
+ 422: {
37
+ type: "validation";
38
+ on: string;
39
+ summary?: string;
40
+ message?: string;
41
+ found?: unknown;
42
+ property?: string;
43
+ expected?: string;
44
+ };
45
+ };
46
+ };
47
+ };
48
+ };
49
+ };
50
+ };
51
+ }, {
52
+ derive: {};
53
+ resolve: {};
54
+ schema: {};
55
+ standaloneSchema: {};
56
+ response: {};
57
+ }, {
58
+ derive: {};
59
+ resolve: {};
60
+ schema: {};
61
+ standaloneSchema: {};
62
+ response: {};
63
+ }>;
64
+ //# sourceMappingURL=market-lps.d.ts.map
@@ -0,0 +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;AA2BtD,eAAO,MAAM,eAAe,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/C,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * GET /api/markets/:address/lps — LP positions for a market.
3
+ */
4
+ import { Elysia } from 'elysia';
5
+ function toLPResponse(row) {
6
+ return {
7
+ marketAddress: row.market_address,
8
+ provider: row.provider,
9
+ shares: row.shares,
10
+ sharesNumber: row.shares_number,
11
+ totalDeposited: row.total_deposited,
12
+ totalWithdrawn: row.total_withdrawn,
13
+ currentValue: row.current_value,
14
+ unrealizedPnl: row.unrealized_pnl,
15
+ depositCount: row.deposit_count,
16
+ withdrawalCount: row.withdrawal_count,
17
+ firstDepositAt: row.first_deposit_at,
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,
25
+ fetchedAt: row.fetched_at,
26
+ };
27
+ }
28
+ export const marketLPsRoutes = (db) => new Elysia().get('/api/markets/:address/lps', ({ params }) => {
29
+ const positions = db.lpPositions.findByMarket(params.address.toLowerCase());
30
+ return positions.map(toLPResponse);
31
+ });
32
+ //# sourceMappingURL=market-lps.js.map
@@ -0,0 +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;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 +1 @@
1
- {"version":3,"file":"market-traders.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-traders.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,EAAmB,MAAM,aAAa,CAAC;AAoB3E,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInD,CAAC"}
1
+ {"version":3,"file":"market-traders.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-traders.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,EAAmB,MAAM,aAAa,CAAC;AAuB3E,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInD,CAAC"}
@@ -14,6 +14,9 @@ function toTraderResponse(row) {
14
14
  settlementState: row.settlement_state,
15
15
  unrealizedPnl: row.unrealized_pnl,
16
16
  expectedValue: row.expected_value,
17
+ effectiveMean: row.effective_mean,
18
+ effectiveSigma: row.effective_sigma,
19
+ effectiveVariance: row.effective_variance,
17
20
  deltaCount: row.delta_count,
18
21
  claimed: row.claimed === 1,
19
22
  fetchedAt: row.fetched_at,
@@ -1 +1 @@
1
- {"version":3,"file":"market-traders.js","sourceRoot":"","sources":["../../../src/api/routes/market-traders.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,YAAY,KAAK,CAAC;QACnC,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;QAC1B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACzD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/D,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,OAAO,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"market-traders.js","sourceRoot":"","sources":["../../../src/api/routes/market-traders.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,YAAY,KAAK,CAAC;QACnC,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,iBAAiB,EAAE,GAAG,CAAC,kBAAkB;QACzC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;QAC1B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACzD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/D,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,OAAO,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACzC,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;AAiHrB,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 = [];
@@ -17,12 +37,15 @@ function toMarketResponse(market, state, multinoulliState = null) {
17
37
  mean: state.mean,
18
38
  sigma: state.sigma,
19
39
  variance: state.variance,
40
+ k: state.k,
41
+ effectiveK: state.effective_k,
20
42
  isInitialized: state.is_initialized === 1,
21
43
  isPaused: state.is_paused === 1,
22
44
  isSettled: state.is_settled === 1,
23
45
  settlementValue: state.settlement_value,
24
46
  totalShares: state.total_shares,
25
47
  totalBacking: state.total_backing,
48
+ payoutAmplifier: state.payout_amplifier ?? 1,
26
49
  fetchedAt: state.fetched_at,
27
50
  };
28
51
  }
@@ -53,10 +76,10 @@ function toMarketResponse(market, state, multinoulliState = null) {
53
76
  isPaused: multinoulliState.is_paused === 1,
54
77
  isSettled: multinoulliState.is_settled === 1,
55
78
  settlementOutcomes,
56
- matrixEnabled: multinoulliState.matrix_enabled === 1,
79
+ matrixMode: matrixConstraintModeFromU8(multinoulliState.matrix_constraint_mode),
57
80
  matrixRows: multinoulliState.matrix_rows,
58
81
  matrixCols: multinoulliState.matrix_cols,
59
- matrixEnforceFullRow: multinoulliState.matrix_enforce_full_row === 1,
82
+ payoutAmplifier: multinoulliState.payout_amplifier ?? 1,
60
83
  fetchedAt: multinoulliState.fetched_at,
61
84
  };
62
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markets.js","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAYhC,qHAAqH;AACrH,SAAS,gBAAgB,CACvB,MAAiB,EACjB,KAA4B,EAC5B,mBAAqD,IAAI;IAEzD,IAAI,YAAY,GAAsB,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAa,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,IAAI,aAAa,GAA+B,IAAI,CAAC;IACrD,IAAI,KAAK,EAAE,CAAC;QACV,aAAa,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,cAAc,KAAK,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,CAAC;YAC/B,SAAS,EAAE,KAAK,CAAC,UAAU,KAAK,CAAC;YACjC,eAAe,EAAE,KAAK,CAAC,gBAAgB;YACvC,WAAW,EAAE,KAAK,CAAC,YAAY;YAC/B,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,SAAS,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,IAAI,wBAAwB,GAA0C,IAAI,CAAC;IAC3E,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,kBAAkB,GAAa,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAa,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,IAAI,CAAC;YACH,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,wBAAwB,CAAa,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,wBAAwB,GAAG;YACzB,YAAY,EAAE,gBAAgB,CAAC,aAAa;YAC5C,KAAK;YACL,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACrB,UAAU,EAAE,gBAAgB,CAAC,WAAW;YACxC,WAAW,EAAE,gBAAgB,CAAC,YAAY;YAC1C,YAAY,EAAE,gBAAgB,CAAC,aAAa;YAC5C,aAAa,EAAE,gBAAgB,CAAC,cAAc,KAAK,CAAC;YACpD,QAAQ,EAAE,gBAAgB,CAAC,SAAS,KAAK,CAAC;YAC1C,SAAS,EAAE,gBAAgB,CAAC,UAAU,KAAK,CAAC;YAC5C,kBAAkB;YAClB,aAAa,EAAE,gBAAgB,CAAC,cAAc,KAAK,CAAC;YACpD,UAAU,EAAE,gBAAgB,CAAC,WAAW;YACxC,UAAU,EAAE,gBAAgB,CAAC,WAAW;YACxC,oBAAoB,EAAE,gBAAgB,CAAC,uBAAuB,KAAK,CAAC;YACpE,SAAS,EAAE,gBAAgB,CAAC,UAAU;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAe,CAAC;IAElE,IAAI,mBAAmB,GAA6B,IAAI,CAAC;IACzD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAa,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,IAAI,eAAe,GAA6B,IAAI,CAAC;IACrD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAa,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,IAAI,eAAe,GAA6B,IAAI,CAAC;IACrD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAa,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,YAAY;QACpB,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,YAAY;QAC/B,SAAS,EAAE,MAAM,CAAC,WAAW;QAC7B,aAAa,EAAE,mBAAmB;QAClC,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,eAAe;QAC1B,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;QAC1C,QAAQ,EAAE,MAAM,CAAC,SAAS,KAAK,CAAC;QAChC,KAAK,EAAE,aAAa;QACpB,gBAAgB,EAAE,wBAAwB;QAC1C,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAmB,EAAE,EAAE,CAClD,IAAI,MAAM,EAAE;KACT,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE;IACxB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,qDAAqD;IACrD,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAC/C,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;IAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC9C,MAAM,UAAU,GACd,CAAC,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,OAAO,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;KACD,GAAG,CAAC,uBAAuB,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,UAAU,GACd,MAAM,CAAC,WAAW,KAAK,aAAa;QAClC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"markets.js","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../src/api/routes/positions.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,EAAmB,MAAM,aAAa,CAAC;AAoB3E,eAAO,MAAM,cAAc,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9C,CAAC"}
1
+ {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../src/api/routes/positions.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,EAAmB,MAAM,aAAa,CAAC;AAuB3E,eAAO,MAAM,cAAc,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9C,CAAC"}
@@ -14,6 +14,9 @@ function toTraderResponse(row) {
14
14
  settlementState: row.settlement_state,
15
15
  unrealizedPnl: row.unrealized_pnl,
16
16
  expectedValue: row.expected_value,
17
+ effectiveMean: row.effective_mean,
18
+ effectiveSigma: row.effective_sigma,
19
+ effectiveVariance: row.effective_variance,
17
20
  deltaCount: row.delta_count,
18
21
  claimed: row.claimed === 1,
19
22
  fetchedAt: row.fetched_at,
@@ -1 +1 @@
1
- {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../../src/api/routes/positions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,YAAY,KAAK,CAAC;QACnC,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;QAC1B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAmB,EAAE,EAAE,CACpD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACxD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../../src/api/routes/positions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,YAAY,KAAK,CAAC;QACnC,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,iBAAiB,EAAE,GAAG,CAAC,kBAAkB;QACzC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;QAC1B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAmB,EAAE,EAAE,CACpD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACxD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"spice-faucet.d.ts","sourceRoot":"","sources":["../../../src/api/routes/spice-faucet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAe/D,eAAO,MAAM,iBAAiB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEjD,CAAC"}
1
+ {"version":3,"file":"spice-faucet.d.ts","sourceRoot":"","sources":["../../../src/api/routes/spice-faucet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAe/D,eAAO,MAAM,iBAAiB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0EjD,CAAC"}
@@ -23,27 +23,31 @@ export const spiceFaucetRoutes = (db) => new Elysia().post('/api/faucet', async
23
23
  set.status = 503;
24
24
  return { error: 'Faucet not configured' };
25
25
  }
26
- const { recipient } = body;
26
+ const { recipient, amount: customAmount } = body;
27
27
  if (!recipient || typeof recipient !== 'string') {
28
28
  set.status = 400;
29
29
  return { error: 'Missing recipient address' };
30
30
  }
31
31
  const normalized = recipient.toLowerCase();
32
- // Check if already minted
33
- if (mintedAddresses.has(normalized)) {
34
- return { success: true, alreadyMinted: true };
35
- }
36
- // Check DB for existing mint (query market_events or a simple check)
37
- // For now, use the in-memory set + a simple DB flag
38
- const existing = db.db
39
- .query('SELECT 1 FROM spice_mints WHERE recipient = ?')
40
- .get(normalized);
41
- if (existing) {
42
- mintedAddresses.add(normalized);
43
- return { success: true, alreadyMinted: true };
32
+ const hasCustomAmount = customAmount != null && Number.isFinite(customAmount) && customAmount > 0;
33
+ // Default faucet (no custom amount) is one-time per address
34
+ if (!hasCustomAmount) {
35
+ if (mintedAddresses.has(normalized)) {
36
+ return { success: true, alreadyMinted: true };
37
+ }
38
+ const existing = db.db
39
+ .query('SELECT 1 FROM spice_mints WHERE recipient = ?')
40
+ .get(normalized);
41
+ if (existing) {
42
+ mintedAddresses.add(normalized);
43
+ return { success: true, alreadyMinted: true };
44
+ }
44
45
  }
45
46
  // Mint
46
- log.info('faucet: minting SPICE', { recipient: normalized });
47
+ const mintAmount = hasCustomAmount
48
+ ? (BigInt(Math.floor(customAmount)) * 10n ** 18n).toString()
49
+ : MINT_AMOUNT;
50
+ log.info('faucet: minting SPICE', { recipient: normalized, amount: hasCustomAmount ? customAmount : 1000 });
47
51
  try {
48
52
  const provider = new RpcProvider({ nodeUrl: RPC_URL });
49
53
  const account = new Account({
@@ -53,18 +57,20 @@ export const spiceFaucetRoutes = (db) => new Elysia().post('/api/faucet', async
53
57
  });
54
58
  const calldata = CallData.compile({
55
59
  recipient,
56
- amount: { low: MINT_AMOUNT, high: '0' },
60
+ amount: { low: mintAmount, high: '0' },
57
61
  });
58
62
  const { transaction_hash } = await account.execute({
59
63
  contractAddress: SPICE_TOKEN_ADDRESS,
60
64
  entrypoint: 'mint',
61
65
  calldata,
62
66
  });
63
- // Record mint (don't wait for confirmation to avoid blocking)
64
- db.db
65
- .query('INSERT OR IGNORE INTO spice_mints (recipient, tx_hash) VALUES (?, ?)')
66
- .run(normalized, transaction_hash);
67
- mintedAddresses.add(normalized);
67
+ // Record default mint (custom amounts are unlimited, don't track)
68
+ if (!hasCustomAmount) {
69
+ db.db
70
+ .query('INSERT OR IGNORE INTO spice_mints (recipient, tx_hash) VALUES (?, ?)')
71
+ .run(normalized, transaction_hash);
72
+ mintedAddresses.add(normalized);
73
+ }
68
74
  log.info('faucet: minted', { recipient: normalized, tx: transaction_hash });
69
75
  return { success: true, transactionHash: transaction_hash };
70
76
  }