@rosen-bridge/rosen-extractor 6.3.0 → 6.3.1-ac6ece05

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 (48) hide show
  1. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts +14 -20
  2. package/dist/lib/getRosenData/abstract/types.d.ts +13 -13
  3. package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts +15 -24
  4. package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts +15 -22
  5. package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts +15 -22
  6. package/dist/lib/getRosenData/bitcoin/types.d.ts +66 -66
  7. package/dist/lib/getRosenData/bitcoin/utils.d.ts +1 -1
  8. package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts +13 -16
  9. package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts +13 -16
  10. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts +15 -17
  11. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts.map +1 -1
  12. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.js +25 -19
  13. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts +13 -16
  14. package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts +13 -16
  15. package/dist/lib/getRosenData/cardano/types.d.ts +99 -115
  16. package/dist/lib/getRosenData/cardano/types.d.ts.map +1 -1
  17. package/dist/lib/getRosenData/cardano/types.js +1 -1
  18. package/dist/lib/getRosenData/cardano/utils.d.ts +15 -10
  19. package/dist/lib/getRosenData/cardano/utils.d.ts.map +1 -1
  20. package/dist/lib/getRosenData/cardano/utils.js +93 -1
  21. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts +22 -0
  22. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +1 -0
  23. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.js +104 -0
  24. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts +22 -0
  25. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts.map +1 -0
  26. package/dist/lib/getRosenData/doge/DogeRosenExtractor.js +112 -0
  27. package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.d.ts +22 -0
  28. package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.d.ts.map +1 -0
  29. package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.js +105 -0
  30. package/dist/lib/getRosenData/doge/types.d.ts +89 -0
  31. package/dist/lib/getRosenData/doge/types.d.ts.map +1 -0
  32. package/dist/lib/getRosenData/doge/types.js +2 -0
  33. package/dist/lib/getRosenData/doge/utils.d.ts +13 -0
  34. package/dist/lib/getRosenData/doge/utils.d.ts.map +1 -0
  35. package/dist/lib/getRosenData/doge/utils.js +58 -0
  36. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts +15 -22
  37. package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.d.ts +9 -13
  38. package/dist/lib/getRosenData/ergo/types.d.ts +24 -24
  39. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts +9 -15
  40. package/dist/lib/getRosenData/evm/EvmRosenExtractor.d.ts +9 -15
  41. package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.d.ts +19 -25
  42. package/dist/lib/getRosenData/evm/utils.d.ts +5 -5
  43. package/dist/lib/index.d.ts +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +3 -2
  46. package/dist/lib/getRosenData/Utils.d.ts +0 -59
  47. package/dist/lib/getRosenData/Utils.d.ts.map +0 -1
  48. package/dist/lib/getRosenData/Utils.js +0 -96
@@ -2,24 +2,18 @@ import { RosenTokens, TokenMap } from '@rosen-bridge/tokens';
2
2
  import { RosenData } from './types';
3
3
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
4
  export default abstract class AbstractRosenDataExtractor<TransactionType> {
5
- abstract readonly chain: string;
6
- protected readonly logger: AbstractLogger;
7
- protected readonly tokens: TokenMap;
8
- protected readonly lockAddress: string;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- logger?: AbstractLogger
13
- );
14
- /**
15
- * extracts RosenData from given lock transaction and wrap the amount
16
- */
17
- get: (transaction: TransactionType) => RosenData | undefined;
18
- /**
19
- * extracts RosenData from given lock transaction
20
- */
21
- abstract extractRawData: (
22
- transaction: TransactionType
23
- ) => RosenData | undefined;
5
+ abstract readonly chain: string;
6
+ protected readonly logger: AbstractLogger;
7
+ protected readonly tokens: TokenMap;
8
+ protected readonly lockAddress: string;
9
+ constructor(lockAddress: string, tokens: RosenTokens, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction and wrap the amount
12
+ */
13
+ get: (transaction: TransactionType) => RosenData | undefined;
14
+ /**
15
+ * extracts RosenData from given lock transaction
16
+ */
17
+ abstract extractRawData: (transaction: TransactionType) => RosenData | undefined;
24
18
  }
