@rosen-bridge/rosen-extractor 8.0.1 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/getRosenData/abstract/AbstractRosenDataExtractor.d.ts.map +1 -0
- package/dist/getRosenData/abstract/AbstractRosenDataExtractor.js +32 -0
- package/dist/getRosenData/abstract/types.d.ts.map +1 -0
- package/dist/getRosenData/abstract/types.js +2 -0
- package/dist/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.js +105 -0
- package/dist/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin/BitcoinRosenExtractor.js +113 -0
- package/dist/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin/BitcoinRpcRosenExtractor.js +106 -0
- package/dist/{lib/getRosenData/doge → getRosenData/bitcoin}/types.d.ts.map +1 -1
- package/dist/getRosenData/bitcoin/types.js +2 -0
- package/dist/getRosenData/bitcoin/utils.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin/utils.js +17 -0
- package/dist/{lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts → getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor.d.ts} +2 -2
- package/dist/getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor.js +114 -0
- package/dist/{lib/getRosenData/runes/RunesRosenExtractor.d.ts → getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor.d.ts} +2 -2
- package/dist/getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor.js +121 -0
- package/dist/{lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts → getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor.d.ts} +2 -2
- package/dist/getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor.js +114 -0
- package/dist/getRosenData/bitcoin-runes/constants.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin-runes/constants.js +2 -0
- package/dist/getRosenData/bitcoin-runes/types.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin-runes/types.js +2 -0
- package/dist/getRosenData/bitcoin-runes/utils.d.ts.map +1 -0
- package/dist/getRosenData/bitcoin-runes/utils.js +9 -0
- package/dist/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/cardano/CardanoBlockFrostRosenExtractor.js +94 -0
- package/dist/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/cardano/CardanoGraphQLRosenExtractor.js +92 -0
- package/dist/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/cardano/CardanoKoiosRosenExtractor.js +95 -0
- package/dist/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/cardano/CardanoOgmiosRosenExtractor.js +97 -0
- package/dist/getRosenData/cardano/CardanoRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/cardano/CardanoRosenExtractor.js +88 -0
- package/dist/getRosenData/cardano/types.d.ts.map +1 -0
- package/dist/getRosenData/cardano/types.js +2 -0
- package/dist/getRosenData/cardano/utils.d.ts.map +1 -0
- package/dist/getRosenData/cardano/utils.js +32 -0
- package/dist/{lib/getRosenData → getRosenData}/const.d.ts +1 -1
- package/dist/getRosenData/const.d.ts.map +1 -0
- package/dist/getRosenData/const.js +21 -0
- package/dist/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/doge/DogeEsploraRosenExtractor.js +104 -0
- package/dist/getRosenData/doge/DogeRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/doge/DogeRosenExtractor.js +112 -0
- package/dist/getRosenData/doge/DogeRpcRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/doge/DogeRpcRosenExtractor.js +105 -0
- package/dist/getRosenData/doge/types.d.ts.map +1 -0
- package/dist/getRosenData/doge/types.js +2 -0
- package/dist/getRosenData/doge/utils.d.ts.map +1 -0
- package/dist/getRosenData/doge/utils.js +58 -0
- package/dist/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/ergo/ErgoNodeRosenExtractor.js +105 -0
- package/dist/getRosenData/ergo/ErgoRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/ergo/ErgoRosenExtractor.js +33 -0
- package/dist/getRosenData/ergo/types.d.ts.map +1 -0
- package/dist/getRosenData/ergo/types.js +2 -0
- package/dist/getRosenData/evm/EvmEthersRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/evm/EvmEthersRosenExtractor.js +54 -0
- package/dist/getRosenData/evm/EvmRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/evm/EvmRosenExtractor.js +31 -0
- package/dist/getRosenData/evm/EvmRpcRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/evm/EvmRpcRosenExtractor.js +123 -0
- package/dist/getRosenData/evm/utils.d.ts.map +1 -0
- package/dist/getRosenData/evm/utils.js +9 -0
- package/dist/{lib/index.d.ts → index.d.ts} +3 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +31 -0
- package/package.json +11 -16
- package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.js +0 -32
- package/dist/lib/getRosenData/abstract/types.d.ts.map +0 -1
- package/dist/lib/getRosenData/abstract/types.js +0 -2
- package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.js +0 -105
- package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.js +0 -113
- package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.js +0 -106
- package/dist/lib/getRosenData/bitcoin/types.d.ts.map +0 -1
- package/dist/lib/getRosenData/bitcoin/types.js +0 -2
- package/dist/lib/getRosenData/bitcoin/utils.d.ts.map +0 -1
- package/dist/lib/getRosenData/bitcoin/utils.js +0 -17
- package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.js +0 -94
- package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.js +0 -92
- package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.js +0 -95
- package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.js +0 -97
- package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.js +0 -88
- package/dist/lib/getRosenData/cardano/types.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/types.js +0 -2
- package/dist/lib/getRosenData/cardano/utils.d.ts.map +0 -1
- package/dist/lib/getRosenData/cardano/utils.js +0 -32
- package/dist/lib/getRosenData/const.d.ts.map +0 -1
- package/dist/lib/getRosenData/const.js +0 -21
- package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.js +0 -104
- package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/doge/DogeRosenExtractor.js +0 -112
- package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/doge/DogeRpcRosenExtractor.js +0 -105
- package/dist/lib/getRosenData/doge/types.js +0 -2
- package/dist/lib/getRosenData/doge/utils.d.ts.map +0 -1
- package/dist/lib/getRosenData/doge/utils.js +0 -58
- package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.js +0 -105
- package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.js +0 -33
- package/dist/lib/getRosenData/ergo/types.d.ts.map +0 -1
- package/dist/lib/getRosenData/ergo/types.js +0 -2
- package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.js +0 -54
- package/dist/lib/getRosenData/evm/EvmRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/evm/EvmRosenExtractor.js +0 -31
- package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.js +0 -123
- package/dist/lib/getRosenData/evm/utils.d.ts.map +0 -1
- package/dist/lib/getRosenData/evm/utils.js +0 -9
- package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.js +0 -113
- package/dist/lib/getRosenData/runes/RunesRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/runes/RunesRosenExtractor.js +0 -120
- package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts.map +0 -1
- package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.js +0 -113
- package/dist/lib/getRosenData/runes/constants.d.ts.map +0 -1
- package/dist/lib/getRosenData/runes/constants.js +0 -2
- package/dist/lib/getRosenData/runes/types.d.ts.map +0 -1
- package/dist/lib/getRosenData/runes/types.js +0 -2
- package/dist/lib/getRosenData/runes/utils.d.ts.map +0 -1
- package/dist/lib/getRosenData/runes/utils.js +0 -9
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -25
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -2
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -31
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{lib/getRosenData → getRosenData}/abstract/AbstractRosenDataExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/abstract/types.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/bitcoin/BitcoinEsploraRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/bitcoin/BitcoinRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/bitcoin/BitcoinRpcRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/bitcoin/types.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/bitcoin/utils.d.ts +0 -0
- /package/dist/{lib/getRosenData/runes → getRosenData/bitcoin-runes}/constants.d.ts +0 -0
- /package/dist/{lib/getRosenData/runes → getRosenData/bitcoin-runes}/types.d.ts +0 -0
- /package/dist/{lib/getRosenData/runes → getRosenData/bitcoin-runes}/utils.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoBlockFrostRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoGraphQLRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoKoiosRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoOgmiosRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/CardanoRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/types.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/cardano/utils.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/doge/DogeEsploraRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/doge/DogeRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/doge/DogeRpcRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/doge/types.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/doge/utils.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/ergo/ErgoNodeRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/ergo/ErgoRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/ergo/types.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/evm/EvmEthersRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/evm/EvmRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/evm/EvmRpcRosenExtractor.d.ts +0 -0
- /package/dist/{lib/getRosenData → getRosenData}/evm/utils.d.ts +0 -0
- /package/dist/{lib/types.d.ts → types.d.ts} +0 -0
- /package/dist/{lib/utils.d.ts → utils.d.ts} +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
2
|
+
import { Transaction } from 'ergo-lib-wasm-nodejs';
|
|
3
|
+
import { ErgoNodeRosenExtractor } from './ErgoNodeRosenExtractor';
|
|
4
|
+
import JsonBigInt from '@rosen-bridge/json-bigint';
|
|
5
|
+
import { ERGO_CHAIN } from '../const';
|
|
6
|
+
export class ErgoRosenExtractor extends AbstractRosenDataExtractor {
|
|
7
|
+
chain = ERGO_CHAIN;
|
|
8
|
+
nodeExtractor;
|
|
9
|
+
constructor(lockAddress, tokens, logger) {
|
|
10
|
+
super(lockAddress, tokens, logger);
|
|
11
|
+
this.nodeExtractor = new ErgoNodeRosenExtractor(lockAddress, tokens, logger);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* extracts RosenData from given lock transaction in wasm sigma serialized bytes
|
|
15
|
+
* @param serializedTransaction the sigma serialized bytes of transaction
|
|
16
|
+
*/
|
|
17
|
+
extractRawData = (serializedTransaction) => {
|
|
18
|
+
let transaction;
|
|
19
|
+
try {
|
|
20
|
+
transaction = Transaction.sigma_parse_bytes(Uint8Array.from(Buffer.from(serializedTransaction, 'hex')));
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
this.logger.debug(`An error occurred while deserializing Ergo tx to extract rosen data: ${e}`);
|
|
24
|
+
if (e instanceof Error && e.stack) {
|
|
25
|
+
this.logger.debug(e.stack);
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const nodeTx = JsonBigInt.parse(transaction.to_json());
|
|
30
|
+
return this.nodeExtractor.extractRawData(nodeTx);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJnb1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9lcmdvL0VyZ29Sb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBa0M7SUFDL0QsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUNwQixhQUFhLENBQXlCO0lBRTlDLFlBQVksV0FBbUIsRUFBRSxNQUFnQixFQUFFLE1BQXVCO1FBQ3hFLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsQ0FDN0MsV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxxQkFBNkIsRUFBeUIsRUFBRTtRQUN4RSxJQUFJLFdBQXdCLENBQUM7UUFDN0IsSUFBSSxDQUFDO1lBQ0gsV0FBVyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDekMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQzNELENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHdFQUF3RSxDQUFDLEVBQUUsQ0FDNUUsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFvQixDQUFDO1FBQzFFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEgfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgTm9kZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBFcmdvTm9kZVJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9FcmdvTm9kZVJvc2VuRXh0cmFjdG9yJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgRVJHT19DSEFJTiB9IGZyb20gJy4uL2NvbnN0JztcblxuZXhwb3J0IGNsYXNzIEVyZ29Sb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPHN0cmluZz4ge1xuICByZWFkb25seSBjaGFpbiA9IEVSR09fQ0hBSU47XG4gIHByaXZhdGUgbm9kZUV4dHJhY3RvcjogRXJnb05vZGVSb3NlbkV4dHJhY3RvcjtcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5ub2RlRXh0cmFjdG9yID0gbmV3IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IoXG4gICAgICBsb2NrQWRkcmVzcyxcbiAgICAgIHRva2VucyxcbiAgICAgIGxvZ2dlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiB3YXNtIHNpZ21hIHNlcmlhbGl6ZWQgYnl0ZXNcbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUcmFuc2FjdGlvbiB0aGUgc2lnbWEgc2VyaWFsaXplZCBieXRlcyBvZiB0cmFuc2FjdGlvblxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoc2VyaWFsaXplZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uc2lnbWFfcGFyc2VfYnl0ZXMoXG4gICAgICAgIFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShzZXJpYWxpemVkVHJhbnNhY3Rpb24sICdoZXgnKSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nIEVyZ28gdHggdG8gZXh0cmFjdCByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IG5vZGVUeCA9IEpzb25CaWdJbnQucGFyc2UodHJhbnNhY3Rpb24udG9fanNvbigpKSBhcyBOb2RlVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRoaXMubm9kZUV4dHJhY3Rvci5leHRyYWN0UmF3RGF0YShub2RlVHgpO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
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,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2VyZ28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBOb2RlQXNzZXQge1xuICB0b2tlbklkOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTm9kZUFkZGl0aW9uYWxSZWdpc3RlcnMge1xuICBSND86IHN0cmluZztcbiAgUjU/OiBzdHJpbmc7XG4gIFI2Pzogc3RyaW5nO1xuICBSNz86IHN0cmluZztcbiAgUjg/OiBzdHJpbmc7XG4gIFI5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZU91dHB1dEJveCB7XG4gIGJveElkOiBzdHJpbmc7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGVyZ29UcmVlOiBzdHJpbmc7XG4gIGNyZWF0aW9uSGVpZ2h0OiBiaWdpbnQgfCBudW1iZXI7XG4gIGFzc2V0cz86IEFycmF5PE5vZGVBc3NldD47XG4gIGFkZGl0aW9uYWxSZWdpc3RlcnM/OiBOb2RlQWRkaXRpb25hbFJlZ2lzdGVycztcbiAgdHJhbnNhY3Rpb25JZDogc3RyaW5nO1xuICBpbmRleDogYmlnaW50IHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgTm9kZUlucHV0Qm94IHtcbiAgYm94SWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE5vZGVEYXRhSW5wdXQge1xuICBib3hJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZVRyYW5zYWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgaW5wdXRzOiBBcnJheTxOb2RlSW5wdXRCb3g+O1xuICBkYXRhSW5wdXRzOiBBcnJheTxOb2RlRGF0YUlucHV0PjtcbiAgb3V0cHV0czogQXJyYXk8Tm9kZU91dHB1dEJveD47XG4gIHNpemU/OiBiaWdpbnQ7XG59XG5cbmV4cG9ydCB7IE5vZGVPdXRwdXRCb3gsIE5vZGVUcmFuc2FjdGlvbiB9O1xuIl19
|
|
@@ -0,0 +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;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,GAAI,OAAO,mBAAmB,KAAG,SAAS,GAAG,SAAS,CAuBlE;IAEF;;;OAGG;IACH,qBAAqB,aAOnB;CACH"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
2
|
+
import { Transaction } from 'ethers';
|
|
3
|
+
import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
|
|
4
|
+
export class EvmEthersRosenExtractor extends AbstractRosenDataExtractor {
|
|
5
|
+
chain;
|
|
6
|
+
rpcExtractor;
|
|
7
|
+
supportedTokens;
|
|
8
|
+
constructor(lockAddress, tokens, chain, nativeToken, logger) {
|
|
9
|
+
super(lockAddress, tokens, logger);
|
|
10
|
+
this.chain = chain;
|
|
11
|
+
this.rpcExtractor = new EvmRpcRosenExtractor(lockAddress, tokens, chain, nativeToken, logger);
|
|
12
|
+
this.updateSupportedTokens();
|
|
13
|
+
this.tokens.registerCallback(this.updateSupportedTokens);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* extracts RosenData from given lock transaction in ethers TransactionResponse format
|
|
17
|
+
* @param txRes the lock transaction in ethers TransactionResponse format
|
|
18
|
+
*/
|
|
19
|
+
extractRawData = (txRes) => {
|
|
20
|
+
let transaction;
|
|
21
|
+
try {
|
|
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
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
this.logger.debug(`An error occurred while deserializing ${this.chain} tx to extract rosen data: ${e}`);
|
|
34
|
+
if (e instanceof Error && e.stack) {
|
|
35
|
+
this.logger.debug(e.stack);
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
return this.rpcExtractor.extractRawData(transaction);
|
|
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
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1FdGhlcnNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQXVCLE1BQU0sUUFBUSxDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBK0M7SUFDakYsS0FBSyxDQUFTO0lBQ2IsWUFBWSxDQUF1QjtJQUNuQyxlQUFlLENBQVc7SUFFcEMsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLG9CQUFvQixDQUMxQyxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxLQUEwQixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQzFDLElBQ0UsU0FBUztnQkFDVCxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsV0FBVztvQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDM0MsQ0FBQztnQkFDRCxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YseUNBQXlDLElBQUksQ0FBQyxLQUFLLDhCQUE4QixDQUFDLEVBQUUsQ0FDckYsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gscUJBQXFCLEdBQUcsR0FBRyxFQUFFO1FBQzNCLE1BQU0sa0JBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDNUMsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEgfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uUmVzcG9uc2UgfSBmcm9tICdldGhlcnMnO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEV2bVJwY1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9Fdm1ScGNSb3NlbkV4dHJhY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgcmVhZG9ubHkgY2hhaW46IHN0cmluZztcbiAgcHJvdGVjdGVkIHJwY0V4dHJhY3RvcjogRXZtUnBjUm9zZW5FeHRyYWN0b3I7XG4gIHByb3RlY3RlZCBzdXBwb3J0ZWRUb2tlbnM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIG5hdGl2ZVRva2VuOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmNoYWluID0gY2hhaW47XG4gICAgdGhpcy5ycGNFeHRyYWN0b3IgPSBuZXcgRXZtUnBjUm9zZW5FeHRyYWN0b3IoXG4gICAgICBsb2NrQWRkcmVzcyxcbiAgICAgIHRva2VucyxcbiAgICAgIGNoYWluLFxuICAgICAgbmF0aXZlVG9rZW4sXG4gICAgICBsb2dnZXJcbiAgICApO1xuICAgIHRoaXMudXBkYXRlU3VwcG9ydGVkVG9rZW5zKCk7XG4gICAgdGhpcy50b2tlbnMucmVnaXN0ZXJDYWxsYmFjayh0aGlzLnVwZGF0ZVN1cHBvcnRlZFRva2Vucyk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBldGhlcnMgVHJhbnNhY3Rpb25SZXNwb25zZSBmb3JtYXRcbiAgICogQHBhcmFtIHR4UmVzIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIGV0aGVycyBUcmFuc2FjdGlvblJlc3BvbnNlIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAodHhSZXM6IFRyYW5zYWN0aW9uUmVzcG9uc2UpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRvQWRkcmVzcyA9IHR4UmVzLnRvPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKFxuICAgICAgICB0b0FkZHJlc3MgJiZcbiAgICAgICAgKHRvQWRkcmVzcyA9PT0gdGhpcy5sb2NrQWRkcmVzcyB8fFxuICAgICAgICAgIHRoaXMuc3VwcG9ydGVkVG9rZW5zLmluY2x1ZGVzKHRvQWRkcmVzcykpXG4gICAgICApIHtcbiAgICAgICAgdHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5mcm9tKHR4UmVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nICR7dGhpcy5jaGFpbn0gdHggdG8gZXh0cmFjdCByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJwY0V4dHJhY3Rvci5leHRyYWN0UmF3RGF0YSh0cmFuc2FjdGlvbik7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBzdXBwb3J0ZWQgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbnNcbiAgICovXG4gIHVwZGF0ZVN1cHBvcnRlZFRva2VucyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTdXBwb3J0ZWRUb2tlbnM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy50b2tlbnMuZ2V0Q29uZmlnKCkuZm9yRWFjaCgodG9rZW5TZXQpID0+IHtcbiAgICAgIGlmIChPYmplY3QuaGFzT3duKHRva2VuU2V0LCB0aGlzLmNoYWluKSlcbiAgICAgICAgbmV3U3VwcG9ydGVkVG9rZW5zLnB1c2godG9rZW5TZXRbdGhpcy5jaGFpbl0udG9rZW5JZCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdXBwb3J0ZWRUb2tlbnMgPSBuZXdTdXBwb3J0ZWRUb2tlbnM7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/evm/EvmRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,iBAAkB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IACvE,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,GAAI,uBAAuB,MAAM,KAAG,SAAS,GAAG,SAAS,CAcrE;CACH"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
2
|
+
import { Transaction } from 'ethers';
|
|
3
|
+
import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
|
|
4
|
+
export class EvmRosenExtractor extends AbstractRosenDataExtractor {
|
|
5
|
+
chain;
|
|
6
|
+
rpcExtractor;
|
|
7
|
+
constructor(lockAddress, tokens, chain, nativeToken, logger) {
|
|
8
|
+
super(lockAddress, tokens, logger);
|
|
9
|
+
this.chain = chain;
|
|
10
|
+
this.rpcExtractor = new EvmRpcRosenExtractor(lockAddress, tokens, chain, nativeToken, logger);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* extracts RosenData from given lock transaction in ethers Transaction format
|
|
14
|
+
* @param serializedTransaction signed serialized transaction in ethers Transaction format
|
|
15
|
+
*/
|
|
16
|
+
extractRawData = (serializedTransaction) => {
|
|
17
|
+
let transaction;
|
|
18
|
+
try {
|
|
19
|
+
transaction = Transaction.from('0x' + serializedTransaction);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
this.logger.debug(`An error occurred while deserializing ${this.chain} tx to extract rosen data: ${e}`);
|
|
23
|
+
if (e instanceof Error && e.stack) {
|
|
24
|
+
this.logger.debug(e.stack);
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
return this.rpcExtractor.extractRawData(transaction);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1Sb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDBCQUFrQztJQUM5RCxLQUFLLENBQVM7SUFDYixZQUFZLENBQXVCO0lBRTdDLFlBQ0UsV0FBbUIsRUFDbkIsTUFBZ0IsRUFDaEIsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLE1BQXVCO1FBRXZCLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxvQkFBb0IsQ0FDMUMsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxFQUNYLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLHFCQUE2QixFQUF5QixFQUFFO1FBQ3hFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHlDQUF5QyxJQUFJLENBQUMsS0FBSyw4QkFBOEIsQ0FBQyxFQUFFLENBQ3JGLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vRXZtUnBjUm9zZW5FeHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRXZtUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxzdHJpbmc+IHtcbiAgcmVhZG9ubHkgY2hhaW46IHN0cmluZztcbiAgcHJvdGVjdGVkIHJwY0V4dHJhY3RvcjogRXZtUnBjUm9zZW5FeHRyYWN0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICAgbmF0aXZlVG9rZW46IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpO1xuICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICB0aGlzLnJwY0V4dHJhY3RvciA9IG5ldyBFdm1ScGNSb3NlbkV4dHJhY3RvcihcbiAgICAgIGxvY2tBZGRyZXNzLFxuICAgICAgdG9rZW5zLFxuICAgICAgY2hhaW4sXG4gICAgICBuYXRpdmVUb2tlbixcbiAgICAgIGxvZ2dlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBldGhlcnMgVHJhbnNhY3Rpb24gZm9ybWF0XG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHJhbnNhY3Rpb24gc2lnbmVkIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb24gaW4gZXRoZXJzIFRyYW5zYWN0aW9uIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoc2VyaWFsaXplZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uZnJvbSgnMHgnICsgc2VyaWFsaXplZFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGRlc2VyaWFsaXppbmcgJHt0aGlzLmNoYWlufSB0eCB0byBleHRyYWN0IHJvc2VuIGRhdGE6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucnBjRXh0cmFjdG9yLmV4dHJhY3RSYXdEYXRhKHRyYW5zYWN0aW9uKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/evm/EvmRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,qBAAa,oBAAqB,SAAQ,0BAA0B,CAAC,WAAW,CAAC;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;gBAG5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAOzB;;;;;;;;;;;;;OAaG;IACH,cAAc,GAAI,aAAa,WAAW,KAAG,SAAS,GAAG,SAAS,CA+GhE;CACH"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
2
|
+
import { parseCallData } from './utils';
|
|
3
|
+
export class EvmRpcRosenExtractor extends AbstractRosenDataExtractor {
|
|
4
|
+
chain;
|
|
5
|
+
nativeToken;
|
|
6
|
+
constructor(lockAddress, tokens, chain, nativeToken, logger) {
|
|
7
|
+
super(lockAddress, tokens, logger);
|
|
8
|
+
this.chain = chain;
|
|
9
|
+
this.nativeToken = nativeToken;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* extracts RosenData from given lock transaction in ethers Transaction object
|
|
13
|
+
* checks:
|
|
14
|
+
* Native token transfer:
|
|
15
|
+
* 1. `to` must be the lock address
|
|
16
|
+
* 2. the entire calldata must represent a valid CallDataRosenData
|
|
17
|
+
* ERC20 transfer:
|
|
18
|
+
* 1. `to` address is one of the supported assets
|
|
19
|
+
* 2. first four bytes of the call data indicate `transfer` function call: a9059cbb
|
|
20
|
+
* 3. bytes from 5 to 37 must be the lock address
|
|
21
|
+
* 4. bytes from 37 to 69 show the amount
|
|
22
|
+
* 5. bytes after 69 must represent a valid CallDataRosenData
|
|
23
|
+
* @param transaction the lock transaction in ethers Transaction object
|
|
24
|
+
*/
|
|
25
|
+
extractRawData = (transaction) => {
|
|
26
|
+
const baseError = `No rosen data found for tx [${transaction.hash}]`;
|
|
27
|
+
try {
|
|
28
|
+
if (transaction.from == null || transaction.hash == null) {
|
|
29
|
+
this.logger.debug(baseError +
|
|
30
|
+
`transaction 'from' ([${transaction.from}]) or 'hash' ([${transaction.hash}]) is unexpected (probably unsigned transaction is passed)`);
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
if (transaction.to == null) {
|
|
34
|
+
this.logger.debug(baseError + `: 'to' address is empty.`);
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
let rosenData;
|
|
38
|
+
const callData = transaction.data.substring(2);
|
|
39
|
+
let token;
|
|
40
|
+
let rosenDataRaw;
|
|
41
|
+
let tokenAddress;
|
|
42
|
+
let amount;
|
|
43
|
+
let sourceTokenId, targetTokenId;
|
|
44
|
+
if (transaction.to.toLowerCase() == this.lockAddress) {
|
|
45
|
+
// transaction must be a native token transfer
|
|
46
|
+
rosenDataRaw = callData;
|
|
47
|
+
tokenAddress = this.nativeToken;
|
|
48
|
+
amount = transaction.value.toString();
|
|
49
|
+
const tokens = this.tokens.search(this.chain, {
|
|
50
|
+
tokenId: this.nativeToken,
|
|
51
|
+
});
|
|
52
|
+
if (tokens.length == 1) {
|
|
53
|
+
sourceTokenId = this.nativeToken;
|
|
54
|
+
token = tokens[0];
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.logger.debug(baseError +
|
|
58
|
+
`: native token [${this.nativeToken}] is not available in source chian's tokens map.`);
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// transaction must be an ERC-20 token transfer
|
|
64
|
+
if (callData.substring(0, 8) != 'a9059cbb') {
|
|
65
|
+
this.logger.debug(baseError + `: Not a valid ERC20 transfer transaction.`);
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
if (BigInt('0x' + callData.substring(8, 72)).toString(16) !=
|
|
69
|
+
this.lockAddress.substring(2)) {
|
|
70
|
+
this.logger.debug(baseError + `: 'to' address is not the lock address.`);
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
amount = BigInt('0x' + callData.slice(72, 72 + 64)).toString();
|
|
74
|
+
rosenDataRaw = callData.substring(72 + 64);
|
|
75
|
+
tokenAddress = transaction.to.toLowerCase();
|
|
76
|
+
const tokens = this.tokens.search(this.chain, {
|
|
77
|
+
tokenId: tokenAddress,
|
|
78
|
+
});
|
|
79
|
+
if (tokens.length != 1) {
|
|
80
|
+
this.logger.debug(baseError +
|
|
81
|
+
`: token [${tokenAddress}] is not supported on chain: [${this.chain}].`);
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
token = tokens[0];
|
|
85
|
+
sourceTokenId = tokenAddress.toLowerCase();
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
rosenData = parseCallData(rosenDataRaw);
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
this.logger.debug(baseError + `: Failed to extract data from call data: ${e}`);
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
targetTokenId = this.tokens.getID(token, rosenData.toChain);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
this.logger.debug(baseError +
|
|
99
|
+
`: token [${tokenAddress}] is not supported on chain: [${rosenData.toChain}].`);
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
toChain: rosenData.toChain,
|
|
104
|
+
toAddress: rosenData.toAddress,
|
|
105
|
+
bridgeFee: rosenData.bridgeFee,
|
|
106
|
+
networkFee: rosenData.networkFee,
|
|
107
|
+
fromAddress: transaction.from.toLowerCase(),
|
|
108
|
+
sourceChainTokenId: sourceTokenId,
|
|
109
|
+
amount: amount,
|
|
110
|
+
targetChainTokenId: targetTokenId,
|
|
111
|
+
sourceTxId: transaction.hash,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
this.logger.debug(`An error occurred while getting EVM rosen data from RPC: ${e}`);
|
|
116
|
+
if (e instanceof Error && e.stack) {
|
|
117
|
+
this.logger.debug(e.stack);
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtUnBjUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1ScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBSWhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDBCQUF1QztJQUN0RSxLQUFLLENBQVM7SUFDYixXQUFXLENBQVM7SUFFOUIsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxjQUFjLEdBQUcsQ0FBQyxXQUF3QixFQUF5QixFQUFFO1FBQ25FLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSSxDQUFDO1lBQ0gsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixTQUFTO29CQUNQLHdCQUF3QixXQUFXLENBQUMsSUFBSSxrQkFBa0IsV0FBVyxDQUFDLElBQUksNERBQTRELENBQ3pJLENBQUM7Z0JBQ0YsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1B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LE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiw0REFBNEQsQ0FBQyxFQUFFLENBQ2hFLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvc2VuRGF0YSB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJ2V0aGVycyc7XG5pbXBvcnQgeyBUb2tlbk1hcCwgUm9zZW5DaGFpblRva2VuIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBwYXJzZUNhbGxEYXRhIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBFdm1ScGNSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBuYXRpdmVUb2tlbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIG5hdGl2ZVRva2VuOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmNoYWluID0gY2hhaW47XG4gICAgdGhpcy5uYXRpdmVUb2tlbiA9IG5hdGl2ZVRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gZXRoZXJzIFRyYW5zYWN0aW9uIG9iamVjdFxuICAgKiBjaGVja3M6XG4gICAqICAgICBOYXRpdmUgdG9rZW4gdHJhbnNmZXI6XG4gICAqICAgICAgICAgMS4gYHRvYCBtdXN0IGJlIHRoZSBsb2NrIGFkZHJlc3NcbiAgICogICAgICAgICAyLiB0aGUgZW50aXJlIGNhbGxkYXRhIG11c3QgcmVwcmVzZW50IGEgdmFsaWQgQ2FsbERhdGFSb3NlbkRhdGFcbiAgICogICAgIEVSQzIwIHRyYW5zZmVyOlxuICAgKiAgICAgICAgIDEuIGB0b2AgYWRkcmVzcyBpcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBhc3NldHNcbiAgICogICAgICAgICAyLiBmaXJzdCBmb3VyIGJ5dGVzIG9mIHRoZSBjYWxsIGRhdGEgaW5kaWNhdGUgYHRyYW5zZmVyYCBmdW5jdGlvbiBjYWxsOiBhOTA1OWNiYlxuICAgKiAgICAgICAgIDMuIGJ5dGVzIGZyb20gNSB0byAzNyBtdXN0IGJlIHRoZSBsb2NrIGFkZHJlc3NcbiAgICogICAgICAgICA0LiBieXRlcyBmcm9tIDM3IHRvIDY5IHNob3cgdGhlIGFtb3VudFxuICAgKiAgICAgICAgIDUuIGJ5dGVzIGFmdGVyIDY5IG11c3QgcmVwcmVzZW50IGEgdmFsaWQgQ2FsbERhdGFSb3NlbkRhdGFcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIGV0aGVycyBUcmFuc2FjdGlvbiBvYmplY3RcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmhhc2h9XWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0cmFuc2FjdGlvbi5mcm9tID09IG51bGwgfHwgdHJhbnNhY3Rpb24uaGFzaCA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArXG4gICAgICAgICAgICBgdHJhbnNhY3Rpb24gJ2Zyb20nIChbJHt0cmFuc2FjdGlvbi5mcm9tfV0pIG9yICdoYXNoJyAoWyR7dHJhbnNhY3Rpb24uaGFzaH1dKSBpcyB1bmV4cGVjdGVkIChwcm9iYWJseSB1bnNpZ25lZCB0cmFuc2FjdGlvbiBpcyBwYXNzZWQpYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRyYW5zYWN0aW9uLnRvID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogJ3RvJyBhZGRyZXNzIGlzIGVtcHR5LmApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgbGV0IHJvc2VuRGF0YTtcbiAgICAgIGNvbnN0IGNhbGxEYXRhID0gdHJhbnNhY3Rpb24uZGF0YS5zdWJzdHJpbmcoMik7XG4gICAgICBsZXQgdG9rZW46IFJlY29yZDxzdHJpbmcsIFJvc2VuQ2hhaW5Ub2tlbj47XG4gICAgICBsZXQgcm9zZW5EYXRhUmF3O1xuICAgICAgbGV0IHRva2VuQWRkcmVzcztcbiAgICAgIGxldCBhbW91bnQ7XG4gICAgICBsZXQgc291cmNlVG9rZW5JZCwgdGFyZ2V0VG9rZW5JZDtcblxuICAgICAgaWYgKHRyYW5zYWN0aW9uLnRvLnRvTG93ZXJDYXNlKCkgPT0gdGhpcy5sb2NrQWRkcmVzcykge1xuICAgICAgICAvLyB0cmFuc2FjdGlvbiBtdXN0IGJlIGEgbmF0aXZlIHRva2VuIHRyYW5zZmVyXG4gICAgICAgIHJvc2VuRGF0YVJhdyA9IGNhbGxEYXRhO1xuICAgICAgICB0b2tlbkFkZHJlc3MgPSB0aGlzLm5hdGl2ZVRva2VuO1xuICAgICAgICBhbW91bnQgPSB0cmFuc2FjdGlvbi52YWx1ZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5zZWFyY2godGhpcy5jaGFpbiwge1xuICAgICAgICAgIHRva2VuSWQ6IHRoaXMubmF0aXZlVG9rZW4sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgc291cmNlVG9rZW5JZCA9IHRoaXMubmF0aXZlVG9rZW47XG4gICAgICAgICAgdG9rZW4gPSB0b2tlbnNbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgK1xuICAgICAgICAgICAgICBgOiBuYXRpdmUgdG9rZW4gWyR7dGhpcy5uYXRpdmVUb2tlbn1dIGlzIG5vdCBhdmFpbGFibGUgaW4gc291cmNlIGNoaWFuJ3MgdG9rZW5zIG1hcC5gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0cmFuc2FjdGlvbiBtdXN0IGJlIGFuIEVSQy0yMCB0b2tlbiB0cmFuc2ZlclxuICAgICAgICBpZiAoY2FsbERhdGEuc3Vic3RyaW5nKDAsIDgpICE9ICdhOTA1OWNiYicpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vdCBhIHZhbGlkIEVSQzIwIHRyYW5zZmVyIHRyYW5zYWN0aW9uLmBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIEJpZ0ludCgnMHgnICsgY2FsbERhdGEuc3Vic3RyaW5nKDgsIDcyKSkudG9TdHJpbmcoMTYpICE9XG4gICAgICAgICAgdGhpcy5sb2NrQWRkcmVzcy5zdWJzdHJpbmcoMilcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgKyBgOiAndG8nIGFkZHJlc3MgaXMgbm90IHRoZSBsb2NrIGFkZHJlc3MuYFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBhbW91bnQgPSBCaWdJbnQoJzB4JyArIGNhbGxEYXRhLnNsaWNlKDcyLCA3MiArIDY0KSkudG9TdHJpbmcoKTtcbiAgICAgICAgcm9zZW5EYXRhUmF3ID0gY2FsbERhdGEuc3Vic3RyaW5nKDcyICsgNjQpO1xuICAgICAgICB0b2tlbkFkZHJlc3MgPSB0cmFuc2FjdGlvbi50by50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5zZWFyY2godGhpcy5jaGFpbiwge1xuICAgICAgICAgIHRva2VuSWQ6IHRva2VuQWRkcmVzcyxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArXG4gICAgICAgICAgICAgIGA6IHRva2VuIFske3Rva2VuQWRkcmVzc31dIGlzIG5vdCBzdXBwb3J0ZWQgb24gY2hhaW46IFske3RoaXMuY2hhaW59XS5gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuID0gdG9rZW5zWzBdO1xuICAgICAgICBzb3VyY2VUb2tlbklkID0gdG9rZW5BZGRyZXNzLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICByb3NlbkRhdGEgPSBwYXJzZUNhbGxEYXRhKHJvc2VuRGF0YVJhdyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBleHRyYWN0IGRhdGEgZnJvbSBjYWxsIGRhdGE6ICR7ZX1gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRhcmdldFRva2VuSWQgPSB0aGlzLnRva2Vucy5nZXRJRCh0b2tlbiwgcm9zZW5EYXRhLnRvQ2hhaW4pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgK1xuICAgICAgICAgICAgYDogdG9rZW4gWyR7dG9rZW5BZGRyZXNzfV0gaXMgbm90IHN1cHBvcnRlZCBvbiBjaGFpbjogWyR7cm9zZW5EYXRhLnRvQ2hhaW59XS5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IHJvc2VuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IHJvc2VuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogdHJhbnNhY3Rpb24uZnJvbS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IHNvdXJjZVRva2VuSWQsXG4gICAgICAgIGFtb3VudDogYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IHRhcmdldFRva2VuSWQsXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmhhc2gsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBFVk0gcm9zZW4gZGF0YSBmcm9tIFJQQzogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/evm/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,uBAEhD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { parseRosenData } from '../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* extracts rosen data from transaction's remaining call data
|
|
4
|
+
* @param callData
|
|
5
|
+
*/
|
|
6
|
+
export const parseCallData = (callData) => {
|
|
7
|
+
return parseRosenData(callData);
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzdDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQWdCLEVBQTJCLEVBQUU7SUFDekUsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNaW5pbWFsT25DaGFpblJvc2VuRGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuLyoqXG4gKiBleHRyYWN0cyByb3NlbiBkYXRhIGZyb20gdHJhbnNhY3Rpb24ncyByZW1haW5pbmcgY2FsbCBkYXRhXG4gKiBAcGFyYW0gY2FsbERhdGFcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlQ2FsbERhdGEgPSAoY2FsbERhdGE6IHN0cmluZyk6IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhID0+IHtcbiAgcmV0dXJuIHBhcnNlUm9zZW5EYXRhKGNhbGxEYXRhKTtcbn07XG4iXX0=
|
|
@@ -16,8 +16,8 @@ export { RosenData, TokenTransformation } from './getRosenData/abstract/types';
|
|
|
16
16
|
export { DogeEsploraRosenExtractor } from './getRosenData/doge/DogeEsploraRosenExtractor';
|
|
17
17
|
export { DogeRosenExtractor } from './getRosenData/doge/DogeRosenExtractor';
|
|
18
18
|
export { DogeRpcRosenExtractor } from './getRosenData/doge/DogeRpcRosenExtractor';
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
19
|
+
export { BitcoinRunesEsploraRosenExtractor } from './getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor';
|
|
20
|
+
export { BitcoinRunesRosenExtractor } from './getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor';
|
|
21
|
+
export { BitcoinRunesRpcRosenExtractor } from './getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor';
|
|
22
22
|
export { parseRosenData } from './utils';
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,iCAAiC,EAAE,MAAM,gEAAgE,CAAC;AACnH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { initEccLib } from 'bitcoinjs-lib';
|
|
2
|
+
import ecc from '@bitcoinerlab/secp256k1';
|
|
3
|
+
initEccLib(ecc);
|
|
4
|
+
export { default as AbstractRosenDataExtractor } from './getRosenData/abstract/AbstractRosenDataExtractor';
|
|
5
|
+
export { BitcoinEsploraRosenExtractor } from './getRosenData/bitcoin/BitcoinEsploraRosenExtractor';
|
|
6
|
+
export { BitcoinRosenExtractor } from './getRosenData/bitcoin/BitcoinRosenExtractor';
|
|
7
|
+
export { BitcoinRpcRosenExtractor } from './getRosenData/bitcoin/BitcoinRpcRosenExtractor';
|
|
8
|
+
export { EvmEthersRosenExtractor } from './getRosenData/evm/EvmEthersRosenExtractor';
|
|
9
|
+
export { EvmRpcRosenExtractor } from './getRosenData/evm/EvmRpcRosenExtractor';
|
|
10
|
+
export { EvmRosenExtractor } from './getRosenData/evm/EvmRosenExtractor';
|
|
11
|
+
export { CardanoKoiosRosenExtractor } from './getRosenData/cardano/CardanoKoiosRosenExtractor';
|
|
12
|
+
export { CardanoOgmiosRosenExtractor } from './getRosenData/cardano/CardanoOgmiosRosenExtractor';
|
|
13
|
+
export { CardanoRosenExtractor } from './getRosenData/cardano/CardanoRosenExtractor';
|
|
14
|
+
export { CardanoBlockFrostRosenExtractor } from './getRosenData/cardano/CardanoBlockFrostRosenExtractor';
|
|
15
|
+
export { CardanoGraphQLRosenExtractor } from './getRosenData/cardano/CardanoGraphQLRosenExtractor';
|
|
16
|
+
export { ErgoRosenExtractor } from './getRosenData/ergo/ErgoRosenExtractor';
|
|
17
|
+
export { ErgoNodeRosenExtractor } from './getRosenData/ergo/ErgoNodeRosenExtractor';
|
|
18
|
+
export { DogeEsploraRosenExtractor } from './getRosenData/doge/DogeEsploraRosenExtractor';
|
|
19
|
+
export { DogeRosenExtractor } from './getRosenData/doge/DogeRosenExtractor';
|
|
20
|
+
export { DogeRpcRosenExtractor } from './getRosenData/doge/DogeRpcRosenExtractor';
|
|
21
|
+
export { BitcoinRunesEsploraRosenExtractor } from './getRosenData/bitcoin-runes/BitcoinRunesEsploraRosenExtractor';
|
|
22
|
+
export { BitcoinRunesRosenExtractor } from './getRosenData/bitcoin-runes/BitcoinRunesRosenExtractor';
|
|
23
|
+
export { BitcoinRunesRpcRosenExtractor } from './getRosenData/bitcoin-runes/BitcoinRunesRpcRosenExtractor';
|
|
24
|
+
export { parseRosenData } from './utils';
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQztBQUUxQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFaEIsT0FBTyxFQUFFLE9BQU8sSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbml0RWNjTGliIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgZWNjIGZyb20gJ0BiaXRjb2luZXJsYWIvc2VjcDI1NmsxJztcblxuaW5pdEVjY0xpYihlY2MpO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4vQml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL0JpdGNvaW5Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL0JpdGNvaW5ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9Fdm1FdGhlcnNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9Fdm1ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9Fdm1Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vS29pb3NSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vT2dtaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub0Jsb2NrRnJvc3RSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vQ2FyZGFub0Jsb2NrRnJvc3RSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vR3JhcGhRTFJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9DYXJkYW5vR3JhcGhRTFJvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2VyZ28vRXJnb1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9lcmdvL0VyZ29Ob2RlUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvdHlwZXMnO1xuZXhwb3J0IHsgRG9nZUVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2RvZ2UvRG9nZUVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL0RvZ2VSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL0RvZ2VScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNFc3Bsb3JhUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL0JpdGNvaW5SdW5lc0VzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4tcnVuZXMvQml0Y29pblJ1bmVzUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pblJ1bmVzUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL0JpdGNvaW5SdW5lc1JwY1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi91dGlscyc7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWluaW1hbE9uQ2hhaW5Sb3NlbkRhdGEge1xuICB0b0NoYWluOiBzdHJpbmc7XG4gIHRvQWRkcmVzczogc3RyaW5nO1xuICBicmlkZ2VGZWU6IHN0cmluZztcbiAgbmV0d29ya0ZlZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,iBAAiB,MAAM,KACtB,uBAgCF,CAAC"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { decodeAddress } from '@rosen-bridge/address-codec';
|
|
2
|
+
import { SUPPORTED_CHAINS } from './getRosenData/const';
|
|
3
|
+
/**
|
|
4
|
+
* extracts rosen data from raw hex data
|
|
5
|
+
* @param scriptPubKeyHex
|
|
6
|
+
*/
|
|
7
|
+
export const parseRosenData = (scriptPubKeyHex) => {
|
|
8
|
+
// parse toChain
|
|
9
|
+
const toChainHex = scriptPubKeyHex.slice(0, 2);
|
|
10
|
+
const toChainCode = parseInt(toChainHex, 16);
|
|
11
|
+
if (toChainCode >= SUPPORTED_CHAINS.length)
|
|
12
|
+
throw Error(`invalid toChain code, found [${toChainCode}] but only [${SUPPORTED_CHAINS.length}] chains are supported`);
|
|
13
|
+
const toChain = SUPPORTED_CHAINS[toChainCode];
|
|
14
|
+
// parse bridgeFee
|
|
15
|
+
const bridgeFeeHex = scriptPubKeyHex.slice(2, 18);
|
|
16
|
+
const bridgeFee = BigInt('0x' + bridgeFeeHex).toString();
|
|
17
|
+
// parse networkFee
|
|
18
|
+
const networkFeeHex = scriptPubKeyHex.slice(18, 34);
|
|
19
|
+
const networkFee = BigInt('0x' + networkFeeHex).toString();
|
|
20
|
+
// parse toAddress
|
|
21
|
+
const addressLengthCode = scriptPubKeyHex.slice(34, 36);
|
|
22
|
+
const addressHex = scriptPubKeyHex.slice(36, 36 + parseInt(addressLengthCode, 16) * 2);
|
|
23
|
+
const toAddress = decodeAddress(toChain, addressHex);
|
|
24
|
+
return {
|
|
25
|
+
toChain,
|
|
26
|
+
toAddress,
|
|
27
|
+
bridgeFee,
|
|
28
|
+
networkFee,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixlQUF1QixFQUNFLEVBQUU7SUFDM0IsZ0JBQWdCO0lBQ2hCLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsSUFBSSxXQUFXLElBQUksZ0JBQWdCLENBQUMsTUFBTTtRQUN4QyxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsV0FBVyxlQUFlLGdCQUFnQixDQUFDLE1BQU0sd0JBQXdCLENBQzFHLENBQUM7SUFDSixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU5QyxrQkFBa0I7SUFDbEIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV6RCxtQkFBbUI7SUFDbkIsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzRCxrQkFBa0I7SUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUN0QyxFQUFFLEVBQ0YsRUFBRSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQ3pDLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxPQUFPO1FBQ1AsU0FBUztRQUNULFNBQVM7UUFDVCxVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUFkZHJlc3MgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2FkZHJlc3MtY29kZWMnO1xuaW1wb3J0IHsgU1VQUE9SVEVEX0NIQUlOUyB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NvbnN0JztcbmltcG9ydCB7IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogZXh0cmFjdHMgcm9zZW4gZGF0YSBmcm9tIHJhdyBoZXggZGF0YVxuICogQHBhcmFtIHNjcmlwdFB1YktleUhleFxuICovXG5leHBvcnQgY29uc3QgcGFyc2VSb3NlbkRhdGEgPSAoXG4gIHNjcmlwdFB1YktleUhleDogc3RyaW5nXG4pOiBNaW5pbWFsT25DaGFpblJvc2VuRGF0YSA9PiB7XG4gIC8vIHBhcnNlIHRvQ2hhaW5cbiAgY29uc3QgdG9DaGFpbkhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSgwLCAyKTtcbiAgY29uc3QgdG9DaGFpbkNvZGUgPSBwYXJzZUludCh0b0NoYWluSGV4LCAxNik7XG4gIGlmICh0b0NoYWluQ29kZSA+PSBTVVBQT1JURURfQ0hBSU5TLmxlbmd0aClcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBpbnZhbGlkIHRvQ2hhaW4gY29kZSwgZm91bmQgWyR7dG9DaGFpbkNvZGV9XSBidXQgb25seSBbJHtTVVBQT1JURURfQ0hBSU5TLmxlbmd0aH1dIGNoYWlucyBhcmUgc3VwcG9ydGVkYFxuICAgICk7XG4gIGNvbnN0IHRvQ2hhaW4gPSBTVVBQT1JURURfQ0hBSU5TW3RvQ2hhaW5Db2RlXTtcblxuICAvLyBwYXJzZSBicmlkZ2VGZWVcbiAgY29uc3QgYnJpZGdlRmVlSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDE4KTtcbiAgY29uc3QgYnJpZGdlRmVlID0gQmlnSW50KCcweCcgKyBicmlkZ2VGZWVIZXgpLnRvU3RyaW5nKCk7XG5cbiAgLy8gcGFyc2UgbmV0d29ya0ZlZVxuICBjb25zdCBuZXR3b3JrRmVlSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDE4LCAzNCk7XG4gIGNvbnN0IG5ldHdvcmtGZWUgPSBCaWdJbnQoJzB4JyArIG5ldHdvcmtGZWVIZXgpLnRvU3RyaW5nKCk7XG5cbiAgLy8gcGFyc2UgdG9BZGRyZXNzXG4gIGNvbnN0IGFkZHJlc3NMZW5ndGhDb2RlID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDM0LCAzNik7XG4gIGNvbnN0IGFkZHJlc3NIZXggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoXG4gICAgMzYsXG4gICAgMzYgKyBwYXJzZUludChhZGRyZXNzTGVuZ3RoQ29kZSwgMTYpICogMlxuICApO1xuICBjb25zdCB0b0FkZHJlc3MgPSBkZWNvZGVBZGRyZXNzKHRvQ2hhaW4sIGFkZHJlc3NIZXgpO1xuXG4gIHJldHVybiB7XG4gICAgdG9DaGFpbixcbiAgICB0b0FkZHJlc3MsXG4gICAgYnJpZGdlRmVlLFxuICAgIG5ldHdvcmtGZWUsXG4gIH07XG59O1xuIl19
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosen-bridge/rosen-extractor",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "this project contains methods to get rosen data from blockchain",
|
|
5
|
-
"main": "dist/
|
|
6
|
-
"types": "dist/
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"prettify": "prettier --write . --ignore-path .gitignore",
|
|
10
10
|
"lint": "eslint --fix . && npm run prettify",
|
|
11
|
-
"build": "tsc --build",
|
|
11
|
+
"build": "tsc --build tsconfig.build.json",
|
|
12
12
|
"type-check": "tsc --noEmit",
|
|
13
13
|
"test": "jest --detectOpenHandles --runInBand",
|
|
14
14
|
"coverage": "npm run test -- --coverage",
|
|
@@ -21,16 +21,16 @@
|
|
|
21
21
|
"files": [
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
|
-
"license": "
|
|
24
|
+
"license": "MIT",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@bitcoinerlab/secp256k1": "^1.2.0",
|
|
27
27
|
"@blockfrost/blockfrost-js": "^6.0.0",
|
|
28
28
|
"@cardano-ogmios/schema": "^6.0.3",
|
|
29
29
|
"@emurgo/cardano-serialization-lib-nodejs": "^13.2.1",
|
|
30
|
-
"@rosen-bridge/abstract-logger": "^2.0
|
|
31
|
-
"@rosen-bridge/address-codec": "^0.
|
|
32
|
-
"@rosen-bridge/json-bigint": "^0.
|
|
33
|
-
"@rosen-bridge/tokens": "^3.
|
|
30
|
+
"@rosen-bridge/abstract-logger": "^2.1.0",
|
|
31
|
+
"@rosen-bridge/address-codec": "^0.7.0",
|
|
32
|
+
"@rosen-bridge/json-bigint": "^0.2.0",
|
|
33
|
+
"@rosen-bridge/tokens": "^3.2.0",
|
|
34
34
|
"bitcoinjs-lib": "^6.1.5",
|
|
35
35
|
"ergo-lib-wasm-nodejs": "^0.24.1",
|
|
36
36
|
"ethers": "6.13.2",
|
|
@@ -42,16 +42,11 @@
|
|
|
42
42
|
"@types/jest": "^29.1.2",
|
|
43
43
|
"@types/json-bigint": "^1.0.1",
|
|
44
44
|
"@types/lodash-es": "^4.17.6",
|
|
45
|
-
"@types/node": "^
|
|
46
|
-
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
47
|
-
"@typescript-eslint/parser": "^5.26.0",
|
|
48
|
-
"eslint": "^8.16.0",
|
|
49
|
-
"eslint-config-prettier": "^8.5.0",
|
|
45
|
+
"@types/node": "^20.11.0",
|
|
50
46
|
"jest": "^29.2.0",
|
|
51
|
-
"prettier": "^2.7.1",
|
|
52
47
|
"ts-jest": "^29.0.3",
|
|
53
48
|
"ts-node": "^10.8.1",
|
|
54
|
-
"typescript": "^
|
|
49
|
+
"typescript": "^5.8.3"
|
|
55
50
|
},
|
|
56
51
|
"directories": {
|
|
57
52
|
"lib": "lib",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractRosenDataExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/abstract/AbstractRosenDataExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAG5E,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,0BAA0B,CAAC,eAAe;IACtE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAE3B,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAM1E;;OAEG;IACH,GAAG,gBAAiB,eAAe,KAAG,SAAS,GAAG,SAAS,CAoBzD;IAEF;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,WAAW,EAAE,eAAe,KACzB,SAAS,GAAG,SAAS,CAAC;CAC5B"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
-
import { validateAddress } from '@rosen-bridge/address-codec';
|
|
3
|
-
export default class AbstractRosenDataExtractor {
|
|
4
|
-
logger;
|
|
5
|
-
tokens;
|
|
6
|
-
lockAddress;
|
|
7
|
-
constructor(lockAddress, tokens, logger) {
|
|
8
|
-
this.lockAddress = lockAddress;
|
|
9
|
-
this.tokens = tokens;
|
|
10
|
-
this.logger = logger ? logger : new DummyLogger();
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* extracts RosenData from given lock transaction and wrap the amount
|
|
14
|
-
*/
|
|
15
|
-
get = (transaction) => {
|
|
16
|
-
const rawData = this.extractRawData(transaction);
|
|
17
|
-
if (rawData) {
|
|
18
|
-
try {
|
|
19
|
-
validateAddress(rawData.toChain, rawData.toAddress);
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
this.logger.debug(`Receiver address validation failed (address [${rawData.toAddress}] on chain [${rawData.toChain}]) with error: ${e}`);
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
rawData.amount = this.tokens
|
|
26
|
-
.wrapAmount(rawData.sourceChainTokenId, BigInt(rawData.amount), this.chain)
|
|
27
|
-
.amount.toString();
|
|
28
|
-
}
|
|
29
|
-
return rawData;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxPQUFPLE9BQWdCLDBCQUEwQjtJQUVuQyxNQUFNLENBQWlCO0lBQ3ZCLE1BQU0sQ0FBVztJQUNqQixXQUFXLENBQVM7SUFFdkMsWUFBWSxXQUFtQixFQUFFLE1BQWdCLEVBQUUsTUFBdUI7UUFDeEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLEdBQUcsQ0FBQyxXQUE0QixFQUF5QixFQUFFO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJO2dCQUNGLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNyRDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGdEQUFnRCxPQUFPLENBQUMsU0FBUyxlQUFlLE9BQU8sQ0FBQyxPQUFPLGtCQUFrQixDQUFDLEVBQUUsQ0FDckgsQ0FBQztnQkFDRixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07aUJBQ3pCLFVBQVUsQ0FDVCxPQUFPLENBQUMsa0JBQWtCLEVBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3RCLElBQUksQ0FBQyxLQUFLLENBQ1g7aUJBQ0EsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0NBUUgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IFJvc2VuRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hZGRyZXNzLWNvZGVjJztcblxuZXhwb3J0IGRlZmF1bHQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPiB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGNoYWluOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5zOiBUb2tlbk1hcDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2tBZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobG9ja0FkZHJlc3M6IHN0cmluZywgdG9rZW5zOiBUb2tlbk1hcCwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmxvY2tBZGRyZXNzID0gbG9ja0FkZHJlc3M7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGFuZCB3cmFwIHRoZSBhbW91bnRcbiAgICovXG4gIGdldCA9ICh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25UeXBlKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCByYXdEYXRhID0gdGhpcy5leHRyYWN0UmF3RGF0YSh0cmFuc2FjdGlvbik7XG4gICAgaWYgKHJhd0RhdGEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhbGlkYXRlQWRkcmVzcyhyYXdEYXRhLnRvQ2hhaW4sIHJhd0RhdGEudG9BZGRyZXNzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFJlY2VpdmVyIGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsZWQgKGFkZHJlc3MgWyR7cmF3RGF0YS50b0FkZHJlc3N9XSBvbiBjaGFpbiBbJHtyYXdEYXRhLnRvQ2hhaW59XSkgd2l0aCBlcnJvcjogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJhd0RhdGEuYW1vdW50ID0gdGhpcy50b2tlbnNcbiAgICAgICAgLndyYXBBbW91bnQoXG4gICAgICAgICAgcmF3RGF0YS5zb3VyY2VDaGFpblRva2VuSWQsXG4gICAgICAgICAgQmlnSW50KHJhd0RhdGEuYW1vdW50KSxcbiAgICAgICAgICB0aGlzLmNoYWluXG4gICAgICAgIClcbiAgICAgICAgLmFtb3VudC50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gcmF3RGF0YTtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvblxuICAgKi9cbiAgYWJzdHJhY3QgZXh0cmFjdFJhd0RhdGE6IChcbiAgICB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25UeXBlXG4gICkgPT4gUm9zZW5EYXRhIHwgdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/abstract/types.ts"],"names":[],"mappings":"AAAA,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2Fic3RyYWN0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgUm9zZW5EYXRhIHtcbiAgdG9DaGFpbjogc3RyaW5nO1xuICB0b0FkZHJlc3M6IHN0cmluZztcbiAgYnJpZGdlRmVlOiBzdHJpbmc7XG4gIG5ldHdvcmtGZWU6IHN0cmluZztcbiAgZnJvbUFkZHJlc3M6IHN0cmluZztcbiAgc291cmNlQ2hhaW5Ub2tlbklkOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICB0YXJnZXRDaGFpblRva2VuSWQ6IHN0cmluZztcbiAgc291cmNlVHhJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVG9rZW5UcmFuc2Zvcm1hdGlvbiB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB7IFJvc2VuRGF0YSwgVG9rZW5UcmFuc2Zvcm1hdGlvbiB9O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BitcoinEsploraRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EACL,yBAAyB,EACzB,eAAe,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,qBAAa,4BAA6B,SAAQ,0BAA0B,CAAC,yBAAyB,CAAC;IACrG,QAAQ,CAAC,KAAK,aAAiB;IAC/B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,cAAc,gBACC,yBAAyB,KACrC,SAAS,GAAG,SAAS,CA6EtB;IAEF;;;;OAIG;IACH,sBAAsB,QACf,eAAe,WACX,MAAM,KACd,mBAAmB,GAAG,SAAS,CAehC;CACH"}
|