@rosen-bridge/address-extractor 0.1.5 → 0.1.7
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/actions/db.d.ts +7 -0
- package/dist/actions/db.d.ts.map +1 -1
- package/dist/actions/db.js +41 -2
- package/dist/extractor/ergoUtxoExtractor.d.ts +10 -2
- package/dist/extractor/ergoUtxoExtractor.d.ts.map +1 -1
- package/dist/extractor/ergoUtxoExtractor.js +52 -2
- package/dist/interfaces/ExtractedBox.d.ts +2 -0
- package/dist/interfaces/ExtractedBox.d.ts.map +1 -1
- package/dist/interfaces/ExtractedBox.js +3 -1
- package/dist/interfaces/types.d.ts +19 -0
- package/dist/interfaces/types.d.ts.map +1 -0
- package/dist/interfaces/types.js +2 -0
- package/dist/network/ergoNetworkApi.d.ts +21 -0
- package/dist/network/ergoNetworkApi.d.ts.map +1 -0
- package/dist/network/ergoNetworkApi.js +47 -0
- package/dist/network/parser.d.ts +8 -0
- package/dist/network/parser.d.ts.map +1 -0
- package/dist/network/parser.js +6 -0
- package/package.json +6 -4
package/dist/actions/db.d.ts
CHANGED
|
@@ -4,6 +4,13 @@ import { BlockEntity } from '@rosen-bridge/scanner';
|
|
|
4
4
|
export declare class BoxEntityAction {
|
|
5
5
|
private readonly datasource;
|
|
6
6
|
constructor(dataSource: DataSource);
|
|
7
|
+
/**
|
|
8
|
+
* stores initial extracted boxes to the database
|
|
9
|
+
* @param boxes
|
|
10
|
+
* @param initializationHeight
|
|
11
|
+
* @param extractor
|
|
12
|
+
*/
|
|
13
|
+
storeInitialBoxes: (boxes: Array<ExtractedBox>, initializationHeight: number, extractor: string) => Promise<boolean>;
|
|
7
14
|
/**
|
|
8
15
|
* It stores list of blocks in the dataSource with block id
|
|
9
16
|
* @param boxes
|
package/dist/actions/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,
|
|
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,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACH,iBAAiB,UACR,MAAM,YAAY,CAAC,wBACJ,MAAM,aACjB,MAAM,sBAiCjB;IAEF;;;;;;OAMG;IACH,QAAQ,UACC,MAAM,YAAY,CAAC,cACd,MAAM,MAAM,CAAC,SAClB,WAAW,aACP,MAAM,sBAsDjB;IAEF;;;;;OAKG;IACH,gBAAgB,UAAiB,MAAM,aAAa,MAAM,mBAoBxD;CACH"}
|
package/dist/actions/db.js
CHANGED
|
@@ -1,10 +1,49 @@
|
|
|
1
1
|
import { BoxEntity } from '../entities/boxEntity';
|
|
2
|
-
import { In } from 'typeorm';
|
|
2
|
+
import { In, LessThan } from 'typeorm';
|
|
3
3
|
export class BoxEntityAction {
|
|
4
4
|
datasource;
|
|
5
5
|
constructor(dataSource) {
|
|
6
6
|
this.datasource = dataSource;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* stores initial extracted boxes to the database
|
|
10
|
+
* @param boxes
|
|
11
|
+
* @param initializationHeight
|
|
12
|
+
* @param extractor
|
|
13
|
+
*/
|
|
14
|
+
storeInitialBoxes = async (boxes, initializationHeight, extractor) => {
|
|
15
|
+
const queryRunner = this.datasource.createQueryRunner();
|
|
16
|
+
await queryRunner.connect();
|
|
17
|
+
await queryRunner.startTransaction();
|
|
18
|
+
try {
|
|
19
|
+
const repository = queryRunner.manager.getRepository(BoxEntity);
|
|
20
|
+
await repository.delete({
|
|
21
|
+
creationHeight: LessThan(initializationHeight),
|
|
22
|
+
});
|
|
23
|
+
for (const box of boxes) {
|
|
24
|
+
const entity = {
|
|
25
|
+
address: box.address,
|
|
26
|
+
boxId: box.boxId,
|
|
27
|
+
createBlock: box.blockId,
|
|
28
|
+
creationHeight: box.height,
|
|
29
|
+
spendBlock: undefined,
|
|
30
|
+
serialized: box.serialized,
|
|
31
|
+
extractor: extractor,
|
|
32
|
+
};
|
|
33
|
+
await repository.insert(entity);
|
|
34
|
+
}
|
|
35
|
+
await queryRunner.commitTransaction();
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.log(`An error occurred during store boxes action: ${e}`);
|
|
39
|
+
await queryRunner.rollbackTransaction();
|
|
40
|
+
throw new Error('Initialization failed while storing initial address boxes');
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
await queryRunner.release();
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
8
47
|
/**
|
|
9
48
|
* It stores list of blocks in the dataSource with block id
|
|
10
49
|
* @param boxes
|
|
@@ -97,4 +136,4 @@ export class BoxEntityAction {
|
|
|
97
136
|
.execute();
|
|
98
137
|
};
|
|
99
138
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUl6QyxNQUFNLE9BQU8sZUFBZTtJQUNULFVBQVUsQ0FBYTtJQUV4QyxZQUFZLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLEdBQUcsS0FBSyxFQUNkLEtBQTBCLEVBQzFCLFVBQXlCLEVBQ3pCLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDcEUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtnQkFDdkIsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO29CQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDdkIsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUM1QixVQUFVLEVBQUUsU0FBUztvQkFDckIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO29CQUMxQixTQUFTLEVBQUUsU0FBUztpQkFDckIsQ0FBQztnQkFDRixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakUsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDcEIsTUFBTSxXQUFXLENBQUMsT0FBTzt5QkFDdEIsYUFBYSxDQUFDLFNBQVMsQ0FBQzt5QkFDeEIsa0JBQWtCLEVBQUU7eUJBQ3BCLE1BQU0sRUFBRTt5QkFDUixHQUFHLENBQUMsTUFBTSxDQUFDO3lCQUNYLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7eUJBQzFCLE9BQU8sRUFBRSxDQUFDO2lCQUNkO3FCQUFNO29CQUNMLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNuRTthQUNGO1lBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVTtpQkFDbEIsYUFBYSxDQUFDLFNBQVMsQ0FBQztpQkFDeEIsa0JBQWtCLEVBQUU7aUJBQ3BCLE1BQU0sRUFBRTtpQkFDUixHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUMvQixLQUFLLENBQUMsaURBQWlELEVBQUU7Z0JBQ3hELEtBQUssRUFBRSxVQUFVO2dCQUNqQixTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDO2lCQUNELE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRSxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDakI7Z0JBQVM7WUFDUixNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3QjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDNUQsTUFBTSxJQUFJLENBQUMsVUFBVTthQUNsQixrQkFBa0IsRUFBRTthQUNwQixNQUFNLEVBQUU7YUFDUixJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ2YsS0FBSyxDQUFDLGlEQUFpRCxFQUFFO1lBQ3hELEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQzthQUNELE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLENBQUMsVUFBVTthQUNsQixhQUFhLENBQUMsU0FBUyxDQUFDO2FBQ3hCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sRUFBRTthQUNSLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN6QixLQUFLLENBQUMsZ0RBQWdELEVBQUU7WUFDdkQsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveEVudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzL2JveEVudGl0eSc7XG5pbXBvcnQgeyBEYXRhU291cmNlLCBJbiB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IEV4dHJhY3RlZEJveCBmcm9tICcuLi9pbnRlcmZhY2VzL0V4dHJhY3RlZEJveCc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmV4cG9ydCBjbGFzcyBCb3hFbnRpdHlBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogSXQgc3RvcmVzIGxpc3Qgb2YgYmxvY2tzIGluIHRoZSBkYXRhU291cmNlIHdpdGggYmxvY2sgaWRcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSBzcGVuZEJveGVzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZUJveCA9IGFzeW5jIChcbiAgICBib3hlczogQXJyYXk8RXh0cmFjdGVkQm94PixcbiAgICBzcGVuZEJveGVzOiBBcnJheTxzdHJpbmc+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBib3hlcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYm94SWQpO1xuICAgIGNvbnN0IGRiQm94ZXMgPSBhd2FpdCB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpLmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBib3guYWRkcmVzcyxcbiAgICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICAgIGNyZWF0ZUJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRCbG9jazogdW5kZWZpbmVkLFxuICAgICAgICAgIHNlcmlhbGl6ZWQ6IGJveC5zZXJpYWxpemVkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYkJveCA9IGRiQm94ZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmJveElkID09PSBib3guYm94SWQpO1xuICAgICAgICBpZiAoZGJCb3gubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXJcbiAgICAgICAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgICAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgICAgICAgLnVwZGF0ZSgpXG4gICAgICAgICAgICAuc2V0KGVudGl0eSlcbiAgICAgICAgICAgIC53aGVyZSh7IGlkOiBkYkJveFswXS5pZCB9KVxuICAgICAgICAgICAgLmV4ZWN1dGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KS5pbnNlcnQoZW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgIC51cGRhdGUoKVxuICAgICAgICAuc2V0KHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCB9KVxuICAgICAgICAud2hlcmUoJ2JveElkIElOICg6Li4uYm94ZXMpIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICAgIGJveGVzOiBzcGVuZEJveGVzLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9KVxuICAgICAgICAuZXhlY3V0ZSgpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYm94ZXMgaW4gc3BlY2lmaWMgYmxvY2sgZnJvbSBkYXRhYmFzZS4gaWYgYm94IHNwZW5kIGluIHRoaXMgYmxvY2sgbWFya2VkIGFzIHVuc3BlbnRcbiAgICogYW5kIGlmIGNyZWF0ZWQgaW4gdGhpcyBibG9jayByZW1vdmUgaXQgZnJvbSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tCb3hlcyA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAuZGVsZXRlKClcbiAgICAgIC5mcm9tKEJveEVudGl0eSlcbiAgICAgIC53aGVyZSgnZXh0cmFjdG9yID0gOmV4dHJhY3RvciBBTkQgY3JlYXRlQmxvY2sgPSA6YmxvY2snLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLnVwZGF0ZSgpXG4gICAgICAuc2V0KHsgc3BlbmRCbG9jazogbnVsbCB9KVxuICAgICAgLndoZXJlKCdzcGVuZEJsb2NrID0gOmJsb2NrIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gIH07XG59XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJbkQsTUFBTSxPQUFPLGVBQWU7SUFDVCxVQUFVLENBQWE7SUFFeEMsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLEtBQTBCLEVBQzFCLG9CQUE0QixFQUM1QixTQUFpQixFQUNqQixFQUFFO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDdEIsY0FBYyxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUMvQyxDQUFDLENBQUM7WUFDSCxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtnQkFDdkIsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO29CQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLFdBQVcsRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDeEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxNQUFNO29CQUMxQixVQUFVLEVBQUUsU0FBUztvQkFDckIsVUFBVSxFQUFFLEdB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ZW50aXRpZXMvYm94RW50aXR5JztcbmltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBMZXNzVGhhbiB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IEV4dHJhY3RlZEJveCBmcm9tICcuLi9pbnRlcmZhY2VzL0V4dHJhY3RlZEJveCc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmV4cG9ydCBjbGFzcyBCb3hFbnRpdHlBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogc3RvcmVzIGluaXRpYWwgZXh0cmFjdGVkIGJveGVzIHRvIHRoZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIGluaXRpYWxpemF0aW9uSGVpZ2h0XG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlSW5pdGlhbEJveGVzID0gYXN5bmMgKFxuICAgIGJveGVzOiBBcnJheTxFeHRyYWN0ZWRCb3g+LFxuICAgIGluaXRpYWxpemF0aW9uSGVpZ2h0OiBudW1iZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSk7XG4gICAgICBhd2FpdCByZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBMZXNzVGhhbihpbml0aWFsaXphdGlvbkhlaWdodCksXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBib3guYWRkcmVzcyxcbiAgICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICAgIGNyZWF0ZUJsb2NrOiBib3guYmxvY2tJZCxcbiAgICAgICAgICBjcmVhdGlvbkhlaWdodDogYm94LmhlaWdodCxcbiAgICAgICAgICBzcGVuZEJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgc2VyaWFsaXplZDogYm94LnNlcmlhbGl6ZWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgYm94ZXMgYWN0aW9uOiAke2V9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdJbml0aWFsaXphdGlvbiBmYWlsZWQgd2hpbGUgc3RvcmluZyBpbml0aWFsIGFkZHJlc3MgYm94ZXMnXG4gICAgICApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBibG9ja3MgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIHNwZW5kQm94ZXNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQm94ID0gYXN5bmMgKFxuICAgIGJveGVzOiBBcnJheTxFeHRyYWN0ZWRCb3g+LFxuICAgIHNwZW5kQm94ZXM6IEFycmF5PHN0cmluZz4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5LFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGNvbnN0IGJveElkcyA9IGJveGVzLm1hcCgoaXRlbSkgPT4gaXRlbS5ib3hJZCk7XG4gICAgY29uc3QgZGJCb3hlcyA9IGF3YWl0IHRoaXMuZGF0YXNvdXJjZS5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBib3ggb2YgYm94ZXMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGFkZHJlc3M6IGJveC5hZGRyZXNzLFxuICAgICAgICAgIGJveElkOiBib3guYm94SWQsXG4gICAgICAgICAgY3JlYXRlQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBzcGVuZEJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgc2VyaWFsaXplZDogYm94LnNlcmlhbGl6ZWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRiQm94ID0gZGJCb3hlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYm94SWQgPT09IGJveC5ib3hJZCk7XG4gICAgICAgIGlmIChkYkJveC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlclxuICAgICAgICAgICAgLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KVxuICAgICAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgICAgICAudXBkYXRlKClcbiAgICAgICAgICAgIC5zZXQoZW50aXR5KVxuICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRiQm94WzBdLmlkIH0pXG4gICAgICAgICAgICAuZXhlY3V0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpLmluc2VydChlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgICAgLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KVxuICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgLnVwZGF0ZSgpXG4gICAgICAgIC5zZXQoeyBzcGVuZEJsb2NrOiBibG9jay5oYXNoIH0pXG4gICAgICAgIC53aGVyZSgnYm94SWQgSU4gKDouLi5ib3hlcykgQU5EIGV4dHJhY3RvciA9IDpleHRyYWN0b3InLCB7XG4gICAgICAgICAgYm94ZXM6IHNwZW5kQm94ZXMsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0pXG4gICAgICAgIC5leGVjdXRlKCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgYm94ZXMgYWN0aW9uOiAke2V9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBib3hlcyBpbiBzcGVjaWZpYyBibG9jayBmcm9tIGRhdGFiYXNlLiBpZiBib3ggc3BlbmQgaW4gdGhpcyBibG9jayBtYXJrZWQgYXMgdW5zcGVudFxuICAgKiBhbmQgaWYgY3JlYXRlZCBpbiB0aGlzIGJsb2NrIHJlbW92ZSBpdCBmcm9tIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9ja0JveGVzID0gYXN5bmMgKGJsb2NrOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC5kZWxldGUoKVxuICAgICAgLmZyb20oQm94RW50aXR5KVxuICAgICAgLndoZXJlKCdleHRyYWN0b3IgPSA6ZXh0cmFjdG9yIEFORCBjcmVhdGVCbG9jayA9IDpibG9jaycsIHtcbiAgICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0pXG4gICAgICAuZXhlY3V0ZSgpO1xuICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAudXBkYXRlKClcbiAgICAgIC5zZXQoeyBzcGVuZEJsb2NrOiBudWxsIH0pXG4gICAgICAud2hlcmUoJ3NwZW5kQmxvY2sgPSA6YmxvY2sgQU5EIGV4dHJhY3RvciA9IDpleHRyYWN0b3InLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { DataSource } from 'typeorm';
|
|
2
2
|
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
3
|
+
import { BoxEntityAction } from '../actions/db';
|
|
3
4
|
import { AbstractExtractor } from '@rosen-bridge/scanner';
|
|
4
5
|
import { BlockEntity } from '@rosen-bridge/scanner';
|
|
6
|
+
import { ExplorerApi } from '../network/ergoNetworkApi';
|
|
5
7
|
export declare class ErgoUTXOExtractor implements AbstractExtractor<ergoLib.Transaction> {
|
|
6
8
|
private readonly dataSource;
|
|
7
|
-
|
|
9
|
+
readonly actions: BoxEntityAction;
|
|
8
10
|
private readonly id;
|
|
9
11
|
private readonly networkType;
|
|
10
12
|
private readonly ergoTree?;
|
|
11
13
|
private readonly tokens;
|
|
12
|
-
|
|
14
|
+
readonly explorerApi: ExplorerApi;
|
|
15
|
+
constructor(dataSource: DataSource, id: string, networkType: ergoLib.NetworkPrefix, explorerUrl: string, address?: string, tokens?: Array<string>);
|
|
16
|
+
private extractBoxFromJson;
|
|
13
17
|
/**
|
|
14
18
|
* get Id for current extractor
|
|
15
19
|
*/
|
|
@@ -26,5 +30,9 @@ export declare class ErgoUTXOExtractor implements AbstractExtractor<ergoLib.Tran
|
|
|
26
30
|
* @param hash: block hash
|
|
27
31
|
*/
|
|
28
32
|
forkBlock: (hash: string) => Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Initializes the database with older boxes related to the address
|
|
35
|
+
*/
|
|
36
|
+
initializeBoxes: (initialHeight: number) => Promise<void>;
|
|
29
37
|
}
|
|
30
38
|
//# sourceMappingURL=ergoUtxoExtractor.d.ts.map
|
|
@@ -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;
|
|
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;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,qBAAa,iBACX,YAAW,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;IAEjD,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,WAAW,EAAE,WAAW,CAAC;gBAGhC,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;IAaxB,OAAO,CAAC,kBAAkB,CAWxB;IACF;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,QAAQ,WAAW,CAAC,SACxB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAgEjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,kBAAyB,MAAM,mBA0C5C;CACH"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
2
2
|
import { Buffer } from 'buffer';
|
|
3
3
|
import { BoxEntityAction } from '../actions/db';
|
|
4
|
+
import { ExplorerApi } from '../network/ergoNetworkApi';
|
|
5
|
+
import { JsonBI } from '../network/parser';
|
|
4
6
|
export class ErgoUTXOExtractor {
|
|
5
7
|
dataSource;
|
|
6
8
|
actions;
|
|
@@ -8,7 +10,8 @@ export class ErgoUTXOExtractor {
|
|
|
8
10
|
networkType;
|
|
9
11
|
ergoTree;
|
|
10
12
|
tokens;
|
|
11
|
-
|
|
13
|
+
explorerApi;
|
|
14
|
+
constructor(dataSource, id, networkType, explorerUrl, address, tokens) {
|
|
12
15
|
this.dataSource = dataSource;
|
|
13
16
|
this.actions = new BoxEntityAction(dataSource);
|
|
14
17
|
this.id = id;
|
|
@@ -17,7 +20,18 @@ export class ErgoUTXOExtractor {
|
|
|
17
20
|
? ergoLib.Address.from_base58(address).to_ergo_tree().to_base16_bytes()
|
|
18
21
|
: undefined;
|
|
19
22
|
this.tokens = tokens ? tokens : [];
|
|
23
|
+
this.explorerApi = new ExplorerApi(explorerUrl);
|
|
20
24
|
}
|
|
25
|
+
extractBoxFromJson = (boxJson) => {
|
|
26
|
+
const box = ergoLib.ErgoBox.from_json(JsonBI.stringify(boxJson));
|
|
27
|
+
return {
|
|
28
|
+
boxId: box.box_id().to_str(),
|
|
29
|
+
address: ergoLib.Address.recreate_from_ergo_tree(ergoLib.ErgoTree.from_base16_bytes(box.ergo_tree().to_base16_bytes())).to_base58(this.networkType),
|
|
30
|
+
serialized: Buffer.from(box.sigma_serialize_bytes()).toString('base64'),
|
|
31
|
+
blockId: boxJson.blockId,
|
|
32
|
+
height: boxJson.settlementHeight,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
21
35
|
/**
|
|
22
36
|
* get Id for current extractor
|
|
23
37
|
*/
|
|
@@ -83,5 +97,41 @@ export class ErgoUTXOExtractor {
|
|
|
83
97
|
forkBlock = async (hash) => {
|
|
84
98
|
await this.actions.deleteBlockBoxes(hash, this.getId());
|
|
85
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Initializes the database with older boxes related to the address
|
|
102
|
+
*/
|
|
103
|
+
initializeBoxes = async (initialHeight) => {
|
|
104
|
+
// 1. Get Boxes
|
|
105
|
+
const allBoxes = [];
|
|
106
|
+
let offset = 0, total = 100, boxes;
|
|
107
|
+
while (offset < total) {
|
|
108
|
+
if (this.ergoTree) {
|
|
109
|
+
boxes = await this.explorerApi.getBoxesForAddress(this.ergoTree, offset);
|
|
110
|
+
}
|
|
111
|
+
else if (!this.ergoTree && this.tokens.length > 0) {
|
|
112
|
+
boxes = await this.explorerApi.getBoxesByTokenId(this.tokens[0], offset);
|
|
113
|
+
}
|
|
114
|
+
else
|
|
115
|
+
return;
|
|
116
|
+
allBoxes.push(...boxes.items);
|
|
117
|
+
total = boxes.total;
|
|
118
|
+
offset += 100;
|
|
119
|
+
}
|
|
120
|
+
// 2. Filter Boxes
|
|
121
|
+
const extractedBoxes = allBoxes
|
|
122
|
+
.filter((boxJson) => boxJson.settlementHeight < initialHeight)
|
|
123
|
+
.filter((boxJson) => {
|
|
124
|
+
if (this.tokens.length > 0) {
|
|
125
|
+
const boxTokens = boxJson.assets.map((token) => token.tokenId);
|
|
126
|
+
const requiredTokens = this.tokens.filter((token) => boxTokens.includes(token));
|
|
127
|
+
if (requiredTokens.length < this.tokens.length)
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
})
|
|
132
|
+
.map((boxJson) => this.extractBoxFromJson(boxJson));
|
|
133
|
+
// 3. Store Boxes
|
|
134
|
+
await this.actions.storeInitialBoxes(extractedBoxes, initialHeight, this.getId());
|
|
135
|
+
};
|
|
86
136
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb1V0eG9FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2VyZ29VdHhvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2hELE1BQU0sT0FBTyxpQkFBaUI7SUFHWCxVQUFVLENBQWE7SUFDdkIsT0FBTyxDQUFrQjtJQUN6QixFQUFFLENBQVM7SUFDWCxXQUFXLENBQXdCO0lBQ25DLFFBQVEsQ0FBVTtJQUNsQixNQUFNLENBQWdCO0lBRXZDLFlBQ0UsVUFBc0IsRUFDdEIsRUFBVSxFQUNWLFdBQWtDLEVBQ2xDLE9BQWdCLEVBQ2hCLE1BQXNCO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU87WUFDckIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRTtZQUN2RSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FB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QUFDLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDWCxPQUFPLENBQUMsR0FBRyxDQUNULHVFQUF1RSxDQUFDLEVBQUUsQ0FDM0UsQ0FBQztvQkFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgQm94RW50aXR5QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9kYic7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgRXh0cmFjdGVkQm94IGZyb20gJy4uL2ludGVyZmFjZXMvRXh0cmFjdGVkQm94JztcbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcblxuZXhwb3J0IGNsYXNzIEVyZ29VVFhPRXh0cmFjdG9yXG4gIGltcGxlbWVudHMgQWJzdHJhY3RFeHRyYWN0b3I8ZXJnb0xpYi5UcmFuc2FjdGlvbj5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IEJveEVudGl0eUFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5ldHdvcmtUeXBlOiBlcmdvTGliLk5ldHdvcmtQcmVmaXg7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJnb1RyZWU/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5zOiBBcnJheTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBuZXR3b3JrVHlwZTogZXJnb0xpYi5OZXR3b3JrUHJlZml4LFxuICAgIGFkZHJlc3M/OiBzdHJpbmcsXG4gICAgdG9rZW5zPzogQXJyYXk8c3RyaW5nPlxuICApIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBCb3hFbnRpdHlBY3Rpb24oZGF0YVNvdXJjZSk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubmV0d29ya1R5cGUgPSBuZXR3b3JrVHlwZTtcbiAgICB0aGlzLmVyZ29UcmVlID0gYWRkcmVzc1xuICAgICAgPyBlcmdvTGliLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zID8gdG9rZW5zIDogW107XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiBgJHt0aGlzLmlkfWA7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IChcbiAgICB0eHM6IEFycmF5PGVyZ29MaWIuVHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eVxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZEJveD4gPSBbXTtcbiAgICAgICAgY29uc3Qgc3BlbmRCb3hlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24ub3V0cHV0cygpLmxlbigpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB0cmFuc2FjdGlvbi5vdXRwdXRzKCkuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5lcmdvVHJlZSAmJlxuICAgICAgICAgICAgICBvdXRwdXQuZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKCkgIT09IHRoaXMuZXJnb1RyZWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkVG9rZW5zID0gdGhpcy50b2tlbnMuZmlsdGVyKCh0b2tlbikgPT4ge1xuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIGxldCB0b2tlbkluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB0b2tlbkluZGV4IDwgb3V0cHV0LnRva2VucygpLmxlbigpO1xuICAgICAgICAgICAgICAgIHRva2VuSW5kZXgrK1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBpZiAob3V0cHV0LnRva2VucygpLmdldCh0b2tlbkluZGV4KS5pZCgpLnRvX3N0cigpID09PSB0b2tlbikge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy50b2tlbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICh0b2tlbikgPT4gZmlsdGVyZWRUb2tlbnMuaW5kZXhPZih0b2tlbikgPT09IC0xXG4gICAgICAgICAgICAgICkubGVuZ3RoID4gMFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgICAgIGFkZHJlc3M6IGVyZ29MaWIuQWRkcmVzcy5yZWNyZWF0ZV9mcm9tX2VyZ29fdHJlZShcbiAgICAgICAgICAgICAgICBlcmdvTGliLkVyZ29UcmVlLmZyb21fYmFzZTE2X2J5dGVzKFxuICAgICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLnRvX2Jhc2U1OCh0aGlzLm5ldHdvcmtUeXBlKSxcbiAgICAgICAgICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20ob3V0cHV0LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAnYmFzZTY0J1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGV0IGluZGV4MiA9IDA7IGluZGV4MiA8IHRyYW5zYWN0aW9uLmlucHV0cygpLmxlbigpOyBpbmRleDIrKykge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0cmFuc2FjdGlvbi5pbnB1dHMoKS5nZXQoaW5kZXgyKTtcbiAgICAgICAgICAgIHNwZW5kQm94ZXMucHVzaChpbnB1dC5ib3hfaWQoKS50b19zdHIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQm94KGJveGVzLCBzcGVuZEJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoc3RhdHVzKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgIGBBbiBlcnJvciB1bmNhY2hlZCBleGNlcHRpb24gb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGVyZ28gb2JzZXJ2YXRpb246ICR7ZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZvcmsgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaDogYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0JveGVzKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG59XG4iXX0=
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb1V0eG9FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2VyZ29VdHhvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUdYLFVBQVUsQ0FBYTtJQUMvQixPQUFPLENBQWtCO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLFdBQVcsQ0FBd0I7SUFDbkMsUUFBUSxDQUFVO0lBQ2xCLE1BQU0sQ0FBZ0I7SUFDOUIsV0FBVyxDQUFjO0lBRWxDLFlBQ0UsVUFBc0IsRUFDdEIsRUFBVSxFQUNWLFdBQWtDLEVBQ2xDLFdBQW1CLEVBQ25CLE9BQWdCLEVBQ2hCLE1BQXNCO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU87WUFDckIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRTtZQUN2RSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxD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LENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO2FBQzdELE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xELFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQzFCLENBQUM7Z0JBQ0YsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtvQkFBRSxPQUFPLEtBQUssQ0FBQzthQUM5RDtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RCxpQkFBaUI7UUFDakIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUNsQyxjQUFjLEVBQ2QsYUFBYSxFQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FDYixDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBCb3hFbnRpdHlBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zL2RiJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCBFeHRyYWN0ZWRCb3ggZnJvbSAnLi4vaW50ZXJmYWNlcy9FeHRyYWN0ZWRCb3gnO1xuaW1wb3J0IHsgQmxvY2tFbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuaW1wb3J0IHsgRXhwbG9yZXJBcGkgfSBmcm9tICcuLi9uZXR3b3JrL2VyZ29OZXR3b3JrQXBpJztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4uL25ldHdvcmsvcGFyc2VyJztcbmltcG9ydCB7IEJveGVzLCBFcmdvQm94SnNvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRXJnb1VUWE9FeHRyYWN0b3JcbiAgaW1wbGVtZW50cyBBYnN0cmFjdEV4dHJhY3RvcjxlcmdvTGliLlRyYW5zYWN0aW9uPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHJlYWRvbmx5IGFjdGlvbnM6IEJveEVudGl0eUFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5ldHdvcmtUeXBlOiBlcmdvTGliLk5ldHdvcmtQcmVmaXg7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJnb1RyZWU/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5zOiBBcnJheTxzdHJpbmc+O1xuICByZWFkb25seSBleHBsb3JlckFwaTogRXhwbG9yZXJBcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBpZDogc3RyaW5nLFxuICAgIG5ldHdvcmtUeXBlOiBlcmdvTGliLk5ldHdvcmtQcmVmaXgsXG4gICAgZXhwbG9yZXJVcmw6IHN0cmluZyxcbiAgICBhZGRyZXNzPzogc3RyaW5nLFxuICAgIHRva2Vucz86IEFycmF5PHN0cmluZz5cbiAgKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgQm94RW50aXR5QWN0aW9uKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLm5ldHdvcmtUeXBlID0gbmV0d29ya1R5cGU7XG4gICAgdGhpcy5lcmdvVHJlZSA9IGFkZHJlc3NcbiAgICAgID8gZXJnb0xpYi5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLnRvX2VyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucyA/IHRva2VucyA6IFtdO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBuZXcgRXhwbG9yZXJBcGkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Qm94RnJvbUpzb24gPSAoYm94SnNvbjogRXJnb0JveEpzb24pID0+IHtcbiAgICBjb25zdCBib3ggPSBlcmdvTGliLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94SnNvbikpO1xuICAgIHJldHVybiB7XG4gICAgICBib3hJZDogYm94LmJveF9pZCgpLnRvX3N0cigpLFxuICAgICAgYWRkcmVzczogZXJnb0xpYi5BZGRyZXNzLnJlY3JlYXRlX2Zyb21fZXJnb190cmVlKFxuICAgICAgICBlcmdvTGliLkVyZ29UcmVlLmZyb21fYmFzZTE2X2J5dGVzKGJveC5lcmdvX3RyZWUoKS50b19iYXNlMTZfYnl0ZXMoKSlcbiAgICAgICkudG9fYmFzZTU4KHRoaXMubmV0d29ya1R5cGUpLFxuICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20oYm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICBibG9ja0lkOiBib3hKc29uLmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IGJveEpzb24uc2V0dGxlbWVudEhlaWdodCxcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiBgJHt0aGlzLmlkfWA7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IChcbiAgICB0eHM6IEFycmF5PGVyZ29MaWIuVHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eVxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZEJveD4gPSBbXTtcbiAgICAgICAgY29uc3Qgc3BlbmRCb3hlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24ub3V0cHV0cygpLmxlbigpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB0cmFuc2FjdGlvbi5vdXRwdXRzKCkuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5lcmdvVHJlZSAmJlxuICAgICAgICAgICAgICBvdXRwdXQuZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKCkgIT09IHRoaXMuZXJnb1RyZWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkVG9rZW5zID0gdGhpcy50b2tlbnMuZmlsdGVyKCh0b2tlbikgPT4ge1xuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIGxldCB0b2tlbkluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB0b2tlbkluZGV4IDwgb3V0cHV0LnRva2VucygpLmxlbigpO1xuICAgICAgICAgICAgICAgIHRva2VuSW5kZXgrK1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBpZiAob3V0cHV0LnRva2VucygpLmdldCh0b2tlbkluZGV4KS5pZCgpLnRvX3N0cigpID09PSB0b2tlbikge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy50b2tlbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICh0b2tlbikgPT4gZmlsdGVyZWRUb2tlbnMuaW5kZXhPZih0b2tlbikgPT09IC0xXG4gICAgICAgICAgICAgICkubGVuZ3RoID4gMFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgICAgIGFkZHJlc3M6IGVyZ29MaWIuQWRkcmVzcy5yZWNyZWF0ZV9mcm9tX2VyZ29fdHJlZShcbiAgICAgICAgICAgICAgICBlcmdvTGliLkVyZ29UcmVlLmZyb21fYmFzZTE2X2J5dGVzKFxuICAgICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLnRvX2Jhc2U1OCh0aGlzLm5ldHdvcmtUeXBlKSxcbiAgICAgICAgICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20ob3V0cHV0LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAnYmFzZTY0J1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGV0IGluZGV4MiA9IDA7IGluZGV4MiA8IHRyYW5zYWN0aW9uLmlucHV0cygpLmxlbigpOyBpbmRleDIrKykge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0cmFuc2FjdGlvbi5pbnB1dHMoKS5nZXQoaW5kZXgyKTtcbiAgICAgICAgICAgIHNwZW5kQm94ZXMucHVzaChpbnB1dC5ib3hfaWQoKS50b19zdHIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQm94KGJveGVzLCBzcGVuZEJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoc3RhdHVzKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgIGBBbiBlcnJvciB1bmNhY2hlZCBleGNlcHRpb24gb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGVyZ28gb2JzZXJ2YXRpb246ICR7ZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZvcmsgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaDogYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0JveGVzKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhYmFzZSB3aXRoIG9sZGVyIGJveGVzIHJlbGF0ZWQgdG8gdGhlIGFkZHJlc3NcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jIChpbml0aWFsSGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICAvLyAxLiBHZXQgQm94ZXNcbiAgICBjb25zdCBhbGxCb3hlczogQXJyYXk8RXJnb0JveEpzb24+ID0gW107XG4gICAgbGV0IG9mZnNldCA9IDAsXG4gICAgICB0b3RhbCA9IDEwMCxcbiAgICAgIGJveGVzOiBCb3hlcztcbiAgICB3aGlsZSAob2Zmc2V0IDwgdG90YWwpIHtcbiAgICAgIGlmICh0aGlzLmVyZ29UcmVlKSB7XG4gICAgICAgIGJveGVzID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS5nZXRCb3hlc0ZvckFkZHJlc3MoXG4gICAgICAgICAgdGhpcy5lcmdvVHJlZSxcbiAgICAgICAgICBvZmZzZXRcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZXJnb1RyZWUgJiYgdGhpcy50b2tlbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkuZ2V0Qm94ZXNCeVRva2VuSWQoXG4gICAgICAgICAgdGhpcy50b2tlbnNbMF0sXG4gICAgICAgICAgb2Zmc2V0XG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgcmV0dXJuO1xuICAgICAgYWxsQm94ZXMucHVzaCguLi5ib3hlcy5pdGVtcyk7XG4gICAgICB0b3RhbCA9IGJveGVzLnRvdGFsO1xuICAgICAgb2Zmc2V0ICs9IDEwMDtcbiAgICB9XG4gICAgLy8gMi4gRmlsdGVyIEJveGVzXG4gICAgY29uc3QgZXh0cmFjdGVkQm94ZXMgPSBhbGxCb3hlc1xuICAgICAgLmZpbHRlcigoYm94SnNvbikgPT4gYm94SnNvbi5zZXR0bGVtZW50SGVpZ2h0IDwgaW5pdGlhbEhlaWdodClcbiAgICAgIC5maWx0ZXIoKGJveEpzb24pID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBib3hUb2tlbnMgPSBib3hKc29uLmFzc2V0cy5tYXAoKHRva2VuKSA9PiB0b2tlbi50b2tlbklkKTtcbiAgICAgICAgICBjb25zdCByZXF1aXJlZFRva2VucyA9IHRoaXMudG9rZW5zLmZpbHRlcigodG9rZW4pID0+XG4gICAgICAgICAgICBib3hUb2tlbnMuaW5jbHVkZXModG9rZW4pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAocmVxdWlyZWRUb2tlbnMubGVuZ3RoIDwgdGhpcy50b2tlbnMubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KVxuICAgICAgLm1hcCgoYm94SnNvbikgPT4gdGhpcy5leHRyYWN0Qm94RnJvbUpzb24oYm94SnNvbikpO1xuICAgIC8vIDMuIFN0b3JlIEJveGVzXG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLnN0b3JlSW5pdGlhbEJveGVzKFxuICAgICAgZXh0cmFjdGVkQm94ZXMsXG4gICAgICBpbml0aWFsSGVpZ2h0LFxuICAgICAgdGhpcy5nZXRJZCgpXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -2,5 +2,7 @@ export default class ExtractedBox {
|
|
|
2
2
|
boxId;
|
|
3
3
|
address;
|
|
4
4
|
serialized;
|
|
5
|
+
blockId;
|
|
6
|
+
height;
|
|
5
7
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmFjdGVkQm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvRXh0cmFjdGVkQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBWTtJQUMvQixLQUFLLENBQVM7SUFDZCxPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFTO0lBQ25CLE9BQU8sQ0FBVTtJQUNqQixNQUFNLENBQVU7Q0FDakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBFeHRyYWN0ZWRCb3gge1xuICBib3hJZDogc3RyaW5nO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHNlcmlhbGl6ZWQ6IHN0cmluZztcbiAgYmxvY2tJZD86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare type Asset = {
|
|
2
|
+
tokenId: string;
|
|
3
|
+
index: number;
|
|
4
|
+
amount: bigint;
|
|
5
|
+
};
|
|
6
|
+
export interface ErgoBoxJson {
|
|
7
|
+
boxId: string;
|
|
8
|
+
address: string;
|
|
9
|
+
value: bigint;
|
|
10
|
+
blockId: string;
|
|
11
|
+
settlementHeight: number;
|
|
12
|
+
assets: Array<Asset>;
|
|
13
|
+
}
|
|
14
|
+
export interface Boxes {
|
|
15
|
+
items: Array<ErgoBoxJson>;
|
|
16
|
+
total: number;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,aAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBc3NldCA9IHtcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBhbW91bnQ6IGJpZ2ludDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJnb0JveEpzb24ge1xuICBib3hJZDogc3RyaW5nO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGJsb2NrSWQ6IHN0cmluZztcbiAgc2V0dGxlbWVudEhlaWdodDogbnVtYmVyO1xuICBhc3NldHM6IEFycmF5PEFzc2V0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb3hlcyB7XG4gIGl0ZW1zOiBBcnJheTxFcmdvQm94SnNvbj47XG4gIHRvdGFsOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { Boxes } from '../interfaces/types';
|
|
3
|
+
export declare class ExplorerApi {
|
|
4
|
+
api: AxiosInstance;
|
|
5
|
+
constructor(explorerAddress: string);
|
|
6
|
+
/**
|
|
7
|
+
* gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
|
|
8
|
+
* @param tree
|
|
9
|
+
* @param offset
|
|
10
|
+
* @param limit
|
|
11
|
+
*/
|
|
12
|
+
getBoxesForAddress: (tree: string, offset?: number, limit?: number) => Promise<Boxes>;
|
|
13
|
+
/**
|
|
14
|
+
* gets boxes containing tokenId
|
|
15
|
+
* @param tokenId the address ergoTree
|
|
16
|
+
* @param offset
|
|
17
|
+
* @param limit
|
|
18
|
+
*/
|
|
19
|
+
getBoxesByTokenId: (tokenId: string, offset?: number, limit?: number) => Promise<Boxes>;
|
|
20
|
+
}
|
|
21
|
+
//# 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;AAG5C,qBAAa,WAAW;IACtB,GAAG,EAAE,aAAa,CAAC;gBAEP,eAAe,EAAE,MAAM;IAOnC;;;;;OAKG;IACH,kBAAkB,SACV,MAAM,sCAGX,QAAQ,KAAK,CAAC,CAOf;IAEF;;;;;OAKG;IACH,iBAAiB,YACN,MAAM,sCAGd,QAAQ,KAAK,CAAC,CAgBf;CACH"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { JsonBI } from './parser';
|
|
3
|
+
export class ExplorerApi {
|
|
4
|
+
api;
|
|
5
|
+
constructor(explorerAddress) {
|
|
6
|
+
this.api = axios.create({
|
|
7
|
+
baseURL: explorerAddress,
|
|
8
|
+
timeout: 10000,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
|
|
13
|
+
* @param tree
|
|
14
|
+
* @param offset
|
|
15
|
+
* @param limit
|
|
16
|
+
*/
|
|
17
|
+
getBoxesForAddress = async (tree, offset = 0, limit = 100) => {
|
|
18
|
+
return this.api
|
|
19
|
+
.get(`/api/v1/boxes/unspent/byErgoTree/${tree}`, {
|
|
20
|
+
params: { offset: offset, limit: limit },
|
|
21
|
+
transformResponse: (data) => JsonBI.parse(data),
|
|
22
|
+
})
|
|
23
|
+
.then((res) => res.data);
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* gets boxes containing tokenId
|
|
27
|
+
* @param tokenId the address ergoTree
|
|
28
|
+
* @param offset
|
|
29
|
+
* @param limit
|
|
30
|
+
*/
|
|
31
|
+
getBoxesByTokenId = async (tokenId, offset = 0, limit = 100) => {
|
|
32
|
+
return this.api
|
|
33
|
+
.get(`/v1/boxes/unspent/byTokenId/${tokenId}`, {
|
|
34
|
+
params: { offset: offset, limit: limit },
|
|
35
|
+
transformResponse: (data) => JsonBI.parse(data),
|
|
36
|
+
})
|
|
37
|
+
.then((res) => res.data)
|
|
38
|
+
.catch((e) => {
|
|
39
|
+
console.log(`An error occurred while getting boxes containing token [${tokenId}] from Ergo Explorer: [${e}]`);
|
|
40
|
+
return {
|
|
41
|
+
items: [],
|
|
42
|
+
total: 0,
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb05ldHdvcmtBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9lcmdvTmV0d29ya0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLFdBQVc7SUFDdEIsR0FBRyxDQUFnQjtJQUVuQixZQUFZLGVBQXVCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFDeEIsSUFBWSxFQUNaLE1BQU0sR0FBRyxDQUFDLEVBQ1YsS0FBSyxHQUFHLEdBQUcsRUFDSyxFQUFFO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUc7YUFDWixHQUFHLENBQVEsb0NBQW9DLElBQUksRUFBRSxFQUFFO1lBQ3RELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUN4QyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDaEQsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixPQUFlLEVBQ2YsTUFBTSxHQUFHLENBQUMsRUFDVixLQUFLLEdBQUcsR0FBRyxFQUNLLEVBQUU7UUFDbEIsT0FBTyxJQUFJLENBQUMsR0FBRzthQUNaLEdBQUcsQ0FBUSwrQkFBK0IsT0FBTyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ3hDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNoRCxDQUFDO2FBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQ3ZCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FDVCwyREFBMkQsT0FBTywwQkFBMEIsQ0FBQyxHQUFHLENBQ2pHLENBQUM7WUFDRixPQUFPO2dCQUNMLEtBQUssRUFBRSxFQUFFO2dCQUNULEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IEJveGVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBKc29uQkkgfSBmcm9tICcuL3BhcnNlcic7XG5cbmV4cG9ydCBjbGFzcyBFeHBsb3JlckFwaSB7XG4gIGFwaTogQXhpb3NJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcihleHBsb3JlckFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuYXBpID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGV4cGxvcmVyQWRkcmVzcyxcbiAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldHMgdW5zcGVudCBib3hlcyBmb3IgYSBzcGVjaWZpYyBlcmdvdHJlZSB3aXRoIGRlZmF1bHQgbGltaXQgb2YgMTAwIGFuZCBvZmZzZXQgMFxuICAgKiBAcGFyYW0gdHJlZVxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKi9cbiAgZ2V0Qm94ZXNGb3JBZGRyZXNzID0gYXN5bmMgKFxuICAgIHRyZWU6IHN0cmluZyxcbiAgICBvZmZzZXQgPSAwLFxuICAgIGxpbWl0ID0gMTAwXG4gICk6IFByb21pc2U8Qm94ZXM+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlcbiAgICAgIC5nZXQ8Qm94ZXM+KGAvYXBpL3YxL2JveGVzL3Vuc3BlbnQvYnlFcmdvVHJlZS8ke3RyZWV9YCwge1xuICAgICAgICBwYXJhbXM6IHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBsaW1pdCB9LFxuICAgICAgICB0cmFuc2Zvcm1SZXNwb25zZTogKGRhdGEpID0+IEpzb25CSS5wYXJzZShkYXRhKSxcbiAgICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuZGF0YSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgYm94ZXMgY29udGFpbmluZyB0b2tlbklkXG4gICAqIEBwYXJhbSB0b2tlbklkIHRoZSBhZGRyZXNzIGVyZ29UcmVlXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBnZXRCb3hlc0J5VG9rZW5JZCA9IGFzeW5jIChcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgb2Zmc2V0ID0gMCxcbiAgICBsaW1pdCA9IDEwMFxuICApOiBQcm9taXNlPEJveGVzPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpXG4gICAgICAuZ2V0PEJveGVzPihgL3YxL2JveGVzL3Vuc3BlbnQvYnlUb2tlbklkLyR7dG9rZW5JZH1gLCB7XG4gICAgICAgIHBhcmFtczogeyBvZmZzZXQ6IG9mZnNldCwgbGltaXQ6IGxpbWl0IH0sXG4gICAgICAgIHRyYW5zZm9ybVJlc3BvbnNlOiAoZGF0YSkgPT4gSnNvbkJJLnBhcnNlKGRhdGEpLFxuICAgICAgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhKVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIGJveGVzIGNvbnRhaW5pbmcgdG9rZW4gWyR7dG9rZW5JZH1dIGZyb20gRXJnbyBFeHBsb3JlcjogWyR7ZX1dYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9O1xufVxuIl19
|
|
@@ -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;;;;;;CAGjB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import JSONBigInt from 'json-bigint';
|
|
2
|
+
export const JsonBI = JSONBigInt({
|
|
3
|
+
useNativeBigInt: true,
|
|
4
|
+
alwaysParseAsBig: true,
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL25ldHdvcmsvcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGdCQUFnQixFQUFFLElBQUk7Q0FDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEpTT05CaWdJbnQgZnJvbSAnanNvbi1iaWdpbnQnO1xuXG5leHBvcnQgY29uc3QgSnNvbkJJID0gSlNPTkJpZ0ludCh7XG4gIHVzZU5hdGl2ZUJpZ0ludDogdHJ1ZSxcbiAgYWx3YXlzUGFyc2VBc0JpZzogdHJ1ZSxcbn0pO1xuIl19
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosen-bridge/address-extractor",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"description": "UTXO box extractor for any address or token.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"prettify": "prettier --write . --ignore-path ../../.gitignore",
|
|
12
12
|
"lint": "eslint --fix . && npm run prettify",
|
|
13
13
|
"test": "rimraf sqlite && jest --detectOpenHandles ; rimraf sqlite",
|
|
14
|
-
"coverage": "
|
|
14
|
+
"coverage": "rimraf sqlite && jest --detectOpenHandles --coverage; rimraf sqlite",
|
|
15
15
|
"build": "tsc --build",
|
|
16
16
|
"type-check": "tsc --noEmit",
|
|
17
17
|
"release": "npm run test && npm run build && npm publish --access public"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"author": "Vorujack",
|
|
20
20
|
"license": "GPL-3.0",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@rosen-bridge/scanner": "^0.2.
|
|
22
|
+
"@rosen-bridge/scanner": "^0.2.2",
|
|
23
23
|
"blakejs": "^1.2.1",
|
|
24
24
|
"ergo-lib-wasm-nodejs": "^0.18.0",
|
|
25
25
|
"reflect-metadata": "^0.1.13",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@babel/preset-env": "^7.19.0",
|
|
32
32
|
"@types/jest": "^28.1.6",
|
|
33
|
+
"@types/json-bigint": "^1.0.1",
|
|
33
34
|
"@types/node": "^18.0.6",
|
|
34
35
|
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
35
36
|
"@typescript-eslint/parser": "^5.26.0",
|
|
@@ -37,6 +38,7 @@
|
|
|
37
38
|
"eslint": "^8.16.0",
|
|
38
39
|
"eslint-config-prettier": "^8.5.0",
|
|
39
40
|
"jest": "^28.1.3",
|
|
41
|
+
"json-bigint": "^1.0.0",
|
|
40
42
|
"prettier": "2.7.1",
|
|
41
43
|
"rimraf": "^3.0.2",
|
|
42
44
|
"ts-jest": "^28.0.7",
|