@rosen-bridge/rosen-extractor 6.2.2 → 6.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts +14 -20
  2. package/dist/lib/getRosenData/abstract/types.d.ts +13 -13
  3. package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts +15 -24
  4. package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts +15 -22
  5. package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts +15 -22
  6. package/dist/lib/getRosenData/bitcoin/types.d.ts +66 -66
  7. package/dist/lib/getRosenData/bitcoin/utils.d.ts +1 -1
  8. package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts +13 -16
  9. package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts +13 -16
  10. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts +13 -16
  11. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts +13 -16
  12. package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts +13 -16
  13. package/dist/lib/getRosenData/cardano/types.d.ts +90 -110
  14. package/dist/lib/getRosenData/cardano/utils.d.ts +8 -10
  15. package/dist/lib/getRosenData/const.d.ts +9 -9
  16. package/dist/lib/getRosenData/const.d.ts.map +1 -1
  17. package/dist/lib/getRosenData/const.js +3 -2
  18. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts +22 -0
  19. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +1 -0
  20. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.js +104 -0
  21. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts +22 -0
  22. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts.map +1 -0
  23. package/dist/lib/getRosenData/doge/DogeRosenExtractor.js +112 -0
  24. package/dist/lib/getRosenData/doge/types.d.ts +59 -0
  25. package/dist/lib/getRosenData/doge/types.d.ts.map +1 -0
  26. package/dist/lib/getRosenData/doge/types.js +2 -0
  27. package/dist/lib/getRosenData/doge/utils.d.ts +13 -0
  28. package/dist/lib/getRosenData/doge/utils.d.ts.map +1 -0
  29. package/dist/lib/getRosenData/doge/utils.js +58 -0
  30. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts +15 -22
  31. package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.d.ts +9 -13
  32. package/dist/lib/getRosenData/ergo/types.d.ts +24 -24
  33. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts +9 -15
  34. package/dist/lib/getRosenData/evm/EvmRosenExtractor.d.ts +9 -15
  35. package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.d.ts +19 -25
  36. package/dist/lib/getRosenData/evm/utils.d.ts +5 -5
  37. package/dist/lib/index.d.ts +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +2 -2
  40. package/dist/lib/getRosenData/Utils.d.ts +0 -59
  41. package/dist/lib/getRosenData/Utils.d.ts.map +0 -1
  42. package/dist/lib/getRosenData/Utils.js +0 -96
