@dhedge/backend-flatcoin-core 0.2.28 → 0.2.29
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/dist/entity/index.d.ts +1 -0
- package/dist/entity/index.js +1 -0
- package/dist/entity/leverage-leaderboard.d.ts +9 -0
- package/dist/entity/leverage-leaderboard.js +52 -0
- package/dist/repository/borrowing-rate-apy-history.repository.d.ts +1 -1
- package/dist/repository/borrowing-rate-apy-history.repository.js +2 -2
- package/dist/repository/index.d.ts +1 -0
- package/dist/repository/index.js +1 -0
- package/dist/repository/leverage-leaderboard.repository.d.ts +10 -0
- package/dist/repository/leverage-leaderboard.repository.js +54 -0
- package/dist/service/graph-query.service.d.ts +2 -0
- package/dist/service/graph-query.service.js +28 -1
- package/dist/utils/shared-types.d.ts +4 -0
- package/package.json +1 -1
package/dist/entity/index.d.ts
CHANGED
package/dist/entity/index.js
CHANGED
|
@@ -28,3 +28,4 @@ __exportStar(require("./period-performance"), exports);
|
|
|
28
28
|
__exportStar(require("./limit-order.entity"), exports);
|
|
29
29
|
__exportStar(require("./position-entity"), exports);
|
|
30
30
|
__exportStar(require("./borrowing-rate-apy-history"), exports);
|
|
31
|
+
__exportStar(require("./leverage-leaderboard"), exports);
|
|
@@ -0,0 +1,52 @@
|
|
|
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.LeverageLeaderboard = 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 LeverageLeaderboard = class LeverageLeaderboard {
|
|
18
|
+
};
|
|
19
|
+
exports.LeverageLeaderboard = LeverageLeaderboard;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, typeorm_1.PrimaryGeneratedColumn)({ name: 'id' }),
|
|
22
|
+
__metadata("design:type", Number)
|
|
23
|
+
], LeverageLeaderboard.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
|
+
], LeverageLeaderboard.prototype, "account", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
|
|
31
|
+
(0, typeorm_1.Column)({ name: 'total_pnl_reth', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
|
|
32
|
+
__metadata("design:type", ethers_1.BigNumber)
|
|
33
|
+
], LeverageLeaderboard.prototype, "totalPnlReth", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
|
|
36
|
+
(0, typeorm_1.Column)({ name: 'total_traded_volume_reth', type: 'bigint', precision: 30, transformer: utils_1.bigNumberTransformer }),
|
|
37
|
+
__metadata("design:type", ethers_1.BigNumber)
|
|
38
|
+
], LeverageLeaderboard.prototype, "totalTradedVolumeReth", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
|
|
41
|
+
(0, typeorm_1.Column)({ name: 'closed_trades_count', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
|
|
42
|
+
__metadata("design:type", Number)
|
|
43
|
+
], LeverageLeaderboard.prototype, "closedTradesCount", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, graphql_1.Field)(() => graphql_1.Float, { nullable: true }),
|
|
46
|
+
(0, typeorm_1.Column)({ name: 'last_closed_position_timestamp', type: 'numeric', precision: 25, transformer: utils_1.numericTransformer }),
|
|
47
|
+
__metadata("design:type", Number)
|
|
48
|
+
], LeverageLeaderboard.prototype, "lastClosedPositionTimestamp", void 0);
|
|
49
|
+
exports.LeverageLeaderboard = LeverageLeaderboard = __decorate([
|
|
50
|
+
(0, graphql_1.ObjectType)(),
|
|
51
|
+
(0, typeorm_1.Entity)({ name: 'leverage_leaderboard' })
|
|
52
|
+
], LeverageLeaderboard);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Repository } from 'typeorm';
|
|
2
|
-
import { BorrowingRateApyHistory } from '../entity
|
|
2
|
+
import { BorrowingRateApyHistory } from '../entity';
|
|
3
3
|
export declare class BorrowingRateApyHistoryRepository {
|
|
4
4
|
private readonly repository;
|
|
5
5
|
constructor(repository: Repository<BorrowingRateApyHistory>);
|
|
@@ -16,7 +16,7 @@ exports.BorrowingRateApyHistoryRepository = void 0;
|
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
18
|
const typeorm_2 = require("typeorm");
|
|
19
|
-
const
|
|
19
|
+
const entity_1 = require("../entity");
|
|
20
20
|
let BorrowingRateApyHistoryRepository = class BorrowingRateApyHistoryRepository {
|
|
21
21
|
constructor(repository) {
|
|
22
22
|
this.repository = repository;
|
|
@@ -36,6 +36,6 @@ let BorrowingRateApyHistoryRepository = class BorrowingRateApyHistoryRepository
|
|
|
36
36
|
exports.BorrowingRateApyHistoryRepository = BorrowingRateApyHistoryRepository;
|
|
37
37
|
exports.BorrowingRateApyHistoryRepository = BorrowingRateApyHistoryRepository = __decorate([
|
|
38
38
|
(0, common_1.Injectable)(),
|
|
39
|
-
__param(0, (0, typeorm_1.InjectRepository)(
|
|
39
|
+
__param(0, (0, typeorm_1.InjectRepository)(entity_1.BorrowingRateApyHistory)),
|
|
40
40
|
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
41
41
|
], BorrowingRateApyHistoryRepository);
|
package/dist/repository/index.js
CHANGED
|
@@ -21,3 +21,4 @@ __exportStar(require("./limit-order.repository"), exports);
|
|
|
21
21
|
__exportStar(require("./position.repository"), exports);
|
|
22
22
|
__exportStar(require("./price.repository"), exports);
|
|
23
23
|
__exportStar(require("./borrowing-rate-apy-history.repository"), exports);
|
|
24
|
+
__exportStar(require("./leverage-leaderboard.repository"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { LeverageLeaderboard } from '../entity';
|
|
3
|
+
export declare class LeverageLeaderboardRepository {
|
|
4
|
+
private repository;
|
|
5
|
+
constructor(repository: Repository<LeverageLeaderboard>);
|
|
6
|
+
findByLastTimestamp(): Promise<LeverageLeaderboard | null>;
|
|
7
|
+
findByAccount(account: string): Promise<LeverageLeaderboard | null>;
|
|
8
|
+
findAllOrderedByPnl(): Promise<LeverageLeaderboard[]>;
|
|
9
|
+
save(leverageLeaderboard: LeverageLeaderboard): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.LeverageLeaderboardRepository = 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 LeverageLeaderboardRepository = class LeverageLeaderboardRepository {
|
|
21
|
+
constructor(repository) {
|
|
22
|
+
this.repository = repository;
|
|
23
|
+
}
|
|
24
|
+
async findByLastTimestamp() {
|
|
25
|
+
return await this.repository
|
|
26
|
+
.createQueryBuilder('leverageLeaderboard')
|
|
27
|
+
.orderBy('leverageLeaderboard.last_closed_position_timestamp', 'DESC')
|
|
28
|
+
.take(1)
|
|
29
|
+
.getOne();
|
|
30
|
+
}
|
|
31
|
+
async findByAccount(account) {
|
|
32
|
+
return await this.repository
|
|
33
|
+
.createQueryBuilder('leverageLeaderboard')
|
|
34
|
+
.where('leverageLeaderboard.account = :account')
|
|
35
|
+
.setParameter('account', account)
|
|
36
|
+
.take(1)
|
|
37
|
+
.getOne();
|
|
38
|
+
}
|
|
39
|
+
async findAllOrderedByPnl() {
|
|
40
|
+
return this.repository
|
|
41
|
+
.createQueryBuilder('leverageLeaderboard')
|
|
42
|
+
.orderBy('leverageLeaderboard.total_pnl_reth', 'DESC')
|
|
43
|
+
.getMany();
|
|
44
|
+
}
|
|
45
|
+
async save(leverageLeaderboard) {
|
|
46
|
+
await this.repository.save(leverageLeaderboard);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.LeverageLeaderboardRepository = LeverageLeaderboardRepository;
|
|
50
|
+
exports.LeverageLeaderboardRepository = LeverageLeaderboardRepository = __decorate([
|
|
51
|
+
(0, common_1.Injectable)(),
|
|
52
|
+
__param(0, (0, typeorm_1.InjectRepository)(entity_1.LeverageLeaderboard)),
|
|
53
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
54
|
+
], LeverageLeaderboardRepository);
|
|
@@ -16,6 +16,7 @@ export declare class GraphQueryService {
|
|
|
16
16
|
getLimitOrderAnnounceds(blockNumberFrom: number): Promise<AnnouncedLimitOrder[]>;
|
|
17
17
|
getAllOpenPositions(): Promise<Position[]>;
|
|
18
18
|
getOpenPositions(skip: number, first: number): Promise<Position[]>;
|
|
19
|
+
getClosedPositions(closeTimestampVar: number): Promise<Position[]>;
|
|
19
20
|
}
|
|
20
21
|
export declare const getAnnouncedOrdersQuery: string;
|
|
21
22
|
export declare const getLeverageOpensQuery: string;
|
|
@@ -27,3 +28,4 @@ export declare const getWithdrawsQuery: string;
|
|
|
27
28
|
export declare const getWithdrawsByWithdrawerAddressQuery: string;
|
|
28
29
|
export declare const getLimitOrderAnnouncedsQuery: string;
|
|
29
30
|
export declare const getOpenPositionsQuery: string;
|
|
31
|
+
export declare const getClosedPositionsQuery: 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.getOpenPositionsQuery = exports.getLimitOrderAnnouncedsQuery = exports.getWithdrawsByWithdrawerAddressQuery = exports.getWithdrawsQuery = exports.getDepositsByDepositorAddressQuery = exports.getDepositsQuery = exports.getPositionLiquidatedsQuery = exports.getLeverageClosesQuery = exports.getLeverageOpensQuery = exports.getAnnouncedOrdersQuery = exports.GraphQueryService = void 0;
|
|
12
|
+
exports.getClosedPositionsQuery = exports.getOpenPositionsQuery = exports.getLimitOrderAnnouncedsQuery = exports.getWithdrawsByWithdrawerAddressQuery = exports.getWithdrawsQuery = exports.getDepositsByDepositorAddressQuery = exports.getDepositsQuery = exports.getPositionLiquidatedsQuery = exports.getLeverageClosesQuery = 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");
|
|
@@ -156,6 +156,18 @@ let GraphQueryService = class GraphQueryService {
|
|
|
156
156
|
throw error;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
+
async getClosedPositions(closeTimestampVar) {
|
|
160
|
+
const variables = { closeTimestampVar };
|
|
161
|
+
try {
|
|
162
|
+
const response = await this.graphQLClient.request(exports.getClosedPositionsQuery, variables);
|
|
163
|
+
this.logger.log(`Fetched ${response.positions.length} closed positions from the graph`);
|
|
164
|
+
return response.positions;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
this.logger.error('Error fetching open positions from the graph:', error);
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
159
171
|
};
|
|
160
172
|
exports.GraphQueryService = GraphQueryService;
|
|
161
173
|
exports.GraphQueryService = GraphQueryService = __decorate([
|
|
@@ -274,3 +286,18 @@ exports.getOpenPositionsQuery = (0, graphql_request_1.gql) `
|
|
|
274
286
|
}
|
|
275
287
|
}
|
|
276
288
|
`;
|
|
289
|
+
exports.getClosedPositionsQuery = (0, graphql_request_1.gql) `
|
|
290
|
+
query GetOpenPositions($closeTimestampVar: Int) {
|
|
291
|
+
positions(
|
|
292
|
+
where: { status_in: [1, 2, 3], closeTimestamp_gt: $closeTimestampVar }
|
|
293
|
+
orderBy: closeTimestamp
|
|
294
|
+
orderDirection: desc
|
|
295
|
+
) {
|
|
296
|
+
account
|
|
297
|
+
profitLoss
|
|
298
|
+
margin
|
|
299
|
+
status
|
|
300
|
+
closeTimestamp
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
`;
|
|
@@ -46,6 +46,10 @@ export interface AnnouncedLimitOrder {
|
|
|
46
46
|
}
|
|
47
47
|
export interface Position {
|
|
48
48
|
tokenId: number;
|
|
49
|
+
account: string;
|
|
50
|
+
profitLoss: number;
|
|
51
|
+
margin: number;
|
|
52
|
+
closeTimestamp: number;
|
|
49
53
|
}
|
|
50
54
|
export interface DepositEventsData {
|
|
51
55
|
deposits: DepositEvent[];
|