@rosen-bridge/rosen-extractor 8.0.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/getRosenData/abstract/AbstractRosenDataExtractor.d.ts.map +1 -0
  2. package/dist/getRosenData/abstract/AbstractRosenDataExtractor.js +32 -0
  3. package/dist/getRosenData/abstract/types.d.ts.map +1 -0
  4. package/dist/getRosenData/abstract/types.js +2 -0
  5. package/dist/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts.map +1 -0
  6. package/dist/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.js +105 -0
  7. package/dist/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts.map +1 -0
  8. package/dist/getRosenData/bitcoin/BitcoinRosenExtractor.js +113 -0
  9. package/dist/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts.map +1 -0
  10. package/dist/getRosenData/bitcoin/BitcoinRpcRosenExtractor.js +106 -0
  11. package/dist/{lib/getRosenData/doge → getRosenData/bitcoin}/types.d.ts.map +1 -1
  12. package/dist/getRosenData/bitcoin/types.js +2 -0
  13. package/dist/getRosenData/bitcoin/utils.d.ts.map +1 -0
  14. package/dist/getRosenData/bitcoin/utils.js +17 -0
  15. package/dist/{lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts → getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor.d.ts} +2 -2
  16. package/dist/getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor.d.ts.map +1 -0
  17. package/dist/getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor.js +114 -0
  18. package/dist/{lib/getRosenData/runes/RunesRosenExtractor.d.ts → getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor.d.ts} +2 -2
  19. package/dist/getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor.d.ts.map +1 -0
  20. package/dist/getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor.js +121 -0
  21. package/dist/{lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts → getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor.d.ts} +2 -2
  22. package/dist/getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor.d.ts.map +1 -0
  23. package/dist/getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor.js +114 -0
  24. package/dist/getRosenData/bitcoin-runes/constants.d.ts.map +1 -0
  25. package/dist/getRosenData/bitcoin-runes/constants.js +2 -0
  26. package/dist/getRosenData/bitcoin-runes/types.d.ts.map +1 -0
  27. package/dist/getRosenData/bitcoin-runes/types.js +2 -0
  28. package/dist/getRosenData/bitcoin-runes/utils.d.ts.map +1 -0
  29. package/dist/getRosenData/bitcoin-runes/utils.js +9 -0
  30. package/dist/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts.map +1 -0
  31. package/dist/getRosenData/cardano/CardanoBlockFrostRosenExtractor.js +94 -0
  32. package/dist/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts.map +1 -0
  33. package/dist/getRosenData/cardano/CardanoGraphQLRosenExtractor.js +92 -0
  34. package/dist/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts.map +1 -0
  35. package/dist/getRosenData/cardano/CardanoKoiosRosenExtractor.js +95 -0
  36. package/dist/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts.map +1 -0
  37. package/dist/getRosenData/cardano/CardanoOgmiosRosenExtractor.js +97 -0
  38. package/dist/getRosenData/cardano/CardanoRosenExtractor.d.ts.map +1 -0
  39. package/dist/getRosenData/cardano/CardanoRosenExtractor.js +88 -0
  40. package/dist/getRosenData/cardano/types.d.ts.map +1 -0
  41. package/dist/getRosenData/cardano/types.js +2 -0
  42. package/dist/getRosenData/cardano/utils.d.ts.map +1 -0
  43. package/dist/getRosenData/cardano/utils.js +32 -0
  44. package/dist/{lib/getRosenData → getRosenData}/const.d.ts +1 -1
  45. package/dist/getRosenData/const.d.ts.map +1 -0
  46. package/dist/getRosenData/const.js +21 -0
  47. package/dist/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +1 -0
  48. package/dist/getRosenData/doge/DogeEsploraRosenExtractor.js +104 -0
  49. package/dist/getRosenData/doge/DogeRosenExtractor.d.ts.map +1 -0
  50. package/dist/getRosenData/doge/DogeRosenExtractor.js +112 -0
  51. package/dist/getRosenData/doge/DogeRpcRosenExtractor.d.ts.map +1 -0
  52. package/dist/getRosenData/doge/DogeRpcRosenExtractor.js +105 -0
  53. package/dist/getRosenData/doge/types.d.ts.map +1 -0
  54. package/dist/getRosenData/doge/types.js +2 -0
  55. package/dist/getRosenData/doge/utils.d.ts.map +1 -0
  56. package/dist/getRosenData/doge/utils.js +58 -0
  57. package/dist/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts.map +1 -0
  58. package/dist/getRosenData/ergo/ErgoNodeRosenExtractor.js +105 -0
  59. package/dist/getRosenData/ergo/ErgoRosenExtractor.d.ts.map +1 -0
  60. package/dist/getRosenData/ergo/ErgoRosenExtractor.js +33 -0
  61. package/dist/getRosenData/ergo/types.d.ts.map +1 -0
  62. package/dist/getRosenData/ergo/types.js +2 -0
  63. package/dist/getRosenData/evm/EvmEthersRosenExtractor.d.ts.map +1 -0
  64. package/dist/getRosenData/evm/EvmEthersRosenExtractor.js +54 -0
  65. package/dist/getRosenData/evm/EvmRosenExtractor.d.ts.map +1 -0
  66. package/dist/getRosenData/evm/EvmRosenExtractor.js +31 -0
  67. package/dist/getRosenData/evm/EvmRpcRosenExtractor.d.ts.map +1 -0
  68. package/dist/getRosenData/evm/EvmRpcRosenExtractor.js +123 -0
  69. package/dist/getRosenData/evm/utils.d.ts.map +1 -0
  70. package/dist/getRosenData/evm/utils.js +9 -0
  71. package/dist/{lib/index.d.ts → index.d.ts} +3 -3
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +25 -0
  74. package/dist/types.d.ts.map +1 -0
  75. package/dist/types.js +2 -0
  76. package/dist/utils.d.ts.map +1 -0
  77. package/dist/utils.js +31 -0
  78. package/package.json +11 -16
  79. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts.map +0 -1
  80. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.js +0 -32
  81. package/dist/lib/getRosenData/abstract/types.d.ts.map +0 -1
  82. package/dist/lib/getRosenData/abstract/types.js +0 -2
  83. package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts.map +0 -1
  84. package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.js +0 -105
  85. package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts.map +0 -1
  86. package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.js +0 -113
  87. package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts.map +0 -1
  88. package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.js +0 -106
  89. package/dist/lib/getRosenData/bitcoin/types.d.ts.map +0 -1
  90. package/dist/lib/getRosenData/bitcoin/types.js +0 -2
  91. package/dist/lib/getRosenData/bitcoin/utils.d.ts.map +0 -1
  92. package/dist/lib/getRosenData/bitcoin/utils.js +0 -17
  93. package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts.map +0 -1
  94. package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.js +0 -94
  95. package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts.map +0 -1
  96. package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.js +0 -92
  97. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts.map +0 -1
  98. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.js +0 -95
  99. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts.map +0 -1
  100. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.js +0 -97
  101. package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts.map +0 -1
  102. package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.js +0 -88
  103. package/dist/lib/getRosenData/cardano/types.d.ts.map +0 -1
  104. package/dist/lib/getRosenData/cardano/types.js +0 -2
  105. package/dist/lib/getRosenData/cardano/utils.d.ts.map +0 -1
  106. package/dist/lib/getRosenData/cardano/utils.js +0 -32
  107. package/dist/lib/getRosenData/const.d.ts.map +0 -1
  108. package/dist/lib/getRosenData/const.js +0 -21
  109. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +0 -1
  110. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.js +0 -104
  111. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts.map +0 -1
  112. package/dist/lib/getRosenData/doge/DogeRosenExtractor.js +0 -112
  113. package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.d.ts.map +0 -1
  114. package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.js +0 -105
  115. package/dist/lib/getRosenData/doge/types.js +0 -2
  116. package/dist/lib/getRosenData/doge/utils.d.ts.map +0 -1
  117. package/dist/lib/getRosenData/doge/utils.js +0 -58
  118. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts.map +0 -1
  119. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.js +0 -105
  120. package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.d.ts.map +0 -1
  121. package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.js +0 -33
  122. package/dist/lib/getRosenData/ergo/types.d.ts.map +0 -1
  123. package/dist/lib/getRosenData/ergo/types.js +0 -2
  124. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts.map +0 -1
  125. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.js +0 -54
  126. package/dist/lib/getRosenData/evm/EvmRosenExtractor.d.ts.map +0 -1
  127. package/dist/lib/getRosenData/evm/EvmRosenExtractor.js +0 -31
  128. package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.d.ts.map +0 -1
  129. package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.js +0 -123
  130. package/dist/lib/getRosenData/evm/utils.d.ts.map +0 -1
  131. package/dist/lib/getRosenData/evm/utils.js +0 -9
  132. package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts.map +0 -1
  133. package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.js +0 -113
  134. package/dist/lib/getRosenData/runes/RunesRosenExtractor.d.ts.map +0 -1
  135. package/dist/lib/getRosenData/runes/RunesRosenExtractor.js +0 -120
  136. package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts.map +0 -1
  137. package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.js +0 -113
  138. package/dist/lib/getRosenData/runes/constants.d.ts.map +0 -1
  139. package/dist/lib/getRosenData/runes/constants.js +0 -2
  140. package/dist/lib/getRosenData/runes/types.d.ts.map +0 -1
  141. package/dist/lib/getRosenData/runes/types.js +0 -2
  142. package/dist/lib/getRosenData/runes/utils.d.ts.map +0 -1
  143. package/dist/lib/getRosenData/runes/utils.js +0 -9
  144. package/dist/lib/index.d.ts.map +0 -1
  145. package/dist/lib/index.js +0 -25
  146. package/dist/lib/types.d.ts.map +0 -1
  147. package/dist/lib/types.js +0 -2
  148. package/dist/lib/utils.d.ts.map +0 -1
  149. package/dist/lib/utils.js +0 -31
  150. package/dist/tsconfig.tsbuildinfo +0 -1
  151. /package/dist/{lib/getRosenData → getRosenData}/abstract/AbstractRosenDataExtractor.d.ts +0 -0
  152. /package/dist/{lib/getRosenData → getRosenData}/abstract/types.d.ts +0 -0
  153. /package/dist/{lib/getRosenData → getRosenData}/bitcoin/BitcoinEsploraRosenExtractor.d.ts +0 -0
  154. /package/dist/{lib/getRosenData → getRosenData}/bitcoin/BitcoinRosenExtractor.d.ts +0 -0
  155. /package/dist/{lib/getRosenData → getRosenData}/bitcoin/BitcoinRpcRosenExtractor.d.ts +0 -0
  156. /package/dist/{lib/getRosenData → getRosenData}/bitcoin/types.d.ts +0 -0
  157. /package/dist/{lib/getRosenData → getRosenData}/bitcoin/utils.d.ts +0 -0
  158. /package/dist/{lib/getRosenData/runes → getRosenData/bitcoin-runes}/constants.d.ts +0 -0
  159. /package/dist/{lib/getRosenData/runes → getRosenData/bitcoin-runes}/types.d.ts +0 -0
  160. /package/dist/{lib/getRosenData/runes → getRosenData/bitcoin-runes}/utils.d.ts +0 -0
  161. /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoBlockFrostRosenExtractor.d.ts +0 -0
  162. /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoGraphQLRosenExtractor.d.ts +0 -0
  163. /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoKoiosRosenExtractor.d.ts +0 -0
  164. /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoOgmiosRosenExtractor.d.ts +0 -0
  165. /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoRosenExtractor.d.ts +0 -0
  166. /package/dist/{lib/getRosenData → getRosenData}/cardano/types.d.ts +0 -0
  167. /package/dist/{lib/getRosenData → getRosenData}/cardano/utils.d.ts +0 -0
  168. /package/dist/{lib/getRosenData → getRosenData}/doge/DogeEsploraRosenExtractor.d.ts +0 -0
  169. /package/dist/{lib/getRosenData → getRosenData}/doge/DogeRosenExtractor.d.ts +0 -0
  170. /package/dist/{lib/getRosenData → getRosenData}/doge/DogeRpcRosenExtractor.d.ts +0 -0
  171. /package/dist/{lib/getRosenData → getRosenData}/doge/types.d.ts +0 -0
  172. /package/dist/{lib/getRosenData → getRosenData}/doge/utils.d.ts +0 -0
  173. /package/dist/{lib/getRosenData → getRosenData}/ergo/ErgoNodeRosenExtractor.d.ts +0 -0
  174. /package/dist/{lib/getRosenData → getRosenData}/ergo/ErgoRosenExtractor.d.ts +0 -0
  175. /package/dist/{lib/getRosenData → getRosenData}/ergo/types.d.ts +0 -0
  176. /package/dist/{lib/getRosenData → getRosenData}/evm/EvmEthersRosenExtractor.d.ts +0 -0
  177. /package/dist/{lib/getRosenData → getRosenData}/evm/EvmRosenExtractor.d.ts +0 -0
  178. /package/dist/{lib/getRosenData → getRosenData}/evm/EvmRpcRosenExtractor.d.ts +0 -0
  179. /package/dist/{lib/getRosenData → getRosenData}/evm/utils.d.ts +0 -0
  180. /package/dist/{lib/types.d.ts → types.d.ts} +0 -0
  181. /package/dist/{lib/utils.d.ts → utils.d.ts} +0 -0