@@ -0,0 +1,59 @@
1
+ export interface OpReturnData {
2
+ toChain: string;
3
+ toAddress: string;
4
+ bridgeFee: string;
5
+ networkFee: string;
6
+ }
7
+ export interface EsploraTxInput {
8
+ txid: string;
9
+ vout: number;
10
+ prevout: {
11
+ scriptpubkey: string;
12
+ scriptpubkey_asm: string;
13
+ scriptpubkey_type: string;
14
+ scriptpubkey_address: string;
15
+ value: number;
16
+ };
17
+ scriptsig: string;
18
+ scriptsig_asm: string;
19
+ is_coinbase: false;
20
+ sequence: number;
21
+ }
22
+ export interface EsploraTxOutput {
23
+ scriptpubkey: string;
24
+ scriptpubkey_asm: string;
25
+ scriptpubkey_type: string;
26
+ scriptpubkey_address: string;
27
+ value: number;
28
+ }
29
+ export interface DogeEsploraTransaction {
30
+ txid: string;
31
+ version: number;
32
+ locktime: number;
33
+ vin: Array<EsploraTxInput>;
34
+ vout: Array<EsploraTxOutput>;
35
+ size: number;
36
+ weight: number;
37
+ fee: number;
38
+ status: {
39
+ confirmed: true;
40
+ block_height: number;
41
+ block_hash: string;
42
+ block_time: number;
43
+ };
44
+ }
45
+ export interface DogeTxInput {
46
+ txId: string;
47
+ index: number;
48
+ scriptPubKey: string;
49
+ }
50
+ export interface DogeTxOutput {
51
+ scriptPubKey: string;
52
+ value: bigint;
53
+ }
54
+ export interface DogeTx {
55
+ id: string;
56
+ inputs: DogeTxInput[];
57
+ outputs: DogeTxOutput[];
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/doge/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,KAAK,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,SAAS,EAAE,IAAI,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2RvZ2UvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3BSZXR1cm5EYXRhIHtcbiAgdG9DaGFpbjogc3RyaW5nO1xuICB0b0FkZHJlc3M6IHN0cmluZztcbiAgYnJpZGdlRmVlOiBzdHJpbmc7XG4gIG5ldHdvcmtGZWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFc3Bsb3JhVHhJbnB1dCB7XG4gIHR4aWQ6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xuICBwcmV2b3V0OiB7XG4gICAgc2NyaXB0cHVia2V5OiBzdHJpbmc7XG4gICAgc2NyaXB0cHVia2V5X2FzbTogc3RyaW5nO1xuICAgIHNjcmlwdHB1YmtleV90eXBlOiBzdHJpbmc7XG4gICAgc2NyaXB0cHVia2V5X2FkZHJlc3M6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9O1xuICBzY3JpcHRzaWc6IHN0cmluZztcbiAgc2NyaXB0c2lnX2FzbTogc3RyaW5nO1xuICBpc19jb2luYmFzZTogZmFsc2U7XG4gIHNlcXVlbmNlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNwbG9yYVR4T3V0cHV0IHtcbiAgc2NyaXB0cHVia2V5OiBzdHJpbmc7XG4gIHNjcmlwdHB1YmtleV9hc206IHN0cmluZztcbiAgc2NyaXB0cHVia2V5X3R5cGU6IHN0cmluZztcbiAgc2NyaXB0cHVia2V5X2FkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2dlRXNwbG9yYVRyYW5zYWN0aW9uIHtcbiAgdHhpZDogc3RyaW5nO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGxvY2t0aW1lOiBudW1iZXI7XG4gIHZpbjogQXJyYXk8RXNwbG9yYVR4SW5wdXQ+O1xuICB2b3V0OiBBcnJheTxFc3Bsb3JhVHhPdXRwdXQ+O1xuICBzaXplOiBudW1iZXI7XG4gIHdlaWdodDogbnVtYmVyO1xuICBmZWU6IG51bWJlcjtcbiAgc3RhdHVzOiB7XG4gICAgY29uZmlybWVkOiB0cnVlO1xuICAgIGJsb2NrX2hlaWdodDogbnVtYmVyO1xuICAgIGJsb2NrX2hhc2g6IHN0cmluZztcbiAgICBibG9ja190aW1lOiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9nZVR4SW5wdXQge1xuICB0eElkOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvZ2VUeE91dHB1dCB7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvZ2VUeCB7XG4gIGlkOiBzdHJpbmc7XG4gIGlucHV0czogRG9nZVR4SW5wdXRbXTtcbiAgb3V0cHV0czogRG9nZVR4T3V0cHV0W107XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { OpReturnData } from './types';
2
+ /**
3
+ * Converts a Dogecoin address to its corresponding output script
4
+ * @param addr The Dogecoin address to convert
5
+ * @returns The output script as a hex string
6
+ */
7
+ export declare const addressToOutputScript: (addr: string) => string;
8
+ /**
9
+ * extracts rosen data from OP_RETURN box script pub key
10
+ * @param scriptPubKeyHex
11
+ */
12
+ export declare const parseRosenData: (scriptPubKeyHex: string) => OpReturnData;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/getRosenData/doge/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAevC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,MAEpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,oBAAqB,MAAM,KAAG,YA4CxD,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { decodeAddress } from '@rosen-bridge/address-codec';
2
+ import { SUPPORTED_CHAINS } from '../const';
3
+ import { address } from 'bitcoinjs-lib';
4
+ const dogecoinNetwork = {
5
+ messagePrefix: '\x19Dogecoin Signed Message:\n',
6
+ bech32: 'dc',
7
+ bip32: {
8
+ public: 0x02facafd,
9
+ private: 0x02fac398,
10
+ },
11
+ pubKeyHash: 0x1e,
12
+ scriptHash: 0x16,
13
+ wif: 0x9e,
14
+ };
15
+ /**
16
+ * Converts a Dogecoin address to its corresponding output script
17
+ * @param addr The Dogecoin address to convert
18
+ * @returns The output script as a hex string
19
+ */
20
+ export const addressToOutputScript = (addr) => {
21
+ return address.toOutputScript(addr, dogecoinNetwork).toString('hex');
22
+ };
23
+ /**
24
+ * extracts rosen data from OP_RETURN box script pub key
25
+ * @param scriptPubKeyHex
26
+ */
27
+ export const parseRosenData = (scriptPubKeyHex) => {
28
+ // check OP_RETURN opcode
29
+ if (scriptPubKeyHex.slice(0, 2) !== '6a')
30
+ throw Error(`script does not start with OP_RETURN opcode (6a)`);
31
+ // check script length (should not use more than one OP_RETURN)
32
+ const dataLength = scriptPubKeyHex.slice(2, 4);
33
+ if (parseInt(dataLength, 16) + 2 !== scriptPubKeyHex.length / 2)
34
+ throw Error(`script length is unexpected [${parseInt(dataLength, 16) + 3} !== ${scriptPubKeyHex.length / 2}]`);
35
+ // parse toChain
36
+ const toChainHex = scriptPubKeyHex.slice(4, 6);
37
+ const toChainCode = parseInt(toChainHex, 16);
38
+ if (toChainCode >= SUPPORTED_CHAINS.length)
39
+ throw Error(`invalid toChain code, found [${toChainCode}] but only [${SUPPORTED_CHAINS.length}] chains are supported`);
40
+ const toChain = SUPPORTED_CHAINS[toChainCode];
41
+ // parse bridgeFee
42
+ const bridgeFeeHex = scriptPubKeyHex.slice(6, 22);
43
+ const bridgeFee = BigInt('0x' + bridgeFeeHex).toString();
44
+ // parse networkFee
45
+ const networkFeeHex = scriptPubKeyHex.slice(22, 38);
46
+ const networkFee = BigInt('0x' + networkFeeHex).toString();
47
+ // parse toAddress
48
+ const addressLengthCode = scriptPubKeyHex.slice(38, 40);
49
+ const addressHex = scriptPubKeyHex.slice(40, 40 + parseInt(addressLengthCode, 16) * 2);
50
+ const toAddress = decodeAddress(toChain, addressHex);
51
+ return {
52
+ toChain,
53
+ toAddress,
54
+ bridgeFee,
55
+ networkFee,
56
+ };
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2RvZ2UvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sZUFBZSxHQUFHO0lBQ3RCLGFBQWEsRUFBRSxnQ0FBZ0M7SUFDL0MsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUUsVUFBVTtLQUNwQjtJQUNELFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsRUFBRSxJQUFJO0NBQ1YsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFO0lBQzVELE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLGVBQXVCLEVBQWdCLEVBQUU7SUFDdEUseUJBQXlCO0lBQ3pCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSTtRQUN0QyxNQUFNLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2xFLCtEQUErRDtJQUMvRCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUM3RCxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQzFELGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FDM0IsR0FBRyxDQUNKLENBQUM7SUFFSixnQkFBZ0I7SUFDaEIsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNO1FBQ3hDLE1BQU0sS0FBSyxDQUNULGdDQUFnQyxXQUFXLGVBQWUsZ0JBQWdCLENBQUMsTUFBTSx3QkFBd0IsQ0FDMUcsQ0FBQztJQUNKLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTlDLGtCQUFrQjtJQUNsQixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRXpELG1CQUFtQjtJQUNuQixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTNELGtCQUFrQjtJQUNsQixNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQ3RDLEVBQUUsRUFDRixFQUFFLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FDekMsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFckQsT0FBTztRQUNMLE9BQU87UUFDUCxTQUFTO1FBQ1QsU0FBUztRQUNULFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVjb2RlQWRkcmVzcyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWRkcmVzcy1jb2RlYyc7XG5pbXBvcnQgeyBTVVBQT1JURURfQ0hBSU5TIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgT3BSZXR1cm5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRyZXNzLCBuZXR3b3JrcyB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5jb25zdCBkb2dlY29pbk5ldHdvcmsgPSB7XG4gIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOURvZ2Vjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gIGJlY2gzMjogJ2RjJyxcbiAgYmlwMzI6IHtcbiAgICBwdWJsaWM6IDB4MDJmYWNhZmQsXG4gICAgcHJpdmF0ZTogMHgwMmZhYzM5OCxcbiAgfSxcbiAgcHViS2V5SGFzaDogMHgxZSxcbiAgc2NyaXB0SGFzaDogMHgxNixcbiAgd2lmOiAweDllLFxufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIERvZ2Vjb2luIGFkZHJlc3MgdG8gaXRzIGNvcnJlc3BvbmRpbmcgb3V0cHV0IHNjcmlwdFxuICogQHBhcmFtIGFkZHIgVGhlIERvZ2Vjb2luIGFkZHJlc3MgdG8gY29udmVydFxuICogQHJldHVybnMgVGhlIG91dHB1dCBzY3JpcHQgYXMgYSBoZXggc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRyZXNzVG9PdXRwdXRTY3JpcHQgPSAoYWRkcjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGFkZHJlc3MudG9PdXRwdXRTY3JpcHQoYWRkciwgZG9nZWNvaW5OZXR3b3JrKS50b1N0cmluZygnaGV4Jyk7XG59O1xuXG4vKipcbiAqIGV4dHJhY3RzIHJvc2VuIGRhdGEgZnJvbSBPUF9SRVRVUk4gYm94IHNjcmlwdCBwdWIga2V5XG4gKiBAcGFyYW0gc2NyaXB0UHViS2V5SGV4XG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZVJvc2VuRGF0YSA9IChzY3JpcHRQdWJLZXlIZXg6IHN0cmluZyk6IE9wUmV0dXJuRGF0YSA9PiB7XG4gIC8vIGNoZWNrIE9QX1JFVFVSTiBvcGNvZGVcbiAgaWYgKHNjcmlwdFB1YktleUhleC5zbGljZSgwLCAyKSAhPT0gJzZhJylcbiAgICB0aHJvdyBFcnJvcihgc2NyaXB0IGRvZXMgbm90IHN0YXJ0IHdpdGggT1BfUkVUVVJOIG9wY29kZSAoNmEpYCk7XG4gIC8vIGNoZWNrIHNjcmlwdCBsZW5ndGggKHNob3VsZCBub3QgdXNlIG1vcmUgdGhhbiBvbmUgT1BfUkVUVVJOKVxuICBjb25zdCBkYXRhTGVuZ3RoID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDQpO1xuICBpZiAocGFyc2VJbnQoZGF0YUxlbmd0aCwgMTYpICsgMiAhPT0gc2NyaXB0UHViS2V5SGV4Lmxlbmd0aCAvIDIpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgc2NyaXB0IGxlbmd0aCBpcyB1bmV4cGVjdGVkIFske3BhcnNlSW50KGRhdGFMZW5ndGgsIDE2KSArIDN9ICE9PSAke1xuICAgICAgICBzY3JpcHRQdWJLZXlIZXgubGVuZ3RoIC8gMlxuICAgICAgfV1gXG4gICAgKTtcblxuICAvLyBwYXJzZSB0b0NoYWluXG4gIGNvbnN0IHRvQ2hhaW5IZXggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoNCwgNik7XG4gIGNvbnN0IHRvQ2hhaW5Db2RlID0gcGFyc2VJbnQodG9DaGFpbkhleCwgMTYpO1xuICBpZiAodG9DaGFpbkNvZGUgPj0gU1VQUE9SVEVEX0NIQUlOUy5sZW5ndGgpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgaW52YWxpZCB0b0NoYWluIGNvZGUsIGZvdW5kIFske3RvQ2hhaW5Db2RlfV0gYnV0IG9ubHkgWyR7U1VQUE9SVEVEX0NIQUlOUy5sZW5ndGh9XSBjaGFpbnMgYXJlIHN1cHBvcnRlZGBcbiAgICApO1xuICBjb25zdCB0b0NoYWluID0gU1VQUE9SVEVEX0NIQUlOU1t0b0NoYWluQ29kZV07XG5cbiAgLy8gcGFyc2UgYnJpZGdlRmVlXG4gIGNvbnN0IGJyaWRnZUZlZUhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSg2LCAyMik7XG4gIGNvbnN0IGJyaWRnZUZlZSA9IEJpZ0ludCgnMHgnICsgYnJpZGdlRmVlSGV4KS50b1N0cmluZygpO1xuXG4gIC8vIHBhcnNlIG5ldHdvcmtGZWVcbiAgY29uc3QgbmV0d29ya0ZlZUhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSgyMiwgMzgpO1xuICBjb25zdCBuZXR3b3JrRmVlID0gQmlnSW50KCcweCcgKyBuZXR3b3JrRmVlSGV4KS50b1N0cmluZygpO1xuXG4gIC8vIHBhcnNlIHRvQWRkcmVzc1xuICBjb25zdCBhZGRyZXNzTGVuZ3RoQ29kZSA9IHNjcmlwdFB1YktleUhleC5zbGljZSgzOCwgNDApO1xuICBjb25zdCBhZGRyZXNzSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKFxuICAgIDQwLFxuICAgIDQwICsgcGFyc2VJbnQoYWRkcmVzc0xlbmd0aENvZGUsIDE2KSAqIDJcbiAgKTtcbiAgY29uc3QgdG9BZGRyZXNzID0gZGVjb2RlQWRkcmVzcyh0b0NoYWluLCBhZGRyZXNzSGV4KTtcblxuICByZXR1cm4ge1xuICAgIHRvQ2hhaW4sXG4gICAgdG9BZGRyZXNzLFxuICAgIGJyaWRnZUZlZSxcbiAgICBuZXR3b3JrRmVlLFxuICB9O1xufTtcbiJdfQ==
@@ -4,26 +4,19 @@ import { NodeOutputBox, NodeTransaction } from './types';
4
4
  import { RosenTokens } from '@rosen-bridge/tokens';
5
5
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
6
  export declare class ErgoNodeRosenExtractor extends AbstractRosenDataExtractor<NodeTransaction> {
7
- readonly chain = 'ergo';
8
- lockErgoTree: string;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- logger?: AbstractLogger
13
- );
14
- /**
15
- * extracts RosenData from given lock transaction in Node format
16
- * @param transaction the lock transaction in Node format
17
- */
18
- extractRawData: (transaction: NodeTransaction) => RosenData | undefined;
19
- /**
20
- * extracts and builds token transformation from NodeOutputBox and tokenMap
21
- * @param box transaction output
22
- * @param toChain event target chain
23
- */
24
- getAssetTransformation: (
25
- box: NodeOutputBox,
26
- toChain: string
27
- ) => TokenTransformation | undefined;
7
+ readonly chain = "ergo";
8
+ lockErgoTree: string;
9
+ constructor(lockAddress: string, tokens: RosenTokens, logger?: AbstractLogger);
10
+ /**
11
+ * extracts RosenData from given lock transaction in Node format
12
+ * @param transaction the lock transaction in Node format
13
+ */
14
+ extractRawData: (transaction: NodeTransaction) => RosenData | undefined;
15
+ /**
16
+ * extracts and builds token transformation from NodeOutputBox and tokenMap
17
+ * @param box transaction output
18
+ * @param toChain event target chain
19
+ */
20
+ getAssetTransformation: (box: NodeOutputBox, toChain: string) => TokenTransformation | undefined;
28
21
  }
29
- //# sourceMappingURL=ErgoNodeRosenExtractor.d.ts.map
22
+ //# sourceMappingURL=ErgoNodeRosenExtractor.d.ts.map
@@ -3,17 +3,13 @@ import AbstractRosenDataExtractor from '../abstract/AbstractRosenDataExtractor';
3
3
  import { RosenTokens } from '@rosen-bridge/tokens';
4
4
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
5
5
  export declare class ErgoRosenExtractor extends AbstractRosenDataExtractor<string> {
6
- readonly chain = 'ergo';
7
- private nodeExtractor;
8
- constructor(
9
- lockAddress: string,
10
- tokens: RosenTokens,
11
- logger?: AbstractLogger
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: string) => RosenData | undefined;
6
+ readonly chain = "ergo";
7
+ private nodeExtractor;
8
+ constructor(lockAddress: string, tokens: RosenTokens, 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;
18
14
  }
19
- //# sourceMappingURL=ErgoRosenExtractor.d.ts.map
15
+ //# sourceMappingURL=ErgoRosenExtractor.d.ts.map
@@ -1,37 +1,37 @@
1
1
  interface NodeAsset {
2
- tokenId: string;
3
- amount: bigint;
2
+ tokenId: string;
3
+ amount: bigint;
4
4
  }
5
5
  interface NodeAdditionalRegisters {
6
- R4?: string;
7
- R5?: string;
8
- R6?: string;
9
- R7?: string;
10
- R8?: string;
11
- R9?: string;
6
+ R4?: string;
7
+ R5?: string;
8
+ R6?: string;
9
+ R7?: string;
10
+ R8?: string;
11
+ R9?: string;
12
12
  }
13
13
  interface NodeOutputBox {
14
- boxId: string;
15
- value: bigint;
16
- ergoTree: string;
17
- creationHeight: bigint | number;
18
- assets?: Array<NodeAsset>;
19
- additionalRegisters?: NodeAdditionalRegisters;
20
- transactionId: string;
21
- index: bigint | number;
14
+ boxId: string;
15
+ value: bigint;
16
+ ergoTree: string;
17
+ creationHeight: bigint | number;
18
+ assets?: Array<NodeAsset>;
19
+ additionalRegisters?: NodeAdditionalRegisters;
20
+ transactionId: string;
21
+ index: bigint | number;
22
22
  }
23
23
  interface NodeInputBox {
24
- boxId: string;
24
+ boxId: string;
25
25
  }
26
26
  interface NodeDataInput {
27
- boxId: string;
27
+ boxId: string;
28
28
  }
29
29
  interface NodeTransaction {
30
- id: string;
31
- inputs: Array<NodeInputBox>;
32
- dataInputs: Array<NodeDataInput>;
33
- outputs: Array<NodeOutputBox>;
34
- size?: bigint;
30
+ id: string;
31
+ inputs: Array<NodeInputBox>;
32
+ dataInputs: Array<NodeDataInput>;
33
+ outputs: Array<NodeOutputBox>;
34
+ size?: bigint;
35
35
  }
36
36
  export { NodeOutputBox, NodeTransaction };
37
- //# sourceMappingURL=types.d.ts.map
37
+ //# sourceMappingURL=types.d.ts.map
@@ -5,19 +5,13 @@ import { RosenTokens } from '@rosen-bridge/tokens';
5
5
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
6
  import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
7
7
  export declare class EvmEthersRosenExtractor extends AbstractRosenDataExtractor<TransactionResponse> {
8
- readonly chain: string;
9
- protected rpcExtractor: EvmRpcRosenExtractor;
10
- constructor(
11
- lockAddress: string,
12
- tokens: RosenTokens,
13
- chain: string,
14
- nativeToken: string,
15
- logger?: AbstractLogger
16
- );
17
- /**
18
- * extracts RosenData from given lock transaction in ethers TransactionResponse format
19
- * @param txRes the lock transaction in ethers TransactionResponse format
20
- */
21
- extractRawData: (txRes: TransactionResponse) => RosenData | undefined;
8
+ readonly chain: string;
9
+ protected rpcExtractor: EvmRpcRosenExtractor;
10
+ constructor(lockAddress: string, tokens: RosenTokens, chain: string, nativeToken: string, logger?: AbstractLogger);
11
+ /**
12
+ * extracts RosenData from given lock transaction in ethers TransactionResponse format
13
+ * @param txRes the lock transaction in ethers TransactionResponse format
14
+ */
15
+ extractRawData: (txRes: TransactionResponse) => RosenData | undefined;
22
16
  }
23
- //# sourceMappingURL=EvmEthersRosenExtractor.d.ts.map
17
+ //# sourceMappingURL=EvmEthersRosenExtractor.d.ts.map
@@ -4,19 +4,13 @@ import { RosenTokens } from '@rosen-bridge/tokens';
4
4
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
5
5
  import { EvmRpcRosenExtractor } from './EvmRpcRosenExtractor';
6
6
  export declare class EvmRosenExtractor extends AbstractRosenDataExtractor<string> {
7
- readonly chain: string;
8
- protected rpcExtractor: EvmRpcRosenExtractor;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- chain: string,
13
- nativeToken: string,
14
- logger?: AbstractLogger
15
- );
16
- /**
17
- * extracts RosenData from given lock transaction in ethers Transaction format
18
- * @param serializedTransaction signed serialized transaction in ethers Transaction format
19
- */
20
- extractRawData: (serializedTransaction: string) => RosenData | undefined;
7
+ readonly chain: string;
8
+ protected rpcExtractor: EvmRpcRosenExtractor;
9
+ constructor(lockAddress: string, tokens: RosenTokens, 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;
21
15
  }
22
- //# sourceMappingURL=EvmRosenExtractor.d.ts.map
16
+ //# sourceMappingURL=EvmRosenExtractor.d.ts.map
@@ -4,29 +4,23 @@ import { Transaction } from 'ethers';
4
4
  import { RosenTokens } from '@rosen-bridge/tokens';
5
5
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
6
6
  export declare class EvmRpcRosenExtractor extends AbstractRosenDataExtractor<Transaction> {
7
- readonly chain: string;
8
- protected nativeToken: string;
9
- constructor(
10
- lockAddress: string,
11
- tokens: RosenTokens,
12
- chain: string,
13
- nativeToken: string,
14
- logger?: AbstractLogger
15
- );
16
- /**
17
- * extracts RosenData from given lock transaction in ethers Transaction object
18
- * checks:
19
- * Native token transfer:
20
- * 1. `to` must be the lock address
21
- * 2. the entire calldata must represent a valid CallDataRosenData
22
- * ERC20 transfer:
23
- * 1. `to` address is one of the supported assets
24
- * 2. first four bytes of the call data indicate `transfer` function call: a9059cbb
25
- * 3. bytes from 5 to 37 must be the lock address
26
- * 4. bytes from 37 to 69 show the amount
27
- * 5. bytes after 69 must represent a valid CallDataRosenData
28
- * @param transaction the lock transaction in ethers Transaction object
29
- */
30
- extractRawData: (transaction: Transaction) => RosenData | undefined;
7
+ readonly chain: string;
8
+ protected nativeToken: string;
9
+ constructor(lockAddress: string, tokens: RosenTokens, 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;
31
25
  }
32
- //# sourceMappingURL=EvmRpcRosenExtractor.d.ts.map
26
+ //# sourceMappingURL=EvmRpcRosenExtractor.d.ts.map
@@ -1,8 +1,8 @@
1
1
  interface CallDataRosenData {
2
- toChain: string;
3
- toAddress: string;
4
- bridgeFee: string;
5
- networkFee: string;
2
+ toChain: string;
3
+ toAddress: string;
4
+ bridgeFee: string;
5
+ networkFee: string;
6
6
  }
7
7
  /**
8
8
  * extracts rosen data from transaction's remaining call data
@@ -10,4 +10,4 @@ interface CallDataRosenData {
10
10
  */
11
11
  export declare const parseRosenData: (callData: string) => CallDataRosenData;
12
12
  export {};
13
- //# sourceMappingURL=utils.d.ts.map
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -13,4 +13,4 @@ export { CardanoGraphQLRosenExtractor } from './getRosenData/cardano/CardanoGrap
13
13
  export { ErgoRosenExtractor } from './getRosenData/ergo/ErgoRosenExtractor';
14
14
  export { ErgoNodeRosenExtractor } from './getRosenData/ergo/ErgoNodeRosenExtractor';
15
15
  export { RosenData } from './getRosenData/abstract/types';
16
- //# sourceMappingURL=index.d.ts.map
16
+ //# sourceMappingURL=index.d.ts.map