@rosen-bridge/abstract-observation-extractor 0.1.0-52fc0239
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/README.md +48 -0
- package/dist/actions/db.d.ts +19 -0
- package/dist/actions/db.d.ts.map +1 -0
- package/dist/actions/db.js +86 -0
- package/dist/entities/observationEntity.d.ts +19 -0
- package/dist/entities/observationEntity.d.ts.map +1 -0
- package/dist/entities/observationEntity.js +102 -0
- package/dist/extractor/AbstractObservationExtractor.d.ts +42 -0
- package/dist/extractor/AbstractObservationExtractor.d.ts.map +1 -0
- package/dist/extractor/AbstractObservationExtractor.js +65 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/interfaces/extractedObservation.d.ts +15 -0
- package/dist/interfaces/extractedObservation.d.ts.map +1 -0
- package/dist/interfaces/extractedObservation.js +2 -0
- package/dist/migrations/index.d.ts +7 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +7 -0
- package/dist/migrations/postgres/1688545935708-migration.d.ts +7 -0
- package/dist/migrations/postgres/1688545935708-migration.d.ts.map +1 -0
- package/dist/migrations/postgres/1688545935708-migration.js +33 -0
- package/dist/migrations/sqlite/1688555621494-migration.d.ts +7 -0
- package/dist/migrations/sqlite/1688555621494-migration.d.ts.map +1 -0
- package/dist/migrations/sqlite/1688555621494-migration.js +32 -0
- package/package.json +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Abstract Observation Extractor
|
|
2
|
+
|
|
3
|
+
### Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Description](#description)
|
|
6
|
+
- [Related Projects](#related-projects)
|
|
7
|
+
- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)
|
|
8
|
+
- [Install](#install)
|
|
9
|
+
- [Usage](#usage)
|
|
10
|
+
- [Contributing](#contributing)
|
|
11
|
+
- [License](#license)
|
|
12
|
+
|
|
13
|
+
<a name="headers"/>
|
|
14
|
+
|
|
15
|
+
## Description
|
|
16
|
+
|
|
17
|
+
Data extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.
|
|
18
|
+
|
|
19
|
+
## Related Projects
|
|
20
|
+
|
|
21
|
+
This module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.
|
|
22
|
+
|
|
23
|
+
## How to Use the Observation Extractor
|
|
24
|
+
|
|
25
|
+
### Install
|
|
26
|
+
|
|
27
|
+
This project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:
|
|
28
|
+
|
|
29
|
+
```shell
|
|
30
|
+
npm install @rosen-bridge/abstract-observation-extractor
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Alternatively, you can build and use it manually by cloning the project and running:
|
|
34
|
+
|
|
35
|
+
```shell
|
|
36
|
+
npm install
|
|
37
|
+
npm run build
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Usage
|
|
41
|
+
|
|
42
|
+
## Contributing
|
|
43
|
+
|
|
44
|
+
TBD
|
|
45
|
+
|
|
46
|
+
## License
|
|
47
|
+
|
|
48
|
+
TBD
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
2
|
+
import { ExtractedObservation } from '../interfaces/extractedObservation';
|
|
3
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
4
|
+
import { Block } from '@rosen-bridge/scanner-interfaces';
|
|
5
|
+
export declare class ObservationEntityAction {
|
|
6
|
+
readonly logger: AbstractLogger;
|
|
7
|
+
private readonly datasource;
|
|
8
|
+
private readonly observationRepository;
|
|
9
|
+
constructor(dataSource: DataSource, logger?: AbstractLogger);
|
|
10
|
+
/**
|
|
11
|
+
* It stores list of observations in the dataSource with block id
|
|
12
|
+
* @param observations
|
|
13
|
+
* @param block
|
|
14
|
+
* @param extractor
|
|
15
|
+
*/
|
|
16
|
+
storeObservations: (observations: Array<ExtractedObservation>, block: Block, extractor: string) => Promise<boolean>;
|
|
17
|
+
deleteBlockObservation: (block: string, extractor: string) => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# 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,EAAkB,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,qBAAa,uBAAuB;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgC;gBAE1D,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAM3D;;;;;OAKG;IACH,iBAAiB,iBACD,MAAM,oBAAoB,CAAC,SAClC,KAAK,aACD,MAAM,sBAkEjB;IAEF,sBAAsB,UAAiB,MAAM,aAAa,MAAM,mBAQ9D;CACH"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ObservationEntity } from '../entities/observationEntity';
|
|
2
|
+
import { In } from '@rosen-bridge/extended-typeorm';
|
|
3
|
+
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
4
|
+
export class ObservationEntityAction {
|
|
5
|
+
logger;
|
|
6
|
+
datasource;
|
|
7
|
+
observationRepository;
|
|
8
|
+
constructor(dataSource, logger) {
|
|
9
|
+
this.datasource = dataSource;
|
|
10
|
+
this.observationRepository = dataSource.getRepository(ObservationEntity);
|
|
11
|
+
this.logger = logger ? logger : new DummyLogger();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* It stores list of observations in the dataSource with block id
|
|
15
|
+
* @param observations
|
|
16
|
+
* @param block
|
|
17
|
+
* @param extractor
|
|
18
|
+
*/
|
|
19
|
+
storeObservations = async (observations, block, extractor) => {
|
|
20
|
+
if (observations.length === 0)
|
|
21
|
+
return true;
|
|
22
|
+
const requestIds = observations.map((item) => item.requestId);
|
|
23
|
+
const savedObservations = await this.observationRepository.findBy({
|
|
24
|
+
requestId: In(requestIds),
|
|
25
|
+
extractor: extractor,
|
|
26
|
+
});
|
|
27
|
+
let success = true;
|
|
28
|
+
const queryRunner = this.datasource.createQueryRunner();
|
|
29
|
+
await queryRunner.connect();
|
|
30
|
+
await queryRunner.startTransaction();
|
|
31
|
+
const repository = await queryRunner.manager.getRepository(ObservationEntity);
|
|
32
|
+
try {
|
|
33
|
+
for (const observation of observations) {
|
|
34
|
+
const saved = savedObservations.some((entity) => {
|
|
35
|
+
return entity.requestId === observation.requestId;
|
|
36
|
+
});
|
|
37
|
+
const entity = {
|
|
38
|
+
block: block.hash,
|
|
39
|
+
height: block.height,
|
|
40
|
+
bridgeFee: observation.bridgeFee,
|
|
41
|
+
amount: observation.amount,
|
|
42
|
+
fromAddress: observation.fromAddress,
|
|
43
|
+
fromChain: observation.fromChain,
|
|
44
|
+
networkFee: observation.networkFee,
|
|
45
|
+
requestId: observation.requestId,
|
|
46
|
+
sourceBlockId: observation.sourceBlockId,
|
|
47
|
+
sourceTxId: observation.sourceTxId,
|
|
48
|
+
toChain: observation.toChain,
|
|
49
|
+
sourceChainTokenId: observation.sourceChainTokenId,
|
|
50
|
+
targetChainTokenId: observation.targetChainTokenId,
|
|
51
|
+
toAddress: observation.toAddress,
|
|
52
|
+
extractor: extractor,
|
|
53
|
+
};
|
|
54
|
+
if (!saved) {
|
|
55
|
+
this.logger.info(`Storing observation for event ${observation.requestId} in blockHeight ${block.height} and extractor ${extractor}`);
|
|
56
|
+
await repository.insert(entity);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.logger.info(`Updating observation for event ${observation.requestId} in blockHeight ${block.height} and extractor ${extractor}`);
|
|
60
|
+
await repository.update({
|
|
61
|
+
requestId: observation.requestId,
|
|
62
|
+
}, entity);
|
|
63
|
+
}
|
|
64
|
+
this.logger.debug(`Entity ${JSON.stringify(entity)}`);
|
|
65
|
+
}
|
|
66
|
+
await queryRunner.commitTransaction();
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
this.logger.error(`An error occurred during store observation action: ${e}`);
|
|
70
|
+
await queryRunner.rollbackTransaction();
|
|
71
|
+
success = false;
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
await queryRunner.release();
|
|
75
|
+
}
|
|
76
|
+
return success;
|
|
77
|
+
};
|
|
78
|
+
deleteBlockObservation = async (block, extractor) => {
|
|
79
|
+
this.logger.info(`Deleting observations in block ${block} and extractor ${extractor}`);
|
|
80
|
+
await this.observationRepository.delete({
|
|
81
|
+
block: block,
|
|
82
|
+
extractor: extractor,
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQWMsRUFBRSxFQUFjLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUUsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc1RSxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBaUI7SUFDZixVQUFVLENBQWE7SUFDdkIscUJBQXFCLENBQWdDO0lBRXRFLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixZQUF5QyxFQUN6QyxLQUFZLEVBQ1osU0FBaUIsRUFDakIsRUFBRTtRQUNGLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3pCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUNI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LFNBQVMsRUFBRSxDQUNyRSxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1lBQ3RDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhdGlvbkVudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzL29ic2VydmF0aW9uRW50aXR5JztcbmltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEV4dHJhY3RlZE9ic2VydmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRPYnNlcnZhdGlvbic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNsYXNzIE9ic2VydmF0aW9uRW50aXR5QWN0aW9uIHtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhc291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9ic2VydmF0aW9uUmVwb3NpdG9yeTogUmVwb3NpdG9yeTxPYnNlcnZhdGlvbkVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMub2JzZXJ2YXRpb25SZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KE9ic2VydmF0aW9uRW50aXR5KTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHN0b3JlcyBsaXN0IG9mIG9ic2VydmF0aW9ucyBpbiB0aGUgZGF0YVNvdXJjZSB3aXRoIGJsb2NrIGlkXG4gICAqIEBwYXJhbSBvYnNlcnZhdGlvbnNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlT2JzZXJ2YXRpb25zID0gYXN5bmMgKFxuICAgIG9ic2VydmF0aW9uczogQXJyYXk8RXh0cmFjdGVkT2JzZXJ2YXRpb24+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBpZiAob2JzZXJ2YXRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgcmVxdWVzdElkcyA9IG9ic2VydmF0aW9ucy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVxdWVzdElkKTtcbiAgICBjb25zdCBzYXZlZE9ic2VydmF0aW9ucyA9IGF3YWl0IHRoaXMub2JzZXJ2YXRpb25SZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICByZXF1ZXN0SWQ6IEluKHJlcXVlc3RJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFxuICAgICAgT2JzZXJ2YXRpb25FbnRpdHlcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IG9ic2VydmF0aW9uIG9mIG9ic2VydmF0aW9ucykge1xuICAgICAgICBjb25zdCBzYXZlZCA9IHNhdmVkT2JzZXJ2YXRpb25zLnNvbWUoKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRpdHkucmVxdWVzdElkID09PSBvYnNlcnZhdGlvbi5yZXF1ZXN0SWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgYnJpZGdlRmVlOiBvYnNlcnZhdGlvbi5icmlkZ2VGZWUsXG4gICAgICAgICAgYW1vdW50OiBvYnNlcnZhdGlvbi5hbW91bnQsXG4gICAgICAgICAgZnJvbUFkZHJlc3M6IG9ic2VydmF0aW9uLmZyb21BZGRyZXNzLFxuICAgICAgICAgIGZyb21DaGFpbjogb2JzZXJ2YXRpb24uZnJvbUNoYWluLFxuICAgICAgICAgIG5ldHdvcmtGZWU6IG9ic2VydmF0aW9uLm5ldHdvcmtGZWUsXG4gICAgICAgICAgcmVxdWVzdElkOiBvYnNlcnZhdGlvbi5yZXF1ZXN0SWQsXG4gICAgICAgICAgc291cmNlQmxvY2tJZDogb2JzZXJ2YXRpb24uc291cmNlQmxvY2tJZCxcbiAgICAgICAgICBzb3VyY2VUeElkOiBvYnNlcnZhdGlvbi5zb3VyY2VUeElkLFxuICAgICAgICAgIHRvQ2hhaW46IG9ic2VydmF0aW9uLnRvQ2hhaW4sXG4gICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBvYnNlcnZhdGlvbi5zb3VyY2VDaGFpblRva2VuSWQsXG4gICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBvYnNlcnZhdGlvbi50YXJnZXRDaGFpblRva2VuSWQsXG4gICAgICAgICAgdG9BZGRyZXNzOiBvYnNlcnZhdGlvbi50b0FkZHJlc3MsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghc2F2ZWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFN0b3Jpbmcgb2JzZXJ2YXRpb24gZm9yIGV2ZW50ICR7b2JzZXJ2YXRpb24ucmVxdWVzdElkfSBpbiBibG9ja0hlaWdodCAke2Jsb2NrLmhlaWdodH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgVXBkYXRpbmcgb2JzZXJ2YXRpb24gZm9yIGV2ZW50ICR7b2JzZXJ2YXRpb24ucmVxdWVzdElkfSBpbiBibG9ja0hlaWdodCAke2Jsb2NrLmhlaWdodH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCByZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVxdWVzdElkOiBvYnNlcnZhdGlvbi5yZXF1ZXN0SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW50aXR5XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRW50aXR5ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5KX1gKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgb2JzZXJ2YXRpb24gYWN0aW9uOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfTtcblxuICBkZWxldGVCbG9ja09ic2VydmF0aW9uID0gYXN5bmMgKGJsb2NrOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBEZWxldGluZyBvYnNlcnZhdGlvbnMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLm9ic2VydmF0aW9uUmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class ObservationEntity {
|
|
2
|
+
id: number;
|
|
3
|
+
fromChain: string;
|
|
4
|
+
toChain: string;
|
|
5
|
+
fromAddress: string;
|
|
6
|
+
toAddress: string;
|
|
7
|
+
height: number;
|
|
8
|
+
amount: string;
|
|
9
|
+
networkFee: string;
|
|
10
|
+
bridgeFee: string;
|
|
11
|
+
sourceChainTokenId: string;
|
|
12
|
+
targetChainTokenId: string;
|
|
13
|
+
sourceTxId: string;
|
|
14
|
+
sourceBlockId: string;
|
|
15
|
+
requestId: string;
|
|
16
|
+
block: string;
|
|
17
|
+
extractor: string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=observationEntity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observationEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/observationEntity.ts"],"names":[],"mappings":"AAEA,qBAEa,iBAAiB;IAE5B,EAAE,EAAE,MAAM,CAAC;IAKX,SAAS,EAAE,MAAM,CAAC;IAKlB,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IAGtB,SAAS,EAAE,MAAM,CAAC;IAGlB,KAAK,EAAE,MAAM,CAAC;IAGd,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
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, Unique } from '@rosen-bridge/extended-typeorm';
|
|
11
|
+
let ObservationEntity = class ObservationEntity {
|
|
12
|
+
id;
|
|
13
|
+
fromChain;
|
|
14
|
+
toChain;
|
|
15
|
+
fromAddress;
|
|
16
|
+
toAddress;
|
|
17
|
+
height;
|
|
18
|
+
amount;
|
|
19
|
+
networkFee;
|
|
20
|
+
bridgeFee;
|
|
21
|
+
sourceChainTokenId;
|
|
22
|
+
targetChainTokenId;
|
|
23
|
+
sourceTxId;
|
|
24
|
+
sourceBlockId;
|
|
25
|
+
requestId;
|
|
26
|
+
block;
|
|
27
|
+
extractor;
|
|
28
|
+
};
|
|
29
|
+
__decorate([
|
|
30
|
+
PrimaryGeneratedColumn(),
|
|
31
|
+
__metadata("design:type", Number)
|
|
32
|
+
], ObservationEntity.prototype, "id", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
Column({
|
|
35
|
+
length: 30,
|
|
36
|
+
}),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], ObservationEntity.prototype, "fromChain", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
Column({
|
|
41
|
+
length: 30,
|
|
42
|
+
}),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], ObservationEntity.prototype, "toChain", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
Column(),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], ObservationEntity.prototype, "fromAddress", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
Column(),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], ObservationEntity.prototype, "toAddress", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
Column(),
|
|
55
|
+
__metadata("design:type", Number)
|
|
56
|
+
], ObservationEntity.prototype, "height", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
Column(),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], ObservationEntity.prototype, "amount", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
Column(),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], ObservationEntity.prototype, "networkFee", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
Column(),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], ObservationEntity.prototype, "bridgeFee", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
Column(),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], ObservationEntity.prototype, "sourceChainTokenId", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
Column(),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], ObservationEntity.prototype, "targetChainTokenId", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
Column(),
|
|
79
|
+
__metadata("design:type", String)
|
|
80
|
+
], ObservationEntity.prototype, "sourceTxId", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Column(),
|
|
83
|
+
__metadata("design:type", String)
|
|
84
|
+
], ObservationEntity.prototype, "sourceBlockId", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
Column(),
|
|
87
|
+
__metadata("design:type", String)
|
|
88
|
+
], ObservationEntity.prototype, "requestId", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
Column(),
|
|
91
|
+
__metadata("design:type", String)
|
|
92
|
+
], ObservationEntity.prototype, "block", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
Column(),
|
|
95
|
+
__metadata("design:type", String)
|
|
96
|
+
], ObservationEntity.prototype, "extractor", void 0);
|
|
97
|
+
ObservationEntity = __decorate([
|
|
98
|
+
Entity('observation_entity'),
|
|
99
|
+
Unique(['requestId', 'extractor'])
|
|
100
|
+
], ObservationEntity);
|
|
101
|
+
export { ObservationEntity };
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YXRpb25FbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZW50aXRpZXMvb2JzZXJ2YXRpb25FbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJekYsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFFNUIsRUFBRSxDQUFTO0lBS1gsU0FBUyxDQUFTO0lBS2xCLE9BQU8sQ0FBUztJQUdoQixXQUFXLENBQVM7SUFHcEIsU0FBUyxDQUFTO0lBR2xCLE1BQU0sQ0FBUztJQUdmLE1BQU0sQ0FBUztJQUdmLFVBQVUsQ0FBUztJQUduQixTQUFTLENBQVM7SUFHbEIsa0JBQWtCLENBQVM7SUFHM0Isa0JBQWtCLENBQVM7SUFHM0IsVUFBVSxDQUFTO0lBR25CLGFBQWEsQ0FBUztJQUd0QixTQUFTLENBQVM7SUFHbEIsS0FBSyxDQUFTO0lBR2QsU0FBUyxDQUFTO0NBQ25CLENBQUE7QUFuREM7SUFBQyxzQkFBc0IsRUFBRTs7NkNBQ2Q7QUFFWDtJQUFDLE1BQU0sQ0FBQztRQUNOLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQzs7b0RBQ2dCO0FBRWxCO0lBQUMsTUFBTSxDQUFDO1FBQ04sTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDOztrREFDYztBQUVoQjtJQUFDLE1BQU0sRUFBRTs7c0RBQ1c7QUFFcEI7SUFBQyxNQUFNLEVBQUU7O29EQUNTO0FBRWxCO0lBQUMsTUFBTSxFQUFFOztpREFDTTtBQUVmO0lBQUMsTUFBTSxFQUFFOztpREFDTTtBQUVmO0lBQUMsTUFBTSxFQUFFOztxREFDVTtBQUVuQjtJQUFDLE1BQU0sRUFBRTs7b0RBQ1M7QUFFbEI7SUFBQyxNQUFNLEVBQUU7OzZEQUNrQjtBQUUzQjtJQUFDLE1BQU0sRUFBRTs7NkRBQ2tCO0FBRTNCO0lBQUMsTUFBTSxFQUFFOztxREFDVTtBQUVuQjtJQUFDLE1BQU0sRUFBRTs7d0RBQ2E7QUFFdEI7SUFBQyxNQUFNLEVBQUU7O29EQUNTO0FBRWxCO0lBQUMsTUFBTSxFQUFFOztnREFDSztBQUVkO0lBQUMsTUFBTSxFQUFFOztvREFDUztBQW5EUCxpQkFBaUI7SUFGN0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDO0lBQzVCLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztHQUN0QixpQkFBaUIsQ0FvRDdCO1NBcERZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uLCBVbmlxdWUgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5ARW50aXR5KCdvYnNlcnZhdGlvbl9lbnRpdHknKVxuQFVuaXF1ZShbJ3JlcXVlc3RJZCcsICdleHRyYWN0b3InXSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZhdGlvbkVudGl0eSB7XG4gIEBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uKClcbiAgaWQ6IG51bWJlcjtcblxuICBAQ29sdW1uKHtcbiAgICBsZW5ndGg6IDMwLFxuICB9KVxuICBmcm9tQ2hhaW46IHN0cmluZztcblxuICBAQ29sdW1uKHtcbiAgICBsZW5ndGg6IDMwLFxuICB9KVxuICB0b0NoYWluOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGZyb21BZGRyZXNzOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIHRvQWRkcmVzczogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBoZWlnaHQ6IG51bWJlcjtcblxuICBAQ29sdW1uKClcbiAgYW1vdW50OiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIG5ldHdvcmtGZWU6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgYnJpZGdlRmVlOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIHNvdXJjZUNoYWluVG9rZW5JZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICB0YXJnZXRDaGFpblRva2VuSWQ6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgc291cmNlVHhJZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBzb3VyY2VCbG9ja0lkOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBibG9jazogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBleHRyYWN0b3I6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
2
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
3
|
+
import { TokenMap } from '@rosen-bridge/tokens';
|
|
4
|
+
import { AbstractRosenDataExtractor } from '@rosen-bridge/rosen-extractor';
|
|
5
|
+
import { Block } from '@rosen-bridge/scanner-interfaces';
|
|
6
|
+
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
7
|
+
import { ObservationEntityAction } from '../actions/db';
|
|
8
|
+
export declare abstract class AbstractObservationExtractor<TransactionType> extends AbstractExtractor<TransactionType> {
|
|
9
|
+
protected readonly logger: AbstractLogger;
|
|
10
|
+
protected readonly dataSource: DataSource;
|
|
11
|
+
protected readonly tokens: TokenMap;
|
|
12
|
+
protected readonly actions: ObservationEntityAction;
|
|
13
|
+
protected extractor: AbstractRosenDataExtractor<TransactionType>;
|
|
14
|
+
abstract readonly FROM_CHAIN: string;
|
|
15
|
+
constructor(dataSource: DataSource, tokens: TokenMap, extractor: AbstractRosenDataExtractor<TransactionType>, logger?: AbstractLogger);
|
|
16
|
+
/**
|
|
17
|
+
* gets Id for current extractor
|
|
18
|
+
*/
|
|
19
|
+
abstract getId: () => string;
|
|
20
|
+
/**
|
|
21
|
+
* gets transaction id from TransactionType
|
|
22
|
+
*/
|
|
23
|
+
abstract getTxId: (tx: TransactionType) => string;
|
|
24
|
+
/**
|
|
25
|
+
* gets block id and transactions corresponding to the block and saves if they are valid rosen
|
|
26
|
+
* transactions and in case of success return true and in case of failure returns false
|
|
27
|
+
* @param block
|
|
28
|
+
* @param txs
|
|
29
|
+
*/
|
|
30
|
+
processTransactions: (txs: Array<TransactionType>, block: Block) => Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* fork one block and remove all stored information for this block
|
|
33
|
+
* @param hash: block hash
|
|
34
|
+
*/
|
|
35
|
+
forkBlock: (hash: string) => Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Extractor box initialization
|
|
38
|
+
* No action needed in observation extractors
|
|
39
|
+
*/
|
|
40
|
+
initializeBoxes: () => Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=AbstractObservationExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractObservationExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/AbstractObservationExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,8BAAsB,4BAA4B,CAChD,eAAe,CACf,SAAQ,iBAAiB,CAAC,eAAe,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IACpD,SAAS,CAAC,SAAS,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAGnC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,0BAA0B,CAAC,eAAe,CAAC,EACtD,MAAM,CAAC,EAAE,cAAc;IAUzB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,MAAM,CAAC;IAElD;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,eAAe,CAAC,SACpB,KAAK,KACX,QAAQ,OAAO,CAAC,CAyBjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
import { blake2b } from 'blakejs';
|
|
3
|
+
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
4
|
+
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
5
|
+
import { ObservationEntityAction } from '../actions/db';
|
|
6
|
+
export class AbstractObservationExtractor extends AbstractExtractor {
|
|
7
|
+
logger;
|
|
8
|
+
dataSource;
|
|
9
|
+
tokens;
|
|
10
|
+
actions;
|
|
11
|
+
extractor;
|
|
12
|
+
constructor(dataSource, tokens, extractor, logger) {
|
|
13
|
+
super();
|
|
14
|
+
this.dataSource = dataSource;
|
|
15
|
+
this.tokens = tokens;
|
|
16
|
+
this.logger = logger ? logger : new DummyLogger();
|
|
17
|
+
this.actions = new ObservationEntityAction(dataSource, this.logger);
|
|
18
|
+
this.extractor = extractor;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* gets block id and transactions corresponding to the block and saves if they are valid rosen
|
|
22
|
+
* transactions and in case of success return true and in case of failure returns false
|
|
23
|
+
* @param block
|
|
24
|
+
* @param txs
|
|
25
|
+
*/
|
|
26
|
+
processTransactions = (txs, block) => {
|
|
27
|
+
const observations = [];
|
|
28
|
+
txs.forEach((transaction) => {
|
|
29
|
+
const data = this.extractor.get(transaction);
|
|
30
|
+
if (data) {
|
|
31
|
+
const requestId = Buffer.from(blake2b(this.getTxId(transaction), undefined, 32)).toString('hex');
|
|
32
|
+
observations.push({
|
|
33
|
+
fromChain: this.FROM_CHAIN,
|
|
34
|
+
toChain: data.toChain,
|
|
35
|
+
amount: data.amount,
|
|
36
|
+
sourceChainTokenId: data.sourceChainTokenId,
|
|
37
|
+
targetChainTokenId: data.targetChainTokenId,
|
|
38
|
+
sourceTxId: data.sourceTxId,
|
|
39
|
+
bridgeFee: data.bridgeFee,
|
|
40
|
+
networkFee: data.networkFee,
|
|
41
|
+
sourceBlockId: block.hash,
|
|
42
|
+
requestId: requestId,
|
|
43
|
+
toAddress: data.toAddress,
|
|
44
|
+
fromAddress: data.fromAddress,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return this.actions.storeObservations(observations, block, this.getId());
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* fork one block and remove all stored information for this block
|
|
52
|
+
* @param hash: block hash
|
|
53
|
+
*/
|
|
54
|
+
forkBlock = async (hash) => {
|
|
55
|
+
await this.actions.deleteBlockObservation(hash, this.getId());
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Extractor box initialization
|
|
59
|
+
* No action needed in observation extractors
|
|
60
|
+
*/
|
|
61
|
+
initializeBoxes = async () => {
|
|
62
|
+
return;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RPYnNlcnZhdGlvbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvQWJzdHJhY3RPYnNlcnZhdGlvbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUk1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEQsTUFBTSxPQUFnQiw0QkFFcEIsU0FBUSxpQkFBa0M7SUFDdkIsTUFBTSxDQUFpQjtJQUN2QixVQUFVLENBQWE7SUFDdkIsTUFBTSxDQUFXO0lBQ2pCLE9BQU8sQ0FBMEI7SUFDMUMsU0FBUyxDQUE4QztJQUdqRSxZQUNFLFVBQXNCLEVBQ3RCLE1BQWdCLEVBQ2hCLFNBQXNELEVBQ3RELE1BQXVCO1FBRXZCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQXVCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBWUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsR0FBRyxDQUNwQixHQUEyQixFQUMzQixLQUFZLEVBQ00sRUFBRTtRQUNwQixNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO1FBQ3JELEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3QyxJQUFJLElBQUksRUFBRTtnQkFDUixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQ2xELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQixZQUFZLENBQUMsSUFBSSxDQUFDO29CQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO29CQUMzQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO29CQUMzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUMzQixhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ3pCLFNBQVMsRUFBRSxTQUFTO29CQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7b0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFpQixFQUFFO1FBQ2hELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsZUFBZSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQzNCLE9BQU87SUFDVCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IGJsYWtlMmIgfSBmcm9tICdibGFrZWpzJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Jvc2VuLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHlBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zL2RiJztcbmltcG9ydCB7IEV4dHJhY3RlZE9ic2VydmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRPYnNlcnZhdGlvbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE9ic2VydmF0aW9uRXh0cmFjdG9yPFxuICBUcmFuc2FjdGlvblR5cGVcbj4gZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvblR5cGU+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5zOiBUb2tlbk1hcDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGlvbnM6IE9ic2VydmF0aW9uRW50aXR5QWN0aW9uO1xuICBwcm90ZWN0ZWQgZXh0cmFjdG9yOiBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxUcmFuc2FjdGlvblR5cGU+O1xuICBhYnN0cmFjdCByZWFkb25seSBGUk9NX0NIQUlOOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGV4dHJhY3RvcjogQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPixcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgT2JzZXJ2YXRpb25FbnRpdHlBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXh0cmFjdG9yID0gZXh0cmFjdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldHMgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBhYnN0cmFjdCBnZXRJZDogKCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBnZXRzIHRyYW5zYWN0aW9uIGlkIGZyb20gVHJhbnNhY3Rpb25UeXBlXG4gICAqL1xuICBhYnN0cmFjdCBnZXRUeElkOiAodHg6IFRyYW5zYWN0aW9uVHlwZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvblR5cGU+LFxuICAgIGJsb2NrOiBCbG9ja1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCBvYnNlcnZhdGlvbnM6IEFycmF5PEV4dHJhY3RlZE9ic2VydmF0aW9uPiA9IFtdO1xuICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZXh0cmFjdG9yLmdldCh0cmFuc2FjdGlvbik7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgICBibGFrZTJiKHRoaXMuZ2V0VHhJZCh0cmFuc2FjdGlvbiksIHVuZGVmaW5lZCwgMzIpXG4gICAgICAgICkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICBvYnNlcnZhdGlvbnMucHVzaCh7XG4gICAgICAgICAgZnJvbUNoYWluOiB0aGlzLkZST01fQ0hBSU4sXG4gICAgICAgICAgdG9DaGFpbjogZGF0YS50b0NoYWluLFxuICAgICAgICAgIGFtb3VudDogZGF0YS5hbW91bnQsXG4gICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBkYXRhLnNvdXJjZUNoYWluVG9rZW5JZCxcbiAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGRhdGEudGFyZ2V0Q2hhaW5Ub2tlbklkLFxuICAgICAgICAgIHNvdXJjZVR4SWQ6IGRhdGEuc291cmNlVHhJZCxcbiAgICAgICAgICBicmlkZ2VGZWU6IGRhdGEuYnJpZGdlRmVlLFxuICAgICAgICAgIG5ldHdvcmtGZWU6IGRhdGEubmV0d29ya0ZlZSxcbiAgICAgICAgICBzb3VyY2VCbG9ja0lkOiBibG9jay5oYXNoLFxuICAgICAgICAgIHJlcXVlc3RJZDogcmVxdWVzdElkLFxuICAgICAgICAgIHRvQWRkcmVzczogZGF0YS50b0FkZHJlc3MsXG4gICAgICAgICAgZnJvbUFkZHJlc3M6IGRhdGEuZnJvbUFkZHJlc3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMuc3RvcmVPYnNlcnZhdGlvbnMob2JzZXJ2YXRpb25zLCBibG9jaywgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrT2JzZXJ2YXRpb24oaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdG9yIGJveCBpbml0aWFsaXphdGlvblxuICAgKiBObyBhY3Rpb24gbmVlZGVkIGluIG9ic2VydmF0aW9uIGV4dHJhY3RvcnNcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jICgpID0+IHtcbiAgICByZXR1cm47XG4gIH07XG59XG4iXX0=
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export { AbstractObservationExtractor } from './extractor/AbstractObservationExtractor';
|
|
3
|
+
export { ObservationEntity } from './entities/observationEntity';
|
|
4
|
+
export { migrations } from './migrations/index';
|
|
5
|
+
export { ExtractedObservation } from './interfaces/extractedObservation';
|
|
6
|
+
export { ObservationEntityAction } from './actions/db';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export { AbstractObservationExtractor } from './extractor/AbstractObservationExtractor';
|
|
3
|
+
export { ObservationEntity } from './entities/observationEntity';
|
|
4
|
+
export { migrations } from './migrations/index';
|
|
5
|
+
export { ObservationEntityAction } from './actions/db';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuZXhwb3J0IHsgQWJzdHJhY3RPYnNlcnZhdGlvbkV4dHJhY3RvciB9IGZyb20gJy4vZXh0cmFjdG9yL0Fic3RyYWN0T2JzZXJ2YXRpb25FeHRyYWN0b3InO1xuZXhwb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHkgfSBmcm9tICcuL2VudGl0aWVzL29ic2VydmF0aW9uRW50aXR5JztcbmV4cG9ydCB7IG1pZ3JhdGlvbnMgfSBmcm9tICcuL21pZ3JhdGlvbnMvaW5kZXgnO1xuZXhwb3J0IHsgRXh0cmFjdGVkT2JzZXJ2YXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvZXh0cmFjdGVkT2JzZXJ2YXRpb24nO1xuZXhwb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHlBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvZGInO1xuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ExtractedObservation {
|
|
2
|
+
fromChain: string;
|
|
3
|
+
toChain: string;
|
|
4
|
+
networkFee: string;
|
|
5
|
+
bridgeFee: string;
|
|
6
|
+
amount: string;
|
|
7
|
+
sourceChainTokenId: string;
|
|
8
|
+
targetChainTokenId: string;
|
|
9
|
+
sourceTxId: string;
|
|
10
|
+
sourceBlockId: string;
|
|
11
|
+
requestId: string;
|
|
12
|
+
toAddress: string;
|
|
13
|
+
fromAddress: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=extractedObservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractedObservation.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedObservation.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkT2JzZXJ2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy9leHRyYWN0ZWRPYnNlcnZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0ZWRPYnNlcnZhdGlvbiB7XG4gIGZyb21DaGFpbjogc3RyaW5nO1xuICB0b0NoYWluOiBzdHJpbmc7XG4gIG5ldHdvcmtGZWU6IHN0cmluZztcbiAgYnJpZGdlRmVlOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBzb3VyY2VDaGFpblRva2VuSWQ6IHN0cmluZztcbiAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBzdHJpbmc7XG4gIHNvdXJjZVR4SWQ6IHN0cmluZztcbiAgc291cmNlQmxvY2tJZDogc3RyaW5nO1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgdG9BZGRyZXNzOiBzdHJpbmc7XG4gIGZyb21BZGRyZXNzOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { migration1688545935708 } from './postgres/1688545935708-migration';
|
|
2
|
+
import { migration1688555621494 } from './sqlite/1688555621494-migration';
|
|
3
|
+
export declare const migrations: {
|
|
4
|
+
sqlite: (typeof migration1688555621494)[];
|
|
5
|
+
postgres: (typeof migration1688545935708)[];
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { migration1688545935708 } from './postgres/1688545935708-migration';
|
|
2
|
+
import { migration1688555621494 } from './sqlite/1688555621494-migration';
|
|
3
|
+
export const migrations = {
|
|
4
|
+
sqlite: [migration1688555621494],
|
|
5
|
+
postgres: [migration1688545935708],
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDaEMsUUFBUSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NDU5MzU3MDggfSBmcm9tICcuL3Bvc3RncmVzLzE2ODg1NDU5MzU3MDgtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTU2MjE0OTQgfSBmcm9tICcuL3NxbGl0ZS8xNjg4NTU1NjIxNDk0LW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRpb25zID0ge1xuICBzcWxpdGU6IFttaWdyYXRpb24xNjg4NTU1NjIxNDk0XSxcbiAgcG9zdGdyZXM6IFttaWdyYXRpb24xNjg4NTQ1OTM1NzA4XSxcbn07XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
|
|
2
|
+
export declare class migration1688545935708 implements MigrationInterface {
|
|
3
|
+
name: string;
|
|
4
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
5
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=1688545935708-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1688545935708-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/1688545935708-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEjF,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export class migration1688545935708 {
|
|
2
|
+
name = 'migration1688545935708';
|
|
3
|
+
async up(queryRunner) {
|
|
4
|
+
await queryRunner.query(`
|
|
5
|
+
CREATE TABLE "observation_entity" (
|
|
6
|
+
"id" SERIAL NOT NULL,
|
|
7
|
+
"fromChain" character varying(30) NOT NULL,
|
|
8
|
+
"toChain" character varying(30) NOT NULL,
|
|
9
|
+
"fromAddress" character varying NOT NULL,
|
|
10
|
+
"toAddress" character varying NOT NULL,
|
|
11
|
+
"height" integer NOT NULL,
|
|
12
|
+
"amount" character varying NOT NULL,
|
|
13
|
+
"networkFee" character varying NOT NULL,
|
|
14
|
+
"bridgeFee" character varying NOT NULL,
|
|
15
|
+
"sourceChainTokenId" character varying NOT NULL,
|
|
16
|
+
"targetChainTokenId" character varying NOT NULL,
|
|
17
|
+
"sourceTxId" character varying NOT NULL,
|
|
18
|
+
"sourceBlockId" character varying NOT NULL,
|
|
19
|
+
"requestId" character varying NOT NULL,
|
|
20
|
+
"block" character varying NOT NULL,
|
|
21
|
+
"extractor" character varying NOT NULL,
|
|
22
|
+
CONSTRAINT "UQ_a871fab5aa20b9306e13a057924" UNIQUE ("requestId", "extractor"),
|
|
23
|
+
CONSTRAINT "PK_1192341f36ee5eb313976dc1ae2" PRIMARY KEY ("id")
|
|
24
|
+
)
|
|
25
|
+
`);
|
|
26
|
+
}
|
|
27
|
+
async down(queryRunner) {
|
|
28
|
+
await queryRunner.query(`
|
|
29
|
+
DROP TABLE "observation_entity"
|
|
30
|
+
`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY4ODU0NTkzNTcwOC1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNjg4NTQ1OTM1NzA4LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBcUJuQixDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtRQUN4QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5leHBvcnQgY2xhc3MgbWlncmF0aW9uMTY4ODU0NTkzNTcwOCBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnbWlncmF0aW9uMTY4ODU0NTkzNTcwOCc7XG5cbiAgcHVibGljIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIENSRUFURSBUQUJMRSBcIm9ic2VydmF0aW9uX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcImlkXCIgU0VSSUFMIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIgY2hhcmFjdGVyIHZhcnlpbmcoMzApIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9DaGFpblwiIGNoYXJhY3RlciB2YXJ5aW5nKDMwKSBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIm5ldHdvcmtGZWVcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZVR4SWRcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInJlcXVlc3RJZFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgXCJVUV9hODcxZmFiNWFhMjBiOTMwNmUxM2EwNTc5MjRcIiBVTklRVUUgKFwicmVxdWVzdElkXCIsIFwiZXh0cmFjdG9yXCIpLFxuICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgXCJQS18xMTkyMzQxZjM2ZWU1ZWIzMTM5NzZkYzFhZTJcIiBQUklNQVJZIEtFWSAoXCJpZFwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJvYnNlcnZhdGlvbl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
|
|
2
|
+
export declare class migration1688555621494 implements MigrationInterface {
|
|
3
|
+
name: string;
|
|
4
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
5
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=1688555621494-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1688555621494-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/sqlite/1688555621494-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEjF,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export class migration1688555621494 {
|
|
2
|
+
name = 'migration1688555621494';
|
|
3
|
+
async up(queryRunner) {
|
|
4
|
+
await queryRunner.query(`
|
|
5
|
+
CREATE TABLE "observation_entity" (
|
|
6
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
7
|
+
"fromChain" varchar(30) NOT NULL,
|
|
8
|
+
"toChain" varchar(30) NOT NULL,
|
|
9
|
+
"fromAddress" varchar NOT NULL,
|
|
10
|
+
"toAddress" varchar NOT NULL,
|
|
11
|
+
"height" integer NOT NULL,
|
|
12
|
+
"amount" varchar NOT NULL,
|
|
13
|
+
"networkFee" varchar NOT NULL,
|
|
14
|
+
"bridgeFee" varchar NOT NULL,
|
|
15
|
+
"sourceChainTokenId" varchar NOT NULL,
|
|
16
|
+
"targetChainTokenId" varchar NOT NULL,
|
|
17
|
+
"sourceTxId" varchar NOT NULL,
|
|
18
|
+
"sourceBlockId" varchar NOT NULL,
|
|
19
|
+
"requestId" varchar NOT NULL,
|
|
20
|
+
"block" varchar NOT NULL,
|
|
21
|
+
"extractor" varchar NOT NULL,
|
|
22
|
+
CONSTRAINT "UQ_a871fab5aa20b9306e13a057924" UNIQUE ("requestId", "extractor")
|
|
23
|
+
)
|
|
24
|
+
`);
|
|
25
|
+
}
|
|
26
|
+
async down(queryRunner) {
|
|
27
|
+
await queryRunner.query(`
|
|
28
|
+
DROP TABLE "observation_entity"
|
|
29
|
+
`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY4ODU1NTYyMTQ5NC1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9zcWxpdGUvMTY4ODU1NTYyMTQ5NC1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBb0JuQixDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtRQUN4QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5leHBvcnQgY2xhc3MgbWlncmF0aW9uMTY4ODU1NTYyMTQ5NCBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnbWlncmF0aW9uMTY4ODU1NTYyMTQ5NCc7XG5cbiAgcHVibGljIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIENSRUFURSBUQUJMRSBcIm9ic2VydmF0aW9uX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcImlkXCIgaW50ZWdlciBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5UIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIgdmFyY2hhcigzMCkgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIgdmFyY2hhcigzMCkgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImFtb3VudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZVR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJyZXF1ZXN0SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYTg3MWZhYjVhYTIwYjkzMDZlMTNhMDU3OTI0XCIgVU5JUVVFIChcInJlcXVlc3RJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJvYnNlcnZhdGlvbl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgfVxufVxuIl19
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rosen-bridge/abstract-observation-extractor",
|
|
3
|
+
"version": "0.1.0-52fc0239",
|
|
4
|
+
"description": "Event observation data extractor for different chains",
|
|
5
|
+
"author": "Rosen Team",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"prettify": "prettier --write . --ignore-path ../../.gitignore",
|
|
11
|
+
"lint": "eslint --fix . && npm run prettify",
|
|
12
|
+
"test": "jest --detectOpenHandles",
|
|
13
|
+
"coverage": "jest --detectOpenHandles --coverage",
|
|
14
|
+
"build": "tsc --build",
|
|
15
|
+
"type-check": "tsc --noEmit",
|
|
16
|
+
"release": "npm run test && npm run build && npm publish --access public"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@rosen-bridge/abstract-extractor": "^2.0.3-52fc0239",
|
|
23
|
+
"@rosen-bridge/abstract-logger": "^2.0.1",
|
|
24
|
+
"@rosen-bridge/rosen-extractor": "^8.0.1",
|
|
25
|
+
"@rosen-bridge/scanner-interfaces": "^0.1.1-52fc0239",
|
|
26
|
+
"@rosen-bridge/tokens": "^3.1.1",
|
|
27
|
+
"blakejs": "^1.2.1",
|
|
28
|
+
"reflect-metadata": "^0.1.13",
|
|
29
|
+
"sqlite3": "^5.1.7",
|
|
30
|
+
"@rosen-bridge/extended-typeorm": "^0.2.1"
|
|
31
|
+
},
|
|
32
|
+
"type": "module",
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@babel/preset-env": "^7.19.0",
|
|
35
|
+
"@rosen-bridge/abstract-scanner": "^0.1.0-52fc0239",
|
|
36
|
+
"@types/jest": "^28.1.6",
|
|
37
|
+
"@types/node": "^22.18.0",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
39
|
+
"@typescript-eslint/parser": "^5.26.0",
|
|
40
|
+
"eslint": "^8.16.0",
|
|
41
|
+
"eslint-config-prettier": "^8.5.0",
|
|
42
|
+
"jest": "^28.1.3",
|
|
43
|
+
"prettier": "2.7.1",
|
|
44
|
+
"ts-jest": "^28.0.7",
|
|
45
|
+
"typescript": "^4.7.4"
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=22.18.0"
|
|
49
|
+
}
|
|
50
|
+
}
|