25
- //# sourceMappingURL=AbstractRosenDataExtractor.d.ts.map
19
+ //# sourceMappingURL=AbstractRosenDataExtractor.d.ts.map
@@ -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
@@ -4,28 +4,19 @@ import { BitcoinEsploraTransaction, EsploraTxOutput } from './types';
4
4
  import { RosenTokens } from '@rosen-bridge/tokens';
5
5
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
6
  export declare class BitcoinEsploraRosenExtractor extends AbstractRosenDataExtractor<BitcoinEsploraTransaction> {
7
- readonly chain = 'bitcoin';
8
- protected lockScriptPubKey: string;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- logger?: AbstractLogger
13
- );
14
- /**
15
- * extracts RosenData from given lock transaction in Esplora format
16
- * @param transaction the lock transaction in Esplora format
17
- */
18
- extractRawData: (
19
- transaction: BitcoinEsploraTransaction
20
- ) => RosenData | undefined;
21
- /**
22
- * extracts and builds token transformation from UTXO and tokenMap
23
- * @param box transaction output
24
- * @param toChain event target chain
25
- */
26
- getAssetTransformation: (
27
- box: EsploraTxOutput,
28
- toChain: string
29
- ) => TokenTransformation | undefined;
7
+ readonly chain = "bitcoin";
8
+ protected lockScriptPubKey: string;
9
+ constructor(lockAddress: string, tokens: RosenTokens, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction in Esplora format
12
+ * @param transaction the lock transaction in Esplora format
13
+ */
14
+ extractRawData: (transaction: BitcoinEsploraTransaction) => RosenData | undefined;
15
+ /**
16
+ * extracts and builds token transformation from UTXO and tokenMap
17
+ * @param box transaction output
18
+ * @param toChain event target chain
19
+ */
20
+ getAssetTransformation: (box: EsploraTxOutput, toChain: string) => TokenTransformation | undefined;
30
21
  }
31
- //# sourceMappingURL=BitcoinEsploraRosenExtractor.d.ts.map
22
+ //# sourceMappingURL=BitcoinEsploraRosenExtractor.d.ts.map
@@ -4,26 +4,19 @@ import { BitcoinTxOutput } from './types';
4
4
  import { RosenTokens } from '@rosen-bridge/tokens';
5
5
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
6
  export declare class BitcoinRosenExtractor extends AbstractRosenDataExtractor<string> {
7
- readonly chain = 'bitcoin';
8
- protected lockScriptPubKey: string;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- logger?: AbstractLogger
13
- );
14
- /**
15
- * extracts RosenData from given lock transaction in BitcoinTx format
16
- * @param serializedTransaction stringified transaction in BitcoinTx format
17
- */
18
- extractRawData: (serializedTransaction: string) => RosenData | undefined;
19
- /**
20
- * extracts and builds token transformation from UTXO and tokenMap
21
- * @param box transaction output
22
- * @param toChain event target chain
23
- */
24
- getAssetTransformation: (
25
- box: BitcoinTxOutput,
26
- toChain: string
27
- ) => TokenTransformation | undefined;
7
+ readonly chain = "bitcoin";
8
+ protected lockScriptPubKey: string;
9
+ constructor(lockAddress: string, tokens: RosenTokens, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction in BitcoinTx format
12
+ * @param serializedTransaction stringified transaction in BitcoinTx format
13
+ */
14
+ extractRawData: (serializedTransaction: string) => RosenData | undefined;
15
+ /**
16
+ * extracts and builds token transformation from UTXO and tokenMap
17
+ * @param box transaction output
18
+ * @param toChain event target chain
19
+ */
20
+ getAssetTransformation: (box: BitcoinTxOutput, toChain: string) => TokenTransformation | undefined;
28
21
  }
