@rosen-bridge/ergo-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/CHANGELOG.md +8 -0
- package/README.md +24 -0
- package/dist/const.d.ts +3 -0
- package/dist/const.d.ts.map +1 -0
- package/dist/const.js +3 -0
- package/dist/extractor/ergoExtractor.d.ts +34 -0
- package/dist/extractor/ergoExtractor.d.ts.map +1 -0
- package/dist/extractor/ergoExtractor.js +92 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/package.json +50 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# @rosen-bridge/ergo-observation-extractor
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## 0.1.0
|
|
6
|
+
|
|
7
|
+
- This package was **extracted** from `@rosen-bridge/observation-extractor`.
|
|
8
|
+
You can follow the previous history in the old package’s changelog. The last changelog update is available [here](https://github.com/rosen-bridge/scanner/blob/d4a5539b01c523b101104470b03ff7023a10b70b/packages/observation-extractor/CHANGELOG.md).
|
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# @rosen-bridge/ergo-observation-extractor
|
|
2
|
+
|
|
3
|
+
## Table of contents
|
|
4
|
+
|
|
5
|
+
- [Introduction](#introduction)
|
|
6
|
+
- [Installation](#installation)
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
Event observation data extractor for Ergo chain.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
npm:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npm i @rosen-bridge/ergo-observation-extractor
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
yarn:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
yarn add @rosen-bridge/ergo-observation-extractor
|
|
24
|
+
```
|
package/dist/const.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../lib/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,yBAAyB,QAAgB,CAAC"}
|
package/dist/const.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const ERGO_NATIVE_TOKEN = 'erg';
|
|
2
|
+
export const NUMBER_OF_BLOCKS_PER_YEAR = 30 * 24 * 365;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVSR09fTkFUSVZFX1RPS0VOID0gJ2VyZyc7XG5leHBvcnQgY29uc3QgTlVNQkVSX09GX0JMT0NLU19QRVJfWUVBUiA9IDMwICogMjQgKiAzNjU7XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
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 { Block, Transaction } from '@rosen-bridge/scanner-interfaces';
|
|
5
|
+
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
6
|
+
export declare class ErgoObservationExtractor extends AbstractExtractor<Transaction> {
|
|
7
|
+
readonly logger: AbstractLogger;
|
|
8
|
+
private readonly actions;
|
|
9
|
+
private readonly extractor;
|
|
10
|
+
static readonly FROM_CHAIN: string;
|
|
11
|
+
constructor(dataSource: DataSource, tokens: TokenMap, address: string, logger?: AbstractLogger);
|
|
12
|
+
/**
|
|
13
|
+
* get Id for current extractor
|
|
14
|
+
*/
|
|
15
|
+
getId: () => string;
|
|
16
|
+
/**
|
|
17
|
+
* gets block id and transactions corresponding to the block and saves if they are valid rosen
|
|
18
|
+
* transactions and in case of success return true and in case of failure returns false
|
|
19
|
+
* @param txs
|
|
20
|
+
* @param block
|
|
21
|
+
*/
|
|
22
|
+
processTransactions: (txs: Array<Transaction>, block: Block) => Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* fork one block and remove all stored information for this block
|
|
25
|
+
* @param hash: block hash
|
|
26
|
+
*/
|
|
27
|
+
forkBlock: (hash: string) => Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Extractor box initialization
|
|
30
|
+
* No action needed in cardano extractors
|
|
31
|
+
*/
|
|
32
|
+
initializeBoxes: () => Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ergoExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ergoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoExtractor.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;AAEhD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAKrE,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAU;gBAG1C,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc;IAQzB;;OAEG;IACH,KAAK,eAAsC;IAE3C;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAwDjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
import { blake2b } from 'blakejs';
|
|
3
|
+
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
4
|
+
import { ErgoNodeRosenExtractor } from '@rosen-bridge/rosen-extractor';
|
|
5
|
+
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
6
|
+
import { ObservationEntityAction } from '@rosen-bridge/abstract-observation-extractor';
|
|
7
|
+
import { NUMBER_OF_BLOCKS_PER_YEAR } from '../const';
|
|
8
|
+
export class ErgoObservationExtractor extends AbstractExtractor {
|
|
9
|
+
logger;
|
|
10
|
+
actions;
|
|
11
|
+
extractor;
|
|
12
|
+
static FROM_CHAIN = 'ergo';
|
|
13
|
+
constructor(dataSource, tokens, address, logger) {
|
|
14
|
+
super();
|
|
15
|
+
this.logger = logger ? logger : new DummyLogger();
|
|
16
|
+
this.actions = new ObservationEntityAction(dataSource, this.logger);
|
|
17
|
+
this.extractor = new ErgoNodeRosenExtractor(address, tokens, this.logger);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* get Id for current extractor
|
|
21
|
+
*/
|
|
22
|
+
getId = () => 'ergo-observation-extractor';
|
|
23
|
+
/**
|
|
24
|
+
* gets block id and transactions corresponding to the block and saves if they are valid rosen
|
|
25
|
+
* transactions and in case of success return true and in case of failure returns false
|
|
26
|
+
* @param txs
|
|
27
|
+
* @param block
|
|
28
|
+
*/
|
|
29
|
+
processTransactions = (txs, block) => {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
try {
|
|
32
|
+
const observations = [];
|
|
33
|
+
txs.forEach((transaction) => {
|
|
34
|
+
for (let i = 0; i < transaction.outputs.length; i++) {
|
|
35
|
+
const box = transaction.outputs[i];
|
|
36
|
+
if (block.height - Number(box.creationHeight) >
|
|
37
|
+
NUMBER_OF_BLOCKS_PER_YEAR) {
|
|
38
|
+
this.logger.debug(`Skipping tx [${transaction.id}], box [${box.boxId}] creation_height [${box.creationHeight}] is more than a year ago [currentHeight: ${block.height}]`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const data = this.extractor.get(transaction);
|
|
43
|
+
if (data) {
|
|
44
|
+
const requestId = Buffer.from(blake2b(transaction.id, undefined, 32)).toString('hex');
|
|
45
|
+
observations.push({
|
|
46
|
+
fromChain: ErgoObservationExtractor.FROM_CHAIN,
|
|
47
|
+
toChain: data.toChain,
|
|
48
|
+
networkFee: data.networkFee,
|
|
49
|
+
bridgeFee: data.bridgeFee,
|
|
50
|
+
amount: data.amount,
|
|
51
|
+
sourceChainTokenId: data.sourceChainTokenId,
|
|
52
|
+
targetChainTokenId: data.targetChainTokenId,
|
|
53
|
+
sourceTxId: data.sourceTxId,
|
|
54
|
+
sourceBlockId: block.hash,
|
|
55
|
+
requestId: requestId,
|
|
56
|
+
toAddress: data.toAddress,
|
|
57
|
+
fromAddress: data.fromAddress,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.actions
|
|
62
|
+
.storeObservations(observations, block, this.getId())
|
|
63
|
+
.then((status) => {
|
|
64
|
+
resolve(status);
|
|
65
|
+
})
|
|
66
|
+
.catch((e) => {
|
|
67
|
+
this.logger.error(`An error uncached exception occurred during store ergo observation: ${e}`);
|
|
68
|
+
reject(e);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
this.logger.error(`An error occurred while saving block ${block}: [${e}]`);
|
|
73
|
+
reject(e);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* fork one block and remove all stored information for this block
|
|
79
|
+
* @param hash: block hash
|
|
80
|
+
*/
|
|
81
|
+
forkBlock = async (hash) => {
|
|
82
|
+
await this.actions.deleteBlockObservation(hash, this.getId());
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Extractor box initialization
|
|
86
|
+
* No action needed in cardano extractors
|
|
87
|
+
*/
|
|
88
|
+
initializeBoxes = async () => {
|
|
89
|
+
return;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvZXJnb0V4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUE4QjtJQUNqRSxNQUFNLENBQWlCO0lBQ2YsT0FBTyxDQUEwQjtJQUNqQyxTQUFTLENBQXlCO0lBQ25ELE1BQU0sQ0FBVSxVQUFVLEdBQVcsTUFBTSxDQUFDO0lBRTVDLFlBQ0UsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsT0FBZSxFQUNmLE1BQXVCO1FBRXZCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQXVCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksc0JBQXNCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lB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Q0FBQyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxlQUFlLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDM0IsT0FBTztJQUNULENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IGJsYWtlMmIgfSBmcm9tICdibGFrZWpzJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgRXJnb05vZGVSb3NlbkV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvcm9zZW4tZXh0cmFjdG9yJztcbmltcG9ydCB7IEJsb2NrLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgRXh0cmFjdGVkT2JzZXJ2YXRpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBPYnNlcnZhdGlvbkVudGl0eUFjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3Qtb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcbmltcG9ydCB7IE5VTUJFUl9PRl9CTE9DS1NfUEVSX1lFQVIgfSBmcm9tICcuLi9jb25zdCc7XG5cbmV4cG9ydCBjbGFzcyBFcmdvT2JzZXJ2YXRpb25FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IE9ic2VydmF0aW9uRW50aXR5QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4dHJhY3RvcjogRXJnb05vZGVSb3NlbkV4dHJhY3RvcjtcbiAgc3RhdGljIHJlYWRvbmx5IEZST01fQ0hBSU46IHN0cmluZyA9ICdlcmdvJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgT2JzZXJ2YXRpb25FbnRpdHlBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXh0cmFjdG9yID0gbmV3IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IoYWRkcmVzcywgdG9rZW5zLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiAnZXJnby1vYnNlcnZhdGlvbi1leHRyYWN0b3InO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvYnNlcnZhdGlvbnM6IEFycmF5PEV4dHJhY3RlZE9ic2VydmF0aW9uPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zYWN0aW9uLm91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGJveCA9IHRyYW5zYWN0aW9uLm91dHB1dHNbaV07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGJsb2NrLmhlaWdodCAtIE51bWJlcihib3guY3JlYXRpb25IZWlnaHQpID5cbiAgICAgICAgICAgICAgTlVNQkVSX09GX0JMT0NLU19QRVJfWUVBUlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBTa2lwcGluZyB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dLCBib3ggWyR7Ym94LmJveElkfV0gY3JlYXRpb25faGVpZ2h0IFske2JveC5jcmVhdGlvbkhlaWdodH1dIGlzIG1vcmUgdGhhbiBhIHllYXIgYWdvIFtjdXJyZW50SGVpZ2h0OiAke2Jsb2NrLmhlaWdodH1dYFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmV4dHJhY3Rvci5nZXQodHJhbnNhY3Rpb24pO1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgYmxha2UyYih0cmFuc2FjdGlvbi5pZCwgdW5kZWZpbmVkLCAzMilcbiAgICAgICAgICAgICkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgb2JzZXJ2YXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmcm9tQ2hhaW46IEVyZ29PYnNlcnZhdGlvbkV4dHJhY3Rvci5GUk9NX0NIQUlOLFxuICAgICAgICAgICAgICB0b0NoYWluOiBkYXRhLnRvQ2hhaW4sXG4gICAgICAgICAgICAgIG5ldHdvcmtGZWU6IGRhdGEubmV0d29ya0ZlZSxcbiAgICAgICAgICAgICAgYnJpZGdlRmVlOiBkYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgICAgICAgYW1vdW50OiBkYXRhLmFtb3VudCxcbiAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBkYXRhLnNvdXJjZUNoYWluVG9rZW5JZCxcbiAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBkYXRhLnRhcmdldENoYWluVG9rZW5JZCxcbiAgICAgICAgICAgICAgc291cmNlVHhJZDogZGF0YS5zb3VyY2VUeElkLFxuICAgICAgICAgICAgICBzb3VyY2VCbG9ja0lkOiBibG9jay5oYXNoLFxuICAgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgdG9BZGRyZXNzOiBkYXRhLnRvQWRkcmVzcyxcbiAgICAgICAgICAgICAgZnJvbUFkZHJlc3M6IGRhdGEuZnJvbUFkZHJlc3MsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVPYnNlcnZhdGlvbnMob2JzZXJ2YXRpb25zLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoc3RhdHVzKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgIGBBbiBlcnJvciB1bmNhY2hlZCBleGNlcHRpb24gb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGVyZ28gb2JzZXJ2YXRpb246ICR7ZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2F2aW5nIGJsb2NrICR7YmxvY2t9OiBbJHtlfV1gXG4gICAgICAgICk7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrT2JzZXJ2YXRpb24oaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdG9yIGJveCBpbml0aWFsaXphdGlvblxuICAgKiBObyBhY3Rpb24gbmVlZGVkIGluIGNhcmRhbm8gZXh0cmFjdG9yc1xuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cbiJdfQ==
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './extractor/ergoExtractor';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXh0cmFjdG9yL2VyZ29FeHRyYWN0b3InO1xuIl19
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rosen-bridge/ergo-observation-extractor",
|
|
3
|
+
"version": "0.1.0-52fc0239",
|
|
4
|
+
"description": "Event observation data extractor for Ergo chain",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/rosen-bridge/scanner.git"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": "Rosen Team",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "dist/index.js",
|
|
13
|
+
"types": "dist/index.d.ts",
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"CHANGELOG.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc --build tsconfig.build.json",
|
|
20
|
+
"coverage": "npm run test -- --coverage",
|
|
21
|
+
"lint": "eslint --fix . && npm run prettify",
|
|
22
|
+
"prettify": "prettier --write . --ignore-path ./.gitignore",
|
|
23
|
+
"release": "npm run test -- --run && npm run build && npm publish --access public",
|
|
24
|
+
"test": "NODE_OPTIONS='--import tsx' vitest",
|
|
25
|
+
"type-check": "tsc --noEmit"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^22.18.0",
|
|
29
|
+
"@rosen-bridge/abstract-scanner": "^0.1.0-52fc0239",
|
|
30
|
+
"ergo-lib-wasm-nodejs": "^0.24.1",
|
|
31
|
+
"@rosen-bridge/json-bigint": "^0.1.0",
|
|
32
|
+
"@vitest/coverage-istanbul": "^3.1.4",
|
|
33
|
+
"tsx": "^4.19.4",
|
|
34
|
+
"typescript": "^5.3.3",
|
|
35
|
+
"vitest": "^3.1.4"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@rosen-bridge/abstract-observation-extractor": "^0.1.0-52fc0239",
|
|
39
|
+
"@rosen-bridge/abstract-extractor": "^2.0.3-52fc0239",
|
|
40
|
+
"@rosen-bridge/abstract-logger": "^2.0.1",
|
|
41
|
+
"@rosen-bridge/rosen-extractor": "^8.0.1",
|
|
42
|
+
"@rosen-bridge/scanner-interfaces": "^0.1.1-52fc0239",
|
|
43
|
+
"@rosen-bridge/tokens": "^3.1.1",
|
|
44
|
+
"blakejs": "^1.2.1",
|
|
45
|
+
"@rosen-bridge/extended-typeorm": "^0.2.1"
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=22.18.0"
|
|
49
|
+
}
|
|
50
|
+
}
|