@dhedge/backend-flatcoin-core 0.2.43 → 0.2.46

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 (32) hide show
  1. package/dist/constants/enum.d.ts +2 -0
  2. package/dist/constants/enum.js +2 -0
  3. package/dist/entity/index.d.ts +1 -0
  4. package/dist/entity/index.js +1 -0
  5. package/dist/entity/leverage-monthly-pnl.js +1 -1
  6. package/dist/entity/protocol-metrics.d.ts +10 -0
  7. package/dist/entity/protocol-metrics.js +49 -0
  8. package/dist/entity/valueChart/user-value-half-year.d.ts +3 -0
  9. package/dist/entity/valueChart/user-value-half-year.js +17 -0
  10. package/dist/entity/valueChart/user-value-one-month.d.ts +3 -0
  11. package/dist/entity/valueChart/user-value-one-month.js +17 -0
  12. package/dist/entity/valueChart/user-value-one-week.d.ts +3 -0
  13. package/dist/entity/valueChart/user-value-one-week.js +17 -0
  14. package/dist/entity/valueChart/user-value-one-year.d.ts +3 -0
  15. package/dist/entity/valueChart/user-value-one-year.js +17 -0
  16. package/dist/entity/valueChart/user-value-parent.d.ts +7 -0
  17. package/dist/entity/valueChart/user-value-parent.js +45 -0
  18. package/dist/entity/valueChart/user-value-three-months.d.ts +3 -0
  19. package/dist/entity/valueChart/user-value-three-months.js +17 -0
  20. package/dist/entity/valueChart/user.value.d.ts +3 -0
  21. package/dist/entity/valueChart/user.value.js +17 -0
  22. package/dist/repository/index.d.ts +1 -0
  23. package/dist/repository/index.js +1 -0
  24. package/dist/repository/leverage-monthly-pnl.repository.js +1 -0
  25. package/dist/repository/protocol-metrics.repository.d.ts +8 -0
  26. package/dist/repository/protocol-metrics.repository.js +36 -0
  27. package/dist/repository/user-value.repository.d.ts +22 -0
  28. package/dist/repository/user-value.repository.js +90 -0
  29. package/dist/service/graph-query.service.d.ts +2 -0
  30. package/dist/service/graph-query.service.js +31 -2
  31. package/dist/utils/shared-types.d.ts +1 -0
  32. package/package.json +1 -1
@@ -2,6 +2,8 @@ declare enum HistoricalPeriod {
2
2
  ONE_DAY = "1d",
3
3
  ONE_WEEK = "1w",
4
4
  ONE_MONTH = "1m",
5
+ THREE_MONTHS = "3m",
6
+ HALF_YEAR = "6m",
5
7
  ONE_YEAR = "12m",
6
8
  ALL = "all"
7
9
  }
@@ -6,6 +6,8 @@ var HistoricalPeriod;
6
6
  HistoricalPeriod["ONE_DAY"] = "1d";
7
7
  HistoricalPeriod["ONE_WEEK"] = "1w";
8
8
  HistoricalPeriod["ONE_MONTH"] = "1m";
9
+ HistoricalPeriod["THREE_MONTHS"] = "3m";
10
+ HistoricalPeriod["HALF_YEAR"] = "6m";
9
11
  HistoricalPeriod["ONE_YEAR"] = "12m";
10
12
  HistoricalPeriod["ALL"] = "all";
11
13
  })(HistoricalPeriod || (exports.HistoricalPeriod = HistoricalPeriod = {}));
@@ -14,4 +14,5 @@ export * from './position-entity';
14
14
  export * from './borrowing-rate-apy-history';
15
15
  export * from './leverage-leaderboard';
16
16
  export * from './order-execution';
17
+ export * from './protocol-metrics';
17
18
  export * from './leverage-monthly-pnl';
@@ -30,4 +30,5 @@ __exportStar(require("./position-entity"), exports);
30
30
  __exportStar(require("./borrowing-rate-apy-history"), exports);
