@rosen-bridge/rosen-extractor 12.0.0 → 12.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @rosen-bridge/rosen-extractor
2
2
 
3
+ ## 12.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Add store raw data param to Handshake
8
+
9
+ ## 12.0.1
10
+
11
+ ### Patch Changes
12
+
13
+ - Require Handshake lock UTXOs to use covenant type 0
14
+ - Update dependencies
15
+ - @rosen-bridge/tokens@6.0.1
16
+
3
17
  ## 12.0.0
4
18
 
5
19
  ### Major Changes
@@ -6,7 +6,7 @@ import { HandshakeTxOutput } from './types';
6
6
  export declare class HandshakeRosenExtractor extends AbstractRosenDataExtractor<string> {
7
7
  readonly chain = "handshake";
8
8
  protected lockAddressHash: string;
9
- constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
9
+ constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger, storeRawData?: boolean);
10
10
  /**
11
11
  * extracts RosenData from given lock transaction in HandshakeTx format
12
12
  * @param serializedTransaction stringified transaction in HandshakeTx format
@@ -1 +1 @@
1
- {"version":3,"file":"handshakeRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/handshakeRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAe,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAG7E,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IAC7E,QAAQ,CAAC,KAAK,eAAmB;IACjC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAEtB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,WAAW,GAAI,uBAAuB,MAAM,KAAG,SAAS,GAAG,SAAS,CA4FlE;IAEF;;;;OAIG;IACH,sBAAsB,GACpB,KAAK,iBAAiB,EACtB,SAAS,MAAM,KACd,mBAAmB,GAAG,SAAS,CAahC;CACH"}
1
+ {"version":3,"file":"handshakeRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/handshakeRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAe,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAO7E,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IAC7E,QAAQ,CAAC,KAAK,eAAmB;IACjC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAGhC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc,EACvB,YAAY,UAAO;IAMrB;;;OAGG;IACH,WAAW,GAAI,uBAAuB,MAAM,KAAG,SAAS,GAAG,SAAS,CA8FlE;IAEF;;;;OAIG;IACH,sBAAsB,GACpB,KAAK,iBAAiB,EACtB,SAAS,MAAM,KACd,mBAAmB,GAAG,SAAS,CAahC;CACH"}
@@ -2,12 +2,12 @@ import JsonBigInt from '@rosen-bridge/json-bigint';
2
2
  import { parseRosenData } from '../../utils';
3
3
  import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
4
4
  import { HANDSHAKE_CHAIN, HANDSHAKE_NATIVE_TOKEN } from '../const';
5
- import { addressToHash, extractDataFromOutputs } from './utils';
5
+ import { addressToHash, extractDataFromOutputs, hasNoneCovenant, } from './utils';
6
6
  export class HandshakeRosenExtractor extends AbstractRosenDataExtractor {
7
7
  chain = HANDSHAKE_CHAIN;
8
8
  lockAddressHash;
9
- constructor(lockAddress, tokens, logger) {
10
- super(lockAddress, tokens, logger);
9
+ constructor(lockAddress, tokens, logger, storeRawData = true) {
10
+ super(lockAddress, tokens, logger, storeRawData);
11
11
  this.lockAddressHash = addressToHash(lockAddress);
12
12
  }
13
13
  /**
@@ -30,7 +30,8 @@ export class HandshakeRosenExtractor extends AbstractRosenDataExtractor {
30
30
  return undefined;
31
31
  }
32
32
  // Find lock output and position
33
- const lockOutputIndex = outputs.findIndex((output) => output.address?.hash === this.lockAddressHash);
33
+ const lockOutputIndex = outputs.findIndex((output) => output.address?.hash === this.lockAddressHash &&
34
+ hasNoneCovenant(output));
34
35
  if (lockOutputIndex === -1) {
35
36
  this.logger.debug(baseError + `: Lock output not found`);
36
37
  return undefined;
@@ -101,4 +102,4 @@ export class HandshakeRosenExtractor extends AbstractRosenDataExtractor {
101
102
  return undefined;
102
103
  };
103
104
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZHNoYWtlUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS9oYW5kc2hha2VSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUduRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBa0M7SUFDcEUsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUN2QixlQUFlLENBQVM7SUFFbEMsWUFBWSxXQUFtQixFQUFFLE1BQWdCLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsR0FBRyxDQUFDLHFCQUE2QixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FBQyxFQUFFLENBQzNGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztR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QUFJLENBQUMsR0FBRyxDQUFDO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YseURBQXlELENBQUMsRUFBRSxDQUM3RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHNCQUFzQixHQUFHLENBQ3ZCLEdBQXNCLEVBQ3RCLE9BQWUsRUFDa0IsRUFBRTtRQUNuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7WUFDckQsT0FBTyxFQUFFLHNCQUFzQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTztnQkFDTCxJQUFJLEVBQUUsc0JBQXNCO2dCQUM1QixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDN0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5cbmltcG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L2Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCB7IEhBTkRTSEFLRV9DSEFJTiwgSEFORFNIQUtFX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEhhbmRzaGFrZVR4LCBIYW5kc2hha2VUeE91dHB1dCwgSGFuZHNoYWtlUm9zZW5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRyZXNzVG9IYXNoLCBleHRyYWN0RGF0YUZyb21PdXRwdXRzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBIYW5kc2hha2VSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPHN0cmluZz4ge1xuICByZWFkb25seSBjaGFpbiA9IEhBTkRTSEFLRV9DSEFJTjtcbiAgcHJvdGVjdGVkIGxvY2tBZGRyZXNzSGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGxvY2tBZGRyZXNzOiBzdHJpbmcsIHRva2VuczogVG9rZW5NYXAsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmxvY2tBZGRyZXNzSGFzaCA9IGFkZHJlc3NUb0hhc2gobG9ja0FkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gSGFuZHNoYWtlVHggZm9ybWF0XG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHJhbnNhY3Rpb24gc3RyaW5naWZpZWQgdHJhbnNhY3Rpb24gaW4gSGFuZHNoYWtlVHggZm9ybWF0XG4gICAqL1xuICBleHRyYWN0RGF0YSA9IChzZXJpYWxpemVkVHJhbnNhY3Rpb246IHN0cmluZyk6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgbGV0IHRyYW5zYWN0aW9uOiBIYW5kc2hha2VUeDtcbiAgICB0cnkge1xuICAgICAgdHJhbnNhY3Rpb24gPSBKc29uQmlnSW50LnBhcnNlKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGpzb24gdG8gSGFuZHNoYWtlVHggZm9ybWF0IHdoaWxlIGV4dHJhY3Rpbmcgcm9zZW4gZGF0YTogJHtlfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dYDtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRyYW5zYWN0aW9uLm91dHB1dHM7XG4gICAgICBpZiAob3V0cHV0cy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IEluc3VmZmljaWVudCBudW1iZXIgb2Ygb3V0cHV0c2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5kIGxvY2sgb3V0cHV0IGFuZCBwb3NpdGlvblxuICAgICAgY29uc3QgbG9ja091dHB1dEluZGV4ID0gb3V0cHV0cy5maW5kSW5kZXgoXG4gICAgICAgIChvdXRwdXQpID0+IG91dHB1dC5hZGRyZXNzPy5oYXNoID09PSB0aGlzLmxvY2tBZGRyZXNzSGFzaCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChsb2NrT3V0cHV0SW5kZXggPT09IC0xKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IExvY2sgb3V0cHV0IG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsb2NrT3V0cHV0ID0gb3V0cHV0c1tsb2NrT3V0cHV0SW5kZXhdO1xuXG4gICAgICAvLyBFeHRyYWN0IGRhdGEgZnJvbSBvdXRwdXRzIHVzaW5nIHV0aWxpdHkgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlY29uc3RydWN0ZWREYXRhID0gZXh0cmFjdERhdGFGcm9tT3V0cHV0cyhcbiAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgbG9ja091dHB1dEluZGV4LFxuICAgICAgKTtcblxuICAgICAgaWYgKCFyZWNvbnN0cnVjdGVkRGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBObyBkYXRhIGNodW5rcyBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBQYXJzZSB0aGUgcmVjb25zdHJ1Y3RlZCBkYXRhXG4gICAgICBsZXQgcm9zZW5EYXRhOiBIYW5kc2hha2VSb3NlbkRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICByb3NlbkRhdGEgPSBwYXJzZVJvc2VuRGF0YShyZWNvbnN0cnVjdGVkRGF0YSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBTdWNjZXNzZnVsbHkgZXh0cmFjdGVkIFJvc2VuIGRhdGEgZm9yIFske3Jvc2VuRGF0YS50b0NoYWlufV1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gcGFyc2UgcmVjb25zdHJ1Y3RlZCBkYXRhOiAke2V9YCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCBhc3NldCB0cmFuc2Zvcm1hdGlvbiB1c2luZyB0aGUgbG9jayBvdXRwdXRcbiAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgIGxvY2tPdXRwdXQsXG4gICAgICAgIHJvc2VuRGF0YS50b0NoYWluLFxuICAgICAgKTtcblxuICAgICAgaWYgKCFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLnR4SWR9LiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLmluZGV4fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IHJvc2VuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IHJvc2VuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICByYXdEYXRhOiBvdXRwdXRzXG4gICAgICAgICAgLm1hcCgob3V0cHV0KSA9PiBgJHtvdXRwdXQuYWRkcmVzcz8uaGFzaH06JHtvdXRwdXQudmFsdWV9YClcbiAgICAgICAgICAuam9pbignLCcpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgSGFuZHNoYWtlIHJvc2VuIGRhdGE6ICR7ZX1gLFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEhhbmRzaGFrZVR4T3V0cHV0LFxuICAgIHRvQ2hhaW46IHN0cmluZyxcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3Qgd3JhcHBlZEhucyA9IHRoaXMudG9rZW5zLnNlYXJjaChIQU5EU0hBS0VfQ0hBSU4sIHtcbiAgICAgIHRva2VuSWQ6IEhBTkRTSEFLRV9OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG5cbiAgICBpZiAod3JhcHBlZEhucy5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24od3JhcHBlZEhuc1swXSwgdG9DaGFpbikpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEhBTkRTSEFLRV9OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh3cmFwcGVkSG5zWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUudG9TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZHNoYWtlUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS9oYW5kc2hha2VSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUduRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixlQUFlLEdBQ2hCLE1BQU0sU0FBUyxDQUFDO0FBRWpCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBa0M7SUFDcEUsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUN2QixlQUFlLENBQVM7SUFFbEMsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixNQUF1QixFQUN2QixZQUFZLEdBQUcsSUFBSTtRQUVuQixLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsR0FBRyxDQUFDLHFCQUE2QixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FBQyxFQUFFLENBQzNGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFB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cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5cbmltcG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L2Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCB7IEhBTkRTSEFLRV9DSEFJTiwgSEFORFNIQUtFX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEhhbmRzaGFrZVR4LCBIYW5kc2hha2VUeE91dHB1dCwgSGFuZHNoYWtlUm9zZW5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBhZGRyZXNzVG9IYXNoLFxuICBleHRyYWN0RGF0YUZyb21PdXRwdXRzLFxuICBoYXNOb25lQ292ZW5hbnQsXG59IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgSGFuZHNoYWtlUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxzdHJpbmc+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBIQU5EU0hBS0VfQ0hBSU47XG4gIHByb3RlY3RlZCBsb2NrQWRkcmVzc0hhc2g6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2NrQWRkcmVzczogc3RyaW5nLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICAgc3RvcmVSYXdEYXRhID0gdHJ1ZSxcbiAgKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyLCBzdG9yZVJhd0RhdGEpO1xuICAgIHRoaXMubG9ja0FkZHJlc3NIYXNoID0gYWRkcmVzc1RvSGFzaChsb2NrQWRkcmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBIYW5kc2hha2VUeCBmb3JtYXRcbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUcmFuc2FjdGlvbiBzdHJpbmdpZmllZCB0cmFuc2FjdGlvbiBpbiBIYW5kc2hha2VUeCBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3REYXRhID0gKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbjogc3RyaW5nKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBsZXQgdHJhbnNhY3Rpb246IEhhbmRzaGFrZVR4O1xuICAgIHRyeSB7XG4gICAgICB0cmFuc2FjdGlvbiA9IEpzb25CaWdJbnQucGFyc2Uoc2VyaWFsaXplZFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgdHJhbnNhY3Rpb24ganNvbiB0byBIYW5kc2hha2VUeCBmb3JtYXQgd2hpbGUgZXh0cmFjdGluZyByb3NlbiBkYXRhOiAke2V9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24ub3V0cHV0cztcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBvdXRwdXRzYCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmQgbG9jayBvdXRwdXQgYW5kIHBvc2l0aW9uXG4gICAgICBjb25zdCBsb2NrT3V0cHV0SW5kZXggPSBvdXRwdXRzLmZpbmRJbmRleChcbiAgICAgICAgKG91dHB1dCkgPT5cbiAgICAgICAgICBvdXRwdXQuYWRkcmVzcz8uaGFzaCA9PT0gdGhpcy5sb2NrQWRkcmVzc0hhc2ggJiZcbiAgICAgICAgICBoYXNOb25lQ292ZW5hbnQob3V0cHV0KSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChsb2NrT3V0cHV0SW5kZXggPT09IC0xKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IExvY2sgb3V0cHV0IG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsb2NrT3V0cHV0ID0gb3V0cHV0c1tsb2NrT3V0cHV0SW5kZXhdO1xuXG4gICAgICAvLyBFeHRyYWN0IGRhdGEgZnJvbSBvdXRwdXRzIHVzaW5nIHV0aWxpdHkgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlY29uc3RydWN0ZWREYXRhID0gZXh0cmFjdERhdGFGcm9tT3V0cHV0cyhcbiAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgbG9ja091dHB1dEluZGV4LFxuICAgICAgKTtcblxuICAgICAgaWYgKCFyZWNvbnN0cnVjdGVkRGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBObyBkYXRhIGNodW5rcyBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBQYXJzZSB0aGUgcmVjb25zdHJ1Y3RlZCBkYXRhXG4gICAgICBsZXQgcm9zZW5EYXRhOiBIYW5kc2hha2VSb3NlbkRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICByb3NlbkRhdGEgPSBwYXJzZVJvc2VuRGF0YShyZWNvbnN0cnVjdGVkRGF0YSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBTdWNjZXNzZnVsbHkgZXh0cmFjdGVkIFJvc2VuIGRhdGEgZm9yIFske3Jvc2VuRGF0YS50b0NoYWlufV1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gcGFyc2UgcmVjb25zdHJ1Y3RlZCBkYXRhOiAke2V9YCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCBhc3NldCB0cmFuc2Zvcm1hdGlvbiB1c2luZyB0aGUgbG9jayBvdXRwdXRcbiAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgIGxvY2tPdXRwdXQsXG4gICAgICAgIHJvc2VuRGF0YS50b0NoYWluLFxuICAgICAgKTtcblxuICAgICAgaWYgKCFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLnR4SWR9LiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLmluZGV4fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IHJvc2VuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IHJvc2VuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICByYXdEYXRhOiBvdXRwdXRzXG4gICAgICAgICAgLm1hcCgob3V0cHV0KSA9PiBgJHtvdXRwdXQuYWRkcmVzcz8uaGFzaH06JHtvdXRwdXQudmFsdWV9YClcbiAgICAgICAgICAuam9pbignLCcpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgSGFuZHNoYWtlIHJvc2VuIGRhdGE6ICR7ZX1gLFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEhhbmRzaGFrZVR4T3V0cHV0LFxuICAgIHRvQ2hhaW46IHN0cmluZyxcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3Qgd3JhcHBlZEhucyA9IHRoaXMudG9rZW5zLnNlYXJjaChIQU5EU0hBS0VfQ0hBSU4sIHtcbiAgICAgIHRva2VuSWQ6IEhBTkRTSEFLRV9OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG5cbiAgICBpZiAod3JhcHBlZEhucy5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24od3JhcHBlZEhuc1swXSwgdG9DaGFpbikpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEhBTkRTSEFLRV9OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh3cmFwcGVkSG5zWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUudG9TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG59XG4iXX0=
@@ -6,7 +6,7 @@ import { HandshakeRpcTransaction, HandshakeRpcTxOutput } from './types';
6
6
  export declare class HandshakeRpcRosenExtractor extends AbstractRosenDataExtractor<HandshakeRpcTransaction> {
7
7
  readonly chain = "handshake";
8
8
  protected lockAddressHash: string;
9
- constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
9
+ constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger, storeRawData?: boolean);
10
10
  /**
11
11
  * extracts RosenData from given lock transaction in Rpc format
12
12
  * @param transaction the lock transaction in Rpc format
@@ -1 +1 @@
1
- {"version":3,"file":"handshakeRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/handshakeRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EAErB,MAAM,SAAS,CAAC;AAOjB,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,uBAAuB,CAAC;IACjG,QAAQ,CAAC,KAAK,eAAmB;IACjC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAEtB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,WAAW,GACT,aAAa,uBAAuB,KACnC,SAAS,GAAG,SAAS,CA0FtB;IAEF;;;;OAIG;IACH,sBAAsB,GACpB,KAAK,oBAAoB,EACzB,SAAS,MAAM,KACd,mBAAmB,GAAG,SAAS,CAgBhC;CACH"}
1
+ {"version":3,"file":"handshakeRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/handshakeRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EAErB,MAAM,SAAS,CAAC;AAQjB,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,uBAAuB,CAAC;IACjG,QAAQ,CAAC,KAAK,eAAmB;IACjC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAGhC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc,EACvB,YAAY,UAAO;IAMrB;;;OAGG;IACH,WAAW,GACT,aAAa,uBAAuB,KACnC,SAAS,GAAG,SAAS,CA4FtB;IAEF;;;;OAIG;IACH,sBAAsB,GACpB,KAAK,oBAAoB,EACzB,SAAS,MAAM,KACd,mBAAmB,GAAG,SAAS,CAgBhC;CACH"}
@@ -1,12 +1,12 @@
1
1
  import { parseRosenData } from '../../utils';
2
2
  import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
3
3
  import { HANDSHAKE_CHAIN, HANDSHAKE_NATIVE_TOKEN } from '../const';
4
- import { addressToHash, convertHnsToDollarydoos, extractDataFromOutputs, } from './utils';
4
+ import { addressToHash, convertHnsToDollarydoos, extractDataFromOutputs, hasNoneCovenant, } from './utils';
5
5
  export class HandshakeRpcRosenExtractor extends AbstractRosenDataExtractor {
6
6
  chain = HANDSHAKE_CHAIN;
7
7
  lockAddressHash;
8
- constructor(lockAddress, tokens, logger) {
9
- super(lockAddress, tokens, logger);
8
+ constructor(lockAddress, tokens, logger, storeRawData = true) {
9
+ super(lockAddress, tokens, logger, storeRawData);
10
10
  this.lockAddressHash = addressToHash(lockAddress);
11
11
  }
12
12
  /**
@@ -22,7 +22,8 @@ export class HandshakeRpcRosenExtractor extends AbstractRosenDataExtractor {
22
22
  return undefined;
23
23
  }
24
24
  // Find lock output first (need to use original RPC output for value)
25
- const lockOutputIndex = outputs.findIndex((output) => output.address?.hash === this.lockAddressHash);
25
+ const lockOutputIndex = outputs.findIndex((output) => output.address?.hash === this.lockAddressHash &&
26
+ hasNoneCovenant(output));
26
27
  if (lockOutputIndex === -1) {
27
28
  this.logger.debug(baseError + `: Lock output not found`);
28
29
  return undefined;
@@ -103,4 +104,4 @@ export class HandshakeRpcRosenExtractor extends AbstractRosenDataExtractor {
103
104
  return undefined;
104
105
  };
105
106
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZHNoYWtlUnBjUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS9oYW5kc2hha2VScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1uRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLHVCQUF1QixFQUN2QixzQkFBc0IsR0FDdkIsTUFBTSxTQUFTLENBQUM7QUFFakIsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDBCQUFtRDtJQUN4RixLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQ3ZCLGVBQWUsQ0FBUztJQUVsQyxZQUFZLFdBQW1CLEVBQUUsTUFBZ0IsRUFBRSxNQUF1QjtRQUN4RSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxHQUFHLENBQ1osV0FBb0MsRUFDYixFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNqQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBRUQs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ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5cbmltcG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L2Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCB7IEhBTkRTSEFLRV9DSEFJTiwgSEFORFNIQUtFX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7XG4gIEhhbmRzaGFrZVJwY1RyYW5zYWN0aW9uLFxuICBIYW5kc2hha2VScGNUeE91dHB1dCxcbiAgSGFuZHNoYWtlUm9zZW5EYXRhLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIGFkZHJlc3NUb0hhc2gsXG4gIGNvbnZlcnRIbnNUb0RvbGxhcnlkb29zLFxuICBleHRyYWN0RGF0YUZyb21PdXRwdXRzLFxufSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEhhbmRzaGFrZVJwY1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8SGFuZHNoYWtlUnBjVHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBIQU5EU0hBS0VfQ0hBSU47XG4gIHByb3RlY3RlZCBsb2NrQWRkcmVzc0hhc2g6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrQWRkcmVzc0hhc2ggPSBhZGRyZXNzVG9IYXNoKGxvY2tBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIFJwYyBmb3JtYXRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIFJwYyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3REYXRhID0gKFxuICAgIHRyYW5zYWN0aW9uOiBIYW5kc2hha2VScGNUcmFuc2FjdGlvbixcbiAgKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udHhpZH1dYDtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRyYW5zYWN0aW9uLnZvdXQ7XG4gICAgICBpZiAob3V0cHV0cy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IEluc3VmZmljaWVudCBudW1iZXIgb2Ygb3V0cHV0c2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5kIGxvY2sgb3V0cHV0IGZpcnN0IChuZWVkIHRvIHVzZSBvcmlnaW5hbCBSUEMgb3V0cHV0IGZvciB2YWx1ZSlcbiAgICAgIGNvbnN0IGxvY2tPdXRwdXRJbmRleCA9IG91dHB1dHMuZmluZEluZGV4KFxuICAgICAgICAob3V0cHV0KSA9PiBvdXRwdXQuYWRkcmVzcz8uaGFzaCA9PT0gdGhpcy5sb2NrQWRkcmVzc0hhc2gsXG4gICAgICApO1xuXG4gICAgICBpZiAobG9ja091dHB1dEluZGV4ID09PSAtMSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBMb2NrIG91dHB1dCBub3QgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbG9ja091dHB1dFJwYyA9IG91dHB1dHNbbG9ja091dHB1dEluZGV4XTtcblxuICAgICAgLy8gQ29udmVydCBSUEMgb3V0cHV0cyB0byBzdGFuZGFyZCBmb3JtYXQgKEhOUyB0byBkb2xsYXJ5ZG9vcylcbiAgICAgIGNvbnN0IGNvbnZlcnRlZE91dHB1dHMgPSBvdXRwdXRzLm1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRvbGxhcnlkb29zID0gY29udmVydEhuc1RvRG9sbGFyeWRvb3Mob3V0cHV0LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogQmlnSW50KGRvbGxhcnlkb29zKSxcbiAgICAgICAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBFeHRyYWN0IGRhdGEgZnJvbSBvdXRwdXRzIHVzaW5nIHV0aWxpdHkgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlY29uc3RydWN0ZWREYXRhID0gZXh0cmFjdERhdGFGcm9tT3V0cHV0cyhcbiAgICAgICAgY29udmVydGVkT3V0cHV0cyxcbiAgICAgICAgbG9ja091dHB1dEluZGV4LFxuICAgICAgKTtcblxuICAgICAgaWYgKCFyZWNvbnN0cnVjdGVkRGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBObyBkYXRhIGNodW5rcyBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBQYXJzZSB0aGUgcmVjb25zdHJ1Y3RlZCBkYXRhXG4gICAgICBsZXQgcm9zZW5EYXRhOiBIYW5kc2hha2VSb3NlbkRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICByb3NlbkRhdGEgPSBwYXJzZVJvc2VuRGF0YShyZWNvbnN0cnVjdGVkRGF0YSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBTdWNjZXNzZnVsbHkgZXh0cmFjdGVkIFJvc2VuIGRhdGEgZm9yIFske3Jvc2VuRGF0YS50b0NoYWlufV1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gcGFyc2UgZXh0cmFjdGVkIGRhdGE6ICR7ZX1gKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCBhc3NldCB0cmFuc2Zvcm1hdGlvbiB1c2luZyB0aGUgbG9jayBvdXRwdXRcbiAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgIGxvY2tPdXRwdXRScGMsXG4gICAgICAgIHJvc2VuRGF0YS50b0NoYWluLFxuICAgICAgKTtcblxuICAgICAgaWYgKCFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24udmluWzBdLnR4aWR9LiR7dHJhbnNhY3Rpb24udmluWzBdLnZvdXR9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvQ2hhaW46IHJvc2VuRGF0YS50b0NoYWluLFxuICAgICAgICB0b0FkZHJlc3M6IHJvc2VuRGF0YS50b0FkZHJlc3MsXG4gICAgICAgIGJyaWRnZUZlZTogcm9zZW5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgbmV0d29ya0ZlZTogcm9zZW5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgIGZyb21BZGRyZXNzOiBmcm9tQWRkcmVzcyxcbiAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhpZCxcbiAgICAgICAgcmF3RGF0YTogb3V0cHV0c1xuICAgICAgICAgIC5tYXAoKG91dHB1dCkgPT4gYCR7b3V0cHV0LmFkZHJlc3M/Lmhhc2h9OiR7b3V0cHV0LnZhbHVlfWApXG4gICAgICAgICAgLmpvaW4oJywnKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIEhhbmRzaGFrZSByb3NlbiBkYXRhIGZyb20gUnBjOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBIYW5kc2hha2VScGNUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmcsXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IHdyYXBwZWRIbnMgPSB0aGlzLnRva2Vucy5zZWFyY2goSEFORFNIQUtFX0NIQUlOLCB7XG4gICAgICB0b2tlbklkOiBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuXG4gICAgaWYgKHdyYXBwZWRIbnMubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHdyYXBwZWRIbnNbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICAvLyBDb252ZXJ0IEhOUyB0byBkb2xsYXJ5ZG9vc1xuICAgICAgY29uc3QgZG9sbGFyeWRvb3MgPSBjb252ZXJ0SG5zVG9Eb2xsYXJ5ZG9vcyhib3gudmFsdWUpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQod3JhcHBlZEhuc1swXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogZG9sbGFyeWRvb3MsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZHNoYWtlUnBjUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS9oYW5kc2hha2VScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1uRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsZUFBZSxHQUNoQixNQUFNLFNBQVMsQ0FBQztBQUVqQixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMEJBQW1EO0lBQ3hGLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDdkIsZUFBZSxDQUFTO0lBRWxDLFlBQ0UsV0FBbUIsRUFDbkIsTUFBZ0IsRUFDaEIsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLElBQUk7UUFFbkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLEdBQUcsQ0FDWixXQUFvQyxFQUNiLEVBQUU7UUFDekIsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUNyRSxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGtDQUFrQyxDQUFD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QixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcblxuaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IHsgSEFORFNIQUtFX0NIQUlOLCBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHtcbiAgSGFuZHNoYWtlUnBjVHJhbnNhY3Rpb24sXG4gIEhhbmRzaGFrZVJwY1R4T3V0cHV0LFxuICBIYW5kc2hha2VSb3NlbkRhdGEsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgYWRkcmVzc1RvSGFzaCxcbiAgY29udmVydEhuc1RvRG9sbGFyeWRvb3MsXG4gIGV4dHJhY3REYXRhRnJvbU91dHB1dHMsXG4gIGhhc05vbmVDb3ZlbmFudCxcbn0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBIYW5kc2hha2VScGNSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPEhhbmRzaGFrZVJwY1RyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gSEFORFNIQUtFX0NIQUlOO1xuICBwcm90ZWN0ZWQgbG9ja0FkZHJlc3NIYXNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICAgIHN0b3JlUmF3RGF0YSA9IHRydWUsXG4gICkge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlciwgc3RvcmVSYXdEYXRhKTtcbiAgICB0aGlzLmxvY2tBZGRyZXNzSGFzaCA9IGFkZHJlc3NUb0hhc2gobG9ja0FkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gUnBjIGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gUnBjIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdERhdGEgPSAoXG4gICAgdHJhbnNhY3Rpb246IEhhbmRzaGFrZVJwY1RyYW5zYWN0aW9uLFxuICApOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi50eGlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24udm91dDtcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBvdXRwdXRzYCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmQgbG9jayBvdXRwdXQgZmlyc3QgKG5lZWQgdG8gdXNlIG9yaWdpbmFsIFJQQyBvdXRwdXQgZm9yIHZhbHVlKVxuICAgICAgY29uc3QgbG9ja091dHB1dEluZGV4ID0gb3V0cHV0cy5maW5kSW5kZXgoXG4gICAgICAgIChvdXRwdXQpID0+XG4gICAgICAgICAgb3V0cHV0LmFkZHJlc3M/Lmhhc2ggPT09IHRoaXMubG9ja0FkZHJlc3NIYXNoICYmXG4gICAgICAgICAgaGFzTm9uZUNvdmVuYW50KG91dHB1dCksXG4gICAgICApO1xuXG4gICAgICBpZiAobG9ja091dHB1dEluZGV4ID09PSAtMSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBMb2NrIG91dHB1dCBub3QgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbG9ja091dHB1dFJwYyA9IG91dHB1dHNbbG9ja091dHB1dEluZGV4XTtcblxuICAgICAgLy8gQ29udmVydCBSUEMgb3V0cHV0cyB0byBzdGFuZGFyZCBmb3JtYXQgKEhOUyB0byBkb2xsYXJ5ZG9vcylcbiAgICAgIGNvbnN0IGNvbnZlcnRlZE91dHB1dHMgPSBvdXRwdXRzLm1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRvbGxhcnlkb29zID0gY29udmVydEhuc1RvRG9sbGFyeWRvb3Mob3V0cHV0LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogQmlnSW50KGRvbGxhcnlkb29zKSxcbiAgICAgICAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBFeHRyYWN0IGRhdGEgZnJvbSBvdXRwdXRzIHVzaW5nIHV0aWxpdHkgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlY29uc3RydWN0ZWREYXRhID0gZXh0cmFjdERhdGFGcm9tT3V0cHV0cyhcbiAgICAgICAgY29udmVydGVkT3V0cHV0cyxcbiAgICAgICAgbG9ja091dHB1dEluZGV4LFxuICAgICAgKTtcblxuICAgICAgaWYgKCFyZWNvbnN0cnVjdGVkRGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBObyBkYXRhIGNodW5rcyBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBQYXJzZSB0aGUgcmVjb25zdHJ1Y3RlZCBkYXRhXG4gICAgICBsZXQgcm9zZW5EYXRhOiBIYW5kc2hha2VSb3NlbkRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICByb3NlbkRhdGEgPSBwYXJzZVJvc2VuRGF0YShyZWNvbnN0cnVjdGVkRGF0YSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBTdWNjZXNzZnVsbHkgZXh0cmFjdGVkIFJvc2VuIGRhdGEgZm9yIFske3Jvc2VuRGF0YS50b0NoYWlufV1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gcGFyc2UgZXh0cmFjdGVkIGRhdGE6ICR7ZX1gKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCBhc3NldCB0cmFuc2Zvcm1hdGlvbiB1c2luZyB0aGUgbG9jayBvdXRwdXRcbiAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgIGxvY2tPdXRwdXRScGMsXG4gICAgICAgIHJvc2VuRGF0YS50b0NoYWluLFxuICAgICAgKTtcblxuICAgICAgaWYgKCFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24udmluWzBdLnR4aWR9LiR7dHJhbnNhY3Rpb24udmluWzBdLnZvdXR9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvQ2hhaW46IHJvc2VuRGF0YS50b0NoYWluLFxuICAgICAgICB0b0FkZHJlc3M6IHJvc2VuRGF0YS50b0FkZHJlc3MsXG4gICAgICAgIGJyaWRnZUZlZTogcm9zZW5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgbmV0d29ya0ZlZTogcm9zZW5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgIGZyb21BZGRyZXNzOiBmcm9tQWRkcmVzcyxcbiAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhpZCxcbiAgICAgICAgcmF3RGF0YTogb3V0cHV0c1xuICAgICAgICAgIC5tYXAoKG91dHB1dCkgPT4gYCR7b3V0cHV0LmFkZHJlc3M/Lmhhc2h9OiR7b3V0cHV0LnZhbHVlfWApXG4gICAgICAgICAgLmpvaW4oJywnKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIEhhbmRzaGFrZSByb3NlbiBkYXRhIGZyb20gUnBjOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBIYW5kc2hha2VScGNUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmcsXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IHdyYXBwZWRIbnMgPSB0aGlzLnRva2Vucy5zZWFyY2goSEFORFNIQUtFX0NIQUlOLCB7XG4gICAgICB0b2tlbklkOiBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuXG4gICAgaWYgKHdyYXBwZWRIbnMubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHdyYXBwZWRIbnNbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICAvLyBDb252ZXJ0IEhOUyB0byBkb2xsYXJ5ZG9vc1xuICAgICAgY29uc3QgZG9sbGFyeWRvb3MgPSBjb252ZXJ0SG5zVG9Eb2xsYXJ5ZG9vcyhib3gudmFsdWUpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQod3JhcHBlZEhuc1swXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogZG9sbGFyeWRvb3MsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xufVxuIl19
@@ -1,10 +1,16 @@
1
- import { DataExtractionOutput } from './types';
1
+ import { DataExtractionOutput, HandshakeRpcTxOutput, HandshakeTxOutput } from './types';
2
2
  /**
3
3
  * Extracts the hash from a Handshake address using bitcoinjs-lib
4
4
  * @param addr The Handshake address to convert
5
5
  * @returns The address hash as a hex string
6
6
  */
