@rosen-bridge/evm-observation-extractor 5.2.2 → 5.3.0-a25ac382

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 CHANGED
@@ -1,5 +1,28 @@
1
1
  # @rosen-bridge/evm-observation-extractor
2
2
 
3
+ ## 5.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add rawData to the return data of the extractor's `processTransactions` method
8
+
9
+ ### Patch Changes
10
+
11
+ - Fix package-lock and move typescript and types/node into root
12
+ - Update eslint and plugins:
13
+ - Apply new rules such as sort imports and file name
14
+ - Update dependencies
15
+ - @rosen-bridge/extended-typeorm@1.0.1
16
+ - @rosen-clients/rate-limited-axios@1.1.0
17
+ - @rosen-bridge/rosen-extractor@10.1.1
18
+ - @rosen-bridge/tokens@4.0.1
19
+ - @rosen-bridge/abstract-logger@3.0.1
20
+ - @rosen-bridge/json-bigint@1.1.0
21
+ - @rosen-clients/ergo-explorer@2.1.0
22
+ - @rosen-clients/ergo-node@3.1.0
23
+ - @rosen-bridge/abstract-observation-extractor@0.2.0
24
+ - @rosen-bridge/scanner-interfaces@0.2.1
25
+
3
26
  ## 5.2.2
4
27
 
5
28
  ### Patch Changes
@@ -1,7 +1,7 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
- import { TokenMap } from '@rosen-bridge/tokens';
3
2
  import { DataSource } from '@rosen-bridge/extended-typeorm';
4
- import { EvmRpcObservationExtractor } from './EvmRpcObservationExtractor';
3
+ import { TokenMap } from '@rosen-bridge/tokens';
4
+ import { EvmRpcObservationExtractor } from './evmRpcObservationExtractor';
5
5
  export declare class BinanceRpcObservationExtractor extends EvmRpcObservationExtractor {
6
6
  readonly FROM_CHAIN = "binance";
7
7
  constructor(lockAddress: string, dataSource: DataSource, tokens: TokenMap, logger?: AbstractLogger);
@@ -10,4 +10,4 @@ export declare class BinanceRpcObservationExtractor extends EvmRpcObservationExt
10
10
  */
11
11
  getId: () => string;
12
12
  }
