@rosen-bridge/rosen-extractor 7.2.1 → 7.2.2-f4cdb6ba

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 (38) hide show
  1. package/dist/lib/getRosenData/abstract/types.d.ts +13 -13
  2. package/dist/lib/getRosenData/bitcoin/types.d.ts +66 -66
  3. package/dist/lib/getRosenData/bitcoin/utils.d.ts +1 -1
  4. package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts +13 -16
  5. package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts +13 -16
  6. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts +13 -16
  7. package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts +13 -16
  8. package/dist/lib/getRosenData/const.d.ts +1 -0
  9. package/dist/lib/getRosenData/const.d.ts.map +1 -1
  10. package/dist/lib/getRosenData/const.js +3 -1
  11. package/dist/lib/getRosenData/ergo/types.d.ts +24 -24
  12. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts +6 -0
  13. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts.map +1 -1
  14. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.js +25 -2
  15. package/dist/lib/getRosenData/evm/utils.d.ts +5 -5
  16. package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts +35 -0
  17. package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts.map +1 -0
  18. package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.js +117 -0
  19. package/dist/lib/getRosenData/runes/RunesRosenExtractor.d.ts +35 -0
  20. package/dist/lib/getRosenData/runes/RunesRosenExtractor.d.ts.map +1 -0
  21. package/dist/lib/getRosenData/runes/RunesRosenExtractor.js +124 -0
  22. package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts +35 -0
  23. package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts.map +1 -0
  24. package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.js +117 -0
  25. package/dist/lib/getRosenData/runes/types.d.ts +5 -0
  26. package/dist/lib/getRosenData/runes/types.d.ts.map +1 -0
  27. package/dist/lib/getRosenData/runes/types.js +2 -0
  28. package/dist/lib/getRosenData/runes/utils.d.ts +7 -0
  29. package/dist/lib/getRosenData/runes/utils.d.ts.map +1 -0
  30. package/dist/lib/getRosenData/runes/utils.js +31 -0
  31. package/dist/lib/index.d.ts +3 -0
  32. package/dist/lib/index.d.ts.map +1 -1
  33. package/dist/lib/index.js +4 -1
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +5 -4
  36. package/dist/lib/getRosenData/Utils.d.ts +0 -59
  37. package/dist/lib/getRosenData/Utils.d.ts.map +0 -1
  38. package/dist/lib/getRosenData/Utils.js +0 -96
@@ -1,18 +1,18 @@
1
1
  interface RosenData {
2
- toChain: string;
3
- toAddress: string;
4
- bridgeFee: string;
5
- networkFee: string;
6
- fromAddress: string;
7
- sourceChainTokenId: string;
8
- amount: string;
9
- targetChainTokenId: string;
10
- sourceTxId: string;
2
+ toChain: string;
3
+ toAddress: string;
4
+ bridgeFee: string;
5
+ networkFee: string;
6
+ fromAddress: string;
7
+ sourceChainTokenId: string;
8
+ amount: string;
9
+ targetChainTokenId: string;
10
+ sourceTxId: string;
11
11
  }
12
12
  interface TokenTransformation {
13
- from: string;
14
- to: string;
15
- amount: string;
13
+ from: string;
14
+ to: string;
15
+ amount: string;
16
16
  }
17
17
  export { RosenData, TokenTransformation };
18
- //# sourceMappingURL=types.d.ts.map
18
+ //# sourceMappingURL=types.d.ts.map
@@ -1,89 +1,89 @@
1
1
  export interface OpReturnData {
2
- toChain: string;
3
- toAddress: string;
4
- bridgeFee: string;
5
- networkFee: string;
2
+ toChain: string;
3
+ toAddress: string;
4
+ bridgeFee: string;
5
+ networkFee: string;
6
6
  }
7
7
  export interface EsploraTxInput {
8
- txid: string;
9
- vout: number;
10
- prevout: {
8
+ txid: string;
9
+ vout: number;
10
+ prevout: {
11
+ scriptpubkey: string;
12
+ scriptpubkey_asm: string;
13
+ scriptpubkey_type: string;
14
+ scriptpubkey_address: string;
15
+ value: number;
16
+ };
17
+ scriptsig: string;
18
+ scriptsig_asm: string;
19
+ is_coinbase: false;
20
+ sequence: number;
21
+ }
22
+ export interface EsploraTxOutput {
11
23
  scriptpubkey: string;
12
24
  scriptpubkey_asm: string;
13
25
  scriptpubkey_type: string;
14
26
  scriptpubkey_address: string;
15
27
  value: number;
16
- };
17
- scriptsig: string;
18
- scriptsig_asm: string;
19
- is_coinbase: false;
20
- sequence: number;
21
- }
22
- export interface EsploraTxOutput {
23
- scriptpubkey: string;
24
- scriptpubkey_asm: string;
25
- scriptpubkey_type: string;
26
- scriptpubkey_address: string;
27
- value: number;
28
28
  }