29
- //# sourceMappingURL=BitcoinRosenExtractor.d.ts.map
22
+ //# sourceMappingURL=BitcoinRosenExtractor.d.ts.map
@@ -4,26 +4,19 @@ import { BitcoinRpcTransaction, BitcoinRpcTxOutput } from './types';
4
4
  import { RosenTokens } from '@rosen-bridge/tokens';
5
5
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
6
  export declare class BitcoinRpcRosenExtractor extends AbstractRosenDataExtractor<BitcoinRpcTransaction> {
7
- readonly chain = 'bitcoin';
8
- protected lockScriptPubKey: string;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- logger?: AbstractLogger
13
- );
14
- /**
15
- * extracts RosenData from given lock transaction in Rpc format
16
- * @param transaction the lock transaction in Rpc format
17
- */
18
- extractRawData: (transaction: BitcoinRpcTransaction) => RosenData | undefined;
19
- /**
20
- * extracts and builds token transformation from UTXO and tokenMap
21
- * @param box transaction output
22
- * @param toChain event target chain
23
- */
24
- getAssetTransformation: (
25
- box: BitcoinRpcTxOutput,
26
- toChain: string
27
- ) => TokenTransformation | undefined;
7
+ readonly chain = "bitcoin";
8
+ protected lockScriptPubKey: string;
9
+ constructor(lockAddress: string, tokens: RosenTokens, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction in Rpc format
12
+ * @param transaction the lock transaction in Rpc format
13
+ */
14
+ extractRawData: (transaction: BitcoinRpcTransaction) => RosenData | undefined;
15
+ /**
16
+ * extracts and builds token transformation from UTXO and tokenMap
17
+ * @param box transaction output
18
+ * @param toChain event target chain
19
+ */
20
+ getAssetTransformation: (box: BitcoinRpcTxOutput, toChain: string) => TokenTransformation | undefined;
28
21
  }
29
- //# sourceMappingURL=BitcoinRpcRosenExtractor.d.ts.map
22
+ //# sourceMappingURL=BitcoinRpcRosenExtractor.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
@@ -1,21 +1,19 @@
1
1
  import { RosenData, TokenTransformation } from '../abstract/types';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
- import { KoiosTransaction, Utxo } from './types';
3
+ import { KoiosTransaction } from './types';
4
+ import { TransactionOutputJSON } from '@emurgo/cardano-serialization-lib-nodejs';
4
5
  export declare class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor<KoiosTransaction> {
5
- readonly chain = 'cardano';
6
- /**
7
- * extracts RosenData from given lock transaction in Koios format
8
- * @param transaction the lock transaction in Koios format
9
- */
10
- extractRawData: (transaction: KoiosTransaction) => 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: Utxo,
18
- toChain: string
19
- ) => TokenTransformation | undefined;
6
+ readonly chain = "cardano";
7
+ /**
8
+ * extracts RosenData from given lock transaction in Koios format
9
+ * @param transaction the lock transaction in Koios format
10
+ */
11
+ extractRawData: (transaction: KoiosTransaction) => RosenData | undefined;
12
+ /**
13
+ * extracts and builds token transformation from UTXO and tokenMap
14
+ * @param box transaction output
15
+ * @param toChain event target chain
16
+ */
17
+ getAssetTransformation: (box: TransactionOutputJSON, toChain: string) => TokenTransformation | undefined;
20
18
  }
