@rosen-bridge/rosen-extractor 8.1.0 → 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/{runes/RunesEsploraRosenExtractor.d.ts → 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/getRosenData/{runes/RunesRpcRosenExtractor.d.ts → 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/const.d.ts +1 -1
- package/dist/getRosenData/const.d.ts.map +1 -1
- package/dist/getRosenData/const.js +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/package.json +1 -1
- package/dist/getRosenData/runes/RunesEsploraRosenExtractor.d.ts.map +0 -1
- package/dist/getRosenData/runes/RunesEsploraRosenExtractor.js +0 -113
- package/dist/getRosenData/runes/RunesRosenExtractor.d.ts +0 -36
- package/dist/getRosenData/runes/RunesRosenExtractor.d.ts.map +0 -1
- package/dist/getRosenData/runes/RunesRosenExtractor.js +0 -120
- package/dist/getRosenData/runes/RunesRpcRosenExtractor.d.ts.map +0 -1
- package/dist/getRosenData/runes/RunesRpcRosenExtractor.js +0 -113
- package/dist/getRosenData/runes/constants.d.ts.map +0 -1
- package/dist/getRosenData/runes/constants.js +0 -2
- package/dist/getRosenData/runes/types.d.ts.map +0 -1
- package/dist/getRosenData/runes/types.js +0 -2
- package/dist/getRosenData/runes/utils.d.ts.map +0 -1
- package/dist/getRosenData/runes/utils.js +0 -9
- package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts +0 -19
- 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 +0 -18
- 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 +0 -22
- 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 +0 -22
- 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 +0 -22
- 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 +0 -89
- 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 +0 -7
- 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 +0 -18
- 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 +0 -18
- 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 +0 -19
- 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 +0 -18
- 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 +0 -18
- 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 +0 -102
- 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 +0 -19
- 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 +0 -13
- 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 +0 -22
- 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 +0 -22
- 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 +0 -22
- 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.d.ts +0 -87
- package/dist/lib/getRosenData/doge/types.d.ts.map +0 -1
- package/dist/lib/getRosenData/doge/types.js +0 -2
- package/dist/lib/getRosenData/doge/utils.d.ts +0 -13
- 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 +0 -22
- 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 +0 -15
- 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 +0 -37
- 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 +0 -23
- 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 +0 -16
- 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 +0 -26
- 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 +0 -7
- 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 +0 -36
- 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 +0 -36
- 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 +0 -2
- 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 +0 -5
- 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 +0 -7
- 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 +0 -23
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -25
- package/dist/lib/types.d.ts +0 -7
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -2
- package/dist/lib/utils.d.ts +0 -7
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -31
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- /package/dist/getRosenData/{runes → bitcoin-runes}/constants.d.ts +0 -0
- /package/dist/getRosenData/{runes → bitcoin-runes}/types.d.ts +0 -0
- /package/dist/getRosenData/{runes → bitcoin-runes}/utils.d.ts +0 -0
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RosenData } from '../abstract/types';
|
|
2
|
-
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
3
|
-
import { TokenMap } from '@rosen-bridge/tokens';
|
|
4
|
-
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
5
|
-
export declare class ErgoRosenExtractor extends AbstractRosenDataExtractor<string> {
|
|
6
|
-
readonly chain = "ergo";
|
|
7
|
-
private nodeExtractor;
|
|
8
|
-
constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
|
|
9
|
-
/**
|
|
10
|
-
* extracts RosenData from given lock transaction in wasm sigma serialized bytes
|
|
11
|
-
* @param serializedTransaction the sigma serialized bytes of transaction
|
|
12
|
-
*/
|
|
13
|
-
extractRawData: (serializedTransaction: string) => RosenData | undefined;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=ErgoRosenExtractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ErgoRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/ergo/ErgoRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IACxE,QAAQ,CAAC,KAAK,UAAc;IAC5B,OAAO,CAAC,aAAa,CAAyB;gBAElC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAS1E;;;OAGG;IACH,cAAc,GAAI,uBAAuB,MAAM,KAAG,SAAS,GAAG,SAAS,CAiBrE;CACH"}
|
|
@@ -1,33 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJnb1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9lcmdvL0VyZ29Sb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBa0M7SUFDL0QsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUNwQixhQUFhLENBQXlCO0lBRTlDLFlBQVksV0FBbUIsRUFBRSxNQUFnQixFQUFFLE1BQXVCO1FBQ3hFLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsQ0FDN0MsV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxxQkFBNkIsRUFBeUIsRUFBRTtRQUN4RSxJQUFJLFdBQXdCLENBQUM7UUFDN0IsSUFBSSxDQUFDO1lBQ0gsV0FBVyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDekMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQzNELENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHdFQUF3RSxDQUFDLEVBQUUsQ0FDNUUsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFvQixDQUFDO1FBQzFFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEgfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgTm9kZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBFcmdvTm9kZVJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9FcmdvTm9kZVJvc2VuRXh0cmFjdG9yJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgRVJHT19DSEFJTiB9IGZyb20gJy4uL2NvbnN0JztcblxuZXhwb3J0IGNsYXNzIEVyZ29Sb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPHN0cmluZz4ge1xuICByZWFkb25seSBjaGFpbiA9IEVSR09fQ0hBSU47XG4gIHByaXZhdGUgbm9kZUV4dHJhY3RvcjogRXJnb05vZGVSb3NlbkV4dHJhY3RvcjtcblxuICBjb25zdHJ1Y3Rvcihsb2NrQWRkcmVzczogc3RyaW5nLCB0b2tlbnM6IFRva2VuTWFwLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5ub2RlRXh0cmFjdG9yID0gbmV3IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IoXG4gICAgICBsb2NrQWRkcmVzcyxcbiAgICAgIHRva2VucyxcbiAgICAgIGxvZ2dlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiB3YXNtIHNpZ21hIHNlcmlhbGl6ZWQgYnl0ZXNcbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUcmFuc2FjdGlvbiB0aGUgc2lnbWEgc2VyaWFsaXplZCBieXRlcyBvZiB0cmFuc2FjdGlvblxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoc2VyaWFsaXplZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uc2lnbWFfcGFyc2VfYnl0ZXMoXG4gICAgICAgIFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShzZXJpYWxpemVkVHJhbnNhY3Rpb24sICdoZXgnKSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nIEVyZ28gdHggdG8gZXh0cmFjdCByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IG5vZGVUeCA9IEpzb25CaWdJbnQucGFyc2UodHJhbnNhY3Rpb24udG9fanNvbigpKSBhcyBOb2RlVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRoaXMubm9kZUV4dHJhY3Rvci5leHRyYWN0UmF3RGF0YShub2RlVHgpO1xuICB9O1xufVxuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
interface NodeAsset {
|
|
2
|
-
tokenId: string;
|
|
3
|
-
amount: bigint;
|
|
4
|
-
}
|
|
5
|
-
interface NodeAdditionalRegisters {
|
|
6
|
-
R4?: string;
|
|
7
|
-
R5?: string;
|
|
8
|
-
R6?: string;
|
|
9
|
-
R7?: string;
|
|
10
|
-
R8?: string;
|
|
11
|
-
R9?: string;
|
|
12
|
-
}
|
|
13
|
-
interface NodeOutputBox {
|
|
14
|
-
boxId: string;
|
|
15
|
-
value: bigint;
|
|
16
|
-
ergoTree: string;
|
|
17
|
-
creationHeight: bigint | number;
|
|
18
|
-
assets?: Array<NodeAsset>;
|
|
19
|
-
additionalRegisters?: NodeAdditionalRegisters;
|
|
20
|
-
transactionId: string;
|
|
21
|
-
index: bigint | number;
|
|
22
|
-
}
|
|
23
|
-
interface NodeInputBox {
|
|
24
|
-
boxId: string;
|
|
25
|
-
}
|
|
26
|
-
interface NodeDataInput {
|
|
27
|
-
boxId: string;
|
|
28
|
-
}
|
|
29
|
-
interface NodeTransaction {
|
|
30
|
-
id: string;
|
|
31
|
-
inputs: Array<NodeInputBox>;
|
|
32
|
-
dataInputs: Array<NodeDataInput>;
|
|
33
|
-
outputs: Array<NodeOutputBox>;
|
|
34
|
-
size?: bigint;
|
|
35
|
-
}
|
|
36
|
-
export { NodeOutputBox, NodeTransaction };
|
|
37
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2VyZ28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBOb2RlQXNzZXQge1xuICB0b2tlbklkOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTm9kZUFkZGl0aW9uYWxSZWdpc3RlcnMge1xuICBSND86IHN0cmluZztcbiAgUjU/OiBzdHJpbmc7XG4gIFI2Pzogc3RyaW5nO1xuICBSNz86IHN0cmluZztcbiAgUjg/OiBzdHJpbmc7XG4gIFI5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZU91dHB1dEJveCB7XG4gIGJveElkOiBzdHJpbmc7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGVyZ29UcmVlOiBzdHJpbmc7XG4gIGNyZWF0aW9uSGVpZ2h0OiBiaWdpbnQgfCBudW1iZXI7XG4gIGFzc2V0cz86IEFycmF5PE5vZGVBc3NldD47XG4gIGFkZGl0aW9uYWxSZWdpc3RlcnM/OiBOb2RlQWRkaXRpb25hbFJlZ2lzdGVycztcbiAgdHJhbnNhY3Rpb25JZDogc3RyaW5nO1xuICBpbmRleDogYmlnaW50IHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgTm9kZUlucHV0Qm94IHtcbiAgYm94SWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE5vZGVEYXRhSW5wdXQge1xuICBib3hJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm9kZVRyYW5zYWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgaW5wdXRzOiBBcnJheTxOb2RlSW5wdXRCb3g+O1xuICBkYXRhSW5wdXRzOiBBcnJheTxOb2RlRGF0YUlucHV0PjtcbiAgb3V0cHV0czogQXJyYXk8Tm9kZU91dHB1dEJveD47XG4gIHNpemU/OiBiaWdpbnQ7XG59XG5cbmV4cG9ydCB7IE5vZGVPdXRwdXRCb3gsIE5vZGVUcmFuc2FjdGlvbiB9O1xuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { RosenData } from '../abstract/types';
|
|
2
|
-
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
3
|
-
import { TransactionResponse } from 'ethers';
|
|
4
|
-
import { TokenMap } from '@rosen-bridge/tokens';
|
|
5
|
-
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
6
|
-
import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
|
|
7
|
-
export declare class EvmEthersRosenExtractor extends AbstractRosenDataExtractor<TransactionResponse> {
|
|
8
|
-
readonly chain: string;
|
|
9
|
-
protected rpcExtractor: EvmRpcRosenExtractor;
|
|
10
|
-
protected supportedTokens: string[];
|
|
11
|
-
constructor(lockAddress: string, tokens: TokenMap, chain: string, nativeToken: string, logger?: AbstractLogger);
|
|
12
|
-
/**
|
|
13
|
-
* extracts RosenData from given lock transaction in ethers TransactionResponse format
|
|
14
|
-
* @param txRes the lock transaction in ethers TransactionResponse format
|
|
15
|
-
*/
|
|
16
|
-
extractRawData: (txRes: TransactionResponse) => RosenData | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* update supported tokens
|
|
19
|
-
* @param tokens
|
|
20
|
-
*/
|
|
21
|
-
updateSupportedTokens: () => void;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=EvmEthersRosenExtractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtRXRoZXJzUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1FdGhlcnNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQXVCLE1BQU0sUUFBUSxDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBK0M7SUFDakYsS0FBSyxDQUFTO0lBQ2IsWUFBWSxDQUF1QjtJQUNuQyxlQUFlLENBQVc7SUFFcEMsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLG9CQUFvQixDQUMxQyxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxLQUEwQixFQUF5QixFQUFFO1FBQ3JFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQzFDLElBQ0UsU0FBUztnQkFDVCxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsV0FBVztvQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDM0MsQ0FBQztnQkFDRCxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YseUNBQXlDLElBQUksQ0FBQyxLQUFLLDhCQUE4QixDQUFDLEVBQUUsQ0FDckYsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gscUJBQXFCLEdBQUcsR0FBRyxFQUFFO1FBQzNCLE1BQU0sa0JBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDNUMsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEgfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uUmVzcG9uc2UgfSBmcm9tICdldGhlcnMnO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEV2bVJwY1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9Fdm1ScGNSb3NlbkV4dHJhY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgcmVhZG9ubHkgY2hhaW46IHN0cmluZztcbiAgcHJvdGVjdGVkIHJwY0V4dHJhY3RvcjogRXZtUnBjUm9zZW5FeHRyYWN0b3I7XG4gIHByb3RlY3RlZCBzdXBwb3J0ZWRUb2tlbnM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIG5hdGl2ZVRva2VuOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmNoYWluID0gY2hhaW47XG4gICAgdGhpcy5ycGNFeHRyYWN0b3IgPSBuZXcgRXZtUnBjUm9zZW5FeHRyYWN0b3IoXG4gICAgICBsb2NrQWRkcmVzcyxcbiAgICAgIHRva2VucyxcbiAgICAgIGNoYWluLFxuICAgICAgbmF0aXZlVG9rZW4sXG4gICAgICBsb2dnZXJcbiAgICApO1xuICAgIHRoaXMudXBkYXRlU3VwcG9ydGVkVG9rZW5zKCk7XG4gICAgdGhpcy50b2tlbnMucmVnaXN0ZXJDYWxsYmFjayh0aGlzLnVwZGF0ZVN1cHBvcnRlZFRva2Vucyk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBldGhlcnMgVHJhbnNhY3Rpb25SZXNwb25zZSBmb3JtYXRcbiAgICogQHBhcmFtIHR4UmVzIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIGV0aGVycyBUcmFuc2FjdGlvblJlc3BvbnNlIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAodHhSZXM6IFRyYW5zYWN0aW9uUmVzcG9uc2UpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRvQWRkcmVzcyA9IHR4UmVzLnRvPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKFxuICAgICAgICB0b0FkZHJlc3MgJiZcbiAgICAgICAgKHRvQWRkcmVzcyA9PT0gdGhpcy5sb2NrQWRkcmVzcyB8fFxuICAgICAgICAgIHRoaXMuc3VwcG9ydGVkVG9rZW5zLmluY2x1ZGVzKHRvQWRkcmVzcykpXG4gICAgICApIHtcbiAgICAgICAgdHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5mcm9tKHR4UmVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nICR7dGhpcy5jaGFpbn0gdHggdG8gZXh0cmFjdCByb3NlbiBkYXRhOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJwY0V4dHJhY3Rvci5leHRyYWN0UmF3RGF0YSh0cmFuc2FjdGlvbik7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBzdXBwb3J0ZWQgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbnNcbiAgICovXG4gIHVwZGF0ZVN1cHBvcnRlZFRva2VucyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTdXBwb3J0ZWRUb2tlbnM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy50b2tlbnMuZ2V0Q29uZmlnKCkuZm9yRWFjaCgodG9rZW5TZXQpID0+IHtcbiAgICAgIGlmIChPYmplY3QuaGFzT3duKHRva2VuU2V0LCB0aGlzLmNoYWluKSlcbiAgICAgICAgbmV3U3VwcG9ydGVkVG9rZW5zLnB1c2godG9rZW5TZXRbdGhpcy5jaGFpbl0udG9rZW5JZCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdXBwb3J0ZWRUb2tlbnMgPSBuZXdTdXBwb3J0ZWRUb2tlbnM7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { RosenData } from '../abstract/types';
|
|
2
|
-
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
3
|
-
import { TokenMap } from '@rosen-bridge/tokens';
|
|
4
|
-
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
5
|
-
import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
|
|
6
|
-
export declare class EvmRosenExtractor extends AbstractRosenDataExtractor<string> {
|
|
7
|
-
readonly chain: string;
|
|
8
|
-
protected rpcExtractor: EvmRpcRosenExtractor;
|
|
9
|
-
constructor(lockAddress: string, tokens: TokenMap, chain: string, nativeToken: string, logger?: AbstractLogger);
|
|
10
|
-
/**
|
|
11
|
-
* extracts RosenData from given lock transaction in ethers Transaction format
|
|
12
|
-
* @param serializedTransaction signed serialized transaction in ethers Transaction format
|
|
13
|
-
*/
|
|
14
|
-
extractRawData: (serializedTransaction: string) => RosenData | undefined;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=EvmRosenExtractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1Sb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDBCQUFrQztJQUM5RCxLQUFLLENBQVM7SUFDYixZQUFZLENBQXVCO0lBRTdDLFlBQ0UsV0FBbUIsRUFDbkIsTUFBZ0IsRUFDaEIsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLE1BQXVCO1FBRXZCLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxvQkFBb0IsQ0FDMUMsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxFQUNYLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsR0FBRyxDQUFDLHFCQUE2QixFQUF5QixFQUFFO1FBQ3hFLElBQUksV0FBd0IsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHlDQUF5QyxJQUFJLENBQUMsS0FBSyw4QkFBOEIsQ0FBQyxFQUFFLENBQ3JGLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZW5EYXRhIH0gZnJvbSAnLi4vYWJzdHJhY3QvdHlwZXMnO1xuaW1wb3J0IEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIGZyb20gJy4uL2Fic3RyYWN0L0Fic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vRXZtUnBjUm9zZW5FeHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRXZtUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxzdHJpbmc+IHtcbiAgcmVhZG9ubHkgY2hhaW46IHN0cmluZztcbiAgcHJvdGVjdGVkIHJwY0V4dHJhY3RvcjogRXZtUnBjUm9zZW5FeHRyYWN0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICAgbmF0aXZlVG9rZW46IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpO1xuICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICB0aGlzLnJwY0V4dHJhY3RvciA9IG5ldyBFdm1ScGNSb3NlbkV4dHJhY3RvcihcbiAgICAgIGxvY2tBZGRyZXNzLFxuICAgICAgdG9rZW5zLFxuICAgICAgY2hhaW4sXG4gICAgICBuYXRpdmVUb2tlbixcbiAgICAgIGxvZ2dlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgUm9zZW5EYXRhIGZyb20gZ2l2ZW4gbG9jayB0cmFuc2FjdGlvbiBpbiBldGhlcnMgVHJhbnNhY3Rpb24gZm9ybWF0XG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHJhbnNhY3Rpb24gc2lnbmVkIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb24gaW4gZXRoZXJzIFRyYW5zYWN0aW9uIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdFJhd0RhdGEgPSAoc2VyaWFsaXplZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uZnJvbSgnMHgnICsgc2VyaWFsaXplZFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGRlc2VyaWFsaXppbmcgJHt0aGlzLmNoYWlufSB0eCB0byBleHRyYWN0IHJvc2VuIGRhdGE6ICR7ZX1gXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucnBjRXh0cmFjdG9yLmV4dHJhY3RSYXdEYXRhKHRyYW5zYWN0aW9uKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { RosenData } from '../abstract/types';
|
|
2
|
-
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
3
|
-
import { Transaction } from 'ethers';
|
|
4
|
-
import { TokenMap } from '@rosen-bridge/tokens';
|
|
5
|
-
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
6
|
-
export declare class EvmRpcRosenExtractor extends AbstractRosenDataExtractor<Transaction> {
|
|
7
|
-
readonly chain: string;
|
|
8
|
-
protected nativeToken: string;
|
|
9
|
-
constructor(lockAddress: string, tokens: TokenMap, chain: string, nativeToken: string, logger?: AbstractLogger);
|
|
10
|
-
/**
|
|
11
|
-
* extracts RosenData from given lock transaction in ethers Transaction object
|
|
12
|
-
* checks:
|
|
13
|
-
* Native token transfer:
|
|
14
|
-
* 1. `to` must be the lock address
|
|
15
|
-
* 2. the entire calldata must represent a valid CallDataRosenData
|
|
16
|
-
* ERC20 transfer:
|
|
17
|
-
* 1. `to` address is one of the supported assets
|
|
18
|
-
* 2. first four bytes of the call data indicate `transfer` function call: a9059cbb
|
|
19
|
-
* 3. bytes from 5 to 37 must be the lock address
|
|
20
|
-
* 4. bytes from 37 to 69 show the amount
|
|
21
|
-
* 5. bytes after 69 must represent a valid CallDataRosenData
|
|
22
|
-
* @param transaction the lock transaction in ethers Transaction object
|
|
23
|
-
*/
|
|
24
|
-
extractRawData: (transaction: Transaction) => RosenData | undefined;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=EvmRpcRosenExtractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,123 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtUnBjUm9zZW5FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS9Fdm1ScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBSWhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDBCQUF1QztJQUN0RSxLQUFLLENBQVM7SUFDYixXQUFXLENBQVM7SUFFOUIsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxjQUFjLEdBQUcsQ0FBQyxXQUF3QixFQUF5QixFQUFFO1FBQ25FLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSSxDQUFDO1lBQ0gsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixTQUFTO29CQUNQLHdCQUF3QixXQUFXLENBQUMsSUFBSSxrQkFBa0IsV0FBVyxDQUFDLElBQUksNERBQTRELENBQ3pJLENBQUM7Z0JBQ0YsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFD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QUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiw0REFBNEQsQ0FBQyxFQUFFLENBQ2hFLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvc2VuRGF0YSB9IGZyb20gJy4uL2Fic3RyYWN0L3R5cGVzJztcbmltcG9ydCBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvciBmcm9tICcuLi9hYnN0cmFjdC9BYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3Rvcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJ2V0aGVycyc7XG5pbXBvcnQgeyBUb2tlbk1hcCwgUm9zZW5DaGFpblRva2VuIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBwYXJzZUNhbGxEYXRhIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBFdm1ScGNSb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGNoYWluOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBuYXRpdmVUb2tlbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIG5hdGl2ZVRva2VuOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIobG9ja0FkZHJlc3MsIHRva2VucywgbG9nZ2VyKTtcbiAgICB0aGlzLmNoYWluID0gY2hhaW47XG4gICAgdGhpcy5uYXRpdmVUb2tlbiA9IG5hdGl2ZVRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gZXRoZXJzIFRyYW5zYWN0aW9uIG9iamVjdFxuICAgKiBjaGVja3M6XG4gICAqICAgICBOYXRpdmUgdG9rZW4gdHJhbnNmZXI6XG4gICAqICAgICAgICAgMS4gYHRvYCBtdXN0IGJlIHRoZSBsb2NrIGFkZHJlc3NcbiAgICogICAgICAgICAyLiB0aGUgZW50aXJlIGNhbGxkYXRhIG11c3QgcmVwcmVzZW50IGEgdmFsaWQgQ2FsbERhdGFSb3NlbkRhdGFcbiAgICogICAgIEVSQzIwIHRyYW5zZmVyOlxuICAgKiAgICAgICAgIDEuIGB0b2AgYWRkcmVzcyBpcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBhc3NldHNcbiAgICogICAgICAgICAyLiBmaXJzdCBmb3VyIGJ5dGVzIG9mIHRoZSBjYWxsIGRhdGEgaW5kaWNhdGUgYHRyYW5zZmVyYCBmdW5jdGlvbiBjYWxsOiBhOTA1OWNiYlxuICAgKiAgICAgICAgIDMuIGJ5dGVzIGZyb20gNSB0byAzNyBtdXN0IGJlIHRoZSBsb2NrIGFkZHJlc3NcbiAgICogICAgICAgICA0LiBieXRlcyBmcm9tIDM3IHRvIDY5IHNob3cgdGhlIGFtb3VudFxuICAgKiAgICAgICAgIDUuIGJ5dGVzIGFmdGVyIDY5IG11c3QgcmVwcmVzZW50IGEgdmFsaWQgQ2FsbERhdGFSb3NlbkRhdGFcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIGV0aGVycyBUcmFuc2FjdGlvbiBvYmplY3RcbiAgICovXG4gIGV4dHJhY3RSYXdEYXRhID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IFJvc2VuRGF0YSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmhhc2h9XWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0cmFuc2FjdGlvbi5mcm9tID09IG51bGwgfHwgdHJhbnNhY3Rpb24uaGFzaCA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArXG4gICAgICAgICAgICBgdHJhbnNhY3Rpb24gJ2Zyb20nIChbJHt0cmFuc2FjdGlvbi5mcm9tfV0pIG9yICdoYXNoJyAoWyR7dHJhbnNhY3Rpb24uaGFzaH1dKSBpcyB1bmV4cGVjdGVkIChwcm9iYWJseSB1bnNpZ25lZCB0cmFuc2FjdGlvbiBpcyBwYXNzZWQpYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRyYW5zYWN0aW9uLnRvID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogJ3RvJyBhZGRyZXNzIGlzIGVtcHR5LmApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgbGV0IHJvc2VuRGF0YTtcbiAgICAgIGNvbnN0IGNhbGxEYXRhID0gdHJhbnNhY3Rpb24uZGF0YS5zdWJzdHJpbmcoMik7XG4gICAgICBsZXQgdG9rZW46IFJlY29yZDxzdHJpbmcsIFJvc2VuQ2hhaW5Ub2tlbj47XG4gICAgICBsZXQgcm9zZW5EYXRhUmF3O1xuICAgICAgbGV0IHRva2VuQWRkcmVzcztcbiAgICAgIGxldCBhbW91bnQ7XG4gICAgICBsZXQgc291cmNlVG9rZW5JZCwgdGFyZ2V0VG9rZW5JZDtcblxuICAgICAgaWYgKHRyYW5zYWN0aW9uLnRvLnRvTG93ZXJDYXNlKCkgPT0gdGhpcy5sb2NrQWRkcmVzcykge1xuICAgICAgICAvLyB0cmFuc2FjdGlvbiBtdXN0IGJlIGEgbmF0aXZlIHRva2VuIHRyYW5zZmVyXG4gICAgICAgIHJvc2VuRGF0YVJhdyA9IGNhbGxEYXRhO1xuICAgICAgICB0b2tlbkFkZHJlc3MgPSB0aGlzLm5hdGl2ZVRva2VuO1xuICAgICAgICBhbW91bnQgPSB0cmFuc2FjdGlvbi52YWx1ZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5zZWFyY2godGhpcy5jaGFpbiwge1xuICAgICAgICAgIHRva2VuSWQ6IHRoaXMubmF0aXZlVG9rZW4sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgc291cmNlVG9rZW5JZCA9IHRoaXMubmF0aXZlVG9rZW47XG4gICAgICAgICAgdG9rZW4gPSB0b2tlbnNbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgK1xuICAgICAgICAgICAgICBgOiBuYXRpdmUgdG9rZW4gWyR7dGhpcy5uYXRpdmVUb2tlbn1dIGlzIG5vdCBhdmFpbGFibGUgaW4gc291cmNlIGNoaWFuJ3MgdG9rZW5zIG1hcC5gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0cmFuc2FjdGlvbiBtdXN0IGJlIGFuIEVSQy0yMCB0b2tlbiB0cmFuc2ZlclxuICAgICAgICBpZiAoY2FsbERhdGEuc3Vic3RyaW5nKDAsIDgpICE9ICdhOTA1OWNiYicpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArIGA6IE5vdCBhIHZhbGlkIEVSQzIwIHRyYW5zZmVyIHRyYW5zYWN0aW9uLmBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIEJpZ0ludCgnMHgnICsgY2FsbERhdGEuc3Vic3RyaW5nKDgsIDcyKSkudG9TdHJpbmcoMTYpICE9XG4gICAgICAgICAgdGhpcy5sb2NrQWRkcmVzcy5zdWJzdHJpbmcoMilcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBiYXNlRXJyb3IgKyBgOiAndG8nIGFkZHJlc3MgaXMgbm90IHRoZSBsb2NrIGFkZHJlc3MuYFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBhbW91bnQgPSBCaWdJbnQoJzB4JyArIGNhbGxEYXRhLnNsaWNlKDcyLCA3MiArIDY0KSkudG9TdHJpbmcoKTtcbiAgICAgICAgcm9zZW5EYXRhUmF3ID0gY2FsbERhdGEuc3Vic3RyaW5nKDcyICsgNjQpO1xuICAgICAgICB0b2tlbkFkZHJlc3MgPSB0cmFuc2FjdGlvbi50by50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5zZWFyY2godGhpcy5jaGFpbiwge1xuICAgICAgICAgIHRva2VuSWQ6IHRva2VuQWRkcmVzcyxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGJhc2VFcnJvciArXG4gICAgICAgICAgICAgIGA6IHRva2VuIFske3Rva2VuQWRkcmVzc31dIGlzIG5vdCBzdXBwb3J0ZWQgb24gY2hhaW46IFske3RoaXMuY2hhaW59XS5gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuID0gdG9rZW5zWzBdO1xuICAgICAgICBzb3VyY2VUb2tlbklkID0gdG9rZW5BZGRyZXNzLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICByb3NlbkRhdGEgPSBwYXJzZUNhbGxEYXRhKHJvc2VuRGF0YVJhdyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBleHRyYWN0IGRhdGEgZnJvbSBjYWxsIGRhdGE6ICR7ZX1gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRhcmdldFRva2VuSWQgPSB0aGlzLnRva2Vucy5nZXRJRCh0b2tlbiwgcm9zZW5EYXRhLnRvQ2hhaW4pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgK1xuICAgICAgICAgICAgYDogdG9rZW4gWyR7dG9rZW5BZGRyZXNzfV0gaXMgbm90IHN1cHBvcnRlZCBvbiBjaGFpbjogWyR7cm9zZW5EYXRhLnRvQ2hhaW59XS5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiByb3NlbkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiByb3NlbkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IHJvc2VuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IHJvc2VuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogdHJhbnNhY3Rpb24uZnJvbS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IHNvdXJjZVRva2VuSWQsXG4gICAgICAgIGFtb3VudDogYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IHRhcmdldFRva2VuSWQsXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmhhc2gsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyBFVk0gcm9zZW4gZGF0YSBmcm9tIFJQQzogJHtlfWBcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { MinimalOnChainRosenData } from '../../types';
|
|
2
|
-
/**
|
|
3
|
-
* extracts rosen data from transaction's remaining call data
|
|
4
|
-
* @param callData
|
|
5
|
-
*/
|
|
6
|
-
export declare const parseCallData: (callData: string) => MinimalOnChainRosenData;
|
|
7
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2V2bS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzdDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQWdCLEVBQTJCLEVBQUU7SUFDekUsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNaW5pbWFsT25DaGFpblJvc2VuRGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuLyoqXG4gKiBleHRyYWN0cyByb3NlbiBkYXRhIGZyb20gdHJhbnNhY3Rpb24ncyByZW1haW5pbmcgY2FsbCBkYXRhXG4gKiBAcGFyYW0gY2FsbERhdGFcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlQ2FsbERhdGEgPSAoY2FsbERhdGE6IHN0cmluZyk6IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhID0+IHtcbiAgcmV0dXJuIHBhcnNlUm9zZW5EYXRhKGNhbGxEYXRhKTtcbn07XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { RosenData } from '../abstract/types';
|
|
2
|
-
import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
|
|
3
|
-
import { BitcoinEsploraTransaction, EsploraTxOutput } from '../bitcoin/types';
|
|
4
|
-
import { TokenMap } from '@rosen-bridge/tokens';
|
|
5
|
-
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
6
|
-
import { LockDataChunk } from './types';
|
|
7
|
-
import { MinimalOnChainRosenData } from '../../types';
|
|
8
|
-
export declare class RunesEsploraRosenExtractor extends AbstractRosenDataExtractor<BitcoinEsploraTransaction> {
|
|
9
|
-
readonly chain = "bitcoin-runes";
|
|
10
|
-
protected lockScriptPubKey: string;
|
|
11
|
-
constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger);
|
|
12
|
-
/**
|
|
13
|
-
* extracts RosenData from given lock transaction in Esplora format
|
|
14
|
-
* @param transaction the lock transaction in Esplora format
|
|
15
|
-
*/
|
|
16
|
-
extractRawData: (transaction: BitcoinEsploraTransaction) => RosenData | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* extracts RosenData chunks from tx outputs
|
|
19
|
-
* @param outputs
|
|
20
|
-
* @return array of LockDataChunk
|
|
21
|
-
*/
|
|
22
|
-
protected getLockDataChunks: (outputs: EsploraTxOutput[]) => LockDataChunk[];
|
|
23
|
-
/**
|
|
24
|
-
* combines lock data chunks into lock data object
|
|
25
|
-
* @param lockDataChunks
|
|
26
|
-
* @return lock data object or undefined
|
|
27
|
-
*/
|
|
28
|
-
protected lockDataFromChunks: (lockDataChunks: LockDataChunk[]) => MinimalOnChainRosenData | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* check lock box exists in the tx outputs
|
|
31
|
-
* @param outputs
|
|
32
|
-
* @return boolean
|
|
33
|
-
*/
|
|
34
|
-
protected validateLock: (outputs: EsploraTxOutput[]) => boolean;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=RunesEsploraRosenExtractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunesEsploraRosenExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/runes/RunesEsploraRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,qBAAa,0BAA2B,SAAQ,0BAA0B,CAAC,yBAAyB,CAAC;IACnG,QAAQ,CAAC,KAAK,mBAAe;IAC7B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc;IAK1E;;;OAGG;IACH,cAAc,GACZ,aAAa,yBAAyB,KACrC,SAAS,GAAG,SAAS,CAgDtB;IAEF;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,GACzB,SAAS,eAAe,EAAE,KACzB,aAAa,EAAE,CAmBhB;IAEF;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,GAC1B,gBAAgB,aAAa,EAAE,KAC9B,uBAAuB,GAAG,SAAS,CAgBpC;IAEF;;;;OAIG;IACH,SAAS,CAAC,YAAY,GAAI,SAAS,eAAe,EAAE,KAAG,OAAO,CAO5D;CACH"}
|