@my-packages-changeit/evm-address-tx-extractor 3.0.2

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.
Files changed (34) hide show
  1. package/CHANGELOG.md +311 -0
  2. package/README.md +24 -0
  3. package/dist/actions/db.d.ts +43 -0
  4. package/dist/actions/db.d.ts.map +1 -0
  5. package/dist/actions/db.js +87 -0
  6. package/dist/entities/addressTxsEntity.d.ts +11 -0
  7. package/dist/entities/addressTxsEntity.d.ts.map +1 -0
  8. package/dist/entities/addressTxsEntity.js +57 -0
  9. package/dist/extractors/evmTxExtractor.d.ts +55 -0
  10. package/dist/extractors/evmTxExtractor.d.ts.map +1 -0
  11. package/dist/extractors/evmTxExtractor.js +131 -0
  12. package/dist/index.d.ts +6 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +6 -0
  15. package/dist/interfaces/types.d.ts +12 -0
  16. package/dist/interfaces/types.d.ts.map +1 -0
  17. package/dist/interfaces/types.js +6 -0
  18. package/dist/migrations/index.d.ts +8 -0
  19. package/dist/migrations/index.d.ts.map +1 -0
  20. package/dist/migrations/index.js +9 -0
  21. package/dist/migrations/postgres/1713694851290-migration.d.ts +7 -0
  22. package/dist/migrations/postgres/1713694851290-migration.d.ts.map +1 -0
  23. package/dist/migrations/postgres/1713694851290-migration.js +23 -0
  24. package/dist/migrations/postgres/1722346608595-migration.d.ts +7 -0
  25. package/dist/migrations/postgres/1722346608595-migration.d.ts.map +1 -0
  26. package/dist/migrations/postgres/1722346608595-migration.js +15 -0
  27. package/dist/migrations/sqlite/1713694799333-migration.d.ts +7 -0
  28. package/dist/migrations/sqlite/1713694799333-migration.d.ts.map +1 -0
  29. package/dist/migrations/sqlite/1713694799333-migration.js +22 -0
  30. package/dist/migrations/sqlite/1722346500068-migration.d.ts +7 -0
  31. package/dist/migrations/sqlite/1722346500068-migration.d.ts.map +1 -0
  32. package/dist/migrations/sqlite/1722346500068-migration.js +85 -0
  33. package/dist/tsconfig.tsbuildinfo +1 -0
  34. package/package.json +42 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,311 @@
