@rosen-bridge/rosen-extractor 11.2.1 → 11.3.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,23 @@
1
1
  # @rosen-bridge/rosen-extractor
2
2
 
3
+ ## 11.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add Handshake chain rosen-extractor
8
+
9
+ ### Patch Changes
10
+
11
+ - Update dependencies
12
+ - @rosen-bridge/address-codec@1.2.0
13
+
14
+ ## 11.2.2
15
+
16
+ ### Patch Changes
17
+
18
+ - Update dependencies
19
+ - @rosen-bridge/tokens@6.0.0
20
+
3
21
  ## 11.2.1
4
22
 
5
23
  ### Patch Changes
@@ -9,6 +9,8 @@ export declare const ERGO_CHAIN = "ergo";
9
9
  export declare const DOGE_CHAIN = "doge";
10
10
  export declare const DOGE_NATIVE_TOKEN = "doge";
11
11
  export declare const BITCOIN_RUNES_CHAIN = "bitcoin-runes";
12
+ export declare const HANDSHAKE_CHAIN = "handshake";
13
+ export declare const HANDSHAKE_NATIVE_TOKEN = "hns";
12
14
  export declare const FIRO_CHAIN = "firo";
13
15
  export declare const FIRO_NATIVE_TOKEN = "firo";
14
16
  export declare const SUPPORTED_CHAINS: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../lib/getRosenData/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,gBAAgB,UAS5B,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../lib/getRosenData/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,gBAAgB,UAU5B,CAAC"}
@@ -9,6 +9,8 @@ export const ERGO_CHAIN = 'ergo';
9
9
  export const DOGE_CHAIN = 'doge';
10
10
  export const DOGE_NATIVE_TOKEN = 'doge';
11
11
  export const BITCOIN_RUNES_CHAIN = 'bitcoin-runes';
12
+ export const HANDSHAKE_CHAIN = 'handshake';
13
+ export const HANDSHAKE_NATIVE_TOKEN = 'hns';
12
14
  export const FIRO_CHAIN = 'firo';
13
15
  export const FIRO_NATIVE_TOKEN = 'firo';