29
29
  export interface BitcoinEsploraTransaction {
30
- txid: string;
31
- version: number;
32
- locktime: number;
33
- vin: Array<EsploraTxInput>;
34
- vout: Array<EsploraTxOutput>;
35
- size: number;
36
- weight: number;
37
- fee: number;
38
- status: {
39
- confirmed: true;
40
- block_height: number;
41
- block_hash: string;
42
- block_time: number;
43
- };
30
+ txid: string;
31
+ version: number;
32
+ locktime: number;
33
+ vin: Array<EsploraTxInput>;
34
+ vout: Array<EsploraTxOutput>;
35
+ size: number;
36
+ weight: number;
37
+ fee: number;
38
+ status: {
39
+ confirmed: true;
40
+ block_height: number;
41
+ block_hash: string;
42
+ block_time: number;
43
+ };
44
44
  }
45
45
  export interface BitcoinTxInput {
46
- txId: string;
47
- index: number;
48
- scriptPubKey: string;
46
+ txId: string;
47
+ index: number;
48
+ scriptPubKey: string;
49
49
  }
50
50
  export interface BitcoinTxOutput {
51
- scriptPubKey: string;
52
- value: bigint;
51
+ scriptPubKey: string;
52
+ value: bigint;
53
53
  }
54
54
  export interface BitcoinTx {
55
- id: string;
56
- inputs: BitcoinTxInput[];
57
- outputs: BitcoinTxOutput[];
55
+ id: string;
56
+ inputs: BitcoinTxInput[];
57
+ outputs: BitcoinTxOutput[];
58
58
  }
59
59
  export interface BitcoinRpcTxInput {
60
- txid: string;
61
- vout: number;
62
- scriptSig: {
63
- asm: string;
64
- hex: string;
65
- };
66
- txinwitness: Array<string>;
67
- sequence: number;
60
+ txid: string;
61
+ vout: number;
62
+ scriptSig: {
63
+ asm: string;
64
+ hex: string;
65
+ };
66
+ txinwitness: Array<string>;
67
+ sequence: number;
68
68
  }
69
69
  export interface BitcoinRpcTxOutput {
70
- value: number;
71
- n: number;
72
- scriptPubKey: {
73
- asm: string;
74
- hex: string;
75
- };
70
+ value: number;
71
+ n: number;
72
+ scriptPubKey: {
73
+ asm: string;
74
+ hex: string;
75
+ };
76
76
  }
77
77
  export interface BitcoinRpcTransaction {
78
- txid: string;
79
- hash: string;
80
- version: number;
81
- size: number;
82
- vsize: number;
83
- weight: number;
84
- locktime: number;
85
- vin: Array<BitcoinRpcTxInput>;
86
- vout: Array<BitcoinRpcTxOutput>;
87
- hex: string;
78
+ txid: string;
79
+ hash: string;
80
+ version: number;
81
+ size: number;
82
+ vsize: number;
83
+ weight: number;
84
+ locktime: number;
85
+ vin: Array<BitcoinRpcTxInput>;
86
+ vout: Array<BitcoinRpcTxOutput>;
87
+ hex: string;
88
88
  }
89
- //# sourceMappingURL=types.d.ts.map
89
+ //# sourceMappingURL=types.d.ts.map
@@ -4,4 +4,4 @@ import { OpReturnData } from './types';
4
4
  * @param scriptPubKeyHex
5
5
  */
6
6
  export declare const parseRosenData: (scriptPubKeyHex: string) => OpReturnData;