21
- //# sourceMappingURL=CardanoKoiosRosenExtractor.d.ts.map
19
+ //# sourceMappingURL=CardanoKoiosRosenExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardanoKoiosRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoKoiosRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAIjD,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,gBAAgB,CAAC;IAC1F,QAAQ,CAAC,KAAK,aAAiB;IAC/B;;;OAGG;IACH,cAAc,gBAAiB,gBAAgB,KAAG,SAAS,GAAG,SAAS,CAiDrE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,IAAI,WACA,MAAM,KACd,mBAAmB,GAAG,SAAS,CAmChC;CACH"}
1
+ {"version":3,"file":"CardanoKoiosRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/cardano/CardanoKoiosRosenExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,gBAAgB,CAAC;IAC1F,QAAQ,CAAC,KAAK,aAAiB;IAE/B;;;OAGG;IACH,cAAc,gBAAiB,gBAAgB,KAAG,SAAS,GAAG,SAAS,CAkDrE;IAEF;;;;OAIG;IACH,sBAAsB,QACf,qBAAqB,WACjB,MAAM,KACd,mBAAmB,GAAG,SAAS,CAuChC;CACH"}
@@ -2,7 +2,7 @@ import { isPlainObject } from 'lodash-es';
2
2
  import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { CARDANO_CHAIN, CARDANO_NATIVE_TOKEN } from '../const';
4
4
  import JsonBigInt from '@rosen-bridge/json-bigint';
5
- import { parseRosenData } from './utils';
5
+ import { getDictValue, parseRosenData } from './utils';
6
6
  export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
7
7
  chain = CARDANO_CHAIN;
8
8
  /**
@@ -11,13 +11,15 @@ export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
11
11
  */
12
12
  extractRawData = (transaction) => {
13
13
  const baseError = `No rosen data found for tx [${transaction.tx_hash}]`;
14
- const metadata = transaction.metadata;
14
+ if (!transaction.auxiliary_data)
15
+ return undefined;
16
+ const metadata = transaction.auxiliary_data.metadata;
15
17
  try {
16
18
  if (metadata && Object.prototype.hasOwnProperty.call(metadata, '0')) {
17
- const data = metadata['0'];
19
+ const data = getDictValue(JsonBigInt.parse(metadata[0]));
18
20
  const rosenData = parseRosenData(data);
19
21
  if (rosenData) {
20
- const lockOutputs = transaction.outputs.filter((output) => output.payment_addr.bech32 === this.lockAddress);
22
+ const lockOutputs = transaction.body.outputs.filter((output) => output.address === this.lockAddress);
21
23
  for (const output of lockOutputs) {
22
24
  const assetTransformation = this.getAssetTransformation(output, rosenData.toChain);
23
25
  if (assetTransformation) {
@@ -54,18 +56,22 @@ export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
54
56
  */
55
57
  getAssetTransformation = (box, toChain) => {
56
58
  // try to build transformation using locked assets
57
- if (box.asset_list.length > 0) {
58
- for (const asset of box.asset_list) {
59
- const token = this.tokens.search(CARDANO_CHAIN, {
60
- assetName: asset.asset_name,
61
- policyId: asset.policy_id,
62
- });
63
- if (token.length > 0 && Object.hasOwn(token[0], toChain))
64
- return {
65
- from: this.tokens.getID(token[0], CARDANO_CHAIN),
66
- to: this.tokens.getID(token[0], toChain),
67
- amount: asset.quantity,
68
- };
59
+ if (box.amount.multiasset) {
60
+ const assets = box.amount.multiasset;
61
+ for (const policyId of Object.keys(assets)) {
62
+ for (const assetName of Object.keys(assets[policyId])) {
63
+ const token = this.tokens.search(CARDANO_CHAIN, {
64
+ policyId: policyId,
65
+ assetName: assetName,
66
+ });
67
+ if (token.length > 0 && Object.hasOwn(token[0], toChain)) {
68
+ return {
69
+ from: this.tokens.getID(token[0], CARDANO_CHAIN),
70
+ to: this.tokens.getID(token[0], toChain),
71
+ amount: assets[policyId][assetName].toString(),
72
+ };
73
+ }
74
+ }
69
75
  }
70
76
  }
71
77
  // try to build transformation using locked ADA
@@ -76,13 +82,13 @@ export class CardanoKoiosRosenExtractor extends AbstractRosenDataExtractor {
76
82
  return {
77
83
  from: CARDANO_NATIVE_TOKEN,
78
84
  to: this.tokens.getID(lovelace[0], toChain),
79
- amount: box.value,
85
+ amount: box.amount.coin,
80
86
  };
81
87
  }
82
88
  else {
83
- this.logger.debug(`No rosen asset transformation found for box [${box.tx_hash}.${box.tx_index}]: box assets: ${JsonBigInt.stringify(box.asset_list)}`);
89
+ this.logger.debug(`No rosen asset transformation found for box with assets: ${JsonBigInt.stringify(box.amount)}`);
84
90
  return undefined;
85
91
  }
86
92
  };
87
93
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMEJBQTRDO0lBQ2pGLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDL0I7OztPQUdHO0lBQ0gsY0FBYyxHQUFHLENBQUMsV0FBNkIsRUFBeUIsRUFBRTtRQUN4RSxNQUFNLFNBQVMsR0FBRywrQkFBK0IsV0FBVyxDQUFDLE9BQU8sR0FBRyxDQUFDO1FBQ3hFLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSTtZQUNGLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ25FLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLFNBQVMsRUFBRTtvQkFDYixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLElB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O1lBQzlELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSzthQUNsQixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGdEQUFnRCxHQUFHLENBQUMsT0FBTyxJQUN6RCxHQUFHLENBQUMsUUFDTixrQkFBa0IsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDekQsQ0FBQztZQUNGLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYWluT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBDQVJEQU5PX0NIQUlOLCBDQVJEQU5PX05BVElWRV9UT0tFTiB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IEtvaW9zVHJhbnNhY3Rpb24sIFV0eG8gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIENhcmRhbm9Lb2lvc1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8S29pb3NUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBjaGFpbiA9IENBUkRBTk9fQ0hBSU47XG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIEtvaW9zIGZvcm1hdFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gdGhlIGxvY2sgdHJhbnNhY3Rpb24gaW4gS29pb3MgZm9ybWF0XG4gICAqL1xuICBleHRyYWN0UmF3RGF0YSA9ICh0cmFuc2FjdGlvbjogS29pb3NUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLnR4X2hhc2h9XWA7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB0cmFuc2FjdGlvbi5tZXRhZGF0YTtcbiAgICB0cnkge1xuICAgICAgaWYgKG1ldGFkYXRhICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtZXRhZGF0YSwgJzAnKSkge1xuICAgICAgICBjb25zdCBkYXRhID0gbWV0YWRhdGFbJzAnXTtcbiAgICAgICAgY29uc3Qgcm9zZW5EYXRhID0gcGFyc2VSb3NlbkRhdGEoZGF0YSk7XG4gICAgICAgIGlmIChyb3NlbkRhdGEpIHtcbiAgICAgICAgICBjb25zdCBsb2NrT3V0cHV0cyA9IHRyYW5zYWN0aW9uLm91dHB1dHMuZmlsdGVyKFxuICAgICAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0LnBheW1lbnRfYWRkci5iZWNoMzIgPT09IHRoaXMubG9ja0FkZHJlc3NcbiAgICAgICAgICApO1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGxvY2tPdXRwdXRzKSB7XG4gICAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgICAgIHJvc2VuRGF0YS50b0NoYWluXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5yb3NlbkRhdGEsXG4gICAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgICAgICAgICAgYW1vdW50OiBhc3NldFRyYW5zZm9ybWF0aW9uLmFtb3VudCxcbiAgICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhfaGFzaCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBObyB2YWxpZCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBpbiBhbnkgb3V0cHV0IGJveGVzYFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgICAgYDogSW5jb21wbGV0ZSBtZXRhZGF0YS4gaXNQbGFpbjogJHtpc1BsYWluT2JqZWN0KFxuICAgICAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgICAgKX0sIGRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogSW52YWxpZCBtZXRhZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShtZXRhZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBLb2lvczogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBVdHhvLFxuICAgIHRvQ2hhaW46IHN0cmluZ1xuICApOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIGFzc2V0c1xuICAgIGlmIChib3guYXNzZXRfbGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGFzc2V0IG9mIGJveC5hc3NldF9saXN0KSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuc2VhcmNoKENBUkRBTk9fQ0hBSU4sIHtcbiAgICAgICAgICBhc3NldE5hbWU6IGFzc2V0LmFzc2V0X25hbWUsXG4gICAgICAgICAgcG9saWN5SWQ6IGFzc2V0LnBvbGljeV9pZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0b2tlbi5sZW5ndGggPiAwICYmIE9iamVjdC5oYXNPd24odG9rZW5bMF0sIHRvQ2hhaW4pKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgQ0FSREFOT19DSEFJTiksXG4gICAgICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIHRvQ2hhaW4pLFxuICAgICAgICAgICAgYW1vdW50OiBhc3NldC5xdWFudGl0eSxcbiAgICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgQURBXG4gICAgY29uc3QgbG92ZWxhY2UgPSB0aGlzLnRva2Vucy5zZWFyY2goQ0FSREFOT19DSEFJTiwge1xuICAgICAgW3RoaXMudG9rZW5zLmdldElkS2V5KENBUkRBTk9fQ0hBSU4pXTogQ0FSREFOT19OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKGxvdmVsYWNlLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bihsb3ZlbGFjZVswXSwgdG9DaGFpbikpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IENBUkRBTk9fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQobG92ZWxhY2VbMF0sIHRvQ2hhaW4pLFxuICAgICAgICBhbW91bnQ6IGJveC52YWx1ZSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gcm9zZW4gYXNzZXQgdHJhbnNmb3JtYXRpb24gZm91bmQgZm9yIGJveCBbJHtib3gudHhfaGFzaH0uJHtcbiAgICAgICAgICBib3gudHhfaW5kZXhcbiAgICAgICAgfV06IGJveCBhc3NldHM6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoYm94LmFzc2V0X2xpc3QpfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHdkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDBCQUE0QztJQUNqRixLQUFLLEdBQUcsYUFBYSxDQUFDO0lBRS9COzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQTZCLEVBQXlCLEVBQUU7UUFDeEUsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQztRQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUNyRCxJQUFJO1lBQ0YsSUFBSSxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkUsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLFNBQVMsRUFB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cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNqRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO1NBQzVELENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsT0FBTztnQkFDTCxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDM0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSTthQUN4QixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLDREQUE0RCxVQUFVLENBQUMsU0FBUyxDQUM5RSxHQUFHLENBQUMsTUFBTSxDQUNYLEVBQUUsQ0FDSixDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IENBUkRBTk9fQ0hBSU4sIENBUkRBTk9fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgS29pb3NUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBnZXREaWN0VmFsdWUsIHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk91dHB1dEpTT04gfSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcblxuZXhwb3J0IGNsYXNzIENhcmRhbm9Lb2lvc1Jvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8S29pb3NUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBjaGFpbiA9IENBUkRBTk9fQ0hBSU47XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gS29pb3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiB0aGUgbG9jayB0cmFuc2FjdGlvbiBpbiBLb2lvcyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBLb2lvc1RyYW5zYWN0aW9uKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBiYXNlRXJyb3IgPSBgTm8gcm9zZW4gZGF0YSBmb3VuZCBmb3IgdHggWyR7dHJhbnNhY3Rpb24udHhfaGFzaH1dYDtcbiAgICBpZiAoIXRyYW5zYWN0aW9uLmF1eGlsaWFyeV9kYXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdHJhbnNhY3Rpb24uYXV4aWxpYXJ5X2RhdGEubWV0YWRhdGE7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXRhZGF0YSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobWV0YWRhdGEsICcwJykpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGdldERpY3RWYWx1ZShKc29uQmlnSW50LnBhcnNlKG1ldGFkYXRhWzBdKSk7XG4gICAgICAgIGNvbnN0IHJvc2VuRGF0YSA9IHBhcnNlUm9zZW5EYXRhKGRhdGEpO1xuICAgICAgICBpZiAocm9zZW5EYXRhKSB7XG4gICAgICAgICAgY29uc3QgbG9ja091dHB1dHMgPSB0cmFuc2FjdGlvbi5ib2R5Lm91dHB1dHMuZmlsdGVyKFxuICAgICAgICAgICAgKG91dHB1dCkgPT4gb3V0cHV0LmFkZHJlc3MgPT09IHRoaXMubG9ja0FkZHJlc3NcbiAgICAgICAgICApO1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGxvY2tPdXRwdXRzKSB7XG4gICAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgICAgIHJvc2VuRGF0YS50b0NoYWluXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGFzc2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5yb3NlbkRhdGEsXG4gICAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgICAgICAgICAgYW1vdW50OiBhc3NldFRyYW5zZm9ybWF0aW9uLmFtb3VudCxcbiAgICAgICAgICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgICAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhfaGFzaCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBObyB2YWxpZCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBpbiBhbnkgb3V0cHV0IGJveGVzYFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYmFzZUVycm9yICtcbiAgICAgICAgICAgICAgYDogSW5jb21wbGV0ZSBtZXRhZGF0YS4gaXNQbGFpbjogJHtpc1BsYWluT2JqZWN0KFxuICAgICAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgICAgKX0sIGRhdGE6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogSW52YWxpZCBtZXRhZGF0YTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShtZXRhZGF0YSl9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBDYXJkYW5vIHJvc2VuIGRhdGEgZnJvbSBLb2lvczogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBUcmFuc2FjdGlvbk91dHB1dEpTT04sXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIC8vIHRyeSB0byBidWlsZCB0cmFuc2Zvcm1hdGlvbiB1c2luZyBsb2NrZWQgYXNzZXRzXG4gICAgaWYgKGJveC5hbW91bnQubXVsdGlhc3NldCkge1xuICAgICAgY29uc3QgYXNzZXRzID0gYm94LmFtb3VudC5tdWx0aWFzc2V0O1xuICAgICAgZm9yIChjb25zdCBwb2xpY3lJZCBvZiBPYmplY3Qua2V5cyhhc3NldHMpKSB7XG4gICAgICAgIGZvciAoY29uc3QgYXNzZXROYW1lIG9mIE9iamVjdC5rZXlzKGFzc2V0c1twb2xpY3lJZF0pKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5zZWFyY2goQ0FSREFOT19DSEFJTiwge1xuICAgICAgICAgICAgcG9saWN5SWQ6IHBvbGljeUlkLFxuICAgICAgICAgICAgYXNzZXROYW1lOiBhc3NldE5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHRva2VuLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih0b2tlblswXSwgdG9DaGFpbikpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGZyb206IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCBDQVJEQU5PX0NIQUlOKSxcbiAgICAgICAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHRva2VuWzBdLCB0b0NoYWluKSxcbiAgICAgICAgICAgICAgYW1vdW50OiBhc3NldHNbcG9saWN5SWRdW2Fzc2V0TmFtZV0udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBBREFcbiAgICBjb25zdCBsb3ZlbGFjZSA9IHRoaXMudG9rZW5zLnNlYXJjaChDQVJEQU5PX0NIQUlOLCB7XG4gICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoQ0FSREFOT19DSEFJTildOiBDQVJEQU5PX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAobG92ZWxhY2UubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKGxvdmVsYWNlWzBdLCB0b0NoYWluKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogQ0FSREFOT19OQVRJVkVfVE9LRU4sXG4gICAgICAgIHRvOiB0aGlzLnRva2Vucy5nZXRJRChsb3ZlbGFjZVswXSwgdG9DaGFpbiksXG4gICAgICAgIGFtb3VudDogYm94LmFtb3VudC5jb2luLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBObyByb3NlbiBhc3NldCB0cmFuc2Zvcm1hdGlvbiBmb3VuZCBmb3IgYm94IHdpdGggYXNzZXRzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgIGJveC5hbW91bnRcbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -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