@@ -1,105 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { BITCOIN_CHAIN, BITCOIN_NATIVE_TOKEN } from '../const';
3
- import { address } from 'bitcoinjs-lib';
4
- import { parseOpReturn } from './utils';
5
- export class BitcoinEsploraRosenExtractor extends AbstractRosenDataExtractor {
6
- chain = BITCOIN_CHAIN;
7
- lockScriptPubKey;
8
- constructor(lockAddress, tokens, logger) {
9
- super(lockAddress, tokens, logger);
10
- this.lockScriptPubKey = address.toOutputScript(lockAddress).toString('hex');
11
- }
12
- /**
13
- * extracts RosenData from given lock transaction in Esplora format
14
- * @param transaction the lock transaction in Esplora format
15
- */
16
- extractRawData = (transaction) => {
17
- const baseError = `No rosen data found for tx [${transaction.txid}]`;
18
- try {
19
- const outputs = transaction.vout;
20
- if (outputs.length < 2) {
21
- this.logger.debug(baseError + `: Insufficient number of boxes`);
22
- return undefined;
23
- }
24
- let validData = false; // an OP_RETURN box with valid data is found
25
- let validLock = false; // a lock box is found with available asset transformation
26
- // parse rosen data from OP_RETURN box
27
- let opReturnData;
28
- for (let i = 0; i < outputs.length; i++) {
29
- const output = outputs[i];
30
- if (output.scriptpubkey.slice(0, 2) !== '6a')
31
- continue; // not an OP_RETURN utxo
32
- try {
33
- opReturnData = parseOpReturn(output.scriptpubkey);
34
- validData = true;
35
- break;
36
- }
37
- catch (e) {
38
- this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.txid}.${i}]: ${e}`);
39
- }
40
- }
41
- if (!validData || !opReturnData) {
42
- this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
43
- return undefined;
44
- }
45
- // find target chain token id
46
- let assetTransformation;
47
- for (let i = 0; i < outputs.length; i++) {
48
- const output = outputs[i];
49
- if (output.scriptpubkey !== this.lockScriptPubKey)
50
- continue; // utxo address is not lock address
51
- assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
52
- if (assetTransformation) {
53
- validLock = true;
54
- break;
55
- }
56
- }
57
- if (!validLock || !assetTransformation) {
58
- this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
59
- return undefined;
60
- }
61
- const fromAddress = `box:${transaction.vin[0].txid}.${transaction.vin[0].vout}`;
62
- return {
63
- toChain: opReturnData.toChain,
64
- toAddress: opReturnData.toAddress,
65
- bridgeFee: opReturnData.bridgeFee,
66
- networkFee: opReturnData.networkFee,
67
- fromAddress: fromAddress,
68
- sourceChainTokenId: assetTransformation.from,
69
- amount: assetTransformation.amount,
70
- targetChainTokenId: assetTransformation.to,
71
- sourceTxId: transaction.txid,
72
- };
73
- }
74
- catch (e) {
75
- this.logger.debug(`An error occurred while getting Bitcoin rosen data from Esplora: ${e}`);
76
- if (e instanceof Error && e.stack) {
77
- this.logger.debug(e.stack);
78
- }
79
- }
80
- return undefined;
81
- };
82
- /**
83
- * extracts and builds token transformation from UTXO and tokenMap
84
- * @param box transaction output
85
- * @param toChain event target chain
86
- */
87
- getAssetTransformation = (box, toChain) => {
88
- // try to build transformation using locked BTC
89
- const wrappedBtc = this.tokens.search(BITCOIN_CHAIN, {
90
- tokenId: BITCOIN_NATIVE_TOKEN,
91
- });
92
- if (wrappedBtc.length > 0 && Object.hasOwn(wrappedBtc[0], toChain)) {
93
- const satoshiAmount = box.value;
94
- return {
95
- from: BITCOIN_NATIVE_TOKEN,
96
- to: this.tokens.getID(wrappedBtc[0], toChain),
97
- amount: satoshiAmount.toString(),
98
- };
99
- }
100
- else {
101
- return undefined;
102
- }
103
- };
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvYml0Y29pbi9CaXRjb2luRXNwbG9yYVJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVEvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLDBCQUFxRDtJQUM1RixLQUFLLEdBQUcsYUFBYSxDQUFDO0lBQ3JCLGdCQUFnQixDQUFTO0lBRW5DLFlBQVksV0FBbUIsRUFBRSxNQUFnQixFQUFFLE1BQXVCO1FBQ3hFLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxHQUFHLENBQ2YsV0FBc0MsRUFDZixFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDakMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGdDQUFnQyxDQUFDLENBQUM7Z0JBQ2hFLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lB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LElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QjtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHNCQUFzQixHQUFHLENBQ3ZCLEdBQW9CLEVBQ3BCLE9BQWUsRUFDa0IsRUFBRTtRQUNuQywrQ0FBK0M7UUFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ25ELE9BQU8sRUFBRSxvQkFBb0I7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNsRSxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2hDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQzdDLE1BQU0sRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO2FBQ2pDLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCSVRDT0lOX0NIQUlOLCBCSVRDT0lOX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7XG4gIEJpdGNvaW5Fc3Bsb3JhVHJhbnNhY3Rpb24sXG4gIEVzcGxvcmFUeE91dHB1dCxcbiAgT3BSZXR1cm5EYXRhLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBhZGRyZXNzIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBwYXJzZU9wUmV0dXJuIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBCaXRjb2luRXNwbG9yYVJvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8Qml0Y29pbkVzcGxvcmFUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBjaGFpbiA9IEJJVENPSU5fQ0hBSU47XG4gIHByb3RlY3RlZCBsb2NrU2NyaXB0UHViS2V5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobG9ja0FkZHJlc3M6IHN0cmluZywgdG9rZW5zOiBUb2tlbk1hcCwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpO1xuICAgIHRoaXMubG9ja1NjcmlwdFB1YktleSA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQobG9ja0FkZHJlc3MpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIEVzcGxvcmEgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBFc3Bsb3JhIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoXG4gICAgdHJhbnNhY3Rpb246IEJpdGNvaW5Fc3Bsb3JhVHJhbnNhY3Rpb25cbiAgKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udHhpZH1dYDtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRyYW5zYWN0aW9uLnZvdXQ7XG4gICAgICBpZiAob3V0cHV0cy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IEluc3VmZmljaWVudCBudW1iZXIgb2YgYm94ZXNgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgbGV0IHZhbGlkRGF0YSA9IGZhbHNlOyAvLyBhbiBPUF9SRVRVUk4gYm94IHdpdGggdmFsaWQgZGF0YSBpcyBmb3VuZFxuICAgICAgbGV0IHZhbGlkTG9jayA9IGZhbHNlOyAvLyBhIGxvY2sgYm94IGlzIGZvdW5kIHdpdGggYXZhaWxhYmxlIGFzc2V0IHRyYW5zZm9ybWF0aW9uXG5cbiAgICAgIC8vIHBhcnNlIHJvc2VuIGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94XG4gICAgICBsZXQgb3BSZXR1cm5EYXRhOiBPcFJldHVybkRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1tpXTtcbiAgICAgICAgaWYgKG91dHB1dC5zY3JpcHRwdWJrZXkuc2xpY2UoMCwgMikgIT09ICc2YScpIGNvbnRpbnVlOyAvLyBub3QgYW4gT1BfUkVUVVJOIHV0eG9cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG9wUmV0dXJuRGF0YSA9IHBhcnNlT3BSZXR1cm4ob3V0cHV0LnNjcmlwdHB1YmtleSk7XG4gICAgICAgICAgdmFsaWREYXRhID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYEZhaWxlZCB0byBleHRyYWN0IGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94IFske3RyYW5zYWN0aW9uLnR4aWR9LiR7aX1dOiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWREYXRhIHx8ICFvcFJldHVybkRhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gT1BfUkVUVVJOIGJveCB3aXRoIHZhbGlkIGRhdGEgaXMgZm91bmRgXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmQgdGFyZ2V0IGNoYWluIHRva2VuIGlkXG4gICAgICBsZXQgYXNzZXRUcmFuc2Zvcm1hdGlvbjogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdHB1YmtleSAhPT0gdGhpcy5sb2NrU2NyaXB0UHViS2V5KSBjb250aW51ZTsgLy8gdXR4byBhZGRyZXNzIGlzIG5vdCBsb2NrIGFkZHJlc3NcbiAgICAgICAgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgb3BSZXR1cm5EYXRhLnRvQ2hhaW5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICB2YWxpZExvY2sgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXZhbGlkTG9jayB8fCAhYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gZmluZCByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24udmluWzBdLnR4aWR9LiR7dHJhbnNhY3Rpb24udmluWzBdLnZvdXR9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvQ2hhaW46IG9wUmV0dXJuRGF0YS50b0NoYWluLFxuICAgICAgICB0b0FkZHJlc3M6IG9wUmV0dXJuRGF0YS50b0FkZHJlc3MsXG4gICAgICAgIGJyaWRnZUZlZTogb3BSZXR1cm5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgbmV0d29ya0ZlZTogb3BSZXR1cm5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgIGZyb21BZGRyZXNzOiBmcm9tQWRkcmVzcyxcbiAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhpZCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIEJpdGNvaW4gcm9zZW4gZGF0YSBmcm9tIEVzcGxvcmE6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gVVRYTyBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogRXNwbG9yYVR4T3V0cHV0LFxuICAgIHRvQ2hhaW46IHN0cmluZ1xuICApOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEJUQ1xuICAgIGNvbnN0IHdyYXBwZWRCdGMgPSB0aGlzLnRva2Vucy5zZWFyY2goQklUQ09JTl9DSEFJTiwge1xuICAgICAgdG9rZW5JZDogQklUQ09JTl9OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKHdyYXBwZWRCdGMubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHdyYXBwZWRCdGNbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICBjb25zdCBzYXRvc2hpQW1vdW50ID0gYm94LnZhbHVlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogQklUQ09JTl9OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh3cmFwcGVkQnRjWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBzYXRvc2hpQW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitcoinRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/BitcoinRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAa,eAAe,EAAgB,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,qBAAa,qBAAsB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IAC3E,QAAQ,CAAC,KAAK,aAAiB;IAC/B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,cAAc,0BAA2B,MAAM,KAAG,SAAS,GAAG,SAAS,CAqFrE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,eAAe,WACX,MAAM,KACd,mBAAmB,GAAG,SAAS,CAehC;CACH"}
@@ -1,113 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { BITCOIN_CHAIN, BITCOIN_NATIVE_TOKEN } from '../const';
3
- import { address } from 'bitcoinjs-lib';
4
- import { parseOpReturn } from './utils';
5
- import JsonBigInt from '@rosen-bridge/json-bigint';
6
- export class BitcoinRosenExtractor extends AbstractRosenDataExtractor {
7
- chain = BITCOIN_CHAIN;
8
- lockScriptPubKey;
9
- constructor(lockAddress, tokens, logger) {
10
- super(lockAddress, tokens, logger);
11
- this.lockScriptPubKey = address.toOutputScript(lockAddress).toString('hex');
12
- }
13
- /**
14
- * extracts RosenData from given lock transaction in BitcoinTx format
15
- * @param serializedTransaction stringified transaction in BitcoinTx format
16
- */
17
- extractRawData = (serializedTransaction) => {
18
- let transaction;
19
- try {
20
- transaction = JsonBigInt.parse(serializedTransaction);
21
- }
22
- catch (e) {
23
- throw new Error(`Failed to parse transaction json to BitcoinTx format while extracting rosen data: ${e}`);
24
- }
25
- const baseError = `No rosen data found for tx [${transaction.id}]`;
26
- try {
27
- const outputs = transaction.outputs;
28
- if (outputs.length < 2) {
29
- this.logger.debug(baseError + `: Insufficient number of boxes`);
30
- return undefined;
31
- }
32
- let validData = false; // an OP_RETURN box with valid data is found
33
- let validLock = false; // a lock box is found with available asset transformation
34
- // parse rosen data from OP_RETURN box
35
- let opReturnData;
36
- for (let i = 0; i < outputs.length; i++) {
37
- const output = outputs[i];
38
- if (output.scriptPubKey.slice(0, 2) !== '6a')
39
- continue; // not an OP_RETURN utxo
40
- try {
41
- opReturnData = parseOpReturn(output.scriptPubKey);
42
- validData = true;
43
- break;
44
- }
45
- catch (e) {
46
- this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.id}.${i}]: ${e}`);
47
- }
48
- }
49
- if (!validData || !opReturnData) {
50
- this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
51
- return undefined;
52
- }
53
- // find target chain token id
54
- let assetTransformation;
55
- for (let i = 0; i < outputs.length; i++) {
56
- const output = outputs[i];
57
- if (output.scriptPubKey !== this.lockScriptPubKey)
58
- continue; // utxo address is not lock address
59
- assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
60
- if (assetTransformation) {
61
- validLock = true;
62
- break;
63
- }
64
- }
65
- if (!validLock || !assetTransformation) {
66
- this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
67
- return undefined;
68
- }
69
- const fromAddress = `box:${transaction.inputs[0].txId}.${transaction.inputs[0].index}`;
70
- return {
71
- toChain: opReturnData.toChain,
72
- toAddress: opReturnData.toAddress,
73
- bridgeFee: opReturnData.bridgeFee,
74
- networkFee: opReturnData.networkFee,
75
- fromAddress: fromAddress,
76
- sourceChainTokenId: assetTransformation.from,
77
- amount: assetTransformation.amount,
78
- targetChainTokenId: assetTransformation.to,
79
- sourceTxId: transaction.id,
80
- };
81
- }
82
- catch (e) {
83
- this.logger.debug(`An error occurred while getting Bitcoin rosen data: ${e}`);
84
- if (e instanceof Error && e.stack) {
85
- this.logger.debug(e.stack);
86
- }
87
- }
88
- return undefined;
89
- };
90
- /**
91
- * extracts and builds token transformation from UTXO and tokenMap
92
- * @param box transaction output
93
- * @param toChain event target chain
94
- */
95
- getAssetTransformation = (box, toChain) => {
96
- // try to build transformation using locked BTC
97
- const wrappedBtc = this.tokens.search(BITCOIN_CHAIN, {
98
- tokenId: BITCOIN_NATIVE_TOKEN,
99
- });
100
- if (wrappedBtc.length > 0 && Object.hasOwn(wrappedBtc[0], toChain)) {
101
- const satoshiAmount = box.value;
102
- return {
103
- from: BITCOIN_NATIVE_TOKEN,
104
- to: this.tokens.getID(wrappedBtc[0], toChain),
105
- amount: satoshiAmount.toString(),
106
- };
107
- }
108
- else {
109
- return undefined;
110
- }
111
- };
112
- }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0Y29pblJvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9iaXRjb2luL0JpdGNvaW5Sb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hDLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSwwQkFBa0M7SUFDbEUsS0FBSyxHQUFHLGFBQWEsQ0FBQztJQUNyQixnQkFBZ0IsQ0FBUztJQUVuQyxZQUFZLFdBQW1CLEVBQUUsTUFBZ0IsRUFBRSxNQUF1QjtRQUN4RSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLHFCQUE2QixFQUF5QixFQUFFO1FBQ3hFLElBQUksV0FBc0IsQ0FBQztRQUMzQixJQUFJO1lBQ0YsV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN2RDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FDYixxRkFBcUYsQ0FBQyxFQUFFLENBQ3pGLENBQUM7U0FDSDtRQUNELE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsRUFBRSxHQUFHLENB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L2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCSVRDT0lOX0NIQUlOLCBCSVRDT0lOX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEJpdGNvaW5UeCwgQml0Y29pblR4T3V0cHV0LCBPcFJldHVybkRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBhZGRyZXNzIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBwYXJzZU9wUmV0dXJuIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcblxuZXhwb3J0IGNsYXNzIEJpdGNvaW5Sb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPHN0cmluZz4ge1xuICByZWFkb25seSBjaGFpbiA9IEJJVENPSU5fQ0hBSU47XG4gIHByb3RlY3RlZCBsb2NrU2NyaXB0UHViS2V5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobG9ja0FkZHJlc3M6IHN0cmluZywgdG9rZW5zOiBUb2tlbk1hcCwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpO1xuICAgIHRoaXMubG9ja1NjcmlwdFB1YktleSA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQobG9ja0FkZHJlc3MpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIEJpdGNvaW5UeCBmb3JtYXRcbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUcmFuc2FjdGlvbiBzdHJpbmdpZmllZCB0cmFuc2FjdGlvbiBpbiBCaXRjb2luVHggZm9ybWF0XG4gICAqL1xuICBleHRyYWN0UmF3RGF0YSA9IChzZXJpYWxpemVkVHJhbnNhY3Rpb246IHN0cmluZyk6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgbGV0IHRyYW5zYWN0aW9uOiBCaXRjb2luVHg7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uID0gSnNvbkJpZ0ludC5wYXJzZShzZXJpYWxpemVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBwYXJzZSB0cmFuc2FjdGlvbiBqc29uIHRvIEJpdGNvaW5UeCBmb3JtYXQgd2hpbGUgZXh0cmFjdGluZyByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24ub3V0cHV0cztcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBib3hlc2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBsZXQgdmFsaWREYXRhID0gZmFsc2U7IC8vIGFuIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kXG4gICAgICBsZXQgdmFsaWRMb2NrID0gZmFsc2U7IC8vIGEgbG9jayBib3ggaXMgZm91bmQgd2l0aCBhdmFpbGFibGUgYXNzZXQgdHJhbnNmb3JtYXRpb25cblxuICAgICAgLy8gcGFyc2Ugcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3hcbiAgICAgIGxldCBvcFJldHVybkRhdGE6IE9wUmV0dXJuRGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdFB1YktleS5zbGljZSgwLCAyKSAhPT0gJzZhJykgY29udGludWU7IC8vIG5vdCBhbiBPUF9SRVRVUk4gdXR4b1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgb3BSZXR1cm5EYXRhID0gcGFyc2VPcFJldHVybihvdXRwdXQuc2NyaXB0UHViS2V5KTtcbiAgICAgICAgICB2YWxpZERhdGEgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIGV4dHJhY3QgZGF0YSBmcm9tIE9QX1JFVFVSTiBib3ggWyR7dHJhbnNhY3Rpb24uaWR9LiR7aX1dOiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWREYXRhIHx8ICFvcFJldHVybkRhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gT1BfUkVUVVJOIGJveCB3aXRoIHZhbGlkIGRhdGEgaXMgZm91bmRgXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmQgdGFyZ2V0IGNoYWluIHRva2VuIGlkXG4gICAgICBsZXQgYXNzZXRUcmFuc2Zvcm1hdGlvbjogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdFB1YktleSAhPT0gdGhpcy5sb2NrU2NyaXB0UHViS2V5KSBjb250aW51ZTsgLy8gdXR4byBhZGRyZXNzIGlzIG5vdCBsb2NrIGFkZHJlc3NcbiAgICAgICAgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgb3BSZXR1cm5EYXRhLnRvQ2hhaW5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICB2YWxpZExvY2sgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXZhbGlkTG9jayB8fCAhYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gZmluZCByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLnR4SWR9LiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLmluZGV4fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiBvcFJldHVybkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiBvcFJldHVybkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IG9wUmV0dXJuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IG9wUmV0dXJuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgQml0Y29pbiByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEJpdGNvaW5UeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBCVENcbiAgICBjb25zdCB3cmFwcGVkQnRjID0gdGhpcy50b2tlbnMuc2VhcmNoKEJJVENPSU5fQ0hBSU4sIHtcbiAgICAgIHRva2VuSWQ6IEJJVENPSU5fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmICh3cmFwcGVkQnRjLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih3cmFwcGVkQnRjWzBdLCB0b0NoYWluKSkge1xuICAgICAgY29uc3Qgc2F0b3NoaUFtb3VudCA9IGJveC52YWx1ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEJJVENPSU5fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQod3JhcHBlZEJ0Y1swXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogc2F0b3NoaUFtb3VudC50b1N0cmluZygpLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitcoinRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,qBAAa,wBAAyB,SAAQ,0BAA0B,CAAC,qBAAqB,CAAC;IAC7F,QAAQ,CAAC,KAAK,aAAiB;IAC/B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,cAAc,gBACC,qBAAqB,KACjC,SAAS,GAAG,SAAS,CA6EtB;IAEF;;;;OAIG;IACH,sBAAsB,QACf,kBAAkB,WACd,MAAM,KACd,mBAAmB,GAAG,SAAS,CAgBhC;CACH"}
@@ -1,106 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { BITCOIN_CHAIN, BITCOIN_NATIVE_TOKEN } from '../const';
3
- import { address } from 'bitcoinjs-lib';
4
- import { parseOpReturn } from './utils';
5
- export class BitcoinRpcRosenExtractor extends AbstractRosenDataExtractor {
6
- chain = BITCOIN_CHAIN;
7
- lockScriptPubKey;
8
- constructor(lockAddress, tokens, logger) {
9
- super(lockAddress, tokens, logger);
10
- this.lockScriptPubKey = address.toOutputScript(lockAddress).toString('hex');
11
- }
12
- /**
13
- * extracts RosenData from given lock transaction in Rpc format
14
- * @param transaction the lock transaction in Rpc format
15
- */
16
- extractRawData = (transaction) => {
17
- const baseError = `No rosen data found for tx [${transaction.txid}]`;
18
- try {
19
- const outputs = transaction.vout;
20
- if (outputs.length < 2) {
21
- this.logger.debug(baseError + `: Insufficient number of boxes`);
22
- return undefined;
23
- }
24
- let validData = false; // an OP_RETURN box with valid data is found
25
- let validLock = false; // a lock box is found with available asset transformation
26
- // parse rosen data from OP_RETURN box
27
- let opReturnData;
28
- for (let i = 0; i < outputs.length; i++) {
29
- const output = outputs[i];
30
- if (output.scriptPubKey.hex.slice(0, 2) !== '6a')
31
- continue; // not an OP_RETURN utxo
32
- try {
33
- opReturnData = parseOpReturn(output.scriptPubKey.hex);
34
- validData = true;
35
- break;
36
- }
37
- catch (e) {
38
- this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.txid}.${i}]: ${e}`);
39
- }
40
- }
41
- if (!validData || !opReturnData) {
42
- this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
43
- return undefined;
44
- }
45
- // find target chain token id
46
- let assetTransformation;
47
- for (let i = 0; i < outputs.length; i++) {
48
- const output = outputs[i];
49
- if (output.scriptPubKey.hex !== this.lockScriptPubKey)
50
- continue; // utxo address is not lock address
51
- assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
52
- if (assetTransformation) {
53
- validLock = true;
54
- break;
55
- }
56
- }
57
- if (!validLock || !assetTransformation) {
58
- this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
59
- return undefined;
60
- }
61
- const fromAddress = `box:${transaction.vin[0].txid}.${transaction.vin[0].vout}`;
62
- return {
63
- toChain: opReturnData.toChain,
64
- toAddress: opReturnData.toAddress,
65
- bridgeFee: opReturnData.bridgeFee,
66
- networkFee: opReturnData.networkFee,
67
- fromAddress: fromAddress,
68
- sourceChainTokenId: assetTransformation.from,
69
- amount: assetTransformation.amount,
70
- targetChainTokenId: assetTransformation.to,
71
- sourceTxId: transaction.txid,
72
- };
73
- }
74
- catch (e) {
75
- this.logger.debug(`An error occurred while getting Bitcoin rosen data from Rpc: ${e}`);
76
- if (e instanceof Error && e.stack) {
77
- this.logger.debug(e.stack);
78
- }
79
- }
80
- return undefined;
81
- };
82
- /**
83
- * extracts and builds token transformation from UTXO and tokenMap
84
- * @param box transaction output
85
- * @param toChain event target chain
86
- */
87
- getAssetTransformation = (box, toChain) => {
88
- // try to build transformation using locked BTC
89
- const wrappedBtc = this.tokens.search(BITCOIN_CHAIN, {
90
- tokenId: BITCOIN_NATIVE_TOKEN,
91
- });
92
- if (wrappedBtc.length > 0 && Object.hasOwn(wrappedBtc[0], toChain)) {
93
- const parts = box.value.toString().split('.');
94
- const part1 = ((parts[1] ?? '') + '0'.repeat(8)).substring(0, 8);
95
- return {
96
- from: BITCOIN_NATIVE_TOKEN,
97
- to: this.tokens.getID(wrappedBtc[0], toChain),
98
- amount: (parts[0] === '0' ? '' : parts[0]) + part1,
99
- };
100
- }
101
- else {
102
- return undefined;
103
- }
104
- };
105
- }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0Y29pblJwY1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9iaXRjb2luL0JpdGNvaW5ScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXhDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSwwQkFBaUQ7SUFDcEYsS0FBSyxHQUFHLGFBQWEsQ0FBQztJQUNyQixnQkFBZ0IsQ0FBUztJQUVuQyxZQUFZLFdBQW1CLEVBQUUsTUFBZ0IsRUFBRSxNQUF1QjtRQUN4RSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUNmLFdBQWtDLEVBQ1gsRUFBRTtRQUN6QixNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3JFLElBQUk7WUFDRixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLDRDQUE0QztZQUNuRSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQywwREFBMEQ7WUFFakYsc0NBQXNDO1lBQ3RDLElBQUksWUFBc0MsQ0FBQztZQUMzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSTtvQkFBRSxTQUFTLENBQUMsd0JBQXdCO2dCQUVwRixJQUFJO29CQUNGLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEQsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDakIsTUFBTTtpQkFDUDtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiw4Q0FBOEMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzdFLENBQUM7aUJBQ0g7YUFDRjtZQUNELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLFNBQVMsR0FBRyw2Q0FBNkMsQ0FDMUQsQ0FBQztnQkFDRixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELDZCQUE2QjtZQUM3QixJQUFJLG1CQUFvRCxDQUFDO1lBQ3pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN2QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGdCQUFnQjtvQkFBRSxTQUFTLENBQUMsbUNBQW1DO2dCQUNwRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQy9DLE1BQU0sRUFDTixZQUFZLENBQUMsT0FBTyxDQUNyQixDQUFDO2dCQUNGLElBQUksbUJBQW1CLEVBQUU7b0JBQ3ZCLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ2pCLE1BQU07aUJBQ1A7YUFDRjtZQUNELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsU0FBUyxHQUFHLDZDQUE2QyxDQUMxRCxDQUFDO2dCQUNGLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO2dCQUM3QixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7Z0JBQ2pDLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUztnQkFDakMsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVO2dCQUNuQyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtnQkFDNUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE1BQU07Z0JBQ2xDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLEVBQUU7Z0JBQzFDLFVBQVUsRUFBRSxXQUFXLENBQUMsSUFBSTthQUM3QixDQUFDO1NBQ0g7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGdFQUFnRSxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUI7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxzQkFBc0IsR0FBRyxDQUN2QixHQUF1QixFQUN2QixPQUFlLEVBQ2tCLEVBQUU7UUFDbkMsK0NBQStDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNuRCxPQUFPLEVBQUUsb0JBQW9CO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDbEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRSxPQUFPO2dCQUNMLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUM3QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUs7YUFDbkQsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IEJJVENPSU5fQ0hBSU4sIEJJVENPSU5fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHtcbiAgQml0Y29pblJwY1RyYW5zYWN0aW9uLFxuICBCaXRjb2luUnBjVHhPdXRwdXQsXG4gIE9wUmV0dXJuRGF0YSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgYWRkcmVzcyB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgcGFyc2VPcFJldHVybiB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQml0Y29pblJwY1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8Qml0Y29pblJwY1RyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gQklUQ09JTl9DSEFJTjtcbiAgcHJvdGVjdGVkIGxvY2tTY3JpcHRQdWJLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrU2NyaXB0UHViS2V5ID0gYWRkcmVzcy50b091dHB1dFNjcmlwdChsb2NrQWRkcmVzcykudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gUnBjIGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gUnBjIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoXG4gICAgdHJhbnNhY3Rpb246IEJpdGNvaW5ScGNUcmFuc2FjdGlvblxuICApOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi50eGlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24udm91dDtcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBib3hlc2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBsZXQgdmFsaWREYXRhID0gZmFsc2U7IC8vIGFuIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kXG4gICAgICBsZXQgdmFsaWRMb2NrID0gZmFsc2U7IC8vIGEgbG9jayBib3ggaXMgZm91bmQgd2l0aCBhdmFpbGFibGUgYXNzZXQgdHJhbnNmb3JtYXRpb25cblxuICAgICAgLy8gcGFyc2Ugcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3hcbiAgICAgIGxldCBvcFJldHVybkRhdGE6IE9wUmV0dXJuRGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdFB1YktleS5oZXguc2xpY2UoMCwgMikgIT09ICc2YScpIGNvbnRpbnVlOyAvLyBub3QgYW4gT1BfUkVUVVJOIHV0eG9cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG9wUmV0dXJuRGF0YSA9IHBhcnNlT3BSZXR1cm4ob3V0cHV0LnNjcmlwdFB1YktleS5oZXgpO1xuICAgICAgICAgIHZhbGlkRGF0YSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gT1BfUkVUVVJOIGJveCBbJHt0cmFuc2FjdGlvbi50eGlkfS4ke2l9XTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXZhbGlkRGF0YSB8fCAhb3BSZXR1cm5EYXRhKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBmaW5kIHRhcmdldCBjaGFpbiB0b2tlbiBpZFxuICAgICAgbGV0IGFzc2V0VHJhbnNmb3JtYXRpb246IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1tpXTtcbiAgICAgICAgaWYgKG91dHB1dC5zY3JpcHRQdWJLZXkuaGV4ICE9PSB0aGlzLmxvY2tTY3JpcHRQdWJLZXkpIGNvbnRpbnVlOyAvLyB1dHhvIGFkZHJlc3MgaXMgbm90IGxvY2sgYWRkcmVzc1xuICAgICAgICBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICBvcFJldHVybkRhdGEudG9DaGFpblxuICAgICAgICApO1xuICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgIHZhbGlkTG9jayA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWRMb2NrIHx8ICFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmcm9tQWRkcmVzcyA9IGBib3g6JHt0cmFuc2FjdGlvbi52aW5bMF0udHhpZH0uJHt0cmFuc2FjdGlvbi52aW5bMF0udm91dH1gO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG9DaGFpbjogb3BSZXR1cm5EYXRhLnRvQ2hhaW4sXG4gICAgICAgIHRvQWRkcmVzczogb3BSZXR1cm5EYXRhLnRvQWRkcmVzcyxcbiAgICAgICAgYnJpZGdlRmVlOiBvcFJldHVybkRhdGEuYnJpZGdlRmVlLFxuICAgICAgICBuZXR3b3JrRmVlOiBvcFJldHVybkRhdGEubmV0d29ya0ZlZSxcbiAgICAgICAgZnJvbUFkZHJlc3M6IGZyb21BZGRyZXNzLFxuICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uZnJvbSxcbiAgICAgICAgYW1vdW50OiBhc3NldFRyYW5zZm9ybWF0aW9uLmFtb3VudCxcbiAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICBzb3VyY2VUeElkOiB0cmFuc2FjdGlvbi50eGlkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgQml0Y29pbiByb3NlbiBkYXRhIGZyb20gUnBjOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEJpdGNvaW5ScGNUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBCVENcbiAgICBjb25zdCB3cmFwcGVkQnRjID0gdGhpcy50b2tlbnMuc2VhcmNoKEJJVENPSU5fQ0hBSU4sIHtcbiAgICAgIHRva2VuSWQ6IEJJVENPSU5fTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmICh3cmFwcGVkQnRjLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih3cmFwcGVkQnRjWzBdLCB0b0NoYWluKSkge1xuICAgICAgY29uc3QgcGFydHMgPSBib3gudmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgICAgY29uc3QgcGFydDEgPSAoKHBhcnRzWzFdID8/ICcnKSArICcwJy5yZXBlYXQoOCkpLnN1YnN0cmluZygwLCA4KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEJJVENPSU5fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQod3JhcHBlZEJ0Y1swXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogKHBhcnRzWzBdID09PSAnMCcgPyAnJyA6IHBhcnRzWzBdKSArIHBhcnQxLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2JpdGNvaW4vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3BSZXR1cm5EYXRhIHtcbiAgdG9DaGFpbjogc3RyaW5nO1xuICB0b0FkZHJlc3M6IHN0cmluZztcbiAgYnJpZGdlRmVlOiBzdHJpbmc7XG4gIG5ldHdvcmtGZWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFc3Bsb3JhVHhJbnB1dCB7XG4gIHR4aWQ6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xuICBwcmV2b3V0OiB7XG4gICAgc2NyaXB0cHVia2V5OiBzdHJpbmc7XG4gICAgc2NyaXB0cHVia2V5X2FzbTogc3RyaW5nO1xuICAgIHNjcmlwdHB1YmtleV90eXBlOiBzdHJpbmc7XG4gICAgc2NyaXB0cHVia2V5X2FkZHJlc3M6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9O1xuICBzY3JpcHRzaWc6IHN0cmluZztcbiAgc2NyaXB0c2lnX2FzbTogc3RyaW5nO1xuICBpc19jb2luYmFzZTogZmFsc2U7XG4gIHNlcXVlbmNlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNwbG9yYVR4T3V0cHV0IHtcbiAgc2NyaXB0cHVia2V5OiBzdHJpbmc7XG4gIHNjcmlwdHB1YmtleV9hc206IHN0cmluZztcbiAgc2NyaXB0cHVia2V5X3R5cGU6IHN0cmluZztcbiAgc2NyaXB0cHVia2V5X2FkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaXRjb2luRXNwbG9yYVRyYW5zYWN0aW9uIHtcbiAgdHhpZDogc3RyaW5nO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGxvY2t0aW1lOiBudW1iZXI7XG4gIHZpbjogQXJyYXk8RXNwbG9yYVR4SW5wdXQ+O1xuICB2b3V0OiBBcnJheTxFc3Bsb3JhVHhPdXRwdXQ+O1xuICBzaXplOiBudW1iZXI7XG4gIHdlaWdodDogbnVtYmVyO1xuICBmZWU6IG51bWJlcjtcbiAgc3RhdHVzOiB7XG4gICAgY29uZmlybWVkOiB0cnVlO1xuICAgIGJsb2NrX2hlaWdodDogbnVtYmVyO1xuICAgIGJsb2NrX2hhc2g6IHN0cmluZztcbiAgICBibG9ja190aW1lOiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQml0Y29pblR4SW5wdXQge1xuICB0eElkOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGNvaW5UeE91dHB1dCB7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGNvaW5UeCB7XG4gIGlkOiBzdHJpbmc7XG4gIGlucHV0czogQml0Y29pblR4SW5wdXRbXTtcbiAgb3V0cHV0czogQml0Y29pblR4T3V0cHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQml0Y29pblJwY1R4SW5wdXQge1xuICB0eGlkOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbiAgc2NyaXB0U2lnOiB7XG4gICAgYXNtOiBzdHJpbmc7XG4gICAgaGV4OiBzdHJpbmc7XG4gIH07XG4gIHR4aW53aXRuZXNzOiBBcnJheTxzdHJpbmc+O1xuICBzZXF1ZW5jZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGNvaW5ScGNUeE91dHB1dCB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIG46IG51bWJlcjtcbiAgc2NyaXB0UHViS2V5OiB7XG4gICAgYXNtOiBzdHJpbmc7XG4gICAgaGV4OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQml0Y29pblJwY1RyYW5zYWN0aW9uIHtcbiAgdHhpZDogc3RyaW5nO1xuICBoYXNoOiBzdHJpbmc7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICB2c2l6ZTogbnVtYmVyO1xuICB3ZWlnaHQ6IG51bWJlcjtcbiAgbG9ja3RpbWU6IG51bWJlcjtcbiAgdmluOiBBcnJheTxCaXRjb2luUnBjVHhJbnB1dD47XG4gIHZvdXQ6IEFycmF5PEJpdGNvaW5ScGNUeE91dHB1dD47XG4gIGhleDogc3RyaW5nO1xufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,aAAa,oBACP,MAAM,KACtB,uBAiBF,CAAC"}
@@ -1,17 +0,0 @@
1
- import { parseRosenData } from '../../utils';
2
- /**
3
- * extracts rosen data from OP_RETURN box script pub key
4
- * @param scriptPubKeyHex
5
- */
6
- export const parseOpReturn = (scriptPubKeyHex) => {
7
- // check OP_RETURN opcode
8
- if (scriptPubKeyHex.slice(0, 2) !== '6a')
9
- throw Error(`script does not start with OP_RETURN opcode (6a)`);
10
- // check script length (should not use more than one OP_RETURN)
11
- const dataLength = scriptPubKeyHex.slice(2, 4);
12
- if (parseInt(dataLength, 16) + 2 !== scriptPubKeyHex.length / 2)
13
- throw Error(`script length is unexpected [${parseInt(dataLength, 16) + 3} !== ${scriptPubKeyHex.length / 2}]`);
14
- const remainingData = scriptPubKeyHex.slice(4);
15
- return parseRosenData(remainingData);
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2JpdGNvaW4vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsZUFBdUIsRUFDRSxFQUFFO0lBQzNCLHlCQUF5QjtJQUN6QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUk7UUFDdEMsTUFBTSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUVsRSwrREFBK0Q7SUFDL0QsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDN0QsTUFBTSxLQUFLLENBQ1QsZ0NBQWdDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUMxRCxlQUFlLENBQUMsTUFBTSxHQUFHLENBQzNCLEdBQUcsQ0FDSixDQUFDO0lBRUosTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvQyxPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVJvc2VuRGF0YSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vKipcbiAqIGV4dHJhY3RzIHJvc2VuIGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94IHNjcmlwdCBwdWIga2V5XG4gKiBAcGFyYW0gc2NyaXB0UHViS2V5SGV4XG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZU9wUmV0dXJuID0gKFxuICBzY3JpcHRQdWJLZXlIZXg6IHN0cmluZ1xuKTogTWluaW1hbE9uQ2hhaW5Sb3NlbkRhdGEgPT4ge1xuICAvLyBjaGVjayBPUF9SRVRVUk4gb3Bjb2RlXG4gIGlmIChzY3JpcHRQdWJLZXlIZXguc2xpY2UoMCwgMikgIT09ICc2YScpXG4gICAgdGhyb3cgRXJyb3IoYHNjcmlwdCBkb2VzIG5vdCBzdGFydCB3aXRoIE9QX1JFVFVSTiBvcGNvZGUgKDZhKWApO1xuXG4gIC8vIGNoZWNrIHNjcmlwdCBsZW5ndGggKHNob3VsZCBub3QgdXNlIG1vcmUgdGhhbiBvbmUgT1BfUkVUVVJOKVxuICBjb25zdCBkYXRhTGVuZ3RoID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDQpO1xuICBpZiAocGFyc2VJbnQoZGF0YUxlbmd0aCwgMTYpICsgMiAhPT0gc2NyaXB0UHViS2V5SGV4Lmxlbmd0aCAvIDIpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgc2NyaXB0IGxlbmd0aCBpcyB1bmV4cGVjdGVkIFske3BhcnNlSW50KGRhdGFMZW5ndGgsIDE2KSArIDN9ICE9PSAke1xuICAgICAgICBzY3JpcHRQdWJLZXlIZXgubGVuZ3RoIC8gMlxuICAgICAgfV1gXG4gICAgKTtcblxuICBjb25zdCByZW1haW5pbmdEYXRhID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDQpO1xuXG4gIHJldHVybiBwYXJzZVJvc2VuRGF0YShyZW1haW5pbmdEYXRhKTtcbn07XG4iXX0=
@@ -1 +0,0 @@
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;AAIrE,qBAAa,+BAAgC,SAAQ,0BAA0B,CAAC,qBAAqB,CAAC;IACpG,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBACC,qBAAqB,KACjC,SAAS,GAAG,SAAS,CAsDtB;IAEF;;;;OAIG;IACH,sBAAsB,QACf,mBAAmB,WACf,MAAM,KACd,mBAAmB,GAAG,SAAS,CAsChC;CACH"}
@@ -1,94 +0,0 @@
1
- import { isPlainObject } from 'lodash-es';
2
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
- import { CARDANO_CHAIN, CARDANO_NATIVE_TOKEN } from '../const';
4
- import JsonBigInt from '@rosen-bridge/json-bigint';
5
- import { getCardanoTokenId, parseRosenData } from './utils';
6
- export class CardanoBlockFrostRosenExtractor extends AbstractRosenDataExtractor {
7
- chain = CARDANO_CHAIN;
8
- /**
9
- * extracts RosenData from given lock transaction in blockfrost format
10
- * @param transaction the lock transaction in blockfrost format
11
- */
12
- extractRawData = (transaction) => {
13
- const baseError = `No rosen data found for tx [${transaction.utxos.hash}]`;
14
- const metadata = transaction.metadata;
15
- try {
16
- if (metadata.length === 0) {
17
- this.logger.debug(baseError + `: No metadata`);
18
- return undefined;
19
- }
20
- const data = metadata.find((data) => data.label === '0')?.json_metadata;
21
- const rosenData = parseRosenData(data);
22
- if (rosenData) {
23
- const lockOutputs = transaction.utxos.outputs.filter((output) => output.address === this.lockAddress);
24
- for (let i = 0; i < lockOutputs.length; i++) {
25
- const output = lockOutputs[i];
26
- const assetTransformation = this.getAssetTransformation(output, rosenData.toChain);
27
- if (assetTransformation) {
28
- return {
29
- ...rosenData,
30
- sourceChainTokenId: assetTransformation.from,
31
- amount: assetTransformation.amount,
32
- targetChainTokenId: assetTransformation.to,
33
- sourceTxId: transaction.utxos.hash,
34
- };
35
- }
36
- else
37
- this.logger.debug(`No rosen asset transformation found for box [${transaction.utxos.hash}.${i}]: box assets: ${JsonBigInt.stringify(output.amount)}`);
38
- }
39
- this.logger.debug(baseError + `: No valid transformation found in any output boxes`);
40
- }
41
- else
42
- this.logger.debug(baseError +
43
- `: Incomplete metadata. isPlain: ${isPlainObject(data)}, data: ${JsonBigInt.stringify(data)}`);
44
- }
45
- catch (e) {
46
- this.logger.debug(`An error occurred while getting Cardano rosen data from BlockFrost: ${e}`);
47
- if (e instanceof Error && e.stack) {
48
- this.logger.debug(e.stack);
49
- }
50
- }
51
- return undefined;
52
- };
53
- /**
54
- * extracts and builds token transformation from UTXO and tokenMap
55
- * @param box transaction output
56
- * @param toChain event target chain
57
- */
58
- getAssetTransformation = (box, toChain) => {
59
- // try to build transformation using locked assets
60
- for (const asset of box.amount) {
61
- if (asset.unit === 'lovelace')
62
- continue;
63
- const policyId = asset.unit.slice(0, 56);
64
- const assetName = asset.unit.slice(56);
65
- const token = this.tokens.search(CARDANO_CHAIN, {
66
- tokenId: getCardanoTokenId(policyId, assetName),
67
- });
68
- if (token.length > 0 && Object.hasOwn(token[0], toChain))
69
- return {
70
- from: this.tokens.getID(token[0], CARDANO_CHAIN),
71
- to: this.tokens.getID(token[0], toChain),
72
- amount: asset.quantity,
73
- };
74
- }
75
- // try to build transformation using locked ADA
76
- const lovelace = this.tokens.search(CARDANO_CHAIN, {
77
- tokenId: CARDANO_NATIVE_TOKEN,
78
- });
79
- if (lovelace.length > 0 && Object.hasOwn(lovelace[0], toChain)) {
80
- const boxLovelaceAmount = box.amount.find((asset) => asset.unit === 'lovelace');
81
- if (!boxLovelaceAmount)
82
- throw Error(`ImpossibleBehavior: Found blockfrost tx output with no lovelace amount`);
83
- return {
84
- from: CARDANO_NATIVE_TOKEN,
85
- to: this.tokens.getID(lovelace[0], toChain),
86
- amount: boxLovelaceAmount.quantity,
87
- };
88
- }
89
- else {
90
- return undefined;
91
- }
92
- };
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0Jsb2NrRnJvc3RSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTywwQkFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFNUQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLDBCQUFpRDtJQUMzRixLQUFLLEdBQUcsYUFBYSxDQUFDO0lBQy9COzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUNmLFdBQWtDLEVBQ1gsRUFBRTtRQUN6QixNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUk7WUFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUM7WUFDeEUsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FB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Q0FBQztvQkFDaEQsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7b0JBQ3hDLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUTtpQkFDdkIsQ0FBQztTQUNMO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNqRCxPQUFPLEVBQUUsb0JBQW9CO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdkMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUNyQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQjtnQkFDcEIsTUFBTSxLQUFLLENBQ1Qsd0VBQXdFLENBQ3pFLENBQUM7WUFFSixPQUFPO2dCQUNMLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUMzQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsUUFBUTthQUNuQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYWluT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBDQVJEQU5PX0NIQUlOLCBDQVJEQU5PX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEJsb2NrRnJvc3RPdXRwdXRCb3gsIEJsb2NrRnJvc3RUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBnZXRDYXJkYW5vVG9rZW5JZCwgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIENhcmRhbm9CbG9ja0Zyb3N0Um9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxCbG9ja0Zyb3N0VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBDQVJEQU5PX0NIQUlOO1xuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBibG9ja2Zyb3N0IGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gYmxvY2tmcm9zdCBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKFxuICAgIHRyYW5zYWN0aW9uOiBCbG9ja0Zyb3N0VHJhbnNhY3Rpb25cbiAgKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udXR4b3MuaGFzaH1dYDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRyYW5zYWN0aW9uLm1ldGFkYXRhO1xuICAgIHRyeSB7XG4gICAgICBpZiAobWV0YWRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IE5vIG1ldGFkYXRhYCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhID0gbWV0YWRhdGEuZmluZCgoZGF0YSkgPT4gZGF0YS5sYWJlbCA9PT0gJzAnKT8uanNvbl9tZXRhZGF0YTtcbiAgICAgIGNvbnN0IHJvc2VuRGF0YSA9IHBhcnNlUm9zZW5EYXRhKGRhdGEpO1xuICAgICAgaWYgKHJvc2VuRGF0YSkge1xuICAgICAgICBjb25zdCBsb2NrT3V0cHV0cyA9IHRyYW5zYWN0aW9uLnV0eG9zLm91dHB1dHMuZmlsdGVyKFxuICAgICAgICAgIChvdXRwdXQpID0+IG91dHB1dC5hZGRyZXNzID09PSB0aGlzLmxvY2tBZGRyZXNzXG4gICAgICAgICk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9ja091dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBsb2NrT3V0cHV0c1tpXTtcbiAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgICAgcm9zZW5EYXRhLnRvQ2hhaW5cbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5yb3NlbkRhdGEsXG4gICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLnV0eG9zLmhhc2gsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgYm94IFske1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnV0eG9zLmhhc2hcbiAgICAgICAgICAgICAgfS4ke2l9XTogYm94IGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShvdXRwdXQuYW1vdW50KX1gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIHZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kIGluIGFueSBvdXRwdXQgYm94ZXNgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgIGA6IEluY29tcGxldGUgbWV0YWRhdGEuIGlzUGxhaW46ICR7aXNQbGFpbk9iamVjdChcbiAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgKX0sIGRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBCbG9ja0Zyb3N0OiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEJsb2NrRnJvc3RPdXRwdXRCb3gsXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgYXNzZXRzXG4gICAgZm9yIChjb25zdCBhc3NldCBvZiBib3guYW1vdW50KSB7XG4gICAgICBpZiAoYXNzZXQudW5pdCA9PT0gJ2xvdmVsYWNlJykgY29udGludWU7XG4gICAgICBjb25zdCBwb2xpY3lJZCA9IGFzc2V0LnVuaXQuc2xpY2UoMCwgNTYpO1xuICAgICAgY29uc3QgYXNzZXROYW1lID0gYXNzZXQudW5pdC5zbGljZSg1Nik7XG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICAgIHRva2VuSWQ6IGdldENhcmRhbm9Ub2tlbklkKHBvbGljeUlkLCBhc3NldE5hbWUpLFxuICAgICAgfSk7XG4gICAgICBpZiAodG9rZW4ubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHRva2VuWzBdLCB0b0NoYWluKSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmcm9tOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgQ0FSREFOT19DSEFJTiksXG4gICAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCB0b0NoYWluKSxcbiAgICAgICAgICBhbW91bnQ6IGFzc2V0LnF1YW50aXR5LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgQURBXG4gICAgY29uc3QgbG92ZWxhY2UgPSB0aGlzLnRva2Vucy5zZWFyY2goQ0FSREFOT19DSEFJTiwge1xuICAgICAgdG9rZW5JZDogQ0FSREFOT19OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKGxvdmVsYWNlLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bihsb3ZlbGFjZVswXSwgdG9DaGFpbikpIHtcbiAgICAgIGNvbnN0IGJveExvdmVsYWNlQW1vdW50ID0gYm94LmFtb3VudC5maW5kKFxuICAgICAgICAoYXNzZXQpID0+IGFzc2V0LnVuaXQgPT09ICdsb3ZlbGFjZSdcbiAgICAgICk7XG4gICAgICBpZiAoIWJveExvdmVsYWNlQW1vdW50KVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBgSW1wb3NzaWJsZUJlaGF2aW9yOiBGb3VuZCBibG9ja2Zyb3N0IHR4IG91dHB1dCB3aXRoIG5vIGxvdmVsYWNlIGFtb3VudGBcbiAgICAgICAgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogQ0FSREFOT19OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRChsb3ZlbGFjZVswXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogYm94TG92ZWxhY2VBbW91bnQucXVhbnRpdHksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1 +0,0 @@
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;AAI9D,qBAAa,4BAA6B,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC9F,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,kBAAkB,KAAG,SAAS,GAAG,SAAS,CA4DvE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,eAAe,WACX,MAAM,KACd,mBAAmB,GAAG,SAAS,CA8BhC;CACH"}