13
- //# sourceMappingURL=BinanceRpcObservationExtractor.d.ts.map
13
+ //# sourceMappingURL=binanceRpcObservationExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binanceRpcObservationExtractor.d.ts","sourceRoot":"","sources":["../lib/binanceRpcObservationExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,8BAA+B,SAAQ,0BAA0B;IAC5E,QAAQ,CAAC,UAAU,aAAa;gBAG9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAgBzB;;OAEG;IACH,KAAK,eAAiC;CACvC"}
@@ -0,0 +1,13 @@
1
+ import { EvmEthersRosenExtractor } from '@rosen-bridge/rosen-extractor';
2
+ import { EvmRpcObservationExtractor } from './evmRpcObservationExtractor';
3
+ export class BinanceRpcObservationExtractor extends EvmRpcObservationExtractor {
4
+ FROM_CHAIN = 'binance';
5
+ constructor(lockAddress, dataSource, tokens, logger) {
6
+ super(dataSource, tokens, new EvmEthersRosenExtractor(lockAddress, tokens, 'binance', 'bnb', logger), logger);
7
+ }
8
+ /**
9
+ * gets Id for current extractor
10
+ */
11
+ getId = () => 'binance-rpc-extractor';
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYW5jZVJwY09ic2VydmF0aW9uRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2JpbmFuY2VScGNPYnNlcnZhdGlvbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBQ25FLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFFaEMsWUFDRSxXQUFtQixFQUNuQixVQUFzQixFQUN0QixNQUFnQixFQUNoQixNQUF1QjtRQUV2QixLQUFLLENBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixJQUFJLHVCQUF1QixDQUN6QixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxDQUNQLEVBQ0QsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Q0FDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Jvc2VuLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcblxuaW1wb3J0IHsgRXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgfSBmcm9tICcuL2V2bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yJztcblxuZXhwb3J0IGNsYXNzIEJpbmFuY2VScGNPYnNlcnZhdGlvbkV4dHJhY3RvciBleHRlbmRzIEV2bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yIHtcbiAgcmVhZG9ubHkgRlJPTV9DSEFJTiA9ICdiaW5hbmNlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2NrQWRkcmVzczogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcixcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBkYXRhU291cmNlLFxuICAgICAgdG9rZW5zLFxuICAgICAgbmV3IEV2bUV0aGVyc1Jvc2VuRXh0cmFjdG9yKFxuICAgICAgICBsb2NrQWRkcmVzcyxcbiAgICAgICAgdG9rZW5zLFxuICAgICAgICAnYmluYW5jZScsXG4gICAgICAgICdibmInLFxuICAgICAgICBsb2dnZXIsXG4gICAgICApLFxuICAgICAgbG9nZ2VyLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gJ2JpbmFuY2UtcnBjLWV4dHJhY3Rvcic7XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
- import { TokenMap } from '@rosen-bridge/tokens';
3
2
  import { DataSource } from '@rosen-bridge/extended-typeorm';
4
- import { EvmRpcObservationExtractor } from './EvmRpcObservationExtractor';
3
+ import { TokenMap } from '@rosen-bridge/tokens';
4
+ import { EvmRpcObservationExtractor } from './evmRpcObservationExtractor';
5
5
  export declare class EthereumRpcObservationExtractor extends EvmRpcObservationExtractor {
6
6
  readonly FROM_CHAIN = "ethereum";
7
7
  constructor(lockAddress: string, dataSource: DataSource, tokens: TokenMap, logger?: AbstractLogger);
@@ -10,4 +10,4 @@ export declare class EthereumRpcObservationExtractor extends EvmRpcObservationEx
10
10
  */
11
11
  getId: () => string;
12
12
  }
13
- //# sourceMappingURL=EthereumRpcObservationExtractor.d.ts.map
13
+ //# sourceMappingURL=ethereumRpcObservationExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereumRpcObservationExtractor.d.ts","sourceRoot":"","sources":["../lib/ethereumRpcObservationExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,+BAAgC,SAAQ,0BAA0B;IAC7E,QAAQ,CAAC,UAAU,cAAc;gBAG/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAgBzB;;OAEG;IACH,KAAK,eAAkC;CACxC"}
@@ -0,0 +1,13 @@
1
+ import { EvmEthersRosenExtractor } from '@rosen-bridge/rosen-extractor';
2
+ import { EvmRpcObservationExtractor } from './evmRpcObservationExtractor';
3
+ export class EthereumRpcObservationExtractor extends EvmRpcObservationExtractor {
4
+ FROM_CHAIN = 'ethereum';
5
+ constructor(lockAddress, dataSource, tokens, logger) {
6
+ super(dataSource, tokens, new EvmEthersRosenExtractor(lockAddress, tokens, 'ethereum', 'eth', logger), logger);
7
+ }
8
+ /**
9
+ * gets Id for current extractor
10
+ */
11
+ getId = () => 'ethereum-rpc-extractor';
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoZXJldW1ScGNPYnNlcnZhdGlvbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9ldGhlcmV1bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTFFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSwwQkFBMEI7SUFDcEUsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUVqQyxZQUNFLFdBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLE1BQWdCLEVBQ2hCLE1BQXVCO1FBRXZCLEtBQUssQ0FDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksdUJBQXVCLENBQ3pCLFdBQVcsRUFDWCxNQUFNLEVBQ04sVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLENBQ1AsRUFDRCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztDQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvcm9zZW4tZXh0cmFjdG9yJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuXG5pbXBvcnQgeyBFdm1ScGNPYnNlcnZhdGlvbkV4dHJhY3RvciB9IGZyb20gJy4vZXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRXRoZXJldW1ScGNPYnNlcnZhdGlvbkV4dHJhY3RvciBleHRlbmRzIEV2bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yIHtcbiAgcmVhZG9ubHkgRlJPTV9DSEFJTiA9ICdldGhlcmV1bSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgZGF0YVNvdXJjZSxcbiAgICAgIHRva2VucyxcbiAgICAgIG5ldyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvcihcbiAgICAgICAgbG9ja0FkZHJlc3MsXG4gICAgICAgIHRva2VucyxcbiAgICAgICAgJ2V0aGVyZXVtJyxcbiAgICAgICAgJ2V0aCcsXG4gICAgICAgIGxvZ2dlcixcbiAgICAgICksXG4gICAgICBsb2dnZXIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiAnZXRoZXJldW0tcnBjLWV4dHJhY3Rvcic7XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { AbstractObservationExtractor } from '@rosen-bridge/abstract-observation-extractor';
2
1
  import { TransactionResponse } from 'ethers';
2
+ import { AbstractObservationExtractor } from '@rosen-bridge/abstract-observation-extractor';
3
3
  import { Block } from '@rosen-bridge/scanner-interfaces';
4
4
  export declare abstract class EvmRpcObservationExtractor extends AbstractObservationExtractor<TransactionResponse> {
5
5
  /**
@@ -15,4 +15,4 @@ export declare abstract class EvmRpcObservationExtractor extends AbstractObserva
15
15
  */
16
16
  getTxId: (tx: TransactionResponse) => string;
17
17
  }
18
- //# sourceMappingURL=EvmRpcObservationExtractor.d.ts.map
18
+ //# sourceMappingURL=evmRpcObservationExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmRpcObservationExtractor.d.ts","sourceRoot":"","sources":["../lib/evmRpcObservationExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EACL,4BAA4B,EAE7B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,8BAAsB,0BAA2B,SAAQ,4BAA4B,CAAC,mBAAmB,CAAC;IACxG;;;;;;OAMG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,mBAAmB,CAAC,EAC/B,OAAO,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAwCjB;IAEF;;OAEG;IACH,OAAO,GAAI,IAAI,mBAAmB,YAOhC;CACH"}
@@ -0,0 +1,60 @@
1
+ import { blake2b } from 'blakejs';
2
+ import { isCallException } from 'ethers';
3
+ import { AbstractObservationExtractor, } from '@rosen-bridge/abstract-observation-extractor';
4
+ export class EvmRpcObservationExtractor extends AbstractObservationExtractor {
5
+ /**
6
+ * gets block id and transactions corresponding to the block and saves if they are valid rosen
7
+ * transactions and in case of success return true and in case of failure returns false
8
+ * additionally, it returns false if the transaction is failed
9
+ * @param block
10
+ * @param txs
11
+ */
12
+ processTransactions = async (txs, block) => {
13
+ const observations = [];
14
+ for (const transaction of txs) {
15
+ const data = this.extractor.get(transaction);
16
+ if (data) {
17
+ try {
18
+ const result = await transaction.wait(0);
19
+ if (result) {
20
+ const requestId = Buffer.from(blake2b(this.getTxId(transaction), undefined, 32)).toString('hex');
21
+ observations.push({
22
+ fromChain: this.FROM_CHAIN,
23
+ toChain: data.toChain,
24
+ amount: data.amount,
25
+ sourceChainTokenId: data.sourceChainTokenId,
26
+ targetChainTokenId: data.targetChainTokenId,
27
+ sourceTxId: data.sourceTxId,
28
+ bridgeFee: data.bridgeFee,
29
+ networkFee: data.networkFee,
30
+ sourceBlockId: block.hash,
31
+ requestId: requestId,
32
+ toAddress: data.toAddress,
33
+ fromAddress: data.fromAddress,
34
+ rawData: data.rawData,
35
+ });
36
+ }
37
+ else
38
+ throw Error(`Impossible behavior: Evm Tx [${transaction.hash}] is included in block [${block.hash}] but waiting resulted in null or undefined`);
39
+ }
40
+ catch (e) {
41
+ if (isCallException(e))
42
+ this.logger.debug(`found valid lock transaction [${transaction.hash}] but tx is failed`);
43
+ else
44
+ throw e;
45
+ }
46
+ }
47
+ }
48
+ return this.actions.storeObservations(observations, block, this.getId());
49
+ };
50
+ /**
51
+ * gets transaction id from TransactionType
52
+ */
53
+ getTxId = (tx) => {
54
+ if (tx.hash == null) {
55
+ throw Error('ImpossibleBehavior: Transactions coming from RPC have to be signed.');
56
+ }
57
+ return tx.hash;
58
+ };
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvZXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUF1QixNQUFNLFFBQVEsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsNEJBQTRCLEdBRTdCLE1BQU0sOENBQThDLENBQUM7QUFHdEQsTUFBTSxPQUFnQiwwQkFBMkIsU0FBUSw0QkFBaUQ7SUFDeEc7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLEdBQUcsS0FBSyxFQUN6QixHQUErQixFQUMvQixLQUFZLEVBQ00sRUFBRTtRQUNwQixNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO1FBQ3JELEtBQUssTUFBTSxXQUFXLElBQUksR0FBRyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDbEQsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUM7NEJBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTs0QkFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPOzRCQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07NEJBQ25CLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7NEJBQzNDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7NEJBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTs0QkFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7NEJBQzNCLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSTs0QkFDekIsU0FBUyxFQUFFLFNBQVM7NEJBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzs0QkFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXOzRCQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87eUJBQ3RCLENBQUMsQ0FBQztvQkFDTCxDQUFDOzt3QkFDQyxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsV0FBVyxDQUFDLElBQUksMkJBQTJCLEtBQUssQ0FBQyxJQUFJLDZDQUE2QyxDQUNuSSxDQUFDO2dCQUNOLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGlDQUFpQyxXQUFXLENBQUMsSUFBSSxvQkFBb0IsQ0FDdEUsQ0FBQzs7d0JBQ0MsTUFBTSxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxPQUFPLEdBQUcsQ0FBQyxFQUF1QixFQUFFLEVBQUU7UUFDcEMsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sS0FBSyxDQUNULHFFQUFxRSxDQUN0RSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQztJQUNqQixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJsYWtlMmIgfSBmcm9tICdibGFrZWpzJztcbmltcG9ydCB7IGlzQ2FsbEV4Y2VwdGlvbiwgVHJhbnNhY3Rpb25SZXNwb25zZSB9IGZyb20gJ2V0aGVycyc7XG5cbmltcG9ydCB7XG4gIEFic3RyYWN0T2JzZXJ2YXRpb25FeHRyYWN0b3IsXG4gIEV4dHJhY3RlZE9ic2VydmF0aW9uLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEV2bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RPYnNlcnZhdGlvbkV4dHJhY3RvcjxUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogYWRkaXRpb25hbGx5LCBpdCByZXR1cm5zIGZhbHNlIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBmYWlsZWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvblJlc3BvbnNlPixcbiAgICBibG9jazogQmxvY2ssXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IG9ic2VydmF0aW9uczogQXJyYXk8RXh0cmFjdGVkT2JzZXJ2YXRpb24+ID0gW107XG4gICAgZm9yIChjb25zdCB0cmFuc2FjdGlvbiBvZiB0eHMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmV4dHJhY3Rvci5nZXQodHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2FjdGlvbi53YWl0KDApO1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICBibGFrZTJiKHRoaXMuZ2V0VHhJZCh0cmFuc2FjdGlvbiksIHVuZGVmaW5lZCwgMzIpLFxuICAgICAgICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgICAgICBvYnNlcnZhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgIGZyb21DaGFpbjogdGhpcy5GUk9NX0NIQUlOLFxuICAgICAgICAgICAgICB0b0NoYWluOiBkYXRhLnRvQ2hhaW4sXG4gICAgICAgICAgICAgIGFtb3VudDogZGF0YS5hbW91bnQsXG4gICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogZGF0YS5zb3VyY2VDaGFpblRva2VuSWQsXG4gICAgICAgICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogZGF0YS50YXJnZXRDaGFpblRva2VuSWQsXG4gICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IGRhdGEuc291cmNlVHhJZCxcbiAgICAgICAgICAgICAgYnJpZGdlRmVlOiBkYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgICAgICAgbmV0d29ya0ZlZTogZGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICAgICAgICBzb3VyY2VCbG9ja0lkOiBibG9jay5oYXNoLFxuICAgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgdG9BZGRyZXNzOiBkYXRhLnRvQWRkcmVzcyxcbiAgICAgICAgICAgICAgZnJvbUFkZHJlc3M6IGRhdGEuZnJvbUFkZHJlc3MsXG4gICAgICAgICAgICAgIHJhd0RhdGE6IGRhdGEucmF3RGF0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIGBJbXBvc3NpYmxlIGJlaGF2aW9yOiBFdm0gVHggWyR7dHJhbnNhY3Rpb24uaGFzaH1dIGlzIGluY2x1ZGVkIGluIGJsb2NrIFske2Jsb2NrLmhhc2h9XSBidXQgd2FpdGluZyByZXN1bHRlZCBpbiBudWxsIG9yIHVuZGVmaW5lZGAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGlzQ2FsbEV4Y2VwdGlvbihlKSlcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgZm91bmQgdmFsaWQgbG9jayB0cmFuc2FjdGlvbiBbJHt0cmFuc2FjdGlvbi5oYXNofV0gYnV0IHR4IGlzIGZhaWxlZGAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGVsc2UgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zLnN0b3JlT2JzZXJ2YXRpb25zKG9ic2VydmF0aW9ucywgYmxvY2ssIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgdHJhbnNhY3Rpb24gaWQgZnJvbSBUcmFuc2FjdGlvblR5cGVcbiAgICovXG4gIGdldFR4SWQgPSAodHg6IFRyYW5zYWN0aW9uUmVzcG9uc2UpID0+IHtcbiAgICBpZiAodHguaGFzaCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ0ltcG9zc2libGVCZWhhdmlvcjogVHJhbnNhY3Rpb25zIGNvbWluZyBmcm9tIFJQQyBoYXZlIHRvIGJlIHNpZ25lZC4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4Lmhhc2g7XG4gIH07XG59XG4iXX0=
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './BinanceRpcObservationExtractor';
2
- export * from './EthereumRpcObservationExtractor';
3
- export * from './EvmRpcObservationExtractor';
1
+ export * from './binanceRpcObservationExtractor';
2
+ export * from './ethereumRpcObservationExtractor';
3
+ export * from './evmRpcObservationExtractor';
4
4
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from './BinanceRpcObservationExtractor';
2
- export * from './EthereumRpcObservationExtractor';
3
- export * from './EvmRpcObservationExtractor';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0JpbmFuY2VScGNPYnNlcnZhdGlvbkV4dHJhY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL0V0aGVyZXVtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9Fdm1ScGNPYnNlcnZhdGlvbkV4dHJhY3Rvcic7XG4iXX0=
1
+ export * from './binanceRpcObservationExtractor';
2
+ export * from './ethereumRpcObservationExtractor';
3
+ export * from './evmRpcObservationExtractor';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JpbmFuY2VScGNPYnNlcnZhdGlvbkV4dHJhY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL2V0aGVyZXVtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9ldm1ScGNPYnNlcnZhdGlvbkV4dHJhY3Rvcic7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/evm-observation-extractor",
3
- "version": "5.2.2",
3
+ "version": "5.3.0-a25ac382",
4
4
  "description": "Event observation data extractor for EVM-compatible chains",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,32 +17,33 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "build": "tsc --build tsconfig.build.json",
20
+ "clean": "rimraf dist && rimraf tsconfig.build.tsbuildinfo",
20
21
  "coverage": "npm run test -- --coverage",
21
22
  "lint": "eslint --fix . && npm run prettify",
22
- "prettify": "prettier --write . --ignore-path ./.gitignore",
23
- "release": "npm run build && npm publish --access public",
23
+ "lint:check": "eslint . && npm run prettify:check",
24
+ "prettify": "prettier --write . --ignore-path ../../../.gitignore",
25
+ "prettify:check": "prettier --check . --ignore-path ../../../.gitignore",
26
+ "release": "npm run test -- --run && npm run clean && npm run build && npm publish --access public",
24
27
  "test": "NODE_OPTIONS='--import tsx' vitest",
25
28
  "type-check": "tsc --noEmit"
26
29
  },
30
+ "dependencies": {
31
+ "@rosen-bridge/abstract-logger": "^3.0.1",
32
+ "@rosen-bridge/abstract-observation-extractor": "^0.2.0-a25ac382",
33
+ "@rosen-bridge/extended-typeorm": "^1.0.1",
34
+ "@rosen-bridge/rosen-extractor": "^11.0.0",
35
+ "@rosen-bridge/scanner-interfaces": "^0.2.1-a25ac382",
36
+ "@rosen-bridge/tokens": "^4.0.1",
37
+ "blakejs": "^1.2.1",
38
+ "ethers": "6.13.2"
39
+ },
27
40
  "devDependencies": {
28
- "@rosen-bridge/abstract-scanner": "^0.2.0",
29
- "@types/node": "^22.18.0",
41
+ "@rosen-bridge/abstract-scanner": "^0.2.1-a25ac382",
30
42
  "@vitest/coverage-istanbul": "^3.1.4",
31
43
  "tsx": "^4.19.4",
32
- "typescript": "^5.3.3",
33
44
  "vitest": "^3.1.4"
34
45
  },
35
46
  "engines": {
36
47
  "node": ">=22.18.0"
37
- },
38
- "dependencies": {
39
- "@rosen-bridge/abstract-logger": "^3.0.0",
40
- "@rosen-bridge/abstract-observation-extractor": "^0.1.2",
41
- "@rosen-bridge/extended-typeorm": "^1.0.0",
42
- "@rosen-bridge/rosen-extractor": "^10.0.0",
43
- "@rosen-bridge/scanner-interfaces": "^0.2.0",
44
- "@rosen-bridge/tokens": "^4.0.0",
45
- "blakejs": "^1.2.1",
46
- "ethers": "6.13.2"
47
48
  }
48
49
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"BinanceRpcObservationExtractor.d.ts","sourceRoot":"","sources":["../lib/BinanceRpcObservationExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,8BAA+B,SAAQ,0BAA0B;IAC5E,QAAQ,CAAC,UAAU,aAAa;gBAG9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAgBzB;;OAEG;IACH,KAAK,eAAiC;CACvC"}
@@ -1,13 +0,0 @@
1
- import { EvmEthersRosenExtractor } from '@rosen-bridge/rosen-extractor';
2
- import { EvmRpcObservationExtractor } from './EvmRpcObservationExtractor';
3
- export class BinanceRpcObservationExtractor extends EvmRpcObservationExtractor {
4
- FROM_CHAIN = 'binance';
5
- constructor(lockAddress, dataSource, tokens, logger) {
6
- super(dataSource, tokens, new EvmEthersRosenExtractor(lockAddress, tokens, 'binance', 'bnb', logger), logger);
7
- }
8
- /**
9
- * gets Id for current extractor
10
- */
11
- getId = () => 'binance-rpc-extractor';
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYW5jZVJwY09ic2VydmF0aW9uRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL0JpbmFuY2VScGNPYnNlcnZhdGlvbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBQ25FLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFFaEMsWUFDRSxXQUFtQixFQUNuQixVQUFzQixFQUN0QixNQUFnQixFQUNoQixNQUF1QjtRQUV2QixLQUFLLENBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixJQUFJLHVCQUF1QixDQUN6QixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxDQUNQLEVBQ0QsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Q0FDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEV2bUV0aGVyc1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9yb3Nlbi1leHRyYWN0b3InO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEV2bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yIH0gZnJvbSAnLi9Fdm1ScGNPYnNlcnZhdGlvbkV4dHJhY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBCaW5hbmNlUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgZXh0ZW5kcyBFdm1ScGNPYnNlcnZhdGlvbkV4dHJhY3RvciB7XG4gIHJlYWRvbmx5IEZST01fQ0hBSU4gPSAnYmluYW5jZSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgZGF0YVNvdXJjZSxcbiAgICAgIHRva2VucyxcbiAgICAgIG5ldyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvcihcbiAgICAgICAgbG9ja0FkZHJlc3MsXG4gICAgICAgIHRva2VucyxcbiAgICAgICAgJ2JpbmFuY2UnLFxuICAgICAgICAnYm5iJyxcbiAgICAgICAgbG9nZ2VyLFxuICAgICAgKSxcbiAgICAgIGxvZ2dlcixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldHMgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+ICdiaW5hbmNlLXJwYy1leHRyYWN0b3InO1xufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthereumRpcObservationExtractor.d.ts","sourceRoot":"","sources":["../lib/EthereumRpcObservationExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,+BAAgC,SAAQ,0BAA0B;IAC7E,QAAQ,CAAC,UAAU,cAAc;gBAG/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAgBzB;;OAEG;IACH,KAAK,eAAkC;CACxC"}
@@ -1,13 +0,0 @@
1
- import { EvmEthersRosenExtractor } from '@rosen-bridge/rosen-extractor';
2
- import { EvmRpcObservationExtractor } from './EvmRpcObservationExtractor';
3
- export class EthereumRpcObservationExtractor extends EvmRpcObservationExtractor {
4
- FROM_CHAIN = 'ethereum';
5
- constructor(lockAddress, dataSource, tokens, logger) {
6
- super(dataSource, tokens, new EvmEthersRosenExtractor(lockAddress, tokens, 'ethereum', 'eth', logger), logger);
7
- }
8
- /**
9
- * gets Id for current extractor
10
- */
11
- getId = () => 'ethereum-rpc-extractor';
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXRoZXJldW1ScGNPYnNlcnZhdGlvbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9FdGhlcmV1bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTFFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSwwQkFBMEI7SUFDcEUsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUVqQyxZQUNFLFdBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLE1BQWdCLEVBQ2hCLE1BQXVCO1FBRXZCLEtBQUssQ0FDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksdUJBQXVCLENBQ3pCLFdBQVcsRUFDWCxNQUFNLEVBQ04sVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLENBQ1AsRUFDRCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztDQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Jvc2VuLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgRXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgfSBmcm9tICcuL0V2bVJwY09ic2VydmF0aW9uRXh0cmFjdG9yJztcblxuZXhwb3J0IGNsYXNzIEV0aGVyZXVtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgZXh0ZW5kcyBFdm1ScGNPYnNlcnZhdGlvbkV4dHJhY3RvciB7XG4gIHJlYWRvbmx5IEZST01fQ0hBSU4gPSAnZXRoZXJldW0nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGRhdGFTb3VyY2UsXG4gICAgICB0b2tlbnMsXG4gICAgICBuZXcgRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IoXG4gICAgICAgIGxvY2tBZGRyZXNzLFxuICAgICAgICB0b2tlbnMsXG4gICAgICAgICdldGhlcmV1bScsXG4gICAgICAgICdldGgnLFxuICAgICAgICBsb2dnZXIsXG4gICAgICApLFxuICAgICAgbG9nZ2VyLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gJ2V0aGVyZXVtLXJwYy1leHRyYWN0b3InO1xufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmRpcObservationExtractor.d.ts","sourceRoot":"","sources":["../lib/EvmRpcObservationExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAE7B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAmB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,8BAAsB,0BAA2B,SAAQ,4BAA4B,CAAC,mBAAmB,CAAC;IACxG;;;;;;OAMG;IACH,mBAAmB,QACZ,MAAM,mBAAmB,CAAC,SACxB,KAAK,KACX,QAAQ,OAAO,CAAC,CAuCjB;IAEF;;OAEG;IACH,OAAO,OAAQ,mBAAmB,YAOhC;CACH"}
@@ -1,59 +0,0 @@
1
- import { AbstractObservationExtractor, } from '@rosen-bridge/abstract-observation-extractor';
2
- import { isCallException } from 'ethers';
3
- import { blake2b } from 'blakejs';
4
- export class EvmRpcObservationExtractor extends AbstractObservationExtractor {
5
- /**
6
- * gets block id and transactions corresponding to the block and saves if they are valid rosen
7
- * transactions and in case of success return true and in case of failure returns false
8
- * additionally, it returns false if the transaction is failed
9
- * @param block
10
- * @param txs
11
- */
12
- processTransactions = async (txs, block) => {
13
- const observations = [];
14
- for (const transaction of txs) {
15
- const data = this.extractor.get(transaction);
16
- if (data) {
17
- try {
18
- const result = await transaction.wait(0);
19
- if (result) {
20
- const requestId = Buffer.from(blake2b(this.getTxId(transaction), undefined, 32)).toString('hex');
21
- observations.push({
22
- fromChain: this.FROM_CHAIN,
23
- toChain: data.toChain,
24
- amount: data.amount,
25
- sourceChainTokenId: data.sourceChainTokenId,
26
- targetChainTokenId: data.targetChainTokenId,
27
- sourceTxId: data.sourceTxId,
28
- bridgeFee: data.bridgeFee,
29
- networkFee: data.networkFee,
30
- sourceBlockId: block.hash,
31
- requestId: requestId,
32
- toAddress: data.toAddress,
33
- fromAddress: data.fromAddress,
34
- });
35
- }
36
- else
37
- throw Error(`Impossible behavior: Evm Tx [${transaction.hash}] is included in block [${block.hash}] but waiting resulted in null or undefined`);
38
- }
39
- catch (e) {
40
- if (isCallException(e))
41
- this.logger.debug(`found valid lock transaction [${transaction.hash}] but tx is failed`);
42
- else
43
- throw e;
44
- }
45
- }
46
- }
47
- return this.actions.storeObservations(observations, block, this.getId());
48
- };
49
- /**
50
- * gets transaction id from TransactionType
51
- */
52
- getTxId = (tx) => {
53
- if (tx.hash == null) {
54
- throw Error('ImpossibleBehavior: Transactions coming from RPC have to be signed.');
55
- }
56
- return tx.hash;
57
- };
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvRXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDRCQUE0QixHQUU3QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQXVCLE1BQU0sUUFBUSxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbEMsTUFBTSxPQUFnQiwwQkFBMkIsU0FBUSw0QkFBaUQ7SUFDeEc7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLEdBQUcsS0FBSyxFQUN6QixHQUErQixFQUMvQixLQUFZLEVBQ00sRUFBRTtRQUNwQixNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO1FBQ3JELEtBQUssTUFBTSxXQUFXLElBQUksR0FBRyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDbEQsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUM7NEJBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTs0QkFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPOzRCQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07NEJBQ25CLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7NEJBQzNDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7NEJBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTs0QkFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7NEJBQzNCLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSTs0QkFDekIsU0FBUyxFQUFFLFNBQVM7NEJBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzs0QkFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO3lCQUM5QixDQUFDLENBQUM7b0JBQ0wsQ0FBQzs7d0JBQ0MsTUFBTSxLQUFLLENBQ1QsZ0NBQWdDLFdBQVcsQ0FBQyxJQUFJLDJCQUEyQixLQUFLLENBQUMsSUFBSSw2Q0FBNkMsQ0FDbkksQ0FBQztnQkFDTixDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDO3dCQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixpQ0FBaUMsV0FBVyxDQUFDLElBQUksb0JBQW9CLENBQ3RFLENBQUM7O3dCQUNDLE1BQU0sQ0FBQyxDQUFDO2dCQUNmLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsT0FBTyxHQUFHLENBQUMsRUFBdUIsRUFBRSxFQUFFO1FBQ3BDLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixNQUFNLEtBQUssQ0FDVCxxRUFBcUUsQ0FDdEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDakIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBYnN0cmFjdE9ic2VydmF0aW9uRXh0cmFjdG9yLFxuICBFeHRyYWN0ZWRPYnNlcnZhdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1vYnNlcnZhdGlvbi1leHRyYWN0b3InO1xuaW1wb3J0IHsgaXNDYWxsRXhjZXB0aW9uLCBUcmFuc2FjdGlvblJlc3BvbnNlIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IGJsYWtlMmIgfSBmcm9tICdibGFrZWpzJztcbmltcG9ydCB7IEJsb2NrIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXZtUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdE9ic2VydmF0aW9uRXh0cmFjdG9yPFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBhZGRpdGlvbmFsbHksIGl0IHJldHVybnMgZmFsc2UgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIGZhaWxlZFxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIHR4c1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uUmVzcG9uc2U+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3Qgb2JzZXJ2YXRpb25zOiBBcnJheTxFeHRyYWN0ZWRPYnNlcnZhdGlvbj4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRyYW5zYWN0aW9uIG9mIHR4cykge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZXh0cmFjdG9yLmdldCh0cmFuc2FjdGlvbik7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYW5zYWN0aW9uLndhaXQoMCk7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdElkID0gQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgIGJsYWtlMmIodGhpcy5nZXRUeElkKHRyYW5zYWN0aW9uKSwgdW5kZWZpbmVkLCAzMiksXG4gICAgICAgICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgIG9ic2VydmF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgZnJvbUNoYWluOiB0aGlzLkZST01fQ0hBSU4sXG4gICAgICAgICAgICAgIHRvQ2hhaW46IGRhdGEudG9DaGFpbixcbiAgICAgICAgICAgICAgYW1vdW50OiBkYXRhLmFtb3VudCxcbiAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBkYXRhLnNvdXJjZUNoYWluVG9rZW5JZCxcbiAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBkYXRhLnRhcmdldENoYWluVG9rZW5JZCxcbiAgICAgICAgICAgICAgc291cmNlVHhJZDogZGF0YS5zb3VyY2VUeElkLFxuICAgICAgICAgICAgICBicmlkZ2VGZWU6IGRhdGEuYnJpZGdlRmVlLFxuICAgICAgICAgICAgICBuZXR3b3JrRmVlOiBkYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgICAgICAgIHNvdXJjZUJsb2NrSWQ6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgICAgIHJlcXVlc3RJZDogcmVxdWVzdElkLFxuICAgICAgICAgICAgICB0b0FkZHJlc3M6IGRhdGEudG9BZGRyZXNzLFxuICAgICAgICAgICAgICBmcm9tQWRkcmVzczogZGF0YS5mcm9tQWRkcmVzcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIGBJbXBvc3NpYmxlIGJlaGF2aW9yOiBFdm0gVHggWyR7dHJhbnNhY3Rpb24uaGFzaH1dIGlzIGluY2x1ZGVkIGluIGJsb2NrIFske2Jsb2NrLmhhc2h9XSBidXQgd2FpdGluZyByZXN1bHRlZCBpbiBudWxsIG9yIHVuZGVmaW5lZGAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGlzQ2FsbEV4Y2VwdGlvbihlKSlcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgZm91bmQgdmFsaWQgbG9jayB0cmFuc2FjdGlvbiBbJHt0cmFuc2FjdGlvbi5oYXNofV0gYnV0IHR4IGlzIGZhaWxlZGAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGVsc2UgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zLnN0b3JlT2JzZXJ2YXRpb25zKG9ic2VydmF0aW9ucywgYmxvY2ssIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgdHJhbnNhY3Rpb24gaWQgZnJvbSBUcmFuc2FjdGlvblR5cGVcbiAgICovXG4gIGdldFR4SWQgPSAodHg6IFRyYW5zYWN0aW9uUmVzcG9uc2UpID0+IHtcbiAgICBpZiAodHguaGFzaCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ0ltcG9zc2libGVCZWhhdmlvcjogVHJhbnNhY3Rpb25zIGNvbWluZyBmcm9tIFJQQyBoYXZlIHRvIGJlIHNpZ25lZC4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4Lmhhc2g7XG4gIH07XG59XG4iXX0=