@rosen-bridge/address-extractor 2.1.5 → 2.1.6

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 (55) hide show
  1. package/package.json +3 -3
  2. package/dist/actions/boxAction.d.ts +0 -63
  3. package/dist/actions/boxAction.d.ts.map +0 -1
  4. package/dist/actions/boxAction.js +0 -165
  5. package/dist/actions/db.d.ts +0 -32
  6. package/dist/actions/db.d.ts.map +0 -1
  7. package/dist/actions/db.js +0 -149
  8. package/dist/constants.d.ts +0 -4
  9. package/dist/constants.d.ts.map +0 -1
  10. package/dist/constants.js +0 -4
  11. package/dist/entities/boxEntity.d.ts +0 -12
  12. package/dist/entities/boxEntity.d.ts.map +0 -1
  13. package/dist/entities/boxEntity.js +0 -62
  14. package/dist/extractor/ergoUtxoExtractor.d.ts +0 -150
  15. package/dist/extractor/ergoUtxoExtractor.d.ts.map +0 -1
  16. package/dist/extractor/ergoUtxoExtractor.js +0 -242
  17. package/dist/index.d.ts +0 -4
  18. package/dist/index.d.ts.map +0 -1
  19. package/dist/index.js +0 -4
  20. package/dist/interfaces/ExtractedBox.d.ts +0 -8
  21. package/dist/interfaces/ExtractedBox.d.ts.map +0 -1
  22. package/dist/interfaces/ExtractedBox.js +0 -8
  23. package/dist/interfaces/types.d.ts +0 -28
  24. package/dist/interfaces/types.d.ts.map +0 -1
  25. package/dist/interfaces/types.js +0 -2
  26. package/dist/migrations/index.d.ts +0 -7
  27. package/dist/migrations/index.d.ts.map +0 -1
  28. package/dist/migrations/index.js +0 -9
  29. package/dist/migrations/postgres/1688558553044-migration.d.ts +0 -7
  30. package/dist/migrations/postgres/1688558553044-migration.d.ts.map +0 -1
  31. package/dist/migrations/postgres/1688558553044-migration.js +0 -24
  32. package/dist/migrations/postgres/1689151869889-migration.d.ts +0 -7
  33. package/dist/migrations/postgres/1689151869889-migration.d.ts.map +0 -1
  34. package/dist/migrations/postgres/1689151869889-migration.js +0 -15
  35. package/dist/migrations/postgres/boxEntity1671714075083.d.ts +0 -7
  36. package/dist/migrations/postgres/boxEntity1671714075083.d.ts.map +0 -1
  37. package/dist/migrations/postgres/boxEntity1671714075083.js +0 -18
  38. package/dist/migrations/sqlite/1688555566662-migration.d.ts +0 -7
  39. package/dist/migrations/sqlite/1688555566662-migration.d.ts.map +0 -1
  40. package/dist/migrations/sqlite/1688555566662-migration.js +0 -23
  41. package/dist/migrations/sqlite/1689143753142-migration.d.ts +0 -7
  42. package/dist/migrations/sqlite/1689143753142-migration.d.ts.map +0 -1
  43. package/dist/migrations/sqlite/1689143753142-migration.js +0 -85
  44. package/dist/migrations/sqlite/boxEntity1659770552000.d.ts +0 -7
  45. package/dist/migrations/sqlite/boxEntity1659770552000.d.ts.map +0 -1
  46. package/dist/migrations/sqlite/boxEntity1659770552000.js +0 -18
  47. package/dist/network/ergoNetworkApi.d.ts +0 -23
  48. package/dist/network/ergoNetworkApi.d.ts.map +0 -1
  49. package/dist/network/ergoNetworkApi.js +0 -55
  50. package/dist/network/parser.d.ts +0 -8
  51. package/dist/network/parser.d.ts.map +0 -1
  52. package/dist/network/parser.js +0 -5
  53. package/dist/utils.d.ts +0 -9
  54. package/dist/utils.d.ts.map +0 -1
  55. package/dist/utils.js +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/address-extractor",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "description": "UTXO box extractor for any address or token.",
5
5
  "author": "Rosen Team",
6
6
  "license": "GPL-3.0",
@@ -20,8 +20,8 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@rosen-bridge/logger-interface": "^0.1.0",
23
- "@rosen-bridge/scanner": "^2.1.4",
24
- "@rosen-clients/ergo-explorer": "^1.0.1",
23
+ "@rosen-bridge/scanner": "^2.1.5",
24
+ "@rosen-clients/ergo-explorer": "^1.0.2",
25
25
  "blakejs": "^1.2.1",
26
26
  "ergo-lib-wasm-nodejs": "^0.24.0-alpha-1f24f53",
27
27
  "lodash-es": "^4.17.21",