1
+ # @rosen-bridge/evm-address-tx-extractor
2
+
3
+ ## 3.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Update dependencies
8
+ - @rosen-bridge/abstract-extractor@3.2.3
9
+ - @rosen-bridge/abstract-scanner@2.0.3
10
+
11
+ ## 3.0.1
12
+
13
+ ### Patch Changes
14
+
15
+ - Update dependencies
16
+ - @rosen-bridge/abstract-extractor@3.2.2
17
+ - @rosen-bridge/abstract-scanner@2.0.2
18
+
19
+ ## 3.0.0
20
+
21
+ ### Major Changes
22
+
23
+ - **Add Nonce-Based Range Validation**: Added the `hasEventInHeightRange` method to `EvmTxExtractor` to determine if an address may have transactions within a specified block range by comparing stored nonce values with network nonce data.
24
+ - Added `checkNonceAtToHeight` option to the constructor, allowing the extractor to fetch nonce at the specified `toHeight` before falling back to the latest nonce (useful for archive nodes).
25
+ - Added RPC URL and optional auth token to the constructor so the extractor can directly fetch nonce data from the network via ethers `JsonRpcProvider`.
26
+
27
+ ### Patch Changes
28
+
29
+ - Add dependency
30
+ - @rosen-bridge/abstract-scanner@2.0.1
31
+ - Update dependencies
32
+ - @rosen-bridge/abstract-extractor@3.2.1
33
+
34
+ ## 2.0.5
35
+
36
+ ### Patch Changes
37
+
38
+ - Update dependencies
39
+ - @rosen-bridge/abstract-extractor@3.2.0
40
+ - @rosen-bridge/scanner-interfaces@1.0.0
41
+
42
+ ## 2.0.4
43
+
44
+ ### Patch Changes
45
+
46
+ - Update dependencies
47
+ - @rosen-bridge/abstract-extractor@3.1.2
48
+ - @rosen-bridge/extended-typeorm@1.1.0
49
+
50
+ ## 2.0.3
51
+
52
+ ### Patch Changes
53
+
54
+ - Update dependencies
55
+ - @rosen-bridge/abstract-extractor@3.1.1
56
+
57
+ ## 2.0.2
58
+
59
+ ### Patch Changes
60
+
61
+ - Fix typo in logs descriptions
62
+ - Update dependencies
63
+ - @rosen-bridge/abstract-extractor@3.1.0
64
+
65
+ ## 2.0.1
66
+
67
+ ### Patch Changes
68
+
69
+ - Update dependencies
70
+ - @rosen-bridge/abstract-extractor@3.0.1
71
+ - @rosen-bridge/scanner-interfaces@0.2.2
72
+ - ethers@6.16.0
73
+
74
+ ## 2.0.0
75
+
76
+ ### Major Changes
77
+
78
+ - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
79
+
80
+ ### Minor Changes
81
+
82
+ - Update AbstractExtractor interface; add `createUsedBlocksQuery` method that returns the query for used blocks
83
+
84
+ ### Patch Changes
85
+
86
+ - Update dependencies
87
+ - @rosen-bridge/abstract-logger@4.0.0
88
+ - @rosen-bridge/abstract-extractor@3.0.0
89
+
90
+ ## 1.2.3
91
+
92
+ ### Patch Changes
93
+
94
+ - Update Dependencies
95
+ - @rosen-bridge/rosen-extractor@11.0.0
96
+
97
+ ## 1.2.2
98
+
99
+ ### Patch Changes
100
+
101
+ - Fix package-lock and move typescript and types/node into root
102
+ - Update eslint and plugins:
103
+ - Apply new rules such as sort imports and file name
104
+ - Update dependencies
105
+ - @rosen-bridge/extended-typeorm@1.0.1
106
+ - @rosen-clients/rate-limited-axios@1.1.0
107
+ - @rosen-bridge/rosen-extractor@10.1.1
108
+ - @rosen-bridge/tokens@4.0.1
109
+ - @rosen-bridge/abstract-logger@3.0.1
110
+ - @rosen-bridge/json-bigint@1.1.0
111
+ - @rosen-clients/ergo-explorer@2.1.0
112
+ - @rosen-clients/ergo-node@3.1.0
113
+ - @rosen-bridge/abstract-extractor@2.1.2
114
+ - @rosen-bridge/scanner-interfaces@0.2.1
115
+
116
+ ## 1.2.1
117
+
118
+ ### Patch Changes
119
+
120
+ - Update dependencies
121
+ - @rosen-bridge/abstract-extractor@2.1.1
122
+ - @rosen-bridge/extended-typeorm@1.0.0
123
+ - @rosen-bridge/abstract-logger@3.0.0
124
+
125
+ ## 1.2.0
126
+
127
+ ### Minor Changes
128
+
129
+ - Upgrade to Node.js version 22.18.0
130
+
131
+ ### Patch Changes
132
+
133
+ - Update dependencies
134
+ - @rosen-bridge/abstract-extractor@2.1.0
135
+ - @rosen-bridge/scanner-interfaces@0.2.0
136
+
137
+ ## 1.1.4
138
+
139
+ ### Patch Changes
140
+
141
+ - Update package license to MIT
142
+ - Update dependencies
143
+ - @rosen-bridge/abstract-extractor@2.0.3
144
+ - @rosen-bridge/scanner-interfaces@0.1.1
145
+
146
+ ## 1.1.3
147
+
148
+ ### Patch Changes
149
+
150
+ - Downgrade ethers version
151
+
152
+ ## 1.1.2
153
+
154
+ ### Patch Changes
155
+
156
+ - Update network clients and ethers and rateLimitedAxios packages
157
+ - Update dependencies
158
+ - @rosen-bridge/abstract-extractor@2.0.2
159
+
160
+ ## 1.1.1
161
+
162
+ ### Patch Changes
163
+
164
+ - Updated dependencies
165
+ - @rosen-bridge/abstract-extractor@2.0.1
166
+
167
+ ## 1.1.0
168
+
169
+ ### Minor Changes
170
+
171
+ - Unify and move shared interfaces and update all package dependencies
172
+
173
+ ### Patch Changes
174
+
175
+ - Updated dependencies
176
+ - @rosen-bridge/abstract-extractor@2.0.0
177
+
178
+ ## 1.0.8
179
+
180
+ ### Patch Changes
181
+
182
+ - Improve extraction speed by applying the checks on response and transform only the desired transactions
183
+ - Updated dependencies
184
+ - @rosen-bridge/abstract-extractor@1.0.2
185
+
186
+ ## 1.0.7
187
+
188
+ ### Patch Changes
189
+
190
+ - Update node version to 20
191
+ - Update logger package
192
+ - Updated dependencies
193
+ - @rosen-bridge/abstract-extractor@1.0.1
194
+ - @rosen-bridge/scanner@5.0.2
195
+
196
+ ## 1.0.6
197
+
198
+ ### Patch Changes
199
+
200
+ - Prevent redundant store function calls
201
+ - Updated dependencies
202
+ - @rosen-bridge/abstract-extractor@1.0.0
203
+ - @rosen-bridge/scanner@5.0.1
204
+
205
+ ## 1.0.5
206
+
207
+ ### Patch Changes
208
+
209
+ - Updated dependencies
210
+ - @rosen-bridge/scanner@5.0.0
211
+ - @rosen-bridge/abstract-extractor@0.3.1
212
+
213
+ ## 1.0.4
214
+
215
+ ### Patch Changes
216
+
217
+ - Updated dependencies
218
+ - @rosen-bridge/scanner@4.1.3
219
+
220
+ ## 1.0.3
221
+
222
+ ### Patch Changes
223
+
224
+ - fix address comparision (uses lower case address while comparing)
225
+ - change log levels to debug
226
+ - Updated dependencies
227
+ - @rosen-bridge/abstract-extractor@0.3.0
228
+ - @rosen-bridge/scanner@4.1.2
229
+
230
+ ## 1.0.2
231
+
232
+ ### Patch Changes
233
+
234
+ - Updated dependencies
235
+ - @rosen-bridge/scanner@4.1.1
236
+
237
+ ## 1.0.1
238
+
239
+ ### Patch Changes
240
+
241
+ - Updated dependencies
242
+ - @rosen-bridge/abstract-extractor@0.2.0
243
+ - @rosen-bridge/scanner@4.1.0
244
+
245
+ ## 1.0.0
246
+
247
+ ### Major Changes
248
+
249
+ - change transaction type to TransactionResponse
250
+ - add status to AddressTxsEntity which represents if the transaction succeeded or failed
251
+
252
+ ## 0.1.8
253
+
254
+ ### Patch Changes
255
+
256
+ - Updated dependencies
257
+ - @rosen-bridge/abstract-extractor@0.1.5
258
+ - @rosen-bridge/scanner@4.0.5
259
+
260
+ ## 0.1.7
261
+
262
+ ### Patch Changes
263
+
264
+ - Updated dependencies
265
+ - @rosen-bridge/abstract-extractor@0.1.4
266
+ - @rosen-bridge/scanner@4.0.4
267
+
268
+ ## 0.1.6
269
+
270
+ ### Patch Changes
271
+
272
+ - Updated dependencies
273
+ - @rosen-bridge/abstract-extractor@0.1.3
274
+ - @rosen-bridge/scanner@4.0.3
275
+
276
+ ## 0.1.5
277
+
278
+ ### Patch Changes
279
+
280
+ - Updated dependencies
281
+ - @rosen-bridge/abstract-extractor@0.1.2
282
+ - @rosen-bridge/scanner@4.0.2
283
+
284
+ ## 0.1.4
285
+
286
+ ### Patch Changes
287
+
288
+ - Updated dependencies
289
+ - @rosen-bridge/abstract-extractor@0.1.1
290
+ - @rosen-bridge/scanner@4.0.1
291
+
292
+ ## 0.1.3
293
+
294
+ ### Patch Changes
295
+
296
+ - Updated dependencies
297
+ - @rosen-bridge/scanner@4.0.0
298
+
299
+ ## 0.1.2
300
+
301
+ ### Patch Changes
302
+
303
+ - Updated dependencies
304
+ - @rosen-bridge/scanner@3.2.9
305
+
306
+ ## 0.1.1
307
+
308
+ ### Patch Changes
309
+
310
+ - Updated dependencies
311
+ - @rosen-bridge/scanner@3.2.8
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # @rosen-bridge/evm-address-tx-extractor
2
+
3
+ ## Table of contents
4
+
5
+ - [Introduction](#introduction)
6
+ - [Installation](#installation)
7
+
8
+ ## Introduction
9
+
10
+ Extract and store EVM chain notable data of transactions for an address
11
+
12
+ ## Installation
13
+
14
+ npm:
15
+
16
+ ```sh
17
+ npm i @rosen-bridge/evm-address-tx-extractor
18
+ ```
19
+
20
+ yarn:
21
+
22
+ ```sh
23
+ yarn add @rosen-bridge/evm-address-tx-extractor
24
+ ```
@@ -0,0 +1,43 @@
1
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
+ import { DataSource, SelectQueryBuilder } from '@rosen-bridge/extended-typeorm';
3
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
+ import { AddressTxsEntity } from '../entities/addressTxsEntity';
5
+ import { ExtractedTx } from '../interfaces/types';
6
+ export declare class TxAction {
7
+ private readonly repository;
8
+ readonly logger: AbstractLogger;
9
+ constructor(dataSource: DataSource, logger?: AbstractLogger);
10
+ /**
11
+ * remove all inserted transaction for specific block in specific extractor from database
12
+ * @param blockId selected block id
13
+ * @param extractor selected extractor
14
+ */
15
+ deleteBlockTxs: (blockId: string, extractor: string) => Promise<void>;
16
+ /**
17
+ * remove old list of transactions and
18
+ * store a new list of transactions database for specific block and extractor
19
+ * @param txs
20
+ * @param block
21
+ * @param extractor
22
+ */
23
+ storeTxs: (txs: Array<ExtractedTx>, block: BlockInfo, extractor: string) => Promise<void>;
24
+ /**
25
+ * Builds a query that returns used blocks by selecting the `block` column from the `evmAddressTxEntity` repository,
26
+ * filtered by the provided `extractorId`
27
+ *
28
+ * @param extractorId - Identifier of the extractor
29
+ * @returns A query builder selecting used blocks
30
+ */
31
+ createUsedBlocksQuery: (extractorId: string) => SelectQueryBuilder<AddressTxsEntity>;
32
+ /**
33
+ * Returns the highest nonce recorded for the specified extractor and address
34
+ * up to and including the given block height.
35
+ *
36
+ * @param extractor - Extractor identifier.
37
+ * @param address - The address to filter transactions by.
38
+ * @param height - Upper bound block height (Inclusive).
39
+ * @returns The highest nonce up to the given height, or -1 if no transaction found.
40
+ */
41
+ getNonceUpToHeight: (extractor: string, address: string, height: number) => Promise<number>;
42
+ }
43
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EACL,UAAU,EAEV,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;;;OAIG;IACH,cAAc,GAAU,SAAS,MAAM,EAAE,WAAW,MAAM,mBAYxD;IAEF;;;;;;OAMG;IACH,QAAQ,GACN,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,SAAS,EAChB,WAAW,MAAM,mBAuBjB;IAEF;;;;;;OAMG;IACH,qBAAqB,GACnB,aAAa,MAAM,KAClB,kBAAkB,CAAC,gBAAgB,CAAC,CAKrC;IAEF;;;;;;;;OAQG;IACH,kBAAkB,GAChB,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,CAAC,CAahB;CACH"}
@@ -0,0 +1,87 @@
1
+ import { DummyLogger } from '@rosen-bridge/abstract-logger';
2
+ import { BlockEntity } from '@rosen-bridge/abstract-scanner';
3
+ import { AddressTxsEntity } from '../entities/addressTxsEntity';
4
+ export class TxAction {
5
+ repository;
6
+ logger;
7
+ constructor(dataSource, logger) {
8
+ this.repository = dataSource.getRepository(AddressTxsEntity);
9
+ this.logger = logger ? logger : new DummyLogger();
10
+ }
11
+ /**
12
+ * remove all inserted transaction for specific block in specific extractor from database
13
+ * @param blockId selected block id
14
+ * @param extractor selected extractor
15
+ */
16
+ deleteBlockTxs = async (blockId, extractor) => {
17
+ this.logger.debug(`Deleting transactions of block ${blockId} and extractor ${extractor}`);
18
+ await this.repository
19
+ .createQueryBuilder()
20
+ .delete()
21
+ .where('extractor = :extractor AND blockId = :blockId', {
22
+ blockId: blockId,
23
+ extractor: extractor,
24
+ })
25
+ .execute();
26
+ };
27
+ /**
28
+ * remove old list of transactions and
29
+ * store a new list of transactions database for specific block and extractor
30
+ * @param txs
31
+ * @param block
32
+ * @param extractor
33
+ */
34
+ storeTxs = async (txs, block, extractor) => {
35
+ await this.deleteBlockTxs(block.hash, extractor);
36
+ this.logger.debug(`Inserting new transactions [${txs.map((tx) => tx.signedHash)}] in block ${block.hash} and extractor ${extractor}`);
37
+ await this.repository
38
+ .createQueryBuilder()
39
+ .insert()
40
+ .values(txs.map((tx) => ({
41
+ unsignedHash: tx.unsignedHash,
42
+ signedHash: tx.signedHash,
43
+ nonce: tx.nonce,
44
+ address: tx.address,
45
+ blockId: block.hash,
46
+ extractor: extractor,
47
+ status: tx.status,
48
+ })))
49
+ .execute();
50
+ };
51
+ /**
52
+ * Builds a query that returns used blocks by selecting the `block` column from the `evmAddressTxEntity` repository,
53
+ * filtered by the provided `extractorId`
54
+ *
55
+ * @param extractorId - Identifier of the extractor
56
+ * @returns A query builder selecting used blocks
57
+ */
58
+ createUsedBlocksQuery = (extractorId) => {
59
+ return this.repository
60
+ .createQueryBuilder('evmAddressTxEntity')
61
+ .select('evmAddressTxEntity.blockId', 'block')
62
+ .where('evmAddressTxEntity.extractor = :extractorId', { extractorId });
63
+ };
64
+ /**
65
+ * Returns the highest nonce recorded for the specified extractor and address
66
+ * up to and including the given block height.
67
+ *
68
+ * @param extractor - Extractor identifier.
69
+ * @param address - The address to filter transactions by.
70
+ * @param height - Upper bound block height (Inclusive).
71
+ * @returns The highest nonce up to the given height, or -1 if no transaction found.
72
+ */
73
+ getNonceUpToHeight = async (extractor, address, height) => {
74
+ const result = await this.repository
75
+ .createQueryBuilder('tx')
76
+ .innerJoin(BlockEntity, 'block', 'block.hash = tx.blockId')
77
+ .select('MAX(tx.nonce)', 'nonce')
78
+ .where('tx.extractor = :extractor', { extractor })
79
+ .andWhere('tx.address = :address', { address })
80
+ .andWhere('block.height <= :height', { height })
81
+ .getRawOne();
82
+ return result?.nonce !== null && result?.nonce !== undefined
83
+ ? Number(result.nonce)
84
+ : -1;
85
+ };
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVE3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxNQUFNLE9BQU8sUUFBUTtJQUNGLFVBQVUsQ0FBK0I7SUFDakQsTUFBTSxDQUFpQjtJQUVoQyxZQUFZLFVBQXNCLEVBQUUsTUFBdUI7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsR0FBRyxLQUFLLEVBQUUsT0FBZSxFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixrQ0FBa0MsT0FBTyxrQkFBa0IsU0FBUyxFQUFFLENBQ3ZFLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sRUFBRTthQUNSLEtBQUssQ0FBQywrQ0FBK0MsRUFBRTtZQUN0RCxPQUFPLEVBQUUsT0FBTztZQUNoQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxRQUFRLEdBQUcsS0FBSyxFQUNkLEdBQXVCLEVBQ3ZCLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiwrQkFBK0IsR0FBRyxDQUFDLEdBQUcsQ0FDcEMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQ3RCLGNBQWMsS0FBSyxDQUFDLElBQUksa0JBQWtCLFNBQVMsRUFBRSxDQUN2RCxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsVUFBVTthQUNsQixrQkFBa0IsRUFBRTthQUNwQixNQUFNLEVBQUU7YUFDUixNQUFNLENBQ0wsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNmLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWTtZQUM3QixVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVU7WUFDekIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO1lBQ2YsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU07U0FDbEIsQ0FBQyxDQUFDLENBQ0o7YUFDQSxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILHFCQUFxQixHQUFHLENBQ3RCLFdBQW1CLEVBQ21CLEVBQUU7UUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQzthQUN4QyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsT0FBTyxDQUFDO2FBQzdDLEtBQUssQ0FBQyw2Q0FBNkMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0lBRUY7Ozs7Ozs7O09BUUc7SUFDSCxrQkFBa0IsR0FBRyxLQUFLLEVBQ3hCLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixNQUFjLEVBQ0csRUFBRTtRQUNuQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2pDLGtCQUFrQixDQUFDLElBQUksQ0FBQzthQUN4QixTQUFTLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsQ0FBQzthQUMxRCxNQUFNLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQzthQUNoQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUNqRCxRQUFRLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUM5QyxRQUFRLENBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMvQyxTQUFTLEVBQUUsQ0FBQztRQUVmLE9BQU8sTUFBTSxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksTUFBTSxFQUFFLEtBQUssS0FBSyxTQUFTO1lBQzFELENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDVCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1zY2FubmVyJztcbmltcG9ydCB7XG4gIERhdGFTb3VyY2UsXG4gIFJlcG9zaXRvcnksXG4gIFNlbGVjdFF1ZXJ5QnVpbGRlcixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQWRkcmVzc1R4c0VudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzL2FkZHJlc3NUeHNFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkVHggfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFR4QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5PEFkZHJlc3NUeHNFbnRpdHk+O1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KEFkZHJlc3NUeHNFbnRpdHkpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVtb3ZlIGFsbCBpbnNlcnRlZCB0cmFuc2FjdGlvbiBmb3Igc3BlY2lmaWMgYmxvY2sgaW4gc3BlY2lmaWMgZXh0cmFjdG9yIGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrSWQgc2VsZWN0ZWQgYmxvY2sgaWRcbiAgICogQHBhcmFtIGV4dHJhY3RvciBzZWxlY3RlZCBleHRyYWN0b3JcbiAgICovXG4gIGRlbGV0ZUJsb2NrVHhzID0gYXN5bmMgKGJsb2NrSWQ6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBEZWxldGluZyB0cmFuc2FjdGlvbnMgb2YgYmxvY2sgJHtibG9ja0lkfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGJsb2NrSWQgPSA6YmxvY2tJZCcsIHtcbiAgICAgICAgYmxvY2tJZDogYmxvY2tJZCxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlIG9sZCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBhbmRcbiAgICogc3RvcmUgYSBuZXcgbGlzdCBvZiB0cmFuc2FjdGlvbnMgZGF0YWJhc2UgZm9yIHNwZWNpZmljIGJsb2NrIGFuZCBleHRyYWN0b3JcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVUeHMgPSBhc3luYyAoXG4gICAgdHhzOiBBcnJheTxFeHRyYWN0ZWRUeD4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVCbG9ja1R4cyhibG9jay5oYXNoLCBleHRyYWN0b3IpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEluc2VydGluZyBuZXcgdHJhbnNhY3Rpb25zIFske3R4cy5tYXAoXG4gICAgICAgICh0eCkgPT4gdHguc2lnbmVkSGFzaCxcbiAgICAgICl9XSBpbiBibG9jayAke2Jsb2NrLmhhc2h9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YCxcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAuaW5zZXJ0KClcbiAgICAgIC52YWx1ZXMoXG4gICAgICAgIHR4cy5tYXAoKHR4KSA9PiAoe1xuICAgICAgICAgIHVuc2lnbmVkSGFzaDogdHgudW5zaWduZWRIYXNoLFxuICAgICAgICAgIHNpZ25lZEhhc2g6IHR4LnNpZ25lZEhhc2gsXG4gICAgICAgICAgbm9uY2U6IHR4Lm5vbmNlLFxuICAgICAgICAgIGFkZHJlc3M6IHR4LmFkZHJlc3MsXG4gICAgICAgICAgYmxvY2tJZDogYmxvY2suaGFzaCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgICBzdGF0dXM6IHR4LnN0YXR1cyxcbiAgICAgICAgfSkpLFxuICAgICAgKVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogQnVpbGRzIGEgcXVlcnkgdGhhdCByZXR1cm5zIHVzZWQgYmxvY2tzIGJ5IHNlbGVjdGluZyB0aGUgYGJsb2NrYCBjb2x1bW4gZnJvbSB0aGUgYGV2bUFkZHJlc3NUeEVudGl0eWAgcmVwb3NpdG9yeSxcbiAgICogZmlsdGVyZWQgYnkgdGhlIHByb3ZpZGVkIGBleHRyYWN0b3JJZGBcbiAgICpcbiAgICogQHBhcmFtIGV4dHJhY3RvcklkIC0gSWRlbnRpZmllciBvZiB0aGUgZXh0cmFjdG9yXG4gICAqIEByZXR1cm5zIEEgcXVlcnkgYnVpbGRlciBzZWxlY3RpbmcgdXNlZCBibG9ja3NcbiAgICovXG4gIGNyZWF0ZVVzZWRCbG9ja3NRdWVyeSA9IChcbiAgICBleHRyYWN0b3JJZDogc3RyaW5nLFxuICApOiBTZWxlY3RRdWVyeUJ1aWxkZXI8QWRkcmVzc1R4c0VudGl0eT4gPT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoJ2V2bUFkZHJlc3NUeEVudGl0eScpXG4gICAgICAuc2VsZWN0KCdldm1BZGRyZXNzVHhFbnRpdHkuYmxvY2tJZCcsICdibG9jaycpXG4gICAgICAud2hlcmUoJ2V2bUFkZHJlc3NUeEVudGl0eS5leHRyYWN0b3IgPSA6ZXh0cmFjdG9ySWQnLCB7IGV4dHJhY3RvcklkIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoaWdoZXN0IG5vbmNlIHJlY29yZGVkIGZvciB0aGUgc3BlY2lmaWVkIGV4dHJhY3RvciBhbmQgYWRkcmVzc1xuICAgKiB1cCB0byBhbmQgaW5jbHVkaW5nIHRoZSBnaXZlbiBibG9jayBoZWlnaHQuXG4gICAqXG4gICAqIEBwYXJhbSBleHRyYWN0b3IgLSBFeHRyYWN0b3IgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byBmaWx0ZXIgdHJhbnNhY3Rpb25zIGJ5LlxuICAgKiBAcGFyYW0gaGVpZ2h0IC0gVXBwZXIgYm91bmQgYmxvY2sgaGVpZ2h0IChJbmNsdXNpdmUpLlxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGVzdCBub25jZSB1cCB0byB0aGUgZ2l2ZW4gaGVpZ2h0LCBvciAtMSBpZiBubyB0cmFuc2FjdGlvbiBmb3VuZC5cbiAgICovXG4gIGdldE5vbmNlVXBUb0hlaWdodCA9IGFzeW5jIChcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvc2l0b3J5XG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKCd0eCcpXG4gICAgICAuaW5uZXJKb2luKEJsb2NrRW50aXR5LCAnYmxvY2snLCAnYmxvY2suaGFzaCA9IHR4LmJsb2NrSWQnKVxuICAgICAgLnNlbGVjdCgnTUFYKHR4Lm5vbmNlKScsICdub25jZScpXG4gICAgICAud2hlcmUoJ3R4LmV4dHJhY3RvciA9IDpleHRyYWN0b3InLCB7IGV4dHJhY3RvciB9KVxuICAgICAgLmFuZFdoZXJlKCd0eC5hZGRyZXNzID0gOmFkZHJlc3MnLCB7IGFkZHJlc3MgfSlcbiAgICAgIC5hbmRXaGVyZSgnYmxvY2suaGVpZ2h0IDw9IDpoZWlnaHQnLCB7IGhlaWdodCB9KVxuICAgICAgLmdldFJhd09uZSgpO1xuXG4gICAgcmV0dXJuIHJlc3VsdD8ubm9uY2UgIT09IG51bGwgJiYgcmVzdWx0Py5ub25jZSAhPT0gdW5kZWZpbmVkXG4gICAgICA/IE51bWJlcihyZXN1bHQubm9uY2UpXG4gICAgICA6IC0xO1xuICB9O1xufVxuIl19
@@ -0,0 +1,11 @@
1
+ export declare class AddressTxsEntity {
2
+ id: number;
3
+ unsignedHash: string;
4
+ signedHash: string;
5
+ nonce: number;
6
+ address: string;
7
+ blockId: string;
8
+ extractor: string;
9
+ status: string;
10
+ }
11
+ //# sourceMappingURL=addressTxsEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressTxsEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/addressTxsEntity.ts"],"names":[],"mappings":"AAMA,qBACa,gBAAgB;IAE3B,EAAE,EAAE,MAAM,CAAC;IAGX,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,CAAC;IAGhB,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,57 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Column, Entity, PrimaryGeneratedColumn, } from '@rosen-bridge/extended-typeorm';
11
+ let AddressTxsEntity = class AddressTxsEntity {
12
+ id;
13
+ unsignedHash;
14
+ signedHash;
15
+ nonce;
16
+ address;
17
+ blockId;
18
+ extractor;
19
+ status;
20
+ };
21
+ __decorate([
22
+ PrimaryGeneratedColumn({ type: 'integer' }),
23
+ __metadata("design:type", Number)
24
+ ], AddressTxsEntity.prototype, "id", void 0);
25
+ __decorate([
26
+ Column({ type: 'varchar' }),
27
+ __metadata("design:type", String)
28
+ ], AddressTxsEntity.prototype, "unsignedHash", void 0);
29
+ __decorate([
30
+ Column({ type: 'varchar' }),
31
+ __metadata("design:type", String)
32
+ ], AddressTxsEntity.prototype, "signedHash", void 0);
33
+ __decorate([
34
+ Column({ type: 'integer' }),
35
+ __metadata("design:type", Number)
36
+ ], AddressTxsEntity.prototype, "nonce", void 0);
37
+ __decorate([
38
+ Column({ type: 'varchar' }),
39
+ __metadata("design:type", String)
40
+ ], AddressTxsEntity.prototype, "address", void 0);
41
+ __decorate([
42
+ Column({ type: 'varchar' }),
43
+ __metadata("design:type", String)
44
+ ], AddressTxsEntity.prototype, "blockId", void 0);
45
+ __decorate([
46
+ Column({ type: 'varchar' }),
47
+ __metadata("design:type", String)
48
+ ], AddressTxsEntity.prototype, "extractor", void 0);
49
+ __decorate([
50
+ Column({ type: 'varchar' }),
51
+ __metadata("design:type", String)
52
+ ], AddressTxsEntity.prototype, "status", void 0);
53
+ AddressTxsEntity = __decorate([
54
+ Entity('address_txs_entity')
55
+ ], AddressTxsEntity);
56
+ export { AddressTxsEntity };
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc1R4c0VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lbnRpdGllcy9hZGRyZXNzVHhzRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBR2pDLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLEVBQUUsQ0FBUztJQUdYLFlBQVksQ0FBUztJQUdyQixVQUFVLENBQVM7SUFHbkIsS0FBSyxDQUFTO0lBR2QsT0FBTyxDQUFTO0lBR2hCLE9BQU8sQ0FBUztJQUdoQixTQUFTLENBQVM7SUFHbEIsTUFBTSxDQUFTO0NBQ2hCLENBQUE7QUF0QkM7SUFEQyxzQkFBc0IsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7NENBQ2pDO0FBR1g7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O3NEQUNQO0FBR3JCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOztvREFDVDtBQUduQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7K0NBQ2Q7QUFHZDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7aURBQ1o7QUFHaEI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O2lEQUNaO0FBR2hCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzttREFDVjtBQUdsQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7Z0RBQ2I7QUF2QkosZ0JBQWdCO0lBRDVCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztHQUNoQixnQkFBZ0IsQ0F3QjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29sdW1uLFxuICBFbnRpdHksXG4gIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbkBFbnRpdHkoJ2FkZHJlc3NfdHhzX2VudGl0eScpXG5leHBvcnQgY2xhc3MgQWRkcmVzc1R4c0VudGl0eSB7XG4gIEBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uKHsgdHlwZTogJ2ludGVnZXInIH0pXG4gIGlkOiBudW1iZXI7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICB1bnNpZ25lZEhhc2g6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHNpZ25lZEhhc2g6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ2ludGVnZXInIH0pXG4gIG5vbmNlOiBudW1iZXI7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBhZGRyZXNzOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBibG9ja0lkOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBleHRyYWN0b3I6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHN0YXR1czogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { TransactionResponse } from 'ethers';
2
+ import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
3
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
+ import { DataSource, SelectQueryBuilder } from '@rosen-bridge/extended-typeorm';
5
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
6
+ import { TxAction } from '../actions/db';
7
+ import { AddressTxsEntity } from '../entities/addressTxsEntity';
8
+ export declare class EvmTxExtractor extends AbstractExtractor<TransactionResponse, AddressTxsEntity> {
9
+ readonly logger: AbstractLogger;
10
+ readonly action: TxAction;
11
+ private readonly id;
12
+ private readonly address;
13
+ private readonly provider;
14
+ private readonly checkNonceAtToHeight;
15
+ /**
16
+ * address should be lower case (without checksum)
17
+ */
18
+ constructor(dataSource: DataSource, id: string, address: string, rpcUrl: string, authToken?: string, checkNonceAtToHeight?: boolean, logger?: AbstractLogger);
19
+ /**
20
+ * get Id for current extractor
21
+ */
22
+ getId: () => string;
23
+ /**
24
+ * gets block id and transactions corresponding to the block and saves all transaction ids in database
25
+ * @param txs
26
+ * @param block
27
+ */
28
+ processTransactions: (txs: Array<TransactionResponse>, block: BlockInfo) => Promise<boolean>;
29
+ /**
30
+ * fork one block and remove all stored txId for this block
31
+ * @param hash: block hash
32
+ */
33
+ forkBlock: (hash: string) => Promise<void>;
34
+ /**
35
+ * Initializes the database with older boxes related to the address
36
+ */
37
+ initializeData: () => Promise<void>;
38
+ /**
39
+ * Builds a query that returns used blocks by selecting the `block` column from the `evmAddressTxEntity` repository,
40
+ * filtered by the provided `extractorId`
41
+ *
42
+ * @returns A query builder selecting used blocks
43
+ */
44
+ createUsedBlocksQuery: () => SelectQueryBuilder<AddressTxsEntity>;
45
+ /**
46
+ * checks if nonce changes within the specified height range
47
+ *
48
+ * @param fromHeight - Start height of the range being evaluated.
49
+ * @param toHeight - End height of the range being evaluated.
50
+ * @returns `true` if the range may contain relevant transactions,
51
+ * `false` if it is guaranteed to be empty.
52
+ */
53
+ hasEventInHeightRange: (fromHeight: number, toHeight: number) => Promise<boolean>;
54
+ }
55
+ //# sourceMappingURL=evmTxExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmTxExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractors/evmTxExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,qBAAa,cAAe,SAAQ,iBAAiB,CACnD,mBAAmB,EACnB,gBAAgB,CACjB;IACC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAU;IAE/C;;OAEG;gBAED,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,oBAAoB,UAAQ,EAC5B,MAAM,GAAE,cAAkC;IAa5C;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;OAIG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,mBAAmB,CAAC,EAC/B,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAkCjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,cAAc,sBAEZ;IAEF;;;;;OAKG;IACH,qBAAqB,QAAO,kBAAkB,CAAC,gBAAgB,CAAC,CACd;IAElD;;;;;;;OAOG;IACH,qBAAqB,GACnB,YAAY,MAAM,EAClB,UAAU,MAAM,KACf,OAAO,CAAC,OAAO,CAAC,CAgDjB;CACH"}