@dhedge/backend-flatcoin-core 0.3.39 → 0.3.41

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.
@@ -1,5 +1,5 @@
1
1
  import { Logger } from '@nestjs/common';
2
- import { AnnouncedLimitOrder, AnnouncedOrder, DepositEvent, LeverageAdjust, LeverageClose, LeverageOpen, LimitOrderExecuted, Position, PositionLiquidated, UnitHolder, WithdrawEvent } from '../utils';
2
+ import { AnnouncedLimitOrder, AnnouncedOrder, DepositEvent, LeverageAdjust, LeverageClose, LeverageOpen, LimitOrderExecuted, Position, PositionLiquidated, UnitHolder, UnitTransfer, WithdrawEvent } from '../utils';
3
3
  import { GraphQLClient } from 'graphql-request';
4
4
  export declare class GraphQueryService {
5
5
  private readonly graphQLClient;
@@ -30,6 +30,12 @@ export declare class GraphQueryService {
30
30
  getLiquidatedPositionsByCloseBlockFrom(closeBlockFrom: number): Promise<Position[]>;
31
31
  getAllUnitHolders(): Promise<UnitHolder[]>;
32
32
  getUnitHoldersPaginated(skip: number, first: number): Promise<UnitHolder[]>;
33
+ private getOutgoingUnitTransfersByBlockNumberFrom;
34
+ private getIncomingUnitTransfersByBlockNumberFrom;
35
+ getAllOutgoingUnitTransfersForAccount(account: string): Promise<UnitTransfer[]>;
36
+ getAllIncomingUnitTransfersForAccount(account: string): Promise<UnitTransfer[]>;
37
+ private getOutgoingUnitTransfersPaginated;
38
+ private getIncomingUnitTransfersPaginated;
33
39
  }
34
40
  export declare const getAnnouncedOrdersQuery: string;
35
41
  export declare const getLeverageOpensQuery: string;
@@ -53,3 +59,7 @@ export declare const getClosedPositionsQuery: string;
53
59
  export declare const getClosedPositionsQueryByCloseBlockFrom: string;
54
60
  export declare const getLiquidatedPositionsQueryByCloseBlockFrom: string;
55
61
  export declare const getUnitHoldersQueryPaginated: string;
62
+ export declare const getOutgoingUnitTransfersByBlockNumberFromQuery: string;
63
+ export declare const getIncomingUnitTransfersByBlockNumberFromQuery: string;
64
+ export declare const getOutgoingUnitTransfersQueryPaginated: string;
65
+ export declare const getIncomingUnitTransfersQueryPaginated: 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.getUnitHoldersQueryPaginated = exports.getLiquidatedPositionsQueryByCloseBlockFrom = exports.getClosedPositionsQueryByCloseBlockFrom = exports.getClosedPositionsQuery = exports.getClosedPositionsQueryPaginated = exports.getOpenPositionsQueryPaginated = exports.getLimitOrderExecutedsByTimestampFromQuery = exports.getLimitOrderAnnouncedsQuery = exports.getWithdrawsByWithdrawerAddressQuery = exports.getWithdrawsByTimestampFromQuery = exports.getWithdrawsQuery = exports.getDepositsByDepositorAddressQuery = exports.getDepositsByTimestampFromQuery = exports.getDepositsQuery = exports.getPositionLiquidatedsQuery = exports.getLeverageAdjustsByBlockFromQuery = exports.getLeverageAdjustsByTimestampFromQuery = exports.getLeverageClosesByTimestampFromQuery = exports.getLeverageClosesQuery = exports.getLeverageOpensByTimestampFromQuery = exports.getLeverageOpensQuery = exports.getAnnouncedOrdersQuery = exports.GraphQueryService = void 0;
12
+ exports.getIncomingUnitTransfersQueryPaginated = exports.getOutgoingUnitTransfersQueryPaginated = exports.getIncomingUnitTransfersByBlockNumberFromQuery = exports.getOutgoingUnitTransfersByBlockNumberFromQuery = exports.getUnitHoldersQueryPaginated = exports.getLiquidatedPositionsQueryByCloseBlockFrom = exports.getClosedPositionsQueryByCloseBlockFrom = exports.getClosedPositionsQuery = exports.getClosedPositionsQueryPaginated = exports.getOpenPositionsQueryPaginated = exports.getLimitOrderExecutedsByTimestampFromQuery = exports.getLimitOrderAnnouncedsQuery = exports.getWithdrawsByWithdrawerAddressQuery = exports.getWithdrawsByTimestampFromQuery = exports.getWithdrawsQuery = exports.getDepositsByDepositorAddressQuery = exports.getDepositsByTimestampFromQuery = exports.getDepositsQuery = exports.getPositionLiquidatedsQuery = exports.getLeverageAdjustsByBlockFromQuery = 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
  let GraphQueryService = class GraphQueryService {
@@ -326,6 +326,84 @@ let GraphQueryService = class GraphQueryService {
326
326
  throw error;
327
327
  }
328
328
  }
329
+ async getOutgoingUnitTransfersByBlockNumberFrom(account, blockNumberFrom) {
330
+ const variables = { account, blockNumberFrom };
331
+ try {
332
+ const response = await this.graphQLClient.request(exports.getOutgoingUnitTransfersByBlockNumberFromQuery, variables);
333
+ this.logger.log(`Fetched ${response.unitTransfers.length} outgoing unit transfers by block number from the graph`);
334
+ return response.unitTransfers;
335
+ }
336
+ catch (error) {
337
+ this.logger.error('Error fetching outgoing unit transfers by bock number from the graph:', error);
338
+ throw error;
339
+ }
340
+ }
341
+ async getIncomingUnitTransfersByBlockNumberFrom(account, blockNumberFrom) {
342
+ const variables = { account, blockNumberFrom };
343
+ try {
344
+ const response = await this.graphQLClient.request(exports.getIncomingUnitTransfersByBlockNumberFromQuery, variables);
345
+ this.logger.log(`Fetched ${response.unitTransfers.length} incoming unit transfers by block number from the graph`);
346
+ return response.unitTransfers;
347
+ }
348
+ catch (error) {
349
+ this.logger.error('Error fetching incoming unit transfers by bock number from the graph:', error);
350
+ throw error;
351
+ }
352
+ }
353
+ async getAllOutgoingUnitTransfersForAccount(account) {
354
+ const allTransfers = [];
355
+ const first = 999;
356
+ let skip = 0;
357
+ // currently thegraph allows to get only 10_000 entities
358
+ while (skip < 10000) {
359
+ const fetchedTransfers = await this.getOutgoingUnitTransfersPaginated(account.toLowerCase(), skip, first);
360
+ if (fetchedTransfers.length === 0) {
361
+ break;
362
+ }
363
+ allTransfers.push(...fetchedTransfers);
364
+ skip += first;
365
+ }
366
+ return allTransfers;
367
+ }
368
+ async getAllIncomingUnitTransfersForAccount(account) {
369
+ const allTransfers = [];
370
+ const first = 999;
371
+ let skip = 0;
372
+ // currently thegraph allows to get only 10_000 entities
373
+ while (skip < 10000) {
374
+ const fetchedTransfers = await this.getIncomingUnitTransfersPaginated(account.toLowerCase(), skip, first);
375
+ if (fetchedTransfers.length === 0) {
376
+ break;
377
+ }
378
+ allTransfers.push(...fetchedTransfers);
379
+ skip += first;
380
+ }
381
+ return allTransfers;
382
+ }
383
+ async getOutgoingUnitTransfersPaginated(account, skip, first) {
384
+ const variables = { account, skip, first };
385
+ try {
386
+ const response = await this.graphQLClient.request(exports.getOutgoingUnitTransfersQueryPaginated, variables);
387
+ this.logger.log(`Fetched ${response.unitTransfers.length} outgoing unit transfers from the graph`);
388
+ return response.unitTransfers;
389
+ }
390
+ catch (error) {
391
+ this.logger.error('Error fetching outgoing unit transfers from the graph:', error);
392
+ throw error;
393
+ }
394
+ }
395
+ async getIncomingUnitTransfersPaginated(account, skip, first) {
396
+ const variables = { account, skip, first };
397
+ try {
398
+ const response = await this.graphQLClient.request(exports.getIncomingUnitTransfersQueryPaginated, variables);
399
+ this.logger.log(`Fetched ${response.unitTransfers.length} incoming unit transfers from the graph`);
400
+ return response.unitTransfers;
401
+ }
402
+ catch (error) {
403
+ this.logger.error('Error fetching incoming unit transfers from the graph:', error);
404
+ throw error;
405
+ }
406
+ }
329
407
  };
