@rosen-bridge/watcher-data-extractor 0.1.2-alpha → 0.1.4
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 +24 -17
- package/dist/actions/EventTriggerDB.d.ts +11 -3
- package/dist/actions/EventTriggerDB.d.ts.map +1 -0
- package/dist/actions/EventTriggerDB.js +41 -9
- package/dist/actions/commitmentDB.d.ts +4 -3
- package/dist/actions/commitmentDB.d.ts.map +1 -0
- package/dist/actions/commitmentDB.js +24 -15
- package/dist/actions/permitDB.d.ts +12 -4
- package/dist/actions/permitDB.d.ts.map +1 -0
- package/dist/actions/permitDB.js +61 -16
- package/dist/entities/CommitmentEntity.d.ts +1 -0
- package/dist/entities/CommitmentEntity.d.ts.map +1 -0
- package/dist/entities/CommitmentEntity.js +3 -2
- package/dist/entities/EventTriggerEntity.d.ts +3 -0
- package/dist/entities/EventTriggerEntity.d.ts.map +1 -0
- package/dist/entities/EventTriggerEntity.js +13 -2
- package/dist/entities/PermitEntity.d.ts +1 -0
- package/dist/entities/PermitEntity.d.ts.map +1 -0
- package/dist/entities/PermitEntity.js +3 -2
- package/dist/extractor/EventTriggerExtractor.d.ts +8 -2
- package/dist/extractor/EventTriggerExtractor.d.ts.map +1 -0
- package/dist/extractor/EventTriggerExtractor.js +37 -13
- package/dist/extractor/commitmentExtractor.d.ts +8 -2
- package/dist/extractor/commitmentExtractor.d.ts.map +1 -0
- package/dist/extractor/commitmentExtractor.js +21 -10
- package/dist/extractor/permitExtractor.d.ts +12 -4
- package/dist/extractor/permitExtractor.d.ts.map +1 -0
- package/dist/extractor/permitExtractor.js +57 -11
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -7
- package/dist/interfaces/extractedCommitment.d.ts +1 -0
- package/dist/interfaces/extractedCommitment.d.ts.map +1 -0
- package/dist/interfaces/extractedCommitment.js +1 -0
- package/dist/interfaces/extractedEventTrigger.d.ts +1 -0
- package/dist/interfaces/extractedEventTrigger.d.ts.map +1 -0
- package/dist/interfaces/extractedEventTrigger.js +1 -0
- package/dist/interfaces/extractedPermit.d.ts +5 -2
- package/dist/interfaces/extractedPermit.d.ts.map +1 -0
- package/dist/interfaces/extractedPermit.js +1 -0
- package/dist/interfaces/types.d.ts +20 -0
- package/dist/interfaces/types.d.ts.map +1 -0
- package/dist/interfaces/types.js +2 -0
- package/dist/migrations/1659787165000-initMigration.d.ts +2 -1
- package/dist/migrations/1659787165000-initMigration.d.ts.map +1 -0
- package/dist/migrations/1659787165000-initMigration.js +3 -0
- package/dist/migrations/index.d.ts +2 -1
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +2 -1
- package/dist/network/ergoNetworkApi.d.ts +15 -0
- package/dist/network/ergoNetworkApi.d.ts.map +1 -0
- package/dist/network/ergoNetworkApi.js +27 -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 +14 -6
package/README.md
CHANGED
|
@@ -1,58 +1,63 @@
|
|
|
1
1
|
# Watcher Data Extractor
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
### Table of Contents
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
- [Description](#description)
|
|
6
6
|
- [Related Projects](#related-projects)
|
|
7
7
|
- [How to Use the Watcher Data Extractor](#how-to-use-the-watcher-data-extractor)
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
- [Install](#install)
|
|
9
|
+
- [Usage](#usage)
|
|
10
10
|
- [Contributing](#contributing)
|
|
11
11
|
- [License](#license)
|
|
12
12
|
|
|
13
13
|
<a name="headers"/>
|
|
14
14
|
|
|
15
15
|
## Description
|
|
16
|
+
|
|
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 watcher data extractor is responsible for tracking all watcher-related data in the network. These data includes permit, commitment and event trigger boxes; all these boxes are created in the network by the watchers. The watchers use their permits to create new commitments, and need to track created commitments and triggers to continue their procedures. On the other side, guards need to track event trigger boxes to verify the related user payment and start an agreement on the exchange transaction.
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
## Related Projects
|
|
20
|
-
This module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. As stated above, this module is used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the related boxes. It also used in the [Guard](https://github.com/rosen-bridge/watcher) to track the created event triggers.
|
|
21
20
|
|
|
21
|
+
This module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. As stated above, this module is used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the related boxes. It also used in the [Guard](https://github.com/rosen-bridge/watcher) to track the created event triggers.
|
|
22
22
|
|
|
23
23
|
## How to Use the Watcher Data Extractor
|
|
24
|
+
|
|
24
25
|
### Install
|
|
26
|
+
|
|
25
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:
|
|
26
|
-
|
|
28
|
+
|
|
27
29
|
```shell
|
|
28
30
|
npm install @rosen-bridge/watcher-data-extractor
|
|
29
31
|
```
|
|
30
|
-
|
|
32
|
+
|
|
31
33
|
Alternatively, you can build and use it manually by cloning the project and running:
|
|
34
|
+
|
|
32
35
|
```shell
|
|
33
36
|
npm install
|
|
34
37
|
npm run build
|
|
35
38
|
```
|
|
36
|
-
|
|
39
|
+
|
|
37
40
|
### Usage
|
|
41
|
+
|
|
38
42
|
In the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then, you need to instantiate your desired extractors and register them to your ergo scanner:
|
|
43
|
+
|
|
39
44
|
```javascript
|
|
40
45
|
const commitmentExtractor = new CommitmentExtractor(
|
|
41
|
-
<extractor_name>,
|
|
46
|
+
<extractor_name>,
|
|
42
47
|
<Array<commitment_address>>,
|
|
43
48
|
<rwt_id>,
|
|
44
49
|
dataSource
|
|
45
50
|
)
|
|
46
51
|
const permitExtractor = new PermitExtractor(
|
|
47
|
-
<extractor_name>,
|
|
48
|
-
dataSource,
|
|
49
|
-
<permit_address>,
|
|
52
|
+
<extractor_name>,
|
|
53
|
+
dataSource,
|
|
54
|
+
<permit_address>,
|
|
50
55
|
<rwt_id>
|
|
51
56
|
)
|
|
52
57
|
const eventTriggerExtractor = new EventTriggerExtractor(
|
|
53
|
-
<extractor_name>,
|
|
54
|
-
dataSource,
|
|
55
|
-
<event_trigger_address>,
|
|
58
|
+
<extractor_name>,
|
|
59
|
+
dataSource,
|
|
60
|
+
<event_trigger_address>,
|
|
56
61
|
<rwt_id>
|
|
57
62
|
)
|
|
58
63
|
ergoScanner.registerExtractor(commitmentExtractor)
|
|
@@ -61,7 +66,9 @@ ergoScanner.registerExtractor(eventTriggerExtractor)
|
|
|
61
66
|
```
|
|
62
67
|
|
|
63
68
|
## Contributing
|
|
69
|
+
|
|
64
70
|
TBD
|
|
65
71
|
|
|
66
72
|
## License
|
|
73
|
+
|
|
67
74
|
TBD
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DataSource } from
|
|
2
|
-
import { BlockEntity } from
|
|
3
|
-
import { ExtractedEventTrigger } from
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BlockEntity } from '@rosen-bridge/scanner';
|
|
3
|
+
import { ExtractedEventTrigger } from '../interfaces/extractedEventTrigger';
|
|
4
4
|
declare class EventTriggerDB {
|
|
5
5
|
private readonly datasource;
|
|
6
6
|
private readonly triggerEventRepository;
|
|
@@ -12,6 +12,13 @@ declare class EventTriggerDB {
|
|
|
12
12
|
* @param extractor
|
|
13
13
|
*/
|
|
14
14
|
storeEventTriggers: (eventTriggers: Array<ExtractedEventTrigger>, block: BlockEntity, extractor: string) => Promise<boolean>;
|
|
15
|
+
/**
|
|
16
|
+
* update spendBlock Column of the commitments in the dataBase
|
|
17
|
+
* @param spendId
|
|
18
|
+
* @param block
|
|
19
|
+
* @param extractor
|
|
20
|
+
*/
|
|
21
|
+
spendEventTriggers: (spendId: Array<string>, block: BlockEntity, extractor: string) => Promise<void>;
|
|
15
22
|
/**
|
|
16
23
|
* deleting all permits corresponding to the block(id) and extractor(id)
|
|
17
24
|
* @param block
|
|
@@ -20,3 +27,4 @@ declare class EventTriggerDB {
|
|
|
20
27
|
deleteBlock: (block: string, extractor: string) => Promise<void>;
|
|
21
28
|
}
|
|
22
29
|
export default EventTriggerDB;
|
|
30
|
+
//# sourceMappingURL=EventTriggerDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventTriggerDB.d.ts","sourceRoot":"","sources":["../../lib/actions/EventTriggerDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;gBAE5D,UAAU,EAAE,UAAU;IAKlC;;;;;OAKG;IACH,kBAAkB,kBACD,MAAM,qBAAqB,CAAC,SACpC,WAAW,aACP,MAAM,sBAyDjB;IAEF;;;;;OAKG;IACH,kBAAkB,YACP,MAAM,MAAM,CAAC,SACf,WAAW,aACP,MAAM,KAChB,QAAQ,IAAI,CAAC,CAYd;IAEF;;;;OAIG;IACH,WAAW,UAAiB,MAAM,aAAa,MAAM,mBAmBnD;CACH;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { In } from
|
|
2
|
-
import EventTriggerEntity from
|
|
1
|
+
import { In } from 'typeorm';
|
|
2
|
+
import EventTriggerEntity from '../entities/EventTriggerEntity';
|
|
3
|
+
import eventTriggerEntity from '../entities/EventTriggerEntity';
|
|
3
4
|
class EventTriggerDB {
|
|
4
5
|
datasource;
|
|
5
6
|
triggerEventRepository;
|
|
@@ -16,7 +17,7 @@ class EventTriggerDB {
|
|
|
16
17
|
storeEventTriggers = async (eventTriggers, block, extractor) => {
|
|
17
18
|
if (eventTriggers.length === 0)
|
|
18
19
|
return true;
|
|
19
|
-
const boxIds = eventTriggers.map(trigger => trigger.boxId);
|
|
20
|
+
const boxIds = eventTriggers.map((trigger) => trigger.boxId);
|
|
20
21
|
const savedTriggers = await this.triggerEventRepository.findBy({
|
|
21
22
|
boxId: In(boxIds),
|
|
22
23
|
extractor: extractor,
|
|
@@ -54,7 +55,7 @@ class EventTriggerDB {
|
|
|
54
55
|
}
|
|
55
56
|
else {
|
|
56
57
|
await queryRunner.manager.update(EventTriggerEntity, {
|
|
57
|
-
boxId: event.boxId
|
|
58
|
+
boxId: event.boxId,
|
|
58
59
|
}, entity);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -70,19 +71,50 @@ class EventTriggerDB {
|
|
|
70
71
|
}
|
|
71
72
|
return success;
|
|
72
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* update spendBlock Column of the commitments in the dataBase
|
|
76
|
+
* @param spendId
|
|
77
|
+
* @param block
|
|
78
|
+
* @param extractor
|
|
79
|
+
*/
|
|
80
|
+
spendEventTriggers = async (spendId, block, extractor) => {
|
|
81
|
+
for (const id of spendId) {
|
|
82
|
+
await this.datasource
|
|
83
|
+
.createQueryBuilder()
|
|
84
|
+
.update(eventTriggerEntity)
|
|
85
|
+
.set({ spendBlock: block.hash, spendHeight: block.height })
|
|
86
|
+
.where('boxId = :id AND extractor = :extractor', {
|
|
87
|
+
id: id,
|
|
88
|
+
extractor: extractor,
|
|
89
|
+
})
|
|
90
|
+
.execute();
|
|
91
|
+
}
|
|
92
|
+
};
|
|
73
93
|
/**
|
|
74
94
|
* deleting all permits corresponding to the block(id) and extractor(id)
|
|
75
95
|
* @param block
|
|
76
96
|
* @param extractor
|
|
77
97
|
*/
|
|
78
98
|
deleteBlock = async (block, extractor) => {
|
|
79
|
-
await this.datasource
|
|
99
|
+
await this.datasource
|
|
100
|
+
.createQueryBuilder()
|
|
80
101
|
.delete()
|
|
81
102
|
.from(EventTriggerEntity)
|
|
82
|
-
.where(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
})
|
|
103
|
+
.where('extractor = :extractor AND block = :block', {
|
|
104
|
+
block: block,
|
|
105
|
+
extractor: extractor,
|
|
106
|
+
})
|
|
107
|
+
.execute();
|
|
108
|
+
//TODO: should handled null value in spendBlockHeight
|
|
109
|
+
await this.datasource
|
|
110
|
+
.createQueryBuilder()
|
|
111
|
+
.update(EventTriggerEntity)
|
|
112
|
+
.set({ spendBlock: undefined, spendHeight: 0 })
|
|
113
|
+
.where('spendBlock = :block AND block = :block', {
|
|
114
|
+
block: block,
|
|
115
|
+
})
|
|
116
|
+
.execute();
|
|
86
117
|
};
|
|
87
118
|
}
|
|
88
119
|
export default EventTriggerDB;
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyREIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9FdmVudFRyaWdnZXJEQi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ3JELE9BQU8sa0JBQWtCLE1BQU0sZ0NBQWdDLENBQUM7QUFHaEUsT0FBTyxrQkFBa0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxNQUFNLGNBQWM7SUFDRCxVQUFVLENBQWE7SUFDdkIsc0JBQXNCLENBQWlDO0lBRXhFLFlBQVksVUFBc0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsR0FBRyxLQUFLLEVBQ3hCLGFBQTJDLEVBQzNDLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7WUFDN0QsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FB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LEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2FBQ3hCLEtBQUssQ0FBQywyQ0FBMkMsRUFBRTtZQUNsRCxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7YUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNiLHFEQUFxRDtRQUNyRCxNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzthQUMxQixHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUM5QyxLQUFLLENBQUMsd0NBQXdDLEVBQUU7WUFDL0MsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIFJlcG9zaXRvcnkgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCBFdmVudFRyaWdnZXJFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvRXZlbnRUcmlnZ2VyRW50aXR5JztcbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IEV4dHJhY3RlZEV2ZW50VHJpZ2dlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkRXZlbnRUcmlnZ2VyJztcbmltcG9ydCBldmVudFRyaWdnZXJFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvRXZlbnRUcmlnZ2VyRW50aXR5JztcblxuY2xhc3MgRXZlbnRUcmlnZ2VyREIge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJpZ2dlckV2ZW50UmVwb3NpdG9yeTogUmVwb3NpdG9yeTxFdmVudFRyaWdnZXJFbnRpdHk+O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMudHJpZ2dlckV2ZW50UmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShFdmVudFRyaWdnZXJFbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHN0b3JlcyBsaXN0IG9mIGV2ZW50VHJpZ2dlcnMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gZXZlbnRUcmlnZ2Vyc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVFdmVudFRyaWdnZXJzID0gYXN5bmMgKFxuICAgIGV2ZW50VHJpZ2dlcnM6IEFycmF5PEV4dHJhY3RlZEV2ZW50VHJpZ2dlcj4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5LFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGlmIChldmVudFRyaWdnZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYm94SWRzID0gZXZlbnRUcmlnZ2Vycy5tYXAoKHRyaWdnZXIpID0+IHRyaWdnZXIuYm94SWQpO1xuICAgIGNvbnN0IHNhdmVkVHJpZ2dlcnMgPSBhd2FpdCB0aGlzLnRyaWdnZXJFdmVudFJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudFRyaWdnZXJzKSB7XG4gICAgICAgIGNvbnN0IHNhdmVkID0gc2F2ZWRUcmlnZ2Vycy5zb21lKChlbnRpdHkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW50aXR5LmJveElkID09PSBldmVudC5ib3hJZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBib3hJZDogZXZlbnQuYm94SWQsXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogZXZlbnQuYm94U2VyaWFsaXplZCxcbiAgICAgICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgICBXSURzOiBldmVudC5XSURzLFxuICAgICAgICAgIGFtb3VudDogZXZlbnQuYW1vdW50LFxuICAgICAgICAgIGJyaWRnZUZlZTogZXZlbnQuYnJpZGdlRmVlLFxuICAgICAgICAgIGZyb21BZGRyZXNzOiBldmVudC5mcm9tQWRkcmVzcyxcbiAgICAgICAgICB0b0FkZHJlc3M6IGV2ZW50LnRvQWRkcmVzcyxcbiAgICAgICAgICBmcm9tQ2hhaW46IGV2ZW50LmZyb21DaGFpbixcbiAgICAgICAgICBuZXR3b3JrRmVlOiBldmVudC5uZXR3b3JrRmVlLFxuICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogZXZlbnQuc291cmNlQ2hhaW5Ub2tlbklkLFxuICAgICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogZXZlbnQudGFyZ2V0Q2hhaW5Ub2tlbklkLFxuICAgICAgICAgIHNvdXJjZUJsb2NrSWQ6IGV2ZW50LnNvdXJjZUJsb2NrSWQsXG4gICAgICAgICAgdG9DaGFpbjogZXZlbnQudG9DaGFpbixcbiAgICAgICAgICBzb3VyY2VUeElkOiBldmVudC5zb3VyY2VUeElkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXNhdmVkKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5pbnNlcnQoRXZlbnRUcmlnZ2VyRW50aXR5LCBlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIudXBkYXRlKFxuICAgICAgICAgICAgRXZlbnRUcmlnZ2VyRW50aXR5LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBib3hJZDogZXZlbnQuYm94SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW50aXR5XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGV2ZW50VHJpZ2dlciBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlIHNwZW5kQmxvY2sgQ29sdW1uIG9mIHRoZSBjb21taXRtZW50cyBpbiB0aGUgZGF0YUJhc2VcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kRXZlbnRUcmlnZ2VycyA9IGFzeW5jIChcbiAgICBzcGVuZElkOiBBcnJheTxzdHJpbmc+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHNwZW5kSWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgLnVwZGF0ZShldmVudFRyaWdnZXJFbnRpdHkpXG4gICAgICAgIC5zZXQoeyBzcGVuZEJsb2NrOiBibG9jay5oYXNoLCBzcGVuZEhlaWdodDogYmxvY2suaGVpZ2h0IH0pXG4gICAgICAgIC53aGVyZSgnYm94SWQgPSA6aWQgQU5EIGV4dHJhY3RvciA9IDpleHRyYWN0b3InLCB7XG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9KVxuICAgICAgICAuZXhlY3V0ZSgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRpbmcgYWxsIHBlcm1pdHMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2soaWQpIGFuZCBleHRyYWN0b3IoaWQpXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9jayA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAuZGVsZXRlKClcbiAgICAgIC5mcm9tKEV2ZW50VHJpZ2dlckVudGl0eSlcbiAgICAgIC53aGVyZSgnZXh0cmFjdG9yID0gOmV4dHJhY3RvciBBTkQgYmxvY2sgPSA6YmxvY2snLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgICAvL1RPRE86IHNob3VsZCBoYW5kbGVkIG51bGwgdmFsdWUgaW4gc3BlbmRCbG9ja0hlaWdodFxuICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAudXBkYXRlKEV2ZW50VHJpZ2dlckVudGl0eSlcbiAgICAgIC5zZXQoeyBzcGVuZEJsb2NrOiB1bmRlZmluZWQsIHNwZW5kSGVpZ2h0OiAwIH0pXG4gICAgICAud2hlcmUoJ3NwZW5kQmxvY2sgPSA6YmxvY2sgQU5EIGJsb2NrID0gOmJsb2NrJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRUcmlnZ2VyREI7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DataSource } from
|
|
2
|
-
import { extractedCommitment } from
|
|
3
|
-
import { BlockEntity } from
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { extractedCommitment } from '../interfaces/extractedCommitment';
|
|
3
|
+
import { BlockEntity } from '@rosen-bridge/scanner';
|
|
4
4
|
declare class CommitmentEntityAction {
|
|
5
5
|
private readonly datasource;
|
|
6
6
|
private readonly commitmentRepository;
|
|
@@ -27,3 +27,4 @@ declare class CommitmentEntityAction {
|
|
|
27
27
|
deleteBlockCommitment: (block: string, extractor: string) => Promise<void>;
|
|
28
28
|
}
|
|
29
29
|
export default CommitmentEntityAction;
|
|
30
|
+
//# sourceMappingURL=commitmentDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commitmentDB.d.ts","sourceRoot":"","sources":["../../lib/actions/commitmentDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,cAAM,sBAAsB;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;gBAExD,UAAU,EAAE,UAAU;IAKlC;;;;;OAKG;IACH,gBAAgB,gBACD,MAAM,mBAAmB,CAAC,SAChC,WAAW,aACP,MAAM,KAChB,QAAQ,OAAO,CAAC,CA+CjB;IAEF;;;;;OAKG;IACH,gBAAgB,YACL,MAAM,MAAM,CAAC,SACf,WAAW,aACP,MAAM,KAChB,QAAQ,IAAI,CAAC,CAad;IAEF;;;;OAIG;IACH,qBAAqB,UAAiB,MAAM,aAAa,MAAM,mBAmB7D;CACH;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { In } from
|
|
2
|
-
import CommitmentEntity from
|
|
1
|
+
import { In } from 'typeorm';
|
|
2
|
+
import CommitmentEntity from '../entities/CommitmentEntity';
|
|
3
3
|
class CommitmentEntityAction {
|
|
4
4
|
datasource;
|
|
5
5
|
commitmentRepository;
|
|
@@ -16,7 +16,7 @@ class CommitmentEntityAction {
|
|
|
16
16
|
storeCommitments = async (commitments, block, extractor) => {
|
|
17
17
|
if (commitments.length === 0)
|
|
18
18
|
return true;
|
|
19
|
-
const boxIds = commitments.map(commitment => commitment.boxId);
|
|
19
|
+
const boxIds = commitments.map((commitment) => commitment.boxId);
|
|
20
20
|
const savedCommitments = await this.commitmentRepository.findBy({
|
|
21
21
|
boxId: In(boxIds),
|
|
22
22
|
extractor: extractor,
|
|
@@ -45,7 +45,7 @@ class CommitmentEntityAction {
|
|
|
45
45
|
}
|
|
46
46
|
else {
|
|
47
47
|
await queryRunner.manager.update(CommitmentEntity, {
|
|
48
|
-
boxId: commitment.boxId
|
|
48
|
+
boxId: commitment.boxId,
|
|
49
49
|
}, entity);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -70,10 +70,14 @@ class CommitmentEntityAction {
|
|
|
70
70
|
spendCommitments = async (spendId, block, extractor) => {
|
|
71
71
|
//todo: should change with single db call
|
|
72
72
|
for (const id of spendId) {
|
|
73
|
-
await this.datasource
|
|
73
|
+
await this.datasource
|
|
74
|
+
.createQueryBuilder()
|
|
74
75
|
.update(CommitmentEntity)
|
|
75
76
|
.set({ spendBlock: block.hash, spendHeight: block.height })
|
|
76
|
-
.where(
|
|
77
|
+
.where('boxId = :id AND extractor = :extractor', {
|
|
78
|
+
id: id,
|
|
79
|
+
extractor: extractor,
|
|
80
|
+
})
|
|
77
81
|
.execute();
|
|
78
82
|
}
|
|
79
83
|
};
|
|
@@ -83,20 +87,25 @@ class CommitmentEntityAction {
|
|
|
83
87
|
* @param extractor
|
|
84
88
|
*/
|
|
85
89
|
deleteBlockCommitment = async (block, extractor) => {
|
|
86
|
-
await this.datasource
|
|
90
|
+
await this.datasource
|
|
91
|
+
.createQueryBuilder()
|
|
87
92
|
.delete()
|
|
88
93
|
.from(CommitmentEntity)
|
|
89
|
-
.where(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
})
|
|
94
|
+
.where('extractor = :extractor AND block = :block', {
|
|
95
|
+
block: block,
|
|
96
|
+
extractor: extractor,
|
|
97
|
+
})
|
|
98
|
+
.execute();
|
|
93
99
|
//TODO: should handled null value in spendBlockHeight
|
|
94
|
-
await this.datasource
|
|
100
|
+
await this.datasource
|
|
101
|
+
.createQueryBuilder()
|
|
95
102
|
.update(CommitmentEntity)
|
|
96
103
|
.set({ spendBlock: undefined, spendHeight: 0 })
|
|
97
|
-
.where(
|
|
98
|
-
block: block
|
|
99
|
-
})
|
|
104
|
+
.where('spendBlock = :block AND block = :block', {
|
|
105
|
+
block: block,
|
|
106
|
+
})
|
|
107
|
+
.execute();
|
|
100
108
|
};
|
|
101
109
|
}
|
|
102
110
|
export default CommitmentEntityAction;
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudERCLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvY29tbWl0bWVudERCLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQWMsTUFBTSxTQUFTLENBQUM7QUFFckQsT0FBTyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RCxNQUFNLHNCQUFzQjtJQUNULFVBQVUsQ0FBYTtJQUN2QixvQkFBb0IsQ0FBK0I7SUFFcEUsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsV0FBdUMsRUFDdkMsS0FBa0IsRUFDbEIsU0FBaUIsRUFDQyxFQUFFO1FBQ3BCLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQzlELEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDeEQsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUs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LHdDQUF3QyxFQUFFO1lBQy9DLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQzthQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIFJlcG9zaXRvcnkgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCB7IGV4dHJhY3RlZENvbW1pdG1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZENvbW1pdG1lbnQnO1xuaW1wb3J0IENvbW1pdG1lbnRFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvQ29tbWl0bWVudEVudGl0eSc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmNsYXNzIENvbW1pdG1lbnRFbnRpdHlBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0bWVudFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Q29tbWl0bWVudEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShDb21taXRtZW50RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBvYnNlcnZhdGlvbnMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gY29tbWl0bWVudHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoY29tbWl0bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBib3hJZHMgPSBjb21taXRtZW50cy5tYXAoKGNvbW1pdG1lbnQpID0+IGNvbW1pdG1lbnQuYm94SWQpO1xuICAgIGNvbnN0IHNhdmVkQ29tbWl0bWVudHMgPSBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgY29tbWl0bWVudCBvZiBjb21taXRtZW50cykge1xuICAgICAgICBjb25zdCBzYXZlZCA9IHNhdmVkQ29tbWl0bWVudHMuc29tZSgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudGl0eS5ib3hJZCA9PT0gY29tbWl0bWVudC5ib3hJZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBjb21taXRtZW50OiBjb21taXRtZW50LmNvbW1pdG1lbnQsXG4gICAgICAgICAgZXZlbnRJZDogY29tbWl0bWVudC5ldmVudElkLFxuICAgICAgICAgIGJveElkOiBjb21taXRtZW50LmJveElkLFxuICAgICAgICAgIFdJRDogY29tbWl0bWVudC5XSUQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogY29tbWl0bWVudC5ib3hTZXJpYWxpemVkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXNhdmVkKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5pbnNlcnQoQ29tbWl0bWVudEVudGl0eSwgZW50aXR5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyLnVwZGF0ZShcbiAgICAgICAgICAgIENvbW1pdG1lbnRFbnRpdHksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJveElkOiBjb21taXRtZW50LmJveElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudGl0eVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZSBjb21taXRtZW50cyBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlIHNwZW5kQmxvY2sgQ29sdW1uIG9mIHRoZSBjb21taXRtZW50cyBpbiB0aGUgZGF0YUJhc2VcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8c3RyaW5nPixcbiAgICBibG9jazogQmxvY2tFbnRpdHksXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy90b2RvOiBzaG91bGQgY2hhbmdlIHdpdGggc2luZ2xlIGRiIGNhbGxcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHNwZW5kSWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgLnVwZGF0ZShDb21taXRtZW50RW50aXR5KVxuICAgICAgICAuc2V0KHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCwgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCB9KVxuICAgICAgICAud2hlcmUoJ2JveElkID0gOmlkIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgfSlcbiAgICAgICAgLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIGRlbGV0aW5nIGFsbCBwZXJtaXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrKGlkKSBhbmQgZXh0cmFjdG9yKGlkKVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tDb21taXRtZW50ID0gYXN5bmMgKGJsb2NrOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC5kZWxldGUoKVxuICAgICAgLmZyb20oQ29tbWl0bWVudEVudGl0eSlcbiAgICAgIC53aGVyZSgnZXh0cmFjdG9yID0gOmV4dHJhY3RvciBBTkQgYmxvY2sgPSA6YmxvY2snLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgICAvL1RPRE86IHNob3VsZCBoYW5kbGVkIG51bGwgdmFsdWUgaW4gc3BlbmRCbG9ja0hlaWdodFxuICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAudXBkYXRlKENvbW1pdG1lbnRFbnRpdHkpXG4gICAgICAuc2V0KHsgc3BlbmRCbG9jazogdW5kZWZpbmVkLCBzcGVuZEhlaWdodDogMCB9KVxuICAgICAgLndoZXJlKCdzcGVuZEJsb2NrID0gOmJsb2NrIEFORCBibG9jayA9IDpibG9jaycsIHtcbiAgICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRFbnRpdHlBY3Rpb247XG4iXX0=
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import { DataSource } from
|
|
2
|
-
import {
|
|
3
|
-
import { BlockEntity } from
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { ExtractedPermit } from '../interfaces/extractedPermit';
|
|
3
|
+
import { BlockEntity } from '@rosen-bridge/scanner';
|
|
4
4
|
declare class PermitEntityAction {
|
|
5
5
|
private readonly datasource;
|
|
6
6
|
private readonly permitRepository;
|
|
7
7
|
constructor(dataSource: DataSource);
|
|
8
|
+
/**
|
|
9
|
+
* stores initial permit boxes in the database
|
|
10
|
+
* @param permits
|
|
11
|
+
* @param initialHeight
|
|
12
|
+
* @param extractor
|
|
13
|
+
*/
|
|
14
|
+
storeInitialPermits: (permits: Array<ExtractedPermit>, initialHeight: number, extractor: string) => Promise<boolean>;
|
|
8
15
|
/**
|
|
9
16
|
* It stores list of permits in the dataSource with block id
|
|
10
17
|
* @param permits
|
|
11
18
|
* @param block
|
|
12
19
|
* @param extractor
|
|
13
20
|
*/
|
|
14
|
-
storePermits: (permits: Array<
|
|
21
|
+
storePermits: (permits: Array<ExtractedPermit>, block: BlockEntity, extractor: string) => Promise<boolean>;
|
|
15
22
|
/**
|
|
16
23
|
* update spendBlock Column of the permits in the dataBase
|
|
17
24
|
* @param spendId
|
|
@@ -27,3 +34,4 @@ declare class PermitEntityAction {
|
|
|
27
34
|
deleteBlock: (block: string, extractor: string) => Promise<void>;
|
|
28
35
|
}
|
|
29
36
|
export default PermitEntityAction;
|
|
37
|
+
//# sourceMappingURL=permitDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permitDB.d.ts","sourceRoot":"","sources":["../../lib/actions/permitDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAEhD,UAAU,EAAE,UAAU;IAKlC;;;;;OAKG;IACH,mBAAmB,YACR,MAAM,eAAe,CAAC,iBAChB,MAAM,aACV,MAAM,KAChB,QAAQ,OAAO,CAAC,CA6BjB;IAEF;;;;;OAKG;IACH,YAAY,YACD,MAAM,eAAe,CAAC,SACxB,WAAW,aACP,MAAM,sBA8CjB;IAEF;;;;;OAKG;IACH,YAAY,YACD,MAAM,MAAM,CAAC,SACf,WAAW,aACP,MAAM,KAChB,QAAQ,IAAI,CAAC,CAad;IAEF;;;;OAIG;IAEH,WAAW,UAAiB,MAAM,aAAa,MAAM,KAAG,QAAQ,IAAI,CAAC,CAmBnE;CACH;AAED,eAAe,kBAAkB,CAAC"}
|
package/dist/actions/permitDB.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { In } from
|
|
2
|
-
import PermitEntity from
|
|
3
|
-
import CommitmentEntity from
|
|
1
|
+
import { In, LessThan } from 'typeorm';
|
|
2
|
+
import PermitEntity from '../entities/PermitEntity';
|
|
3
|
+
import CommitmentEntity from '../entities/CommitmentEntity';
|
|
4
4
|
class PermitEntityAction {
|
|
5
5
|
datasource;
|
|
6
6
|
permitRepository;
|
|
@@ -8,6 +8,42 @@ class PermitEntityAction {
|
|
|
8
8
|
this.datasource = dataSource;
|
|
9
9
|
this.permitRepository = dataSource.getRepository(PermitEntity);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* stores initial permit boxes in the database
|
|
13
|
+
* @param permits
|
|
14
|
+
* @param initialHeight
|
|
15
|
+
* @param extractor
|
|
16
|
+
*/
|
|
17
|
+
storeInitialPermits = async (permits, initialHeight, extractor) => {
|
|
18
|
+
const queryRunner = this.datasource.createQueryRunner();
|
|
19
|
+
await queryRunner.connect();
|
|
20
|
+
await queryRunner.startTransaction();
|
|
21
|
+
try {
|
|
22
|
+
const repository = queryRunner.manager.getRepository(PermitEntity);
|
|
23
|
+
await repository.delete({ height: LessThan(initialHeight) });
|
|
24
|
+
for (const permit of permits) {
|
|
25
|
+
const entity = {
|
|
26
|
+
boxId: permit.boxId,
|
|
27
|
+
boxSerialized: permit.boxSerialized,
|
|
28
|
+
block: permit.block,
|
|
29
|
+
height: permit.height,
|
|
30
|
+
extractor: extractor,
|
|
31
|
+
WID: permit.WID,
|
|
32
|
+
};
|
|
33
|
+
await queryRunner.manager.getRepository(PermitEntity).insert(entity);
|
|
34
|
+
}
|
|
35
|
+
await queryRunner.commitTransaction();
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.log(`An error occurred during storing initial permits action: ${e}`);
|
|
39
|
+
await queryRunner.rollbackTransaction();
|
|
40
|
+
throw new Error('Initialization failed while storing initial permits');
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
await queryRunner.release();
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
11
47
|
/**
|
|
12
48
|
* It stores list of permits in the dataSource with block id
|
|
13
49
|
* @param permits
|
|
@@ -17,7 +53,7 @@ class PermitEntityAction {
|
|
|
17
53
|
storePermits = async (permits, block, extractor) => {
|
|
18
54
|
if (permits.length === 0)
|
|
19
55
|
return true;
|
|
20
|
-
const boxIds = permits.map(permit => permit.boxId);
|
|
56
|
+
const boxIds = permits.map((permit) => permit.boxId);
|
|
21
57
|
const savedPermits = await this.permitRepository.findBy({
|
|
22
58
|
boxId: In(boxIds),
|
|
23
59
|
extractor: extractor,
|
|
@@ -44,7 +80,7 @@ class PermitEntityAction {
|
|
|
44
80
|
}
|
|
45
81
|
else {
|
|
46
82
|
await queryRunner.manager.update(PermitEntity, {
|
|
47
|
-
boxId: permit.boxId
|
|
83
|
+
boxId: permit.boxId,
|
|
48
84
|
}, entity);
|
|
49
85
|
}
|
|
50
86
|
}
|
|
@@ -69,10 +105,14 @@ class PermitEntityAction {
|
|
|
69
105
|
spendPermits = async (spendId, block, extractor) => {
|
|
70
106
|
//todo: should change with single db call
|
|
71
107
|
for (const id of spendId) {
|
|
72
|
-
await this.datasource
|
|
108
|
+
await this.datasource
|
|
109
|
+
.createQueryBuilder()
|
|
73
110
|
.update(PermitEntity)
|
|
74
111
|
.set({ spendBlock: block.hash, spendHeight: block.height })
|
|
75
|
-
.where(
|
|
112
|
+
.where('boxId = :id AND extractor = :extractor', {
|
|
113
|
+
id: id,
|
|
114
|
+
extractor: extractor,
|
|
115
|
+
})
|
|
76
116
|
.execute();
|
|
77
117
|
}
|
|
78
118
|
};
|
|
@@ -83,20 +123,25 @@ class PermitEntityAction {
|
|
|
83
123
|
*/
|
|
84
124
|
//TODO: should check if deleted or not Promise<Boolean>
|
|
85
125
|
deleteBlock = async (block, extractor) => {
|
|
86
|
-
await this.datasource
|
|
126
|
+
await this.datasource
|
|
127
|
+
.createQueryBuilder()
|
|
87
128
|
.delete()
|
|
88
129
|
.from(PermitEntity)
|
|
89
|
-
.where(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
})
|
|
130
|
+
.where('extractor = :extractor AND block = :block', {
|
|
131
|
+
block: block,
|
|
132
|
+
extractor: extractor,
|
|
133
|
+
})
|
|
134
|
+
.execute();
|
|
93
135
|
//TODO: should handled null value in spendBlockHeight
|
|
94
|
-
await this.datasource
|
|
136
|
+
await this.datasource
|
|
137
|
+
.createQueryBuilder()
|
|
95
138
|
.update(CommitmentEntity)
|
|
96
139
|
.set({ spendBlock: undefined, spendHeight: 0 })
|
|
97
|
-
.where(
|
|
98
|
-
block: block
|
|
99
|
-
})
|
|
140
|
+
.where('spendBlock = :block AND block = :block', {
|
|
141
|
+
block: block,
|
|
142
|
+
})
|
|
143
|
+
.execute();
|
|
100
144
|
};
|
|
101
145
|
}
|
|
102
146
|
export default PermitEntityAction;
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0REIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9wZXJtaXREQi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLFFBQVEsRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUUvRCxPQUFPLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLGdCQUFnQixNQUFNLDhCQUE4QixDQUFDO0FBRTVELE1BQU0sa0JBQWtCO0lBQ0wsVUFBVSxDQUFhO0lBQ3ZCLGdCQUFnQixDQUEyQjtJQUU1RCxZQUFZLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLEtBQUssRUFDekIsT0FBK0IsRUFDL0IsYUFBcUIsRUFDckIsU0FBaUIsRUFDQyxFQUFFO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuRSxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO29CQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7b0JBQ25DLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztvQkFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO29CQUNyQixTQUFTLEVBQUUsU0FBUztvQkFDcEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2lCQUNoQixDQUFDO2dCQUNGLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3RFO1lBQ0QsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FDVCw0REFBNEQsQ0FBQyxFQUFFLENBQ2hFLENBQUM7WUFDRixNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztTQUN4RTtnQkFBUztZQUNSLE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILFlBQVksR0FBRyxLQUFLLEVBQ2xCLE9BQStCLEVBQy9CLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDdEQsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUN6QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO29CQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7b0JBQ25DLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUNwQixTQUFTLEVBQUUsU0FBUztvQkFDcEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2lCQUNoQixDQUFDO2dCQUNGLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQ3hEO3FCQUFNO29CQUNMLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzlCLFlBQVksRUFDWjt3QkFDRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7cUJBQ3BCLEVBQ0QsTUFBTSxDQUNQLENBQUM7aUJBQ0g7YUFDRjtZQUNELE1BQU0sV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDdkM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEUsTUFBTSxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN4QyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ2pCO2dCQUFTO1lBQ1IsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILFlBQVksR0FBRyxLQUFLLEVBQ2xCLE9BQXNCLEVBQ3RCLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ0YsRUFBRTtRQUNqQix5Q0FBeUM7UUFDekMsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUU7WUFDeEIsTUFBTSxJQUFJLENBQUMsVUFBVTtpQkFDbEIsa0JBQWtCLEVBQUU7aUJBQ3BCLE1BQU0sQ0FBQyxZQUFZLENBQUM7aUJBQ3BCLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzFELEtBQUssQ0FBQyx3Q0FBd0MsRUFBRTtnQkFDL0MsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLFNBQVM7YUFDckIsQ0FBQztpQkFDRCxPQUFPLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHVEQUF1RDtJQUN2RCxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFpQixFQUFFO1FBQ3RFLE1BQU0sSUFBSSxDQUFDLFVBQVU7YUFDbEIsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUNsQixLQUFLLENBQUMsMkNBQTJDLEVBQUU7WUFDbEQsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7UUFDYixxREFBcUQ7UUFDckQsTUFBTSxJQUFJLENBQUMsVUFBVTthQUNsQixrQkFBa0IsRUFBRTthQUNwQixNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDeEIsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDOUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFO1lBQy9DLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQzthQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIExlc3NUaGFuLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRQZXJtaXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZFBlcm1pdCc7XG5pbXBvcnQgUGVybWl0RW50aXR5IGZyb20gJy4uL2VudGl0aWVzL1Blcm1pdEVudGl0eSc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgQ29tbWl0bWVudEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9Db21taXRtZW50RW50aXR5JztcblxuY2xhc3MgUGVybWl0RW50aXR5QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhc291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pdFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8UGVybWl0RW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlKSB7XG4gICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLnBlcm1pdFJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoUGVybWl0RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdG9yZXMgaW5pdGlhbCBwZXJtaXQgYm94ZXMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBwZXJtaXRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlSW5pdGlhbFBlcm1pdHMgPSBhc3luYyAoXG4gICAgcGVybWl0czogQXJyYXk8RXh0cmFjdGVkUGVybWl0PixcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gICAgICBhd2FpdCByZXBvc2l0b3J5LmRlbGV0ZSh7IGhlaWdodDogTGVzc1RoYW4oaW5pdGlhbEhlaWdodCkgfSk7XG4gICAgICBmb3IgKGNvbnN0IHBlcm1pdCBvZiBwZXJtaXRzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBib3hJZDogcGVybWl0LmJveElkLFxuICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IHBlcm1pdC5ib3hTZXJpYWxpemVkLFxuICAgICAgICAgIGJsb2NrOiBwZXJtaXQuYmxvY2ssXG4gICAgICAgICAgaGVpZ2h0OiBwZXJtaXQuaGVpZ2h0LFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JpbmcgaW5pdGlhbCBwZXJtaXRzIGFjdGlvbjogJHtlfWBcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luaXRpYWxpemF0aW9uIGZhaWxlZCB3aGlsZSBzdG9yaW5nIGluaXRpYWwgcGVybWl0cycpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBwZXJtaXRzIGluIHRoZSBkYXRhU291cmNlIHdpdGggYmxvY2sgaWRcbiAgICogQHBhcmFtIHBlcm1pdHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlUGVybWl0cyA9IGFzeW5jIChcbiAgICBwZXJtaXRzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBpZiAocGVybWl0cy5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IGJveElkcyA9IHBlcm1pdHMubWFwKChwZXJtaXQpID0+IHBlcm1pdC5ib3hJZCk7XG4gICAgY29uc3Qgc2F2ZWRQZXJtaXRzID0gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgcGVybWl0IG9mIHBlcm1pdHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZFBlcm1pdHMuc29tZSgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudGl0eS5ib3hJZCA9PT0gcGVybWl0LmJveElkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGJveElkOiBwZXJtaXQuYm94SWQsXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogcGVybWl0LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgV0lEOiBwZXJtaXQuV0lELFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXNhdmVkKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5pbnNlcnQoUGVybWl0RW50aXR5LCBlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIudXBkYXRlKFxuICAgICAgICAgICAgUGVybWl0RW50aXR5LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBib3hJZDogcGVybWl0LmJveElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudGl0eVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZSBwZXJtaXQgYWN0aW9uOiAke2V9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBzcGVuZEJsb2NrIENvbHVtbiBvZiB0aGUgcGVybWl0cyBpbiB0aGUgZGF0YUJhc2VcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kUGVybWl0cyA9IGFzeW5jIChcbiAgICBzcGVuZElkOiBBcnJheTxzdHJpbmc+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvL3RvZG86IHNob3VsZCBjaGFuZ2Ugd2l0aCBzaW5nbGUgZGIgY2FsbFxuICAgIGZvciAoY29uc3QgaWQgb2Ygc3BlbmRJZCkge1xuICAgICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgICAudXBkYXRlKFBlcm1pdEVudGl0eSlcbiAgICAgICAgLnNldCh7IHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQgfSlcbiAgICAgICAgLndoZXJlKCdib3hJZCA9IDppZCBBTkQgZXh0cmFjdG9yID0gOmV4dHJhY3RvcicsIHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0pXG4gICAgICAgIC5leGVjdXRlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGluZyBhbGwgcGVybWl0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayhpZCkgYW5kIGV4dHJhY3RvcihpZClcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIC8vVE9ETzogc2hvdWxkIGNoZWNrIGlmIGRlbGV0ZWQgb3Igbm90IFByb21pc2U8Qm9vbGVhbj5cbiAgZGVsZXRlQmxvY2sgPSBhc3luYyAoYmxvY2s6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAuZnJvbShQZXJtaXRFbnRpdHkpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGJsb2NrID0gOmJsb2NrJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gICAgLy9UT0RPOiBzaG91bGQgaGFuZGxlZCBudWxsIHZhbHVlIGluIHNwZW5kQmxvY2tIZWlnaHRcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLnVwZGF0ZShDb21taXRtZW50RW50aXR5KVxuICAgICAgLnNldCh7IHNwZW5kQmxvY2s6IHVuZGVmaW5lZCwgc3BlbmRIZWlnaHQ6IDAgfSlcbiAgICAgIC53aGVyZSgnc3BlbmRCbG9jayA9IDpibG9jayBBTkQgYmxvY2sgPSA6YmxvY2snLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgIH0pXG4gICAgICAuZXhlY3V0ZSgpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBQZXJtaXRFbnRpdHlBY3Rpb247XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommitmentEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/CommitmentEntity.ts"],"names":[],"mappings":"AAEA,cAEM,gBAAgB;IAEpB,EAAE,EAAE,MAAM,CAAC;IAGX,SAAS,EAAE,MAAM,CAAC;IAGlB,OAAO,EAAE,MAAM,CAAC;IAGhB,UAAU,EAAE,MAAM,CAAC;IAGnB,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,aAAa,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAG,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { Column, Entity, PrimaryGeneratedColumn, Unique } from
|
|
10
|
+
import { Column, Entity, PrimaryGeneratedColumn, Unique } from 'typeorm';
|
|
11
11
|
let CommitmentEntity = class CommitmentEntity {
|
|
12
12
|
id;
|
|
13
13
|
extractor;
|
|
@@ -67,6 +67,7 @@ __decorate([
|
|
|
67
67
|
], CommitmentEntity.prototype, "spendHeight", void 0);
|
|
68
68
|
CommitmentEntity = __decorate([
|
|
69
69
|
Entity(),
|
|
70
|
-
Unique([
|
|
70
|
+
Unique(['boxId', 'extractor'])
|
|
71
71
|
], CommitmentEntity);
|
|
72
72
|
export default CommitmentEntity;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWl0bWVudEVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lbnRpdGllcy9Db21taXRtZW50RW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUl6RSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQUVwQixFQUFFLENBQVM7SUFHWCxTQUFTLENBQVM7SUFHbEIsT0FBTyxDQUFTO0lBR2hCLFVBQVUsQ0FBUztJQUduQixHQUFHLENBQVM7SUFHWixLQUFLLENBQVM7SUFHZCxLQUFLLENBQVM7SUFHZCxNQUFNLENBQVM7SUFHZixhQUFhLENBQVM7SUFHdEIsVUFBVSxDQUFVO0lBR3BCLFdBQVcsQ0FBVTtDQUN0QixDQUFBO0FBaENDO0lBQUMsc0JBQXNCLEVBQUU7OzRDQUNkO0FBRVg7SUFBQyxNQUFNLEVBQUU7O21EQUNTO0FBRWxCO0lBQUMsTUFBTSxFQUFFOztpREFDTztBQUVoQjtJQUFDLE1BQU0sRUFBRTs7b0RBQ1U7QUFFbkI7SUFBQyxNQUFNLEVBQUU7OzZDQUNHO0FBRVo7SUFBQyxNQUFNLEVBQUU7OytDQUNLO0FBRWQ7SUFBQyxNQUFNLEVBQUU7OytDQUNLO0FBRWQ7SUFBQyxNQUFNLEVBQUU7O2dEQUNNO0FBRWY7SUFBQyxNQUFNLEVBQUU7O3VEQUNhO0FBRXRCO0lBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDOztvREFDUDtBQUVwQjtJQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQzs7cURBQ047QUFoQ2pCLGdCQUFnQjtJQUZyQixNQUFNLEVBQUU7SUFDUixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7R0FDekIsZ0JBQWdCLENBaUNyQjtBQUVELGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW4sIEVudGl0eSwgUHJpbWFyeUdlbmVyYXRlZENvbHVtbiwgVW5pcXVlIH0gZnJvbSAndHlwZW9ybSc7XG5cbkBFbnRpdHkoKVxuQFVuaXF1ZShbJ2JveElkJywgJ2V4dHJhY3RvciddKVxuY2xhc3MgQ29tbWl0bWVudEVudGl0eSB7XG4gIEBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uKClcbiAgaWQ6IG51bWJlcjtcblxuICBAQ29sdW1uKClcbiAgZXh0cmFjdG9yOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGV2ZW50SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgY29tbWl0bWVudDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBXSUQ6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgYm94SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgYmxvY2s6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgaGVpZ2h0OiBudW1iZXI7XG5cbiAgQENvbHVtbigpXG4gIGJveFNlcmlhbGl6ZWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUgfSlcbiAgc3BlbmRCbG9jayE6IHN0cmluZztcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUgfSlcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRFbnRpdHk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventTriggerEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/EventTriggerEntity.ts"],"names":[],"mappings":"AAEA,cAEM,kBAAkB;IAEtB,EAAE,EAAE,MAAM,CAAC;IAGX,SAAS,EAAE,MAAM,CAAC;IAGlB,KAAK,EAAE,MAAM,CAAC;IAGd,aAAa,EAAE,MAAM,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;IAGlB,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;IAGnB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IAGtB,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,EAAG,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { Column, Entity, PrimaryGeneratedColumn, Unique } from
|
|
10
|
+
import { Column, Entity, PrimaryGeneratedColumn, Unique } from 'typeorm';
|
|
11
11
|
let EventTriggerEntity = class EventTriggerEntity {
|
|
12
12
|
id;
|
|
13
13
|
extractor;
|
|
@@ -27,6 +27,8 @@ let EventTriggerEntity = class EventTriggerEntity {
|
|
|
27
27
|
sourceTxId;
|
|
28
28
|
sourceBlockId;
|
|
29
29
|
WIDs;
|
|
30
|
+
spendBlock;
|
|
31
|
+
spendHeight;
|
|
30
32
|
};
|
|
31
33
|
__decorate([
|
|
32
34
|
PrimaryGeneratedColumn(),
|
|
@@ -100,8 +102,17 @@ __decorate([
|
|
|
100
102
|
Column(),
|
|
101
103
|
__metadata("design:type", String)
|
|
102
104
|
], EventTriggerEntity.prototype, "WIDs", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
Column({ nullable: true }),
|
|
107
|
+
__metadata("design:type", String)
|
|
108
|
+
], EventTriggerEntity.prototype, "spendBlock", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
Column({ nullable: true }),
|
|
111
|
+
__metadata("design:type", Number)
|
|
112
|
+
], EventTriggerEntity.prototype, "spendHeight", void 0);
|
|
103
113
|
EventTriggerEntity = __decorate([
|
|
104
114
|
Entity(),
|
|
105
|
-
Unique([
|
|
115
|
+
Unique(['boxId', 'extractor'])
|
|
106
116
|
], EventTriggerEntity);
|
|
107
117
|
export default EventTriggerEntity;
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyRW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VudGl0aWVzL0V2ZW50VHJpZ2dlckVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJekUsSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBa0I7SUFFdEIsRUFBRSxDQUFTO0lBR1gsU0FBUyxDQUFTO0lBR2xCLEtBQUssQ0FBUztJQUdkLGFBQWEsQ0FBUztJQUd0QixLQUFLLENBQVM7SUFHZCxNQUFNLENBQVM7SUFHZixTQUFTLENBQVM7SUFHbEIsT0FBTyxDQUFTO0lBR2hCLFdBQVcsQ0FBUztJQUdwQixTQUFTLENBQVM7SUFHbEIsTUFBTSxDQUFTO0lBR2YsU0FBUyxDQUFTO0lBR2xCLFVBQVUsQ0FBUztJQUduQixrQkFBa0IsQ0FBUztJQUczQixrQkFBa0IsQ0FBUztJQUczQixVQUFVLENBQVM7SUFHbkIsYUFBYSxDQUFTO0lBR3RCLElBQUksQ0FBUztJQUdiLFVBQVUsQ0FBVTtJQUdwQixXQUFXLENBQVU7Q0FDdEIsQ0FBQTtBQTNEQztJQUFDLHNCQUFzQixFQUFFOzs4Q0FDZDtBQUVYO0lBQUMsTUFBTSxFQUFFOztxREFDUztBQUVsQjtJQUFDLE1BQU0sRUFBRTs7aURBQ0s7QUFFZDtJQUFDLE1BQU0sRUFBRTs7eURBQ2E7QUFFdEI7SUFBQyxNQUFNLEVBQUU7O2lEQUNLO0FBRWQ7SUFBQyxNQUFNLEVBQUU7O2tEQUNNO0FBRWY7SUFBQyxNQUFNLEVBQUU7O3FEQUNTO0FBRWxCO0lBQUMsTUFBTSxFQUFFOzttREFDTztBQUVoQjtJQUFDLE1BQU0sRUFBRTs7dURBQ1c7QUFFcEI7SUFBQyxNQUFNLEVBQUU7O3FEQUNTO0FBRWxCO0lBQUMsTUFBTSxFQUFFOztrREFDTTtBQUVmO0lBQUMsTUFBTSxFQUFFOztxREFDUztBQUVsQjtJQUFDLE1BQU0sRUFBRTs7c0RBQ1U7QUFFbkI7SUFBQyxNQUFNLEVBQUU7OzhEQUNrQjtBQUUzQjtJQUFDLE1BQU0sRUFBRTs7OERBQ2tCO0FBRTNCO0lBQUMsTUFBTSxFQUFFOztzREFDVTtBQUVuQjtJQUFDLE1BQU0sRUFBRTs7eURBQ2E7QUFFdEI7SUFBQyxNQUFNLEVBQUU7O2dEQUNJO0FBRWI7SUFBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7O3NEQUNQO0FBRXBCO0lBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDOzt1REFDTjtBQTNEakIsa0JBQWtCO0lBRnZCLE1BQU0sRUFBRTtJQUNSLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztHQUN6QixrQkFBa0IsQ0E0RHZCO0FBRUQsZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uLCBVbmlxdWUgfSBmcm9tICd0eXBlb3JtJztcblxuQEVudGl0eSgpXG5AVW5pcXVlKFsnYm94SWQnLCAnZXh0cmFjdG9yJ10pXG5jbGFzcyBFdmVudFRyaWdnZXJFbnRpdHkge1xuICBAUHJpbWFyeUdlbmVyYXRlZENvbHVtbigpXG4gIGlkOiBudW1iZXI7XG5cbiAgQENvbHVtbigpXG4gIGV4dHJhY3Rvcjogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBib3hJZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBib3hTZXJpYWxpemVkOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGJsb2NrOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGhlaWdodDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oKVxuICBmcm9tQ2hhaW46IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgdG9DaGFpbjogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBmcm9tQWRkcmVzczogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICB0b0FkZHJlc3M6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgYW1vdW50OiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIGJyaWRnZUZlZTogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBuZXR3b3JrRmVlOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIHNvdXJjZUNoYWluVG9rZW5JZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICB0YXJnZXRDaGFpblRva2VuSWQ6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgc291cmNlVHhJZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBzb3VyY2VCbG9ja0lkOiBzdHJpbmc7XG5cbiAgQENvbHVtbigpXG4gIFdJRHM6IHN0cmluZztcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUgfSlcbiAgc3BlbmRCbG9jayE6IHN0cmluZztcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUgfSlcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50VHJpZ2dlckVudGl0eTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermitEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/PermitEntity.ts"],"names":[],"mappings":"AAEA,cAEM,YAAY;IAEhB,EAAE,EAAE,MAAM,CAAC;IAGX,SAAS,EAAE,MAAM,CAAC;IAGlB,KAAK,EAAE,MAAM,CAAC;IAGd,aAAa,EAAE,MAAM,CAAC;IAGtB,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,EAAG,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,YAAY,CAAC"}
|