@rosen-bridge/abstract-extractor 3.1.1 → 3.2.0
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,24 @@
|
|
|
1
1
|
# @rosen-bridge/abstract-extractor
|
|
2
2
|
|
|
3
|
+
## 3.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add `hasEventInHeightRange` function to `AbstractExtractor` which is utilized by the fast-forward feature in scanners
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Update dependencies
|
|
12
|
+
- @rosen-bridge/scanner-interfaces@1.0.0
|
|
13
|
+
- uuid@11.1.1
|
|
14
|
+
|
|
15
|
+
## 3.1.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Update dependencies
|
|
20
|
+
- @rosen-bridge/extended-typeorm@1.1.0
|
|
21
|
+
|
|
3
22
|
## 3.1.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -34,6 +34,19 @@ export declare abstract class AbstractExtractor<TransactionType, ExtractorEntity
|
|
|
34
34
|
* @param initialBlock - The block from which to start scanning (initial height)
|
|
35
35
|
*/
|
|
36
36
|
abstract initializeData: (initialBlock: BlockInfo) => Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* hasEventInHeightRange used by the scanner's fast-forward mechanism.
|
|
39
|
+
* During a large sync, instead of fetching and processing thousands of blocks one by one,
|
|
40
|
+
* the scanner checks this method. If an external API or node can confirm that *no relevant events*
|
|
41
|
+
* exist in the `[fromHeight, toHeight]` range, return `false`. The scanner will then skip fetching
|
|
42
|
+
* these blocks entirely, vastly improving sync speed.
|
|
43
|
+
* Returns `true`, forcing the scanner to safely process every single block sequentially.
|
|
44
|
+
*
|
|
45
|
+
* @param fromHeight - The starting block height of the chunk being evaluated.
|
|
46
|
+
* @param toHeight - The ending block height of the chunk.
|
|
47
|
+
* @returns {Promise<boolean>} `true` if events exist (or if unknown). `false` ONLY if it's guaranteed the range is empty.
|
|
48
|
+
*/
|
|
49
|
+
hasEventInHeightRange: (fromHeight?: number, toHeight?: number) => Promise<boolean>;
|
|
37
50
|
/**
|
|
38
51
|
* Create a query for used blocks associated with the given `extractorId`
|
|
39
52
|
* This method only builds the query and does not execute it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractExtractor.d.ts","sourceRoot":"","sources":["../lib/abstractExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,8BAAsB,iBAAiB,CACrC,eAAe,EACf,eAAe,SAAS,aAAa;IAErC;;;;;;;;OAQG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,EAC3B,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAC5B,kBAAkB,CAAC,eAAe,CAAC,GACnC,SAAS,CAAC;CACf"}
|
|
1
|
+
{"version":3,"file":"abstractExtractor.d.ts","sourceRoot":"","sources":["../lib/abstractExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,8BAAsB,iBAAiB,CACrC,eAAe,EACf,eAAe,SAAS,aAAa;IAErC;;;;;;;;OAQG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,EAC3B,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;OAWG;IACI,qBAAqB,GAE1B,aAAa,MAAM,EAEnB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CAEjB;IAEF;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAC5B,kBAAkB,CAAC,eAAe,CAAC,GACnC,SAAS,CAAC;CACf"}
|
|
@@ -1,3 +1,22 @@
|
|
|
1
1
|
export class AbstractExtractor {
|
|
2
|
+
/**
|
|
3
|
+
* hasEventInHeightRange used by the scanner's fast-forward mechanism.
|
|
4
|
+
* During a large sync, instead of fetching and processing thousands of blocks one by one,
|
|
5
|
+
* the scanner checks this method. If an external API or node can confirm that *no relevant events*
|
|
6
|
+
* exist in the `[fromHeight, toHeight]` range, return `false`. The scanner will then skip fetching
|
|
7
|
+
* these blocks entirely, vastly improving sync speed.
|
|
8
|
+
* Returns `true`, forcing the scanner to safely process every single block sequentially.
|
|
9
|
+
*
|
|
10
|
+
* @param fromHeight - The starting block height of the chunk being evaluated.
|
|
11
|
+
* @param toHeight - The ending block height of the chunk.
|
|
12
|
+
* @returns {Promise<boolean>} `true` if events exist (or if unknown). `false` ONLY if it's guaranteed the range is empty.
|
|
13
|
+
*/
|
|
14
|
+
hasEventInHeightRange = async (
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
+
fromHeight,
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
+
toHeight) => {
|
|
19
|
+
return true;
|
|
20
|
+
};
|
|
2
21
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYWJzdHJhY3RFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFnQixpQkFBaUI7SUE0Q3JDOzs7Ozs7Ozs7OztPQVdHO0lBQ0kscUJBQXFCLEdBQUcsS0FBSztJQUNsQyw2REFBNkQ7SUFDN0QsVUFBbUI7SUFDbkIsNkRBQTZEO0lBQzdELFFBQWlCLEVBQ0MsRUFBRTtRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztDQVlIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT2JqZWN0TGl0ZXJhbCxcbiAgU2VsZWN0UXVlcnlCdWlsZGVyLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFeHRyYWN0b3I8XG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgT2JqZWN0TGl0ZXJhbCxcbj4ge1xuICAvKipcbiAgICogUHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIChvciBvdGhlciBibG9ja2NoYWluIGRhdGEpIGluIGEgYmxvY2sgYW5kIHN0b3JlIHJlcXVpcmVkIGluZm9ybWF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgY29yZSBvZiB0aGUgZXh0cmFjdGlvbiBwcm9jZXNzIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgdG8gaGFuZGxlXG4gICAqIHRoZSBzcGVjaWZpYyBkYXRhIGV4dHJhY3Rpb24gbG9naWMgZm9yIHlvdXIgYmxvY2tjaGFpbi5cbiAgICpcbiAgICogQHBhcmFtIHR4cyAtIExpc3Qgb2YgdHJhbnNhY3Rpb25zIG9yIGJsb2NrY2hhaW4gZGF0YSBzdHJ1Y3R1cmVzIGluIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2sgLSBCbG9jayBpbmZvcm1hdGlvbiBjb250YWluaW5nIG1ldGFkYXRhIGFib3V0IHRoZSBibG9ja1xuICAgKiBAcmV0dXJucyBQcm9taXNlPGJvb2xlYW4+IC0gdHJ1ZSBpZiB0aGUgcHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IHByb2Nlc3NUcmFuc2FjdGlvbnM6IChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uVHlwZT4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBleHRyYWN0b3IuXG4gICAqIFRoaXMgSUQgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIGFsbCBleHRyYWN0b3JzIGluIHRoZSBzeXN0ZW0gdG8gcHJldmVudCBjb25mbGljdHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHN0cmluZyAtIFVuaXF1ZSBleHRyYWN0b3IgaWRlbnRpZmllclxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0SWQ6ICgpID0+IHN0cmluZztcblxuICAvKipcbiAgICogRm9yayAocm9sbGJhY2spIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2suXG4gICAqIFRoaXMgaXMgZXNzZW50aWFsIGZvciBoYW5kbGluZyBibG9ja2NoYWluIHJlb3JnYW5pemF0aW9ucyB3aGVyZSBibG9ja3NcbiAgICogbmVlZCB0byBiZSByZW1vdmVkIGZyb20gdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAcGFyYW0gaGFzaCAtIEJsb2NrIGhhc2ggdG8gZm9yay9yZW1vdmVcbiAgICovXG4gIGFic3RyYWN0IGZvcmtCbG9jazogKGhhc2g6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBleHRyYWN0b3IgZGF0YWJhc2Ugd2l0aCBoaXN0b3JpY2FsIGRhdGEgY3JlYXRlZCBiZWxvdyB0aGUgaW5pdGlhbCBoZWlnaHQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBkdXJpbmcgZXh0cmFjdG9yIHNldHVwIHRvIHBvcHVsYXRlIHRoZSBkYXRhYmFzZSB3aXRoXG4gICAqIGRhdGEgdGhhdCBleGlzdGVkIGJlZm9yZSB0aGUgc2Nhbm5lciBzdGFydGVkIG1vbml0b3JpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2sgLSBUaGUgYmxvY2sgZnJvbSB3aGljaCB0byBzdGFydCBzY2FubmluZyAoaW5pdGlhbCBoZWlnaHQpXG4gICAqL1xuICBhYnN0cmFjdCBpbml0aWFsaXplRGF0YTogKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBoYXNFdmVudEluSGVpZ2h0UmFuZ2UgdXNlZCBieSB0aGUgc2Nhbm5lcidzIGZhc3QtZm9yd2FyZCBtZWNoYW5pc20uXG4gICAqIER1cmluZyBhIGxhcmdlIHN5bmMsIGluc3RlYWQgb2YgZmV0Y2hpbmcgYW5kIHByb2Nlc3NpbmcgdGhvdXNhbmRzIG9mIGJsb2NrcyBvbmUgYnkgb25lLFxuICAgKiB0aGUgc2Nhbm5lciBjaGVja3MgdGhpcyBtZXRob2QuIElmIGFuIGV4dGVybmFsIEFQSSBvciBub2RlIGNhbiBjb25maXJtIHRoYXQgKm5vIHJlbGV2YW50IGV2ZW50cypcbiAgICogZXhpc3QgaW4gdGhlIGBbZnJvbUhlaWdodCwgdG9IZWlnaHRdYCByYW5nZSwgcmV0dXJuIGBmYWxzZWAuIFRoZSBzY2FubmVyIHdpbGwgdGhlbiBza2lwIGZldGNoaW5nXG4gICAqIHRoZXNlIGJsb2NrcyBlbnRpcmVseSwgdmFzdGx5IGltcHJvdmluZyBzeW5jIHNwZWVkLlxuICAgKiBSZXR1cm5zIGB0cnVlYCwgZm9yY2luZyB0aGUgc2Nhbm5lciB0byBzYWZlbHkgcHJvY2VzcyBldmVyeSBzaW5nbGUgYmxvY2sgc2VxdWVudGlhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gZnJvbUhlaWdodCAtIFRoZSBzdGFydGluZyBibG9jayBoZWlnaHQgb2YgdGhlIGNodW5rIGJlaW5nIGV2YWx1YXRlZC5cbiAgICogQHBhcmFtIHRvSGVpZ2h0IC0gVGhlIGVuZGluZyBibG9jayBoZWlnaHQgb2YgdGhlIGNodW5rLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gYHRydWVgIGlmIGV2ZW50cyBleGlzdCAob3IgaWYgdW5rbm93bikuIGBmYWxzZWAgT05MWSBpZiBpdCdzIGd1YXJhbnRlZWQgdGhlIHJhbmdlIGlzIGVtcHR5LlxuICAgKi9cbiAgcHVibGljIGhhc0V2ZW50SW5IZWlnaHRSYW5nZSA9IGFzeW5jIChcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZnJvbUhlaWdodD86IG51bWJlcixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgdG9IZWlnaHQ/OiBudW1iZXIsXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBxdWVyeSBmb3IgdXNlZCBibG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBgZXh0cmFjdG9ySWRgXG4gICAqIFRoaXMgbWV0aG9kIG9ubHkgYnVpbGRzIHRoZSBxdWVyeSBhbmQgZG9lcyBub3QgZXhlY3V0ZSBpdFxuICAgKlxuICAgKiBAcmV0dXJucyBBIFR5cGVPUk0gU2VsZWN0UXVlcnlCdWlsZGVyIHRoYXQgc2VsZWN0cyB1c2VkIGJsb2NrIHZhbHVlcyBvclxuICAgKiBgdW5kZWZpbmVkYCBpZiB0aGUgZXh0cmFjdG9yIGhhcyBubyBhc3NvY2lhdGVkIGVudGl0eVxuICAgKi9cbiAgYWJzdHJhY3QgY3JlYXRlVXNlZEJsb2Nrc1F1ZXJ5OiAoKSA9PlxuICAgIHwgU2VsZWN0UXVlcnlCdWlsZGVyPEV4dHJhY3RvckVudGl0eT5cbiAgICB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|