31
31
  __exportStar(require("./leverage-leaderboard"), exports);
32
32
  __exportStar(require("./order-execution"), exports);
33
+ __exportStar(require("./protocol-metrics"), exports);
33
34
  __exportStar(require("./leverage-monthly-pnl"), exports);
@@ -47,5 +47,5 @@ __decorate([
47
47
  ], LeverageMonthlyPnl.prototype, "lastClosedPositionTimestamp", void 0);
48
48
  exports.LeverageMonthlyPnl = LeverageMonthlyPnl = __decorate([
49
49
  (0, graphql_1.ObjectType)(),
50
- (0, typeorm_1.Entity)({ name: 'leverage_leaderboard' })
50
+ (0, typeorm_1.Entity)({ name: 'leverage_monthly_pnl' })
51
51
  ], LeverageMonthlyPnl);
@@ -0,0 +1,10 @@
1
+ import { BigNumber } from 'ethers';
2
+ export declare class ProtocolMetrics {
3
+ id: number;
4
+ unitDepositsVolume: BigNumber;
5
+ unitWithdrawalsVolume: BigNumber;
6
+ leverageOpensVolume: BigNumber;
7
+ leverageAdjustsVolume: BigNumber;
8
+ leverageClosesVolume: BigNumber;
9
+ blockSynced: number;
10
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ProtocolMetrics = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const utils_1 = require("../utils");
15
+ const ethers_1 = require("ethers");
16
+ let ProtocolMetrics = class ProtocolMetrics {
17
+ };
18
+ exports.ProtocolMetrics = ProtocolMetrics;
19
+ __decorate([
20
+ (0, typeorm_1.PrimaryGeneratedColumn)({ name: 'id' }),
21
+ __metadata("design:type", Number)
22
+ ], ProtocolMetrics.prototype, "id", void 0);
23
+ __decorate([
24
+ (0, typeorm_1.Column)({ name: 'unit_deposits_volume', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
25
+ __metadata("design:type", ethers_1.BigNumber)
26
+ ], ProtocolMetrics.prototype, "unitDepositsVolume", void 0);
27
+ __decorate([
28
+ (0, typeorm_1.Column)({ name: 'unit_withdrawals_volume', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
29
+ __metadata("design:type", ethers_1.BigNumber)
30
+ ], ProtocolMetrics.prototype, "unitWithdrawalsVolume", void 0);
31
+ __decorate([
32
+ (0, typeorm_1.Column)({ name: 'leverage_opens_volume', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
33
+ __metadata("design:type", ethers_1.BigNumber)
34
+ ], ProtocolMetrics.prototype, "leverageOpensVolume", void 0);
35
+ __decorate([
36
+ (0, typeorm_1.Column)({ name: 'leverage_adjusts_volume', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
37
+ __metadata("design:type", ethers_1.BigNumber)
38
+ ], ProtocolMetrics.prototype, "leverageAdjustsVolume", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.Column)({ name: 'leverage_closes_volume', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
41
+ __metadata("design:type", ethers_1.BigNumber)
42
+ ], ProtocolMetrics.prototype, "leverageClosesVolume", void 0);
43
+ __decorate([
44
+ (0, typeorm_1.Column)({ name: 'block_synced', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
45
+ __metadata("design:type", Number)
46
+ ], ProtocolMetrics.prototype, "blockSynced", void 0);
47
+ exports.ProtocolMetrics = ProtocolMetrics = __decorate([
48
+ (0, typeorm_1.Entity)({ name: 'protocol_metrics' })
49
+ ], ProtocolMetrics);
@@ -0,0 +1,3 @@
1
+ import { UserValueParent } from './user-value-parent';
2
+ export declare class UserValueHalfYear extends UserValueParent {
3
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserValueHalfYear = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const user_value_parent_1 = require("./user-value-parent");
12
+ let UserValueHalfYear = class UserValueHalfYear extends user_value_parent_1.UserValueParent {
13
+ };
14
+ exports.UserValueHalfYear = UserValueHalfYear;
15
+ exports.UserValueHalfYear = UserValueHalfYear = __decorate([
16
+ (0, typeorm_1.Entity)({ name: 'flatcoin_prices_6m' })
17
+ ], UserValueHalfYear);
@@ -0,0 +1,3 @@
1
+ import { UserValueParent } from './user-value-parent';
2
+ export declare class UserValueOneMonth extends UserValueParent {
3
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserValueOneMonth = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const user_value_parent_1 = require("./user-value-parent");
12
+ let UserValueOneMonth = class UserValueOneMonth extends user_value_parent_1.UserValueParent {
13
+ };
14
+ exports.UserValueOneMonth = UserValueOneMonth;
15
+ exports.UserValueOneMonth = UserValueOneMonth = __decorate([
16
+ (0, typeorm_1.Entity)({ name: 'flatcoin_prices_1m' })
17
+ ], UserValueOneMonth);
@@ -0,0 +1,3 @@
1
+ import { UserValueParent } from './user-value-parent';
2
+ export declare class UserValueOneWeek extends UserValueParent {
3
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserValueOneWeek = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const user_value_parent_1 = require("./user-value-parent");
12
+ let UserValueOneWeek = class UserValueOneWeek extends user_value_parent_1.UserValueParent {
13
+ };
14
+ exports.UserValueOneWeek = UserValueOneWeek;
15
+ exports.UserValueOneWeek = UserValueOneWeek = __decorate([
16
+ (0, typeorm_1.Entity)({ name: 'flatcoin_prices_1w' })
17
+ ], UserValueOneWeek);
@@ -0,0 +1,3 @@
1
+ import { UserValueParent } from './user-value-parent';
2
+ export declare class UserValueOneYear extends UserValueParent {
3
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserValueOneYear = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const user_value_parent_1 = require("./user-value-parent");
12
+ let UserValueOneYear = class UserValueOneYear extends user_value_parent_1.UserValueParent {
13
+ };
14
+ exports.UserValueOneYear = UserValueOneYear;
15
+ exports.UserValueOneYear = UserValueOneYear = __decorate([
16
+ (0, typeorm_1.Entity)({ name: 'flatcoin_prices_1y' })
17
+ ], UserValueOneYear);
@@ -0,0 +1,7 @@
1
+ export declare abstract class UserValueParent {
2
+ id: number;
3
+ valueUsd: string;
4
+ account: string;
5
+ timestamp: number;
6
+ blockNumber: number;
7
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserValueParent = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const graphql_1 = require("@nestjs/graphql");
15
+ const utils_1 = require("../../utils");
16
+ let UserValueParent = class UserValueParent {
17
+ };
18
+ exports.UserValueParent = UserValueParent;
19
+ __decorate([
20
+ (0, typeorm_1.PrimaryGeneratedColumn)({ name: 'id' }),
21
+ __metadata("design:type", Number)
22
+ ], UserValueParent.prototype, "id", void 0);
23
+ __decorate([
24
+ (0, graphql_1.Field)(),
25
+ (0, typeorm_1.Column)({ name: 'value_usd', type: 'numeric', precision: 30 }),
26
+ __metadata("design:type", String)
27
+ ], UserValueParent.prototype, "valueUsd", void 0);
28
+ __decorate([
29
+ (0, graphql_1.Field)(() => String, { nullable: false }),
30
+ (0, typeorm_1.Column)({ name: 'account' }),
31
+ __metadata("design:type", String)
32
+ ], UserValueParent.prototype, "account", void 0);
33
+ __decorate([
34
+ (0, graphql_1.Field)(),
35
+ (0, typeorm_1.Column)({ name: 'timestamp', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
36
+ __metadata("design:type", Number)
37
+ ], UserValueParent.prototype, "timestamp", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)({ name: 'block_number', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
40
+ __metadata("design:type", Number)
41
+ ], UserValueParent.prototype, "blockNumber", void 0);
42
+ exports.UserValueParent = UserValueParent = __decorate([
43
+ (0, graphql_1.ObjectType)(),
44
+ (0, typeorm_1.Entity)()
45
+ ], UserValueParent);
@@ -0,0 +1,3 @@
1
+ import { UserValueParent } from './user-value-parent';
2
+ export declare class UserValueThreeMonths extends UserValueParent {
3
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserValueThreeMonths = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const user_value_parent_1 = require("./user-value-parent");
12
+ let UserValueThreeMonths = class UserValueThreeMonths extends user_value_parent_1.UserValueParent {
13
+ };
14
+ exports.UserValueThreeMonths = UserValueThreeMonths;
15
+ exports.UserValueThreeMonths = UserValueThreeMonths = __decorate([
16
+ (0, typeorm_1.Entity)({ name: 'flatcoin_prices_3m' })
17
+ ], UserValueThreeMonths);
@@ -0,0 +1,3 @@
1
+ import { UserValueParent } from './user-value-parent';
2
+ export declare class UserValue extends UserValueParent {
3
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserValue = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const user_value_parent_1 = require("./user-value-parent");
12
+ let UserValue = class UserValue extends user_value_parent_1.UserValueParent {
13
+ };
14
+ exports.UserValue = UserValue;
15
+ exports.UserValue = UserValue = __decorate([
16
+ (0, typeorm_1.Entity)({ name: 'user-values' })
17
+ ], UserValue);
@@ -7,4 +7,5 @@ export * from './price.repository';
7
7
  export * from './borrowing-rate-apy-history.repository';
8
8
  export * from './leverage-leaderboard.repository';
9
9
  export * from './order-execution.repository';
10
+ export * from './protocol-metrics.repository';
10
11
  export * from './leverage-monthly-pnl.repository';
@@ -23,4 +23,5 @@ __exportStar(require("./price.repository"), exports);
23
23
  __exportStar(require("./borrowing-rate-apy-history.repository"), exports);
24
24
  __exportStar(require("./leverage-leaderboard.repository"), exports);
25
25
  __exportStar(require("./order-execution.repository"), exports);
26
+ __exportStar(require("./protocol-metrics.repository"), exports);
26
27
  __exportStar(require("./leverage-monthly-pnl.repository"), exports);
@@ -25,6 +25,7 @@ let LeverageMonthlyPnlRepository = class LeverageMonthlyPnlRepository {
25
25
  return await this.repository
26
26
  .createQueryBuilder('leverageMonthlyPnl')
27
27
  .where('leverageMonthlyPnl.account = :account')
28
+ .orderBy('leverageMonthlyPnl.timestamp', 'ASC')
28
29
  .setParameter('account', account)
29
30
  .getMany();
30
31
  }
@@ -0,0 +1,8 @@
1
+ import { Repository } from 'typeorm';
2
+ import { ProtocolMetrics } from '../entity';
3
+ export declare class ProtocolMetricsRepository {
4
+ private repository;
5
+ constructor(repository: Repository<ProtocolMetrics>);
6
+ save(protocolMetrics: ProtocolMetrics): Promise<ProtocolMetrics>;
7
+ getLatestRecord(): Promise<ProtocolMetrics | null>;
8
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProtocolMetricsRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ const entity_1 = require("../entity");
20
+ let ProtocolMetricsRepository = class ProtocolMetricsRepository {
21
+ constructor(repository) {
22
+ this.repository = repository;
23
+ }
24
+ async save(protocolMetrics) {
25
+ return this.repository.save(protocolMetrics);
26
+ }
27
+ async getLatestRecord() {
28
+ return this.repository.createQueryBuilder().orderBy('block_synced', 'DESC').limit(1).getOne();
29
+ }
30
+ };
31
+ exports.ProtocolMetricsRepository = ProtocolMetricsRepository;
32
+ exports.ProtocolMetricsRepository = ProtocolMetricsRepository = __decorate([
33
+ (0, common_1.Injectable)(),
34
+ __param(0, (0, typeorm_1.InjectRepository)(entity_1.ProtocolMetrics)),
35
+ __metadata("design:paramtypes", [typeorm_2.Repository])
36
+ ], ProtocolMetricsRepository);
@@ -0,0 +1,22 @@
1
+ import { Repository } from 'typeorm';
2
+ import { FlatcoinPriceParent } from '../entity';
3
+ import { UserValueHalfYear } from '../entity/valueChart/user-value-half-year';
4
+ import { UserValueOneWeek } from '../entity/valueChart/user-value-one-week';
5
+ import { UserValueOneMonth } from '../entity/valueChart/user-value-one-month';
6
+ import { UserValue } from '../entity/valueChart/user.value';
7
+ import { UserValueThreeMonths } from '../entity/valueChart/user-value-three-months';
8
+ import { UserValueOneYear } from '../entity/valueChart/user-value-one-year';
9
+ export declare class UserValueRepository {
10
+ private userValueOneWeekRepository;
11
+ private userValueOneMonthRepository;
12
+ private userValueThreeMonthsRepository;
13
+ private userValueHalfYearRepository;
14
+ private userValueOneYearRepository;
15
+ private readonly repository;
16
+ constructor(userValueOneWeekRepository: Repository<UserValueOneWeek>, userValueOneMonthRepository: Repository<UserValueOneMonth>, userValueThreeMonthsRepository: Repository<UserValueThreeMonths>, userValueHalfYearRepository: Repository<UserValueHalfYear>, userValueOneYearRepository: Repository<UserValueOneYear>, repository: Repository<UserValue>);
17
+ findAllByPeriod(account: string, period: string): Promise<FlatcoinPriceParent[]>;
18
+ findLast(): Promise<UserValue | null>;
19
+ findFirstByTimestamp(fromTimestamp: number): Promise<UserValue | null>;
20
+ findFirst(): Promise<UserValue | null>;
21
+ private getRepository;
22
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UserValueRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ const constants_1 = require("../constants");
20
+ const user_value_half_year_1 = require("../entity/valueChart/user-value-half-year");
21
+ const user_value_one_week_1 = require("../entity/valueChart/user-value-one-week");
22
+ const user_value_one_month_1 = require("../entity/valueChart/user-value-one-month");
23
+ const user_value_1 = require("../entity/valueChart/user.value");
24
+ const user_value_three_months_1 = require("../entity/valueChart/user-value-three-months");
25
+ const user_value_one_year_1 = require("../entity/valueChart/user-value-one-year");
26
+ let UserValueRepository = class UserValueRepository {
27
+ constructor(userValueOneWeekRepository, userValueOneMonthRepository, userValueThreeMonthsRepository, userValueHalfYearRepository, userValueOneYearRepository, repository) {
28
+ this.userValueOneWeekRepository = userValueOneWeekRepository;
29
+ this.userValueOneMonthRepository = userValueOneMonthRepository;
30
+ this.userValueThreeMonthsRepository = userValueThreeMonthsRepository;
31
+ this.userValueHalfYearRepository = userValueHalfYearRepository;
32
+ this.userValueOneYearRepository = userValueOneYearRepository;
33
+ this.repository = repository;
34
+ }
35
+ async findAllByPeriod(account, period) {
36
+ return this.getRepository(period)
37
+ .createQueryBuilder()
38
+ .where('account = :account')
39
+ .setParameter('account', account)
40
+ .orderBy('timestamp', 'ASC')
41
+ .getMany();
42
+ }
43
+ async findLast() {
44
+ return this.repository.createQueryBuilder().orderBy('timestamp', 'DESC').take(1).getOne();
45
+ }
46
+ async findFirstByTimestamp(fromTimestamp) {
47
+ return await this.repository
48
+ .createQueryBuilder()
49
+ .where('timestamp > :fromTimestamp')
50
+ .setParameter('fromTimestamp', fromTimestamp)
51
+ .orderBy('timestamp', 'ASC')
52
+ .take(1)
53
+ .getOne();
54
+ }
55
+ async findFirst() {
56
+ return await this.repository.createQueryBuilder().orderBy('timestamp', 'ASC').take(1).getOne();
57
+ }
58
+ getRepository(period) {
59
+ switch (period) {
60
+ case constants_1.HistoricalPeriod.ONE_WEEK:
61
+ return this.userValueOneWeekRepository;
62
+ case constants_1.HistoricalPeriod.ONE_MONTH:
63
+ return this.userValueOneMonthRepository;
64
+ case constants_1.HistoricalPeriod.THREE_MONTHS:
65
+ return this.userValueThreeMonthsRepository;
66
+ case constants_1.HistoricalPeriod.HALF_YEAR:
67
+ return this.userValueHalfYearRepository;
68
+ case constants_1.HistoricalPeriod.ONE_YEAR:
69
+ return this.userValueOneYearRepository;
70
+ default:
71
+ throw new Error('Invalid period provided.');
72
+ }
73
+ }
74
+ };
75
+ exports.UserValueRepository = UserValueRepository;
76
+ exports.UserValueRepository = UserValueRepository = __decorate([
77
+ (0, common_1.Injectable)(),
78
+ __param(0, (0, typeorm_1.InjectRepository)(user_value_one_week_1.UserValueOneWeek)),
79
+ __param(1, (0, typeorm_1.InjectRepository)(user_value_one_month_1.UserValueOneMonth)),
80
+ __param(2, (0, typeorm_1.InjectRepository)(user_value_three_months_1.UserValueThreeMonths)),
81
+ __param(3, (0, typeorm_1.InjectRepository)(user_value_half_year_1.UserValueHalfYear)),
82
+ __param(4, (0, typeorm_1.InjectRepository)(user_value_one_year_1.UserValueOneYear)),
83
+ __param(5, (0, typeorm_1.InjectRepository)(user_value_1.UserValue)),
84
+ __metadata("design:paramtypes", [typeorm_2.Repository,
85
+ typeorm_2.Repository,
86
+ typeorm_2.Repository,
87
+ typeorm_2.Repository,
88
+ typeorm_2.Repository,
89
+ typeorm_2.Repository])
90
+ ], UserValueRepository);
@@ -23,6 +23,7 @@ export declare class GraphQueryService {
23
23
  getAllOpenPositions(): Promise<Position[]>;
24
24
  getOpenPositions(skip: number, first: number): Promise<Position[]>;
25
25
  getClosedPositions(closeTimestampVar: number): Promise<Position[]>;
26
+ getClosedPositionsByCloseBlockFrom(closeBlockFrom: number): Promise<Position[]>;
26
27
  }
27
28
  export declare const getAnnouncedOrdersQuery: string;
28
29
  export declare const getLeverageOpensQuery: string;
@@ -41,3 +42,4 @@ export declare const getLimitOrderAnnouncedsQuery: string;
41
42
  export declare const getLimitOrderExecutedsByTimestampFromQuery: string;
42
43
  export declare const getOpenPositionsQuery: string;
43
44
  export declare const getClosedPositionsQuery: string;
45
+ export declare const getClosedPositionsQueryByCloseBlockFrom: string;
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getClosedPositionsQuery = exports.getOpenPositionsQuery = exports.getLimitOrderExecutedsByTimestampFromQuery = exports.getLimitOrderAnnouncedsQuery = exports.getWithdrawsByWithdrawerAddressQuery = exports.getWithdrawsByTimestampFromQuery = exports.getWithdrawsQuery = exports.getDepositsByDepositorAddressQuery = exports.getDepositsByTimestampFromQuery = exports.getDepositsQuery = exports.getPositionLiquidatedsQuery = exports.getLeverageAdjustsByTimestampFromQuery = exports.getLeverageClosesByTimestampFromQuery = exports.getLeverageClosesQuery = exports.getLeverageOpensByTimestampFromQuery = exports.getLeverageOpensQuery = exports.getAnnouncedOrdersQuery = exports.GraphQueryService = void 0;
12
+ exports.getClosedPositionsQueryByCloseBlockFrom = exports.getClosedPositionsQuery = exports.getOpenPositionsQuery = exports.getLimitOrderExecutedsByTimestampFromQuery = exports.getLimitOrderAnnouncedsQuery = exports.getWithdrawsByWithdrawerAddressQuery = exports.getWithdrawsByTimestampFromQuery = exports.getWithdrawsQuery = exports.getDepositsByDepositorAddressQuery = exports.getDepositsByTimestampFromQuery = exports.getDepositsQuery = exports.getPositionLiquidatedsQuery = exports.getLeverageAdjustsByTimestampFromQuery = exports.getLeverageClosesByTimestampFromQuery = exports.getLeverageClosesQuery = exports.getLeverageOpensByTimestampFromQuery = exports.getLeverageOpensQuery = exports.getAnnouncedOrdersQuery = exports.GraphQueryService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const graphql_request_1 = require("graphql-request");
15
15
  const constants_1 = require("../constants");
@@ -242,6 +242,18 @@ let GraphQueryService = class GraphQueryService {
242
242
  throw error;
243
243
  }
244
244
  }
245
+ async getClosedPositionsByCloseBlockFrom(closeBlockFrom) {
246
+ const variables = { closeBlockFrom };
247
+ try {
248
+ const response = await this.graphQLClient.request(exports.getClosedPositionsQueryByCloseBlockFrom, variables);
249
+ this.logger.log(`Fetched ${response.positions.length} closed positions from the graph from block ${closeBlockFrom}`);
250
+ return response.positions;
251
+ }
252
+ catch (error) {
253
+ this.logger.error(`Error fetching open positions from the graph from block ${closeBlockFrom}:`, error);
254
+ throw error;
255
+ }
256
+ }
245
257
  };
246
258
  exports.GraphQueryService = GraphQueryService;
247
259
  exports.GraphQueryService = GraphQueryService = __decorate([
@@ -433,7 +445,7 @@ exports.getOpenPositionsQuery = (0, graphql_request_1.gql) `
433
445
  }
434
446
  `;
435
447
  exports.getClosedPositionsQuery = (0, graphql_request_1.gql) `
436
- query GetOpenPositions($closeTimestampVar: Int) {
448
+ query GetClosedPositions($closeTimestampVar: Int) {
437
449
  positions(
438
450
  where: { status_in: [1, 2, 3], closeTimestamp_gt: $closeTimestampVar }
439
451
  orderBy: closeTimestamp
@@ -444,6 +456,23 @@ exports.getClosedPositionsQuery = (0, graphql_request_1.gql) `
444
456
  margin
445
457
  status
446
458
  closeTimestamp
459
+ accruedFunding
460
+ }
461
+ }
462
+ `;
463
+ exports.getClosedPositionsQueryByCloseBlockFrom = (0, graphql_request_1.gql) `
464
+ query GetClosedPositions($closeBlockFrom: Int) {
465
+ positions(
466
+ where: { status_in: [1, 2, 3], closeBlock_gt: $closeBlockFrom }
467
+ orderBy: closeBlock
468
+ orderDirection: desc
469
+ ) {
470
+ account
471
+ profitLoss
472
+ margin
473
+ status
474
+ closeTimestamp
475
+ accruedFunding
447
476
  }
448
477
  }
449
478
  `;
@@ -72,6 +72,7 @@ export interface Position {
72
72
  profitLoss: number;
73
73
  margin: number;
74
74
  closeTimestamp: number;
75
+ accruedFunding: number;
75
76
  }
76
77
  export interface DepositEventsData {
77
78
  deposits: DepositEvent[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhedge/backend-flatcoin-core",
3
- "version": "0.2.43",
3
+ "version": "0.2.46",
4
4
  "description": "Backend Flatcoin Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",