@rosen-bridge/address-extractor 3.3.0 → 3.3.2

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.
@@ -0,0 +1,32 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,149 @@
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
@@ -61,6 +61,7 @@ export declare class ErgoUTXOExtractor implements AbstractExtractor<Transaction>
61
61
  getApiV1BoxesUnspentByergotreeP1: (p1: string, params?: import("@rosen-clients/ergo-explorer/dist/src/v1/types").GetApiV1BoxesUnspentByergotreeP1Params | undefined) => Promise<ItemsOutputInfo>;
62
62
  getApiV1BoxesUnspentByergotreetemplatehashP1: (p1: string, params?: import("@rosen-clients/ergo-explorer/dist/src/v1/types").GetApiV1BoxesUnspentByergotreetemplatehashP1Params | undefined) => Promise<ItemsOutputInfo>;
63
63
  getApiV1BoxesByaddressP1: (p1: string, params?: import("@rosen-clients/ergo-explorer/dist/src/v1/types").GetApiV1BoxesByaddressP1Params | undefined) => Promise<ItemsOutputInfo>;
64
+ getApiV1BoxesUnspentUnconfirmedByaddressP1: (p1: string, params?: import("@rosen-clients/ergo-explorer/dist/src/v1/types").GetApiV1BoxesUnspentUnconfirmedByaddressP1Params | undefined) => Promise<import("@rosen-clients/ergo-explorer/dist/src/v1/types").MOutputInfo[]>;
64
65
  getApiV1BoxesUnspentByaddressP1: (p1: string, params?: import("@rosen-clients/ergo-explorer/dist/src/v1/types").GetApiV1BoxesUnspentByaddressP1Params | undefined) => Promise<ItemsOutputInfo>;
65
66
  getApiV1BoxesByglobalindexStream: (params: import("@rosen-clients/ergo-explorer/dist/src/v1/types").GetApiV1BoxesByglobalindexStreamParams) => Promise<import("@rosen-clients/ergo-explorer/dist/src/v1/types").ListOutputInfo>;
66
67
  postApiV1BoxesUnspentSearchUnion: (boxAssetsQuery: import("@rosen-clients/ergo-explorer/dist/src/v1/types").BoxAssetsQuery, params?: import("@rosen-clients/ergo-explorer/dist/src/v1/types").PostApiV1BoxesUnspentSearchUnionParams | undefined) => Promise<ItemsOutputInfo>;
@@ -87,6 +88,7 @@ export declare class ErgoUTXOExtractor implements AbstractExtractor<Transaction>
87
88
  getApiV1Info: () => Promise<import("@rosen-clients/ergo-explorer/dist/src/v1/types").NetworkState>;
88
89
  getApiV1Networkstate: () => Promise<import("@rosen-clients/ergo-explorer/dist/src/v1/types").NetworkState>;
89
90
  getApiV1Networkstats: () => Promise<import("@rosen-clients/ergo-explorer/dist/src/v1/types").NetworkStats>;
91
+ postApiV1ErgotreeConvert: (ergoTreeConversionRequest: import("@rosen-clients/ergo-explorer/dist/src/v1/types").ErgoTreeConversionRequest) => Promise<import("@rosen-clients/ergo-explorer/dist/src/v1/types").ErgoTreeHuman>;
90
92
  };
91
93
  };
92
94
  constructor(dataSource: DataSource, id: string, networkType: ergoLib.NetworkPrefix, explorerUrl: string, address?: string, tokens?: Array<string>, logger?: AbstractLogger);
