@the-situation/indexer 0.11.4 → 0.11.5

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 (33) hide show
  1. package/dist/api/app.d.ts +38 -0
  2. package/dist/api/app.d.ts.map +1 -1
  3. package/dist/api/app.js +2 -1
  4. package/dist/api/app.js.map +1 -1
  5. package/dist/api/routes/admin-subscriptions.d.ts +6 -6
  6. package/dist/api/routes/index.d.ts +1 -0
  7. package/dist/api/routes/index.d.ts.map +1 -1
  8. package/dist/api/routes/index.js +1 -0
  9. package/dist/api/routes/index.js.map +1 -1
  10. package/dist/api/routes/spice-faucet.d.ts +76 -0
  11. package/dist/api/routes/spice-faucet.d.ts.map +1 -0
  12. package/dist/api/routes/spice-faucet.js +78 -0
  13. package/dist/api/routes/spice-faucet.js.map +1 -0
  14. package/dist/db/repositories/ranking.d.ts.map +1 -1
  15. package/dist/db/repositories/ranking.js +3 -4
  16. package/dist/db/repositories/ranking.js.map +1 -1
  17. package/dist/db/repositories/subscription.d.ts.map +1 -1
  18. package/dist/db/repositories/subscription.js +7 -3
  19. package/dist/db/repositories/subscription.js.map +1 -1
  20. package/dist/db/schema.d.ts.map +1 -1
  21. package/dist/db/schema.js +9 -0
  22. package/dist/db/schema.js.map +1 -1
  23. package/dist/etl/position-refresher.d.ts +1 -1
  24. package/dist/etl/state-refresher.d.ts +1 -1
  25. package/dist/services/ActivityEnricher.d.ts.map +1 -1
  26. package/dist/services/ActivityEnricher.js +6 -2
  27. package/dist/services/ActivityEnricher.js.map +1 -1
  28. package/dist/services/WebhookDispatcher.d.ts.map +1 -1
  29. package/dist/services/WebhookDispatcher.js +15 -8
  30. package/dist/services/WebhookDispatcher.js.map +1 -1
  31. package/dist/types/activity.d.ts +3 -0
  32. package/dist/types/activity.d.ts.map +1 -1
  33. package/package.json +1 -1
package/dist/api/app.d.ts CHANGED
@@ -307,6 +307,44 @@ export declare function createApp(config: AppConfig): Elysia<"", {
307
307
  };
308
308
  };
309
309
  };