14
16
  export const SUPPORTED_CHAINS = [
@@ -19,6 +21,7 @@ export const SUPPORTED_CHAINS = [
19
21
  BINANCE_CHAIN,
20
22
  DOGE_CHAIN,
21
23
  BITCOIN_RUNES_CHAIN,
24
+ HANDSHAKE_CHAIN,
22
25
  FIRO_CHAIN,
23
26
  ];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsVUFBVTtJQUNWLGFBQWE7SUFDYixhQUFhO0lBQ2IsY0FBYztJQUNkLGFBQWE7SUFDYixVQUFVO0lBQ1YsbUJBQW1CO0lBQ25CLFVBQVU7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENBUkRBTk9fTkFUSVZFX1RPS0VOID0gJ2FkYSc7XG5leHBvcnQgY29uc3QgRVJHT19OQVRJVkVfVE9LRU4gPSAnZXJnJztcbmV4cG9ydCBjb25zdCBCSVRDT0lOX05BVElWRV9UT0tFTiA9ICdidGMnO1xuZXhwb3J0IGNvbnN0IEJJVENPSU5fQ0hBSU4gPSAnYml0Y29pbic7XG5leHBvcnQgY29uc3QgRVRIRVJFVU1fQ0hBSU4gPSAnZXRoZXJldW0nO1xuZXhwb3J0IGNvbnN0IEJJTkFOQ0VfQ0hBSU4gPSAnYmluYW5jZSc7XG5leHBvcnQgY29uc3QgQ0FSREFOT19DSEFJTiA9ICdjYXJkYW5vJztcbmV4cG9ydCBjb25zdCBFUkdPX0NIQUlOID0gJ2VyZ28nO1xuZXhwb3J0IGNvbnN0IERPR0VfQ0hBSU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgRE9HRV9OQVRJVkVfVE9LRU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgQklUQ09JTl9SVU5FU19DSEFJTiA9ICdiaXRjb2luLXJ1bmVzJztcbmV4cG9ydCBjb25zdCBGSVJPX0NIQUlOID0gJ2Zpcm8nO1xuZXhwb3J0IGNvbnN0IEZJUk9fTkFUSVZFX1RPS0VOID0gJ2Zpcm8nO1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9DSEFJTlMgPSBbXG4gIEVSR09fQ0hBSU4sXG4gIENBUkRBTk9fQ0hBSU4sXG4gIEJJVENPSU5fQ0hBSU4sXG4gIEVUSEVSRVVNX0NIQUlOLFxuICBCSU5BTkNFX0NIQUlOLFxuICBET0dFX0NIQUlOLFxuICBCSVRDT0lOX1JVTkVTX0NIQUlOLFxuICBGSVJPX0NIQUlOLFxuXTtcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUFDNUMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsVUFBVTtJQUNWLGFBQWE7SUFDYixhQUFhO0lBQ2IsY0FBYztJQUNkLGFBQWE7SUFDYixVQUFVO0lBQ1YsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixVQUFVO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDQVJEQU5PX05BVElWRV9UT0tFTiA9ICdhZGEnO1xuZXhwb3J0IGNvbnN0IEVSR09fTkFUSVZFX1RPS0VOID0gJ2VyZyc7XG5leHBvcnQgY29uc3QgQklUQ09JTl9OQVRJVkVfVE9LRU4gPSAnYnRjJztcbmV4cG9ydCBjb25zdCBCSVRDT0lOX0NIQUlOID0gJ2JpdGNvaW4nO1xuZXhwb3J0IGNvbnN0IEVUSEVSRVVNX0NIQUlOID0gJ2V0aGVyZXVtJztcbmV4cG9ydCBjb25zdCBCSU5BTkNFX0NIQUlOID0gJ2JpbmFuY2UnO1xuZXhwb3J0IGNvbnN0IENBUkRBTk9fQ0hBSU4gPSAnY2FyZGFubyc7XG5leHBvcnQgY29uc3QgRVJHT19DSEFJTiA9ICdlcmdvJztcbmV4cG9ydCBjb25zdCBET0dFX0NIQUlOID0gJ2RvZ2UnO1xuZXhwb3J0IGNvbnN0IERPR0VfTkFUSVZFX1RPS0VOID0gJ2RvZ2UnO1xuZXhwb3J0IGNvbnN0IEJJVENPSU5fUlVORVNfQ0hBSU4gPSAnYml0Y29pbi1ydW5lcyc7XG5leHBvcnQgY29uc3QgSEFORFNIQUtFX0NIQUlOID0gJ2hhbmRzaGFrZSc7XG5leHBvcnQgY29uc3QgSEFORFNIQUtFX05BVElWRV9UT0tFTiA9ICdobnMnO1xuZXhwb3J0IGNvbnN0IEZJUk9fQ0hBSU4gPSAnZmlybyc7XG5leHBvcnQgY29uc3QgRklST19OQVRJVkVfVE9LRU4gPSAnZmlybyc7XG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX0NIQUlOUyA9IFtcbiAgRVJHT19DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgQklUQ09JTl9DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG4gIEJJTkFOQ0VfQ0hBSU4sXG4gIERPR0VfQ0hBSU4sXG4gIEJJVENPSU5fUlVORVNfQ0hBSU4sXG4gIEhBTkRTSEFLRV9DSEFJTixcbiAgRklST19DSEFJTixcbl07XG4iXX0=
@@ -0,0 +1,13 @@
1
+ export declare const HANDSHAKE_NETWORK: {
2
+ messagePrefix: string;
3
+ bech32: string;
4
+ bip32: {
5
+ public: number;
6
+ private: number;
7
+ };
8
+ pubKeyHash: number;
9
+ scriptHash: number;
10
+ wif: number;
11
+ };
12
+ export declare const MIN_UTXO_VALUE = 1000;
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAC;AAEF,eAAO,MAAM,cAAc,OAAO,CAAC"}
@@ -0,0 +1,13 @@
1
+ export const HANDSHAKE_NETWORK = {
2
+ messagePrefix: '\x18Handshake Signed Message:\n',
3
+ bech32: 'hs',
4
+ bip32: {
5
+ public: 0x0488b21e,
6
+ private: 0x0488ade4,
7
+ },
8
+ pubKeyHash: -1,
9
+ scriptHash: -1,
10
+ wif: -1,
11
+ };
12
+ export const MIN_UTXO_VALUE = 1000;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9oYW5kc2hha2UvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLGFBQWEsRUFBRSxpQ0FBaUM7SUFDaEQsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUUsVUFBVTtLQUNwQjtJQUNELFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDZCxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsR0FBRyxFQUFFLENBQUMsQ0FBQztDQUNSLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEhBTkRTSEFLRV9ORVRXT1JLID0ge1xuICBtZXNzYWdlUHJlZml4OiAnXFx4MThIYW5kc2hha2UgU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgYmVjaDMyOiAnaHMnLFxuICBiaXAzMjoge1xuICAgIHB1YmxpYzogMHgwNDg4YjIxZSxcbiAgICBwcml2YXRlOiAweDA0ODhhZGU0LFxuICB9LFxuICBwdWJLZXlIYXNoOiAtMSxcbiAgc2NyaXB0SGFzaDogLTEsXG4gIHdpZjogLTEsXG59O1xuXG5leHBvcnQgY29uc3QgTUlOX1VUWE9fVkFMVUUgPSAxMDAwO1xuIl19
@@ -0,0 +1,22 @@
1
+ import { RosenData, TokenTransformation } from '../abstract/types';
2
+ import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
3
+ import { HandshakeTxOutput } from './types';
4
+ import { TokenMap } from '@rosen-bridge/tokens';
5
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
+ export declare class HandshakeRosenExtractor extends AbstractRosenDataExtractor<string> {
7
+ readonly chain = "handshake";
8
+ protected lockAddressHash: string;
9
+ constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction in HandshakeTx format
12
+ * @param serializedTransaction stringified transaction in HandshakeTx format
13
+ */
14
+ extractData: (serializedTransaction: string) => RosenData | undefined;
15
+ /**
16
+ * extracts and builds token transformation from UTXO and tokenMap
17
+ * @param box transaction output
18
+ * @param toChain event target chain
19
+ */
20
+ getAssetTransformation: (box: HandshakeTxOutput, toChain: string) => TokenTransformation | undefined;
21
+ }
22
+ //# sourceMappingURL=handshakeRosenExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshakeRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/handshakeRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAe,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,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"}
@@ -0,0 +1,104 @@
1
+ import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
2
+ import { HANDSHAKE_CHAIN, HANDSHAKE_NATIVE_TOKEN } from '../const';
3
+ import { addressToHash, extractDataFromOutputs } from './utils';
4
+ import { parseRosenData } from '../../utils';
5
+ import JsonBigInt from '@rosen-bridge/json-bigint';
6
+ export class HandshakeRosenExtractor extends AbstractRosenDataExtractor {
7
+ chain = HANDSHAKE_CHAIN;
8
+ lockAddressHash;
9
+ constructor(lockAddress, tokens, logger) {
10
+ super(lockAddress, tokens, logger);
11
+ this.lockAddressHash = addressToHash(lockAddress);
12
+ }
13
+ /**
14
+ * extracts RosenData from given lock transaction in HandshakeTx format
15
+ * @param serializedTransaction stringified transaction in HandshakeTx format
16
+ */
17
+ extractData = (serializedTransaction) => {
18
+ let transaction;
19
+ try {
20
+ transaction = JsonBigInt.parse(serializedTransaction);
21
+ }
22
+ catch (e) {
23
+ throw new Error(`Failed to parse transaction json to HandshakeTx format while extracting rosen data: ${e}`);
24
+ }
25
+ const baseError = `No rosen data found for tx [${transaction.id}]`;
26
+ try {
27
+ const outputs = transaction.outputs;
28
+ if (outputs.length < 2) {
29
+ this.logger.debug(baseError + `: Insufficient number of outputs`);
30
+ return undefined;
31
+ }
32
+ // Find lock output and position
33
+ const lockOutputIndex = outputs.findIndex((output) => output.address?.hash === this.lockAddressHash);
34
+ if (lockOutputIndex === -1) {
35
+ this.logger.debug(baseError + `: Lock output not found`);
36
+ return undefined;
37
+ }
38
+ const lockOutput = outputs[lockOutputIndex];
39
+ // Extract data from outputs using utility function
40
+ const reconstructedData = extractDataFromOutputs(outputs, lockOutputIndex);
41
+ if (!reconstructedData) {
42
+ this.logger.debug(baseError + `: No data chunks found`);
43
+ return undefined;
44
+ }
45
+ // Parse the reconstructed data
46
+ let rosenData;
47
+ try {
48
+ rosenData = parseRosenData(reconstructedData);
49
+ this.logger.debug(`Successfully extracted Rosen data for [${rosenData.toChain}]`);
50
+ }
51
+ catch (e) {
52
+ this.logger.debug(baseError + `: Failed to parse reconstructed data: ${e}`);
53
+ return undefined;
54
+ }
55
+ // Find asset transformation using the lock output
56
+ const assetTransformation = this.getAssetTransformation(lockOutput, rosenData.toChain);
57
+ if (!assetTransformation) {
58
+ this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
59
+ return undefined;
60
+ }
61
+ const fromAddress = `box:${transaction.inputs[0].txId}.${transaction.inputs[0].index}`;
62
+ return {
63
+ toChain: rosenData.toChain,
64
+ toAddress: rosenData.toAddress,
65
+ bridgeFee: rosenData.bridgeFee,
66
+ networkFee: rosenData.networkFee,
67
+ fromAddress: fromAddress,
68
+ sourceChainTokenId: assetTransformation.from,
69
+ amount: assetTransformation.amount,
70
+ targetChainTokenId: assetTransformation.to,
71
+ sourceTxId: transaction.id,
72
+ rawData: outputs
73
+ .map((output) => `${output.address?.hash}:${output.value}`)
74
+ .join(','),
75
+ };
76
+ }
77
+ catch (e) {
78
+ this.logger.debug(`An error occurred while getting Handshake rosen data: ${e}`);
79
+ if (e instanceof Error && e.stack) {
80
+ this.logger.debug(e.stack);
81
+ }
82
+ }
83
+ return undefined;
84
+ };
85
+ /**
86
+ * extracts and builds token transformation from UTXO and tokenMap
87
+ * @param box transaction output
88
+ * @param toChain event target chain
89
+ */
90
+ getAssetTransformation = (box, toChain) => {
91
+ const wrappedHns = this.tokens.search(HANDSHAKE_CHAIN, {
92
+ tokenId: HANDSHAKE_NATIVE_TOKEN,
93
+ });
94
+ if (wrappedHns.length > 0 && Object.hasOwn(wrappedHns[0], toChain)) {
95
+ return {
96
+ from: HANDSHAKE_NATIVE_TOKEN,
97
+ to: this.tokens.getID(wrappedHns[0], toChain),
98
+ amount: box.value.toString(),
99
+ };
100
+ }
101
+ return undefined;
102
+ };
103
+ }
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZHNoYWtlUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS9oYW5kc2hha2VSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBa0M7SUFDcEUsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUN2QixlQUFlLENBQVM7SUFFbEMsWUFBWSxXQUFtQixFQUFFLE1BQWdCLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsR0FBRyxDQUFDLHFCQUE2QixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FBQyxFQUFFLENBQzNGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztR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QUFJLENBQUMsR0FBRyxDQUFDO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YseURBQXlELENBQUMsRUFBRSxDQUM3RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHNCQUFzQixHQUFHLENBQ3ZCLEdBQXNCLEVBQ3RCLE9BQWUsRUFDa0IsRUFBRTtRQUNuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7WUFDckQsT0FBTyxFQUFFLHNCQUFzQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTztnQkFDTCxJQUFJLEVBQUUsc0JBQXNCO2dCQUM1QixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDN0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgSEFORFNIQUtFX0NIQUlOLCBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgSGFuZHNoYWtlVHgsIEhhbmRzaGFrZVR4T3V0cHV0LCBIYW5kc2hha2VSb3NlbkRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBhZGRyZXNzVG9IYXNoLCBleHRyYWN0RGF0YUZyb21PdXRwdXRzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBwYXJzZVJvc2VuRGF0YSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuXG5leHBvcnQgY2xhc3MgSGFuZHNoYWtlUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxzdHJpbmc+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBIQU5EU0hBS0VfQ0hBSU47XG4gIHByb3RlY3RlZCBsb2NrQWRkcmVzc0hhc2g6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrQWRkcmVzc0hhc2ggPSBhZGRyZXNzVG9IYXNoKGxvY2tBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIEhhbmRzaGFrZVR4IGZvcm1hdFxuICAgKiBAcGFyYW0gc2VyaWFsaXplZFRyYW5zYWN0aW9uIHN0cmluZ2lmaWVkIHRyYW5zYWN0aW9uIGluIEhhbmRzaGFrZVR4IGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdERhdGEgPSAoc2VyaWFsaXplZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogSGFuZHNoYWtlVHg7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uID0gSnNvbkJpZ0ludC5wYXJzZShzZXJpYWxpemVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBwYXJzZSB0cmFuc2FjdGlvbiBqc29uIHRvIEhhbmRzaGFrZVR4IGZvcm1hdCB3aGlsZSBleHRyYWN0aW5nIHJvc2VuIGRhdGE6ICR7ZX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24uaWR9XWA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG91dHB1dHMgPSB0cmFuc2FjdGlvbi5vdXRwdXRzO1xuICAgICAgaWYgKG91dHB1dHMubGVuZ3RoIDwgMikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBJbnN1ZmZpY2llbnQgbnVtYmVyIG9mIG91dHB1dHNgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCBsb2NrIG91dHB1dCBhbmQgcG9zaXRpb25cbiAgICAgIGNvbnN0IGxvY2tPdXRwdXRJbmRleCA9IG91dHB1dHMuZmluZEluZGV4KFxuICAgICAgICAob3V0cHV0KSA9PiBvdXRwdXQuYWRkcmVzcz8uaGFzaCA9PT0gdGhpcy5sb2NrQWRkcmVzc0hhc2gsXG4gICAgICApO1xuXG4gICAgICBpZiAobG9ja091dHB1dEluZGV4ID09PSAtMSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBMb2NrIG91dHB1dCBub3QgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbG9ja091dHB1dCA9IG91dHB1dHNbbG9ja091dHB1dEluZGV4XTtcblxuICAgICAgLy8gRXh0cmFjdCBkYXRhIGZyb20gb3V0cHV0cyB1c2luZyB1dGlsaXR5IGZ1bmN0aW9uXG4gICAgICBjb25zdCByZWNvbnN0cnVjdGVkRGF0YSA9IGV4dHJhY3REYXRhRnJvbU91dHB1dHMoXG4gICAgICAgIG91dHB1dHMsXG4gICAgICAgIGxvY2tPdXRwdXRJbmRleCxcbiAgICAgICk7XG5cbiAgICAgIGlmICghcmVjb25zdHJ1Y3RlZERhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogTm8gZGF0YSBjaHVua3MgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gUGFyc2UgdGhlIHJlY29uc3RydWN0ZWQgZGF0YVxuICAgICAgbGV0IHJvc2VuRGF0YTogSGFuZHNoYWtlUm9zZW5EYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcm9zZW5EYXRhID0gcGFyc2VSb3NlbkRhdGEocmVjb25zdHJ1Y3RlZERhdGEpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgU3VjY2Vzc2Z1bGx5IGV4dHJhY3RlZCBSb3NlbiBkYXRhIGZvciBbJHtyb3NlbkRhdGEudG9DaGFpbn1dYCxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogRmFpbGVkIHRvIHBhcnNlIHJlY29uc3RydWN0ZWQgZGF0YTogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmQgYXNzZXQgdHJhbnNmb3JtYXRpb24gdXNpbmcgdGhlIGxvY2sgb3V0cHV0XG4gICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICBsb2NrT3V0cHV0LFxuICAgICAgICByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICk7XG5cbiAgICAgIGlmICghYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gZmluZCByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbmAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZyb21BZGRyZXNzID0gYGJveDoke3RyYW5zYWN0aW9uLmlucHV0c1swXS50eElkfS4ke3RyYW5zYWN0aW9uLmlucHV0c1swXS5pbmRleH1gO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG9DaGFpbjogcm9zZW5EYXRhLnRvQ2hhaW4sXG4gICAgICAgIHRvQWRkcmVzczogcm9zZW5EYXRhLnRvQWRkcmVzcyxcbiAgICAgICAgYnJpZGdlRmVlOiByb3NlbkRhdGEuYnJpZGdlRmVlLFxuICAgICAgICBuZXR3b3JrRmVlOiByb3NlbkRhdGEubmV0d29ya0ZlZSxcbiAgICAgICAgZnJvbUFkZHJlc3M6IGZyb21BZGRyZXNzLFxuICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uZnJvbSxcbiAgICAgICAgYW1vdW50OiBhc3NldFRyYW5zZm9ybWF0aW9uLmFtb3VudCxcbiAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICBzb3VyY2VUeElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgcmF3RGF0YTogb3V0cHV0c1xuICAgICAgICAgIC5tYXAoKG91dHB1dCkgPT4gYCR7b3V0cHV0LmFkZHJlc3M/Lmhhc2h9OiR7b3V0cHV0LnZhbHVlfWApXG4gICAgICAgICAgLmpvaW4oJywnKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIEhhbmRzaGFrZSByb3NlbiBkYXRhOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBIYW5kc2hha2VUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmcsXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IHdyYXBwZWRIbnMgPSB0aGlzLnRva2Vucy5zZWFyY2goSEFORFNIQUtFX0NIQUlOLCB7XG4gICAgICB0b2tlbklkOiBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuXG4gICAgaWYgKHdyYXBwZWRIbnMubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHdyYXBwZWRIbnNbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBIQU5EU0hBS0VfTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQod3JhcHBlZEhuc1swXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogYm94LnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { RosenData, TokenTransformation } from '../abstract/types';
2
+ import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
3
+ import { HandshakeRpcTransaction, HandshakeRpcTxOutput } from './types';
4
+ import { TokenMap } from '@rosen-bridge/tokens';
5
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
+ export declare class HandshakeRpcRosenExtractor extends AbstractRosenDataExtractor<HandshakeRpcTransaction> {
7
+ readonly chain = "handshake";
8
+ protected lockAddressHash: string;
9
+ constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction in Rpc format
12
+ * @param transaction the lock transaction in Rpc format
13
+ */
14
+ extractData: (transaction: HandshakeRpcTransaction) => RosenData | undefined;
15
+ /**
16
+ * extracts and builds token transformation from UTXO and tokenMap
17
+ * @param box transaction output
18
+ * @param toChain event target chain
19
+ */
20
+ getAssetTransformation: (box: HandshakeRpcTxOutput, toChain: string) => TokenTransformation | undefined;
21
+ }
22
+ //# sourceMappingURL=handshakeRpcRosenExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshakeRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/handshakeRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EAErB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAQ/D,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"}
@@ -0,0 +1,106 @@
1
+ import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
2
+ import { HANDSHAKE_CHAIN, HANDSHAKE_NATIVE_TOKEN } from '../const';
3
+ import { addressToHash, convertHnsToDollarydoos, extractDataFromOutputs, } from './utils';
4
+ import { parseRosenData } from '../../utils';
5
+ export class HandshakeRpcRosenExtractor extends AbstractRosenDataExtractor {
6
+ chain = HANDSHAKE_CHAIN;
7
+ lockAddressHash;
8
+ constructor(lockAddress, tokens, logger) {
9
+ super(lockAddress, tokens, logger);
10
+ this.lockAddressHash = addressToHash(lockAddress);
11
+ }
12
+ /**
13
+ * extracts RosenData from given lock transaction in Rpc format
14
+ * @param transaction the lock transaction in Rpc format
15
+ */
16
+ extractData = (transaction) => {
17
+ const baseError = `No rosen data found for tx [${transaction.txid}]`;
18
+ try {
19
+ const outputs = transaction.vout;
20
+ if (outputs.length < 2) {
21
+ this.logger.debug(baseError + `: Insufficient number of outputs`);
22
+ return undefined;
23
+ }
24
+ // Find lock output first (need to use original RPC output for value)
25
+ const lockOutputIndex = outputs.findIndex((output) => output.address?.hash === this.lockAddressHash);
26
+ if (lockOutputIndex === -1) {
27
+ this.logger.debug(baseError + `: Lock output not found`);
28
+ return undefined;
29
+ }
30
+ const lockOutputRpc = outputs[lockOutputIndex];
31
+ // Convert RPC outputs to standard format (HNS to dollarydoos)
32
+ const convertedOutputs = outputs.map((output) => {
33
+ const dollarydoos = convertHnsToDollarydoos(output.value);
34
+ return {
35
+ value: BigInt(dollarydoos),
36
+ address: output.address,
37
+ };
38
+ });
39
+ // Extract data from outputs using utility function
40
+ const reconstructedData = extractDataFromOutputs(convertedOutputs, lockOutputIndex);
41
+ if (!reconstructedData) {
42
+ this.logger.debug(baseError + `: No data chunks found`);
43
+ return undefined;
44
+ }
45
+ // Parse the reconstructed data
46
+ let rosenData;
47
+ try {
48
+ rosenData = parseRosenData(reconstructedData);
49
+ this.logger.debug(`Successfully extracted Rosen data for [${rosenData.toChain}]`);
50
+ }
51
+ catch (e) {
52
+ this.logger.debug(baseError + `: Failed to parse extracted data: ${e}`);
53
+ return undefined;
54
+ }
55
+ // Find asset transformation using the lock output
56
+ const assetTransformation = this.getAssetTransformation(lockOutputRpc, rosenData.toChain);
57
+ if (!assetTransformation) {
58
+ this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
59
+ return undefined;
60
+ }
61
+ const fromAddress = `box:${transaction.vin[0].txid}.${transaction.vin[0].vout}`;
62
+ return {
63
+ toChain: rosenData.toChain,
64
+ toAddress: rosenData.toAddress,
65
+ bridgeFee: rosenData.bridgeFee,
66
+ networkFee: rosenData.networkFee,
67
+ fromAddress: fromAddress,
68
+ sourceChainTokenId: assetTransformation.from,
69
+ amount: assetTransformation.amount,
70
+ targetChainTokenId: assetTransformation.to,
71
+ sourceTxId: transaction.txid,
72
+ rawData: outputs
73
+ .map((output) => `${output.address?.hash}:${output.value}`)
74
+ .join(','),
75
+ };
76
+ }
77
+ catch (e) {
78
+ this.logger.debug(`An error occurred while getting Handshake rosen data from Rpc: ${e}`);
79
+ if (e instanceof Error && e.stack) {
80
+ this.logger.debug(e.stack);
81
+ }
82
+ }
83
+ return undefined;
84
+ };
85
+ /**
86
+ * extracts and builds token transformation from UTXO and tokenMap
87
+ * @param box transaction output
88
+ * @param toChain event target chain
89
+ */
90
+ getAssetTransformation = (box, toChain) => {
91
+ const wrappedHns = this.tokens.search(HANDSHAKE_CHAIN, {
92
+ tokenId: HANDSHAKE_NATIVE_TOKEN,
93
+ });
94
+ if (wrappedHns.length > 0 && Object.hasOwn(wrappedHns[0], toChain)) {
95
+ // Convert HNS to dollarydoos
96
+ const dollarydoos = convertHnsToDollarydoos(box.value);
97
+ return {
98
+ from: HANDSHAKE_NATIVE_TOKEN,
99
+ to: this.tokens.getID(wrappedHns[0], toChain),
100
+ amount: dollarydoos,
101
+ };
102
+ }
103
+ return undefined;
104
+ };
105
+ }
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZHNoYWtlUnBjUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS9oYW5kc2hha2VScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRbkUsT0FBTyxFQUNMLGFBQWEsRUFDYix1QkFBdUIsRUFDdkIsc0JBQXNCLEdBQ3ZCLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDBCQUFtRDtJQUN4RixLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQ3ZCLGVBQWUsQ0FBUztJQUVsQyxZQUFZLFdBQW1CLEVBQUUsTUFBZ0IsRUFBRSxNQUF1QjtRQUN4RSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxHQUFHLENBQ1osV0FBb0MsRUFDYixFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNqQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBRUQs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ZW50IjpbImltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9hYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBIQU5EU0hBS0VfQ0hBSU4sIEhBTkRTSEFLRV9OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQge1xuICBIYW5kc2hha2VScGNUcmFuc2FjdGlvbixcbiAgSGFuZHNoYWtlUnBjVHhPdXRwdXQsXG4gIEhhbmRzaGFrZVJvc2VuRGF0YSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgYWRkcmVzc1RvSGFzaCxcbiAgY29udmVydEhuc1RvRG9sbGFyeWRvb3MsXG4gIGV4dHJhY3REYXRhRnJvbU91dHB1dHMsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBIYW5kc2hha2VScGNSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPEhhbmRzaGFrZVJwY1RyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gSEFORFNIQUtFX0NIQUlOO1xuICBwcm90ZWN0ZWQgbG9ja0FkZHJlc3NIYXNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobG9ja0FkZHJlc3M6IHN0cmluZywgdG9rZW5zOiBUb2tlbk1hcCwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpO1xuICAgIHRoaXMubG9ja0FkZHJlc3NIYXNoID0gYWRkcmVzc1RvSGFzaChsb2NrQWRkcmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBScGMgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBScGMgZm9ybWF0XG4gICAqL1xuICBleHRyYWN0RGF0YSA9IChcbiAgICB0cmFuc2FjdGlvbjogSGFuZHNoYWtlUnBjVHJhbnNhY3Rpb24sXG4gICk6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLnR4aWR9XWA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG91dHB1dHMgPSB0cmFuc2FjdGlvbi52b3V0O1xuICAgICAgaWYgKG91dHB1dHMubGVuZ3RoIDwgMikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBJbnN1ZmZpY2llbnQgbnVtYmVyIG9mIG91dHB1dHNgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCBsb2NrIG91dHB1dCBmaXJzdCAobmVlZCB0byB1c2Ugb3JpZ2luYWwgUlBDIG91dHB1dCBmb3IgdmFsdWUpXG4gICAgICBjb25zdCBsb2NrT3V0cHV0SW5kZXggPSBvdXRwdXRzLmZpbmRJbmRleChcbiAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0LmFkZHJlc3M/Lmhhc2ggPT09IHRoaXMubG9ja0FkZHJlc3NIYXNoLFxuICAgICAgKTtcblxuICAgICAgaWYgKGxvY2tPdXRwdXRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogTG9jayBvdXRwdXQgbm90IGZvdW5kYCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvY2tPdXRwdXRScGMgPSBvdXRwdXRzW2xvY2tPdXRwdXRJbmRleF07XG5cbiAgICAgIC8vIENvbnZlcnQgUlBDIG91dHB1dHMgdG8gc3RhbmRhcmQgZm9ybWF0IChITlMgdG8gZG9sbGFyeWRvb3MpXG4gICAgICBjb25zdCBjb252ZXJ0ZWRPdXRwdXRzID0gb3V0cHV0cy5tYXAoKG91dHB1dCkgPT4ge1xuICAgICAgICBjb25zdCBkb2xsYXJ5ZG9vcyA9IGNvbnZlcnRIbnNUb0RvbGxhcnlkb29zKG91dHB1dC52YWx1ZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IEJpZ0ludChkb2xsYXJ5ZG9vcyksXG4gICAgICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgLy8gRXh0cmFjdCBkYXRhIGZyb20gb3V0cHV0cyB1c2luZyB1dGlsaXR5IGZ1bmN0aW9uXG4gICAgICBjb25zdCByZWNvbnN0cnVjdGVkRGF0YSA9IGV4dHJhY3REYXRhRnJvbU91dHB1dHMoXG4gICAgICAgIGNvbnZlcnRlZE91dHB1dHMsXG4gICAgICAgIGxvY2tPdXRwdXRJbmRleCxcbiAgICAgICk7XG5cbiAgICAgIGlmICghcmVjb25zdHJ1Y3RlZERhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogTm8gZGF0YSBjaHVua3MgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gUGFyc2UgdGhlIHJlY29uc3RydWN0ZWQgZGF0YVxuICAgICAgbGV0IHJvc2VuRGF0YTogSGFuZHNoYWtlUm9zZW5EYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcm9zZW5EYXRhID0gcGFyc2VSb3NlbkRhdGEocmVjb25zdHJ1Y3RlZERhdGEpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgU3VjY2Vzc2Z1bGx5IGV4dHJhY3RlZCBSb3NlbiBkYXRhIGZvciBbJHtyb3NlbkRhdGEudG9DaGFpbn1dYCxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogRmFpbGVkIHRvIHBhcnNlIGV4dHJhY3RlZCBkYXRhOiAke2V9YCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmQgYXNzZXQgdHJhbnNmb3JtYXRpb24gdXNpbmcgdGhlIGxvY2sgb3V0cHV0XG4gICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICBsb2NrT3V0cHV0UnBjLFxuICAgICAgICByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICk7XG5cbiAgICAgIGlmICghYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gZmluZCByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbmAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZyb21BZGRyZXNzID0gYGJveDoke3RyYW5zYWN0aW9uLnZpblswXS50eGlkfS4ke3RyYW5zYWN0aW9uLnZpblswXS52b3V0fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IHJvc2VuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IHJvc2VuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLnR4aWQsXG4gICAgICAgIHJhd0RhdGE6IG91dHB1dHNcbiAgICAgICAgICAubWFwKChvdXRwdXQpID0+IGAke291dHB1dC5hZGRyZXNzPy5oYXNofToke291dHB1dC52YWx1ZX1gKVxuICAgICAgICAgIC5qb2luKCcsJyksXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBIYW5kc2hha2Ugcm9zZW4gZGF0YSBmcm9tIFJwYzogJHtlfWAsXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gVVRYTyBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogSGFuZHNoYWtlUnBjVHhPdXRwdXQsXG4gICAgdG9DaGFpbjogc3RyaW5nLFxuICApOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCB3cmFwcGVkSG5zID0gdGhpcy50b2tlbnMuc2VhcmNoKEhBTkRTSEFLRV9DSEFJTiwge1xuICAgICAgdG9rZW5JZDogSEFORFNIQUtFX05BVElWRV9UT0tFTixcbiAgICB9KTtcblxuICAgIGlmICh3cmFwcGVkSG5zLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih3cmFwcGVkSG5zWzBdLCB0b0NoYWluKSkge1xuICAgICAgLy8gQ29udmVydCBITlMgdG8gZG9sbGFyeWRvb3NcbiAgICAgIGNvbnN0IGRvbGxhcnlkb29zID0gY29udmVydEhuc1RvRG9sbGFyeWRvb3MoYm94LnZhbHVlKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogSEFORFNIQUtFX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHdyYXBwZWRIbnNbMF0sIHRvQ2hhaW4pLFxuICAgICAgICBhbW91bnQ6IGRvbGxhcnlkb29zLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ export interface HandshakeRosenData {
2
+ toChain: string;
3
+ toAddress: string;
4
+ bridgeFee: string;
5
+ networkFee: string;
6
+ }
7
+ export interface HandshakeRpcTxInput {
8
+ txid: string;
9
+ vout: number;
10
+ txinwitness: Array<string>;
11
+ sequence: number;
12
+ }
13
+ export interface HandshakeRpcTxOutput {
14
+ value: number;
15
+ n: number;
16
+ address: {
17
+ version: number;
18
+ hash: string;
19
+ string: string;
20
+ };
21
+ covenant: {
22
+ type: number;
23
+ action: string;
24
+ items: string[];
25
+ };
26
+ }
27
+ export interface HandshakeRpcTransaction {
28
+ txid: string;
29
+ version: number;
30
+ size: number;
31
+ vsize: number;
32
+ locktime: number;
33
+ vin: Array<{
34
+ txid: string;
35
+ vout: number;
36
+ txinwitness?: string[];
37
+ sequence: number;
38
+ }>;
39
+ vout: Array<HandshakeRpcTxOutput>;
40
+ hash: string;
41
+ }
42
+ export interface HandshakeTxInput {
43
+ txId: string;
44
+ index: number;
45
+ }
46
+ export interface HandshakeTxOutput {
47
+ value: bigint;
48
+ address: {
49
+ version: number;
50
+ hash: string;
51
+ string: string;
52
+ };
53
+ covenant: {
54
+ type: number;
55
+ action: string;
56
+ items: string[];
57
+ };
58
+ }
59
+ export interface DataExtractionOutput {
60
+ value: bigint;
61
+ address?: {
62
+ hash: string;
63
+ version?: number;
64
+ };
65
+ }
66
+ export interface HandshakeTx {
67
+ id: string;
68
+ inputs: HandshakeTxInput[];
69
+ outputs: HandshakeTxOutput[];
70
+ }
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,KAAK,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBIYW5kc2hha2VSb3NlbkRhdGEge1xuICB0b0NoYWluOiBzdHJpbmc7XG4gIHRvQWRkcmVzczogc3RyaW5nO1xuICBicmlkZ2VGZWU6IHN0cmluZztcbiAgbmV0d29ya0ZlZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRzaGFrZVJwY1R4SW5wdXQge1xuICB0eGlkOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbiAgdHhpbndpdG5lc3M6IEFycmF5PHN0cmluZz47XG4gIHNlcXVlbmNlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZHNoYWtlUnBjVHhPdXRwdXQge1xuICB2YWx1ZTogbnVtYmVyO1xuICBuOiBudW1iZXI7XG4gIGFkZHJlc3M6IHtcbiAgICB2ZXJzaW9uOiBudW1iZXI7XG4gICAgaGFzaDogc3RyaW5nO1xuICAgIHN0cmluZzogc3RyaW5nO1xuICB9O1xuICBjb3ZlbmFudDoge1xuICAgIHR5cGU6IG51bWJlcjtcbiAgICBhY3Rpb246IHN0cmluZztcbiAgICBpdGVtczogc3RyaW5nW107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZHNoYWtlUnBjVHJhbnNhY3Rpb24ge1xuICB0eGlkOiBzdHJpbmc7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICB2c2l6ZTogbnVtYmVyO1xuICBsb2NrdGltZTogbnVtYmVyO1xuICB2aW46IEFycmF5PHtcbiAgICB0eGlkOiBzdHJpbmc7XG4gICAgdm91dDogbnVtYmVyO1xuICAgIHR4aW53aXRuZXNzPzogc3RyaW5nW107XG4gICAgc2VxdWVuY2U6IG51bWJlcjtcbiAgfT47XG4gIHZvdXQ6IEFycmF5PEhhbmRzaGFrZVJwY1R4T3V0cHV0PjtcbiAgaGFzaDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRzaGFrZVR4SW5wdXQge1xuICB0eElkOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZHNoYWtlVHhPdXRwdXQge1xuICB2YWx1ZTogYmlnaW50O1xuICBhZGRyZXNzOiB7XG4gICAgdmVyc2lvbjogbnVtYmVyO1xuICAgIGhhc2g6IHN0cmluZztcbiAgICBzdHJpbmc6IHN0cmluZztcbiAgfTtcbiAgY292ZW5hbnQ6IHtcbiAgICB0eXBlOiBudW1iZXI7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gICAgaXRlbXM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFFeHRyYWN0aW9uT3V0cHV0IHtcbiAgdmFsdWU6IGJpZ2ludDtcbiAgYWRkcmVzcz86IHsgaGFzaDogc3RyaW5nOyB2ZXJzaW9uPzogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZHNoYWtlVHgge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEhhbmRzaGFrZVR4SW5wdXRbXTtcbiAgb3V0cHV0czogSGFuZHNoYWtlVHhPdXRwdXRbXTtcbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { DataExtractionOutput } from './types';
2
+ /**
3
+ * Extracts the hash from a Handshake address using bitcoinjs-lib
4
+ * @param addr The Handshake address to convert
5
+ * @returns The address hash as a hex string
6
+ */
7
+ export declare const addressToHash: (addr: string) => string;
8
+ /**
9
+ * Extracts data chunks from transaction outputs using value-based ordering
10
+ * Data is encoded in P2WPKH address hashes (version 0, values 1000+)
11
+ * @param outputs - array of outputs with value, address.hash, address.version
12
+ * @param lockAddressIndex - index of the lock address output
13
+ * @returns reconstructedData as string or undefined
14
+ */
15
+ export declare const extractDataFromOutputs: (outputs: DataExtractionOutput[], lockAddressIndex: number) => string | undefined;
16
+ /**
17
+ * Converts HNS value to dollarydoos (satoshi-equivalent) using string-based arithmetic
18
+ * This avoids floating-point precision errors when converting from HNS decimal format
19
+ * @param value The HNS value as a number (e.g., 0.001, 1.5)
20
+ * @returns The value in dollarydoos as a string (e.g., "1000", "1500000")
21
+ */
22
+ export declare const convertHnsToDollarydoos: (value: number) => string;
23
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/handshake/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/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"}
@@ -0,0 +1,67 @@
1
+ import { HANDSHAKE_NETWORK, MIN_UTXO_VALUE } from './constants';
2
+ import * as bitcoinLib from 'bitcoinjs-lib';
3
+ /**
4
+ * Extracts the hash from a Handshake address using bitcoinjs-lib
5
+ * @param addr The Handshake address to convert
6
+ * @returns The address hash as a hex string
7
+ */
8
+ export const addressToHash = (addr) => {
9
+ const outputScript = bitcoinLib.address.toOutputScript(addr, HANDSHAKE_NETWORK);
10
+ // Output script format for witness v0: OP_0 <length> <hash>
11
+ // We want just the hash part (skip first 2 bytes: OP_0 and length)
12
+ return outputScript.subarray(2).toString('hex');
13
+ };
14
+ /**
15
+ * Extracts data chunks from transaction outputs using value-based ordering
16
+ * Data is encoded in P2WPKH address hashes (version 0, values 1000+)
17
+ * @param outputs - array of outputs with value, address.hash, address.version
18
+ * @param lockAddressIndex - index of the lock address output
19
+ * @returns reconstructedData as string or undefined
20
+ */
21
+ export const extractDataFromOutputs = (outputs, lockAddressIndex) => {
22
+ const extractedChunks = [];
23
+ // Extract data chunks step by step
24
+ // Search outputs before lock address (data chunks come before lock output)
25
+ for (let chunkIndex = 0; chunkIndex < 4; chunkIndex++) {
26
+ for (let outputIndex = 0; outputIndex < lockAddressIndex; outputIndex++) {
27
+ const output = outputs[outputIndex];
28
+ if (!output.address || !output.address.hash)
29
+ continue;
30
+ const value = output.value;
31
+ const addrHash = output.address.hash;
32
+ const version = typeof output.address.version === 'bigint'
33
+ ? Number(output.address.version)
34
+ : output.address.version;
35
+ // Check if this output matches the expected chunk
36
+ if (value === BigInt(MIN_UTXO_VALUE) + BigInt(chunkIndex) &&
37
+ version === 0 &&
38
+ addrHash.length === 40) {
39
+ extractedChunks.push({
40
+ index: chunkIndex,
41
+ data: addrHash,
42
+ });
43
+ break; // Move to next chunk
44
+ }
45
+ }
46
+ }
47
+ // Reconstruct data by sorting chunks by index
48
+ const reconstructedData = extractedChunks.length > 0
49
+ ? extractedChunks
50
+ .sort((a, b) => a.index - b.index)
51
+ .map((chunk) => chunk.data)
52
+ .join('')
53
+ : undefined;
54
+ return reconstructedData;
55
+ };
56
+ /**
57
+ * Converts HNS value to dollarydoos (satoshi-equivalent) using string-based arithmetic
58
+ * This avoids floating-point precision errors when converting from HNS decimal format
59
+ * @param value The HNS value as a number (e.g., 0.001, 1.5)
60
+ * @returns The value in dollarydoos as a string (e.g., "1000", "1500000")
61
+ */
62
+ export const convertHnsToDollarydoos = (value) => {
63
+ const parts = value.toString().split('.');
64
+ const part1 = ((parts[1] ?? '') + '0'.repeat(6)).substring(0, 6);
65
+ return (parts[0] === '0' ? '' : parts[0]) + part1;
66
+ };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2hhbmRzaGFrZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhFLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUNwRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FDcEQsSUFBSSxFQUNKLGlCQUFpQixDQUNsQixDQUFDO0lBQ0YsNERBQTREO0lBQzVELG1FQUFtRTtJQUNuRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQ3BDLE9BQStCLEVBQy9CLGdCQUF3QixFQUNKLEVBQUU7SUFDdEIsTUFBTSxlQUFlLEdBQTJDLEVBQUUsQ0FBQztJQUVuRSxtQ0FBbUM7SUFDbkMsMkVBQTJFO0lBQzNFLEtBQUssSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUN0RCxLQUFLLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxXQUFXLEdBQUcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUk7Z0JBQUUsU0FBUztZQUV0RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxHQUNYLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUTtnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBRTdCLGtEQUFrRDtZQUNsRCxJQUNFLEtBQUssS0FBSyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDckQsT0FBTyxLQUFLLENBQUM7Z0JBQ2IsUUFBUSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQ3RCLENBQUM7Z0JBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDbkIsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLElBQUksRUFBRSxRQUFRO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMscUJBQXFCO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxNQUFNLGlCQUFpQixHQUNyQixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDeEIsQ0FBQyxDQUFDLGVBQWU7YUFDWixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDYixDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWhCLE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQy9ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSEFORFNIQUtFX05FVFdPUkssIE1JTl9VVFhPX1ZBTFVFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGF0YUV4dHJhY3Rpb25PdXRwdXQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5MaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGhhc2ggZnJvbSBhIEhhbmRzaGFrZSBhZGRyZXNzIHVzaW5nIGJpdGNvaW5qcy1saWJcbiAqIEBwYXJhbSBhZGRyIFRoZSBIYW5kc2hha2UgYWRkcmVzcyB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyBUaGUgYWRkcmVzcyBoYXNoIGFzIGEgaGV4IHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgYWRkcmVzc1RvSGFzaCA9IChhZGRyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBiaXRjb2luTGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoXG4gICAgYWRkcixcbiAgICBIQU5EU0hBS0VfTkVUV09SSyxcbiAgKTtcbiAgLy8gT3V0cHV0IHNjcmlwdCBmb3JtYXQgZm9yIHdpdG5lc3MgdjA6IE9QXzAgPGxlbmd0aD4gPGhhc2g+XG4gIC8vIFdlIHdhbnQganVzdCB0aGUgaGFzaCBwYXJ0IChza2lwIGZpcnN0IDIgYnl0ZXM6IE9QXzAgYW5kIGxlbmd0aClcbiAgcmV0dXJuIG91dHB1dFNjcmlwdC5zdWJhcnJheSgyKS50b1N0cmluZygnaGV4Jyk7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIGRhdGEgY2h1bmtzIGZyb20gdHJhbnNhY3Rpb24gb3V0cHV0cyB1c2luZyB2YWx1ZS1iYXNlZCBvcmRlcmluZ1xuICogRGF0YSBpcyBlbmNvZGVkIGluIFAyV1BLSCBhZGRyZXNzIGhhc2hlcyAodmVyc2lvbiAwLCB2YWx1ZXMgMTAwMCspXG4gKiBAcGFyYW0gb3V0cHV0cyAtIGFycmF5IG9mIG91dHB1dHMgd2l0aCB2YWx1ZSwgYWRkcmVzcy5oYXNoLCBhZGRyZXNzLnZlcnNpb25cbiAqIEBwYXJhbSBsb2NrQWRkcmVzc0luZGV4IC0gaW5kZXggb2YgdGhlIGxvY2sgYWRkcmVzcyBvdXRwdXRcbiAqIEByZXR1cm5zIHJlY29uc3RydWN0ZWREYXRhIGFzIHN0cmluZyBvciB1bmRlZmluZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGV4dHJhY3REYXRhRnJvbU91dHB1dHMgPSAoXG4gIG91dHB1dHM6IERhdGFFeHRyYWN0aW9uT3V0cHV0W10sXG4gIGxvY2tBZGRyZXNzSW5kZXg6IG51bWJlcixcbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGV4dHJhY3RlZENodW5rczogQXJyYXk8eyBpbmRleDogbnVtYmVyOyBkYXRhOiBzdHJpbmcgfT4gPSBbXTtcblxuICAvLyBFeHRyYWN0IGRhdGEgY2h1bmtzIHN0ZXAgYnkgc3RlcFxuICAvLyBTZWFyY2ggb3V0cHV0cyBiZWZvcmUgbG9jayBhZGRyZXNzIChkYXRhIGNodW5rcyBjb21lIGJlZm9yZSBsb2NrIG91dHB1dClcbiAgZm9yIChsZXQgY2h1bmtJbmRleCA9IDA7IGNodW5rSW5kZXggPCA0OyBjaHVua0luZGV4KyspIHtcbiAgICBmb3IgKGxldCBvdXRwdXRJbmRleCA9IDA7IG91dHB1dEluZGV4IDwgbG9ja0FkZHJlc3NJbmRleDsgb3V0cHV0SW5kZXgrKykge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1tvdXRwdXRJbmRleF07XG5cbiAgICAgIGlmICghb3V0cHV0LmFkZHJlc3MgfHwgIW91dHB1dC5hZGRyZXNzLmhhc2gpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IG91dHB1dC52YWx1ZTtcbiAgICAgIGNvbnN0IGFkZHJIYXNoID0gb3V0cHV0LmFkZHJlc3MuaGFzaDtcbiAgICAgIGNvbnN0IHZlcnNpb24gPVxuICAgICAgICB0eXBlb2Ygb3V0cHV0LmFkZHJlc3MudmVyc2lvbiA9PT0gJ2JpZ2ludCdcbiAgICAgICAgICA/IE51bWJlcihvdXRwdXQuYWRkcmVzcy52ZXJzaW9uKVxuICAgICAgICAgIDogb3V0cHV0LmFkZHJlc3MudmVyc2lvbjtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBvdXRwdXQgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgY2h1bmtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT09IEJpZ0ludChNSU5fVVRYT19WQUxVRSkgKyBCaWdJbnQoY2h1bmtJbmRleCkgJiZcbiAgICAgICAgdmVyc2lvbiA9PT0gMCAmJlxuICAgICAgICBhZGRySGFzaC5sZW5ndGggPT09IDQwXG4gICAgICApIHtcbiAgICAgICAgZXh0cmFjdGVkQ2h1bmtzLnB1c2goe1xuICAgICAgICAgIGluZGV4OiBjaHVua0luZGV4LFxuICAgICAgICAgIGRhdGE6IGFkZHJIYXNoLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7IC8vIE1vdmUgdG8gbmV4dCBjaHVua1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlY29uc3RydWN0IGRhdGEgYnkgc29ydGluZyBjaHVua3MgYnkgaW5kZXhcbiAgY29uc3QgcmVjb25zdHJ1Y3RlZERhdGEgPVxuICAgIGV4dHJhY3RlZENodW5rcy5sZW5ndGggPiAwXG4gICAgICA/IGV4dHJhY3RlZENodW5rc1xuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleClcbiAgICAgICAgICAubWFwKChjaHVuaykgPT4gY2h1bmsuZGF0YSlcbiAgICAgICAgICAuam9pbignJylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiByZWNvbnN0cnVjdGVkRGF0YTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgSE5TIHZhbHVlIHRvIGRvbGxhcnlkb29zIChzYXRvc2hpLWVxdWl2YWxlbnQpIHVzaW5nIHN0cmluZy1iYXNlZCBhcml0aG1ldGljXG4gKiBUaGlzIGF2b2lkcyBmbG9hdGluZy1wb2ludCBwcmVjaXNpb24gZXJyb3JzIHdoZW4gY29udmVydGluZyBmcm9tIEhOUyBkZWNpbWFsIGZvcm1hdFxuICogQHBhcmFtIHZhbHVlIFRoZSBITlMgdmFsdWUgYXMgYSBudW1iZXIgKGUuZy4sIDAuMDAxLCAxLjUpXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgaW4gZG9sbGFyeWRvb3MgYXMgYSBzdHJpbmcgKGUuZy4sIFwiMTAwMFwiLCBcIjE1MDAwMDBcIilcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRIbnNUb0RvbGxhcnlkb29zID0gKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwYXJ0cyA9IHZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgY29uc3QgcGFydDEgPSAoKHBhcnRzWzFdID8/ICcnKSArICcwJy5yZXBlYXQoNikpLnN1YnN0cmluZygwLCA2KTtcbiAgcmV0dXJuIChwYXJ0c1swXSA9PT0gJzAnID8gJycgOiBwYXJ0c1swXSkgKyBwYXJ0MTtcbn07XG4iXX0=
package/dist/index.d.ts CHANGED
@@ -21,5 +21,7 @@ export { FiroRpcRosenExtractor } from './getRosenData/firo/firoRpcRosenExtractor
21
21
  export { BitcoinRunesEsploraRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesEsploraRosenExtractor';
22
22
  export { BitcoinRunesRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRosenExtractor';
23
23
  export { BitcoinRunesRpcRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRpcRosenExtractor';
24
+ export { HandshakeRosenExtractor } from './getRosenData/handshake/handshakeRosenExtractor';
25
+ export { HandshakeRpcRosenExtractor } from './getRosenData/handshake/handshakeRpcRosenExtractor';
24
26
  export { parseRosenData } from './utils';
25
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,iCAAiC,EAAE,MAAM,gEAAgE,CAAC;AACnH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,iCAAiC,EAAE,MAAM,gEAAgE,CAAC;AACnH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -23,5 +23,7 @@ export { FiroRpcRosenExtractor } from './getRosenData/firo/firoRpcRosenExtractor
23
23
  export { BitcoinRunesEsploraRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesEsploraRosenExtractor';
24
24
  export { BitcoinRunesRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRosenExtractor';
25
25
  export { BitcoinRunesRpcRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRpcRosenExtractor';
26
+ export { HandshakeRosenExtractor } from './getRosenData/handshake/handshakeRosenExtractor';
27
+ export { HandshakeRpcRosenExtractor } from './getRosenData/handshake/handshakeRpcRosenExtractor';
26
28
  export { parseRosenData } from './utils';
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQztBQUUxQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFaEIsT0FBTyxFQUFFLE9BQU8sSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbml0RWNjTGliIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgZWNjIGZyb20gJ0BiaXRjb2luZXJsYWIvc2VjcDI1NmsxJztcblxuaW5pdEVjY0xpYihlY2MpO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4vYml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL2JpdGNvaW5Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL2JpdGNvaW5ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1FdGhlcnNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vS29pb3NSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vY2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9jYXJkYW5vT2dtaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgT21naW9zTm9DYm9yRXJyb3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9jYXJkYW5vL2Vycm9ycyc7XG5leHBvcnQgeyBDYXJkYW5vUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9jYXJkYW5vL2NhcmRhbm9Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9jYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2VyZ28vZXJnb1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9lcmdvL2VyZ29Ob2RlUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvdHlwZXMnO1xuZXhwb3J0IHsgRG9nZUVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2RvZ2UvZG9nZUVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL2RvZ2VSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL2RvZ2VScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBGaXJvUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBGaXJvUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNFc3Bsb3JhUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL2JpdGNvaW5SdW5lc0VzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4tcnVuZXMvYml0Y29pblJ1bmVzUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pblJ1bmVzUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL2JpdGNvaW5SdW5lc1JwY1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi91dGlscyc7XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQztBQUUxQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFaEIsT0FBTyxFQUFFLE9BQU8sSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbml0RWNjTGliIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgZWNjIGZyb20gJ0BiaXRjb2luZXJsYWIvc2VjcDI1NmsxJztcblxuaW5pdEVjY0xpYihlY2MpO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4vYml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL2JpdGNvaW5Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL2JpdGNvaW5ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1FdGhlcnNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vS29pb3NSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vY2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9jYXJkYW5vT2dtaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgT21naW9zTm9DYm9yRXJyb3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9jYXJkYW5vL2Vycm9ycyc7XG5leHBvcnQgeyBDYXJkYW5vUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9jYXJkYW5vL2NhcmRhbm9Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9jYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2VyZ28vZXJnb1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9lcmdvL2VyZ29Ob2RlUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvdHlwZXMnO1xuZXhwb3J0IHsgRG9nZUVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2RvZ2UvZG9nZUVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL2RvZ2VSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL2RvZ2VScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBGaXJvUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBGaXJvUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNFc3Bsb3JhUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL2JpdGNvaW5SdW5lc0VzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4tcnVuZXMvYml0Y29pblJ1bmVzUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pblJ1bmVzUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL2JpdGNvaW5SdW5lc1JwY1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEhhbmRzaGFrZVJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvaGFuZHNoYWtlL2hhbmRzaGFrZVJvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEhhbmRzaGFrZVJwY1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvaGFuZHNoYWtlL2hhbmRzaGFrZVJwY1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi91dGlscyc7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/rosen-extractor",
3
- "version": "11.2.1",
3
+ "version": "11.3.0",
4
4
  "description": "this project contains methods to get rosen data from blockchain",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,9 +32,9 @@
32
32
  "@cardano-ogmios/schema": "^6.0.3",
33
33
  "@emurgo/cardano-serialization-lib-nodejs": "^13.2.1",
34
34
  "@rosen-bridge/abstract-logger": "^4.0.0",
35
- "@rosen-bridge/address-codec": "^1.1.1",
35
+ "@rosen-bridge/address-codec": "^1.2.0",
36
36
  "@rosen-bridge/json-bigint": "^1.1.0",
37
- "@rosen-bridge/tokens": "^5.0.1",
37
+ "@rosen-bridge/tokens": "^6.0.0",
38
38
  "bitcoinjs-lib": "^6.1.5",
39
39
  "ergo-lib-wasm-nodejs": "^0.24.1",
40
40
  "ethers": "6.16.0",