7
- //# sourceMappingURL=utils.d.ts.map
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -2,20 +2,17 @@ import { RosenData, TokenTransformation } from '../abstract/types';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { BlockFrostOutputBox, BlockFrostTransaction } from './types';
4
4
  export declare class CardanoBlockFrostRosenExtractor extends AbstractRosenDataExtractor<BlockFrostTransaction> {
5
- readonly chain = 'cardano';
6
- /**
7
- * extracts RosenData from given lock transaction in blockfrost format
8
- * @param transaction the lock transaction in blockfrost format
9
- */
10
- extractRawData: (transaction: BlockFrostTransaction) => RosenData | undefined;
11
- /**
12
- * extracts and builds token transformation from UTXO and tokenMap
13
- * @param box transaction output
14
- * @param toChain event target chain
15
- */
16
- getAssetTransformation: (
17
- box: BlockFrostOutputBox,
18
- toChain: string
19
- ) => TokenTransformation | undefined;
5
+ readonly chain = "cardano";
6
+ /**
7
+ * extracts RosenData from given lock transaction in blockfrost format
8
+ * @param transaction the lock transaction in blockfrost format
9
+ */
10
+ extractRawData: (transaction: BlockFrostTransaction) => RosenData | undefined;
11
+ /**
12
+ * extracts and builds token transformation from UTXO and tokenMap
13
+ * @param box transaction output
14
+ * @param toChain event target chain
15
+ */
16
+ getAssetTransformation: (box: BlockFrostOutputBox, toChain: string) => TokenTransformation | undefined;
20
17
  }
21
- //# sourceMappingURL=CardanoBlockFrostRosenExtractor.d.ts.map
18
+ //# sourceMappingURL=CardanoBlockFrostRosenExtractor.d.ts.map
@@ -2,20 +2,17 @@ import { RosenData, TokenTransformation } from '../abstract/types';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { GraphQLTransaction, GraphQLTxOutput } from './types';
4
4
  export declare class CardanoGraphQLRosenExtractor extends AbstractRosenDataExtractor<GraphQLTransaction> {
5
- readonly chain = 'cardano';
6
- /**
7
- * extracts RosenData from given lock transaction in graphql format
8
- * @param transaction the lock transaction in graphql format
9
- */
10
- extractRawData: (transaction: GraphQLTransaction) => RosenData | undefined;
11
- /**
12
- * extracts and builds token transformation from UTXO and tokenMap
13
- * @param box transaction output
14
- * @param toChain event target chain
15
- */
16
- getAssetTransformation: (
17
- box: GraphQLTxOutput,
18
- toChain: string
19
- ) => TokenTransformation | undefined;
5
+ readonly chain = "cardano";
6
+ /**
7
+ * extracts RosenData from given lock transaction in graphql format
8
+ * @param transaction the lock transaction in graphql format
9
+ */
10
+ extractRawData: (transaction: GraphQLTransaction) => RosenData | undefined;
11
+ /**
12
+ * extracts and builds token transformation from UTXO and tokenMap
13
+ * @param box transaction output
14
+ * @param toChain event target chain
15
+ */
16
+ getAssetTransformation: (box: GraphQLTxOutput, toChain: string) => TokenTransformation | undefined;
20
17
  }
21
- //# sourceMappingURL=CardanoGraphQLRosenExtractor.d.ts.map
18
+ //# sourceMappingURL=CardanoGraphQLRosenExtractor.d.ts.map
@@ -2,20 +2,17 @@ import { RosenData, TokenTransformation } from '../abstract/types';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { Transaction, TransactionOutput } from '@cardano-ogmios/schema';
4
4
  export declare class CardanoOgmiosRosenExtractor extends AbstractRosenDataExtractor<Transaction> {
5
- readonly chain = 'cardano';
6
- /**
7
- * extracts RosenData from given lock transaction in Ogmios format
8
- * @param transaction the lock transaction in Koios format
9
- */
10
- extractRawData: (transaction: Transaction) => RosenData | undefined;
11
- /**
12
- * extracts and builds token transformation from TxOut and tokenMap
13
- * @param box transaction output
14
- * @param toChain event target chain
15
- */
16
- getAssetTransformation: (
17
- box: TransactionOutput,
18
- toChain: string
19
- ) => TokenTransformation | undefined;
5
+ readonly chain = "cardano";
6
+ /**
7
+ * extracts RosenData from given lock transaction in Ogmios format
8
+ * @param transaction the lock transaction in Koios format
9
+ */
10
+ extractRawData: (transaction: Transaction) => RosenData | undefined;
11
+ /**
12
+ * extracts and builds token transformation from TxOut and tokenMap
13
+ * @param box transaction output
14
+ * @param toChain event target chain
15
+ */
16
+ getAssetTransformation: (box: TransactionOutput, toChain: string) => TokenTransformation | undefined;
20
17
  }