7
7
  export declare const addressToHash: (addr: string) => string;
8
+ /**
9
+ * Checks if a Handshake output uses the NONE covenant
10
+ * @param output The output to validate
11
+ * @returns true when covenant type is 0
12
+ */
13
+ export declare const hasNoneCovenant: (output: HandshakeTxOutput | HandshakeRpcTxOutput) => boolean;
8
14
  /**
9
15
  * Extracts data chunks from transaction outputs using value-based ordering
10
16
  * Data is encoded in P2WPKH address hashes (version 0, values 1000+)
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAQ5C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,oBAAoB,EAAE,EAC/B,kBAAkB,MAAM,KACvB,MAAM,GAAG,SA2CX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,MAIvD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAQ5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,iBAAiB,GAAG,oBAAoB,KAC/C,OAMF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,oBAAoB,EAAE,EAC/B,kBAAkB,MAAM,KACvB,MAAM,GAAG,SA2CX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,MAIvD,CAAC"}
@@ -11,6 +11,16 @@ export const addressToHash = (addr) => {
11
11
  // We want just the hash part (skip first 2 bytes: OP_0 and length)
12
12
  return outputScript.subarray(2).toString('hex');
13
13
  };
14
+ /**
15
+ * Checks if a Handshake output uses the NONE covenant
16
+ * @param output The output to validate
17
+ * @returns true when covenant type is 0
18
+ */
19
+ export const hasNoneCovenant = (output) => {
20
+ const covenantType = output.covenant.type;
21
+ return ((typeof covenantType === 'bigint' ? Number(covenantType) : covenantType) ===
22
+ 0);
23
+ };
14
24
  /**
15
25
  * Extracts data chunks from transaction outputs using value-based ordering
16
26
  * Data is encoded in P2WPKH address hashes (version 0, values 1000+)
@@ -64,4 +74,4 @@ export const convertHnsToDollarydoos = (value) => {
64
74
  const part1 = ((parts[1] ?? '') + '0'.repeat(6)).substring(0, 6);
65
75
  return (parts[0] === '0' ? '' : parts[0]) + part1;
66
76
  };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUNwRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FDcEQsSUFBSSxFQUNKLGlCQUFpQixDQUNsQixDQUFDO0lBQ0YsNERBQTREO0lBQzVELG1FQUFtRTtJQUNuRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQ3BDLE9BQStCLEVBQy9CLGdCQUF3QixFQUNKLEVBQUU7SUFDdEIsTUFBTSxlQUFlLEdBQTJDLEVBQUUsQ0FBQztJQUVuRSxtQ0FBbUM7SUFDbkMsMkVBQTJFO0lBQzNFLEtBQUssSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUN0RCxLQUFLLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxXQUFXLEdBQUcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUk7Z0JBQUUsU0FBUztZQUV0RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxHQUNYLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUTtnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBRTdCLGtEQUFrRDtZQUNsRCxJQUNFLEtBQUssS0FBSyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDckQsT0FBTyxLQUFLLENBQUM7Z0JBQ2IsUUFBUSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQ3RCLENBQUM7Z0JBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDbkIsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLElBQUksRUFBRSxRQUFRO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMscUJBQXFCO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxNQUFNLGlCQUFpQixHQUNyQixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDeEIsQ0FBQyxDQUFDLGVBQWU7YUFDWixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDYixDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWhCLE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQy9ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbkxpYiBmcm9tICdiaXRjb2luanMtbGliJztcblxuaW1wb3J0IHsgSEFORFNIQUtFX05FVFdPUkssIE1JTl9VVFhPX1ZBTFVFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGF0YUV4dHJhY3Rpb25PdXRwdXQgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgaGFzaCBmcm9tIGEgSGFuZHNoYWtlIGFkZHJlc3MgdXNpbmcgYml0Y29pbmpzLWxpYlxuICogQHBhcmFtIGFkZHIgVGhlIEhhbmRzaGFrZSBhZGRyZXNzIHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIFRoZSBhZGRyZXNzIGhhc2ggYXMgYSBoZXggc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRyZXNzVG9IYXNoID0gKGFkZHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dFNjcmlwdCA9IGJpdGNvaW5MaWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChcbiAgICBhZGRyLFxuICAgIEhBTkRTSEFLRV9ORVRXT1JLLFxuICApO1xuICAvLyBPdXRwdXQgc2NyaXB0IGZvcm1hdCBmb3Igd2l0bmVzcyB2MDogT1BfMCA8bGVuZ3RoPiA8aGFzaD5cbiAgLy8gV2Ugd2FudCBqdXN0IHRoZSBoYXNoIHBhcnQgKHNraXAgZmlyc3QgMiBieXRlczogT1BfMCBhbmQgbGVuZ3RoKVxuICByZXR1cm4gb3V0cHV0U2NyaXB0LnN1YmFycmF5KDIpLnRvU3RyaW5nKCdoZXgnKTtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgZGF0YSBjaHVua3MgZnJvbSB0cmFuc2FjdGlvbiBvdXRwdXRzIHVzaW5nIHZhbHVlLWJhc2VkIG9yZGVyaW5nXG4gKiBEYXRhIGlzIGVuY29kZWQgaW4gUDJXUEtIIGFkZHJlc3MgaGFzaGVzICh2ZXJzaW9uIDAsIHZhbHVlcyAxMDAwKylcbiAqIEBwYXJhbSBvdXRwdXRzIC0gYXJyYXkgb2Ygb3V0cHV0cyB3aXRoIHZhbHVlLCBhZGRyZXNzLmhhc2gsIGFkZHJlc3MudmVyc2lvblxuICogQHBhcmFtIGxvY2tBZGRyZXNzSW5kZXggLSBpbmRleCBvZiB0aGUgbG9jayBhZGRyZXNzIG91dHB1dFxuICogQHJldHVybnMgcmVjb25zdHJ1Y3RlZERhdGEgYXMgc3RyaW5nIG9yIHVuZGVmaW5lZFxuICovXG5leHBvcnQgY29uc3QgZXh0cmFjdERhdGFGcm9tT3V0cHV0cyA9IChcbiAgb3V0cHV0czogRGF0YUV4dHJhY3Rpb25PdXRwdXRbXSxcbiAgbG9ja0FkZHJlc3NJbmRleDogbnVtYmVyLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgZXh0cmFjdGVkQ2h1bmtzOiBBcnJheTx7IGluZGV4OiBudW1iZXI7IGRhdGE6IHN0cmluZyB9PiA9IFtdO1xuXG4gIC8vIEV4dHJhY3QgZGF0YSBjaHVua3Mgc3RlcCBieSBzdGVwXG4gIC8vIFNlYXJjaCBvdXRwdXRzIGJlZm9yZSBsb2NrIGFkZHJlc3MgKGRhdGEgY2h1bmtzIGNvbWUgYmVmb3JlIGxvY2sgb3V0cHV0KVxuICBmb3IgKGxldCBjaHVua0luZGV4ID0gMDsgY2h1bmtJbmRleCA8IDQ7IGNodW5rSW5kZXgrKykge1xuICAgIGZvciAobGV0IG91dHB1dEluZGV4ID0gMDsgb3V0cHV0SW5kZXggPCBsb2NrQWRkcmVzc0luZGV4OyBvdXRwdXRJbmRleCsrKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW291dHB1dEluZGV4XTtcblxuICAgICAgaWYgKCFvdXRwdXQuYWRkcmVzcyB8fCAhb3V0cHV0LmFkZHJlc3MuaGFzaCkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gb3V0cHV0LnZhbHVlO1xuICAgICAgY29uc3QgYWRkckhhc2ggPSBvdXRwdXQuYWRkcmVzcy5oYXNoO1xuICAgICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICAgIHR5cGVvZiBvdXRwdXQuYWRkcmVzcy52ZXJzaW9uID09PSAnYmlnaW50J1xuICAgICAgICAgID8gTnVtYmVyKG91dHB1dC5hZGRyZXNzLnZlcnNpb24pXG4gICAgICAgICAgOiBvdXRwdXQuYWRkcmVzcy52ZXJzaW9uO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGlzIG91dHB1dCBtYXRjaGVzIHRoZSBleHBlY3RlZCBjaHVua1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PT0gQmlnSW50KE1JTl9VVFhPX1ZBTFVFKSArIEJpZ0ludChjaHVua0luZGV4KSAmJlxuICAgICAgICB2ZXJzaW9uID09PSAwICYmXG4gICAgICAgIGFkZHJIYXNoLmxlbmd0aCA9PT0gNDBcbiAgICAgICkge1xuICAgICAgICBleHRyYWN0ZWRDaHVua3MucHVzaCh7XG4gICAgICAgICAgaW5kZXg6IGNodW5rSW5kZXgsXG4gICAgICAgICAgZGF0YTogYWRkckhhc2gsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhazsgLy8gTW92ZSB0byBuZXh0IGNodW5rXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVjb25zdHJ1Y3QgZGF0YSBieSBzb3J0aW5nIGNodW5rcyBieSBpbmRleFxuICBjb25zdCByZWNvbnN0cnVjdGVkRGF0YSA9XG4gICAgZXh0cmFjdGVkQ2h1bmtzLmxlbmd0aCA+IDBcbiAgICAgID8gZXh0cmFjdGVkQ2h1bmtzXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KVxuICAgICAgICAgIC5tYXAoKGNodW5rKSA9PiBjaHVuay5kYXRhKVxuICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHJlY29uc3RydWN0ZWREYXRhO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBITlMgdmFsdWUgdG8gZG9sbGFyeWRvb3MgKHNhdG9zaGktZXF1aXZhbGVudCkgdXNpbmcgc3RyaW5nLWJhc2VkIGFyaXRobWV0aWNcbiAqIFRoaXMgYXZvaWRzIGZsb2F0aW5nLXBvaW50IHByZWNpc2lvbiBlcnJvcnMgd2hlbiBjb252ZXJ0aW5nIGZyb20gSE5TIGRlY2ltYWwgZm9ybWF0XG4gKiBAcGFyYW0gdmFsdWUgVGhlIEhOUyB2YWx1ZSBhcyBhIG51bWJlciAoZS5nLiwgMC4wMDEsIDEuNSlcbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBpbiBkb2xsYXJ5ZG9vcyBhcyBhIHN0cmluZyAoZS5nLiwgXCIxMDAwXCIsIFwiMTUwMDAwMFwiKVxuICovXG5leHBvcnQgY29uc3QgY29udmVydEhuc1RvRG9sbGFyeWRvb3MgPSAodmFsdWU6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHBhcnRzID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICBjb25zdCBwYXJ0MSA9ICgocGFydHNbMV0gPz8gJycpICsgJzAnLnJlcGVhdCg2KSkuc3Vic3RyaW5nKDAsIDYpO1xuICByZXR1cm4gKHBhcnRzWzBdID09PSAnMCcgPyAnJyA6IHBhcnRzWzBdKSArIHBhcnQxO1xufTtcbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT2hFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUNwRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FDcEQsSUFBSSxFQUNKLGlCQUFpQixDQUNsQixDQUFDO0lBQ0YsNERBQTREO0lBQzVELG1FQUFtRTtJQUNuRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBZ0QsRUFDdkMsRUFBRTtJQUNYLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBdUIsQ0FBQztJQUM3RCxPQUFPLENBQ0wsQ0FBQyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ3hFLENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsT0FBK0IsRUFDL0IsZ0JBQXdCLEVBQ0osRUFBRTtJQUN0QixNQUFNLGVBQWUsR0FBMkMsRUFBRSxDQUFDO0lBRW5FLG1DQUFtQztJQUNuQywyRUFBMkU7SUFDM0UsS0FBSyxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ3RELEtBQUssSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFBRSxTQUFTO1lBRXRELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQ1gsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxRQUFRO2dCQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFFN0Isa0RBQWtEO1lBQ2xELElBQ0UsS0FBSyxLQUFLLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUNyRCxPQUFPLEtBQUssQ0FBQztnQkFDYixRQUFRLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFDdEIsQ0FBQztnQkFDRCxlQUFlLENBQUMsSUFBSSxDQUFDO29CQUNuQixLQUFLLEVBQUUsVUFBVTtvQkFDakIsSUFBSSxFQUFFLFFBQVE7aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxxQkFBcUI7WUFDOUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLE1BQU0saUJBQWlCLEdBQ3JCLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN4QixDQUFDLENBQUMsZUFBZTthQUNaLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUNqQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNiLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFaEIsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBYSxFQUFVLEVBQUU7SUFDL0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiaXRjb2luTGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgeyBIQU5EU0hBS0VfTkVUV09SSywgTUlOX1VUWE9fVkFMVUUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBEYXRhRXh0cmFjdGlvbk91dHB1dCxcbiAgSGFuZHNoYWtlUnBjVHhPdXRwdXQsXG4gIEhhbmRzaGFrZVR4T3V0cHV0LFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgaGFzaCBmcm9tIGEgSGFuZHNoYWtlIGFkZHJlc3MgdXNpbmcgYml0Y29pbmpzLWxpYlxuICogQHBhcmFtIGFkZHIgVGhlIEhhbmRzaGFrZSBhZGRyZXNzIHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIFRoZSBhZGRyZXNzIGhhc2ggYXMgYSBoZXggc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRyZXNzVG9IYXNoID0gKGFkZHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dFNjcmlwdCA9IGJpdGNvaW5MaWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChcbiAgICBhZGRyLFxuICAgIEhBTkRTSEFLRV9ORVRXT1JLLFxuICApO1xuICAvLyBPdXRwdXQgc2NyaXB0IGZvcm1hdCBmb3Igd2l0bmVzcyB2MDogT1BfMCA8bGVuZ3RoPiA8aGFzaD5cbiAgLy8gV2Ugd2FudCBqdXN0IHRoZSBoYXNoIHBhcnQgKHNraXAgZmlyc3QgMiBieXRlczogT1BfMCBhbmQgbGVuZ3RoKVxuICByZXR1cm4gb3V0cHV0U2NyaXB0LnN1YmFycmF5KDIpLnRvU3RyaW5nKCdoZXgnKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgSGFuZHNoYWtlIG91dHB1dCB1c2VzIHRoZSBOT05FIGNvdmVuYW50XG4gKiBAcGFyYW0gb3V0cHV0IFRoZSBvdXRwdXQgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHRydWUgd2hlbiBjb3ZlbmFudCB0eXBlIGlzIDBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc05vbmVDb3ZlbmFudCA9IChcbiAgb3V0cHV0OiBIYW5kc2hha2VUeE91dHB1dCB8IEhhbmRzaGFrZVJwY1R4T3V0cHV0LFxuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGNvdmVuYW50VHlwZSA9IG91dHB1dC5jb3ZlbmFudC50eXBlIGFzIG51bWJlciB8IGJpZ2ludDtcbiAgcmV0dXJuIChcbiAgICAodHlwZW9mIGNvdmVuYW50VHlwZSA9PT0gJ2JpZ2ludCcgPyBOdW1iZXIoY292ZW5hbnRUeXBlKSA6IGNvdmVuYW50VHlwZSkgPT09XG4gICAgMFxuICApO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyBkYXRhIGNodW5rcyBmcm9tIHRyYW5zYWN0aW9uIG91dHB1dHMgdXNpbmcgdmFsdWUtYmFzZWQgb3JkZXJpbmdcbiAqIERhdGEgaXMgZW5jb2RlZCBpbiBQMldQS0ggYWRkcmVzcyBoYXNoZXMgKHZlcnNpb24gMCwgdmFsdWVzIDEwMDArKVxuICogQHBhcmFtIG91dHB1dHMgLSBhcnJheSBvZiBvdXRwdXRzIHdpdGggdmFsdWUsIGFkZHJlc3MuaGFzaCwgYWRkcmVzcy52ZXJzaW9uXG4gKiBAcGFyYW0gbG9ja0FkZHJlc3NJbmRleCAtIGluZGV4IG9mIHRoZSBsb2NrIGFkZHJlc3Mgb3V0cHV0XG4gKiBAcmV0dXJucyByZWNvbnN0cnVjdGVkRGF0YSBhcyBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0RGF0YUZyb21PdXRwdXRzID0gKFxuICBvdXRwdXRzOiBEYXRhRXh0cmFjdGlvbk91dHB1dFtdLFxuICBsb2NrQWRkcmVzc0luZGV4OiBudW1iZXIsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBleHRyYWN0ZWRDaHVua3M6IEFycmF5PHsgaW5kZXg6IG51bWJlcjsgZGF0YTogc3RyaW5nIH0+ID0gW107XG5cbiAgLy8gRXh0cmFjdCBkYXRhIGNodW5rcyBzdGVwIGJ5IHN0ZXBcbiAgLy8gU2VhcmNoIG91dHB1dHMgYmVmb3JlIGxvY2sgYWRkcmVzcyAoZGF0YSBjaHVua3MgY29tZSBiZWZvcmUgbG9jayBvdXRwdXQpXG4gIGZvciAobGV0IGNodW5rSW5kZXggPSAwOyBjaHVua0luZGV4IDwgNDsgY2h1bmtJbmRleCsrKSB7XG4gICAgZm9yIChsZXQgb3V0cHV0SW5kZXggPSAwOyBvdXRwdXRJbmRleCA8IGxvY2tBZGRyZXNzSW5kZXg7IG91dHB1dEluZGV4KyspIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbb3V0cHV0SW5kZXhdO1xuXG4gICAgICBpZiAoIW91dHB1dC5hZGRyZXNzIHx8ICFvdXRwdXQuYWRkcmVzcy5oYXNoKSBjb250aW51ZTtcblxuICAgICAgY29uc3QgdmFsdWUgPSBvdXRwdXQudmFsdWU7XG4gICAgICBjb25zdCBhZGRySGFzaCA9IG91dHB1dC5hZGRyZXNzLmhhc2g7XG4gICAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgICAgdHlwZW9mIG91dHB1dC5hZGRyZXNzLnZlcnNpb24gPT09ICdiaWdpbnQnXG4gICAgICAgICAgPyBOdW1iZXIob3V0cHV0LmFkZHJlc3MudmVyc2lvbilcbiAgICAgICAgICA6IG91dHB1dC5hZGRyZXNzLnZlcnNpb247XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoaXMgb3V0cHV0IG1hdGNoZXMgdGhlIGV4cGVjdGVkIGNodW5rXG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09PSBCaWdJbnQoTUlOX1VUWE9fVkFMVUUpICsgQmlnSW50KGNodW5rSW5kZXgpICYmXG4gICAgICAgIHZlcnNpb24gPT09IDAgJiZcbiAgICAgICAgYWRkckhhc2gubGVuZ3RoID09PSA0MFxuICAgICAgKSB7XG4gICAgICAgIGV4dHJhY3RlZENodW5rcy5wdXNoKHtcbiAgICAgICAgICBpbmRleDogY2h1bmtJbmRleCxcbiAgICAgICAgICBkYXRhOiBhZGRySGFzaCxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrOyAvLyBNb3ZlIHRvIG5leHQgY2h1bmtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZWNvbnN0cnVjdCBkYXRhIGJ5IHNvcnRpbmcgY2h1bmtzIGJ5IGluZGV4XG4gIGNvbnN0IHJlY29uc3RydWN0ZWREYXRhID1cbiAgICBleHRyYWN0ZWRDaHVua3MubGVuZ3RoID4gMFxuICAgICAgPyBleHRyYWN0ZWRDaHVua3NcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpXG4gICAgICAgICAgLm1hcCgoY2h1bmspID0+IGNodW5rLmRhdGEpXG4gICAgICAgICAgLmpvaW4oJycpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gcmVjb25zdHJ1Y3RlZERhdGE7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIEhOUyB2YWx1ZSB0byBkb2xsYXJ5ZG9vcyAoc2F0b3NoaS1lcXVpdmFsZW50KSB1c2luZyBzdHJpbmctYmFzZWQgYXJpdGhtZXRpY1xuICogVGhpcyBhdm9pZHMgZmxvYXRpbmctcG9pbnQgcHJlY2lzaW9uIGVycm9ycyB3aGVuIGNvbnZlcnRpbmcgZnJvbSBITlMgZGVjaW1hbCBmb3JtYXRcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgSE5TIHZhbHVlIGFzIGEgbnVtYmVyIChlLmcuLCAwLjAwMSwgMS41KVxuICogQHJldHVybnMgVGhlIHZhbHVlIGluIGRvbGxhcnlkb29zIGFzIGEgc3RyaW5nIChlLmcuLCBcIjEwMDBcIiwgXCIxNTAwMDAwXCIpXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0SG5zVG9Eb2xsYXJ5ZG9vcyA9ICh2YWx1ZTogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcGFydHMgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gIGNvbnN0IHBhcnQxID0gKChwYXJ0c1sxXSA/PyAnJykgKyAnMCcucmVwZWF0KDYpKS5zdWJzdHJpbmcoMCwgNik7XG4gIHJldHVybiAocGFydHNbMF0gPT09ICcwJyA/ICcnIDogcGFydHNbMF0pICsgcGFydDE7XG59O1xuIl19