330
408
  exports.GraphQueryService = GraphQueryService;
331
409
  exports.GraphQueryService = GraphQueryService = __decorate([
@@ -635,3 +713,35 @@ exports.getUnitHoldersQueryPaginated = (0, graphql_request_1.gql) `
635
713
  }
636
714
  }
637
715
  `;
716
+ exports.getOutgoingUnitTransfersByBlockNumberFromQuery = (0, graphql_request_1.gql) `
717
+ query GetUnitTransfers($account: String, $blockNumberFrom: String) {
718
+ unitTransfers(where: { from: $account, blockNumber_gt: $blockNumberFrom }, first: 1000) {
719
+ value
720
+ blockNumber
721
+ }
722
+ }
723
+ `;
724
+ exports.getIncomingUnitTransfersByBlockNumberFromQuery = (0, graphql_request_1.gql) `
725
+ query GetUnitTransfers($account: String, $blockNumberFrom: String) {
726
+ unitTransfers(where: { to: $account, blockNumber_gt: $blockNumberFrom }, first: 1000) {
727
+ value
728
+ blockNumber
729
+ }
730
+ }
731
+ `;
732
+ exports.getOutgoingUnitTransfersQueryPaginated = (0, graphql_request_1.gql) `
733
+ query GetUnitTransfers($account: String, $skip: Int, $first: Int) {
734
+ unitTransfers(where: { from: $account }, skip: $skip, first: $first) {
735
+ value
736
+ blockNumber
737
+ }
738
+ }
739
+ `;
740
+ exports.getIncomingUnitTransfersQueryPaginated = (0, graphql_request_1.gql) `
741
+ query GetUnitTransfers($account: String, $skip: Int, $first: Int) {
742
+ unitTransfers(where: { to: $account }, skip: $skip, first: $first) {
743
+ value
744
+ blockNumber
745
+ }
746
+ }
747
+ `;
@@ -103,6 +103,10 @@ export interface UnitHolder {
103
103
  address: string;
104
104
  unitAmount: number;
105
105
  }
106
+ export interface UnitTransfer {
107
+ value: number;
108
+ blockNumber: number;
109
+ }
106
110
  export interface DepositEventsData {
107
111
  deposits: DepositEvent[];
108
112
  }
@@ -136,3 +140,6 @@ export interface PositionData {
136
140
  export interface UnitHoldersData {
137
141
  unitHolders: UnitHolder[];
138
142
  }
143
+ export interface UnitTransferData {
144
+ unitTransfers: UnitTransfer[];
145
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhedge/backend-flatcoin-core",
3
- "version": "0.3.39",
3
+ "version": "0.3.41",
4
4
  "description": "Backend Flatcoin Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",