21
- //# sourceMappingURL=CardanoOgmiosRosenExtractor.d.ts.map
18
+ //# sourceMappingURL=CardanoOgmiosRosenExtractor.d.ts.map
@@ -2,20 +2,17 @@ import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
2
2
  import { RosenData, TokenTransformation } from '../abstract/types';
3
3
  import { CardanoBoxCandidate } from './types';
4
4
  export declare class CardanoRosenExtractor extends AbstractRosenDataExtractor<string> {
5
- readonly chain = 'cardano';
6
- /**
7
- * extracts RosenData from given lock transaction in CardanoTx format
8
- * @param serializedTransaction stringified transaction in CardanoTx format
9
- */
10
- extractRawData: (serializedTransaction: string) => RosenData | undefined;
11
- /**
12
- * extracts and builds token transformation from CardanoBoxCandidate and tokenMap
13
- * @param box transaction output in CardanoBoxCandidate format
14
- * @param toChain event target chain
15
- */
16
- getAssetTransformation: (
17
- box: CardanoBoxCandidate,
18
- toChain: string
19
- ) => TokenTransformation | undefined;
5
+ readonly chain = "cardano";
6
+ /**
7
+ * extracts RosenData from given lock transaction in CardanoTx format
8
+ * @param serializedTransaction stringified transaction in CardanoTx format
9
+ */
10
+ extractRawData: (serializedTransaction: string) => RosenData | undefined;
11
+ /**
12
+ * extracts and builds token transformation from CardanoBoxCandidate and tokenMap
13
+ * @param box transaction output in CardanoBoxCandidate format
14
+ * @param toChain event target chain
15
+ */
16
+ getAssetTransformation: (box: CardanoBoxCandidate, toChain: string) => TokenTransformation | undefined;
20
17
  }
21
- //# sourceMappingURL=CardanoRosenExtractor.d.ts.map
18
+ //# sourceMappingURL=CardanoRosenExtractor.d.ts.map
@@ -8,5 +8,6 @@ export declare const CARDANO_CHAIN = "cardano";
8
8
  export declare const ERGO_CHAIN = "ergo";
9
9
  export declare const DOGE_CHAIN = "doge";
10
10
  export declare const DOGE_NATIVE_TOKEN = "doge";
11
+ export declare const RUNES_CHAIN = "runes";
11
12
  export declare const SUPPORTED_CHAINS: string[];
12
13
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,gBAAgB,UAO5B,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,gBAAgB,UAQ5B,CAAC"}
@@ -8,6 +8,7 @@ export const CARDANO_CHAIN = 'cardano';
8
8
  export const ERGO_CHAIN = 'ergo';
9
9
  export const DOGE_CHAIN = 'doge';
10
10
  export const DOGE_NATIVE_TOKEN = 'doge';
