@dhedge/backend-flatcoin-core 0.2.41 → 0.2.43

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.
@@ -14,4 +14,4 @@ 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
+ export * from './leverage-monthly-pnl';
@@ -30,4 +30,4 @@ __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
+ __exportStar(require("./leverage-monthly-pnl"), exports);
@@ -0,0 +1,9 @@
1
+ import { BigNumber } from 'ethers';
2
+ export declare class LeverageMonthlyPnl {
3
+ id: number;
4
+ account: string;
5
+ pnlReth: BigNumber;
6
+ pnlRethFormatted: number;
7
+ timestamp: number;
8
+ lastClosedPositionTimestamp: number;
9
+ }
@@ -0,0 +1,51 @@
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.LeverageMonthlyPnl = void 0;
13
+ const graphql_1 = require("@nestjs/graphql");
14
+ const typeorm_1 = require("typeorm");
15
+ const utils_1 = require("../utils");
16
+ const ethers_1 = require("ethers");
17
+ let LeverageMonthlyPnl = class LeverageMonthlyPnl {
18
+ };
19
+ exports.LeverageMonthlyPnl = LeverageMonthlyPnl;
20
+ __decorate([
21
+ (0, typeorm_1.PrimaryGeneratedColumn)({ name: 'id' }),
22
+ __metadata("design:type", Number)
23
+ ], LeverageMonthlyPnl.prototype, "id", void 0);
24
+ __decorate([
25
+ (0, graphql_1.Field)(() => String, { nullable: false }),
26
+ (0, typeorm_1.Column)({ name: 'account', unique: true, nullable: false }),
27
+ __metadata("design:type", String)
28
+ ], LeverageMonthlyPnl.prototype, "account", void 0);
29
+ __decorate([
30
+ (0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
31
+ (0, typeorm_1.Column)({ name: 'pnl_reth', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
32
+ __metadata("design:type", ethers_1.BigNumber)
33
+ ], LeverageMonthlyPnl.prototype, "pnlReth", void 0);
34
+ __decorate([
35
+ (0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
36
+ (0, typeorm_1.Column)({ name: 'pnl_reth_formatted', type: 'decimal', precision: 30, scale: 4, transformer: utils_1.numericTransformer }),
37
+ __metadata("design:type", Number)
38
+ ], LeverageMonthlyPnl.prototype, "pnlRethFormatted", void 0);
39
+ __decorate([
40
+ (0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
41
+ (0, typeorm_1.Column)({ name: 'timestamp', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
42
+ __metadata("design:type", Number)
43
+ ], LeverageMonthlyPnl.prototype, "timestamp", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ name: 'last_closed_position_timestamp', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
46
+ __metadata("design:type", Number)
47
+ ], LeverageMonthlyPnl.prototype, "lastClosedPositionTimestamp", void 0);
48
+ exports.LeverageMonthlyPnl = LeverageMonthlyPnl = __decorate([
49
+ (0, graphql_1.ObjectType)(),
50
+ (0, typeorm_1.Entity)({ name: 'leverage_leaderboard' })
51
+ ], LeverageMonthlyPnl);
@@ -7,4 +7,4 @@ 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
+ export * from './leverage-monthly-pnl.repository';
@@ -23,4 +23,4 @@ __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
+ __exportStar(require("./leverage-monthly-pnl.repository"), exports);
@@ -0,0 +1,10 @@
1
+ import { LeverageMonthlyPnl } from '../entity';
2
+ import { Repository } from 'typeorm';
3
+ export declare class LeverageMonthlyPnlRepository {
4
+ private repository;
5
+ constructor(repository: Repository<LeverageMonthlyPnl>);
6
+ findAllByAccount(account: string): Promise<LeverageMonthlyPnl[]>;
7
+ findByLastTimestamp(): Promise<LeverageMonthlyPnl | null>;
8
+ findByAccountAndTimestamp(account: string, timestamp: number): Promise<LeverageMonthlyPnl | null>;
9
+ saveAll(leverageLeaderboard: LeverageMonthlyPnl[]): Promise<void>;
10
+ }
@@ -0,0 +1,57 @@
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.LeverageMonthlyPnlRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const entity_1 = require("../entity");
19
+ const typeorm_2 = require("typeorm");
20
+ let LeverageMonthlyPnlRepository = class LeverageMonthlyPnlRepository {
21
+ constructor(repository) {
22
+ this.repository = repository;
23
+ }
24
+ async findAllByAccount(account) {
25
+ return await this.repository
26
+ .createQueryBuilder('leverageMonthlyPnl')
27
+ .where('leverageMonthlyPnl.account = :account')
28
+ .setParameter('account', account)
29
+ .getMany();
30
+ }
31
+ async findByLastTimestamp() {
32
+ return await this.repository
33
+ .createQueryBuilder('leverageMonthlyPnl')
34
+ .orderBy('leverageMonthlyPnl.last_closed_position_timestamp', 'DESC')
35
+ .take(1)
36
+ .getOne();
37
+ }
38
+ async findByAccountAndTimestamp(account, timestamp) {
39
+ return await this.repository
40
+ .createQueryBuilder('leverageMonthlyPnl')
41
+ .where('leverageMonthlyPnl.account = :account')
42
+ .andWhere('leverageMonthlyPnl.timestamp = :timestamp')
43
+ .setParameter('account', account)
44
+ .setParameter('timestamp', timestamp)
45
+ .take(1)
46
+ .getOne();
47
+ }
48
+ async saveAll(leverageLeaderboard) {
49
+ await this.repository.save(leverageLeaderboard);
50
+ }
51
+ };
52
+ exports.LeverageMonthlyPnlRepository = LeverageMonthlyPnlRepository;
53
+ exports.LeverageMonthlyPnlRepository = LeverageMonthlyPnlRepository = __decorate([
54
+ (0, common_1.Injectable)(),
55
+ __param(0, (0, typeorm_1.InjectRepository)(entity_1.LeverageMonthlyPnl)),
56
+ __metadata("design:paramtypes", [typeorm_2.Repository])
57
+ ], LeverageMonthlyPnlRepository);
@@ -23,7 +23,6 @@ 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[]>;
27
26
  }
28
27
  export declare const getAnnouncedOrdersQuery: string;
29
28
  export declare const getLeverageOpensQuery: string;
@@ -42,4 +41,3 @@ export declare const getLimitOrderAnnouncedsQuery: string;
42
41
  export declare const getLimitOrderExecutedsByTimestampFromQuery: string;
43
42
  export declare const getOpenPositionsQuery: string;
44
43
  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.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;
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;
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,18 +242,6 @@ 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
- }
257
245
  };
258
246
  exports.GraphQueryService = GraphQueryService;
259
247
  exports.GraphQueryService = GraphQueryService = __decorate([
@@ -445,7 +433,7 @@ exports.getOpenPositionsQuery = (0, graphql_request_1.gql) `
445
433
  }
446
434
  `;
447
435
  exports.getClosedPositionsQuery = (0, graphql_request_1.gql) `
448
- query GetClosedPositions($closeTimestampVar: Int) {
436
+ query GetOpenPositions($closeTimestampVar: Int) {
449
437
  positions(
450
438
  where: { status_in: [1, 2, 3], closeTimestamp_gt: $closeTimestampVar }
451
439
  orderBy: closeTimestamp
@@ -456,23 +444,6 @@ exports.getClosedPositionsQuery = (0, graphql_request_1.gql) `
456
444
  margin
457
445
  status
458
446
  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
476
447
  }
477
448
  }
478
449
  `;
@@ -72,7 +72,6 @@ export interface Position {
72
72
  profitLoss: number;
73
73
  margin: number;
74
74
  closeTimestamp: number;
75
- accruedFunding: number;
76
75
  }
77
76
  export interface DepositEventsData {
78
77
  deposits: DepositEvent[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhedge/backend-flatcoin-core",
3
- "version": "0.2.41",
3
+ "version": "0.2.43",
4
4
  "description": "Backend Flatcoin Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,10 +0,0 @@
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
- }
@@ -1,49 +0,0 @@
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);
@@ -1,8 +0,0 @@
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
- }
@@ -1,36 +0,0 @@
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);