@the-situation/indexer 0.12.6 → 0.14.0
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.
- package/README.md +21 -0
- package/dist/__tests__/performance/perf-fixtures.d.ts +26 -0
- package/dist/__tests__/performance/perf-fixtures.d.ts.map +1 -0
- package/dist/__tests__/performance/perf-fixtures.js +172 -0
- package/dist/__tests__/performance/perf-fixtures.js.map +1 -0
- package/dist/__tests__/performance/perf-utils.d.ts +42 -0
- package/dist/__tests__/performance/perf-utils.d.ts.map +1 -0
- package/dist/__tests__/performance/perf-utils.js +91 -0
- package/dist/__tests__/performance/perf-utils.js.map +1 -0
- package/dist/api/app.d.ts +3 -3
- package/dist/api/routes/admin-subscriptions.d.ts +3 -3
- package/dist/api/routes/admin.d.ts.map +1 -1
- package/dist/api/routes/admin.js +4 -0
- package/dist/api/routes/admin.js.map +1 -1
- package/dist/api/routes/market-events.d.ts.map +1 -1
- package/dist/api/routes/market-events.js +8 -0
- package/dist/api/routes/market-events.js.map +1 -1
- package/dist/api/routes/market-lps.d.ts.map +1 -1
- package/dist/api/routes/market-lps.js +23 -9
- package/dist/api/routes/market-lps.js.map +1 -1
- package/dist/api/routes/markets.d.ts.map +1 -1
- package/dist/api/routes/markets.js +8 -0
- package/dist/api/routes/markets.js.map +1 -1
- package/dist/api/routes/trader-events.d.ts.map +1 -1
- package/dist/api/routes/trader-events.js +8 -0
- package/dist/api/routes/trader-events.js.map +1 -1
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +4 -0
- package/dist/db/connection.js.map +1 -1
- package/dist/db/repositories/activity-feed.d.ts +3 -0
- package/dist/db/repositories/activity-feed.d.ts.map +1 -1
- package/dist/db/repositories/activity-feed.js +33 -18
- package/dist/db/repositories/activity-feed.js.map +1 -1
- package/dist/db/repositories/event.d.ts +23 -0
- package/dist/db/repositories/event.d.ts.map +1 -1
- package/dist/db/repositories/event.js +141 -60
- package/dist/db/repositories/event.js.map +1 -1
- package/dist/db/repositories/lp-position.d.ts +2 -10
- package/dist/db/repositories/lp-position.d.ts.map +1 -1
- package/dist/db/repositories/lp-position.js +54 -52
- package/dist/db/repositories/lp-position.js.map +1 -1
- package/dist/db/repositories/market-state.d.ts +10 -0
- package/dist/db/repositories/market-state.d.ts.map +1 -1
- package/dist/db/repositories/market-state.js +16 -5
- package/dist/db/repositories/market-state.js.map +1 -1
- package/dist/db/repositories/market.d.ts +7 -0
- package/dist/db/repositories/market.d.ts.map +1 -1
- package/dist/db/repositories/market.js +32 -24
- package/dist/db/repositories/market.js.map +1 -1
- package/dist/db/repositories/multinoulli-snapshots.d.ts +1 -0
- package/dist/db/repositories/multinoulli-snapshots.d.ts.map +1 -1
- package/dist/db/repositories/multinoulli-snapshots.js +7 -5
- package/dist/db/repositories/multinoulli-snapshots.js.map +1 -1
- package/dist/db/repositories/position.d.ts +1 -0
- package/dist/db/repositories/position.d.ts.map +1 -1
- package/dist/db/repositories/position.js +9 -0
- package/dist/db/repositories/position.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +114 -5
- package/dist/db/schema.js.map +1 -1
- package/dist/etl/decoder.js +16 -0
- package/dist/etl/decoder.js.map +1 -1
- package/dist/etl/event-indexer.d.ts +1 -1
- package/dist/etl/event-indexer.d.ts.map +1 -1
- package/dist/etl/event-indexer.js +138 -74
- package/dist/etl/event-indexer.js.map +1 -1
- package/dist/etl/lp-position-refresher.d.ts +9 -3
- package/dist/etl/lp-position-refresher.d.ts.map +1 -1
- package/dist/etl/lp-position-refresher.js +74 -21
- package/dist/etl/lp-position-refresher.js.map +1 -1
- package/dist/etl/position-refresher.d.ts +9 -3
- package/dist/etl/position-refresher.d.ts.map +1 -1
- package/dist/etl/position-refresher.js +44 -36
- package/dist/etl/position-refresher.js.map +1 -1
- package/dist/etl/state-refresher.d.ts +8 -3
- package/dist/etl/state-refresher.d.ts.map +1 -1
- package/dist/etl/state-refresher.js +137 -12
- package/dist/etl/state-refresher.js.map +1 -1
- package/dist/layers/ChainReaderLive.d.ts.map +1 -1
- package/dist/layers/ChainReaderLive.js +69 -22
- package/dist/layers/ChainReaderLive.js.map +1 -1
- package/dist/lp/valuation.d.ts +34 -0
- package/dist/lp/valuation.d.ts.map +1 -0
- package/dist/lp/valuation.js +282 -0
- package/dist/lp/valuation.js.map +1 -0
- package/dist/services/ChainReader.d.ts +21 -0
- package/dist/services/ChainReader.d.ts.map +1 -1
- package/dist/services/ChainReader.js.map +1 -1
- package/dist/types/api.d.ts +29 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/event.d.ts +24 -0
- package/dist/types/event.d.ts.map +1 -1
- package/dist/types/market.d.ts +16 -0
- package/dist/types/market.d.ts.map +1 -1
- package/package.json +7 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markets.js","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAYhC;;;;GAIG;AACH,SAAS,0BAA0B,CAAC,GAAW;IAC7C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC;YACJ,OAAO,+BAA+B,CAAC,QAAQ,CAAC;QAClD,KAAK,CAAC;YACJ,OAAO,+BAA+B,CAAC,SAAS,CAAC;QACnD,KAAK,CAAC;YACJ,OAAO,+BAA+B,CAAC,OAAO,CAAC;QACjD,KAAK,CAAC;YACJ,OAAO,+BAA+B,CAAC,OAAO,CAAC;QACjD;YACE,OAAO,+BAA+B,CAAC,QAAQ,CAAC;IACpD,CAAC;AACH,CAAC;AAED,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,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,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,eAAe,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC;YAC5C,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,UAAU,EAAE,0BAA0B,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;YAC/E,UAAU,EAAE,gBAAgB,CAAC,WAAW;YACxC,UAAU,EAAE,gBAAgB,CAAC,WAAW;YACxC,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,IAAI,CAAC;YACvD,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":"trader-events.d.ts","sourceRoot":"","sources":["../../../src/api/routes/trader-events.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,EAAkB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"trader-events.d.ts","sourceRoot":"","sources":["../../../src/api/routes/trader-events.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,EAAkB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgC1F,eAAO,MAAM,kBAAkB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqClD,CAAC"}
|
|
@@ -18,6 +18,14 @@ function toTraderEventResponse(row) {
|
|
|
18
18
|
upperBound: row.upper_bound,
|
|
19
19
|
oldMean: row.old_mean,
|
|
20
20
|
oldStdDev: row.old_std_dev,
|
|
21
|
+
mean2: row.mean_2,
|
|
22
|
+
stdDev2: row.std_dev_2,
|
|
23
|
+
lowerBound2: row.lower_bound_2,
|
|
24
|
+
upperBound2: row.upper_bound_2,
|
|
25
|
+
oldMean2: row.old_mean_2,
|
|
26
|
+
oldStdDev2: row.old_std_dev_2,
|
|
27
|
+
rho: row.rho,
|
|
28
|
+
oldRho: row.old_rho,
|
|
21
29
|
collateralPosted: row.collateral_posted,
|
|
22
30
|
};
|
|
23
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trader-events.js","sourceRoot":"","sources":["../../../src/api/routes/trader-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,qBAAqB,CAC5B,GAA8C;IAE9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,WAAW;QAC1B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACxD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,KAKlB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAErC,MAAM,IAAI,GAKN,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,QAAQ,GAA2C;QACvD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACrC,KAAK;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"trader-events.js","sourceRoot":"","sources":["../../../src/api/routes/trader-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAiBvD;AAED,wBAAgB,sBAAsB,IAAI,QAAQ,CAMjD"}
|
package/dist/db/connection.js
CHANGED
|
@@ -13,12 +13,16 @@ export function createDatabase(dbPath) {
|
|
|
13
13
|
db.exec('PRAGMA synchronous = NORMAL');
|
|
14
14
|
db.exec('PRAGMA busy_timeout = 5000');
|
|
15
15
|
db.exec('PRAGMA cache_size = -10000'); // 10MB
|
|
16
|
+
db.exec('PRAGMA wal_autocheckpoint = 2000'); // reduce checkpoint frequency under write-heavy bursts
|
|
17
|
+
db.exec('PRAGMA mmap_size = 268435456'); // map up to 256MB for lower read syscall overhead
|
|
16
18
|
db.exec('PRAGMA temp_store = MEMORY');
|
|
17
19
|
db.exec('PRAGMA foreign_keys = ON');
|
|
18
20
|
return db;
|
|
19
21
|
}
|
|
20
22
|
export function createInMemoryDatabase() {
|
|
21
23
|
const db = new Database(':memory:');
|
|
24
|
+
db.exec('PRAGMA cache_size = -10000');
|
|
25
|
+
db.exec('PRAGMA temp_store = MEMORY');
|
|
22
26
|
db.exec('PRAGMA foreign_keys = ON');
|
|
23
27
|
return db;
|
|
24
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,8BAA8B;IAC9B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,sBAAsB;IACtB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACvC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO;IAC9C,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,8BAA8B;IAC9B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,sBAAsB;IACtB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACvC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO;IAC9C,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC,uDAAuD;IACpG,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,kDAAkD;IAC3F,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -17,7 +17,10 @@ export interface ActivityFeedQueryOptions {
|
|
|
17
17
|
}
|
|
18
18
|
export declare class ActivityFeedRepository {
|
|
19
19
|
private readonly db;
|
|
20
|
+
private static readonly MAX_CACHED_STATEMENTS;
|
|
21
|
+
private readonly statementCache;
|
|
20
22
|
constructor(db: Database);
|
|
23
|
+
private getStatement;
|
|
21
24
|
findAll(options?: ActivityFeedQueryOptions): EnrichedEventRow[];
|
|
22
25
|
count(options?: ActivityFeedQueryOptions): number;
|
|
23
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/activity-feed.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AA0DD,qBAAa,sBAAsB;
|
|
1
|
+
{"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/activity-feed.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AA0DD,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAH/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAO;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoD;gBAEtD,EAAE,EAAE,QAAQ;IAEzC,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,OAAO,GAAE,wBAA6B,GAAG,gBAAgB,EAAE;IAkBnE,KAAK,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM;CAUtD"}
|
|
@@ -42,34 +42,49 @@ function buildWhereClause(options) {
|
|
|
42
42
|
}
|
|
43
43
|
export class ActivityFeedRepository {
|
|
44
44
|
db;
|
|
45
|
+
static MAX_CACHED_STATEMENTS = 128;
|
|
46
|
+
statementCache = new Map();
|
|
45
47
|
constructor(db) {
|
|
46
48
|
this.db = db;
|
|
47
49
|
}
|
|
50
|
+
getStatement(sql) {
|
|
51
|
+
const cached = this.statementCache.get(sql);
|
|
52
|
+
if (cached) {
|
|
53
|
+
return cached;
|
|
54
|
+
}
|
|
55
|
+
const stmt = this.db.query(sql);
|
|
56
|
+
if (this.statementCache.size >= ActivityFeedRepository.MAX_CACHED_STATEMENTS) {
|
|
57
|
+
const oldestKey = this.statementCache.keys().next().value;
|
|
58
|
+
if (oldestKey) {
|
|
59
|
+
this.statementCache.delete(oldestKey);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
this.statementCache.set(sql, stmt);
|
|
63
|
+
return stmt;
|
|
64
|
+
}
|
|
48
65
|
findAll(options = {}) {
|
|
49
66
|
const limit = Math.min(Math.max(1, options.limit ?? 50), 200);
|
|
50
67
|
const offset = Math.max(0, options.offset ?? 0);
|
|
51
68
|
const { where, params } = buildWhereClause(options);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
.all(...params, limit, offset);
|
|
69
|
+
const sql = `SELECT
|
|
70
|
+
e.id, e.market_address, e.tx_hash, e.block_number, e.timestamp,
|
|
71
|
+
e.event_type, e.trader, e.mean, e.std_dev, e.old_mean, e.old_std_dev,
|
|
72
|
+
e.collateral_posted, e.settlement_value, e.settlement_outcomes_json,
|
|
73
|
+
m.title as market_title, m.category as market_category, m.market_type
|
|
74
|
+
FROM market_events e
|
|
75
|
+
JOIN markets m ON e.market_address = m.address
|
|
76
|
+
${where}
|
|
77
|
+
ORDER BY e.timestamp DESC, e.id DESC
|
|
78
|
+
LIMIT ? OFFSET ?`;
|
|
79
|
+
return this.getStatement(sql).all(...params, limit, offset);
|
|
64
80
|
}
|
|
65
81
|
count(options = {}) {
|
|
66
82
|
const { where, params } = buildWhereClause(options);
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
.get(...params);
|
|
83
|
+
const sql = `SELECT COUNT(*) as total
|
|
84
|
+
FROM market_events e
|
|
85
|
+
JOIN markets m ON e.market_address = m.address
|
|
86
|
+
${where}`;
|
|
87
|
+
const result = this.getStatement(sql).get(...params);
|
|
73
88
|
return result.total;
|
|
74
89
|
}
|
|
75
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../src/db/repositories/activity-feed.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAc9D,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC;AAIzB,SAAS,gBAAgB,CAAC,OAAiC;IAIzD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,UAAU,CAAC,IAAI,CAAC,oBAAoB,YAAY,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,UAAU,CAAC,IAAI,CAAC,qBAAqB,YAAY,GAAG,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,UAAU,CAAC,IAAI,CAAC,wBAAwB,YAAY,GAAG,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC,gBAAgB,YAAY,GAAG,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAClC,iFAAiF;QACjF,UAAU,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,OAAO,sBAAsB;
|
|
1
|
+
{"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../src/db/repositories/activity-feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,22 @@ import type { Database } from 'bun:sqlite';
|
|
|
5
5
|
import type { InsertEventInput, MarketEventRow } from '../../types';
|
|
6
6
|
export declare class EventRepository {
|
|
7
7
|
private readonly db;
|
|
8
|
+
private readonly insertStmt;
|
|
9
|
+
private readonly findByMarketStmt;
|
|
10
|
+
private readonly findByMarketFromStmt;
|
|
11
|
+
private readonly findByMarketToStmt;
|
|
12
|
+
private readonly findByMarketRangeStmt;
|
|
13
|
+
private readonly findByMarketForLPReplayStmt;
|
|
14
|
+
private readonly countByMarketStmt;
|
|
15
|
+
private readonly totalCountStmt;
|
|
16
|
+
private readonly findByTraderStmt;
|
|
17
|
+
private readonly findByTraderFromStmt;
|
|
18
|
+
private readonly findByTraderToStmt;
|
|
19
|
+
private readonly findByTraderRangeStmt;
|
|
20
|
+
private readonly countByTraderStmt;
|
|
21
|
+
private readonly findTradersByMarketStmt;
|
|
22
|
+
private readonly firstTradeByMarketLowerTraderStmt;
|
|
23
|
+
private readonly lastTradeByMarketLowerTraderStmt;
|
|
8
24
|
constructor(db: Database);
|
|
9
25
|
private runInsert;
|
|
10
26
|
insert(input: InsertEventInput): boolean;
|
|
@@ -15,6 +31,7 @@ export declare class EventRepository {
|
|
|
15
31
|
fromTimestamp?: number | undefined;
|
|
16
32
|
toTimestamp?: number | undefined;
|
|
17
33
|
}): MarketEventRow[];
|
|
34
|
+
findByMarketForLPReplay(marketAddress: string): MarketEventRow[];
|
|
18
35
|
countByMarket(marketAddress: string): number;
|
|
19
36
|
totalCount(): number;
|
|
20
37
|
findByTrader(trader: string, options?: {
|
|
@@ -27,5 +44,11 @@ export declare class EventRepository {
|
|
|
27
44
|
})[];
|
|
28
45
|
countByTrader(trader: string): number;
|
|
29
46
|
findTradersByMarket(marketAddress: string): string[];
|
|
47
|
+
findTradeBoundsByMarketAndTrader(marketAddress: string, trader: string): {
|
|
48
|
+
first_old_mean: number | null;
|
|
49
|
+
first_old_std_dev: number | null;
|
|
50
|
+
last_mean: number;
|
|
51
|
+
last_std_dev: number;
|
|
52
|
+
} | null;
|
|
30
53
|
}
|
|
31
54
|
//# sourceMappingURL=event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpE,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpE,qBAAa,eAAe;IAkBd,OAAO,CAAC,QAAQ,CAAC,EAAE;IAjB/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgC;IACtE,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAgC;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgC;IACtE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgC;IACxE,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAgC;IAClF,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAgC;gBAEpD,EAAE,EAAE,QAAQ;IA+HzC,OAAO,CAAC,SAAS;IAqCjB,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IASxC,WAAW,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM;IAaxD,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,GACL,cAAc,EAAE;IAqBnB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,EAAE;IAIhE,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAK5C,UAAU,IAAI,MAAM;IAKpB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,GACL,CAAC,cAAc,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;IAiChD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKrC,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAKpD,gCAAgC,CAC9B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb;QACD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI;CAqBT"}
|
|
@@ -1,23 +1,121 @@
|
|
|
1
1
|
export class EventRepository {
|
|
2
2
|
db;
|
|
3
|
+
insertStmt;
|
|
4
|
+
findByMarketStmt;
|
|
5
|
+
findByMarketFromStmt;
|
|
6
|
+
findByMarketToStmt;
|
|
7
|
+
findByMarketRangeStmt;
|
|
8
|
+
findByMarketForLPReplayStmt;
|
|
9
|
+
countByMarketStmt;
|
|
10
|
+
totalCountStmt;
|
|
11
|
+
findByTraderStmt;
|
|
12
|
+
findByTraderFromStmt;
|
|
13
|
+
findByTraderToStmt;
|
|
14
|
+
findByTraderRangeStmt;
|
|
15
|
+
countByTraderStmt;
|
|
16
|
+
findTradersByMarketStmt;
|
|
17
|
+
firstTradeByMarketLowerTraderStmt;
|
|
18
|
+
lastTradeByMarketLowerTraderStmt;
|
|
3
19
|
constructor(db) {
|
|
4
20
|
this.db = db;
|
|
21
|
+
this.insertStmt = this.db.query(`INSERT OR IGNORE INTO market_events
|
|
22
|
+
(market_address, event_uid, tx_hash, block_number, timestamp, event_type,
|
|
23
|
+
trader, mean, std_dev, lower_bound, upper_bound,
|
|
24
|
+
old_mean, old_std_dev, mean_2, std_dev_2, lower_bound_2, upper_bound_2,
|
|
25
|
+
old_mean_2, old_std_dev_2, rho, old_rho, collateral_posted, raw_data,
|
|
26
|
+
outcome_count, min_outcome_index, is_position_sell,
|
|
27
|
+
settlement_outcome_index, settlement_outcomes_json,
|
|
28
|
+
settlement_value, settlement_x1, settlement_x2)
|
|
29
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
30
|
+
this.findByMarketStmt = this.db.query(`SELECT * FROM market_events
|
|
31
|
+
WHERE market_address = ?
|
|
32
|
+
AND event_type NOT IN ('liquidity_added', 'liquidity_removed')
|
|
33
|
+
ORDER BY block_number ASC, timestamp ASC, id ASC
|
|
34
|
+
LIMIT ? OFFSET ?`);
|
|
35
|
+
this.findByMarketFromStmt = this.db.query(`SELECT * FROM market_events
|
|
36
|
+
WHERE market_address = ?
|
|
37
|
+
AND event_type NOT IN ('liquidity_added', 'liquidity_removed')
|
|
38
|
+
AND timestamp >= ?
|
|
39
|
+
ORDER BY block_number ASC, timestamp ASC, id ASC
|
|
40
|
+
LIMIT ? OFFSET ?`);
|
|
41
|
+
this.findByMarketToStmt = this.db.query(`SELECT * FROM market_events
|
|
42
|
+
WHERE market_address = ?
|
|
43
|
+
AND event_type NOT IN ('liquidity_added', 'liquidity_removed')
|
|
44
|
+
AND timestamp <= ?
|
|
45
|
+
ORDER BY block_number ASC, timestamp ASC, id ASC
|
|
46
|
+
LIMIT ? OFFSET ?`);
|
|
47
|
+
this.findByMarketRangeStmt = this.db.query(`SELECT * FROM market_events
|
|
48
|
+
WHERE market_address = ?
|
|
49
|
+
AND event_type NOT IN ('liquidity_added', 'liquidity_removed')
|
|
50
|
+
AND timestamp >= ?
|
|
51
|
+
AND timestamp <= ?
|
|
52
|
+
ORDER BY block_number ASC, timestamp ASC, id ASC
|
|
53
|
+
LIMIT ? OFFSET ?`);
|
|
54
|
+
this.findByMarketForLPReplayStmt = this.db.query(`SELECT *
|
|
55
|
+
FROM market_events
|
|
56
|
+
WHERE market_address = ?
|
|
57
|
+
AND event_type IN (
|
|
58
|
+
'bootstrapped',
|
|
59
|
+
'trade_moved',
|
|
60
|
+
'market_initialized',
|
|
61
|
+
'trade_executed',
|
|
62
|
+
'market_settled',
|
|
63
|
+
'liquidity_added',
|
|
64
|
+
'liquidity_removed'
|
|
65
|
+
)
|
|
66
|
+
ORDER BY block_number ASC, timestamp ASC, id ASC`);
|
|
67
|
+
this.countByMarketStmt = this.db.query("SELECT COUNT(*) as cnt FROM market_events WHERE market_address = ? AND event_type NOT IN ('liquidity_added', 'liquidity_removed')");
|
|
68
|
+
this.totalCountStmt = this.db.query('SELECT COUNT(*) as cnt FROM market_events');
|
|
69
|
+
this.findByTraderStmt = this.db.query(`SELECT e.*, m.title as market_title
|
|
70
|
+
FROM market_events e
|
|
71
|
+
JOIN markets m ON e.market_address = m.address
|
|
72
|
+
WHERE e.trader = ?
|
|
73
|
+
ORDER BY e.timestamp DESC, e.id DESC
|
|
74
|
+
LIMIT ? OFFSET ?`);
|
|
75
|
+
this.findByTraderFromStmt = this.db.query(`SELECT e.*, m.title as market_title
|
|
76
|
+
FROM market_events e
|
|
77
|
+
JOIN markets m ON e.market_address = m.address
|
|
78
|
+
WHERE e.trader = ?
|
|
79
|
+
AND e.timestamp >= ?
|
|
80
|
+
ORDER BY e.timestamp DESC, e.id DESC
|
|
81
|
+
LIMIT ? OFFSET ?`);
|
|
82
|
+
this.findByTraderToStmt = this.db.query(`SELECT e.*, m.title as market_title
|
|
83
|
+
FROM market_events e
|
|
84
|
+
JOIN markets m ON e.market_address = m.address
|
|
85
|
+
WHERE e.trader = ?
|
|
86
|
+
AND e.timestamp <= ?
|
|
87
|
+
ORDER BY e.timestamp DESC, e.id DESC
|
|
88
|
+
LIMIT ? OFFSET ?`);
|
|
89
|
+
this.findByTraderRangeStmt = this.db.query(`SELECT e.*, m.title as market_title
|
|
90
|
+
FROM market_events e
|
|
91
|
+
JOIN markets m ON e.market_address = m.address
|
|
92
|
+
WHERE e.trader = ?
|
|
93
|
+
AND e.timestamp >= ?
|
|
94
|
+
AND e.timestamp <= ?
|
|
95
|
+
ORDER BY e.timestamp DESC, e.id DESC
|
|
96
|
+
LIMIT ? OFFSET ?`);
|
|
97
|
+
this.countByTraderStmt = this.db.query('SELECT COUNT(*) as cnt FROM market_events WHERE trader = ?');
|
|
98
|
+
this.findTradersByMarketStmt = this.db.query(`SELECT DISTINCT trader FROM market_events
|
|
99
|
+
WHERE market_address = ? AND trader IS NOT NULL
|
|
100
|
+
ORDER BY trader`);
|
|
101
|
+
this.firstTradeByMarketLowerTraderStmt = this.db.query(`SELECT old_mean, old_std_dev
|
|
102
|
+
FROM market_events
|
|
103
|
+
WHERE market_address = ? AND LOWER(trader) = ? AND event_type = 'trade_executed'
|
|
104
|
+
ORDER BY timestamp ASC, id ASC
|
|
105
|
+
LIMIT 1`);
|
|
106
|
+
this.lastTradeByMarketLowerTraderStmt = this.db.query(`SELECT mean, std_dev
|
|
107
|
+
FROM market_events
|
|
108
|
+
WHERE market_address = ? AND LOWER(trader) = ? AND event_type = 'trade_executed'
|
|
109
|
+
ORDER BY timestamp DESC, id DESC
|
|
110
|
+
LIMIT 1`);
|
|
5
111
|
}
|
|
6
112
|
runInsert(stmt, input) {
|
|
7
|
-
const result = stmt.run(input.market_address, input.event_uid, input.tx_hash, input.block_number, input.timestamp, input.event_type, input.trader, input.mean, input.std_dev, input.lower_bound, input.upper_bound, input.old_mean, input.old_std_dev, input.collateral_posted, input.raw_data, input.outcome_count ?? null, input.min_outcome_index ?? null, input.is_position_sell != null ? (input.is_position_sell ? 1 : 0) : null, input.settlement_outcome_index ?? null, input.settlement_outcomes_json ?? null, input.settlement_value ?? null, input.settlement_x1 ?? null, input.settlement_x2 ?? null);
|
|
113
|
+
const result = stmt.run(input.market_address, input.event_uid, input.tx_hash, input.block_number, input.timestamp, input.event_type, input.trader, input.mean, input.std_dev, input.lower_bound, input.upper_bound, input.old_mean, input.old_std_dev, input.mean_2 ?? null, input.std_dev_2 ?? null, input.lower_bound_2 ?? null, input.upper_bound_2 ?? null, input.old_mean_2 ?? null, input.old_std_dev_2 ?? null, input.rho ?? null, input.old_rho ?? null, input.collateral_posted, input.raw_data, input.outcome_count ?? null, input.min_outcome_index ?? null, input.is_position_sell != null ? (input.is_position_sell ? 1 : 0) : null, input.settlement_outcome_index ?? null, input.settlement_outcomes_json ?? null, input.settlement_value ?? null, input.settlement_x1 ?? null, input.settlement_x2 ?? null);
|
|
8
114
|
return result.changes;
|
|
9
115
|
}
|
|
10
116
|
insert(input) {
|
|
11
117
|
try {
|
|
12
|
-
|
|
13
|
-
(market_address, event_uid, tx_hash, block_number, timestamp, event_type,
|
|
14
|
-
trader, mean, std_dev, lower_bound, upper_bound,
|
|
15
|
-
old_mean, old_std_dev, collateral_posted, raw_data,
|
|
16
|
-
outcome_count, min_outcome_index, is_position_sell,
|
|
17
|
-
settlement_outcome_index, settlement_outcomes_json,
|
|
18
|
-
settlement_value, settlement_x1, settlement_x2)
|
|
19
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
20
|
-
this.runInsert(stmt, input);
|
|
118
|
+
this.runInsert(this.insertStmt, input);
|
|
21
119
|
return true;
|
|
22
120
|
}
|
|
23
121
|
catch {
|
|
@@ -26,17 +124,9 @@ export class EventRepository {
|
|
|
26
124
|
}
|
|
27
125
|
insertBatch(inputs) {
|
|
28
126
|
let inserted = 0;
|
|
29
|
-
const stmt = this.db.query(`INSERT OR IGNORE INTO market_events
|
|
30
|
-
(market_address, event_uid, tx_hash, block_number, timestamp, event_type,
|
|
31
|
-
trader, mean, std_dev, lower_bound, upper_bound,
|
|
32
|
-
old_mean, old_std_dev, collateral_posted, raw_data,
|
|
33
|
-
outcome_count, min_outcome_index, is_position_sell,
|
|
34
|
-
settlement_outcome_index, settlement_outcomes_json,
|
|
35
|
-
settlement_value, settlement_x1, settlement_x2)
|
|
36
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
37
127
|
const tx = this.db.transaction(() => {
|
|
38
128
|
for (const input of inputs) {
|
|
39
|
-
inserted += this.runInsert(
|
|
129
|
+
inserted += this.runInsert(this.insertStmt, input);
|
|
40
130
|
}
|
|
41
131
|
});
|
|
42
132
|
tx();
|
|
@@ -44,70 +134,61 @@ export class EventRepository {
|
|
|
44
134
|
}
|
|
45
135
|
findByMarket(marketAddress, options = {}) {
|
|
46
136
|
const { limit = 100, offset = 0, fromTimestamp, toTimestamp } = options;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
137
|
+
if (fromTimestamp !== undefined && toTimestamp !== undefined) {
|
|
138
|
+
return this.findByMarketRangeStmt.all(marketAddress, fromTimestamp, toTimestamp, limit, offset);
|
|
139
|
+
}
|
|
50
140
|
if (fromTimestamp !== undefined) {
|
|
51
|
-
|
|
52
|
-
params.push(fromTimestamp);
|
|
141
|
+
return this.findByMarketFromStmt.all(marketAddress, fromTimestamp, limit, offset);
|
|
53
142
|
}
|
|
54
143
|
if (toTimestamp !== undefined) {
|
|
55
|
-
|
|
56
|
-
params.push(toTimestamp);
|
|
144
|
+
return this.findByMarketToStmt.all(marketAddress, toTimestamp, limit, offset);
|
|
57
145
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
ORDER BY block_number ASC, timestamp ASC, id ASC
|
|
63
|
-
LIMIT ? OFFSET ?`)
|
|
64
|
-
.all(...params);
|
|
146
|
+
return this.findByMarketStmt.all(marketAddress, limit, offset);
|
|
147
|
+
}
|
|
148
|
+
findByMarketForLPReplay(marketAddress) {
|
|
149
|
+
return this.findByMarketForLPReplayStmt.all(marketAddress);
|
|
65
150
|
}
|
|
66
151
|
countByMarket(marketAddress) {
|
|
67
|
-
const row = this.
|
|
68
|
-
.query("SELECT COUNT(*) as cnt FROM market_events WHERE market_address = ? AND event_type NOT IN ('liquidity_added', 'liquidity_removed')")
|
|
69
|
-
.get(marketAddress);
|
|
152
|
+
const row = this.countByMarketStmt.get(marketAddress);
|
|
70
153
|
return row.cnt;
|
|
71
154
|
}
|
|
72
155
|
totalCount() {
|
|
73
|
-
const row = this.
|
|
156
|
+
const row = this.totalCountStmt.get();
|
|
74
157
|
return row.cnt;
|
|
75
158
|
}
|
|
76
159
|
findByTrader(trader, options = {}) {
|
|
77
160
|
const { limit = 100, offset = 0, fromTimestamp, toTimestamp } = options;
|
|
78
|
-
|
|
79
|
-
|
|
161
|
+
if (fromTimestamp !== undefined && toTimestamp !== undefined) {
|
|
162
|
+
return this.findByTraderRangeStmt.all(trader, fromTimestamp, toTimestamp, limit, offset);
|
|
163
|
+
}
|
|
80
164
|
if (fromTimestamp !== undefined) {
|
|
81
|
-
|
|
82
|
-
params.push(fromTimestamp);
|
|
165
|
+
return this.findByTraderFromStmt.all(trader, fromTimestamp, limit, offset);
|
|
83
166
|
}
|
|
84
167
|
if (toTimestamp !== undefined) {
|
|
85
|
-
|
|
86
|
-
params.push(toTimestamp);
|
|
168
|
+
return this.findByTraderToStmt.all(trader, toTimestamp, limit, offset);
|
|
87
169
|
}
|
|
88
|
-
|
|
89
|
-
return this.db
|
|
90
|
-
.query(`SELECT e.*, m.title as market_title
|
|
91
|
-
FROM market_events e
|
|
92
|
-
JOIN markets m ON e.market_address = m.address
|
|
93
|
-
WHERE ${conditions.join(' AND ')}
|
|
94
|
-
ORDER BY e.timestamp DESC
|
|
95
|
-
LIMIT ? OFFSET ?`)
|
|
96
|
-
.all(...params);
|
|
170
|
+
return this.findByTraderStmt.all(trader, limit, offset);
|
|
97
171
|
}
|
|
98
172
|
countByTrader(trader) {
|
|
99
|
-
const row = this.
|
|
100
|
-
.query('SELECT COUNT(*) as cnt FROM market_events WHERE trader = ?')
|
|
101
|
-
.get(trader);
|
|
173
|
+
const row = this.countByTraderStmt.get(trader);
|
|
102
174
|
return row.cnt;
|
|
103
175
|
}
|
|
104
176
|
findTradersByMarket(marketAddress) {
|
|
105
|
-
const rows = this.
|
|
106
|
-
.query(`SELECT DISTINCT trader FROM market_events
|
|
107
|
-
WHERE market_address = ? AND trader IS NOT NULL
|
|
108
|
-
ORDER BY trader`)
|
|
109
|
-
.all(marketAddress);
|
|
177
|
+
const rows = this.findTradersByMarketStmt.all(marketAddress);
|
|
110
178
|
return rows.map((r) => r.trader);
|
|
111
179
|
}
|
|
180
|
+
findTradeBoundsByMarketAndTrader(marketAddress, trader) {
|
|
181
|
+
const first = this.firstTradeByMarketLowerTraderStmt.get(marketAddress.toLowerCase(), trader.toLowerCase());
|
|
182
|
+
const last = this.lastTradeByMarketLowerTraderStmt.get(marketAddress.toLowerCase(), trader.toLowerCase());
|
|
183
|
+
if (!first || !last) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
first_old_mean: first.old_mean ?? null,
|
|
188
|
+
first_old_std_dev: first.old_std_dev ?? null,
|
|
189
|
+
last_mean: last.mean,
|
|
190
|
+
last_std_dev: last.std_dev,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
112
193
|
}
|
|
113
194
|
//# sourceMappingURL=event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/db/repositories/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,16 +39,8 @@ export declare class LPPositionRepository {
|
|
|
39
39
|
/** Recompute deposit/withdrawal totals from market_events. Idempotent — safe
|
|
40
40
|
* to call on every event cycle without double-counting. */
|
|
41
41
|
recomputeFromEvents(marketAddress: string, provider: string): void;
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
* Lambda formula: `k × √(2σ√π)` — the AMM's full-pool lambda for the distribution.
|
|
46
|
-
* This is the full lambda, not scaled by share fraction. Consumers must scale by
|
|
47
|
-
* `shares / totalShares` to get the per-LP component lambda. We store the full value
|
|
48
|
-
* because the share fraction at LP-entry time isn't readily available in this context,
|
|
49
|
-
* and the consumer already has the shares data from `getLPShares`.
|
|
50
|
-
*/
|
|
51
|
-
private populateEntryDistributionIfMissing;
|
|
42
|
+
/** Recompute LP aggregates for multiple providers in one DB pass. */
|
|
43
|
+
recomputeFromEventsBatch(marketAddress: string, providers: readonly string[]): void;
|
|
52
44
|
/** Set entry distribution fields if not yet populated. */
|
|
53
45
|
upsertEntryDistribution(marketAddress: string, provider: string, mean: number | null, sigma: number | null, k: number | null): void;
|
|
54
46
|
/** Mark an LP position as claimed (called when a position_claimed event is processed). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lp-position.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lp-position.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,8DAA8D;IAC9D,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS7D;gEAC4D;IAC5D,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"lp-position.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lp-position.ts"],"names":[],"mappings":"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"}
|