11
+ export const RUNES_CHAIN = 'runes';
11
12
  export const SUPPORTED_CHAINS = [
12
13
  ERGO_CHAIN,
13
14
  CARDANO_CHAIN,
@@ -15,5 +16,6 @@ export const SUPPORTED_CHAINS = [
15
16
  ETHEREUM_CHAIN,
16
17
  BINANCE_CHAIN,
17
18
  DOGE_CHAIN,
19
+ RUNES_CHAIN,
18
20
  ];
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixVQUFVO0lBQ1YsYUFBYTtJQUNiLGFBQWE7SUFDYixjQUFjO0lBQ2QsYUFBYTtJQUNiLFVBQVU7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENBUkRBTk9fTkFUSVZFX1RPS0VOID0gJ2FkYSc7XG5leHBvcnQgY29uc3QgRVJHT19OQVRJVkVfVE9LRU4gPSAnZXJnJztcbmV4cG9ydCBjb25zdCBCSVRDT0lOX05BVElWRV9UT0tFTiA9ICdidGMnO1xuZXhwb3J0IGNvbnN0IEJJVENPSU5fQ0hBSU4gPSAnYml0Y29pbic7XG5leHBvcnQgY29uc3QgRVRIRVJFVU1fQ0hBSU4gPSAnZXRoZXJldW0nO1xuZXhwb3J0IGNvbnN0IEJJTkFOQ0VfQ0hBSU4gPSAnYmluYW5jZSc7XG5leHBvcnQgY29uc3QgQ0FSREFOT19DSEFJTiA9ICdjYXJkYW5vJztcbmV4cG9ydCBjb25zdCBFUkdPX0NIQUlOID0gJ2VyZ28nO1xuZXhwb3J0IGNvbnN0IERPR0VfQ0hBSU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgRE9HRV9OQVRJVkVfVE9LRU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX0NIQUlOUyA9IFtcbiAgRVJHT19DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgQklUQ09JTl9DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG4gIEJJTkFOQ0VfQ0hBSU4sXG4gIERPR0VfQ0hBSU4sXG5dO1xuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLFVBQVU7SUFDVixhQUFhO0lBQ2IsYUFBYTtJQUNiLGNBQWM7SUFDZCxhQUFhO0lBQ2IsVUFBVTtJQUNWLFdBQVc7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENBUkRBTk9fTkFUSVZFX1RPS0VOID0gJ2FkYSc7XG5leHBvcnQgY29uc3QgRVJHT19OQVRJVkVfVE9LRU4gPSAnZXJnJztcbmV4cG9ydCBjb25zdCBCSVRDT0lOX05BVElWRV9UT0tFTiA9ICdidGMnO1xuZXhwb3J0IGNvbnN0IEJJVENPSU5fQ0hBSU4gPSAnYml0Y29pbic7XG5leHBvcnQgY29uc3QgRVRIRVJFVU1fQ0hBSU4gPSAnZXRoZXJldW0nO1xuZXhwb3J0IGNvbnN0IEJJTkFOQ0VfQ0hBSU4gPSAnYmluYW5jZSc7XG5leHBvcnQgY29uc3QgQ0FSREFOT19DSEFJTiA9ICdjYXJkYW5vJztcbmV4cG9ydCBjb25zdCBFUkdPX0NIQUlOID0gJ2VyZ28nO1xuZXhwb3J0IGNvbnN0IERPR0VfQ0hBSU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgRE9HRV9OQVRJVkVfVE9LRU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgUlVORVNfQ0hBSU4gPSAncnVuZXMnO1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9DSEFJTlMgPSBbXG4gIEVSR09fQ0hBSU4sXG4gIENBUkRBTk9fQ0hBSU4sXG4gIEJJVENPSU5fQ0hBSU4sXG4gIEVUSEVSRVVNX0NIQUlOLFxuICBCSU5BTkNFX0NIQUlOLFxuICBET0dFX0NIQUlOLFxuICBSVU5FU19DSEFJTixcbl07XG4iXX0=
@@ -1,37 +1,37 @@
1
1
  interface NodeAsset {
2
- tokenId: string;
3
- amount: bigint;
2
+ tokenId: string;
3
+ amount: bigint;
4
4
  }
5
5
  interface NodeAdditionalRegisters {
6
- R4?: string;
7
- R5?: string;
8
- R6?: string;
9
- R7?: string;
10
- R8?: string;
11
- R9?: string;
6
+ R4?: string;
7
+ R5?: string;
8
+ R6?: string;
9
+ R7?: string;
10
+ R8?: string;
11
+ R9?: string;
12
12
  }
13
13
  interface NodeOutputBox {
14
- boxId: string;
15
- value: bigint;
16
- ergoTree: string;
17
- creationHeight: bigint | number;
18
- assets?: Array<NodeAsset>;
19
- additionalRegisters?: NodeAdditionalRegisters;
20
- transactionId: string;
21
- index: bigint | number;
14
+ boxId: string;
15
+ value: bigint;
16
+ ergoTree: string;
17
+ creationHeight: bigint | number;
18
+ assets?: Array<NodeAsset>;
19
+ additionalRegisters?: NodeAdditionalRegisters;
20
+ transactionId: string;
21
+ index: bigint | number;
22
22
  }
23
23
  interface NodeInputBox {
24
- boxId: string;
24
+ boxId: string;
25
25
  }
26
26
  interface NodeDataInput {
27
- boxId: string;
27
+ boxId: string;
28
28
  }
29
29
  interface NodeTransaction {
30
- id: string;
31
- inputs: Array<NodeInputBox>;
32
- dataInputs: Array<NodeDataInput>;
33
- outputs: Array<NodeOutputBox>;
34
- size?: bigint;
30
+ id: string;
31
+ inputs: Array<NodeInputBox>;
32
+ dataInputs: Array<NodeDataInput>;
33
+ outputs: Array<NodeOutputBox>;
34
+ size?: bigint;
35
35
  }
36
36
  export { NodeOutputBox, NodeTransaction };
37
- //# sourceMappingURL=types.d.ts.map
37
+ //# sourceMappingURL=types.d.ts.map
@@ -7,11 +7,17 @@ import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
7
7
  export declare class EvmEthersRosenExtractor extends AbstractRosenDataExtractor<TransactionResponse> {
8
8
  readonly chain: string;
9
9
  protected rpcExtractor: EvmRpcRosenExtractor;
10
+ protected supportedTokens: string[];
10
11
  constructor(lockAddress: string, tokens: TokenMap, chain: string, nativeToken: string, logger?: AbstractLogger);
11
12
  /**
12
13
  * extracts RosenData from given lock transaction in ethers TransactionResponse format
13
14
  * @param txRes the lock transaction in ethers TransactionResponse format
14
15
  */
15
16
  extractRawData: (txRes: TransactionResponse) => RosenData | undefined;
17
+ /**
18
+ * update supported tokens
19
+ * @param tokens
20
+ */
21
+ updateSupportedTokens: () => void;
16
22
  }
17
23
  //# sourceMappingURL=EvmEthersRosenExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmEthersRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/evm/EvmEthersRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAe,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,mBAAmB,CAAC;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,oBAAoB,CAAC;gBAG3C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAazB;;;OAGG;IACH,cAAc,UAAW,mBAAmB,KAAG,SAAS,GAAG,SAAS,CAclE;CACH"}
1
+ {"version":3,"file":"EvmEthersRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/evm/EvmEthersRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAe,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,mBAAmB,CAAC;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC7C,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAGlC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAezB;;;OAGG;IACH,cAAc,UAAW,mBAAmB,KAAG,SAAS,GAAG,SAAS,CAuBlE;IAEF;;;OAGG;IACH,qBAAqB,aAOnB;CACH"}
@@ -4,10 +4,13 @@ import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
4
4
  export class EvmEthersRosenExtractor extends AbstractRosenDataExtractor {
5
5
  chain;
6
6
  rpcExtractor;
7
+ supportedTokens;
7
8
  constructor(lockAddress, tokens, chain, nativeToken, logger) {
8
9
  super(lockAddress, tokens, logger);
9
10
  this.chain = chain;
10
11
  this.rpcExtractor = new EvmRpcRosenExtractor(lockAddress, tokens, chain, nativeToken, logger);
12
+ this.updateSupportedTokens();
13
+ this.tokens.registerCallback(this.updateSupportedTokens);
11
14
  }
12
15
  /**
13
16
  * extracts RosenData from given lock transaction in ethers TransactionResponse format
@@ -16,7 +19,15 @@ export class EvmEthersRosenExtractor extends AbstractRosenDataExtractor {
16
19
  extractRawData = (txRes) => {
17
20
  let transaction;
18
21
  try {
19
- transaction = Transaction.from(txRes);
22
+ const toAddress = txRes.to?.toLowerCase();
23
+ if (toAddress &&
24
+ (toAddress === this.lockAddress ||
25
+ this.supportedTokens.includes(toAddress))) {
26
+ transaction = Transaction.from(txRes);
27
+ }
28
+ else {
29
+ return undefined;
30
+ }
20
31
  }
21
32
  catch (e) {
22
33
  this.logger.debug(`An error occurred while deserializing ${this.chain} tx to extract rosen data: ${e}`);
@@ -27,5 +38,17 @@ export class EvmEthersRosenExtractor extends AbstractRosenDataExtractor {
27
38
  }
28
39
  return this.rpcExtractor.extractRawData(transaction);
29
40
  };
41
+ /**
42
+ * update supported tokens
43
+ * @param tokens
44
+ */
45
+ updateSupportedTokens = () => {
46
+ const newSupportedTokens = [];
47
+ this.tokens.getConfig().forEach((tokenSet) => {
48
+ if (Object.hasOwn(tokenSet, this.chain))
49
+ newSupportedTokens.push(tokenSet[this.chain].tokenId);
50
+ });
51
+ this.supportedTokens = newSupportedTokens;
52
+ };
30
53
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1FdGhlcnNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQXVCLE1BQU0sUUFBUSxDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBK0M7SUFDakYsS0FBSyxDQUFTO0lBQ2IsWUFBWSxDQUF1QjtJQUU3QyxZQUNFLFdBQW1CLEVBQ25CLE1BQWdCLEVBQ2hCLEtBQWEsRUFDYixXQUFtQixFQUNuQixNQUF1QjtRQUV2QixLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksb0JBQW9CLENBQzFDLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxLQUEwQixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJO1lBQ0YsV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHlDQUF5QyxJQUFJLENBQUMsS0FBSyw4QkFBOEIsQ0FBQyxFQUFFLENBQ3JGLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlc3BvbnNlIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vRXZtUnBjUm9zZW5FeHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gIHJlYWRvbmx5IGNoYWluOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBycGNFeHRyYWN0b3I6IEV2bVJwY1Jvc2VuRXh0cmFjdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIG5hdGl2ZVRva2VuOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmNoYWluID0gY2hhaW47XG4gICAgdGhpcy5ycGNFeHRyYWN0b3IgPSBuZXcgRXZtUnBjUm9zZW5FeHRyYWN0b3IoXG4gICAgICBsb2NrQWRkcmVzcyxcbiAgICAgIHRva2VucyxcbiAgICAgIGNoYWluLFxuICAgICAgbmF0aXZlVG9rZW4sXG4gICAgICBsb2dnZXJcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gZXRoZXJzIFRyYW5zYWN0aW9uUmVzcG9uc2UgZm9ybWF0XG4gICAqIEBwYXJhbSB0eFJlcyB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBldGhlcnMgVHJhbnNhY3Rpb25SZXNwb25zZSBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHR4UmVzOiBUcmFuc2FjdGlvblJlc3BvbnNlKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBsZXQgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICAgIHRyeSB7XG4gICAgICB0cmFuc2FjdGlvbiA9IFRyYW5zYWN0aW9uLmZyb20odHhSZXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVzZXJpYWxpemluZyAke3RoaXMuY2hhaW59IHR4IHRvIGV4dHJhY3Qgcm9zZW4gZGF0YTogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ycGNFeHRyYWN0b3IuZXh0cmFjdFJhd0RhdGEodHJhbnNhY3Rpb24pO1xuICB9O1xufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1FdGhlcnNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQXVCLE1BQU0sUUFBUSxDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBK0M7SUFDakYsS0FBSyxDQUFTO0lBQ2IsWUFBWSxDQUF1QjtJQUNuQyxlQUFlLENBQVc7SUFFcEMsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLG9CQUFvQixDQUMxQyxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxLQUEwQixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJO1lBQ0YsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUMxQyxJQUNFLFNBQVM7Z0JBQ1QsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFdBQVc7b0JBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzNDO2dCQUNBLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHlDQUF5QyxJQUFJLENBQUMsS0FBSyw4QkFBOEIsQ0FBQyxFQUFFLENBQ3JGLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILHFCQUFxQixHQUFHLEdBQUcsRUFBRTtRQUMzQixNQUFNLGtCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzNDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDckMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDO0lBQzVDLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlc3BvbnNlIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vRXZtUnBjUm9zZW5FeHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gIHJlYWRvbmx5IGNoYWluOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBycGNFeHRyYWN0b3I6IEV2bVJwY1Jvc2VuRXh0cmFjdG9yO1xuICBwcm90ZWN0ZWQgc3VwcG9ydGVkVG9rZW5zOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2NrQWRkcmVzczogc3RyaW5nLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICBuYXRpdmVUb2tlbjogc3RyaW5nLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyXG4gICkge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5jaGFpbiA9IGNoYWluO1xuICAgIHRoaXMucnBjRXh0cmFjdG9yID0gbmV3IEV2bVJwY1Jvc2VuRXh0cmFjdG9yKFxuICAgICAgbG9ja0FkZHJlc3MsXG4gICAgICB0b2tlbnMsXG4gICAgICBjaGFpbixcbiAgICAgIG5hdGl2ZVRva2VuLFxuICAgICAgbG9nZ2VyXG4gICAgKTtcbiAgICB0aGlzLnVwZGF0ZVN1cHBvcnRlZFRva2VucygpO1xuICAgIHRoaXMudG9rZW5zLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcy51cGRhdGVTdXBwb3J0ZWRUb2tlbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gZXRoZXJzIFRyYW5zYWN0aW9uUmVzcG9uc2UgZm9ybWF0XG4gICAqIEBwYXJhbSB0eFJlcyB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBldGhlcnMgVHJhbnNhY3Rpb25SZXNwb25zZSBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHR4UmVzOiBUcmFuc2FjdGlvblJlc3BvbnNlKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBsZXQgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b0FkZHJlc3MgPSB0eFJlcy50bz8udG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChcbiAgICAgICAgdG9BZGRyZXNzICYmXG4gICAgICAgICh0b0FkZHJlc3MgPT09IHRoaXMubG9ja0FkZHJlc3MgfHxcbiAgICAgICAgICB0aGlzLnN1cHBvcnRlZFRva2Vucy5pbmNsdWRlcyh0b0FkZHJlc3MpKVxuICAgICAgKSB7XG4gICAgICAgIHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uZnJvbSh0eFJlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVzZXJpYWxpemluZyAke3RoaXMuY2hhaW59IHR4IHRvIGV4dHJhY3Qgcm9zZW4gZGF0YTogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ycGNFeHRyYWN0b3IuZXh0cmFjdFJhd0RhdGEodHJhbnNhY3Rpb24pO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgc3VwcG9ydGVkIHRva2Vuc1xuICAgKiBAcGFyYW0gdG9rZW5zXG4gICAqL1xuICB1cGRhdGVTdXBwb3J0ZWRUb2tlbnMgPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3U3VwcG9ydGVkVG9rZW5zOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMudG9rZW5zLmdldENvbmZpZygpLmZvckVhY2goKHRva2VuU2V0KSA9PiB7XG4gICAgICBpZiAoT2JqZWN0Lmhhc093bih0b2tlblNldCwgdGhpcy5jaGFpbikpXG4gICAgICAgIG5ld1N1cHBvcnRlZFRva2Vucy5wdXNoKHRva2VuU2V0W3RoaXMuY2hhaW5dLnRva2VuSWQpO1xuICAgIH0pO1xuICAgIHRoaXMuc3VwcG9ydGVkVG9rZW5zID0gbmV3U3VwcG9ydGVkVG9rZW5zO1xuICB9O1xufVxuIl19
@@ -1,8 +1,8 @@
1
1
  interface CallDataRosenData {
2
- toChain: string;
3
- toAddress: string;
4
- bridgeFee: string;
5
- networkFee: string;
2
+ toChain: string;
3
+ toAddress: string;
4
+ bridgeFee: string;
5
+ networkFee: string;
6
6
  }
7
7
  /**
8
8
  * extracts rosen data from transaction's remaining call data
@@ -10,4 +10,4 @@ interface CallDataRosenData {
10
10
  */
11
11
  export declare const parseRosenData: (callData: string) => CallDataRosenData;
12
12
  export {};
13
- //# sourceMappingURL=utils.d.ts.map
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { RosenData } from '../abstract/types';
2
+ import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
+ import { BitcoinEsploraTransaction, EsploraTxOutput, OpReturnData } from '../bitcoin/types';
4
+ import { TokenMap } from '@rosen-bridge/tokens';
5
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
+ import { LockDataChunk } from './types';
7
+ export declare class RunesEsploraRosenExtractor extends AbstractRosenDataExtractor<BitcoinEsploraTransaction> {
8
+ readonly chain = "runes";
9
+ protected lockScriptPubKey: string;
10
+ constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
11
+ /**
12
+ * extracts RosenData from given lock transaction in Esplora format
13
+ * @param transaction the lock transaction in Esplora format
14
+ */
15
+ extractRawData: (transaction: BitcoinEsploraTransaction) => RosenData | undefined;
16
+ /**
17
+ * extracts RosenData chunks from tx outputs
18
+ * @param outputs
19
+ * @return array of LockDataChunk
20
+ */
21
+ getLockDataChunks: (outputs: EsploraTxOutput[]) => LockDataChunk[];
22
+ /**
23
+ * combines lock data chunks into lock data object
24
+ * @param lockDataChunks
25
+ * @return lock data object or undefined
26
+ */
27
+ lockDataFromChunks: (lockDataChunks: LockDataChunk[]) => OpReturnData | undefined;
28
+ /**
29
+ * check lock box exists in the tx outputs
30
+ * @param outputs
31
+ * @return boolean
32
+ */
33
+ validateLock: (outputs: EsploraTxOutput[]) => boolean;
34
+ }
35
+ //# sourceMappingURL=RunesEsploraRosenExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunesEsploraRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/runes/RunesEsploraRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,yBAAyB,CAAC;IACnG,QAAQ,CAAC,KAAK,WAAe;IAC7B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAM1E;;;OAGG;IACH,cAAc,gBACC,yBAAyB,KACrC,SAAS,GAAG,SAAS,CAgDtB;IAEF;;;;OAIG;IACH,iBAAiB,YAAa,eAAe,EAAE,KAAG,aAAa,EAAE,CAmB/D;IAEF;;;;OAIG;IACH,kBAAkB,mBACA,aAAa,EAAE,KAC9B,YAAY,GAAG,SAAS,CAgBzB;IAEF;;;;OAIG;IACH,YAAY,YAAa,eAAe,EAAE,KAAG,OAAO,CAUlD;CACH"}