@@ -1,63 +0,0 @@
1
- import { DataSource } from 'typeorm';
2
- import { AbstractLogger } from '@rosen-bridge/logger-interface';
3
- import { BlockEntity } from '@rosen-bridge/scanner';
4
- import { ExtractedBox } from '../interfaces/types';
5
- export declare class BoxEntityAction {
6
- private readonly datasource;
7
- readonly logger: AbstractLogger;
8
- private readonly repository;
9
- constructor(dataSource: DataSource, logger: AbstractLogger);
10
- /**
11
- * insert new box into database
12
- * @param box
13
- * @param extractor
14
- */
15
- insertBox: (box: ExtractedBox, extractor: string) => Promise<import("typeorm").InsertResult>;
16
- /**
17
- * Update an unspent box information in the database
18
- * @param box
19
- * @param extractor
20
- */
21
- updateBox: (box: ExtractedBox, extractor: string) => Promise<import("typeorm").UpdateResult>;
22
- /**
23
- * It stores list of blocks in the dataSource with block id
24
- * @param boxes
25
- * @param spendBoxes
26
- * @param block
27
- * @param extractor
28
- */
29
- storeBox: (boxes: Array<ExtractedBox>, block: BlockEntity, extractor: string) => Promise<boolean>;
30
- /**
31
- * Update spendBlock and spendHeight of boxes spent on the block
32
- * @param spendIds
33
- * @param block
34
- * @param extractor
35
- */
36
- spendBoxes: (spendIds: Array<string>, block: BlockEntity, extractor: string) => Promise<void>;
37
- /**
38
- * delete boxes in specific block from database. if box spend in this block marked as unspent
39
- * and if created in this block remove it from database
40
- * @param block
41
- * @param extractor
42
- */
43
- deleteBlockBoxes: (block: string, extractor: string) => Promise<void>;
44
- /**
45
- * Returns all stored box ids
46
- */
47
- getAllBoxIds: (extractor: string) => Promise<Array<string>>;
48
- /**
49
- * Removes specified box
50
- * @param boxId
51
- * @param extractor
52
- */
53
- removeBox: (boxId: string, extractor: string) => Promise<import("typeorm").DeleteResult>;
54
- /**
55
- * Update the box spending information
56
- * @param boxId
57
- * @param extractor
58
- * @param blockId
59
- * @param blockHeight
60
- */
61
- updateSpendBlock: (boxId: string, extractor: string, blockId: string, blockHeight: number) => Promise<import("typeorm").UpdateResult>;
62
- }
63
- //# sourceMappingURL=boxAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boxAction.d.ts","sourceRoot":"","sources":["../../lib/actions/boxAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;gBAEvC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc;IAM1D;;;;OAIG;IACH,SAAS,QAAe,YAAY,aAAa,MAAM,6CASrD;IAEF;;;;OAIG;IACH,SAAS,QAAe,YAAY,aAAa,MAAM,6CAYrD;IAEF;;;;;;OAMG;IACH,QAAQ,UACC,MAAM,YAAY,CAAC,SACnB,WAAW,aACP,MAAM,sBA6CjB;IAEF;;;;;OAKG;IACH,UAAU,aACE,MAAM,MAAM,CAAC,SAChB,WAAW,aACP,MAAM,KAChB,QAAQ,IAAI,CAAC,CAoBd;IAEF;;;;;OAKG;IACH,gBAAgB,UAAiB,MAAM,aAAa,MAAM,mBAYxD;IAEF;;OAEG;IACH,YAAY,cAAqB,MAAM,KAAG,QAAQ,MAAM,MAAM,CAAC,CAAC,CAU9D;IAEF;;;;OAIG;IACH,SAAS,UAAiB,MAAM,aAAa,MAAM,6CAEjD;IAEF;;;;;;OAMG;IACH,gBAAgB,UACP,MAAM,aACF,MAAM,WACR,MAAM,eACF,MAAM,6CAMnB;CACH"}
@@ -1,165 +0,0 @@
1
- import { In } from 'typeorm';
2
- import { chunk } from 'lodash-es';
3
- import { BoxEntity } from '../entities/boxEntity';
4
- import { dbIdChunkSize } from '../constants';
5
- export class BoxEntityAction {
6
- datasource;
7
- logger;
8
- repository;
9
- constructor(dataSource, logger) {
10
- this.datasource = dataSource;
11
- this.logger = logger;
12
- this.repository = dataSource.getRepository(BoxEntity);
13
- }
14
- /**
15
- * insert new box into database
16
- * @param box
17
- * @param extractor
18
- */
19
- insertBox = async (box, extractor) => {
20
- return this.repository.insert({
21
- address: box.address,
22
- boxId: box.boxId,
23
- createBlock: box.blockId,
24
- creationHeight: box.height,
25
- serialized: box.serialized,
26
- extractor: extractor,
27
- });
28
- };
29
- /**
30
- * Update an unspent box information in the database
31
- * @param box
32
- * @param extractor
33
- */
34
- updateBox = async (box, extractor) => {
35
- return this.repository.update({ boxId: box.boxId, extractor: extractor }, {
36
- address: box.address,
37
- createBlock: box.blockId,
38
- creationHeight: box.height,
39
- serialized: box.serialized,
40
- spendBlock: null,
41
- spendHeight: 0,
42
- });
43
- };
44
- /**
45
- * It stores list of blocks in the dataSource with block id
46
- * @param boxes
47
- * @param spendBoxes
48
- * @param block
49
- * @param extractor
50
- */
51
- storeBox = async (boxes, block, extractor) => {
52
- const boxIds = boxes.map((item) => item.boxId);
53
- const dbBoxes = await this.datasource.getRepository(BoxEntity).findBy({
54
- boxId: In(boxIds),
55
- extractor: extractor,
56
- });
57
- let success = true;
58
- const queryRunner = this.datasource.createQueryRunner();
59
- await queryRunner.connect();
60
- await queryRunner.startTransaction();
61
- const repository = await queryRunner.manager.getRepository(BoxEntity);
62
- try {
63
- for (const box of boxes) {
64
- const entity = {
65
- address: box.address,
66
- boxId: box.boxId,
67
- createBlock: block.hash,
68
- creationHeight: block.height,
69
- spendBlock: undefined,
70
- serialized: box.serialized,
71
- extractor: extractor,
72
- };
73
- const dbBox = dbBoxes.filter((item) => item.boxId === box.boxId);
74
- if (dbBox.length > 0) {
75
- this.logger.info(`Updating box ${box.boxId} and extractor ${extractor}`);
76
- this.logger.debug(`Entity: ${JSON.stringify(entity)}`);
77
- await repository.update({ id: dbBoxes[0].id }, entity);
78
- }
79
- else {
80
- this.logger.info(`Storing box ${box.boxId}`);
81
- this.logger.debug(JSON.stringify(entity));
82
- await repository.insert(entity);
83
- }
84
- }
85
- await queryRunner.commitTransaction();
86
- }
87
- catch (e) {
88
- this.logger.error(`An error occurred during store boxes action: ${e}`);
89
- await queryRunner.rollbackTransaction();
90
- success = false;
91
- }
92
- finally {
93
- await queryRunner.release();
94
- }
95
- return success;
96
- };
97
- /**
98
- * Update spendBlock and spendHeight of boxes spent on the block
99
- * @param spendIds
100
- * @param block
101
- * @param extractor
102
- */
103
- spendBoxes = async (spendIds, block, extractor) => {
104
- const spendIdChunks = chunk(spendIds, dbIdChunkSize);
105
- for (const spendIdChunk of spendIdChunks) {
106
- const updateResult = await this.repository.update({ boxId: In(spendIdChunk), extractor: extractor }, { spendBlock: block.hash, spendHeight: block.height });
107
- if (updateResult.affected && updateResult.affected > 0) {
108
- const spentRows = await this.repository.findBy({
109
- boxId: In(spendIdChunk),
110
- spendBlock: block.hash,
111
- });
112
- for (const row of spentRows) {
113
- this.logger.debug(`Spent box with boxId [${row.boxId}] at height ${block.height}`);
114
- }
115
- }
116
- }
117
- };
118
- /**
119
- * delete boxes in specific block from database. if box spend in this block marked as unspent
120
- * and if created in this block remove it from database
121
- * @param block
122
- * @param extractor
123
- */
124
- deleteBlockBoxes = async (block, extractor) => {
125
- this.logger.info(`Deleting boxes in block ${block} and extractor ${extractor}`);
126
- await this.repository.delete({
127
- extractor: extractor,
128
- createBlock: block,
129
- });
130
- await this.repository.update({ spendBlock: block, extractor: extractor }, { spendBlock: null, spendHeight: 0 });
131
- };
132
- /**
133
- * Returns all stored box ids
134
- */
135
- getAllBoxIds = async (extractor) => {
136
- const boxIds = await this.repository.find({
137
- select: {
138
- boxId: true,
139
- },
140
- where: {
141
- extractor: extractor,
142
- },
143
- });
144
- return boxIds.map((item) => item.boxId);
145
- };
146
- /**
147
- * Removes specified box
148
- * @param boxId
149
- * @param extractor
150
- */
151
- removeBox = async (boxId, extractor) => {
152
- return await this.repository.delete({ boxId: boxId, extractor: extractor });
153
- };
154
- /**
155
- * Update the box spending information
156
- * @param boxId
157
- * @param extractor
158
- * @param blockId
159
- * @param blockHeight
160
- */
161
- updateSpendBlock = async (boxId, extractor, blockId, blockHeight) => {
162
- return await this.repository.update({ boxId: boxId, extractor: extractor }, { spendBlock: blockId, spendHeight: blockHeight });
163
- };
164
- }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94QWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvYm94QWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQWMsTUFBTSxTQUFTLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxNQUFNLE9BQU8sZUFBZTtJQUNULFVBQVUsQ0FBYTtJQUMvQixNQUFNLENBQWlCO0lBQ2YsVUFBVSxDQUF3QjtJQUVuRCxZQUFZLFVBQXNCLEVBQUUsTUFBc0I7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxHQUFpQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUN6RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQzVCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztZQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1lBQ3hCLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTTtZQUMxQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsR0FBaUIsRUFBRSxTQUFpQixFQUFFLEVB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QUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixLQUFhLEVBQ2IsU0FBaUIsRUFDakIsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLEVBQUU7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ2pDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQ3RDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQ2xELENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBjaHVuayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvbG9nZ2VyLWludGVyZmFjZSc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmltcG9ydCB7IEJveEVudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzL2JveEVudGl0eSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRCb3ggfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IGRiSWRDaHVua1NpemUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgQm94RW50aXR5QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhc291cmNlOiBEYXRhU291cmNlO1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Qm94RW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlLCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpbnNlcnQgbmV3IGJveCBpbnRvIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgaW5zZXJ0Qm94ID0gYXN5bmMgKGJveDogRXh0cmFjdGVkQm94LCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIGFkZHJlc3M6IGJveC5hZGRyZXNzLFxuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGNyZWF0ZUJsb2NrOiBib3guYmxvY2tJZCxcbiAgICAgIGNyZWF0aW9uSGVpZ2h0OiBib3guaGVpZ2h0LFxuICAgICAgc2VyaWFsaXplZDogYm94LnNlcmlhbGl6ZWQsXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIGFuIHVuc3BlbnQgYm94IGluZm9ybWF0aW9uIGluIHRoZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHVwZGF0ZUJveCA9IGFzeW5jIChib3g6IEV4dHJhY3RlZEJveCwgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgYm94SWQ6IGJveC5ib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogYm94LmFkZHJlc3MsXG4gICAgICAgIGNyZWF0ZUJsb2NrOiBib3guYmxvY2tJZCxcbiAgICAgICAgY3JlYXRpb25IZWlnaHQ6IGJveC5oZWlnaHQsXG4gICAgICAgIHNlcmlhbGl6ZWQ6IGJveC5zZXJpYWxpemVkLFxuICAgICAgICBzcGVuZEJsb2NrOiBudWxsLFxuICAgICAgICBzcGVuZEhlaWdodDogMCxcbiAgICAgIH1cbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBibG9ja3MgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIHNwZW5kQm94ZXNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQm94ID0gYXN5bmMgKFxuICAgIGJveGVzOiBBcnJheTxFeHRyYWN0ZWRCb3g+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBib3hlcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYm94SWQpO1xuICAgIGNvbnN0IGRiQm94ZXMgPSBhd2FpdCB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpLmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcykge1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgYWRkcmVzczogYm94LmFkZHJlc3MsXG4gICAgICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgICAgICBjcmVhdGVCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBjcmVhdGlvbkhlaWdodDogYmxvY2suaGVpZ2h0LFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzZXJpYWxpemVkOiBib3guc2VyaWFsaXplZCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGJCb3ggPSBkYkJveGVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5ib3hJZCA9PT0gYm94LmJveElkKTtcbiAgICAgICAgaWYgKGRiQm94Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFVwZGF0aW5nIGJveCAke2JveC5ib3hJZH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRW50aXR5OiAke0pTT04uc3RyaW5naWZ5KGVudGl0eSl9YCk7XG4gICAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoeyBpZDogZGJCb3hlc1swXS5pZCB9LCBlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oYFN0b3JpbmcgYm94ICR7Ym94LmJveElkfWApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKEpTT04uc3RyaW5naWZ5KGVudGl0eSkpO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZSBib3hlcyBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIHNwZW5kQmxvY2sgYW5kIHNwZW5kSGVpZ2h0IG9mIGJveGVzIHNwZW50IG9uIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gc3BlbmRJZHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kQm94ZXMgPSBhc3luYyAoXG4gICAgc3BlbmRJZHM6IEFycmF5PHN0cmluZz4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5LFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHNwZW5kSWRDaHVua3MgPSBjaHVuayhzcGVuZElkcywgZGJJZENodW5rU2l6ZSk7XG4gICAgZm9yIChjb25zdCBzcGVuZElkQ2h1bmsgb2Ygc3BlbmRJZENodW5rcykge1xuICAgICAgY29uc3QgdXBkYXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAgeyBib3hJZDogSW4oc3BlbmRJZENodW5rKSwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgICAgeyBzcGVuZEJsb2NrOiBibG9jay5oYXNoLCBzcGVuZEhlaWdodDogYmxvY2suaGVpZ2h0IH1cbiAgICAgICk7XG5cbiAgICAgIGlmICh1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgJiYgdXBkYXRlUmVzdWx0LmFmZmVjdGVkID4gMCkge1xuICAgICAgICBjb25zdCBzcGVudFJvd3MgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgICBib3hJZDogSW4oc3BlbmRJZENodW5rKSxcbiAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICB9KTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc3BlbnRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgYm94IHdpdGggYm94SWQgWyR7cm93LmJveElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYm94ZXMgaW4gc3BlY2lmaWMgYmxvY2sgZnJvbSBkYXRhYmFzZS4gaWYgYm94IHNwZW5kIGluIHRoaXMgYmxvY2sgbWFya2VkIGFzIHVuc3BlbnRcbiAgICogYW5kIGlmIGNyZWF0ZWQgaW4gdGhpcyBibG9jayByZW1vdmUgaXQgZnJvbSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tCb3hlcyA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgYm94ZXMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgY3JlYXRlQmxvY2s6IGJsb2NrLFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IHNwZW5kQmxvY2s6IGJsb2NrLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBudWxsLCBzcGVuZEhlaWdodDogMCB9XG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogIFJldHVybnMgYWxsIHN0b3JlZCBib3ggaWRzXG4gICAqL1xuICBnZXRBbGxCb3hJZHMgPSBhc3luYyAoZXh0cmFjdG9yOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PHN0cmluZz4+ID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZCh7XG4gICAgICBzZWxlY3Q6IHtcbiAgICAgICAgYm94SWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBib3hJZHMubWFwKChpdGVtOiB7IGJveElkOiBzdHJpbmcgfSkgPT4gaXRlbS5ib3hJZCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgc3BlY2lmaWVkIGJveFxuICAgKiBAcGFyYW0gYm94SWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcmVtb3ZlQm94ID0gYXN5bmMgKGJveElkOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwb3NpdG9yeS5kZWxldGUoeyBib3hJZDogYm94SWQsIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGJveCBzcGVuZGluZyBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gYm94SWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tJZFxuICAgKiBAcGFyYW0gYmxvY2tIZWlnaHRcbiAgICovXG4gIHVwZGF0ZVNwZW5kQmxvY2sgPSBhc3luYyAoXG4gICAgYm94SWQ6IHN0cmluZyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICBibG9ja0lkOiBzdHJpbmcsXG4gICAgYmxvY2tIZWlnaHQ6IG51bWJlclxuICApID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgYm94SWQ6IGJveElkLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBibG9ja0lkLCBzcGVuZEhlaWdodDogYmxvY2tIZWlnaHQgfVxuICAgICk7XG4gIH07XG59XG4iXX0=
@@ -1,32 +0,0 @@
1
- import { DataSource } from 'typeorm';
2
- import ExtractedBox from '../interfaces/ExtractedBox';
3
- import { AbstractLogger } from '@rosen-bridge/logger-interface';
4
- import { BlockEntity } from '@rosen-bridge/scanner';
5
- export declare class BoxEntityAction {
6
- private readonly datasource;
7
- readonly logger: AbstractLogger;
8
- constructor(dataSource: DataSource, logger: AbstractLogger);
9
- /**
10
- * stores initial extracted boxes to the database
11
- * @param boxes
12
- * @param initializationHeight
13
- * @param extractor
14
- */
15
- storeInitialBoxes: (boxes: Array<ExtractedBox>, initializationHeight: number, extractor: string) => Promise<boolean>;
16
- /**
17
- * It stores list of blocks in the dataSource with block id
18
- * @param boxes
19
- * @param spendBoxes
20
- * @param block
21
- * @param extractor
22
- */
23
- storeBox: (boxes: Array<ExtractedBox>, spendBoxes: Array<string>, block: BlockEntity, extractor: string) => Promise<boolean>;
24
- /**
25
- * delete boxes in specific block from database. if box spend in this block marked as unspent
26
- * and if created in this block remove it from database
27
- * @param block
28
- * @param extractor
29
- */
30
- deleteBlockBoxes: (block: string, extractor: string) => Promise<void>;
31
- }
32
- //# sourceMappingURL=db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AACnD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc;IAK1D;;;;;OAKG;IACH,iBAAiB,UACR,MAAM,YAAY,CAAC,wBACJ,MAAM,aACjB,MAAM,sBAqCjB;IAEF;;;;;;OAMG;IACH,QAAQ,UACC,MAAM,YAAY,CAAC,cACd,MAAM,MAAM,CAAC,SAClB,WAAW,aACP,MAAM,sBA6DjB;IAEF;;;;;OAKG;IACH,gBAAgB,UAAiB,MAAM,aAAa,MAAM,mBAuBxD;CACH"}
@@ -1,149 +0,0 @@
1
- import { BoxEntity } from '../entities/boxEntity';
2
- import { In, LessThan } from 'typeorm';
3
- export class BoxEntityAction {
4
- datasource;
5
- logger;
6
- constructor(dataSource, logger) {
7
- this.datasource = dataSource;
8
- this.logger = logger;
9
- }
10
- /**
11
- * stores initial extracted boxes to the database
12
- * @param boxes
13
- * @param initializationHeight
14
- * @param extractor
15
- */
16
- storeInitialBoxes = async (boxes, initializationHeight, extractor) => {
17
- const queryRunner = this.datasource.createQueryRunner();
18
- await queryRunner.connect();
19
- await queryRunner.startTransaction();
20
- try {
21
- const repository = queryRunner.manager.getRepository(BoxEntity);
22
- await repository.delete({
23
- creationHeight: LessThan(initializationHeight),
24
- });
25
- for (const box of boxes) {
26
- const entity = {
27
- address: box.address,
28
- boxId: box.boxId,
29
- createBlock: box.blockId,
30
- creationHeight: box.height,
31
- spendBlock: undefined,
32
- serialized: box.serialized,
33
- extractor: extractor,
34
- };
35
- this.logger.info(`Storing initial box ${box.boxId} with extractor ${extractor}`);
36
- this.logger.debug(`Stored box entity: [${JSON.stringify(entity)}]`);
37
- await repository.insert(entity);
38
- }
39
- await queryRunner.commitTransaction();
40
- }
41
- catch (e) {
42
- this.logger.error(`An error occurred during store boxes action: ${e}`);
43
- await queryRunner.rollbackTransaction();
44
- throw new Error('Initialization failed while storing initial address boxes');
45
- }
46
- finally {
47
- await queryRunner.release();
48
- }
49
- return true;
50
- };
51
- /**
52
- * It stores list of blocks in the dataSource with block id
53
- * @param boxes
54
- * @param spendBoxes
55
- * @param block
56
- * @param extractor
57
- */
58
- storeBox = async (boxes, spendBoxes, block, extractor) => {
59
- const boxIds = boxes.map((item) => item.boxId);
60
- const dbBoxes = await this.datasource.getRepository(BoxEntity).findBy({
61
- boxId: In(boxIds),
62
- extractor: extractor,
63
- });
64
- let success = true;
65
- const queryRunner = this.datasource.createQueryRunner();
66
- await queryRunner.connect();
67
- await queryRunner.startTransaction();
68
- try {
69
- for (const box of boxes) {
70
- const entity = {
71
- address: box.address,
72
- boxId: box.boxId,
73
- createBlock: block.hash,
74
- creationHeight: block.height,
75
- spendBlock: undefined,
76
- serialized: box.serialized,
77
- extractor: extractor,
78
- };
79
- const dbBox = dbBoxes.filter((item) => item.boxId === box.boxId);
80
- if (dbBox.length > 0) {
81
- this.logger.info(`Updating box ${box.boxId} and extractor ${extractor}`);
82
- this.logger.debug(`Entity: ${JSON.stringify(entity)}`);
83
- await queryRunner.manager
84
- .getRepository(BoxEntity)
85
- .createQueryBuilder()
86
- .update()
87
- .set(entity)
88
- .where({ id: dbBox[0].id })
89
- .execute();
90
- }
91
- else {
92
- this.logger.info(`Storing box ${box.boxId}`);
93
- this.logger.debug(JSON.stringify(entity));
94
- await queryRunner.manager.getRepository(BoxEntity).insert(entity);
95
- }
96
- }
97
- this.logger.debug(`Updating spendBlock for boxes ${spendBoxes}`);
98
- await queryRunner.manager
99
- .getRepository(BoxEntity)
100
- .createQueryBuilder()
101
- .update()
102
- .set({ spendBlock: block.hash })
103
- .where('boxId IN (:...boxes) AND extractor = :extractor', {
104
- boxes: spendBoxes,
105
- extractor: extractor,
106
- })
107
- .execute();
108
- await queryRunner.commitTransaction();
109
- }
110
- catch (e) {
111
- this.logger.error(`An error occurred during store boxes action: ${e}`);
112
- await queryRunner.rollbackTransaction();
113
- success = false;
114
- }
115
- finally {
116
- await queryRunner.release();
117
- }
118
- return success;
119
- };
120
- /**
121
- * delete boxes in specific block from database. if box spend in this block marked as unspent
122
- * and if created in this block remove it from database
123
- * @param block
124
- * @param extractor
125
- */
126
- deleteBlockBoxes = async (block, extractor) => {
127
- this.logger.info(`Deleting boxes in block ${block} and extractor ${extractor}`);
128
- await this.datasource
129
- .createQueryBuilder()
130
- .delete()
131
- .from(BoxEntity)
132
- .where('extractor = :extractor AND createBlock = :block', {
133
- block: block,
134
- extractor: extractor,
135
- })
136
- .execute();
137
- await this.datasource
138
- .getRepository(BoxEntity)
139
- .createQueryBuilder()
140
- .update()
141
- .set({ spendBlock: null })
142
- .where('spendBlock = :block AND extractor = :extractor', {
143
- block: block,
144
- extractor: extractor,
145
- })
146
- .execute();
147
- };
148
- }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFLbkQsTUFBTSxPQUFPLGVBQWU7SUFDVCxVQUFVLENBQWE7SUFDL0IsTUFBTSxDQUFpQjtJQUVoQyxZQUFZLFVBQXNCLEVBQUUsTUFBc0I7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixLQUEwQixFQUMxQixvQkFBNEIsRUFDNUIsU0FBaUIsRUFDakIsRUFBRTtRQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRSxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLGNBQWMsRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUM7YUFDL0MsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3ZCLE1BQU0sTUFBTSxHQUFHO29CQUNiLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO29CQUNoQixXQUFXLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3hCLGNB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QUFDO1NBQ2pCO2dCQUFTO1lBQ1IsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDJCQUEyQixLQUFLLGtCQUFrQixTQUFTLEVBQUUsQ0FDOUQsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVU7YUFDbEIsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUNmLEtBQUssQ0FBQyxpREFBaUQsRUFBRTtZQUN4RCxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7YUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxDQUFDLFVBQVU7YUFDbEIsYUFBYSxDQUFDLFNBQVMsQ0FBQzthQUN4QixrQkFBa0IsRUFBRTthQUNwQixNQUFNLEVBQUU7YUFDUixHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDekIsS0FBSyxDQUFDLGdEQUFnRCxFQUFFO1lBQ3ZELEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQzthQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3hFbnRpdHkgfSBmcm9tICcuLi9lbnRpdGllcy9ib3hFbnRpdHknO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIExlc3NUaGFuIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgRXh0cmFjdGVkQm94IGZyb20gJy4uL2ludGVyZmFjZXMvRXh0cmFjdGVkQm94JztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9sb2dnZXItaW50ZXJmYWNlJztcbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcblxuZXhwb3J0IGNsYXNzIEJveEVudGl0eUFjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlLCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdG9yZXMgaW5pdGlhbCBleHRyYWN0ZWQgYm94ZXMgdG8gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBib3hlc1xuICAgKiBAcGFyYW0gaW5pdGlhbGl6YXRpb25IZWlnaHRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVJbml0aWFsQm94ZXMgPSBhc3luYyAoXG4gICAgYm94ZXM6IEFycmF5PEV4dHJhY3RlZEJveD4sXG4gICAgaW5pdGlhbGl6YXRpb25IZWlnaHQ6IG51bWJlcixcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KTtcbiAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgICAgY3JlYXRpb25IZWlnaHQ6IExlc3NUaGFuKGluaXRpYWxpemF0aW9uSGVpZ2h0KSxcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBib3ggb2YgYm94ZXMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGFkZHJlc3M6IGJveC5hZGRyZXNzLFxuICAgICAgICAgIGJveElkOiBib3guYm94SWQsXG4gICAgICAgICAgY3JlYXRlQmxvY2s6IGJveC5ibG9ja0lkLFxuICAgICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBib3guaGVpZ2h0LFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzZXJpYWxpemVkOiBib3guc2VyaWFsaXplZCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgU3RvcmluZyBpbml0aWFsIGJveCAke2JveC5ib3hJZH0gd2l0aCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgU3RvcmVkIGJveCBlbnRpdHk6IFske0pTT04uc3RyaW5naWZ5KGVudGl0eSl9XWApO1xuICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgfVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSW5pdGlhbGl6YXRpb24gZmFpbGVkIHdoaWxlIHN0b3JpbmcgaW5pdGlhbCBhZGRyZXNzIGJveGVzJ1xuICAgICAgKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogSXQgc3RvcmVzIGxpc3Qgb2YgYmxvY2tzIGluIHRoZSBkYXRhU291cmNlIHdpdGggYmxvY2sgaWRcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSBzcGVuZEJveGVzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZUJveCA9IGFzeW5jIChcbiAgICBib3hlczogQXJyYXk8RXh0cmFjdGVkQm94PixcbiAgICBzcGVuZEJveGVzOiBBcnJheTxzdHJpbmc+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBib3hlcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYm94SWQpO1xuICAgIGNvbnN0IGRiQm94ZXMgPSBhd2FpdCB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpLmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBib3guYWRkcmVzcyxcbiAgICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICAgIGNyZWF0ZUJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRCbG9jazogdW5kZWZpbmVkLFxuICAgICAgICAgIHNlcmlhbGl6ZWQ6IGJveC5zZXJpYWxpemVkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYkJveCA9IGRiQm94ZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmJveElkID09PSBib3guYm94SWQpO1xuICAgICAgICBpZiAoZGJCb3gubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgVXBkYXRpbmcgYm94ICR7Ym94LmJveElkfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBFbnRpdHk6ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5KX1gKTtcbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyXG4gICAgICAgICAgICAuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpXG4gICAgICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgICAgIC51cGRhdGUoKVxuICAgICAgICAgICAgLnNldChlbnRpdHkpXG4gICAgICAgICAgICAud2hlcmUoeyBpZDogZGJCb3hbMF0uaWQgfSlcbiAgICAgICAgICAgIC5leGVjdXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgU3RvcmluZyBib3ggJHtib3guYm94SWR9YCk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZW50aXR5KSk7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBVcGRhdGluZyBzcGVuZEJsb2NrIGZvciBib3hlcyAke3NwZW5kQm94ZXN9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyXG4gICAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgIC51cGRhdGUoKVxuICAgICAgICAuc2V0KHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCB9KVxuICAgICAgICAud2hlcmUoJ2JveElkIElOICg6Li4uYm94ZXMpIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICAgIGJveGVzOiBzcGVuZEJveGVzLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9KVxuICAgICAgICAuZXhlY3V0ZSgpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYm94ZXMgaW4gc3BlY2lmaWMgYmxvY2sgZnJvbSBkYXRhYmFzZS4gaWYgYm94IHNwZW5kIGluIHRoaXMgYmxvY2sgbWFya2VkIGFzIHVuc3BlbnRcbiAgICogYW5kIGlmIGNyZWF0ZWQgaW4gdGhpcyBibG9jayByZW1vdmUgaXQgZnJvbSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tCb3hlcyA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgYm94ZXMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAuZnJvbShCb3hFbnRpdHkpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGNyZWF0ZUJsb2NrID0gOmJsb2NrJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC51cGRhdGUoKVxuICAgICAgLnNldCh7IHNwZW5kQmxvY2s6IG51bGwgfSlcbiAgICAgIC53aGVyZSgnc3BlbmRCbG9jayA9IDpibG9jayBBTkQgZXh0cmFjdG9yID0gOmV4dHJhY3RvcicsIHtcbiAgICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0pXG4gICAgICAuZXhlY3V0ZSgpO1xuICB9O1xufVxuIl19
@@ -1,4 +0,0 @@
1
- declare const DefaultApiLimit = 100;
2
- declare const dbIdChunkSize = 100;
3
- export { DefaultApiLimit, dbIdChunkSize };
4
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,MAAM,CAAC;AAC5B,QAAA,MAAM,aAAa,MAAM,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
package/dist/constants.js DELETED
@@ -1,4 +0,0 @@
1
- const DefaultApiLimit = 100;
2
- const dbIdChunkSize = 100;
3
- export { DefaultApiLimit, dbIdChunkSize };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFDNUIsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBEZWZhdWx0QXBpTGltaXQgPSAxMDA7XG5jb25zdCBkYklkQ2h1bmtTaXplID0gMTAwO1xuXG5leHBvcnQgeyBEZWZhdWx0QXBpTGltaXQsIGRiSWRDaHVua1NpemUgfTtcbiJdfQ==
@@ -1,12 +0,0 @@
1
- export declare class BoxEntity {
2
- id: number;
3
- address: string;
4
- boxId: string;
5
- createBlock: string;
6
- creationHeight: number;
7
- serialized: string;
8
- spendBlock?: string | null;
9
- spendHeight?: number;
10
- extractor: string;
11
- }
12
- //# sourceMappingURL=boxEntity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boxEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/boxEntity.ts"],"names":[],"mappings":"AAEA,qBACa,SAAS;IAEpB,EAAE,EAAE,MAAM,CAAC;IAGX,OAAO,EAAE,MAAM,CAAC;IAGhB,KAAK,EAAE,MAAM,CAAC;IAGd,WAAW,EAAE,MAAM,CAAC;IAGpB,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1,62 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- 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;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
11
- let BoxEntity = class BoxEntity {
12
- id;
13
- address;
14
- boxId;
15
- createBlock;
16
- creationHeight;
17
- serialized;
18
- spendBlock;
19
- spendHeight;
20
- extractor;
21
- };
22
- __decorate([
23
- PrimaryGeneratedColumn(),
24
- __metadata("design:type", Number)
25
- ], BoxEntity.prototype, "id", void 0);
26
- __decorate([
27
- Column(),
28
- __metadata("design:type", String)
29
- ], BoxEntity.prototype, "address", void 0);
30
- __decorate([
31
- Column(),
32
- __metadata("design:type", String)
33
- ], BoxEntity.prototype, "boxId", void 0);
34
- __decorate([
35
- Column(),
36
- __metadata("design:type", String)
37
- ], BoxEntity.prototype, "createBlock", void 0);
38
- __decorate([
39
- Column(),
40
- __metadata("design:type", Number)
41
- ], BoxEntity.prototype, "creationHeight", void 0);
42
- __decorate([
43
- Column(),
44
- __metadata("design:type", String)
45
- ], BoxEntity.prototype, "serialized", void 0);
46
- __decorate([
47
- Column({ nullable: true, type: 'text' }),
48
- __metadata("design:type", Object)
49
- ], BoxEntity.prototype, "spendBlock", void 0);
50
- __decorate([
51
- Column({ nullable: true }),
52
- __metadata("design:type", Number)
53
- ], BoxEntity.prototype, "spendHeight", void 0);
54
- __decorate([
55
- Column(),
56
- __metadata("design:type", String)
57
- ], BoxEntity.prototype, "extractor", void 0);
58
- BoxEntity = __decorate([
59
- Entity()
60
- ], BoxEntity);
61
- export { BoxEntity };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94RW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VudGl0aWVzL2JveEVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUcxRCxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsRUFBRSxDQUFTO0lBR1gsT0FBTyxDQUFTO0lBR2hCLEtBQUssQ0FBUztJQUdkLFdBQVcsQ0FBUztJQUdwQixjQUFjLENBQVM7SUFHdkIsVUFBVSxDQUFTO0lBR25CLFVBQVUsQ0FBaUI7SUFHM0IsV0FBVyxDQUFVO0lBR3JCLFNBQVMsQ0FBUztDQUNuQixDQUFBO0FBMUJDO0lBQUMsc0JBQXNCLEVBQUU7O3FDQUNkO0FBRVg7SUFBQyxNQUFNLEVBQUU7OzBDQUNPO0FBRWhCO0lBQUMsTUFBTSxFQUFFOzt3Q0FDSztBQUVkO0lBQUMsTUFBTSxFQUFFOzs4Q0FDVztBQUVwQjtJQUFDLE1BQU0sRUFBRTs7aURBQ2M7QUFFdkI7SUFBQyxNQUFNLEVBQUU7OzZDQUNVO0FBRW5CO0lBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7OzZDQUNkO0FBRTNCO0lBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDOzs4Q0FDTjtBQUVyQjtJQUFDLE1BQU0sRUFBRTs7NENBQ1M7QUExQlAsU0FBUztJQURyQixNQUFNLEVBQUU7R0FDSSxTQUFTLENBMkJyQjtTQTNCWSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uLCBFbnRpdHksIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tICd0eXBlb3JtJztcblxuQEVudGl0eSgpXG5leHBvcnQgY2xhc3MgQm94RW50aXR5IHtcbiAgQFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuICBpZDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oKVxuICBhZGRyZXNzOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGJveElkOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGNyZWF0ZUJsb2NrOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGNyZWF0aW9uSGVpZ2h0OiBudW1iZXI7XG5cbiAgQENvbHVtbigpXG4gIHNlcmlhbGl6ZWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUsIHR5cGU6ICd0ZXh0JyB9KVxuICBzcGVuZEJsb2NrPzogc3RyaW5nIHwgbnVsbDtcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUgfSlcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXI7XG5cbiAgQENvbHVtbigpXG4gIGV4dHJhY3Rvcjogc3RyaW5nO1xufVxuIl19