@@ -1 +1 @@
1
- {"version":3,"file":"ergoUtxoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoUtxoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,iBAAkB,YAAW,iBAAiB,CAAC,WAAW,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAC;gBAGX,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,OAAO,CAAC,aAAa,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,EAAE,cAAc;IAczB;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAkEjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,kBAAyB,MAAM,mBA0B5C;IAEF;;;;;OAKG;IACH,sBAAsB,0BACG,MAAM,MAAM,CAAC,iBACrB,MAAM,mBAmBrB;IAEF;;;OAGG;IACH,mBAAmB,UACV,MAAM,KACZ,QAAQ,YAAY,GAAG,SAAS,CAAC,CAQlC;IAEF;;;;OAIG;IACH,eAAe,kBACE,MAAM,KACpB,QAAQ,MAAM,YAAY,CAAC,CAAC,CAmC7B;IAEF;;;OAGG;IACH,UAAU,SAAgB,MAAM;;;OAM9B;IAEF;;;OAGG;IACH,cAAc,UAAiB,MAAM,UAAU,CAAC,6BA2B9C;IAEF;;;OAGG;IACH,WAAW,QAAS,UAAU,aAM5B;CACH"}
1
+ {"version":3,"file":"ergoUtxoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoUtxoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,iBAAkB,YAAW,iBAAiB,CAAC,WAAW,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAC;gBAGX,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,OAAO,CAAC,aAAa,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,EAAE,cAAc;IAczB;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAkEjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,kBAAyB,MAAM,mBA0B5C;IAEF;;;;;OAKG;IACH,sBAAsB,0BACG,MAAM,MAAM,CAAC,iBACrB,MAAM,mBAmBrB;IAEF;;;OAGG;IACH,mBAAmB,UACV,MAAM,KACZ,QAAQ,YAAY,GAAG,SAAS,CAAC,CAQlC;IAEF;;;;OAIG;IACH,eAAe,kBACE,MAAM,KACpB,QAAQ,MAAM,YAAY,CAAC,CAAC,CAmC7B;IAEF;;;OAGG;IACH,UAAU,SAAgB,MAAM;;;OAM9B;IAEF;;;OAGG;IACH,cAAc,UAAiB,MAAM,UAAU,CAAC,6BA2B9C;IAEF;;;OAGG;IACH,WAAW,QAAS,UAAU,aAM5B;CACH"}
@@ -0,0 +1,8 @@
1
+ export default class ExtractedBox {
2
+ boxId: string;
3
+ address: string;
4
+ serialized: string;
5
+ blockId?: string;
6
+ height?: number;
7
+ }
8
+ //# sourceMappingURL=ExtractedBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtractedBox.d.ts","sourceRoot":"","sources":["../../lib/interfaces/ExtractedBox.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,8 @@
1
+ export default class ExtractedBox {
2
+ boxId;
3
+ address;
4
+ serialized;
5
+ blockId;
6
+ height;
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmFjdGVkQm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvRXh0cmFjdGVkQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBWTtJQUMvQixLQUFLLENBQVM7SUFDZCxPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFTO0lBQ25CLE9BQU8sQ0FBVTtJQUNqQixNQUFNLENBQVU7Q0FDakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBFeHRyYWN0ZWRCb3gge1xuICBib3hJZDogc3RyaW5nO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHNlcmlhbGl6ZWQ6IHN0cmluZztcbiAgYmxvY2tJZD86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,23 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { Boxes } from '../interfaces/types';
3
+ import { AbstractLogger } from '@rosen-bridge/logger-interface';
4
+ export declare class ExplorerApi {
5
+ api: AxiosInstance;
6
+ readonly logger: AbstractLogger;
7
+ constructor(explorerAddress: string, logger: AbstractLogger, timeout?: number);
8
+ /**
9
+ * gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
10
+ * @param tree
11
+ * @param offset
12
+ * @param limit
13
+ */
14
+ getBoxesForAddress: (tree: string, offset?: number, limit?: number) => Promise<Boxes>;
15
+ /**
16
+ * gets boxes containing tokenId
17
+ * @param tokenId the address ergoTree
18
+ * @param offset
19
+ * @param limit
20
+ */
21
+ getBoxesByTokenId: (tokenId: string, offset?: number, limit?: number) => Promise<Boxes>;
22
+ }
23
+ //# sourceMappingURL=ergoNetworkApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ergoNetworkApi.d.ts","sourceRoot":"","sources":["../../lib/network/ergoNetworkApi.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,qBAAa,WAAW;IACtB,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAG9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,MAAM;IASlB;;;;;OAKG;IACH,kBAAkB,SACV,MAAM,sCAGX,QAAQ,KAAK,CAAC,CAYf;IAEF;;;;;OAKG;IACH,iBAAiB,YACN,MAAM,sCAGd,QAAQ,KAAK,CAAC,CAiBf;CACH"}
@@ -0,0 +1,55 @@
1
+ import axios from 'axios';
2
+ import { JsonBI } from './parser';
3
+ export class ExplorerApi {
4
+ api;
5
+ logger;
6
+ constructor(explorerAddress, logger, timeout) {
7
+ this.api = axios.create({
8
+ baseURL: explorerAddress,
9
+ timeout: timeout ? timeout : 10000,
10
+ });
11
+ this.logger = logger;
12
+ }
13
+ /**
14
+ * gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
15
+ * @param tree
16
+ * @param offset
17
+ * @param limit
18
+ */
19
+ getBoxesForAddress = async (tree, offset = 0, limit = 100) => {
20
+ this.logger.debug(`Getting boxes for ergoTree ${tree}`);
21
+ return this.api
22
+ .get(`/api/v1/boxes/unspent/byErgoTree/${tree}`, {
23
+ params: { offset: offset, limit: limit },
24
+ transformResponse: (data) => JsonBI.parse(data),
25
+ })
26
+ .then((res) => res.data)
27
+ .catch((err) => {
28
+ this.logger.error(`Error getting boxes for ergoTree ${tree}: ${err}`);
29
+ throw err;
30
+ });
31
+ };
32
+ /**
33
+ * gets boxes containing tokenId
34
+ * @param tokenId the address ergoTree
35
+ * @param offset
36
+ * @param limit
37
+ */
38
+ getBoxesByTokenId = async (tokenId, offset = 0, limit = 100) => {
39
+ this.logger.debug(`Getting boxes by tokenId ${tokenId}`);
40
+ return this.api
41
+ .get(`/v1/boxes/unspent/byTokenId/${tokenId}`, {
42
+ params: { offset: offset, limit: limit },
43
+ transformResponse: (data) => JsonBI.parse(data),
44
+ })
45
+ .then((res) => res.data)
46
+ .catch((e) => {
47
+ this.logger.error(`An error occurred while getting boxes containing token [${tokenId}] from Ergo Explorer: [${e}]`);
48
+ return {
49
+ items: [],
50
+ total: 0,
51
+ };
52
+ });
53
+ };
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb05ldHdvcmtBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9lcmdvTmV0d29ya0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsTUFBTSxPQUFPLFdBQVc7SUFDdEIsR0FBRyxDQUFnQjtJQUNWLE1BQU0sQ0FBaUI7SUFFaEMsWUFDRSxlQUF1QixFQUN2QixNQUFzQixFQUN0QixPQUFnQjtRQUVoQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQ25DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFDeEIsSUFBWSxFQUNaLE1BQU0sR0FBRyxDQUFDLEVBQ1YsS0FBSyxHQUFHLEdBQUcsRUFDSyxFQUFFO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEdBQUc7YUFDWixHQUFHLENBQVEsb0NBQW9DLElBQUksRUFBRSxFQUFFO1lBQ3RELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUN4QyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDaEQsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzthQUN2QixLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFNLEdBQUcsQ0FBQyxFQUNWLEtBQUssR0FBRyxHQUFHLEVBQ0ssRUFBRTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxHQUFHO2FBQ1osR0FBRyxDQUFRLCtCQUErQixPQUFPLEVBQUUsRUFBRTtZQUNwRCxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDeEMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ2hELENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7YUFDdkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiwyREFBMkQsT0FBTywwQkFBMEIsQ0FBQyxHQUFHLENBQ2pHLENBQUM7WUFDRixPQUFPO2dCQUNMLEtBQUssRUFBRSxFQUFFO2dCQUNULEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IEJveGVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBKc29uQkkgfSBmcm9tICcuL3BhcnNlcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvbG9nZ2VyLWludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBFeHBsb3JlckFwaSB7XG4gIGFwaTogQXhpb3NJbnN0YW5jZTtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBleHBsb3JlckFkZHJlc3M6IHN0cmluZyxcbiAgICBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyLFxuICAgIHRpbWVvdXQ/OiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5hcGkgPSBheGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogZXhwbG9yZXJBZGRyZXNzLFxuICAgICAgdGltZW91dDogdGltZW91dCA/IHRpbWVvdXQgOiAxMDAwMCxcbiAgICB9KTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIHVuc3BlbnQgYm94ZXMgZm9yIGEgc3BlY2lmaWMgZXJnb3RyZWUgd2l0aCBkZWZhdWx0IGxpbWl0IG9mIDEwMCBhbmQgb2Zmc2V0IDBcbiAgICogQHBhcmFtIHRyZWVcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICovXG4gIGdldEJveGVzRm9yQWRkcmVzcyA9IGFzeW5jIChcbiAgICB0cmVlOiBzdHJpbmcsXG4gICAgb2Zmc2V0ID0gMCxcbiAgICBsaW1pdCA9IDEwMFxuICApOiBQcm9taXNlPEJveGVzPiA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEdldHRpbmcgYm94ZXMgZm9yIGVyZ29UcmVlICR7dHJlZX1gKTtcbiAgICByZXR1cm4gdGhpcy5hcGlcbiAgICAgIC5nZXQ8Qm94ZXM+KGAvYXBpL3YxL2JveGVzL3Vuc3BlbnQvYnlFcmdvVHJlZS8ke3RyZWV9YCwge1xuICAgICAgICBwYXJhbXM6IHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBsaW1pdCB9LFxuICAgICAgICB0cmFuc2Zvcm1SZXNwb25zZTogKGRhdGEpID0+IEpzb25CSS5wYXJzZShkYXRhKSxcbiAgICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuZGF0YSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBFcnJvciBnZXR0aW5nIGJveGVzIGZvciBlcmdvVHJlZSAke3RyZWV9OiAke2Vycn1gKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgYm94ZXMgY29udGFpbmluZyB0b2tlbklkXG4gICAqIEBwYXJhbSB0b2tlbklkIHRoZSBhZGRyZXNzIGVyZ29UcmVlXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBnZXRCb3hlc0J5VG9rZW5JZCA9IGFzeW5jIChcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgb2Zmc2V0ID0gMCxcbiAgICBsaW1pdCA9IDEwMFxuICApOiBQcm9taXNlPEJveGVzPiA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEdldHRpbmcgYm94ZXMgYnkgdG9rZW5JZCAke3Rva2VuSWR9YCk7XG4gICAgcmV0dXJuIHRoaXMuYXBpXG4gICAgICAuZ2V0PEJveGVzPihgL3YxL2JveGVzL3Vuc3BlbnQvYnlUb2tlbklkLyR7dG9rZW5JZH1gLCB7XG4gICAgICAgIHBhcmFtczogeyBvZmZzZXQ6IG9mZnNldCwgbGltaXQ6IGxpbWl0IH0sXG4gICAgICAgIHRyYW5zZm9ybVJlc3BvbnNlOiAoZGF0YSkgPT4gSnNvbkJJLnBhcnNlKGRhdGEpLFxuICAgICAgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhKVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIGJveGVzIGNvbnRhaW5pbmcgdG9rZW4gWyR7dG9rZW5JZH1dIGZyb20gRXJnbyBFeHBsb3JlcjogWyR7ZX1dYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9O1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ export declare const JsonBI: {
2
+ parse: (text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined) => any;
3
+ stringify: {
4
+ (value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string;
5
+ (value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string;
6
+ };
7
+ };
8
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/network/parser.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;CAEjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import JSONBigInt from 'json-bigint';
2
+ export const JsonBI = JSONBigInt({
3
+ useNativeBigInt: true,
4
+ });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL25ldHdvcmsvcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxJQUFJO0NBQ3RCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBKU09OQmlnSW50IGZyb20gJ2pzb24tYmlnaW50JztcblxuZXhwb3J0IGNvbnN0IEpzb25CSSA9IEpTT05CaWdJbnQoe1xuICB1c2VOYXRpdmVCaWdJbnQ6IHRydWUsXG59KTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/address-extractor",
3
- "version": "3.3.0",
3
+ "version": "3.3.2",
4
4
  "description": "UTXO box extractor for any address or token.",
5
5
  "author": "Rosen Team",
6
6
  "license": "GPL-3.0",
@@ -20,14 +20,14 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@rosen-bridge/abstract-logger": "^1.0.0",
23
- "@rosen-bridge/scanner": "^3.2.6",
24
- "@rosen-clients/ergo-explorer": "^1.0.3",
23
+ "@rosen-bridge/scanner": "^3.2.8",
24
+ "@rosen-clients/ergo-explorer": "^1.1.1",
25
25
  "blakejs": "^1.2.1",
26
26
  "ergo-lib-wasm-nodejs": "^0.24.1",
27
27
  "lodash-es": "^4.17.21",
28
28
  "reflect-metadata": "^0.1.13",
29
29
  "sqlite3": "^5.0.9",
30
- "typeorm": "^0.3.7"
30
+ "typeorm": "^0.3.20"
31
31
  },
32
32
  "type": "module",
33
33
  "devDependencies": {