@rosen-bridge/rosen-extractor 6.1.0-6770eb → 6.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,cAAc,oBAAqB,MAAM,KAAG,YA6CxD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,cAAc,oBAAqB,MAAM,KAAG,YA4CxD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { decodeAddress, validateAddress } from '@rosen-bridge/address-codec';
1
+ import { decodeAddress } from '@rosen-bridge/address-codec';
2
2
  import { SUPPORTED_CHAINS } from '../const';
3
3
  /**
4
4
  * extracts rosen data from OP_RETURN box script pub key
@@ -28,7 +28,6 @@ export const parseRosenData = (scriptPubKeyHex) => {
28
28
  const addressLengthCode = scriptPubKeyHex.slice(38, 40);
29
29
  const addressHex = scriptPubKeyHex.slice(40, 40 + parseInt(addressLengthCode, 16) * 2);
30
30
  const toAddress = decodeAddress(toChain, addressHex);
31
- validateAddress(toChain, toAddress);
32
31
  return {
33
32
  toChain,
34
33
  toAddress,
@@ -36,4 +35,4 @@ export const parseRosenData = (scriptPubKeyHex) => {
36
35
  networkFee,
37
36
  };
38
37
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2JpdGNvaW4vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHNUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsZUFBdUIsRUFBZ0IsRUFBRTtJQUN0RSx5QkFBeUI7SUFDekIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJO1FBQ3RDLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDbEUsK0RBQStEO0lBQy9ELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzdELE1BQU0sS0FBSyxDQUNULGdDQUFnQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFDMUQsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUMzQixHQUFHLENBQ0osQ0FBQztJQUVKLGdCQUFnQjtJQUNoQixNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksV0FBVyxJQUFJLGdCQUFnQixDQUFDLE1BQU07UUFDeEMsTUFBTSxLQUFLLENBQ1QsZ0NBQWdDLFdBQVcsZUFBZSxnQkFBZ0IsQ0FBQyxNQUFNLHdCQUF3QixDQUMxRyxDQUFDO0lBQ0osTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFOUMsa0JBQWtCO0lBQ2xCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFekQsbUJBQW1CO0lBQ25CLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFM0Qsa0JBQWtCO0lBQ2xCLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEQsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FDdEMsRUFBRSxFQUNGLEVBQUUsR0FBRyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUN6QyxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRCxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXBDLE9BQU87UUFDTCxPQUFPO1FBQ1AsU0FBUztRQUNULFNBQVM7UUFDVCxVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUFkZHJlc3MsIHZhbGlkYXRlQWRkcmVzcyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWRkcmVzcy1jb2RlYyc7XG5pbXBvcnQgeyBTVVBQT1JURURfQ0hBSU5TIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgT3BSZXR1cm5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogZXh0cmFjdHMgcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3ggc2NyaXB0IHB1YiBrZXlcbiAqIEBwYXJhbSBzY3JpcHRQdWJLZXlIZXhcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlUm9zZW5EYXRhID0gKHNjcmlwdFB1YktleUhleDogc3RyaW5nKTogT3BSZXR1cm5EYXRhID0+IHtcbiAgLy8gY2hlY2sgT1BfUkVUVVJOIG9wY29kZVxuICBpZiAoc2NyaXB0UHViS2V5SGV4LnNsaWNlKDAsIDIpICE9PSAnNmEnKVxuICAgIHRocm93IEVycm9yKGBzY3JpcHQgZG9lcyBub3Qgc3RhcnQgd2l0aCBPUF9SRVRVUk4gb3Bjb2RlICg2YSlgKTtcbiAgLy8gY2hlY2sgc2NyaXB0IGxlbmd0aCAoc2hvdWxkIG5vdCB1c2UgbW9yZSB0aGFuIG9uZSBPUF9SRVRVUk4pXG4gIGNvbnN0IGRhdGFMZW5ndGggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoMiwgNCk7XG4gIGlmIChwYXJzZUludChkYXRhTGVuZ3RoLCAxNikgKyAyICE9PSBzY3JpcHRQdWJLZXlIZXgubGVuZ3RoIC8gMilcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBzY3JpcHQgbGVuZ3RoIGlzIHVuZXhwZWN0ZWQgWyR7cGFyc2VJbnQoZGF0YUxlbmd0aCwgMTYpICsgM30gIT09ICR7XG4gICAgICAgIHNjcmlwdFB1YktleUhleC5sZW5ndGggLyAyXG4gICAgICB9XWBcbiAgICApO1xuXG4gIC8vIHBhcnNlIHRvQ2hhaW5cbiAgY29uc3QgdG9DaGFpbkhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSg0LCA2KTtcbiAgY29uc3QgdG9DaGFpbkNvZGUgPSBwYXJzZUludCh0b0NoYWluSGV4LCAxNik7XG4gIGlmICh0b0NoYWluQ29kZSA+PSBTVVBQT1JURURfQ0hBSU5TLmxlbmd0aClcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBpbnZhbGlkIHRvQ2hhaW4gY29kZSwgZm91bmQgWyR7dG9DaGFpbkNvZGV9XSBidXQgb25seSBbJHtTVVBQT1JURURfQ0hBSU5TLmxlbmd0aH1dIGNoYWlucyBhcmUgc3VwcG9ydGVkYFxuICAgICk7XG4gIGNvbnN0IHRvQ2hhaW4gPSBTVVBQT1JURURfQ0hBSU5TW3RvQ2hhaW5Db2RlXTtcblxuICAvLyBwYXJzZSBicmlkZ2VGZWVcbiAgY29uc3QgYnJpZGdlRmVlSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDYsIDIyKTtcbiAgY29uc3QgYnJpZGdlRmVlID0gQmlnSW50KCcweCcgKyBicmlkZ2VGZWVIZXgpLnRvU3RyaW5nKCk7XG5cbiAgLy8gcGFyc2UgbmV0d29ya0ZlZVxuICBjb25zdCBuZXR3b3JrRmVlSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIyLCAzOCk7XG4gIGNvbnN0IG5ldHdvcmtGZWUgPSBCaWdJbnQoJzB4JyArIG5ldHdvcmtGZWVIZXgpLnRvU3RyaW5nKCk7XG5cbiAgLy8gcGFyc2UgdG9BZGRyZXNzXG4gIGNvbnN0IGFkZHJlc3NMZW5ndGhDb2RlID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDM4LCA0MCk7XG4gIGNvbnN0IGFkZHJlc3NIZXggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoXG4gICAgNDAsXG4gICAgNDAgKyBwYXJzZUludChhZGRyZXNzTGVuZ3RoQ29kZSwgMTYpICogMlxuICApO1xuICBjb25zdCB0b0FkZHJlc3MgPSBkZWNvZGVBZGRyZXNzKHRvQ2hhaW4sIGFkZHJlc3NIZXgpO1xuICB2YWxpZGF0ZUFkZHJlc3ModG9DaGFpbiwgdG9BZGRyZXNzKTtcblxuICByZXR1cm4ge1xuICAgIHRvQ2hhaW4sXG4gICAgdG9BZGRyZXNzLFxuICAgIGJyaWRnZUZlZSxcbiAgICBuZXR3b3JrRmVlLFxuICB9O1xufTtcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2JpdGNvaW4vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUc1Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxlQUF1QixFQUFnQixFQUFFO0lBQ3RFLHlCQUF5QjtJQUN6QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUk7UUFDdEMsTUFBTSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUNsRSwrREFBK0Q7SUFDL0QsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDN0QsTUFBTSxLQUFLLENBQ1QsZ0NBQWdDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUMxRCxlQUFlLENBQUMsTUFBTSxHQUFHLENBQzNCLEdBQUcsQ0FDSixDQUFDO0lBRUosZ0JBQWdCO0lBQ2hCLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsSUFBSSxXQUFXLElBQUksZ0JBQWdCLENBQUMsTUFBTTtRQUN4QyxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsV0FBVyxlQUFlLGdCQUFnQixDQUFDLE1BQU0sd0JBQXdCLENBQzFHLENBQUM7SUFDSixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU5QyxrQkFBa0I7SUFDbEIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV6RCxtQkFBbUI7SUFDbkIsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzRCxrQkFBa0I7SUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUN0QyxFQUFFLEVBQ0YsRUFBRSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQ3pDLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxPQUFPO1FBQ1AsU0FBUztRQUNULFNBQVM7UUFDVCxVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUFkZHJlc3MgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2FkZHJlc3MtY29kZWMnO1xuaW1wb3J0IHsgU1VQUE9SVEVEX0NIQUlOUyB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IE9wUmV0dXJuRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIGV4dHJhY3RzIHJvc2VuIGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94IHNjcmlwdCBwdWIga2V5XG4gKiBAcGFyYW0gc2NyaXB0UHViS2V5SGV4XG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZVJvc2VuRGF0YSA9IChzY3JpcHRQdWJLZXlIZXg6IHN0cmluZyk6IE9wUmV0dXJuRGF0YSA9PiB7XG4gIC8vIGNoZWNrIE9QX1JFVFVSTiBvcGNvZGVcbiAgaWYgKHNjcmlwdFB1YktleUhleC5zbGljZSgwLCAyKSAhPT0gJzZhJylcbiAgICB0aHJvdyBFcnJvcihgc2NyaXB0IGRvZXMgbm90IHN0YXJ0IHdpdGggT1BfUkVUVVJOIG9wY29kZSAoNmEpYCk7XG4gIC8vIGNoZWNrIHNjcmlwdCBsZW5ndGggKHNob3VsZCBub3QgdXNlIG1vcmUgdGhhbiBvbmUgT1BfUkVUVVJOKVxuICBjb25zdCBkYXRhTGVuZ3RoID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDQpO1xuICBpZiAocGFyc2VJbnQoZGF0YUxlbmd0aCwgMTYpICsgMiAhPT0gc2NyaXB0UHViS2V5SGV4Lmxlbmd0aCAvIDIpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgc2NyaXB0IGxlbmd0aCBpcyB1bmV4cGVjdGVkIFske3BhcnNlSW50KGRhdGFMZW5ndGgsIDE2KSArIDN9ICE9PSAke1xuICAgICAgICBzY3JpcHRQdWJLZXlIZXgubGVuZ3RoIC8gMlxuICAgICAgfV1gXG4gICAgKTtcblxuICAvLyBwYXJzZSB0b0NoYWluXG4gIGNvbnN0IHRvQ2hhaW5IZXggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoNCwgNik7XG4gIGNvbnN0IHRvQ2hhaW5Db2RlID0gcGFyc2VJbnQodG9DaGFpbkhleCwgMTYpO1xuICBpZiAodG9DaGFpbkNvZGUgPj0gU1VQUE9SVEVEX0NIQUlOUy5sZW5ndGgpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgaW52YWxpZCB0b0NoYWluIGNvZGUsIGZvdW5kIFske3RvQ2hhaW5Db2RlfV0gYnV0IG9ubHkgWyR7U1VQUE9SVEVEX0NIQUlOUy5sZW5ndGh9XSBjaGFpbnMgYXJlIHN1cHBvcnRlZGBcbiAgICApO1xuICBjb25zdCB0b0NoYWluID0gU1VQUE9SVEVEX0NIQUlOU1t0b0NoYWluQ29kZV07XG5cbiAgLy8gcGFyc2UgYnJpZGdlRmVlXG4gIGNvbnN0IGJyaWRnZUZlZUhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSg2LCAyMik7XG4gIGNvbnN0IGJyaWRnZUZlZSA9IEJpZ0ludCgnMHgnICsgYnJpZGdlRmVlSGV4KS50b1N0cmluZygpO1xuXG4gIC8vIHBhcnNlIG5ldHdvcmtGZWVcbiAgY29uc3QgbmV0d29ya0ZlZUhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSgyMiwgMzgpO1xuICBjb25zdCBuZXR3b3JrRmVlID0gQmlnSW50KCcweCcgKyBuZXR3b3JrRmVlSGV4KS50b1N0cmluZygpO1xuXG4gIC8vIHBhcnNlIHRvQWRkcmVzc1xuICBjb25zdCBhZGRyZXNzTGVuZ3RoQ29kZSA9IHNjcmlwdFB1YktleUhleC5zbGljZSgzOCwgNDApO1xuICBjb25zdCBhZGRyZXNzSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKFxuICAgIDQwLFxuICAgIDQwICsgcGFyc2VJbnQoYWRkcmVzc0xlbmd0aENvZGUsIDE2KSAqIDJcbiAgKTtcbiAgY29uc3QgdG9BZGRyZXNzID0gZGVjb2RlQWRkcmVzcyh0b0NoYWluLCBhZGRyZXNzSGV4KTtcblxuICByZXR1cm4ge1xuICAgIHRvQ2hhaW4sXG4gICAgdG9BZGRyZXNzLFxuICAgIGJyaWRnZUZlZSxcbiAgICBuZXR3b3JrRmVlLFxuICB9O1xufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"CardanoBlockFrostRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,+BAAgC,SAAQ,0BAA0B,CAAC,qBAAqB,CAAC;IACpG,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBACC,qBAAqB,KACjC,SAAS,GAAG,SAAS,CA4DtB;IAEF;;;;OAIG;IACH,sBAAsB,QACf,mBAAmB,WACf,MAAM,KACd,mBAAmB,GAAG,SAAS,CAuChC;CACH"}
1
+ {"version":3,"file":"CardanoBlockFrostRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAEL,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAGjB,qBAAa,+BAAgC,SAAQ,0BAA0B,CAAC,qBAAqB,CAAC;IACpG,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBACC,qBAAqB,KACjC,SAAS,GAAG,SAAS,CAwEtB;IAEF;;;;OAIG;IACH,sBAAsB,QACf,mBAAmB,WACf,MAAM,KACd,mBAAmB,GAAG,SAAS,CAuChC;CACH"}
@@ -2,8 +2,6 @@ import { isPlainObject } from 'lodash-es';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { CARDANO_CHAIN, CARDANO_NATIVE_TOKEN } from '../const';
4
4
  import JsonBigInt from '@rosen-bridge/json-bigint';
5
- import { parseRosenData } from './utils';
6
- import { UnsupportedAddressError } from '@rosen-bridge/address-codec';
7
5
  export class CardanoBlockFrostRosenExtractor extends AbstractRosenDataExtractor {
8
6
  chain = CARDANO_CHAIN;
9
7
  /**
@@ -19,15 +17,28 @@ export class CardanoBlockFrostRosenExtractor extends AbstractRosenDataExtractor
19
17
  return undefined;
20
18
  }
21
19
  const data = metadata.find((data) => data.label === '0')?.json_metadata;
22
- const rosenData = parseRosenData(data);
23
- if (rosenData) {
20
+ if (!data || !isPlainObject(data)) {
21
+ this.logger.debug(baseError + `: Invalid metadata: ${JsonBigInt.stringify(metadata)}`);
22
+ return undefined;
23
+ }
24
+ const objectKeys = Object.keys(data);
25
+ if (objectKeys.includes('to') &&
26
+ objectKeys.includes('bridgeFee') &&
27
+ objectKeys.includes('networkFee') &&
28
+ objectKeys.includes('toAddress') &&
29
+ objectKeys.includes('fromAddress')) {
30
+ const rosenData = data;
24
31
  const lockOutputs = transaction.utxos.outputs.filter((output) => output.address === this.lockAddress);
25
32
  for (let i = 0; i < lockOutputs.length; i++) {
26
33
  const output = lockOutputs[i];
27
- const assetTransformation = this.getAssetTransformation(output, rosenData.toChain);
34
+ const assetTransformation = this.getAssetTransformation(output, rosenData.to);
28
35
  if (assetTransformation) {
29
36
  return {
30
- ...rosenData,
37
+ toChain: rosenData.to,
38
+ toAddress: rosenData.toAddress,
39
+ bridgeFee: rosenData.bridgeFee,
40
+ networkFee: rosenData.networkFee,
41
+ fromAddress: rosenData.fromAddress.join(''),
31
42
  sourceChainTokenId: assetTransformation.from,
32
43
  amount: assetTransformation.amount,
33
44
  targetChainTokenId: assetTransformation.to,
@@ -44,10 +55,6 @@ export class CardanoBlockFrostRosenExtractor extends AbstractRosenDataExtractor
44
55
  `: Incomplete metadata. isPlain: ${isPlainObject(data)}, data: ${JsonBigInt.stringify(data)}`);
45
56
  }
46
57
  catch (e) {
47
- if (e instanceof UnsupportedAddressError) {
48
- this.logger.debug(`Invalid metadata, toAddress is not valid and validation failed with error: ${e.message}`);
49
- return undefined;
50
- }
51
58
  this.logger.debug(`An error occurred while getting Cardano rosen data from BlockFrost: ${e}`);
52
59
  if (e instanceof Error && e.stack) {
53
60
  this.logger.debug(e.stack);
@@ -97,4 +104,4 @@ export class CardanoBlockFrostRosenExtractor extends AbstractRosenDataExtractor
97
104
  }
98
105
  };
99
106
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0Jsb2NrRnJvc3RSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTywwQkFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLDBCQUFpRDtJQUMzRixLQUFLLEdBQUcsYUFBYSxDQUFDO0lBQy9COzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUNmLFdBQWtDLEVBQ1gsRUFBRTtRQUN6QixNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUk7WUFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUM7WUFDeEUs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TTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYWluT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBDQVJEQU5PX0NIQUlOLCBDQVJEQU5PX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEJsb2NrRnJvc3RPdXRwdXRCb3gsIEJsb2NrRnJvc3RUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBwYXJzZVJvc2VuRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2FkZHJlc3MtY29kZWMnO1xuXG5leHBvcnQgY2xhc3MgQ2FyZGFub0Jsb2NrRnJvc3RSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPEJsb2NrRnJvc3RUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBjaGFpbiA9IENBUkRBTk9fQ0hBSU47XG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIGJsb2NrZnJvc3QgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBibG9ja2Zyb3N0IGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoXG4gICAgdHJhbnNhY3Rpb246IEJsb2NrRnJvc3RUcmFuc2FjdGlvblxuICApOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi51dHhvcy5oYXNofV1gO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdHJhbnNhY3Rpb24ubWV0YWRhdGE7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXRhZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogTm8gbWV0YWRhdGFgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGEgPSBtZXRhZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhLmxhYmVsID09PSAnMCcpPy5qc29uX21ldGFkYXRhO1xuICAgICAgY29uc3Qgcm9zZW5EYXRhID0gcGFyc2VSb3NlbkRhdGEoZGF0YSk7XG4gICAgICBpZiAocm9zZW5EYXRhKSB7XG4gICAgICAgIGNvbnN0IGxvY2tPdXRwdXRzID0gdHJhbnNhY3Rpb24udXR4b3Mub3V0cHV0cy5maWx0ZXIoXG4gICAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0LmFkZHJlc3MgPT09IHRoaXMubG9ja0FkZHJlc3NcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NrT3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGxvY2tPdXRwdXRzW2ldO1xuICAgICAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgICByb3NlbkRhdGEudG9DaGFpblxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnJvc2VuRGF0YSxcbiAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udXR4b3MuaGFzaCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBib3ggWyR7XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24udXR4b3MuaGFzaFxuICAgICAgICAgICAgICB9LiR7aX1dOiBib3ggYXNzZXRzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KG91dHB1dC5hbW91bnQpfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gdmFsaWQgdHJhbnNmb3JtYXRpb24gZm91bmQgaW4gYW55IG91dHB1dCBib3hlc2BcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgK1xuICAgICAgICAgICAgYDogSW5jb21wbGV0ZSBtZXRhZGF0YS4gaXNQbGFpbjogJHtpc1BsYWluT2JqZWN0KFxuICAgICAgICAgICAgICBkYXRhXG4gICAgICAgICAgICApfSwgZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShkYXRhKX1gXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgSW52YWxpZCBtZXRhZGF0YSwgdG9BZGRyZXNzIGlzIG5vdCB2YWxpZCBhbmQgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIENhcmRhbm8gcm9zZW4gZGF0YSBmcm9tIEJsb2NrRnJvc3Q6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gVVRYTyBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogQmxvY2tGcm9zdE91dHB1dEJveCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBhc3NldHNcbiAgICBmb3IgKGNvbnN0IGFzc2V0IG9mIGJveC5hbW91bnQpIHtcbiAgICAgIGlmIChhc3NldC51bml0ID09PSAnbG92ZWxhY2UnKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHBvbGljeUlkID0gYXNzZXQudW5pdC5zbGljZSgwLCA1Nik7XG4gICAgICBjb25zdCBhc3NldE5hbWUgPSBhc3NldC51bml0LnNsaWNlKDU2KTtcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgICAgYXNzZXROYW1lOiBhc3NldE5hbWUsXG4gICAgICAgIHBvbGljeUlkOiBwb2xpY3lJZCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHRva2VuLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih0b2tlblswXSwgdG9DaGFpbikpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIENBUkRBTk9fQ0hBSU4pLFxuICAgICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgdG9DaGFpbiksXG4gICAgICAgICAgYW1vdW50OiBhc3NldC5xdWFudGl0eSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEFEQVxuICAgIGNvbnN0IGxvdmVsYWNlID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShDQVJEQU5PX0NIQUlOKV06IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmIChsb3ZlbGFjZS5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24obG92ZWxhY2VbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICBjb25zdCBib3hMb3ZlbGFjZUFtb3VudCA9IGJveC5hbW91bnQuZmluZChcbiAgICAgICAgKGFzc2V0KSA9PiBhc3NldC51bml0ID09PSAnbG92ZWxhY2UnXG4gICAgICApO1xuICAgICAgaWYgKCFib3hMb3ZlbGFjZUFtb3VudClcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgYEltcG9zc2libGVCZWhhdmlvcjogRm91bmQgYmxvY2tmcm9zdCB0eCBvdXRwdXQgd2l0aCBubyBsb3ZlbGFjZSBhbW91bnRgXG4gICAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQobG92ZWxhY2VbMF0sIHRvQ2hhaW4pLFxuICAgICAgICBhbW91bnQ6IGJveExvdmVsYWNlQW1vdW50LnF1YW50aXR5LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0Jsb2NrRnJvc3RSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTywwQkFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTS9ELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSwwQkFBaUQ7SUFDM0YsS0FBSyxHQUFHLGFBQWEsQ0FBQztJQUMvQjs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FDZixXQUFrQyxFQUNYLEVBQUU7UUFDekIsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUN0QyxJQUFJO1lBQ0YsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDO1lBQ3hFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNm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RTtZQUM5RCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN2QyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQ3JDLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCO2dCQUNwQixNQUFNLEtBQUssQ0FDVCx3RUFBd0UsQ0FDekUsQ0FBQztZQUVKLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO2FBQ25DLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IENBUkRBTk9fQ0hBSU4sIENBUkRBTk9fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHtcbiAgQ2FyZGFub01ldGFkYXRhUm9zZW5EYXRhLFxuICBCbG9ja0Zyb3N0T3V0cHV0Qm94LFxuICBCbG9ja0Zyb3N0VHJhbnNhY3Rpb24sXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5cbmV4cG9ydCBjbGFzcyBDYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8QmxvY2tGcm9zdFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gQ0FSREFOT19DSEFJTjtcbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gYmxvY2tmcm9zdCBmb3JtYXRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIGJsb2NrZnJvc3QgZm9ybWF0XG4gICAqL1xuICBleHRyYWN0UmF3RGF0YSA9IChcbiAgICB0cmFuc2FjdGlvbjogQmxvY2tGcm9zdFRyYW5zYWN0aW9uXG4gICk6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLnV0eG9zLmhhc2h9XWA7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB0cmFuc2FjdGlvbi5tZXRhZGF0YTtcbiAgICB0cnkge1xuICAgICAgaWYgKG1ldGFkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBObyBtZXRhZGF0YWApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZGF0YSA9IG1ldGFkYXRhLmZpbmQoKGRhdGEpID0+IGRhdGEubGFiZWwgPT09ICcwJyk/Lmpzb25fbWV0YWRhdGE7XG4gICAgICBpZiAoIWRhdGEgfHwgIWlzUGxhaW5PYmplY3QoZGF0YSkpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogSW52YWxpZCBtZXRhZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShtZXRhZGF0YSl9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzKGRhdGEpO1xuICAgICAgaWYgKFxuICAgICAgICBvYmplY3RLZXlzLmluY2x1ZGVzKCd0bycpICYmXG4gICAgICAgIG9iamVjdEtleXMuaW5jbHVkZXMoJ2JyaWRnZUZlZScpICYmXG4gICAgICAgIG9iamVjdEtleXMuaW5jbHVkZXMoJ25ldHdvcmtGZWUnKSAmJlxuICAgICAgICBvYmplY3RLZXlzLmluY2x1ZGVzKCd0b0FkZHJlc3MnKSAmJlxuICAgICAgICBvYmplY3RLZXlzLmluY2x1ZGVzKCdmcm9tQWRkcmVzcycpXG4gICAgICApIHtcbiAgICAgICAgY29uc3Qgcm9zZW5EYXRhID0gZGF0YSBhcyB1bmtub3duIGFzIENhcmRhbm9NZXRhZGF0YVJvc2VuRGF0YTtcblxuICAgICAgICBjb25zdCBsb2NrT3V0cHV0cyA9IHRyYW5zYWN0aW9uLnV0eG9zLm91dHB1dHMuZmlsdGVyKFxuICAgICAgICAgIChvdXRwdXQpID0+IG91dHB1dC5hZGRyZXNzID09PSB0aGlzLmxvY2tBZGRyZXNzXG4gICAgICAgICk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9ja091dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBsb2NrT3V0cHV0c1tpXTtcbiAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgICAgcm9zZW5EYXRhLnRvXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdG9DaGFpbjogcm9zZW5EYXRhLnRvLFxuICAgICAgICAgICAgICB0b0FkZHJlc3M6IHJvc2VuRGF0YS50b0FkZHJlc3MsXG4gICAgICAgICAgICAgIGJyaWRnZUZlZTogcm9zZW5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgICAgICAgbmV0d29ya0ZlZTogcm9zZW5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgICAgICAgIGZyb21BZGRyZXNzOiByb3NlbkRhdGEuZnJvbUFkZHJlc3Muam9pbignJyksXG4gICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLnV0eG9zLmhhc2gsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgYm94IFske1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnV0eG9zLmhhc2hcbiAgICAgICAgICAgICAgfS4ke2l9XTogYm94IGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShvdXRwdXQuYW1vdW50KX1gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kIGluIGFueSBvdXRwdXQgYm94ZXNgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgIGA6IEluY29tcGxldGUgbWV0YWRhdGEuIGlzUGxhaW46ICR7aXNQbGFpbk9iamVjdChcbiAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgKX0sIGRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBCbG9ja0Zyb3N0OiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEJsb2NrRnJvc3RPdXRwdXRCb3gsXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgYXNzZXRzXG4gICAgZm9yIChjb25zdCBhc3NldCBvZiBib3guYW1vdW50KSB7XG4gICAgICBpZiAoYXNzZXQudW5pdCA9PT0gJ2xvdmVsYWNlJykgY29udGludWU7XG4gICAgICBjb25zdCBwb2xpY3lJZCA9IGFzc2V0LnVuaXQuc2xpY2UoMCwgNTYpO1xuICAgICAgY29uc3QgYXNzZXROYW1lID0gYXNzZXQudW5pdC5zbGljZSg1Nik7XG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICAgIGFzc2V0TmFtZTogYXNzZXROYW1lLFxuICAgICAgICBwb2xpY3lJZDogcG9saWN5SWQsXG4gICAgICB9KTtcbiAgICAgIGlmICh0b2tlbi5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24odG9rZW5bMF0sIHRvQ2hhaW4pKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZyb206IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCBDQVJEQU5PX0NIQUlOKSxcbiAgICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIHRvQ2hhaW4pLFxuICAgICAgICAgIGFtb3VudDogYXNzZXQucXVhbnRpdHksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBBREFcbiAgICBjb25zdCBsb3ZlbGFjZSA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoQ0FSREFOT19DSEFJTildOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAobG92ZWxhY2UubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKGxvdmVsYWNlWzBdLCB0b0NoYWluKSkge1xuICAgICAgY29uc3QgYm94TG92ZWxhY2VBbW91bnQgPSBib3guYW1vdW50LmZpbmQoXG4gICAgICAgIChhc3NldCkgPT4gYXNzZXQudW5pdCA9PT0gJ2xvdmVsYWNlJ1xuICAgICAgKTtcbiAgICAgIGlmICghYm94TG92ZWxhY2VBbW91bnQpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIGBJbXBvc3NpYmxlQmVoYXZpb3I6IEZvdW5kIGJsb2NrZnJvc3QgdHggb3V0cHV0IHdpdGggbm8gbG92ZWxhY2UgYW1vdW50YFxuICAgICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKGxvdmVsYWNlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3hMb3ZlbGFjZUFtb3VudC5xdWFudGl0eSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"CardanoGraphQLRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK9D,qBAAa,4BAA6B,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC9F,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,kBAAkB,KAAG,SAAS,GAAG,SAAS,CAkEvE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,eAAe,WACX,MAAM,KACd,mBAAmB,GAAG,SAAS,CA4BhC;CACH"}
1
+ {"version":3,"file":"CardanoGraphQLRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAEL,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAGjB,qBAAa,4BAA6B,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC9F,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,kBAAkB,KAAG,SAAS,GAAG,SAAS,CA8EvE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,eAAe,WACX,MAAM,KACd,mBAAmB,GAAG,SAAS,CA4BhC;CACH"}
@@ -2,8 +2,6 @@ import { isPlainObject } from 'lodash-es';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { CARDANO_CHAIN, CARDANO_NATIVE_TOKEN } from '../const';
4
4
  import JsonBigInt from '@rosen-bridge/json-bigint';
5
- import { parseRosenData } from './utils';
6
- import { UnsupportedAddressError } from '@rosen-bridge/address-codec';
7
5
  export class CardanoGraphQLRosenExtractor extends AbstractRosenDataExtractor {
8
6
  chain = CARDANO_CHAIN;
9
7
  /**
@@ -19,8 +17,17 @@ export class CardanoGraphQLRosenExtractor extends AbstractRosenDataExtractor {
19
17
  return undefined;
20
18
  }
21
19
  const data = metadata.find((data) => data?.key === '0')?.value;
22
- const rosenData = parseRosenData(data);
23
- if (rosenData) {
20
+ if (!data || !isPlainObject(data)) {
21
+ this.logger.debug(baseError + `: Invalid metadata: ${JsonBigInt.stringify(metadata)}`);
22
+ return undefined;
23
+ }
24
+ const objectKeys = Object.keys(data);
25
+ if (objectKeys.includes('to') &&
26
+ objectKeys.includes('bridgeFee') &&
27
+ objectKeys.includes('networkFee') &&
28
+ objectKeys.includes('toAddress') &&
29
+ objectKeys.includes('fromAddress')) {
30
+ const rosenData = data;
24
31
  const lockOutputs = transaction.outputs.filter((output) => output?.address === this.lockAddress);
25
32
  for (let i = 0; i < lockOutputs.length; i++) {
26
33
  const output = lockOutputs[i];
@@ -28,10 +35,14 @@ export class CardanoGraphQLRosenExtractor extends AbstractRosenDataExtractor {
28
35
  this.logger.debug(`No rosen asset transformation found for box [${transaction.hash}.${i}]: box is undefined!`);
29
36
  }
30
37
  else {
31
- const assetTransformation = this.getAssetTransformation(output, rosenData.toChain);
38
+ const assetTransformation = this.getAssetTransformation(output, rosenData.to);
32
39
  if (assetTransformation) {
33
40
  return {
34
- ...rosenData,
41
+ toChain: rosenData.to,
42
+ toAddress: rosenData.toAddress,
43
+ bridgeFee: rosenData.bridgeFee,
44
+ networkFee: rosenData.networkFee,
45
+ fromAddress: rosenData.fromAddress.join(''),
35
46
  sourceChainTokenId: assetTransformation.from,
36
47
  amount: assetTransformation.amount,
37
48
  targetChainTokenId: assetTransformation.to,
@@ -49,10 +60,6 @@ export class CardanoGraphQLRosenExtractor extends AbstractRosenDataExtractor {
49
60
  `: Incomplete metadata. isPlain: ${isPlainObject(data)}, data: ${JsonBigInt.stringify(data)}`);
50
61
  }
51
62
  catch (e) {
52
- if (e instanceof UnsupportedAddressError) {
53
- this.logger.debug(`Invalid metadata, toAddress is not valid and validation failed with error: ${e.message}`);
54
- return undefined;
55
- }
56
63
  this.logger.debug(`An error occurred while getting Cardano rosen data from GraphQL: ${e}`);
57
64
  if (e instanceof Error && e.stack) {
58
65
  this.logger.debug(e.stack);
@@ -95,4 +102,4 @@ export class CardanoGraphQLRosenExtractor extends AbstractRosenDataExtractor {
95
102
  }
96
103
  };
97
104
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0dyYXBoUUxSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vR3JhcGhRTFJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTywwQkFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsTUFBTSxPQUFPLDRCQUE2QixTQUFRLDBCQUE4QztJQUNyRixLQUFLLEdBQUcsYUFBYSxDQUFDO0lBQy9COzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQStCLEVBQXlCLEVBQUU7UUFDMUUsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUNyRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUk7WUFDRixJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDL0Qs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QUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQ3RELE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUM7b0JBQ2hELEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO29CQUN4QyxNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVE7aUJBQzFCLENBQUM7U0FDTDtRQUVELCtDQUErQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDakQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtTQUM1RCxDQUFDLENBQUM7UUFDSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQzlELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSzthQUNsQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYWluT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBDQVJEQU5PX0NIQUlOLCBDQVJEQU5PX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEdyYXBoUUxUcmFuc2FjdGlvbiwgR3JhcGhRTFR4T3V0cHV0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWRkcmVzcy1jb2RlYyc7XG5cbmV4cG9ydCBjbGFzcyBDYXJkYW5vR3JhcGhRTFJvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8R3JhcGhRTFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gQ0FSREFOT19DSEFJTjtcbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gZ3JhcGhxbCBmb3JtYXRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIGdyYXBocWwgZm9ybWF0XG4gICAqL1xuICBleHRyYWN0UmF3RGF0YSA9ICh0cmFuc2FjdGlvbjogR3JhcGhRTFRyYW5zYWN0aW9uKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24uaGFzaH1dYDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRyYW5zYWN0aW9uLm1ldGFkYXRhO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIW1ldGFkYXRhIHx8IG1ldGFkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBObyBtZXRhZGF0YWApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZGF0YSA9IG1ldGFkYXRhLmZpbmQoKGRhdGEpID0+IGRhdGE/LmtleSA9PT0gJzAnKT8udmFsdWU7XG4gICAgICBjb25zdCByb3NlbkRhdGEgPSBwYXJzZVJvc2VuRGF0YShkYXRhKTtcbiAgICAgIGlmIChyb3NlbkRhdGEpIHtcbiAgICAgICAgY29uc3QgbG9ja091dHB1dHMgPSB0cmFuc2FjdGlvbi5vdXRwdXRzLmZpbHRlcihcbiAgICAgICAgICAob3V0cHV0KSA9PiBvdXRwdXQ/LmFkZHJlc3MgPT09IHRoaXMubG9ja0FkZHJlc3NcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NrT3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGxvY2tPdXRwdXRzW2ldO1xuICAgICAgICAgIGlmICghb3V0cHV0KSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBib3ggWyR7dHJhbnNhY3Rpb24uaGFzaH0uJHtpfV06IGJveCBpcyB1bmRlZmluZWQhYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgICAgICByb3NlbkRhdGEudG9DaGFpblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ucm9zZW5EYXRhLFxuICAgICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmhhc2gsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBib3ggWyR7XG4gICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5oYXNoXG4gICAgICAgICAgICAgICAgfS4ke2l9XTogYm94IGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShvdXRwdXQudG9rZW5zKX1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kIGluIGFueSBvdXRwdXQgYm94ZXNgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgIGA6IEluY29tcGxldGUgbWV0YWRhdGEuIGlzUGxhaW46ICR7aXNQbGFpbk9iamVjdChcbiAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgKX0sIGRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEludmFsaWQgbWV0YWRhdGEsIHRvQWRkcmVzcyBpcyBub3QgdmFsaWQgYW5kIHZhbGlkYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICR7ZS5tZXNzYWdlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBHcmFwaFFMOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEdyYXBoUUxUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBhc3NldHNcbiAgICBmb3IgKGNvbnN0IGJveFRva2VuIG9mIGJveC50b2tlbnMpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgICAgYXNzZXROYW1lOiBib3hUb2tlbi5hc3NldC5hc3NldE5hbWUsXG4gICAgICAgIHBvbGljeUlkOiBib3hUb2tlbi5hc3NldC5wb2xpY3lJZCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHRva2VuLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih0b2tlblswXSwgdG9DaGFpbikpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIENBUkRBTk9fQ0hBSU4pLFxuICAgICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgdG9DaGFpbiksXG4gICAgICAgICAgYW1vdW50OiBib3hUb2tlbi5xdWFudGl0eSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEFEQVxuICAgIGNvbnN0IGxvdmVsYWNlID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShDQVJEQU5PX0NIQUlOKV06IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmIChsb3ZlbGFjZS5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24obG92ZWxhY2VbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKGxvdmVsYWNlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0dyYXBoUUxSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vR3JhcGhRTFJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTywwQkFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTS9ELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSwwQkFBOEM7SUFDckYsS0FBSyxHQUFHLGFBQWEsQ0FBQztJQUMvQjs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxXQUErQixFQUF5QixFQUFFO1FBQzFFLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUN0QyxJQUFJO1lBQ0YsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNm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QUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDM0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLO2FBQ2xCLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IENBUkRBTk9fQ0hBSU4sIENBUkRBTk9fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHtcbiAgQ2FyZGFub01ldGFkYXRhUm9zZW5EYXRhLFxuICBHcmFwaFFMVHJhbnNhY3Rpb24sXG4gIEdyYXBoUUxUeE91dHB1dCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcblxuZXhwb3J0IGNsYXNzIENhcmRhbm9HcmFwaFFMUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxHcmFwaFFMVHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBDQVJEQU5PX0NIQUlOO1xuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBncmFwaHFsIGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gZ3JhcGhxbCBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBHcmFwaFFMVHJhbnNhY3Rpb24pOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi5oYXNofV1gO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdHJhbnNhY3Rpb24ubWV0YWRhdGE7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghbWV0YWRhdGEgfHwgbWV0YWRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IE5vIG1ldGFkYXRhYCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhID0gbWV0YWRhdGEuZmluZCgoZGF0YSkgPT4gZGF0YT8ua2V5ID09PSAnMCcpPy52YWx1ZTtcbiAgICAgIGlmICghZGF0YSB8fCAhaXNQbGFpbk9iamVjdChkYXRhKSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBJbnZhbGlkIG1ldGFkYXRhOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KG1ldGFkYXRhKX1gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmplY3RLZXlzID0gT2JqZWN0LmtleXMoZGF0YSk7XG4gICAgICBpZiAoXG4gICAgICAgIG9iamVjdEtleXMuaW5jbHVkZXMoJ3RvJykgJiZcbiAgICAgICAgb2JqZWN0S2V5cy5pbmNsdWRlcygnYnJpZGdlRmVlJykgJiZcbiAgICAgICAgb2JqZWN0S2V5cy5pbmNsdWRlcygnbmV0d29ya0ZlZScpICYmXG4gICAgICAgIG9iamVjdEtleXMuaW5jbHVkZXMoJ3RvQWRkcmVzcycpICYmXG4gICAgICAgIG9iamVjdEtleXMuaW5jbHVkZXMoJ2Zyb21BZGRyZXNzJylcbiAgICAgICkge1xuICAgICAgICBjb25zdCByb3NlbkRhdGEgPSBkYXRhIGFzIHVua25vd24gYXMgQ2FyZGFub01ldGFkYXRhUm9zZW5EYXRhO1xuXG4gICAgICAgIGNvbnN0IGxvY2tPdXRwdXRzID0gdHJhbnNhY3Rpb24ub3V0cHV0cy5maWx0ZXIoXG4gICAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0Py5hZGRyZXNzID09PSB0aGlzLmxvY2tBZGRyZXNzXG4gICAgICAgICk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9ja091dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBsb2NrT3V0cHV0c1tpXTtcbiAgICAgICAgICBpZiAoIW91dHB1dCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgYm94IFske3RyYW5zYWN0aW9uLmhhc2h9LiR7aX1dOiBib3ggaXMgdW5kZWZpbmVkIWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgICAgcm9zZW5EYXRhLnRvXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG8sXG4gICAgICAgICAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICAgICAgICAgIGJyaWRnZUZlZTogcm9zZW5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgICAgICAgICBuZXR3b3JrRmVlOiByb3NlbkRhdGEubmV0d29ya0ZlZSxcbiAgICAgICAgICAgICAgICBmcm9tQWRkcmVzczogcm9zZW5EYXRhLmZyb21BZGRyZXNzLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmhhc2gsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBib3ggWyR7XG4gICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5oYXNoXG4gICAgICAgICAgICAgICAgfS4ke2l9XTogYm94IGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShvdXRwdXQudG9rZW5zKX1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kIGluIGFueSBvdXRwdXQgYm94ZXNgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgIGA6IEluY29tcGxldGUgbWV0YWRhdGEuIGlzUGxhaW46ICR7aXNQbGFpbk9iamVjdChcbiAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgKX0sIGRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBHcmFwaFFMOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEdyYXBoUUxUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBhc3NldHNcbiAgICBmb3IgKGNvbnN0IGJveFRva2VuIG9mIGJveC50b2tlbnMpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgICAgYXNzZXROYW1lOiBib3hUb2tlbi5hc3NldC5hc3NldE5hbWUsXG4gICAgICAgIHBvbGljeUlkOiBib3hUb2tlbi5hc3NldC5wb2xpY3lJZCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHRva2VuLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih0b2tlblswXSwgdG9DaGFpbikpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIENBUkRBTk9fQ0hBSU4pLFxuICAgICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgdG9DaGFpbiksXG4gICAgICAgICAgYW1vdW50OiBib3hUb2tlbi5xdWFudGl0eSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEFEQVxuICAgIGNvbnN0IGxvdmVsYWNlID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShDQVJEQU5PX0NIQUlOKV06IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmIChsb3ZlbGFjZS5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24obG92ZWxhY2VbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKGxvdmVsYWNlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"CardanoKoiosRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoKoiosRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAKjD,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,gBAAgB,CAAC;IAC1F,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,gBAAgB,KAAG,SAAS,GAAG,SAAS,CAuDrE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,IAAI,WACA,MAAM,KACd,mBAAmB,GAAG,SAAS,CAmChC;CACH"}
1
+ {"version":3,"file":"CardanoKoiosRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoKoiosRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAA4B,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG3E,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,gBAAgB,CAAC;IAC1F,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,gBAAgB,KAAG,SAAS,GAAG,SAAS,CA6DrE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,IAAI,WACA,MAAM,KACd,mBAAmB,GAAG,SAAS,CAmChC;CACH"}
@@ -2,8 +2,6 @@ import { isPlainObject } from 'lodash-es';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { CARDANO_CHAIN, CARDANO_NATIVE_TOKEN } from '../const';
4
4
  import JsonBigInt from '@rosen-bridge/json-bigint';
5
- import { parseRosenData } from './utils';
6
- import { UnsupportedAddressError } from '@rosen-bridge/address-codec';
7
5
  export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
8
6
  chain = CARDANO_CHAIN;
9
7
  /**
@@ -16,14 +14,23 @@ export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
16
14
  try {
17
15
  if (metadata && Object.prototype.hasOwnProperty.call(metadata, '0')) {
18
16
  const data = metadata['0'];
19
- const rosenData = parseRosenData(data);
20
- if (rosenData) {
17
+ if (isPlainObject(data) &&
18
+ 'to' in data &&
19
+ 'bridgeFee' in data &&
20
+ 'networkFee' in data &&
21
+ 'toAddress' in data &&
22
+ 'fromAddress' in data) {
23
+ const rosenData = data;
21
24
  const lockOutputs = transaction.outputs.filter((output) => output.payment_addr.bech32 === this.lockAddress);
22
25
  for (const output of lockOutputs) {
23
- const assetTransformation = this.getAssetTransformation(output, rosenData.toChain);
26
+ const assetTransformation = this.getAssetTransformation(output, rosenData.to);
24
27
  if (assetTransformation) {
25
28
  return {
26
- ...rosenData,
29
+ toChain: rosenData.to,
30
+ toAddress: rosenData.toAddress,
31
+ bridgeFee: rosenData.bridgeFee,
32
+ networkFee: rosenData.networkFee,
33
+ fromAddress: rosenData.fromAddress.join(''),
27
34
  sourceChainTokenId: assetTransformation.from,
28
35
  amount: assetTransformation.amount,
29
36
  targetChainTokenId: assetTransformation.to,
@@ -41,10 +48,6 @@ export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
41
48
  this.logger.debug(baseError + `: Invalid metadata: ${JsonBigInt.stringify(metadata)}`);
42
49
  }
43
50
  catch (e) {
44
- if (e instanceof UnsupportedAddressError) {
45
- this.logger.debug(`Invalid metadata, toAddress is not valid and validation failed with error: ${e.message}`);
46
- return undefined;
47
- }
48
51
  this.logger.debug(`An error occurred while getting Cardano rosen data from Koios: ${e}`);
49
52
  if (e instanceof Error && e.stack) {
50
53
  this.logger.debug(e.stack);
@@ -90,4 +93,4 @@ export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
90
93
  }
91
94
  };
92
95
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMEJBQTRDO0lBQ2pGLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDL0I7OztPQUdHO0lBQ0gsY0FBYyxHQUFHLENBQUMsV0FBNkIsRUFBeUIsRUFBRTtRQUN4RSxNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLE9BQU8sR0FBRyxDQUFDO1FBQ3hFLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSTtZQUNGLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ25FLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLFNBQVMsRUFBRTtvQkFDYixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxNQUFNLEVB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RCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO1NBQzVELENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsT0FBTztnQkFDTCxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDM0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLO2FBQ2xCLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsZ0RBQWdELEdBQUcsQ0FBQyxPQUFPLElBQ3pELEdBQUcsQ0FBQyxRQUNOLGtCQUFrQixVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUN6RCxDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IENBUkRBTk9fQ0hBSU4sIENBUkRBTk9fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgS29pb3NUcmFuc2FjdGlvbiwgVXR4byB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBwYXJzZVJvc2VuRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2FkZHJlc3MtY29kZWMnO1xuXG5leHBvcnQgY2xhc3MgQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxLb2lvc1RyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gQ0FSREFOT19DSEFJTjtcbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gS29pb3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBLb2lvcyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBLb2lvc1RyYW5zYWN0aW9uKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udHhfaGFzaH1dYDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRyYW5zYWN0aW9uLm1ldGFkYXRhO1xuICAgIHRyeSB7XG4gICAgICBpZiAobWV0YWRhdGEgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1ldGFkYXRhLCAnMCcpKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtZXRhZGF0YVsnMCddO1xuICAgICAgICBjb25zdCByb3NlbkRhdGEgPSBwYXJzZVJvc2VuRGF0YShkYXRhKTtcbiAgICAgICAgaWYgKHJvc2VuRGF0YSkge1xuICAgICAgICAgIGNvbnN0IGxvY2tPdXRwdXRzID0gdHJhbnNhY3Rpb24ub3V0cHV0cy5maWx0ZXIoXG4gICAgICAgICAgICAob3V0cHV0KSA9PiBvdXRwdXQucGF5bWVudF9hZGRyLmJlY2gzMiA9PT0gdGhpcy5sb2NrQWRkcmVzc1xuICAgICAgICAgICk7XG4gICAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgbG9ja091dHB1dHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgICAgcm9zZW5EYXRhLnRvQ2hhaW5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnJvc2VuRGF0YSxcbiAgICAgICAgICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uZnJvbSxcbiAgICAgICAgICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICAgICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgICAgICAgICBzb3VyY2VUeElkOiB0cmFuc2FjdGlvbi50eF9oYXNoLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kIGluIGFueSBvdXRwdXQgYm94ZXNgXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgK1xuICAgICAgICAgICAgICBgOiBJbmNvbXBsZXRlIG1ldGFkYXRhLiBpc1BsYWluOiAke2lzUGxhaW5PYmplY3QoXG4gICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICApfSwgZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShkYXRhKX1gXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBJbnZhbGlkIG1ldGFkYXRhOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KG1ldGFkYXRhKX1gXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgSW52YWxpZCBtZXRhZGF0YSwgdG9BZGRyZXNzIGlzIG5vdCB2YWxpZCBhbmQgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIENhcmRhbm8gcm9zZW4gZGF0YSBmcm9tIEtvaW9zOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IFV0eG8sXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgYXNzZXRzXG4gICAgaWYgKGJveC5hc3NldF9saXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgYXNzZXQgb2YgYm94LmFzc2V0X2xpc3QpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5zZWFyY2goQ0FSREFOT19DSEFJTiwge1xuICAgICAgICAgIGFzc2V0TmFtZTogYXNzZXQuYXNzZXRfbmFtZSxcbiAgICAgICAgICBwb2xpY3lJZDogYXNzZXQucG9saWN5X2lkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRva2VuLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih0b2tlblswXSwgdG9DaGFpbikpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZyb206IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCBDQVJEQU5PX0NIQUlOKSxcbiAgICAgICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgdG9DaGFpbiksXG4gICAgICAgICAgICBhbW91bnQ6IGFzc2V0LnF1YW50aXR5LFxuICAgICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBBREFcbiAgICBjb25zdCBsb3ZlbGFjZSA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoQ0FSREFOT19DSEFJTildOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAobG92ZWxhY2UubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKGxvdmVsYWNlWzBdLCB0b0NoYWluKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogQ0FSREFOT19OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRChsb3ZlbGFjZVswXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogYm94LnZhbHVlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgYm94IFske2JveC50eF9oYXNofS4ke1xuICAgICAgICAgIGJveC50eF9pbmRleFxuICAgICAgICB9XTogYm94IGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShib3guYXNzZXRfbGlzdCl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufVxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFFbkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDBCQUE0QztJQUNqRixLQUFLLEdBQUcsYUFBYSxDQUFDO0lBQy9COzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQTZCLEVBQXlCLEVBQUU7UUFDeEUsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQztRQUN4RSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUk7WUFDRixJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNuRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQ0UsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDbkIsSUFBSSxJQUFJLElBQUk7b0JBQ1osV0FBVyxJQUFJLElBQUk7b0JBQ25CLFlBQVksSUFBSSxJQUFJO29CQUNwQixXQUFXLElBQUksSUFBSTtvQkFDbkIsYUFBYSxJQUFJLElBQUksRUFDckI7b0JBQ0EsTUFBTSxTQUFTLEdBQUcsSUFBMkMsQ0FBQztvQkFFOUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FB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TUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ2pELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxvQkFBb0I7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUM5RCxPQUFPO2dCQUNMLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUMzQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUs7YUFDbEIsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixnREFBZ0QsR0FBRyxDQUFDLE9BQU8sSUFDekQsR0FBRyxDQUFDLFFBQ04sa0JBQWtCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQ3pELENBQUM7WUFDRixPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGFpbk9iamVjdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgQ0FSREFOT19DSEFJTiwgQ0FSREFOT19OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBDYXJkYW5vTWV0YWRhdGFSb3NlbkRhdGEsIEtvaW9zVHJhbnNhY3Rpb24sIFV0eG8gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuXG5leHBvcnQgY2xhc3MgQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxLb2lvc1RyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gQ0FSREFOT19DSEFJTjtcbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gS29pb3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBLb2lvcyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBLb2lvc1RyYW5zYWN0aW9uKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udHhfaGFzaH1dYDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRyYW5zYWN0aW9uLm1ldGFkYXRhO1xuICAgIHRyeSB7XG4gICAgICBpZiAobWV0YWRhdGEgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1ldGFkYXRhLCAnMCcpKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtZXRhZGF0YVsnMCddO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaXNQbGFpbk9iamVjdChkYXRhKSAmJlxuICAgICAgICAgICd0bycgaW4gZGF0YSAmJlxuICAgICAgICAgICdicmlkZ2VGZWUnIGluIGRhdGEgJiZcbiAgICAgICAgICAnbmV0d29ya0ZlZScgaW4gZGF0YSAmJlxuICAgICAgICAgICd0b0FkZHJlc3MnIGluIGRhdGEgJiZcbiAgICAgICAgICAnZnJvbUFkZHJlc3MnIGluIGRhdGFcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3Qgcm9zZW5EYXRhID0gZGF0YSBhcyB1bmtub3duIGFzIENhcmRhbm9NZXRhZGF0YVJvc2VuRGF0YTtcblxuICAgICAgICAgIGNvbnN0IGxvY2tPdXRwdXRzID0gdHJhbnNhY3Rpb24ub3V0cHV0cy5maWx0ZXIoXG4gICAgICAgICAgICAob3V0cHV0KSA9PiBvdXRwdXQucGF5bWVudF9hZGRyLmJlY2gzMiA9PT0gdGhpcy5sb2NrQWRkcmVzc1xuICAgICAgICAgICk7XG4gICAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgbG9ja091dHB1dHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgICAgcm9zZW5EYXRhLnRvXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG8sXG4gICAgICAgICAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICAgICAgICAgIGJyaWRnZUZlZTogcm9zZW5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgICAgICAgICBuZXR3b3JrRmVlOiByb3NlbkRhdGEubmV0d29ya0ZlZSxcbiAgICAgICAgICAgICAgICBmcm9tQWRkcmVzczogcm9zZW5EYXRhLmZyb21BZGRyZXNzLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLnR4X2hhc2gsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gdmFsaWQgdHJhbnNmb3JtYXRpb24gZm91bmQgaW4gYW55IG91dHB1dCBib3hlc2BcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArXG4gICAgICAgICAgICAgIGA6IEluY29tcGxldGUgbWV0YWRhdGEuIGlzUGxhaW46ICR7aXNQbGFpbk9iamVjdChcbiAgICAgICAgICAgICAgICBkYXRhXG4gICAgICAgICAgICAgICl9LCBkYXRhOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGRhdGEpfWBcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEludmFsaWQgbWV0YWRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkobWV0YWRhdGEpfWBcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgQ2FyZGFubyByb3NlbiBkYXRhIGZyb20gS29pb3M6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gVVRYTyBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogVXR4byxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBhc3NldHNcbiAgICBpZiAoYm94LmFzc2V0X2xpc3QubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBhc3NldCBvZiBib3guYXNzZXRfbGlzdCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICAgICAgYXNzZXROYW1lOiBhc3NldC5hc3NldF9uYW1lLFxuICAgICAgICAgIHBvbGljeUlkOiBhc3NldC5wb2xpY3lfaWQsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHRva2VuWzBdLCB0b0NoYWluKSlcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZnJvbTogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIENBUkRBTk9fQ0hBSU4pLFxuICAgICAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCB0b0NoYWluKSxcbiAgICAgICAgICAgIGFtb3VudDogYXNzZXQucXVhbnRpdHksXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEFEQVxuICAgIGNvbnN0IGxvdmVsYWNlID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShDQVJEQU5PX0NIQUlOKV06IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmIChsb3ZlbGFjZS5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24obG92ZWxhY2VbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKGxvdmVsYWNlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBib3ggWyR7Ym94LnR4X2hhc2h9LiR7XG4gICAgICAgICAgYm94LnR4X2luZGV4XG4gICAgICAgIH1dOiBib3ggYXNzZXRzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGJveC5hc3NldF9saXN0KX1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"CardanoOgmiosRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAEL,WAAW,EACX,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAKhC,qBAAa,2BAA4B,SAAQ,0BAA0B,CAAC,WAAW,CAAC;IACtF,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,WAAW,KAAG,SAAS,GAAG,SAAS,CA2DhE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,iBAAiB,WACb,MAAM,KACd,mBAAmB,GAAG,SAAS,CAwChC;CACH"}
1
+ {"version":3,"file":"CardanoOgmiosRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAEL,WAAW,EACX,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAKhC,qBAAa,2BAA4B,SAAQ,0BAA0B,CAAC,WAAW,CAAC;IACtF,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,WAAW,KAAG,SAAS,GAAG,SAAS,CAiEhE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,iBAAiB,WACb,MAAM,KACd,mBAAmB,GAAG,SAAS,CAwChC;CACH"}
@@ -1,8 +1,7 @@
1
1
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
2
  import { CARDANO_CHAIN, CARDANO_NATIVE_TOKEN } from '../const';
3
+ import { isArray, isString } from 'lodash-es';
3
4
  import JsonBigInt from '@rosen-bridge/json-bigint';
4
- import { parseRosenData } from './utils';
5
- import { UnsupportedAddressError } from '@rosen-bridge/address-codec';
6
5
  export class CardanoOgmiosRosenExtractor extends AbstractRosenDataExtractor {
7
6
  chain = CARDANO_CHAIN;
8
7
  /**
@@ -17,14 +16,23 @@ export class CardanoOgmiosRosenExtractor extends AbstractRosenDataExtractor {
17
16
  const blob = metadata.labels;
18
17
  if (blob && blob['0'] && blob['0'].json) {
19
18
  const data = blob['0'].json;
20
- const rosenData = parseRosenData(data);
21
- if (rosenData) {
19
+ if (isString(data.to) &&
20
+ isString(data.networkFee) &&
21
+ isString(data.bridgeFee) &&
22
+ isString(data.toAddress) &&
23
+ isArray(data.fromAddress) &&
24
+ data.fromAddress.every(isString)) {
25
+ const rosenData = data;
22
26
  const lockOutputs = transaction.outputs.filter((output) => output.address === this.lockAddress);
23
27
  for (const output of lockOutputs) {
24
- const assetTransformation = this.getAssetTransformation(output, rosenData.toChain);
28
+ const assetTransformation = this.getAssetTransformation(output, rosenData.to);
25
29
  if (assetTransformation) {
26
30
  return {
27
- ...rosenData,
31
+ toChain: rosenData.to,
32
+ toAddress: rosenData.toAddress,
33
+ bridgeFee: rosenData.bridgeFee,
34
+ networkFee: rosenData.networkFee,
35
+ fromAddress: rosenData.fromAddress.join(''),
28
36
  sourceChainTokenId: assetTransformation.from,
29
37
  amount: assetTransformation.amount,
30
38
  targetChainTokenId: assetTransformation.to,
@@ -45,10 +53,6 @@ export class CardanoOgmiosRosenExtractor extends AbstractRosenDataExtractor {
45
53
  this.logger.debug(baseError + `: Invalid metadata: ${JsonBigInt.stringify(metadata)}`);
46
54
  }
47
55
  catch (e) {
48
- if (e instanceof UnsupportedAddressError) {
49
- this.logger.debug(`Invalid metadata, toAddress is not valid and validation failed with error: ${e.message}`);
50
- return undefined;
51
- }
52
56
  this.logger.debug(`An error occurred while getting Cardano rosen data from Ogmios: ${e}`);
53
57
  if (e instanceof Error && e.stack) {
54
58
  this.logger.debug(e.stack);
@@ -100,4 +104,4 @@ export class CardanoOgmiosRosenExtractor extends AbstractRosenDataExtractor {
100
104
  }
101
105
  };
102
106
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9jYXJkYW5vL0NhcmRhbm9PZ21pb3NSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFNL0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsMEJBQXVDO0lBQzdFLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDL0I7OztPQUdHO0lBQ0gsY0FBYyxHQUFHLENBQUMsV0FBd0IsRUFBeUIsRUFBRTtRQUNuRSxNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSTtZQUNGLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFO29CQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBc0IsQ0FBQztvQkFDOUMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QyxJQUFJLFNBQVMsRUFBRTt3QkFDYixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FB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Q0FBQyxFQUFFLGFBQWEsQ0FBQzt3QkFDaEQsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7d0JBQ3hDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFO3FCQUMvQyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtRQUVELCtDQUErQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDakQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtTQUM1RCxDQUFDLENBQUM7UUFDSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQzlELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7YUFDdkMsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixtRUFBbUUsVUFBVSxDQUFDLFNBQVMsQ0FDckYsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ2pCLEVBQUUsQ0FDSixDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBDQVJEQU5PX0NIQUlOLCBDQVJEQU5PX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7XG4gIE9iamVjdE5vU2NoZW1hLFxuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25PdXRwdXQsXG59IGZyb20gJ0BjYXJkYW5vLW9nbWlvcy9zY2hlbWEnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBwYXJzZVJvc2VuRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2FkZHJlc3MtY29kZWMnO1xuXG5leHBvcnQgY2xhc3MgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBDQVJEQU5PX0NIQUlOO1xuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBPZ21pb3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBLb2lvcyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmlkfV1gO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdHJhbnNhY3Rpb24ubWV0YWRhdGE7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBibG9iID0gbWV0YWRhdGEubGFiZWxzO1xuICAgICAgICBpZiAoYmxvYiAmJiBibG9iWycwJ10gJiYgYmxvYlsnMCddLmpzb24pIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gYmxvYlsnMCddLmpzb24gYXMgT2JqZWN0Tm9TY2hlbWE7XG4gICAgICAgICAgY29uc3Qgcm9zZW5EYXRhID0gcGFyc2VSb3NlbkRhdGEoZGF0YSk7XG4gICAgICAgICAgaWYgKHJvc2VuRGF0YSkge1xuICAgICAgICAgICAgY29uc3QgbG9ja091dHB1dHMgPSB0cmFuc2FjdGlvbi5vdXRwdXRzLmZpbHRlcihcbiAgICAgICAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0LmFkZHJlc3MgPT09IHRoaXMubG9ja0FkZHJlc3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBsb2NrT3V0cHV0cykge1xuICAgICAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgICAgICByb3NlbkRhdGEudG9DaGFpblxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi5yb3NlbkRhdGEsXG4gICAgICAgICAgICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uZnJvbSxcbiAgICAgICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgICAgICBzb3VyY2VUeElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gdmFsaWQgdHJhbnNmb3JtYXRpb24gZm91bmQgaW4gYW55IG91dHB1dCBib3hlc2BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgICAgICBgOiBJbmNvbXBsZXRlIG1ldGFkYXRhOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KG1ldGFkYXRhKX1gXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArIGA6IEludmFsaWQgYmxvYjogJHtKc29uQmlnSW50LnN0cmluZ2lmeShtZXRhZGF0YSl9YFxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogSW52YWxpZCBtZXRhZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShtZXRhZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEludmFsaWQgbWV0YWRhdGEsIHRvQWRkcmVzcyBpcyBub3QgdmFsaWQgYW5kIHZhbGlkYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICR7ZS5tZXNzYWdlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBPZ21pb3M6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gVHhPdXQgYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IFRyYW5zYWN0aW9uT3V0cHV0LFxuICAgIHRvQ2hhaW46IHN0cmluZ1xuICApOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIGFzc2V0c1xuICAgIGNvbnN0IGFzc2V0cyA9IGJveC52YWx1ZTtcbiAgICBmb3IgKGNvbnN0IHBvbGljeUlkIG9mIE9iamVjdC5rZXlzKGFzc2V0cykpIHtcbiAgICAgIGlmIChwb2xpY3lJZCA9PT0gQ0FSREFOT19OQVRJVkVfVE9LRU4pIGNvbnRpbnVlO1xuICAgICAgLy8gYWNjb3JkaW5nIHRvIG9nbWlvcyB2NiBkb2NzIGFzc2V0cyBhcmUgc3RvcmVzIGFzXG4gICAgICAvLyAgICAgIFtwb2xpY3lJZF06IHtbYXNzZXROYW1lXTogYW1vdW50fVxuICAgICAgZm9yIChjb25zdCBhc3NldE5hbWUgb2YgT2JqZWN0LmtleXMoYXNzZXRzW3BvbGljeUlkXSkpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5zZWFyY2goQ0FSREFOT19DSEFJTiwge1xuICAgICAgICAgIHBvbGljeUlkOiBwb2xpY3lJZCxcbiAgICAgICAgICBhc3NldE5hbWU6IGFzc2V0TmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0b2tlbi5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24odG9rZW5bMF0sIHRvQ2hhaW4pKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZyb206IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCBDQVJEQU5PX0NIQUlOKSxcbiAgICAgICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgdG9DaGFpbiksXG4gICAgICAgICAgICBhbW91bnQ6IGFzc2V0c1twb2xpY3lJZF1bYXNzZXROYW1lXS50b1N0cmluZygpLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEFEQVxuICAgIGNvbnN0IGxvdmVsYWNlID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShDQVJEQU5PX0NIQUlOKV06IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmIChsb3ZlbGFjZS5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24obG92ZWxhY2VbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKGxvdmVsYWNlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBhc3NldHMuYWRhLmxvdmVsYWNlLnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBPZ21pb3MgYm94IHdpdGggYXNzZXRzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgIGJveC52YWx1ZS5hc3NldHNcbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9jYXJkYW5vL0NhcmRhbm9PZ21pb3NSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFPL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFFbkQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDBCQUF1QztJQUM3RSxLQUFLLEdBQUcsYUFBYSxDQUFDO0lBQy9COzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQXdCLEVBQXlCLEVBQUU7UUFDbkUsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUk7WUFDRixJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUM3QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRTtvQkFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQXNCLENBQUM7b0JBQzlDLElBQ0UsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO3dCQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDeEIsUUFBUSxDQUFDLElBQUks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LENBQUMsU0FBUyxDQUNyRixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDakIsRUFBRSxDQUNKLENBQUM7WUFDRixPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IENBUkRBTk9fQ0hBSU4sIENBUkRBTk9fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHtcbiAgT2JqZWN0Tm9TY2hlbWEsXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbk91dHB1dCxcbn0gZnJvbSAnQGNhcmRhbm8tb2dtaW9zL3NjaGVtYSc7XG5pbXBvcnQgeyBDYXJkYW5vTWV0YWRhdGFSb3NlbkRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuXG5leHBvcnQgY2xhc3MgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBDQVJEQU5PX0NIQUlOO1xuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBPZ21pb3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBLb2lvcyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmlkfV1gO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdHJhbnNhY3Rpb24ubWV0YWRhdGE7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBibG9iID0gbWV0YWRhdGEubGFiZWxzO1xuICAgICAgICBpZiAoYmxvYiAmJiBibG9iWycwJ10gJiYgYmxvYlsnMCddLmpzb24pIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gYmxvYlsnMCddLmpzb24gYXMgT2JqZWN0Tm9TY2hlbWE7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgaXNTdHJpbmcoZGF0YS50bykgJiZcbiAgICAgICAgICAgIGlzU3RyaW5nKGRhdGEubmV0d29ya0ZlZSkgJiZcbiAgICAgICAgICAgIGlzU3RyaW5nKGRhdGEuYnJpZGdlRmVlKSAmJlxuICAgICAgICAgICAgaXNTdHJpbmcoZGF0YS50b0FkZHJlc3MpICYmXG4gICAgICAgICAgICBpc0FycmF5KGRhdGEuZnJvbUFkZHJlc3MpICYmXG4gICAgICAgICAgICBkYXRhLmZyb21BZGRyZXNzLmV2ZXJ5KGlzU3RyaW5nKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgcm9zZW5EYXRhID0gZGF0YSBhcyB1bmtub3duIGFzIENhcmRhbm9NZXRhZGF0YVJvc2VuRGF0YTtcblxuICAgICAgICAgICAgY29uc3QgbG9ja091dHB1dHMgPSB0cmFuc2FjdGlvbi5vdXRwdXRzLmZpbHRlcihcbiAgICAgICAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0LmFkZHJlc3MgPT09IHRoaXMubG9ja0FkZHJlc3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBsb2NrT3V0cHV0cykge1xuICAgICAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgICAgICByb3NlbkRhdGEudG9cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgdG9DaGFpbjogcm9zZW5EYXRhLnRvLFxuICAgICAgICAgICAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICAgICAgICAgICAgYnJpZGdlRmVlOiByb3NlbkRhdGEuYnJpZGdlRmVlLFxuICAgICAgICAgICAgICAgICAgbmV0d29ya0ZlZTogcm9zZW5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgICAgICAgICAgICBmcm9tQWRkcmVzczogcm9zZW5EYXRhLmZyb21BZGRyZXNzLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgICAgICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICAgICAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kIGluIGFueSBvdXRwdXQgYm94ZXNgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGJhc2VFcnJvciArXG4gICAgICAgICAgICAgICAgYDogSW5jb21wbGV0ZSBtZXRhZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShtZXRhZGF0YSl9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBJbnZhbGlkIGJsb2I6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkobWV0YWRhdGEpfWBcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEludmFsaWQgbWV0YWRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkobWV0YWRhdGEpfWBcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgQ2FyZGFubyByb3NlbiBkYXRhIGZyb20gT2dtaW9zOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFR4T3V0IGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBUcmFuc2FjdGlvbk91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBhc3NldHNcbiAgICBjb25zdCBhc3NldHMgPSBib3gudmFsdWU7XG4gICAgZm9yIChjb25zdCBwb2xpY3lJZCBvZiBPYmplY3Qua2V5cyhhc3NldHMpKSB7XG4gICAgICBpZiAocG9saWN5SWQgPT09IENBUkRBTk9fTkFUSVZFX1RPS0VOKSBjb250aW51ZTtcbiAgICAgIC8vIGFjY29yZGluZyB0byBvZ21pb3MgdjYgZG9jcyBhc3NldHMgYXJlIHN0b3JlcyBhc1xuICAgICAgLy8gICAgICBbcG9saWN5SWRdOiB7W2Fzc2V0TmFtZV06IGFtb3VudH1cbiAgICAgIGZvciAoY29uc3QgYXNzZXROYW1lIG9mIE9iamVjdC5rZXlzKGFzc2V0c1twb2xpY3lJZF0pKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgICAgICBwb2xpY3lJZDogcG9saWN5SWQsXG4gICAgICAgICAgYXNzZXROYW1lOiBhc3NldE5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHRva2VuWzBdLCB0b0NoYWluKSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgQ0FSREFOT19DSEFJTiksXG4gICAgICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIHRvQ2hhaW4pLFxuICAgICAgICAgICAgYW1vdW50OiBhc3NldHNbcG9saWN5SWRdW2Fzc2V0TmFtZV0udG9TdHJpbmcoKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBBREFcbiAgICBjb25zdCBsb3ZlbGFjZSA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoQ0FSREFOT19DSEFJTildOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAobG92ZWxhY2UubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKGxvdmVsYWNlWzBdLCB0b0NoYWluKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogQ0FSREFOT19OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRChsb3ZlbGFjZVswXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogYXNzZXRzLmFkYS5sb3ZlbGFjZS50b1N0cmluZygpLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgT2dtaW9zIGJveCB3aXRoIGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShcbiAgICAgICAgICBib3gudmFsdWUuYXNzZXRzXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"ErgoNodeRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/ergo/ErgoNodeRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAO/D,qBAAa,sBAAuB,SAAQ,0BAA0B,CAAC,eAAe,CAAC;IACrF,QAAQ,CAAC,KAAK,UAAc;IAC5B,YAAY,EAAE,MAAM,CAAC;gBAGnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,cAAc;IAQzB;;;OAGG;IACH,cAAc,gBAAiB,eAAe,KAAG,SAAS,GAAG,SAAS,CAoEpE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,aAAa,WACT,MAAM,KACd,mBAAmB,GAAG,SAAS,CAmChC;CACH"}
1
+ {"version":3,"file":"ErgoNodeRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/ergo/ErgoNodeRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,qBAAa,sBAAuB,SAAQ,0BAA0B,CAAC,eAAe,CAAC;IACrF,QAAQ,CAAC,KAAK,UAAc;IAC5B,YAAY,EAAE,MAAM,CAAC;gBAGnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,cAAc;IAQzB;;;OAGG;IACH,cAAc,gBAAiB,eAAe,KAAG,SAAS,GAAG,SAAS,CAwDpE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,aAAa,WACT,MAAM,KACd,mBAAmB,GAAG,SAAS,CAmChC;CACH"}
@@ -2,7 +2,6 @@ import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
2
  import { ERGO_CHAIN, ERGO_NATIVE_TOKEN } from '../const';
3
3
  import { Address, Constant } from 'ergo-lib-wasm-nodejs';
4
4
  import JsonBigInt from '@rosen-bridge/json-bigint';
5
- import { validateAddress, UnsupportedAddressError, } from '@rosen-bridge/address-codec';
6
5
  export class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor {
7
6
  chain = ERGO_CHAIN;
8
7
  lockErgoTree;
@@ -25,8 +24,7 @@ export class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor {
25
24
  const R4 = Constant.decode_from_base16(box.additionalRegisters.R4);
26
25
  if (R4) {
27
26
  const R4Serialized = R4.to_coll_coll_byte();
28
- if (R4Serialized.length >= 5 &&
29
- validateAddress(Buffer.from(R4Serialized[0]).toString(), Buffer.from(R4Serialized[1]).toString())) {
27
+ if (R4Serialized.length >= 5) {
30
28
  const toChain = Buffer.from(R4Serialized[0]).toString();
31
29
  const assetTransformation = this.getAssetTransformation(box, toChain);
32
30
  if (assetTransformation) {
@@ -59,10 +57,6 @@ export class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor {
59
57
  this.logger.debug(baseError + `: No valid rosen data found in any output box registers`);
60
58
  }
61
59
  catch (e) {
62
- if (e instanceof UnsupportedAddressError) {
63
- this.logger.debug(`Invalid register data, toAddress is not valid and validation failed with error: ${e.message}`);
64
- return undefined;
65
- }
66
60
  this.logger.debug(`An error occurred while getting Ergo rosen data: ${e}`);
67
61
  if (e instanceof Error && e.stack) {
68
62
  this.logger.debug(e.stack);
@@ -108,4 +102,4 @@ export class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor {
108
102
  }
109
103
  };
110
104
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJnb05vZGVSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvZXJnby9FcmdvTm9kZVJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEdBQ3hCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEyQztJQUM1RSxLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQzVCLFlBQVksQ0FBUztJQUVyQixZQUNFLFdBQW1CLEVBQ25CLE1BQW1CLEVBQ25CLE1BQXVCO1FBRXZCLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7YUFDakQsWUFBWSxFQUFFO2FBQ2QsZUFBZSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQTRCLEVBQXlCLEVBQUU7UUFDdkUsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNuRSxJQUFJO1lBQ0YsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUNyQyxNQUFNLFlBQVksR0FBRywrQkFBK0IsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDO2dCQUNqRSxJQUFJLEdBQUcsQ0FBQyxRQUFR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LElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDcEQsT0FBTztnQkFDTCxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDdEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsZ0RBQ0UsR0FBRyxDQUFDLEtBQ04sa0JBQWtCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ3JELENBQUM7WUFDRixPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IEVSR09fQ0hBSU4sIEVSR09fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgTm9kZU91dHB1dEJveCwgTm9kZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBSb3NlblRva2VucyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFkZHJlc3MsIENvbnN0YW50IH0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7XG4gIHZhbGlkYXRlQWRkcmVzcyxcbiAgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IsXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWRkcmVzcy1jb2RlYyc7XG5cbmV4cG9ydCBjbGFzcyBFcmdvTm9kZVJvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8Tm9kZVRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gRVJHT19DSEFJTjtcbiAgbG9ja0VyZ29UcmVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM6IFJvc2VuVG9rZW5zLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyXG4gICkge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrRXJnb1RyZWUgPSBBZGRyZXNzLmZyb21fYmFzZTU4KGxvY2tBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBOb2RlIGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gTm9kZSBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBOb2RlVHJhbnNhY3Rpb24pOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dYDtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBib3ggb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICBjb25zdCBib3hCYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBpbiBib3ggWyR7Ym94LmJveElkfV1gO1xuICAgICAgICBpZiAoYm94LmVyZ29UcmVlID09PSB0aGlzLmxvY2tFcmdvVHJlZSAmJiBib3guYWRkaXRpb25hbFJlZ2lzdGVycz8uUjQpIHtcbiAgICAgICAgICBjb25zdCBSNCA9IENvbnN0YW50LmRlY29kZV9mcm9tX2Jhc2UxNihib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNCk7XG4gICAgICAgICAgaWYgKFI0KSB7XG4gICAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSBSNC50b19jb2xsX2NvbGxfYnl0ZSgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBSNFNlcmlhbGl6ZWQubGVuZ3RoID49IDUgJiZcbiAgICAgICAgICAgICAgdmFsaWRhdGVBZGRyZXNzKFxuICAgICAgICAgICAgICAgIEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFswXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMV0pLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRvQ2hhaW4gPSBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICAgICAgICBib3gsXG4gICAgICAgICAgICAgICAgdG9DaGFpblxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB0b0NoYWluOiB0b0NoYWluLFxuICAgICAgICAgICAgICAgICAgdG9BZGRyZXNzOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMV0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBicmlkZ2VGZWU6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFszXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIG5ldHdvcmtGZWU6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFsyXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIGZyb21BZGRyZXNzOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbNF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uZnJvbSxcbiAgICAgICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgICAgICBzb3VyY2VUeElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYm94QmFzZUVycm9yICtcbiAgICAgICAgICAgICAgICAgIGA6IGxlbmd0aCBvZiBkYXRhIGluIFI0IGlzIGxlc3MgdGhhbiBleHBlY3RlZCBbJHtSNFNlcmlhbGl6ZWQubGVuZ3RofSA8IDVdYFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoYm94LmVyZ29UcmVlICE9PSB0aGlzLmxvY2tFcmdvVHJlZSlcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBib3hCYXNlRXJyb3IgK1xuICAgICAgICAgICAgICAgIGA6IGludmFsaWQgZXJnbyB0cmVlIFske2JveC5lcmdvVHJlZX0gIT09ICR7dGhpcy5sb2NrRXJnb1RyZWV9XWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgZWxzZSB0aGlzLmxvZ2dlci5kZWJ1Zyhib3hCYXNlRXJyb3IgKyBgOiBubyBSNGApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYmFzZUVycm9yICsgYDogTm8gdmFsaWQgcm9zZW4gZGF0YSBmb3VuZCBpbiBhbnkgb3V0cHV0IGJveCByZWdpc3RlcnNgXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEludmFsaWQgcmVnaXN0ZXIgZGF0YSwgdG9BZGRyZXNzIGlzIG5vdCB2YWxpZCBhbmQgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIEVyZ28gcm9zZW4gZGF0YTogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBOb2RlT3V0cHV0Qm94IGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBOb2RlT3V0cHV0Qm94LFxuICAgIHRvQ2hhaW46IHN0cmluZ1xuICApOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIHRva2Vuc1xuICAgIGlmIChib3guYXNzZXRzICYmIGJveC5hc3NldHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBsb2NrZWRUb2tlbiBvZiBib3guYXNzZXRzKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuc2VhcmNoKEVSR09fQ0hBSU4sIHtcbiAgICAgICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoRVJHT19DSEFJTildOiBsb2NrZWRUb2tlbi50b2tlbklkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRva2VuLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih0b2tlblswXSwgdG9DaGFpbikpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZnJvbTogbG9ja2VkVG9rZW4udG9rZW5JZCxcbiAgICAgICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgdG9DaGFpbiksXG4gICAgICAgICAgICBhbW91bnQ6IGxvY2tlZFRva2VuLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEVyZ1xuICAgIGNvbnN0IGVyZyA9IHRoaXMudG9rZW5zLnNlYXJjaChFUkdPX0NIQUlOLCB7XG4gICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoRVJHT19DSEFJTildOiBFUkdPX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAoZXJnLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bihlcmdbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBFUkdPX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKGVyZ1swXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogYm94LnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uIGZvdW5kIGZvciBib3ggWyR7XG4gICAgICAgICAgYm94LmJveElkXG4gICAgICAgIH1dOiBib3ggYXNzZXRzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGJveC5hc3NldHMpfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJnb05vZGVSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvZXJnby9FcmdvTm9kZVJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwwQkFBMkM7SUFDNUUsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUM1QixZQUFZLENBQVM7SUFFckIsWUFDRSxXQUFtQixFQUNuQixNQUFtQixFQUNuQixNQUF1QjtRQUV2QixLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO2FBQ2pELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxXQUE0QixFQUF5QixFQUFFO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDbkUsSUFBSTtZQUNGLEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFDckMsTUFBTSxZQUFZLEdBQUcsK0JBQStCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQztnQkFDakUsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFB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Q0FBQyxNQUFNLENBQUMsRUFBRSxDQUNyRCxDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBFUkdPX0NIQUlOLCBFUkdPX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IE5vZGVPdXRwdXRCb3gsIE5vZGVUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUm9zZW5Ub2tlbnMgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBBZGRyZXNzLCBDb25zdGFudCB9IGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5cbmV4cG9ydCBjbGFzcyBFcmdvTm9kZVJvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8Tm9kZVRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gRVJHT19DSEFJTjtcbiAgbG9ja0VyZ29UcmVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM6IFJvc2VuVG9rZW5zLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyXG4gICkge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrRXJnb1RyZWUgPSBBZGRyZXNzLmZyb21fYmFzZTU4KGxvY2tBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBOb2RlIGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gTm9kZSBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBOb2RlVHJhbnNhY3Rpb24pOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dYDtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBib3ggb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICBjb25zdCBib3hCYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBpbiBib3ggWyR7Ym94LmJveElkfV1gO1xuICAgICAgICBpZiAoYm94LmVyZ29UcmVlID09PSB0aGlzLmxvY2tFcmdvVHJlZSAmJiBib3guYWRkaXRpb25hbFJlZ2lzdGVycz8uUjQpIHtcbiAgICAgICAgICBjb25zdCBSNCA9IENvbnN0YW50LmRlY29kZV9mcm9tX2Jhc2UxNihib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNCk7XG4gICAgICAgICAgaWYgKFI0KSB7XG4gICAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSBSNC50b19jb2xsX2NvbGxfYnl0ZSgpO1xuICAgICAgICAgICAgaWYgKFI0U2VyaWFsaXplZC5sZW5ndGggPj0gNSkge1xuICAgICAgICAgICAgICBjb25zdCB0b0NoYWluID0gQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkWzBdKS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgICAgICAgYm94LFxuICAgICAgICAgICAgICAgIHRvQ2hhaW5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgdG9DaGFpbjogdG9DaGFpbixcbiAgICAgICAgICAgICAgICAgIHRvQWRkcmVzczogQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkWzFdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgYnJpZGdlRmVlOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbM10pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBuZXR3b3JrRmVlOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMl0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBmcm9tQWRkcmVzczogQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkWzRdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgICAgICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICAgICAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgIGJveEJhc2VFcnJvciArXG4gICAgICAgICAgICAgICAgICBgOiBsZW5ndGggb2YgZGF0YSBpbiBSNCBpcyBsZXNzIHRoYW4gZXhwZWN0ZWQgWyR7UjRTZXJpYWxpemVkLmxlbmd0aH0gPCA1XWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGJveC5lcmdvVHJlZSAhPT0gdGhpcy5sb2NrRXJnb1RyZWUpXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYm94QmFzZUVycm9yICtcbiAgICAgICAgICAgICAgICBgOiBpbnZhbGlkIGVyZ28gdHJlZSBbJHtib3guZXJnb1RyZWV9ICE9PSAke3RoaXMubG9ja0VyZ29UcmVlfV1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGVsc2UgdGhpcy5sb2dnZXIuZGVidWcoYm94QmFzZUVycm9yICsgYDogbm8gUjRgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHJvc2VuIGRhdGEgZm91bmQgaW4gYW55IG91dHB1dCBib3ggcmVnaXN0ZXJzYFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgRXJnbyByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIE5vZGVPdXRwdXRCb3ggYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IE5vZGVPdXRwdXRCb3gsXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgdG9rZW5zXG4gICAgaWYgKGJveC5hc3NldHMgJiYgYm94LmFzc2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGxvY2tlZFRva2VuIG9mIGJveC5hc3NldHMpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5zZWFyY2goRVJHT19DSEFJTiwge1xuICAgICAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShFUkdPX0NIQUlOKV06IGxvY2tlZFRva2VuLnRva2VuSWQsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHRva2VuWzBdLCB0b0NoYWluKSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tOiBsb2NrZWRUb2tlbi50b2tlbklkLFxuICAgICAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCB0b0NoYWluKSxcbiAgICAgICAgICAgIGFtb3VudDogbG9ja2VkVG9rZW4uYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgRXJnXG4gICAgY29uc3QgZXJnID0gdGhpcy50b2tlbnMuc2VhcmNoKEVSR09fQ0hBSU4sIHtcbiAgICAgIFt0aGlzLnRva2Vucy5nZXRJZEtleShFUkdPX0NIQUlOKV06IEVSR09fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmIChlcmcubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKGVyZ1swXSwgdG9DaGFpbikpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEVSR09fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQoZXJnWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUudG9TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gcm9zZW4gYXNzZXQgdHJhbnNmb3JtYXRpb24gZm91bmQgZm9yIGJveCBbJHtcbiAgICAgICAgICBib3guYm94SWRcbiAgICAgICAgfV06IGJveCBhc3NldHM6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoYm94LmFzc2V0cyl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufVxuIl19