@rosen-bridge/rosen-extractor 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/lib/getRosenData/Utils.d.ts +9 -2
  2. package/dist/lib/getRosenData/Utils.d.ts.map +1 -1
  3. package/dist/lib/getRosenData/Utils.js +8 -3
  4. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts +14 -0
  5. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts.map +1 -0
  6. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.js +13 -0
  7. package/dist/lib/getRosenData/abstract/types.d.ts +13 -0
  8. package/dist/lib/getRosenData/abstract/types.d.ts.map +1 -0
  9. package/dist/lib/getRosenData/abstract/types.js +2 -0
  10. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts +17 -0
  11. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts.map +1 -0
  12. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.js +83 -0
  13. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts +18 -0
  14. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts.map +1 -0
  15. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.js +98 -0
  16. package/dist/lib/getRosenData/cardano/types.d.ts +34 -5
  17. package/dist/lib/getRosenData/cardano/types.d.ts.map +1 -1
  18. package/dist/lib/getRosenData/cardano/types.js +1 -1
  19. package/dist/lib/getRosenData/const.d.ts +2 -0
  20. package/dist/lib/getRosenData/const.d.ts.map +1 -1
  21. package/dist/lib/getRosenData/const.js +3 -1
  22. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts +21 -0
  23. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts.map +1 -0
  24. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.js +87 -0
  25. package/dist/lib/getRosenData/ergo/types.d.ts +6 -10
  26. package/dist/lib/getRosenData/ergo/types.d.ts.map +1 -1
  27. package/dist/lib/getRosenData/ergo/types.js +1 -1
  28. package/dist/lib/index.d.ts +4 -5
  29. package/dist/lib/index.d.ts.map +1 -1
  30. package/dist/lib/index.js +4 -4
  31. package/dist/lib/logger/DummyLogger.d.ts +8 -0
  32. package/dist/lib/logger/DummyLogger.d.ts.map +1 -0
  33. package/dist/lib/logger/DummyLogger.js +16 -0
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +4 -4
@@ -0,0 +1,87 @@
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
+ export class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor {
5
+ lockErgoTree;
6
+ constructor(lockAddress, tokens, logger) {
7
+ super(lockAddress, tokens, logger);
8
+ this.lockErgoTree = Address.from_base58(lockAddress)
9
+ .to_ergo_tree()
10
+ .to_base16_bytes();
11
+ }
12
+ /**
13
+ * extracts RosenData from given lock transaction in Node format
14
+ * @param transaction the lock transaction in Node format
15
+ */
16
+ get = (transaction) => {
17
+ try {
18
+ for (const box of transaction.outputs) {
19
+ if (box.ergoTree === this.lockErgoTree && box.additionalRegisters?.R4) {
20
+ const R4 = Constant.decode_from_base16(box.additionalRegisters.R4);
21
+ if (R4) {
22
+ const R4Serialized = R4.to_coll_coll_byte();
23
+ if (R4Serialized.length >= 5) {
24
+ const toChain = Buffer.from(R4Serialized[0]).toString();
25
+ const assetTransformation = this.getAssetTransformation(box, toChain);
26
+ if (assetTransformation) {
27
+ return {
28
+ toChain: toChain,
29
+ toAddress: Buffer.from(R4Serialized[1]).toString(),
30
+ bridgeFee: Buffer.from(R4Serialized[3]).toString(),
31
+ networkFee: Buffer.from(R4Serialized[2]).toString(),
32
+ fromAddress: Buffer.from(R4Serialized[4]).toString(),
33
+ sourceChainTokenId: assetTransformation.from,
34
+ amount: assetTransformation.amount.toString(),
35
+ targetChainTokenId: assetTransformation.to,
36
+ sourceTxId: transaction.id,
37
+ };
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ catch (e) {
45
+ this.logger.debug(`An error occurred while getting Ergo rosen data: ${e}`);
46
+ if (e instanceof Error && e.stack) {
47
+ this.logger.debug(e.stack);
48
+ }
49
+ }
50
+ return undefined;
51
+ };
52
+ /**
53
+ * extracts and builds token transformation from NodeOutputBox and tokenMap
54
+ * @param box transaction output
55
+ * @param toChain event target chain
56
+ */
57
+ getAssetTransformation = (box, toChain) => {
58
+ // try to build transformation using locked tokens
59
+ if (box.assets && box.assets.length > 0) {
60
+ for (const lockedToken of box.assets) {
61
+ const token = this.tokens.search(ERGO_CHAIN, {
62
+ [this.tokens.getIdKey(ERGO_CHAIN)]: lockedToken.tokenId,
63
+ });
64
+ if (token.length > 0)
65
+ return {
66
+ from: this.tokens.getID(token[0], ERGO_CHAIN),
67
+ to: this.tokens.getID(token[0], toChain),
68
+ amount: lockedToken.amount,
69
+ };
70
+ }
71
+ }
72
+ // try to build transformation using locked Erg
73
+ const erg = this.tokens.search(ERGO_CHAIN, {
74
+ [this.tokens.getIdKey(ERGO_CHAIN)]: ERGO_NATIVE_TOKEN,
75
+ });
76
+ if (erg.length > 0) {
77
+ return {
78
+ from: ERGO_NATIVE_TOKEN,
79
+ to: this.tokens.getID(erg[0], toChain),
80
+ amount: box.value,
81
+ };
82
+ }
83
+ else
84
+ return undefined;
85
+ };
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJnb05vZGVSb3NlbkV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9nZXRSb3NlbkRhdGEvZXJnby9FcmdvTm9kZVJvc2VuRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sMEJBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUl6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwwQkFBMkM7SUFDckYsWUFBWSxDQUFTO0lBRXJCLFlBQ0UsV0FBbUIsRUFDbkIsTUFBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQzthQUNqRCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsR0FBRyxHQUFHLENBQUMsV0FBNEIsRUFBeUIsRUFBRTtRQUM1RCxJQUFJO1lBQ0YsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUNyQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxFQUFFO29CQUNyRSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNuRSxJQUFJLEVBQUUsRUFBRTt3QkFDTixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDNUMsSUFBSSxZ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RUFBRTtZQUNsQixPQUFPO2dCQUNMLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUN0QyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUs7YUFDbEIsQ0FBQztTQUNIOztZQUFNLE9BQU8sU0FBUyxDQUFDO0lBQzFCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IEVSR09fQ0hBSU4sIEVSR09fTkFUSVZFX1RPS0VOIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgTm9kZU91dHB1dEJveCwgTm9kZVRyYW5zYWN0aW9uLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RMb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyL0Fic3RyYWN0TG9nZ2VyJztcbmltcG9ydCB7IFJvc2VuVG9rZW5zIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWRkcmVzcywgQ29uc3RhbnQgfSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5cbmV4cG9ydCBjbGFzcyBFcmdvTm9kZVJvc2VuRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8Tm9kZVRyYW5zYWN0aW9uPiB7XG4gIGxvY2tFcmdvVHJlZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBSb3NlblRva2VucyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpO1xuICAgIHRoaXMubG9ja0VyZ29UcmVlID0gQWRkcmVzcy5mcm9tX2Jhc2U1OChsb2NrQWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gTm9kZSBmb3JtYXRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIE5vZGUgZm9ybWF0XG4gICAqL1xuICBnZXQgPSAodHJhbnNhY3Rpb246IE5vZGVUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgaWYgKGJveC5lcmdvVHJlZSA9PT0gdGhpcy5sb2NrRXJnb1RyZWUgJiYgYm94LmFkZGl0aW9uYWxSZWdpc3RlcnM/LlI0KSB7XG4gICAgICAgICAgY29uc3QgUjQgPSBDb25zdGFudC5kZWNvZGVfZnJvbV9iYXNlMTYoYm94LmFkZGl0aW9uYWxSZWdpc3RlcnMuUjQpO1xuICAgICAgICAgIGlmIChSNCkge1xuICAgICAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gUjQudG9fY29sbF9jb2xsX2J5dGUoKTtcbiAgICAgICAgICAgIGlmIChSNFNlcmlhbGl6ZWQubGVuZ3RoID49IDUpIHtcbiAgICAgICAgICAgICAgY29uc3QgdG9DaGFpbiA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFswXSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICBjb25zdCBhc3NldFRyYW5zZm9ybWF0aW9uID0gdGhpcy5nZXRBc3NldFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgICAgIGJveCxcbiAgICAgICAgICAgICAgICB0b0NoYWluXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHRvQ2hhaW46IHRvQ2hhaW4sXG4gICAgICAgICAgICAgICAgICB0b0FkZHJlc3M6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFsxXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIGJyaWRnZUZlZTogQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkWzNdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgbmV0d29ya0ZlZTogQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkWzJdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgZnJvbUFkZHJlc3M6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFs0XSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICAgICAgICAgICAgYW1vdW50OiBhc3NldFRyYW5zZm9ybWF0aW9uLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLnRvLFxuICAgICAgICAgICAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBFcmdvIHJvc2VuIGRhdGE6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gTm9kZU91dHB1dEJveCBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogTm9kZU91dHB1dEJveCxcbiAgICB0b0NoYWluOiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCB0b2tlbnNcbiAgICBpZiAoYm94LmFzc2V0cyAmJiBib3guYXNzZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgbG9ja2VkVG9rZW4gb2YgYm94LmFzc2V0cykge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLnNlYXJjaChFUkdPX0NIQUlOLCB7XG4gICAgICAgICAgW3RoaXMudG9rZW5zLmdldElkS2V5KEVSR09fQ0hBSU4pXTogbG9ja2VkVG9rZW4udG9rZW5JZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0b2tlbi5sZW5ndGggPiAwKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tOiB0aGlzLnRva2Vucy5nZXRJRCh0b2tlblswXSwgRVJHT19DSEFJTiksXG4gICAgICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQodG9rZW5bMF0sIHRvQ2hhaW4pLFxuICAgICAgICAgICAgYW1vdW50OiBsb2NrZWRUb2tlbi5hbW91bnQsXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEVyZ1xuICAgIGNvbnN0IGVyZyA9IHRoaXMudG9rZW5zLnNlYXJjaChFUkdPX0NIQUlOLCB7XG4gICAgICBbdGhpcy50b2tlbnMuZ2V0SWRLZXkoRVJHT19DSEFJTildOiBFUkdPX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAoZXJnLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEVSR09fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQoZXJnWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiBib3gudmFsdWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xufVxuIl19
@@ -1,12 +1,3 @@
1
- interface ErgoRosenData {
2
- toChain: string;
3
- toAddress: string;
4
- networkFee: string;
5
- bridgeFee: string;
6
- fromAddress: string;
7
- tokenId: string;
8
- amount: bigint;
9
- }
10
1
  interface NodeAsset {
11
2
  tokenId: string;
12
3
  amount: bigint;
@@ -42,5 +33,10 @@ interface NodeTransaction {
42
33
  outputs: Array<NodeOutputBox>;
43
34
  size?: bigint;
44
35
  }
45
- export { ErgoRosenData, NodeOutputBox, NodeTransaction };
36
+ interface TokenTransformation {
37
+ from: string;
38
+ to: string;
39
+ amount: bigint;
40
+ }
41
+ export { NodeOutputBox, NodeTransaction, TokenTransformation };
46
42
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/ergo/types.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/ergo/types.ts"],"names":[],"mappings":"AAAA,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2VyZ28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBFcmdvUm9zZW5EYXRhIHtcbiAgdG9DaGFpbjogc3RyaW5nO1xuICB0b0FkZHJlc3M6IHN0cmluZztcbiAgbmV0d29ya0ZlZTogc3RyaW5nO1xuICBicmlkZ2VGZWU6IHN0cmluZztcbiAgZnJvbUFkZHJlc3M6IHN0cmluZztcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBhbW91bnQ6IGJpZ2ludDtcbn1cblxuaW50ZXJmYWNlIE5vZGVBc3NldCB7XG4gIHRva2VuSWQ6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7XG59XG5cbmludGVyZmFjZSBOb2RlQWRkaXRpb25hbFJlZ2lzdGVycyB7XG4gIFI0Pzogc3RyaW5nO1xuICBSNT86IHN0cmluZztcbiAgUjY/OiBzdHJpbmc7XG4gIFI3Pzogc3RyaW5nO1xuICBSOD86IHN0cmluZztcbiAgUjk/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBOb2RlT3V0cHV0Qm94IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgdmFsdWU6IGJpZ2ludDtcbiAgZXJnb1RyZWU6IHN0cmluZztcbiAgY3JlYXRpb25IZWlnaHQ6IGJpZ2ludCB8IG51bWJlcjtcbiAgYXNzZXRzPzogQXJyYXk8Tm9kZUFzc2V0PjtcbiAgYWRkaXRpb25hbFJlZ2lzdGVycz86IE5vZGVBZGRpdGlvbmFsUmVnaXN0ZXJzO1xuICB0cmFuc2FjdGlvbklkOiBzdHJpbmc7XG4gIGluZGV4OiBiaWdpbnQgfCBudW1iZXI7XG59XG5cbmludGVyZmFjZSBOb2RlSW5wdXRCb3gge1xuICBib3hJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZURhdGFJbnB1dCB7XG4gIGJveElkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBOb2RlVHJhbnNhY3Rpb24ge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEFycmF5PE5vZGVJbnB1dEJveD47XG4gIGRhdGFJbnB1dHM6IEFycmF5PE5vZGVEYXRhSW5wdXQ+O1xuICBvdXRwdXRzOiBBcnJheTxOb2RlT3V0cHV0Qm94PjtcbiAgc2l6ZT86IGJpZ2ludDtcbn1cblxuZXhwb3J0IHsgRXJnb1Jvc2VuRGF0YSwgTm9kZU91dHB1dEJveCwgTm9kZVRyYW5zYWN0aW9uIH07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2VyZ28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBOb2RlQXNzZXQge1xuICB0b2tlbklkOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTm9kZUFkZGl0aW9uYWxSZWdpc3RlcnMge1xuICBSND86IHN0cmluZztcbiAgUjU/OiBzdHJpbmc7XG4gIFI2Pzogc3RyaW5nO1xuICBSNz86IHN0cmluZztcbiAgUjg/OiBzdHJpbmc7XG4gIFI5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZU91dHB1dEJveCB7XG4gIGJveElkOiBzdHJpbmc7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGVyZ29UcmVlOiBzdHJpbmc7XG4gIGNyZWF0aW9uSGVpZ2h0OiBiaWdpbnQgfCBudW1iZXI7XG4gIGFzc2V0cz86IEFycmF5PE5vZGVBc3NldD47XG4gIGFkZGl0aW9uYWxSZWdpc3RlcnM/OiBOb2RlQWRkaXRpb25hbFJlZ2lzdGVycztcbiAgdHJhbnNhY3Rpb25JZDogc3RyaW5nO1xuICBpbmRleDogYmlnaW50IHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgTm9kZUlucHV0Qm94IHtcbiAgYm94SWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE5vZGVEYXRhSW5wdXQge1xuICBib3hJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZVRyYW5zYWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgaW5wdXRzOiBBcnJheTxOb2RlSW5wdXRCb3g+O1xuICBkYXRhSW5wdXRzOiBBcnJheTxOb2RlRGF0YUlucHV0PjtcbiAgb3V0cHV0czogQXJyYXk8Tm9kZU91dHB1dEJveD47XG4gIHNpemU/OiBiaWdpbnQ7XG59XG5cbmludGVyZmFjZSBUb2tlblRyYW5zZm9ybWF0aW9uIHtcbiAgZnJvbTogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBhbW91bnQ6IGJpZ2ludDtcbn1cblxuZXhwb3J0IHsgTm9kZU91dHB1dEJveCwgTm9kZVRyYW5zYWN0aW9uLCBUb2tlblRyYW5zZm9ybWF0aW9uIH07XG4iXX0=
@@ -1,6 +1,5 @@
1
- export { getKoiosRosenData } from './getRosenData/cardano/getKoiosRosenData';
2
- export { getOgmiosRosenData } from './getRosenData/cardano/getOgmiosRosenData';
3
- export { CardanoRosenData } from './getRosenData/cardano/types';
4
- export { getNodeRosenData } from './getRosenData/ergo/getNodeRosenData';
5
- export { ErgoRosenData } from './getRosenData/ergo/types';
1
+ export { CardanoKoiosRosenExtractor } from './getRosenData/cardano/CardanoKoiosRosenExtractor';
2
+ export { CardanoOgmiosRosenExtractor } from './getRosenData/cardano/CardanoOgmiosRosenExtractor';
3
+ export { ErgoNodeRosenExtractor } from './getRosenData/ergo/ErgoNodeRosenExtractor';
4
+ export { RosenData } from './getRosenData/abstract/types';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { getKoiosRosenData } from './getRosenData/cardano/getKoiosRosenData';
2
- export { getOgmiosRosenData } from './getRosenData/cardano/getOgmiosRosenData';
3
- export { getNodeRosenData } from './getRosenData/ergo/getNodeRosenData';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRLb2lvc1Jvc2VuRGF0YSB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vZ2V0S29pb3NSb3NlbkRhdGEnO1xuZXhwb3J0IHsgZ2V0T2dtaW9zUm9zZW5EYXRhIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9nZXRPZ21pb3NSb3NlbkRhdGEnO1xuZXhwb3J0IHsgQ2FyZGFub1Jvc2VuRGF0YSB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vdHlwZXMnO1xuXG5leHBvcnQgeyBnZXROb2RlUm9zZW5EYXRhIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvZXJnby9nZXROb2RlUm9zZW5EYXRhJztcbmV4cG9ydCB7IEVyZ29Sb3NlbkRhdGEgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9lcmdvL3R5cGVzJztcbiJdfQ==
1
+ export { CardanoKoiosRosenExtractor } from './getRosenData/cardano/CardanoKoiosRosenExtractor';
2
+ export { CardanoOgmiosRosenExtractor } from './getRosenData/cardano/CardanoOgmiosRosenExtractor';
3
+ export { ErgoNodeRosenExtractor } from './getRosenData/ergo/ErgoNodeRosenExtractor';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDakcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDYXJkYW5vS29pb3NSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vT2dtaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgRXJnb05vZGVSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2VyZ28vRXJnb05vZGVSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBSb3NlbkRhdGEgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9hYnN0cmFjdC90eXBlcyc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import AbstractLogger from './AbstractLogger';
2
+ export default class DummyLogger extends AbstractLogger {
3
+ debug: (_: string) => void;
4
+ error: (_: string) => void;
5
+ info: (_: string) => void;
6
+ warn: (_: string) => void;
7
+ }
8
+ //# sourceMappingURL=DummyLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DummyLogger.d.ts","sourceRoot":"","sources":["../../../lib/logger/DummyLogger.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,cAAc;IACrD,KAAK,MAAO,MAAM,KAAG,IAAI,CAEvB;IAEF,KAAK,MAAO,MAAM,KAAG,IAAI,CAEvB;IAEF,IAAI,MAAO,MAAM,KAAG,IAAI,CAEtB;IAEF,IAAI,MAAO,MAAM,KAAG,IAAI,CAEtB;CACH"}
@@ -0,0 +1,16 @@
1
+ import AbstractLogger from './AbstractLogger';
2
+ export default class DummyLogger extends AbstractLogger {
3
+ debug = (_) => {
4
+ return;
5
+ };
6
+ error = (_) => {
7
+ return;
8
+ };
9
+ info = (_) => {
10
+ return;
11
+ };
12
+ warn = (_) => {
13
+ return;
14
+ };
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHVtbXlMb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbG9nZ2VyL0R1bW15TG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBWSxTQUFRLGNBQWM7SUFDckQsS0FBSyxHQUFHLENBQUMsQ0FBUyxFQUFRLEVBQUU7UUFDMUIsT0FBTztJQUNULENBQUMsQ0FBQztJQUVGLEtBQUssR0FBRyxDQUFDLENBQVMsRUFBUSxFQUFFO1FBQzFCLE9BQU87SUFDVCxDQUFDLENBQUM7SUFFRixJQUFJLEdBQUcsQ0FBQyxDQUFTLEVBQVEsRUFBRTtRQUN6QixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0lBRUYsSUFBSSxHQUFHLENBQUMsQ0FBUyxFQUFRLEVBQUU7UUFDekIsT0FBTztJQUNULENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFic3RyYWN0TG9nZ2VyIGZyb20gJy4vQWJzdHJhY3RMb2dnZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdW1teUxvZ2dlciBleHRlbmRzIEFic3RyYWN0TG9nZ2VyIHtcbiAgZGVidWcgPSAoXzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xuXG4gIGVycm9yID0gKF86IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcblxuICBpbmZvID0gKF86IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcblxuICB3YXJuID0gKF86IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cbiJdfQ==