310
+ } & {
311
+ api: {
312
+ faucet: {
313
+ post: {
314
+ body: unknown;
315
+ params: {};
316
+ query: unknown;
317
+ headers: unknown;
318
+ response: {
319
+ 200: {
320
+ error: string;
321
+ success?: never;
322
+ alreadyMinted?: never;
323
+ transactionHash?: never;
324
+ detail?: never;
325
+ } | {
326
+ success: boolean;
327
+ alreadyMinted: boolean;
328
+ error?: never;
329
+ transactionHash?: never;
330
+ detail?: never;
331
+ } | {
332
+ success: boolean;
333
+ transactionHash: string;
334
+ error?: never;
335
+ alreadyMinted?: never;
336
+ detail?: never;
337
+ } | {
338
+ error: string;
339
+ detail: string;
340
+ success?: never;
341
+ alreadyMinted?: never;
342
+ transactionHash?: never;
343
+ };
344
+ };
345
+ };
346
+ };
347
+ };
310
348
  } & {
311
349
  admin: {
312
350
  markets: {
@@ -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;AAkB1E,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiB1C"}
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"}
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, healthRoutes, marketEventsRoutes, marketRoutes, marketTradersRoutes, multinoulliSnapshotsRoute, positionRoutes, rankingRoutes, traderEventsRoutes, traderStatsRoutes, wsRoutes, } from './routes';
7
+ import { activityFeedRoutes, adminRoutes, adminSubscriptionRoutes, spiceFaucetRoutes, healthRoutes, marketEventsRoutes, 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())
@@ -19,6 +19,7 @@ export function createApp(config) {
19
19
  .use(traderStatsRoutes(config.db))
20
20
  .use(rankingRoutes(config.db))
21
21
  .use(activityFeedRoutes(config.db))
22
+ .use(spiceFaucetRoutes(config.db))
22
23
  .use(adminRoutes(config.db, config.adminApiKey))
23
24
  .use(adminSubscriptionRoutes(config.db, config.adminApiKey))
24
25
  .use(wsRoutes(config.eventBus));
@@ -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,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,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,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"}
@@ -28,9 +28,9 @@ export declare const adminSubscriptionRoutes: (db: DatabaseService, adminApiKey:
28
28
  query: unknown;
29
29
  headers: unknown;
30
30
  response: {
31
- 200: {
31
+ 200: SubscriptionResponse | {
32
32
  error: string;
33
- } | SubscriptionResponse | {
33
+ } | {
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: {
68
+ 200: SubscriptionResponse | {
69
69
  error: string;
70
- } | SubscriptionResponse | {
70
+ } | {
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: {
99
+ 200: SubscriptionResponse | {
100
100
  error: string;
101
- } | SubscriptionResponse | {
101
+ } | {
102
102
  error: string;
103
103
  };
104
104
  422: {
@@ -8,6 +8,7 @@ export { marketRoutes } from './markets';
8
8
  export { multinoulliSnapshotsRoute } from './multinoulli-snapshots';
9
9
  export { positionRoutes } from './positions';
10
10
  export { rankingRoutes } from './rankings';
11
+ export { spiceFaucetRoutes } from './spice-faucet';
11
12
  export { traderEventsRoutes } from './trader-events';
12
13
  export { traderStatsRoutes } from './trader-stats';
13
14
  export { wsRoutes } from './ws';
@@ -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,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,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"}
@@ -8,6 +8,7 @@ export { marketRoutes } from './markets';
8
8
  export { multinoulliSnapshotsRoute } from './multinoulli-snapshots';
9
9
  export { positionRoutes } from './positions';
10
10
  export { rankingRoutes } from './rankings';
11
+ export { spiceFaucetRoutes } from './spice-faucet';
11
12
  export { traderEventsRoutes } from './trader-events';
12
13
  export { traderStatsRoutes } from './trader-stats';
13
14
  export { wsRoutes } from './ws';
@@ -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,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,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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * POST /api/faucet — mint 1000 SPICE to a new user (one-time per address).
3
+ *
4
+ * This is a public endpoint (no admin key needed) but rate-limited to
5
+ * one mint per address. Requires SPICE_OWNER_KEY and SPICE_OWNER_ADDRESS
6
+ * env vars on the indexer.
7
+ */
8
+ import { Elysia } from 'elysia';
9
+ import type { DatabaseService } from '../../services/Database';
10
+ export declare const spiceFaucetRoutes: (db: DatabaseService) => Elysia<"", {
11
+ decorator: {};
12
+ store: {};
13
+ derive: {};
14
+ resolve: {};
15
+ }, {
16
+ typebox: {};
17
+ error: {};
18
+ }, {
19
+ schema: {};
20
+ standaloneSchema: {};
21
+ macro: {};
22
+ macroFn: {};
23
+ parser: {};
24
+ response: {};
25
+ }, {
26
+ api: {
27
+ faucet: {
28
+ post: {
29
+ body: unknown;
30
+ params: {};
31
+ query: unknown;
32
+ headers: unknown;
33
+ response: {
34
+ 200: {
35
+ error: string;
36
+ success?: never;
37
+ alreadyMinted?: never;
38
+ transactionHash?: never;
39
+ detail?: never;
40
+ } | {
41
+ success: boolean;
42
+ alreadyMinted: boolean;
43
+ error?: never;
44
+ transactionHash?: never;
45
+ detail?: never;
46
+ } | {
47
+ success: boolean;
48
+ transactionHash: string;
49
+ error?: never;
50
+ alreadyMinted?: never;
51
+ detail?: never;
52
+ } | {
53
+ error: string;
54
+ detail: string;
55
+ success?: never;
56
+ alreadyMinted?: never;
57
+ transactionHash?: never;
58
+ };
59
+ };
60
+ };
61
+ };
62
+ };
63
+ }, {
64
+ derive: {};
65
+ resolve: {};
66
+ schema: {};
67
+ standaloneSchema: {};
68
+ response: {};
69
+ }, {
70
+ derive: {};
71
+ resolve: {};
72
+ schema: {};
73
+ standaloneSchema: {};
74
+ response: {};
75
+ }>;
76
+ //# sourceMappingURL=spice-faucet.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * POST /api/faucet — mint 1000 SPICE to a new user (one-time per address).
3
+ *
4
+ * This is a public endpoint (no admin key needed) but rate-limited to
5
+ * one mint per address. Requires SPICE_OWNER_KEY and SPICE_OWNER_ADDRESS
6
+ * env vars on the indexer.
7
+ */
8
+ import { Elysia } from 'elysia';
9
+ import { Account, CallData, RpcProvider } from 'starknet';
10
+ import { log } from '../../logger';
11
+ const SPICE_TOKEN_ADDRESS = '0x4583395a85181cd495b8563d277bdadfbca15fc65d2945db6c5c11f7d0e786e';
12
+ const MINT_AMOUNT = (1000n * 10n ** 18n).toString();
13
+ // biome-ignore lint/complexity/useLiteralKeys: env
14
+ const OWNER_KEY = process.env['SPICE_OWNER_KEY'];
15
+ // biome-ignore lint/complexity/useLiteralKeys: env
16
+ const OWNER_ADDRESS = process.env['SPICE_OWNER_ADDRESS'];
17
+ // biome-ignore lint/complexity/useLiteralKeys: env
18
+ const RPC_URL = process.env['STARKNET_RPC_URL'] ?? 'https://api.cartridge.gg/x/starknet/sepolia';
19
+ // In-memory set of minted addresses (also checked via DB in production)
20
+ const mintedAddresses = new Set();
21
+ export const spiceFaucetRoutes = (db) => new Elysia().post('/api/faucet', async ({ body, set }) => {
22
+ if (!OWNER_KEY || !OWNER_ADDRESS) {
23
+ set.status = 503;
24
+ return { error: 'Faucet not configured' };
25
+ }
26
+ const { recipient } = body;
27
+ if (!recipient || typeof recipient !== 'string') {
28
+ set.status = 400;
29
+ return { error: 'Missing recipient address' };
30
+ }
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 };
44
+ }
45
+ // Mint
46
+ log.info('faucet: minting SPICE', { recipient: normalized });
47
+ try {
48
+ const provider = new RpcProvider({ nodeUrl: RPC_URL });
49
+ const account = new Account({
50
+ provider,
51
+ address: OWNER_ADDRESS,
52
+ signer: OWNER_KEY,
53
+ });
54
+ const calldata = CallData.compile({
55
+ recipient,
56
+ amount: { low: MINT_AMOUNT, high: '0' },
57
+ });
58
+ const { transaction_hash } = await account.execute({
59
+ contractAddress: SPICE_TOKEN_ADDRESS,
60
+ entrypoint: 'mint',
61
+ calldata,
62
+ });
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);
68
+ log.info('faucet: minted', { recipient: normalized, tx: transaction_hash });
69
+ return { success: true, transactionHash: transaction_hash };
70
+ }
71
+ catch (err) {
72
+ const msg = err instanceof Error ? err.message : String(err);
73
+ log.error('faucet: mint failed', { recipient: normalized, error: msg });
74
+ set.status = 500;
75
+ return { error: 'Mint failed', detail: msg };
76
+ }
77
+ });
78
+ //# sourceMappingURL=spice-faucet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spice-faucet.js","sourceRoot":"","sources":["../../../src/api/routes/spice-faucet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,mBAAmB,GAAG,mEAAmE,CAAC;AAChG,MAAM,WAAW,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEpD,mDAAmD;AACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD,mDAAmD;AACnD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACzD,mDAAmD;AACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,6CAA6C,CAAC;AAEjG,wEAAwE;AACxE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACvD,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IACvD,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAA8B,CAAC;IACrD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE3C,0BAA0B;IAC1B,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,qEAAqE;IACrE,oDAAoD;IACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE;SACnB,KAAK,CAAC,+CAA+C,CAAC;SACtD,GAAG,CAAC,UAAU,CAA2B,CAAC;IAE7C,IAAI,QAAQ,EAAE,CAAC;QACb,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,OAAO;IACP,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,QAAQ;YACR,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;YAChC,SAAS;YACT,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE;SACxC,CAAC,CAAC;QAEH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACjD,eAAe,EAAE,mBAAmB;YACpC,UAAU,EAAE,MAAM;YAClB,QAAQ;SACT,CAAC,CAAC;QAEH,8DAA8D;QAC9D,EAAE,CAAC,EAAE;aACF,KAAK,CAAC,sEAAsE,CAAC;aAC7E,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACrC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEhC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACxE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -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;IAyB1C,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;IAwB1C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;CA+CpD"}
@@ -16,10 +16,9 @@ export class RankingRepository {
16
16
  FROM market_events
17
17
  WHERE trader IS NOT NULL
18
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
- )
19
+ ) e ON p.trader = e.trader
20
+ WHERE p.has_position = 1 OR p.delta_count > 0
21
+ OR p.unrealized_pnl IS NOT NULL OR p.realized_pnl IS NOT NULL
23
22
  GROUP BY p.trader
24
23
  ORDER BY totalPnl DESC
25
24
  LIMIT ?`)
@@ -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;;;;;;;;;;;;;;;;;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"}
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;;;;;;;;;;;;;;;;iBAgBS,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"}
@@ -1 +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"}
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;IAkC1E,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"}
@@ -6,10 +6,10 @@ export class SubscriptionRepository {
6
6
  }
7
7
  create(input) {
8
8
  const result = this.db
9
- .query(`INSERT INTO subscriptions (name, webhook_url, filters)
10
- VALUES (?, ?, ?)
9
+ .query(`INSERT INTO subscriptions (name, webhook_url, secret, filters)
10
+ VALUES (?, ?, ?, ?)
11
11
  RETURNING *`)
12
- .get(input.name, input.webhook_url, JSON.stringify(input.filters));
12
+ .get(input.name, input.webhook_url, input.secret ?? null, JSON.stringify(input.filters));
13
13
  return result;
14
14
  }
15
15
  findAll() {
@@ -38,6 +38,10 @@ export class SubscriptionRepository {
38
38
  sets.push('webhook_url = ?');
39
39
  params.push(input.webhook_url);
40
40
  }
41
+ if (input.secret !== undefined) {
42
+ sets.push('secret = ?');
43
+ params.push(input.secret);
44
+ }
41
45
  if (input.filters !== undefined) {
42
46
  sets.push('filters = ?');
43
47
  params.push(JSON.stringify(input.filters));
@@ -1 +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
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/db/repositories/subscription.ts"],"names":[],"mappings":"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"}
@@ -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;AA4S3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAuCnD"}
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;AAmT3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA0CnD"}
package/dist/db/schema.js CHANGED
@@ -145,6 +145,7 @@ CREATE TABLE IF NOT EXISTS subscriptions (
145
145
  id INTEGER PRIMARY KEY AUTOINCREMENT,
146
146
  name TEXT NOT NULL,
147
147
  webhook_url TEXT NOT NULL,
148
+ secret TEXT,
148
149
  filters TEXT NOT NULL DEFAULT '{}',
149
150
  is_active INTEGER NOT NULL DEFAULT 1,
150
151
  created_at INTEGER NOT NULL DEFAULT (unixepoch()),
@@ -156,6 +157,12 @@ CREATE TABLE IF NOT EXISTS subscriptions (
156
157
  CREATE INDEX IF NOT EXISTS idx_events_timestamp_desc
157
158
  ON market_events(timestamp DESC, id DESC);
158
159
 
160
+ CREATE TABLE IF NOT EXISTS spice_mints (
161
+ recipient TEXT PRIMARY KEY,
162
+ tx_hash TEXT,
163
+ minted_at INTEGER NOT NULL DEFAULT (unixepoch())
164
+ );
165
+
159
166
  CREATE TABLE IF NOT EXISTS indexer_cursors (
160
167
  market_address TEXT PRIMARY KEY REFERENCES markets(address),
161
168
  last_block_number INTEGER NOT NULL DEFAULT 0,
@@ -300,6 +307,8 @@ export function initializeSchema(db) {
300
307
  safeAddColumn(db, 'user_positions', 'effective_probs_json', 'TEXT');
301
308
  safeAddColumn(db, 'market_state', 'k', 'REAL');
302
309
  safeAddColumn(db, 'market_state', 'effective_k', 'REAL');
310
+ // Webhook subscription secret
311
+ safeAddColumn(db, 'subscriptions', 'secret', 'TEXT');
303
312
  // Rich market metadata columns
304
313
  safeAddColumn(db, 'markets', 'x_axis_label', 'TEXT DEFAULT NULL');
305
314
  safeAddColumn(db, 'markets', 'x_axis_unit', 'TEXT DEFAULT NULL');
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ import { EventBusTag } from '../services/EventBus';
8
8
  import type { MarketType } from '../types';
9
9
  import type { PositionRefreshResult } from './types';
10
10
  export declare const refreshPosition: (marketAddress: string, trader: string, marketType?: MarketType) => Effect.Effect<PositionRefreshResult, never, DatabaseTag | ChainReaderTag | EventBusTag>;
11
- export declare const refreshAllPositions: Effect.Effect<PositionRefreshResult[], never, DatabaseTag | EventBusTag | ChainReaderTag>;
11
+ export declare const refreshAllPositions: Effect.Effect<PositionRefreshResult[], never, DatabaseTag | ChainReaderTag | EventBusTag>;
12
12
  //# sourceMappingURL=position-refresher.d.ts.map
@@ -8,5 +8,5 @@ import { EventBusTag } from '../services/EventBus';
8
8
  import type { MarketType } from '../types';
9
9
  import type { StateRefreshResult } from './types';
10
10
  export declare const refreshMarketState: (marketAddress: string, marketType?: MarketType) => Effect.Effect<StateRefreshResult, never, DatabaseTag | ChainReaderTag | EventBusTag>;
11
- export declare const refreshAllMarketStates: Effect.Effect<StateRefreshResult[], never, DatabaseTag | EventBusTag | ChainReaderTag>;
11
+ export declare const refreshAllMarketStates: Effect.Effect<StateRefreshResult[], never, DatabaseTag | ChainReaderTag | EventBusTag>;
12
12
  //# sourceMappingURL=state-refresher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityEnricher.d.ts","sourceRoot":"","sources":["../../src/services/ActivityEnricher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAK3B,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAgED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgC1E"}
1
+ {"version":3,"file":"ActivityEnricher.d.ts","sourceRoot":"","sources":["../../src/services/ActivityEnricher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAS3B,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAgED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgC1E"}
@@ -5,7 +5,11 @@
5
5
  * Shared by the REST endpoint and webhook dispatcher.
6
6
  */
7
7
  import { classifyEventType } from '../types/activity';
8
- const TWO_128 = 2 ** 128;
8
+ /**
9
+ * Token decimals for STRK (18 decimals).
10
+ * Event collateral_posted is stored as a token base-unit string, not SQ128x128.
11
+ */
12
+ const TOKEN_DECIMALS = 1e18;
9
13
  function buildDistributionChange(row) {
10
14
  const noDistTypes = [
11
15
  'multinoulli_trade_executed',
@@ -32,7 +36,7 @@ function parseCollateral(raw) {
32
36
  if (!raw)
33
37
  return null;
34
38
  const val = Number(raw);
35
- return Number.isFinite(val) ? val / TWO_128 : null;
39
+ return Number.isFinite(val) ? val / TOKEN_DECIMALS : null;
36
40
  }
37
41
  function buildSummary(row, activityType, collateralFloat) {
38
42
  const title = row.market_title;
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityEnricher.js","sourceRoot":"","sources":["../../src/services/ActivityEnricher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActivityEnricher.js","sourceRoot":"","sources":["../../src/services/ActivityEnricher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDispatcher.d.ts","sourceRoot":"","sources":["../../src/services/WebhookDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAiD5D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,eAAe,EACnB,QAAQ,EAAE,eAAe,GACxB,wBAAwB,CAqE1B"}
1
+ {"version":3,"file":"WebhookDispatcher.d.ts","sourceRoot":"","sources":["../../src/services/WebhookDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAsD5D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,eAAe,EACnB,QAAQ,EAAE,eAAe,GACxB,wBAAwB,CAuE1B"}
@@ -34,13 +34,18 @@ function matchesFilters(item, filters) {
34
34
  }
35
35
  return true;
36
36
  }
37
- async function postWebhook(url, payload) {
37
+ async function postWebhook(url, payload, secret) {
38
38
  try {
39
39
  const controller = new AbortController();
40
40
  const timer = setTimeout(() => controller.abort(), WEBHOOK_TIMEOUT_MS);
41
+ const headers = { 'Content-Type': 'application/json' };
42
+ if (secret) {
43
+ // biome-ignore lint/complexity/useLiteralKeys: HTTP header
44
+ headers['X-Webhook-Secret'] = secret;
45
+ }
41
46
  const response = await fetch(url, {
42
47
  method: 'POST',
43
- headers: { 'Content-Type': 'application/json' },
48
+ headers,
44
49
  body: JSON.stringify(payload),
45
50
  signal: controller.signal,
46
51
  });
@@ -53,14 +58,14 @@ async function postWebhook(url, payload) {
53
58
  }
54
59
  export function createWebhookDispatcher(db, eventBus) {
55
60
  let unsubscribe = null;
56
- async function handleNewEvents(marketAddress) {
61
+ async function handleNewEvents(marketAddress, newCount) {
57
62
  const subscriptions = db.subscriptions.findActive();
58
63
  if (subscriptions.length === 0)
59
64
  return;
60
- // Fetch the most recent events for this market (last 20)
65
+ // Fetch only the newly inserted events (not the full history)
61
66
  const rows = db.activityFeed.findAll({
62
67
  marketAddresses: [marketAddress],
63
- limit: 20,
68
+ limit: Math.min(newCount, 20),
64
69
  });
65
70
  if (rows.length === 0)
66
71
  return;
@@ -76,14 +81,14 @@ export function createWebhookDispatcher(db, eventBus) {
76
81
  const matching = enriched.filter((item) => matchesFilters(item, filters));
77
82
  if (matching.length === 0)
78
83
  continue;
79
- const ok = await postWebhook(sub.webhook_url, { events: matching });
84
+ const ok = await postWebhook(sub.webhook_url, { events: matching }, sub.secret);
80
85
  if (ok) {
81
86
  db.subscriptions.recordSuccess(sub.id);
82
87
  }
83
88
  else {
84
89
  // Retry once after 5s
85
90
  setTimeout(async () => {
86
- const retryOk = await postWebhook(sub.webhook_url, { events: matching });
91
+ const retryOk = await postWebhook(sub.webhook_url, { events: matching }, sub.secret);
87
92
  if (retryOk) {
88
93
  db.subscriptions.recordSuccess(sub.id);
89
94
  }
@@ -104,8 +109,10 @@ export function createWebhookDispatcher(db, eventBus) {
104
109
  start: () => {
105
110
  unsubscribe = eventBus.subscribe((event) => {
106
111
  if (event.type === 'new_events' && event.marketAddress) {
112
+ const data = event.data;
113
+ const newCount = data?.count ?? 1;
107
114
  // Fire-and-forget — don't block the event bus
108
- void handleNewEvents(event.marketAddress);
115
+ void handleNewEvents(event.marketAddress, newCount);
109
116
  }
110
117
  });
111
118
  log.info('webhook dispatcher started');
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDispatcher.js","sourceRoot":"","sources":["../../src/services/WebhookDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKxD,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,cAAc,CAAC,IAAsB,EAAE,OAA4B;IAC1E,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;IACtE,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;IACjG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,OAAgB;IACtD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,uBAAuB,CACrC,EAAmB,EACnB,QAAyB;IAEzB,IAAI,WAAW,GAAwB,IAAI,CAAC;IAE5C,KAAK,UAAU,eAAe,CAAC,aAAqB;QAClD,MAAM,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,yDAAyD;QACzD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,eAAe,EAAE,CAAC,aAAa,CAAC;YAChC,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,OAAO,GAAwB,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAwB,CAAC;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEpC,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpE,IAAI,EAAE,EAAE,CAAC;gBACP,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACzE,IAAI,OAAO,EAAE,CAAC;wBACZ,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACvC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;4BAClC,cAAc,EAAE,GAAG,CAAC,EAAE;4BACtB,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,GAAG,EAAE,GAAG,CAAC,WAAW;4BACpB,YAAY,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC;yBACpC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAe,EAAE,EAAE;gBACnD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACvD,8CAA8C;oBAC9C,KAAK,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"WebhookDispatcher.js","sourceRoot":"","sources":["../../src/services/WebhookDispatcher.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ export interface SubscriptionRow {
57
57
  readonly id: number;
58
58
  readonly name: string;
59
59
  readonly webhook_url: string;
60
+ readonly secret: string | null;
60
61
  readonly filters: string;
61
62
  readonly is_active: number;
62
63
  readonly created_at: number;
@@ -67,11 +68,13 @@ export interface SubscriptionRow {
67
68
  export interface CreateSubscriptionInput {
68
69
  readonly name: string;
69
70
  readonly webhook_url: string;
71
+ readonly secret?: string;
70
72
  readonly filters: SubscriptionFilters;
71
73
  }
72
74
  export interface UpdateSubscriptionInput {
73
75
  readonly name?: string;
74
76
  readonly webhook_url?: string;
77
+ readonly secret?: string;
75
78
  readonly filters?: SubscriptionFilters;
76
79
  readonly is_active?: boolean;
77
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/types/activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/types/activity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAE/E,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAWpE;AAED,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,iBAAiB,GAAG,SAAS,MAAM,EAAE,CASzF;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEvD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAEtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@the-situation/indexer",
3
- "version": "0.11.4",
3
+ "version": "0.11.5",
4
4
  "description": "ETL indexer and REST/WS API for The Situation prediction markets",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",