@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,104 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { DOGE_CHAIN, DOGE_NATIVE_TOKEN } from '../const';
3
- import { parseRosenData, addressToOutputScript } from './utils';
4
- export class DogeEsploraRosenExtractor extends AbstractRosenDataExtractor {
5
- chain = DOGE_CHAIN;
6
- lockScriptPubKey;
7
- constructor(lockAddress, tokens, logger) {
8
- super(lockAddress, tokens, logger);
9
- this.lockScriptPubKey = addressToOutputScript(lockAddress);
10
- }
11
- /**
12
- * extracts RosenData from given lock transaction in Esplora format
13
- * @param transaction the lock transaction in Esplora format
14
- */
15
- extractRawData = (transaction) => {
16
- const baseError = `No rosen data found for tx [${transaction.txid}]`;
17
- try {
18
- const outputs = transaction.vout;
19
- if (outputs.length < 2) {
20
- this.logger.debug(baseError + `: Insufficient number of boxes`);
21
- return undefined;
22
- }
23
- let validData = false; // an OP_RETURN box with valid data is found
24
- let validLock = false; // a lock box is found with available asset transformation
25
- // parse rosen data from OP_RETURN box
26
- let opReturnData;
27
- for (let i = 0; i < outputs.length; i++) {
28
- const output = outputs[i];
29
- if (output.scriptpubkey.slice(0, 2) !== '6a')
30
- continue; // not an OP_RETURN utxo
31
- try {
32
- opReturnData = parseRosenData(output.scriptpubkey);
33
- validData = true;
34
- break;
35
- }
36
- catch (e) {
37
- this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.txid}.${i}]: ${e}`);
38
- }
39
- }
40
- if (!validData || !opReturnData) {
41
- this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
42
- return undefined;
43
- }
44
- // find target chain token id
45
- let assetTransformation;
46
- for (let i = 0; i < outputs.length; i++) {
47
- const output = outputs[i];
48
- if (output.scriptpubkey !== this.lockScriptPubKey)
49
- continue; // utxo address is not lock address
50
- assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
51
- if (assetTransformation) {
52
- validLock = true;
53
- break;
54
- }
55
- }
56
- if (!validLock || !assetTransformation) {
57
- this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
58
- return undefined;
59
- }
60
- const fromAddress = `box:${transaction.vin[0].txid}.${transaction.vin[0].vout}`;
61
- return {
62
- toChain: opReturnData.toChain,
63
- toAddress: opReturnData.toAddress,
64
- bridgeFee: opReturnData.bridgeFee,
65
- networkFee: opReturnData.networkFee,
66
- fromAddress: fromAddress,
67
- sourceChainTokenId: assetTransformation.from,
68
- amount: assetTransformation.amount,
69
- targetChainTokenId: assetTransformation.to,
70
- sourceTxId: transaction.txid,
71
- };
72
- }
73
- catch (e) {
74
- this.logger.debug(`An error occurred while getting Doge rosen data from Esplora: ${e}`);
75
- if (e instanceof Error && e.stack) {
76
- this.logger.debug(e.stack);
77
- }
78
- }
79
- return undefined;
80
- };
81
- /**
82
- * extracts and builds token transformation from UTXO and tokenMap
83
- * @param box transaction output
84
- * @param toChain event target chain
85
- */
86
- getAssetTransformation = (box, toChain) => {
87
- // try to build transformation using locked DOGE
88
- const wrappedDoge = this.tokens.search(DOGE_CHAIN, {
89
- tokenId: DOGE_NATIVE_TOKEN,
90
- });
91
- if (wrappedDoge.length > 0 && Object.hasOwn(wrappedDoge[0], toChain)) {
92
- const dogeAmount = box.value;
93
- return {
94
- from: DOGE_NATIVE_TOKEN,
95
- to: this.tokens.getID(wrappedDoge[0], toChain),
96
- amount: dogeAmount.toString(),
97
- };
98
- }
99
- else {
100
- return undefined;
101
- }
102
- };
103
- }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG9nZUVzcGxvcmFSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvZG9nZS9Eb2dlRXNwbG9yYVJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUl6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwwQkFBa0Q7SUFDdEYsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUNsQixnQkFBZ0IsQ0FBUztJQUVuQyxZQUFZLFdBQW1CLEVBQUUsTUFBZ0IsRUFBRSxNQUF1QjtRQUN4RSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUNmLFdBQW1DLEVBQ1osRUFBRTtRQUN6QixNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3JFLElBQUk7WUFDRixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLDRDQUE0QztZQUNuRSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMs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LE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxzQkFBc0IsR0FBRyxDQUN2QixHQUFvQixFQUNwQixPQUFlLEVBQ2tCLEVBQUU7UUFDbkMsZ0RBQWdEO1FBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNqRCxPQUFPLEVBQUUsaUJBQWlCO1NBQzNCLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDcEUsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixPQUFPO2dCQUNMLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUM5QyxNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRTthQUM5QixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgRE9HRV9DSEFJTiwgRE9HRV9OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBEb2dlRXNwbG9yYVRyYW5zYWN0aW9uLCBFc3Bsb3JhVHhPdXRwdXQsIE9wUmV0dXJuRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IHBhcnNlUm9zZW5EYXRhLCBhZGRyZXNzVG9PdXRwdXRTY3JpcHQgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIERvZ2VFc3Bsb3JhUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxEb2dlRXNwbG9yYVRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gRE9HRV9DSEFJTjtcbiAgcHJvdGVjdGVkIGxvY2tTY3JpcHRQdWJLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrU2NyaXB0UHViS2V5ID0gYWRkcmVzc1RvT3V0cHV0U2NyaXB0KGxvY2tBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIEVzcGxvcmEgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBFc3Bsb3JhIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoXG4gICAgdHJhbnNhY3Rpb246IERvZ2VFc3Bsb3JhVHJhbnNhY3Rpb25cbiAgKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udHhpZH1dYDtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRyYW5zYWN0aW9uLnZvdXQ7XG4gICAgICBpZiAob3V0cHV0cy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGJhc2VFcnJvciArIGA6IEluc3VmZmljaWVudCBudW1iZXIgb2YgYm94ZXNgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgbGV0IHZhbGlkRGF0YSA9IGZhbHNlOyAvLyBhbiBPUF9SRVRVUk4gYm94IHdpdGggdmFsaWQgZGF0YSBpcyBmb3VuZFxuICAgICAgbGV0IHZhbGlkTG9jayA9IGZhbHNlOyAvLyBhIGxvY2sgYm94IGlzIGZvdW5kIHdpdGggYXZhaWxhYmxlIGFzc2V0IHRyYW5zZm9ybWF0aW9uXG5cbiAgICAgIC8vIHBhcnNlIHJvc2VuIGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94XG4gICAgICBsZXQgb3BSZXR1cm5EYXRhOiBPcFJldHVybkRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1tpXTtcbiAgICAgICAgaWYgKG91dHB1dC5zY3JpcHRwdWJrZXkuc2xpY2UoMCwgMikgIT09ICc2YScpIGNvbnRpbnVlOyAvLyBub3QgYW4gT1BfUkVUVVJOIHV0eG9cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG9wUmV0dXJuRGF0YSA9IHBhcnNlUm9zZW5EYXRhKG91dHB1dC5zY3JpcHRwdWJrZXkpO1xuICAgICAgICAgIHZhbGlkRGF0YSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gT1BfUkVUVVJOIGJveCBbJHt0cmFuc2FjdGlvbi50eGlkfS4ke2l9XTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXZhbGlkRGF0YSB8fCAhb3BSZXR1cm5EYXRhKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBmaW5kIHRhcmdldCBjaGFpbiB0b2tlbiBpZFxuICAgICAgbGV0IGFzc2V0VHJhbnNmb3JtYXRpb246IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1tpXTtcbiAgICAgICAgaWYgKG91dHB1dC5zY3JpcHRwdWJrZXkgIT09IHRoaXMubG9ja1NjcmlwdFB1YktleSkgY29udGludWU7IC8vIHV0eG8gYWRkcmVzcyBpcyBub3QgbG9jayBhZGRyZXNzXG4gICAgICAgIGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgIG9wUmV0dXJuRGF0YS50b0NoYWluXG4gICAgICAgICk7XG4gICAgICAgIGlmIChhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgICAgdmFsaWRMb2NrID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCF2YWxpZExvY2sgfHwgIWFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogRmFpbGVkIHRvIGZpbmQgcm9zZW4gYXNzZXQgdHJhbnNmb3JtYXRpb25gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZyb21BZGRyZXNzID0gYGJveDoke3RyYW5zYWN0aW9uLnZpblswXS50eGlkfS4ke3RyYW5zYWN0aW9uLnZpblswXS52b3V0fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiBvcFJldHVybkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiBvcFJldHVybkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IG9wUmV0dXJuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IG9wUmV0dXJuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLnR4aWQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBEb2dlIHJvc2VuIGRhdGEgZnJvbSBFc3Bsb3JhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IEVzcGxvcmFUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBET0dFXG4gICAgY29uc3Qgd3JhcHBlZERvZ2UgPSB0aGlzLnRva2Vucy5zZWFyY2goRE9HRV9DSEFJTiwge1xuICAgICAgdG9rZW5JZDogRE9HRV9OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKHdyYXBwZWREb2dlLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih3cmFwcGVkRG9nZVswXSwgdG9DaGFpbikpIHtcbiAgICAgIGNvbnN0IGRvZ2VBbW91bnQgPSBib3gudmFsdWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBET0dFX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHdyYXBwZWREb2dlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBkb2dlQW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"DogeRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/doge/DogeRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAU,YAAY,EAAgB,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IACxE,QAAQ,CAAC,KAAK,UAAc;IAC5B,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,YAAY,WACR,MAAM,KACd,mBAAmB,GAAG,SAAS,CAehC;CACH"}
@@ -1,112 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { DOGE_CHAIN, DOGE_NATIVE_TOKEN } from '../const';
3
- import { parseRosenData, addressToOutputScript } from './utils';
4
- import JsonBigInt from '@rosen-bridge/json-bigint';
5
- export class DogeRosenExtractor extends AbstractRosenDataExtractor {
6
- chain = DOGE_CHAIN;
7
- lockScriptPubKey;
8
- constructor(lockAddress, tokens, logger) {
9
- super(lockAddress, tokens, logger);
10
- this.lockScriptPubKey = addressToOutputScript(lockAddress);
11
- }
12
- /**
13
- * extracts RosenData from given lock transaction in DogeTx format
14
- * @param serializedTransaction stringified transaction in DogeTx format
15
- */
16
- extractRawData = (serializedTransaction) => {
17
- let transaction;
18
- try {
19
- transaction = JsonBigInt.parse(serializedTransaction);
20
- }
21
- catch (e) {
22
- throw new Error(`Failed to parse transaction json to DogeTx format while extracting rosen data: ${e}`);
23
- }
24
- const baseError = `No rosen data found for tx [${transaction.id}]`;
25
- try {
26
- const outputs = transaction.outputs;
27
- if (outputs.length < 2) {
28
- this.logger.debug(baseError + `: Insufficient number of boxes`);
29
- return undefined;
30
- }
31
- let validData = false; // an OP_RETURN box with valid data is found
32
- let validLock = false; // a lock box is found with available asset transformation
33
- // parse rosen data from OP_RETURN box
34
- let opReturnData;
35
- for (let i = 0; i < outputs.length; i++) {
36
- const output = outputs[i];
37
- if (output.scriptPubKey.slice(0, 2) !== '6a')
38
- continue; // not an OP_RETURN utxo
39
- try {
40
- opReturnData = parseRosenData(output.scriptPubKey);
41
- validData = true;
42
- break;
43
- }
44
- catch (e) {
45
- this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.id}.${i}]: ${e}`);
46
- }
47
- }
48
- if (!validData || !opReturnData) {
49
- this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
50
- return undefined;
51
- }
52
- // find target chain token id
53
- let assetTransformation;
54
- for (let i = 0; i < outputs.length; i++) {
55
- const output = outputs[i];
56
- if (output.scriptPubKey !== this.lockScriptPubKey)
57
- continue; // utxo address is not lock address
58
- assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
59
- if (assetTransformation) {
60
- validLock = true;
61
- break;
62
- }
63
- }
64
- if (!validLock || !assetTransformation) {
65
- this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
66
- return undefined;
67
- }
68
- const fromAddress = `box:${transaction.inputs[0].txId}.${transaction.inputs[0].index}`;
69
- return {
70
- toChain: opReturnData.toChain,
71
- toAddress: opReturnData.toAddress,
72
- bridgeFee: opReturnData.bridgeFee,
73
- networkFee: opReturnData.networkFee,
74
- fromAddress: fromAddress,
75
- sourceChainTokenId: assetTransformation.from,
76
- amount: assetTransformation.amount,
77
- targetChainTokenId: assetTransformation.to,
78
- sourceTxId: transaction.id,
79
- };
80
- }
81
- catch (e) {
82
- this.logger.debug(`An error occurred while getting Doge rosen data: ${e}`);
83
- if (e instanceof Error && e.stack) {
84
- this.logger.debug(e.stack);
85
- }
86
- }
87
- return undefined;
88
- };
89
- /**
90
- * extracts and builds token transformation from UTXO and tokenMap
91
- * @param box transaction output
92
- * @param toChain event target chain
93
- */
94
- getAssetTransformation = (box, toChain) => {
95
- // try to build transformation using locked DOGE
96
- const wrappedDoge = this.tokens.search(DOGE_CHAIN, {
97
- tokenId: DOGE_NATIVE_TOKEN,
98
- });
99
- if (wrappedDoge.length > 0 && Object.hasOwn(wrappedDoge[0], toChain)) {
100
- const satoshiAmount = box.value;
101
- return {
102
- from: DOGE_NATIVE_TOKEN,
103
- to: this.tokens.getID(wrappedDoge[0], toChain),
104
- amount: satoshiAmount.toString(),
105
- };
106
- }
107
- else {
108
- return undefined;
109
- }
110
- };
111
- }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG9nZVJvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9kb2dlL0RvZ2VSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQWtDO0lBQy9ELEtBQUssR0FBRyxVQUFVLENBQUM7SUFDbEIsZ0JBQWdCLENBQVM7SUFFbkMsWUFBWSxXQUFtQixFQUFFLE1BQWdCLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxxQkFBNkIsRUFBeUIsRUFBRTtRQUN4RSxJQUFJLFdBQW1CLENBQUM7UUFDeEIsSUFBSTtZQUNGLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDdkQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0ZBQWtGLENBQUMsRUFBRSxDQUN0RixDQUFDO1NBQ0g7UUFDRCxNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ25FLElBQUk7WUFDRixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLDRDQUE0QztZQUNuRSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQywwREFBMEQ7WUFFakYsc0NBQXNDO1lBQ3RDLElBQUksWUFBc0MsQ0FBQztZQUMzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJO29CQUFFLFNBQVMsQ0FBQyx3QkFBd0I7Z0JBRWhGLElBQUk7b0JBQ0YsWUFBWSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ25ELFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ2pCLE1BQU07aUJBQ1A7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsOENBQThDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUMzRSxDQUFDO2lCQUNIO2FBQ0Y7WUFDRCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixTQUFTLEdBQUcsNkNBQTZDLENBQzFELENBQUM7Z0JBQ0YsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFFRCw2QkFBNkI7WUFDN0IsSUFBSSxtQkFBb0QsQ0FBQztZQUN6RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGdCQUFnQjtvQkFBRSxTQUFTLENBQUMsbUNBQW1DO2dCQUNoRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQy9DLE1BQU0sRUFDTixZQUFZLENBQUMsT0FBTyxDQUNyQixDQUFDO2dCQUNGLElBQUksbUJBQW1CLEVBQUU7b0JBQ3ZCLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ2pCLE1BQU07aUJBQ1A7YUFDRjtZQUNELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsU0FBUyxHQUFHLDZDQUE2QyxDQUMxRCxDQUFDO2dCQUNGLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO2dCQUM3QixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7Z0JBQ2pDLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUztnQkFDakMsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVO2dCQUNuQyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtnQkFDNUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE1BQU07Z0JBQ2xDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLEVBQUU7Z0JBQzFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRTthQUMzQixDQUFDO1NBQ0g7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLG9EQUFvRCxDQUFDLEVBQUUsQ0FDeEQsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUI7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxzQkFBc0IsR0FBRyxDQUN2QixHQUFpQixFQUNqQixPQUFlLEVBQ2tCLEVBQUU7UUFDbkMsZ0RBQWdEO1FBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNqRCxPQUFPLEVBQUUsaUJBQWlCO1NBQzNCLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDcEUsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNoQyxPQUFPO2dCQUNMLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUM5QyxNQUFNLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTthQUNqQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgRE9HRV9DSEFJTiwgRE9HRV9OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBEb2dlVHgsIERvZ2VUeE91dHB1dCwgT3BSZXR1cm5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEsIGFkZHJlc3NUb091dHB1dFNjcmlwdCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5cbmV4cG9ydCBjbGFzcyBEb2dlUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxzdHJpbmc+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBET0dFX0NIQUlOO1xuICBwcm90ZWN0ZWQgbG9ja1NjcmlwdFB1YktleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGxvY2tBZGRyZXNzOiBzdHJpbmcsIHRva2VuczogVG9rZW5NYXAsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmxvY2tTY3JpcHRQdWJLZXkgPSBhZGRyZXNzVG9PdXRwdXRTY3JpcHQobG9ja0FkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gRG9nZVR4IGZvcm1hdFxuICAgKiBAcGFyYW0gc2VyaWFsaXplZFRyYW5zYWN0aW9uIHN0cmluZ2lmaWVkIHRyYW5zYWN0aW9uIGluIERvZ2VUeCBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbjogc3RyaW5nKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBsZXQgdHJhbnNhY3Rpb246IERvZ2VUeDtcbiAgICB0cnkge1xuICAgICAgdHJhbnNhY3Rpb24gPSBKc29uQmlnSW50LnBhcnNlKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGpzb24gdG8gRG9nZVR4IGZvcm1hdCB3aGlsZSBleHRyYWN0aW5nIHJvc2VuIGRhdGE6ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24uaWR9XWA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG91dHB1dHMgPSB0cmFuc2FjdGlvbi5vdXRwdXRzO1xuICAgICAgaWYgKG91dHB1dHMubGVuZ3RoIDwgMikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhiYXNlRXJyb3IgKyBgOiBJbnN1ZmZpY2llbnQgbnVtYmVyIG9mIGJveGVzYCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGxldCB2YWxpZERhdGEgPSBmYWxzZTsgLy8gYW4gT1BfUkVUVVJOIGJveCB3aXRoIHZhbGlkIGRhdGEgaXMgZm91bmRcbiAgICAgIGxldCB2YWxpZExvY2sgPSBmYWxzZTsgLy8gYSBsb2NrIGJveCBpcyBmb3VuZCB3aXRoIGF2YWlsYWJsZSBhc3NldCB0cmFuc2Zvcm1hdGlvblxuXG4gICAgICAvLyBwYXJzZSByb3NlbiBkYXRhIGZyb20gT1BfUkVUVVJOIGJveFxuICAgICAgbGV0IG9wUmV0dXJuRGF0YTogT3BSZXR1cm5EYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvdXRwdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbaV07XG4gICAgICAgIGlmIChvdXRwdXQuc2NyaXB0UHViS2V5LnNsaWNlKDAsIDIpICE9PSAnNmEnKSBjb250aW51ZTsgLy8gbm90IGFuIE9QX1JFVFVSTiB1dHhvXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBvcFJldHVybkRhdGEgPSBwYXJzZVJvc2VuRGF0YShvdXRwdXQuc2NyaXB0UHViS2V5KTtcbiAgICAgICAgICB2YWxpZERhdGEgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIGV4dHJhY3QgZGF0YSBmcm9tIE9QX1JFVFVSTiBib3ggWyR7dHJhbnNhY3Rpb24uaWR9LiR7aX1dOiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWREYXRhIHx8ICFvcFJldHVybkRhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gT1BfUkVUVVJOIGJveCB3aXRoIHZhbGlkIGRhdGEgaXMgZm91bmRgXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmQgdGFyZ2V0IGNoYWluIHRva2VuIGlkXG4gICAgICBsZXQgYXNzZXRUcmFuc2Zvcm1hdGlvbjogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdFB1YktleSAhPT0gdGhpcy5sb2NrU2NyaXB0UHViS2V5KSBjb250aW51ZTsgLy8gdXR4byBhZGRyZXNzIGlzIG5vdCBsb2NrIGFkZHJlc3NcbiAgICAgICAgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgb3BSZXR1cm5EYXRhLnRvQ2hhaW5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICB2YWxpZExvY2sgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXZhbGlkTG9jayB8fCAhYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gZmluZCByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLnR4SWR9LiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLmluZGV4fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiBvcFJldHVybkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiBvcFJldHVybkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IG9wUmV0dXJuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IG9wUmV0dXJuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgRG9nZSByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIGJ1aWxkcyB0b2tlbiB0cmFuc2Zvcm1hdGlvbiBmcm9tIFVUWE8gYW5kIHRva2VuTWFwXG4gICAqIEBwYXJhbSBib3ggdHJhbnNhY3Rpb24gb3V0cHV0XG4gICAqIEBwYXJhbSB0b0NoYWluIGV2ZW50IHRhcmdldCBjaGFpblxuICAgKi9cbiAgZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbiA9IChcbiAgICBib3g6IERvZ2VUeE91dHB1dCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBET0dFXG4gICAgY29uc3Qgd3JhcHBlZERvZ2UgPSB0aGlzLnRva2Vucy5zZWFyY2goRE9HRV9DSEFJTiwge1xuICAgICAgdG9rZW5JZDogRE9HRV9OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKHdyYXBwZWREb2dlLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih3cmFwcGVkRG9nZVswXSwgdG9DaGFpbikpIHtcbiAgICAgIGNvbnN0IHNhdG9zaGlBbW91bnQgPSBib3gudmFsdWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBET0dFX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHdyYXBwZWREb2dlWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBzYXRvc2hpQW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"DogeRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/doge/DogeRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,qBAAa,qBAAsB,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IACvF,QAAQ,CAAC,KAAK,UAAc;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,cAAc,gBAAiB,kBAAkB,KAAG,SAAS,GAAG,SAAS,CA6EvE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,eAAe,WACX,MAAM,KACd,mBAAmB,GAAG,SAAS,CAgBhC;CACH"}
@@ -1,105 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { DOGE_CHAIN, DOGE_NATIVE_TOKEN } from '../const';
3
- import { parseRosenData, addressToOutputScript } from './utils';
4
- export class DogeRpcRosenExtractor extends AbstractRosenDataExtractor {
5
- chain = DOGE_CHAIN;
6
- lockScriptPubKey;
7
- constructor(lockAddress, tokens, logger) {
8
- super(lockAddress, tokens, logger);
9
- this.lockScriptPubKey = addressToOutputScript(lockAddress);
10
- }
11
- /**
12
- * extracts RosenData from given lock transaction in Rpc format
13
- * @param transaction the lock transaction in Rpc format
14
- */
15
- extractRawData = (transaction) => {
16
- const baseError = `No rosen data found for tx [${transaction.txid}]`;
17
- try {
18
- const outputs = transaction.vout;
19
- if (outputs.length < 2) {
20
- this.logger.debug(baseError + `: Insufficient number of boxes`);
21
- return undefined;
22
- }
23
- let validData = false; // an OP_RETURN box with valid data is found
24
- let validLock = false; // a lock box is found with available asset transformation
25
- // parse rosen data from OP_RETURN box
26
- let opReturnData;
27
- for (let i = 0; i < outputs.length; i++) {
28
- const output = outputs[i];
29
- if (output.scriptPubKey.hex.slice(0, 2) !== '6a')
30
- continue; // not an OP_RETURN utxo
31
- try {
32
- opReturnData = parseRosenData(output.scriptPubKey.hex);
33
- validData = true;
34
- break;
35
- }
36
- catch (e) {
37
- this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.txid}.${i}]: ${e}`);
38
- }
39
- }
40
- if (!validData || !opReturnData) {
41
- this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
42
- return undefined;
43
- }
44
- // find target chain token id
45
- let assetTransformation;
46
- for (let i = 0; i < outputs.length; i++) {
47
- const output = outputs[i];
48
- if (output.scriptPubKey.hex !== this.lockScriptPubKey)
49
- continue; // utxo address is not lock address
50
- assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
51
- if (assetTransformation) {
52
- validLock = true;
53
- break;
54
- }
55
- }
56
- if (!validLock || !assetTransformation) {
57
- this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
58
- return undefined;
59
- }
60
- const fromAddress = `box:${transaction.vin[0].txid}.${transaction.vin[0].vout}`;
61
- return {
62
- toChain: opReturnData.toChain,
63
- toAddress: opReturnData.toAddress,
64
- bridgeFee: opReturnData.bridgeFee,
65
- networkFee: opReturnData.networkFee,
66
- fromAddress: fromAddress,
67
- sourceChainTokenId: assetTransformation.from,
68
- amount: assetTransformation.amount,
69
- targetChainTokenId: assetTransformation.to,
70
- sourceTxId: transaction.txid,
71
- };
72
- }
73
- catch (e) {
74
- this.logger.debug(`An error occurred while getting Doge rosen data from Rpc: ${e}`);
75
- if (e instanceof Error && e.stack) {
76
- this.logger.debug(e.stack);
77
- }
78
- }
79
- return undefined;
80
- };
81
- /**
82
- * extracts and builds token transformation from UTXO and tokenMap
83
- * @param box transaction output
84
- * @param toChain event target chain
85
- */
86
- getAssetTransformation = (box, toChain) => {
87
- // try to build transformation using locked DOGE
88
- const wrappedDoge = this.tokens.search(DOGE_CHAIN, {
89
- tokenId: DOGE_NATIVE_TOKEN,
90
- });
91
- if (wrappedDoge.length > 0 && Object.hasOwn(wrappedDoge[0], toChain)) {
92
- const parts = box.value.toString().split('.');
93
- const part1 = ((parts[1] ?? '') + '0'.repeat(8)).substring(0, 8);
94
- return {
95
- from: DOGE_NATIVE_TOKEN,
96
- to: this.tokens.getID(wrappedDoge[0], toChain),
97
- amount: (parts[0] === '0' ? '' : parts[0]) + part1,
98
- };
99
- }
100
- else {
101
- return undefined;
102
- }
103
- };
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG9nZVJwY1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9kb2dlL0RvZ2VScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsMEJBQThDO0lBQzlFLEtBQUssR0FBRyxVQUFVLENBQUM7SUFDbEIsZ0JBQWdCLENBQVM7SUFFbkMsWUFBWSxXQUFtQixFQUFFLE1BQWdCLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxXQUErQixFQUF5QixFQUFFO1FBQzFFLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDakMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGdDQUFnQyxDQUFDLENBQUM7Z0JBQ2hFLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsNENBQTRDO1lBQ25FLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLDBE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dGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgRE9HRV9DSEFJTiwgRE9HRV9OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBEb2dlUnBjVHJhbnNhY3Rpb24sIERvZ2VScGNUeE91dHB1dCwgT3BSZXR1cm5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEsIGFkZHJlc3NUb091dHB1dFNjcmlwdCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRG9nZVJwY1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8RG9nZVJwY1RyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluID0gRE9HRV9DSEFJTjtcbiAgcHJvdGVjdGVkIGxvY2tTY3JpcHRQdWJLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5sb2NrU2NyaXB0UHViS2V5ID0gYWRkcmVzc1RvT3V0cHV0U2NyaXB0KGxvY2tBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIFJwYyBmb3JtYXRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIFJwYyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBEb2dlUnBjVHJhbnNhY3Rpb24pOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi50eGlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24udm91dDtcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBib3hlc2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBsZXQgdmFsaWREYXRhID0gZmFsc2U7IC8vIGFuIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kXG4gICAgICBsZXQgdmFsaWRMb2NrID0gZmFsc2U7IC8vIGEgbG9jayBib3ggaXMgZm91bmQgd2l0aCBhdmFpbGFibGUgYXNzZXQgdHJhbnNmb3JtYXRpb25cblxuICAgICAgLy8gcGFyc2Ugcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3hcbiAgICAgIGxldCBvcFJldHVybkRhdGE6IE9wUmV0dXJuRGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdFB1YktleS5oZXguc2xpY2UoMCwgMikgIT09ICc2YScpIGNvbnRpbnVlOyAvLyBub3QgYW4gT1BfUkVUVVJOIHV0eG9cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG9wUmV0dXJuRGF0YSA9IHBhcnNlUm9zZW5EYXRhKG91dHB1dC5zY3JpcHRQdWJLZXkuaGV4KTtcbiAgICAgICAgICB2YWxpZERhdGEgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIGV4dHJhY3QgZGF0YSBmcm9tIE9QX1JFVFVSTiBib3ggWyR7dHJhbnNhY3Rpb24udHhpZH0uJHtpfV06ICR7ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCF2YWxpZERhdGEgfHwgIW9wUmV0dXJuRGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBObyBPUF9SRVRVUk4gYm94IHdpdGggdmFsaWQgZGF0YSBpcyBmb3VuZGBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gZmluZCB0YXJnZXQgY2hhaW4gdG9rZW4gaWRcbiAgICAgIGxldCBhc3NldFRyYW5zZm9ybWF0aW9uOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvdXRwdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbaV07XG4gICAgICAgIGlmIChvdXRwdXQuc2NyaXB0UHViS2V5LmhleCAhPT0gdGhpcy5sb2NrU2NyaXB0UHViS2V5KSBjb250aW51ZTsgLy8gdXR4byBhZGRyZXNzIGlzIG5vdCBsb2NrIGFkZHJlc3NcbiAgICAgICAgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgb3BSZXR1cm5EYXRhLnRvQ2hhaW5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICB2YWxpZExvY2sgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXZhbGlkTG9jayB8fCAhYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBGYWlsZWQgdG8gZmluZCByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24udmluWzBdLnR4aWR9LiR7dHJhbnNhY3Rpb24udmluWzBdLnZvdXR9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvQ2hhaW46IG9wUmV0dXJuRGF0YS50b0NoYWluLFxuICAgICAgICB0b0FkZHJlc3M6IG9wUmV0dXJuRGF0YS50b0FkZHJlc3MsXG4gICAgICAgIGJyaWRnZUZlZTogb3BSZXR1cm5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgbmV0d29ya0ZlZTogb3BSZXR1cm5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgIGZyb21BZGRyZXNzOiBmcm9tQWRkcmVzcyxcbiAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhpZCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIERvZ2Ugcm9zZW4gZGF0YSBmcm9tIFJwYzogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBEb2dlUnBjVHhPdXRwdXQsXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgRE9HRVxuICAgIGNvbnN0IHdyYXBwZWREb2dlID0gdGhpcy50b2tlbnMuc2VhcmNoKERPR0VfQ0hBSU4sIHtcbiAgICAgIHRva2VuSWQ6IERPR0VfTkFUSVZFX1RPS0VOLFxuICAgIH0pO1xuICAgIGlmICh3cmFwcGVkRG9nZS5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24od3JhcHBlZERvZ2VbMF0sIHRvQ2hhaW4pKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGJveC52YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgICBjb25zdCBwYXJ0MSA9ICgocGFydHNbMV0gPz8gJycpICsgJzAnLnJlcGVhdCg4KSkuc3Vic3RyaW5nKDAsIDgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogRE9HRV9OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRCh3cmFwcGVkRG9nZVswXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogKHBhcnRzWzBdID09PSAnMCcgPyAnJyA6IHBhcnRzWzBdKSArIHBhcnQxLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2RvZ2UvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3BSZXR1cm5EYXRhIHtcbiAgdG9DaGFpbjogc3RyaW5nO1xuICB0b0FkZHJlc3M6IHN0cmluZztcbiAgYnJpZGdlRmVlOiBzdHJpbmc7XG4gIG5ldHdvcmtGZWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFc3Bsb3JhVHhJbnB1dCB7XG4gIHR4aWQ6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xuICBwcmV2b3V0OiB7XG4gICAgc2NyaXB0cHVia2V5OiBzdHJpbmc7XG4gICAgc2NyaXB0cHVia2V5X2FzbTogc3RyaW5nO1xuICAgIHNjcmlwdHB1YmtleV90eXBlOiBzdHJpbmc7XG4gICAgc2NyaXB0cHVia2V5X2FkZHJlc3M6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9O1xuICBzY3JpcHRzaWc6IHN0cmluZztcbiAgc2NyaXB0c2lnX2FzbTogc3RyaW5nO1xuICBpc19jb2luYmFzZTogZmFsc2U7XG4gIHNlcXVlbmNlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNwbG9yYVR4T3V0cHV0IHtcbiAgc2NyaXB0cHVia2V5OiBzdHJpbmc7XG4gIHNjcmlwdHB1YmtleV9hc206IHN0cmluZztcbiAgc2NyaXB0cHVia2V5X3R5cGU6IHN0cmluZztcbiAgc2NyaXB0cHVia2V5X2FkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2dlRXNwbG9yYVRyYW5zYWN0aW9uIHtcbiAgdHhpZDogc3RyaW5nO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGxvY2t0aW1lOiBudW1iZXI7XG4gIHZpbjogQXJyYXk8RXNwbG9yYVR4SW5wdXQ+O1xuICB2b3V0OiBBcnJheTxFc3Bsb3JhVHhPdXRwdXQ+O1xuICBzaXplOiBudW1iZXI7XG4gIHdlaWdodDogbnVtYmVyO1xuICBmZWU6IG51bWJlcjtcbiAgc3RhdHVzOiB7XG4gICAgY29uZmlybWVkOiB0cnVlO1xuICAgIGJsb2NrX2hlaWdodDogbnVtYmVyO1xuICAgIGJsb2NrX2hhc2g6IHN0cmluZztcbiAgICBibG9ja190aW1lOiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9nZVR4SW5wdXQge1xuICB0eElkOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvZ2VUeE91dHB1dCB7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvZ2VUeCB7XG4gIGlkOiBzdHJpbmc7XG4gIGlucHV0czogRG9nZVR4SW5wdXRbXTtcbiAgb3V0cHV0czogRG9nZVR4T3V0cHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9nZVJwY1R4SW5wdXQge1xuICB0eGlkOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbiAgc2NyaXB0U2lnOiB7XG4gICAgYXNtOiBzdHJpbmc7XG4gICAgaGV4OiBzdHJpbmc7XG4gIH07XG4gIHNlcXVlbmNlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9nZVJwY1R4T3V0cHV0IHtcbiAgdmFsdWU6IG51bWJlcjtcbiAgbjogbnVtYmVyO1xuICBzY3JpcHRQdWJLZXk6IHtcbiAgICBhc206IHN0cmluZztcbiAgICBoZXg6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9nZVJwY1RyYW5zYWN0aW9uIHtcbiAgdHhpZDogc3RyaW5nO1xuICBoYXNoOiBzdHJpbmc7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICB2c2l6ZTogbnVtYmVyO1xuICBsb2NrdGltZTogbnVtYmVyO1xuICB2aW46IEFycmF5PERvZ2VScGNUeElucHV0PjtcbiAgdm91dDogQXJyYXk8RG9nZVJwY1R4T3V0cHV0Pjtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/doge/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAevC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,MAEpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,oBAAqB,MAAM,KAAG,YA4CxD,CAAC"}
@@ -1,58 +0,0 @@
1
- import { decodeAddress } from '@rosen-bridge/address-codec';
2
- import { SUPPORTED_CHAINS } from '../const';
3
- import { address } from 'bitcoinjs-lib';
4
- const dogecoinNetwork = {
5
- messagePrefix: '\x19Dogecoin Signed Message:\n',
6
- bech32: 'dc',
7
- bip32: {
8
- public: 0x02facafd,
9
- private: 0x02fac398,
10
- },
11
- pubKeyHash: 0x1e,
12
- scriptHash: 0x16,
13
- wif: 0x9e,
14
- };
15
- /**
16
- * Converts a Dogecoin address to its corresponding output script
17
- * @param addr The Dogecoin address to convert
18
- * @returns The output script as a hex string
19
- */
20
- export const addressToOutputScript = (addr) => {
21
- return address.toOutputScript(addr, dogecoinNetwork).toString('hex');
22
- };
23
- /**
24
- * extracts rosen data from OP_RETURN box script pub key
25
- * @param scriptPubKeyHex
26
- */
27
- export const parseRosenData = (scriptPubKeyHex) => {
28
- // check OP_RETURN opcode
29
- if (scriptPubKeyHex.slice(0, 2) !== '6a')
30
- throw Error(`script does not start with OP_RETURN opcode (6a)`);
31
- // check script length (should not use more than one OP_RETURN)
32
- const dataLength = scriptPubKeyHex.slice(2, 4);
33
- if (parseInt(dataLength, 16) + 2 !== scriptPubKeyHex.length / 2)
34
- throw Error(`script length is unexpected [${parseInt(dataLength, 16) + 3} !== ${scriptPubKeyHex.length / 2}]`);
35
- // parse toChain
36
- const toChainHex = scriptPubKeyHex.slice(4, 6);
37
- const toChainCode = parseInt(toChainHex, 16);
38
- if (toChainCode >= SUPPORTED_CHAINS.length)
39
- throw Error(`invalid toChain code, found [${toChainCode}] but only [${SUPPORTED_CHAINS.length}] chains are supported`);
40
- const toChain = SUPPORTED_CHAINS[toChainCode];
41
- // parse bridgeFee
42
- const bridgeFeeHex = scriptPubKeyHex.slice(6, 22);
43
- const bridgeFee = BigInt('0x' + bridgeFeeHex).toString();
44
- // parse networkFee
45
- const networkFeeHex = scriptPubKeyHex.slice(22, 38);
46
- const networkFee = BigInt('0x' + networkFeeHex).toString();
47
- // parse toAddress
48
- const addressLengthCode = scriptPubKeyHex.slice(38, 40);
49
- const addressHex = scriptPubKeyHex.slice(40, 40 + parseInt(addressLengthCode, 16) * 2);
50
- const toAddress = decodeAddress(toChain, addressHex);
51
- return {
52
- toChain,
53
- toAddress,
54
- bridgeFee,
55
- networkFee,
56
- };
57
- };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2RvZ2UvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sZUFBZSxHQUFHO0lBQ3RCLGFBQWEsRUFBRSxnQ0FBZ0M7SUFDL0MsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUUsVUFBVTtLQUNwQjtJQUNELFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsRUFBRSxJQUFJO0NBQ1YsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFO0lBQzVELE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLGVBQXVCLEVBQWdCLEVBQUU7SUFDdEUseUJBQXlCO0lBQ3pCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSTtRQUN0QyxNQUFNLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2xFLCtEQUErRDtJQUMvRCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUM3RCxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQzFELGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FDM0IsR0FBRyxDQUNKLENBQUM7SUFFSixnQkFBZ0I7SUFDaEIsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNO1FBQ3hDLE1BQU0sS0FBSyxDQUNULGdDQUFnQyxXQUFXLGVBQWUsZ0JBQWdCLENBQUMsTUFBTSx3QkFBd0IsQ0FDMUcsQ0FBQztJQUNKLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTlDLGtCQUFrQjtJQUNsQixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRXpELG1CQUFtQjtJQUNuQixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTNELGtCQUFrQjtJQUNsQixNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQ3RDLEVBQUUsRUFDRixFQUFFLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FDekMsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFckQsT0FBTztRQUNMLE9BQU87UUFDUCxTQUFTO1FBQ1QsU0FBUztRQUNULFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVjb2RlQWRkcmVzcyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWRkcmVzcy1jb2RlYyc7XG5pbXBvcnQgeyBTVVBQT1JURURfQ0hBSU5TIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgT3BSZXR1cm5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRyZXNzLCBuZXR3b3JrcyB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5jb25zdCBkb2dlY29pbk5ldHdvcmsgPSB7XG4gIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOURvZ2Vjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gIGJlY2gzMjogJ2RjJyxcbiAgYmlwMzI6IHtcbiAgICBwdWJsaWM6IDB4MDJmYWNhZmQsXG4gICAgcHJpdmF0ZTogMHgwMmZhYzM5OCxcbiAgfSxcbiAgcHViS2V5SGFzaDogMHgxZSxcbiAgc2NyaXB0SGFzaDogMHgxNixcbiAgd2lmOiAweDllLFxufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIERvZ2Vjb2luIGFkZHJlc3MgdG8gaXRzIGNvcnJlc3BvbmRpbmcgb3V0cHV0IHNjcmlwdFxuICogQHBhcmFtIGFkZHIgVGhlIERvZ2Vjb2luIGFkZHJlc3MgdG8gY29udmVydFxuICogQHJldHVybnMgVGhlIG91dHB1dCBzY3JpcHQgYXMgYSBoZXggc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRyZXNzVG9PdXRwdXRTY3JpcHQgPSAoYWRkcjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGFkZHJlc3MudG9PdXRwdXRTY3JpcHQoYWRkciwgZG9nZWNvaW5OZXR3b3JrKS50b1N0cmluZygnaGV4Jyk7XG59O1xuXG4vKipcbiAqIGV4dHJhY3RzIHJvc2VuIGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94IHNjcmlwdCBwdWIga2V5XG4gKiBAcGFyYW0gc2NyaXB0UHViS2V5SGV4XG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZVJvc2VuRGF0YSA9IChzY3JpcHRQdWJLZXlIZXg6IHN0cmluZyk6IE9wUmV0dXJuRGF0YSA9PiB7XG4gIC8vIGNoZWNrIE9QX1JFVFVSTiBvcGNvZGVcbiAgaWYgKHNjcmlwdFB1YktleUhleC5zbGljZSgwLCAyKSAhPT0gJzZhJylcbiAgICB0aHJvdyBFcnJvcihgc2NyaXB0IGRvZXMgbm90IHN0YXJ0IHdpdGggT1BfUkVUVVJOIG9wY29kZSAoNmEpYCk7XG4gIC8vIGNoZWNrIHNjcmlwdCBsZW5ndGggKHNob3VsZCBub3QgdXNlIG1vcmUgdGhhbiBvbmUgT1BfUkVUVVJOKVxuICBjb25zdCBkYXRhTGVuZ3RoID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDQpO1xuICBpZiAocGFyc2VJbnQoZGF0YUxlbmd0aCwgMTYpICsgMiAhPT0gc2NyaXB0UHViS2V5SGV4Lmxlbmd0aCAvIDIpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgc2NyaXB0IGxlbmd0aCBpcyB1bmV4cGVjdGVkIFske3BhcnNlSW50KGRhdGFMZW5ndGgsIDE2KSArIDN9ICE9PSAke1xuICAgICAgICBzY3JpcHRQdWJLZXlIZXgubGVuZ3RoIC8gMlxuICAgICAgfV1gXG4gICAgKTtcblxuICAvLyBwYXJzZSB0b0NoYWluXG4gIGNvbnN0IHRvQ2hhaW5IZXggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoNCwgNik7XG4gIGNvbnN0IHRvQ2hhaW5Db2RlID0gcGFyc2VJbnQodG9DaGFpbkhleCwgMTYpO1xuICBpZiAodG9DaGFpbkNvZGUgPj0gU1VQUE9SVEVEX0NIQUlOUy5sZW5ndGgpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgaW52YWxpZCB0b0NoYWluIGNvZGUsIGZvdW5kIFske3RvQ2hhaW5Db2RlfV0gYnV0IG9ubHkgWyR7U1VQUE9SVEVEX0NIQUlOUy5sZW5ndGh9XSBjaGFpbnMgYXJlIHN1cHBvcnRlZGBcbiAgICApO1xuICBjb25zdCB0b0NoYWluID0gU1VQUE9SVEVEX0NIQUlOU1t0b0NoYWluQ29kZV07XG5cbiAgLy8gcGFyc2UgYnJpZGdlRmVlXG4gIGNvbnN0IGJyaWRnZUZlZUhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSg2LCAyMik7XG4gIGNvbnN0IGJyaWRnZUZlZSA9IEJpZ0ludCgnMHgnICsgYnJpZGdlRmVlSGV4KS50b1N0cmluZygpO1xuXG4gIC8vIHBhcnNlIG5ldHdvcmtGZWVcbiAgY29uc3QgbmV0d29ya0ZlZUhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSgyMiwgMzgpO1xuICBjb25zdCBuZXR3b3JrRmVlID0gQmlnSW50KCcweCcgKyBuZXR3b3JrRmVlSGV4KS50b1N0cmluZygpO1xuXG4gIC8vIHBhcnNlIHRvQWRkcmVzc1xuICBjb25zdCBhZGRyZXNzTGVuZ3RoQ29kZSA9IHNjcmlwdFB1YktleUhleC5zbGljZSgzOCwgNDApO1xuICBjb25zdCBhZGRyZXNzSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKFxuICAgIDQwLFxuICAgIDQwICsgcGFyc2VJbnQoYWRkcmVzc0xlbmd0aENvZGUsIDE2KSAqIDJcbiAgKTtcbiAgY29uc3QgdG9BZGRyZXNzID0gZGVjb2RlQWRkcmVzcyh0b0NoYWluLCBhZGRyZXNzSGV4KTtcblxuICByZXR1cm4ge1xuICAgIHRvQ2hhaW4sXG4gICAgdG9BZGRyZXNzLFxuICAgIGJyaWRnZUZlZSxcbiAgICBuZXR3b3JrRmVlLFxuICB9O1xufTtcbiJdfQ==
@@ -1 +0,0 @@
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,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,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;gBAET,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAO1E;;;OAGG;IACH,cAAc,gBAAiB,eAAe,KAAG,SAAS,GAAG,SAAS,CAwDpE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,aAAa,WACT,MAAM,KACd,mBAAmB,GAAG,SAAS,CAmChC;CACH"}
@@ -1,105 +0,0 @@
1
- import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
- import { ERGO_CHAIN, ERGO_NATIVE_TOKEN } from '../const';
3
- import { Address, Constant } from 'ergo-lib-wasm-nodejs';
4
- import JsonBigInt from '@rosen-bridge/json-bigint';
5
- export class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor {
6
- chain = ERGO_CHAIN;
7
- lockErgoTree;
8
- constructor(lockAddress, tokens, logger) {
9
- super(lockAddress, tokens, logger);
10
- this.lockErgoTree = Address.from_base58(lockAddress)
11
- .to_ergo_tree()
12
- .to_base16_bytes();
13
- }
14
- /**
15
- * extracts RosenData from given lock transaction in Node format
16
- * @param transaction the lock transaction in Node format
17
- */
18
- extractRawData = (transaction) => {
19
- const baseError = `No rosen data found for tx [${transaction.id}]`;
20
- try {
21
- for (const box of transaction.outputs) {
22
- const boxBaseError = `No rosen data found in box [${box.boxId}]`;
23
- if (box.ergoTree === this.lockErgoTree && box.additionalRegisters?.R4) {
24
- const R4 = Constant.decode_from_base16(box.additionalRegisters.R4);
25
- if (R4) {
26
- const R4Serialized = R4.to_coll_coll_byte();
27
- if (R4Serialized.length >= 5) {
28
- const toChain = Buffer.from(R4Serialized[0]).toString();
29
- const assetTransformation = this.getAssetTransformation(box, toChain);
30
- if (assetTransformation) {
31
- return {
32
- toChain: toChain,
33
- toAddress: Buffer.from(R4Serialized[1]).toString(),
34
- bridgeFee: Buffer.from(R4Serialized[3]).toString(),
35
- networkFee: Buffer.from(R4Serialized[2]).toString(),
36
- fromAddress: Buffer.from(R4Serialized[4]).toString(),
37
- sourceChainTokenId: assetTransformation.from,
38
- amount: assetTransformation.amount,
39
- targetChainTokenId: assetTransformation.to,
40
- sourceTxId: transaction.id,
41
- };
42
- }
43
- }
44
- else
45
- this.logger.debug(boxBaseError +
46
- `: length of data in R4 is less than expected [${R4Serialized.length} < 5]`);
47
- }
48
- }
49
- else {
50
- if (box.ergoTree !== this.lockErgoTree)
51
- this.logger.debug(boxBaseError +
52
- `: invalid ergo tree [${box.ergoTree} !== ${this.lockErgoTree}]`);
53
- else
54
- this.logger.debug(boxBaseError + `: no R4`);
55
- }
56
- }
57
- this.logger.debug(baseError + `: No valid rosen data found in any output box registers`);
58
- }
59
- catch (e) {
60
- this.logger.debug(`An error occurred while getting Ergo rosen data: ${e}`);
61
- if (e instanceof Error && e.stack) {
62
- this.logger.debug(e.stack);
63
- }
64
- }
65
- return undefined;
66
- };
67
- /**
68
- * extracts and builds token transformation from NodeOutputBox and tokenMap
69
- * @param box transaction output
70
- * @param toChain event target chain
71
- */
72
- getAssetTransformation = (box, toChain) => {
73
- // try to build transformation using locked tokens
74
- if (box.assets && box.assets.length > 0) {
75
- for (const lockedToken of box.assets) {
76
- const token = this.tokens.search(ERGO_CHAIN, {
77
- tokenId: lockedToken.tokenId,
78
- });
79
- if (token.length > 0 && Object.hasOwn(token[0], toChain)) {
80
- return {
81
- from: lockedToken.tokenId,
82
- to: this.tokens.getID(token[0], toChain),
83
- amount: lockedToken.amount.toString(),
84
- };
85
- }
86
- }
87
- }
88
- // try to build transformation using locked Erg
89
- const erg = this.tokens.search(ERGO_CHAIN, {
90
- tokenId: ERGO_NATIVE_TOKEN,
91
- });
92
- if (erg.length > 0 && Object.hasOwn(erg[0], toChain)) {
93
- return {
94
- from: ERGO_NATIVE_TOKEN,
95
- to: this.tokens.getID(erg[0], toChain),
96
- amount: box.value.toString(),
97
- };
98
- }
99
- else {
100
- this.logger.debug(`No rosen asset transformation found for box [${box.boxId}]: box assets: ${JsonBigInt.stringify(box.assets)}`);
101
- return undefined;
102
- }
103
- };
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJnb05vZGVSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvZXJnby9FcmdvTm9kZVJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwwQkFBMkM7SUFDNUUsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUM1QixZQUFZLENBQVM7SUFFckIsWUFBWSxXQUFtQixFQUFFLE1BQWdCLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQzthQUNqRCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxHQUFHLENBQUMsV0FBNEIsRUFBeUIsRUFBRTtRQUN2RSxNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ25FLElBQUk7WUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JDLE1BQU0sWUFBWSxHQUFHLCtCQUErQixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUM7Z0JBQ2pFLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEVBQUU7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dCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgRVJHT19DSEFJTiwgRVJHT19OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBOb2RlT3V0cHV0Qm94LCBOb2RlVHJhbnNhY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWRkcmVzcywgQ29uc3RhbnQgfSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuXG5leHBvcnQgY2xhc3MgRXJnb05vZGVSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPE5vZGVUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBjaGFpbiA9IEVSR09fQ0hBSU47XG4gIGxvY2tFcmdvVHJlZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGxvY2tBZGRyZXNzOiBzdHJpbmcsIHRva2VuczogVG9rZW5NYXAsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmxvY2tFcmdvVHJlZSA9IEFkZHJlc3MuZnJvbV9iYXNlNTgobG9ja0FkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIE5vZGUgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBOb2RlIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAodHJhbnNhY3Rpb246IE5vZGVUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGJveCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgIGNvbnN0IGJveEJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGluIGJveCBbJHtib3guYm94SWR9XWA7XG4gICAgICAgIGlmIChib3guZXJnb1RyZWUgPT09IHRoaXMubG9ja0VyZ29UcmVlICYmIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzPy5SNCkge1xuICAgICAgICAgIGNvbnN0IFI0ID0gQ29uc3RhbnQuZGVjb2RlX2Zyb21fYmFzZTE2KGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLlI0KTtcbiAgICAgICAgICBpZiAoUjQpIHtcbiAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IFI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICBpZiAoUjRTZXJpYWxpemVkLmxlbmd0aCA+PSA1KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRvQ2hhaW4gPSBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYXNzZXRUcmFuc2Zvcm1hdGlvbiA9IHRoaXMuZ2V0QXNzZXRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICAgICAgICBib3gsXG4gICAgICAgICAgICAgICAgdG9DaGFpblxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB0b0NoYWluOiB0b0NoYWluLFxuICAgICAgICAgICAgICAgICAgdG9BZGRyZXNzOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMV0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBicmlkZ2VGZWU6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFszXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIG5ldHdvcmtGZWU6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFsyXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIGZyb21BZGRyZXNzOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbNF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uZnJvbSxcbiAgICAgICAgICAgICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgICAgICBzb3VyY2VUeElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYm94QmFzZUVycm9yICtcbiAgICAgICAgICAgICAgICAgIGA6IGxlbmd0aCBvZiBkYXRhIGluIFI0IGlzIGxlc3MgdGhhbiBleHBlY3RlZCBbJHtSNFNlcmlhbGl6ZWQubGVuZ3RofSA8IDVdYFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoYm94LmVyZ29UcmVlICE9PSB0aGlzLmxvY2tFcmdvVHJlZSlcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBib3hCYXNlRXJyb3IgK1xuICAgICAgICAgICAgICAgIGA6IGludmFsaWQgZXJnbyB0cmVlIFske2JveC5lcmdvVHJlZX0gIT09ICR7dGhpcy5sb2NrRXJnb1RyZWV9XWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgZWxzZSB0aGlzLmxvZ2dlci5kZWJ1Zyhib3hCYXNlRXJyb3IgKyBgOiBubyBSNGApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYmFzZUVycm9yICsgYDogTm8gdmFsaWQgcm9zZW4gZGF0YSBmb3VuZCBpbiBhbnkgb3V0cHV0IGJveCByZWdpc3RlcnNgXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBFcmdvIHJvc2VuIGRhdGE6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gTm9kZU91dHB1dEJveCBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogTm9kZU91dHB1dEJveCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCB0b2tlbnNcbiAgICBpZiAoYm94LmFzc2V0cyAmJiBib3guYXNzZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgbG9ja2VkVG9rZW4gb2YgYm94LmFzc2V0cykge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLnNlYXJjaChFUkdPX0NIQUlOLCB7XG4gICAgICAgICAgdG9rZW5JZDogbG9ja2VkVG9rZW4udG9rZW5JZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0b2tlbi5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24odG9rZW5bMF0sIHRvQ2hhaW4pKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZyb206IGxvY2tlZFRva2VuLnRva2VuSWQsXG4gICAgICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIHRvQ2hhaW4pLFxuICAgICAgICAgICAgYW1vdW50OiBsb2NrZWRUb2tlbi5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBFcmdcbiAgICBjb25zdCBlcmcgPSB0aGlzLnRva2Vucy5zZWFyY2goRVJHT19DSEFJTiwge1xuICAgICAgdG9rZW5JZDogRVJHT19OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKGVyZy5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24oZXJnWzBdLCB0b0NoYWluKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogRVJHT19OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRChlcmdbMF0sIHRvQ2hhaW4pLFxuICAgICAgICBhbW91bnQ6IGJveC52YWx1ZS50b1N0cmluZygpLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgYm94IFske1xuICAgICAgICAgIGJveC5ib3hJZFxuICAgICAgICB9XTogYm94IGFzc2V0czogJHtKc29uQmlnSW50LnN0cmluZ2lmeShib3guYXNzZXRzKX1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErgoRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/ergo/ErgoRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IACxE,QAAQ,CAAC,KAAK,UAAc;IAC5B,OAAO,CAAC,aAAa,CAAyB;gBAElC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAS1E;;;OAGG;IACH,cAAc,0BAA2B,MAAM,KAAG,SAAS,GAAG,SAAS,CAiBrE;CACH"}