@rosen-bridge/rosen-extractor 11.1.2 → 11.2.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/CHANGELOG.md +11 -0
- package/dist/getRosenData/const.d.ts +2 -0
- package/dist/getRosenData/const.d.ts.map +1 -1
- package/dist/getRosenData/const.js +4 -1
- package/dist/getRosenData/firo/firoRosenExtractor.d.ts +22 -0
- package/dist/getRosenData/firo/firoRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/firo/firoRosenExtractor.js +115 -0
- package/dist/getRosenData/firo/firoRpcRosenExtractor.d.ts +22 -0
- package/dist/getRosenData/firo/firoRpcRosenExtractor.d.ts.map +1 -0
- package/dist/getRosenData/firo/firoRpcRosenExtractor.js +108 -0
- package/dist/getRosenData/firo/types.d.ts +53 -0
- package/dist/getRosenData/firo/types.d.ts.map +1 -0
- package/dist/getRosenData/firo/types.js +2 -0
- package/dist/getRosenData/firo/utils.d.ts +13 -0
- package/dist/getRosenData/firo/utils.d.ts.map +1 -0
- package/dist/getRosenData/firo/utils.js +43 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @rosen-bridge/rosen-extractor
|
|
2
2
|
|
|
3
|
+
## 11.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add Firo chain support with FiroRosenExtractor and FiroRpcRosenExtractor
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Update dependencies
|
|
12
|
+
- @rosen-bridge/address-codec@1.1.0
|
|
13
|
+
|
|
3
14
|
## 11.1.2
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -9,5 +9,7 @@ export declare const ERGO_CHAIN = "ergo";
|
|
|
9
9
|
export declare const DOGE_CHAIN = "doge";
|
|
10
10
|
export declare const DOGE_NATIVE_TOKEN = "doge";
|
|
11
11
|
export declare const BITCOIN_RUNES_CHAIN = "bitcoin-runes";
|
|
12
|
+
export declare const FIRO_CHAIN = "firo";
|
|
13
|
+
export declare const FIRO_NATIVE_TOKEN = "firo";
|
|
12
14
|
export declare const SUPPORTED_CHAINS: string[];
|
|
13
15
|
//# sourceMappingURL=const.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../lib/getRosenData/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../lib/getRosenData/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,gBAAgB,UAS5B,CAAC"}
|
|
@@ -9,6 +9,8 @@ export const ERGO_CHAIN = 'ergo';
|
|
|
9
9
|
export const DOGE_CHAIN = 'doge';
|
|
10
10
|
export const DOGE_NATIVE_TOKEN = 'doge';
|
|
11
11
|
export const BITCOIN_RUNES_CHAIN = 'bitcoin-runes';
|
|
12
|
+
export const FIRO_CHAIN = 'firo';
|
|
13
|
+
export const FIRO_NATIVE_TOKEN = 'firo';
|
|
12
14
|
export const SUPPORTED_CHAINS = [
|
|
13
15
|
ERGO_CHAIN,
|
|
14
16
|
CARDANO_CHAIN,
|
|
@@ -17,5 +19,6 @@ export const SUPPORTED_CHAINS = [
|
|
|
17
19
|
BINANCE_CHAIN,
|
|
18
20
|
DOGE_CHAIN,
|
|
19
21
|
BITCOIN_RUNES_CHAIN,
|
|
22
|
+
FIRO_CHAIN,
|
|
20
23
|
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsVUFBVTtJQUNWLGFBQWE7SUFDYixhQUFhO0lBQ2IsY0FBYztJQUNkLGFBQWE7SUFDYixVQUFVO0lBQ1YsbUJBQW1CO0lBQ25CLFVBQVU7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENBUkRBTk9fTkFUSVZFX1RPS0VOID0gJ2FkYSc7XG5leHBvcnQgY29uc3QgRVJHT19OQVRJVkVfVE9LRU4gPSAnZXJnJztcbmV4cG9ydCBjb25zdCBCSVRDT0lOX05BVElWRV9UT0tFTiA9ICdidGMnO1xuZXhwb3J0IGNvbnN0IEJJVENPSU5fQ0hBSU4gPSAnYml0Y29pbic7XG5leHBvcnQgY29uc3QgRVRIRVJFVU1fQ0hBSU4gPSAnZXRoZXJldW0nO1xuZXhwb3J0IGNvbnN0IEJJTkFOQ0VfQ0hBSU4gPSAnYmluYW5jZSc7XG5leHBvcnQgY29uc3QgQ0FSREFOT19DSEFJTiA9ICdjYXJkYW5vJztcbmV4cG9ydCBjb25zdCBFUkdPX0NIQUlOID0gJ2VyZ28nO1xuZXhwb3J0IGNvbnN0IERPR0VfQ0hBSU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgRE9HRV9OQVRJVkVfVE9LRU4gPSAnZG9nZSc7XG5leHBvcnQgY29uc3QgQklUQ09JTl9SVU5FU19DSEFJTiA9ICdiaXRjb2luLXJ1bmVzJztcbmV4cG9ydCBjb25zdCBGSVJPX0NIQUlOID0gJ2Zpcm8nO1xuZXhwb3J0IGNvbnN0IEZJUk9fTkFUSVZFX1RPS0VOID0gJ2Zpcm8nO1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9DSEFJTlMgPSBbXG4gIEVSR09fQ0hBSU4sXG4gIENBUkRBTk9fQ0hBSU4sXG4gIEJJVENPSU5fQ0hBSU4sXG4gIEVUSEVSRVVNX0NIQUlOLFxuICBCSU5BTkNFX0NIQUlOLFxuICBET0dFX0NIQUlOLFxuICBCSVRDT0lOX1JVTkVTX0NIQUlOLFxuICBGSVJPX0NIQUlOLFxuXTtcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RosenData, TokenTransformation } from '../abstract/types';
|
|
2
|
+
import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
|
|
3
|
+
import { FiroTxOutput } from './types';
|
|
4
|
+
import { TokenMap } from '@rosen-bridge/tokens';
|
|
5
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
6
|
+
export declare class FiroRosenExtractor extends AbstractRosenDataExtractor<string> {
|
|
7
|
+
readonly chain = "firo";
|
|
8
|
+
protected lockScriptPubKey: string;
|
|
9
|
+
constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger, storeRawData?: boolean);
|
|
10
|
+
/**
|
|
11
|
+
* extracts RosenData from given lock transaction in FiroTx format
|
|
12
|
+
* @param serializedTransaction stringified transaction in FiroTx format
|
|
13
|
+
*/
|
|
14
|
+
extractData: (serializedTransaction: string) => RosenData | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* extracts and builds token transformation from UTXO and tokenMap
|
|
17
|
+
* @param box transaction output
|
|
18
|
+
* @param toChain event target chain
|
|
19
|
+
*/
|
|
20
|
+
getAssetTransformation: (box: FiroTxOutput, toChain: string) => TokenTransformation | undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=firoRosenExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firoRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/firo/firoRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,MAAM,CAAC;IACxE,QAAQ,CAAC,KAAK,UAAc;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAGjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc,EACvB,YAAY,UAAO;IAMrB;;;OAGG;IACH,WAAW,GAAI,uBAAuB,MAAM,KAAG,SAAS,GAAG,SAAS,CAwFlE;IAEF;;;;OAIG;IACH,sBAAsB,GACpB,KAAK,YAAY,EACjB,SAAS,MAAM,KACd,mBAAmB,GAAG,SAAS,CAehC;CACH"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
|
|
2
|
+
import { FIRO_CHAIN, FIRO_NATIVE_TOKEN } from '../const';
|
|
3
|
+
import { parseOpReturn, addressToOutputScript } from './utils';
|
|
4
|
+
import JsonBigInt from '@rosen-bridge/json-bigint';
|
|
5
|
+
export class FiroRosenExtractor extends AbstractRosenDataExtractor {
|
|
6
|
+
chain = FIRO_CHAIN;
|
|
7
|
+
lockScriptPubKey;
|
|
8
|
+
constructor(lockAddress, tokens, logger, storeRawData = true) {
|
|
9
|
+
super(lockAddress, tokens, logger, storeRawData);
|
|
10
|
+
this.lockScriptPubKey = addressToOutputScript(lockAddress);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* extracts RosenData from given lock transaction in FiroTx format
|
|
14
|
+
* @param serializedTransaction stringified transaction in FiroTx format
|
|
15
|
+
*/
|
|
16
|
+
extractData = (serializedTransaction) => {
|
|
17
|
+
let transaction;
|
|
18
|
+
try {
|
|
19
|
+
transaction = JsonBigInt.parse(serializedTransaction);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
throw new Error(`Failed to parse transaction json to FiroTx format while extracting rosen data: ${e}`);
|
|
23
|
+
}
|
|
24
|
+
const baseError = `No rosen data found for tx [${transaction.id}]`;
|
|
25
|
+
try {
|
|
26
|
+
const outputs = transaction.outputs;
|
|
27
|
+
if (outputs.length < 2) {
|
|
28
|
+
this.logger.debug(baseError + `: Insufficient number of boxes`);
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
let validData = false; // an OP_RETURN box with valid data is found
|
|
32
|
+
let validLock = false; // a lock box is found with available asset transformation
|
|
33
|
+
// parse rosen data from OP_RETURN box
|
|
34
|
+
let opReturnData;
|
|
35
|
+
let rawData = '';
|
|
36
|
+
for (let i = 0; i < outputs.length; i++) {
|
|
37
|
+
const output = outputs[i];
|
|
38
|
+
if (output.scriptPubKey.slice(0, 2) !== '6a')
|
|
39
|
+
continue; // not an OP_RETURN utxo
|
|
40
|
+
try {
|
|
41
|
+
opReturnData = parseOpReturn(output.scriptPubKey);
|
|
42
|
+
rawData = output.scriptPubKey;
|
|
43
|
+
validData = true;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.id}.${i}]: ${e}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (!validData || !opReturnData) {
|
|
51
|
+
this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
// find target chain token id
|
|
55
|
+
let assetTransformation;
|
|
56
|
+
for (let i = 0; i < outputs.length; i++) {
|
|
57
|
+
const output = outputs[i];
|
|
58
|
+
if (output.scriptPubKey !== this.lockScriptPubKey)
|
|
59
|
+
continue; // utxo address is not lock address
|
|
60
|
+
assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
|
|
61
|
+
if (assetTransformation) {
|
|
62
|
+
validLock = true;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!validLock || !assetTransformation) {
|
|
67
|
+
this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
const fromAddress = `box:${transaction.inputs[0].txId}.${transaction.inputs[0].index}`;
|
|
71
|
+
return {
|
|
72
|
+
toChain: opReturnData.toChain,
|
|
73
|
+
toAddress: opReturnData.toAddress,
|
|
74
|
+
bridgeFee: opReturnData.bridgeFee,
|
|
75
|
+
networkFee: opReturnData.networkFee,
|
|
76
|
+
fromAddress: fromAddress,
|
|
77
|
+
sourceChainTokenId: assetTransformation.from,
|
|
78
|
+
amount: assetTransformation.amount,
|
|
79
|
+
targetChainTokenId: assetTransformation.to,
|
|
80
|
+
sourceTxId: transaction.id,
|
|
81
|
+
rawData,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
this.logger.debug(`An error occurred while getting Firo rosen data: ${e}`);
|
|
86
|
+
if (e instanceof Error && e.stack) {
|
|
87
|
+
this.logger.debug(e.stack);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* extracts and builds token transformation from UTXO and tokenMap
|
|
94
|
+
* @param box transaction output
|
|
95
|
+
* @param toChain event target chain
|
|
96
|
+
*/
|
|
97
|
+
getAssetTransformation = (box, toChain) => {
|
|
98
|
+
// try to build transformation using locked FIRO
|
|
99
|
+
const wrappedFiro = this.tokens.search(FIRO_CHAIN, {
|
|
100
|
+
tokenId: FIRO_NATIVE_TOKEN,
|
|
101
|
+
});
|
|
102
|
+
if (wrappedFiro.length > 0 && Object.hasOwn(wrappedFiro[0], toChain)) {
|
|
103
|
+
const value = box.value.toString();
|
|
104
|
+
return {
|
|
105
|
+
from: FIRO_NATIVE_TOKEN,
|
|
106
|
+
to: this.tokens.getID(wrappedFiro[0], toChain),
|
|
107
|
+
amount: value,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyb1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9Sb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvRCxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQWtDO0lBQy9ELEtBQUssR0FBRyxVQUFVLENBQUM7SUFDbEIsZ0JBQWdCLENBQVM7SUFFbkMsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixNQUF1QixFQUN2QixZQUFZLEdBQUcsSUFBSTtRQUVuQixLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLEdBQUcsQ0FBQyxxQkFBNkIsRUFBeUIsRUFBRTtRQUNyRSxJQUFJLFdBQW1CLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0ZBQWtGLENBQUMsRUFBRSxDQUN0RixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDbkUsSUFBSSxDQUFDO1lB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QUFFLE9BQU8sQ0FBQztnQkFDOUMsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgRklST19DSEFJTiwgRklST19OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBGaXJvVHgsIEZpcm9UeE91dHB1dCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgTWluaW1hbE9uQ2hhaW5Sb3NlbkRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgcGFyc2VPcFJldHVybiwgYWRkcmVzc1RvT3V0cHV0U2NyaXB0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcblxuZXhwb3J0IGNsYXNzIEZpcm9Sb3NlbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yPHN0cmluZz4ge1xuICByZWFkb25seSBjaGFpbiA9IEZJUk9fQ0hBSU47XG4gIHByb3RlY3RlZCBsb2NrU2NyaXB0UHViS2V5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9ja0FkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICAgIHN0b3JlUmF3RGF0YSA9IHRydWUsXG4gICkge1xuICAgIHN1cGVyKGxvY2tBZGRyZXNzLCB0b2tlbnMsIGxvZ2dlciwgc3RvcmVSYXdEYXRhKTtcbiAgICB0aGlzLmxvY2tTY3JpcHRQdWJLZXkgPSBhZGRyZXNzVG9PdXRwdXRTY3JpcHQobG9ja0FkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIFJvc2VuRGF0YSBmcm9tIGdpdmVuIGxvY2sgdHJhbnNhY3Rpb24gaW4gRmlyb1R4IGZvcm1hdFxuICAgKiBAcGFyYW0gc2VyaWFsaXplZFRyYW5zYWN0aW9uIHN0cmluZ2lmaWVkIHRyYW5zYWN0aW9uIGluIEZpcm9UeCBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3REYXRhID0gKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbjogc3RyaW5nKTogUm9zZW5EYXRhIHwgdW5kZWZpbmVkID0+IHtcbiAgICBsZXQgdHJhbnNhY3Rpb246IEZpcm9UeDtcbiAgICB0cnkge1xuICAgICAgdHJhbnNhY3Rpb24gPSBKc29uQmlnSW50LnBhcnNlKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGpzb24gdG8gRmlyb1R4IGZvcm1hdCB3aGlsZSBleHRyYWN0aW5nIHJvc2VuIGRhdGE6ICR7ZX1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZUVycm9yID0gYE5vIHJvc2VuIGRhdGEgZm91bmQgZm9yIHR4IFske3RyYW5zYWN0aW9uLmlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24ub3V0cHV0cztcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBib3hlc2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBsZXQgdmFsaWREYXRhID0gZmFsc2U7IC8vIGFuIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kXG4gICAgICBsZXQgdmFsaWRMb2NrID0gZmFsc2U7IC8vIGEgbG9jayBib3ggaXMgZm91bmQgd2l0aCBhdmFpbGFibGUgYXNzZXQgdHJhbnNmb3JtYXRpb25cblxuICAgICAgLy8gcGFyc2Ugcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3hcbiAgICAgIGxldCBvcFJldHVybkRhdGE6IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgbGV0IHJhd0RhdGE6IHN0cmluZyA9ICcnO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvdXRwdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbaV07XG4gICAgICAgIGlmIChvdXRwdXQuc2NyaXB0UHViS2V5LnNsaWNlKDAsIDIpICE9PSAnNmEnKSBjb250aW51ZTsgLy8gbm90IGFuIE9QX1JFVFVSTiB1dHhvXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBvcFJldHVybkRhdGEgPSBwYXJzZU9wUmV0dXJuKG91dHB1dC5zY3JpcHRQdWJLZXkpO1xuICAgICAgICAgIHJhd0RhdGEgPSBvdXRwdXQuc2NyaXB0UHViS2V5O1xuICAgICAgICAgIHZhbGlkRGF0YSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gT1BfUkVUVVJOIGJveCBbJHt0cmFuc2FjdGlvbi5pZH0uJHtpfV06ICR7ZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWREYXRhIHx8ICFvcFJldHVybkRhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYmFzZUVycm9yICsgYDogTm8gT1BfUkVUVVJOIGJveCB3aXRoIHZhbGlkIGRhdGEgaXMgZm91bmRgLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICAvLyBmaW5kIHRhcmdldCBjaGFpbiB0b2tlbiBpZFxuICAgICAgbGV0IGFzc2V0VHJhbnNmb3JtYXRpb246IFRva2VuVHJhbnNmb3JtYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1tpXTtcbiAgICAgICAgaWYgKG91dHB1dC5zY3JpcHRQdWJLZXkgIT09IHRoaXMubG9ja1NjcmlwdFB1YktleSkgY29udGludWU7IC8vIHV0eG8gYWRkcmVzcyBpcyBub3QgbG9jayBhZGRyZXNzXG4gICAgICAgIGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgIG9wUmV0dXJuRGF0YS50b0NoYWluLFxuICAgICAgICApO1xuICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgIHZhbGlkTG9jayA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWRMb2NrIHx8ICFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLnR4SWR9LiR7dHJhbnNhY3Rpb24uaW5wdXRzWzBdLmluZGV4fWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0NoYWluOiBvcFJldHVybkRhdGEudG9DaGFpbixcbiAgICAgICAgdG9BZGRyZXNzOiBvcFJldHVybkRhdGEudG9BZGRyZXNzLFxuICAgICAgICBicmlkZ2VGZWU6IG9wUmV0dXJuRGF0YS5icmlkZ2VGZWUsXG4gICAgICAgIG5ldHdvcmtGZWU6IG9wUmV0dXJuRGF0YS5uZXR3b3JrRmVlLFxuICAgICAgICBmcm9tQWRkcmVzczogZnJvbUFkZHJlc3MsXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5mcm9tLFxuICAgICAgICBhbW91bnQ6IGFzc2V0VHJhbnNmb3JtYXRpb24uYW1vdW50LFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IGFzc2V0VHJhbnNmb3JtYXRpb24udG8sXG4gICAgICAgIHNvdXJjZVR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICByYXdEYXRhLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgRmlybyByb3NlbiBkYXRhOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCBidWlsZHMgdG9rZW4gdHJhbnNmb3JtYXRpb24gZnJvbSBVVFhPIGFuZCB0b2tlbk1hcFxuICAgKiBAcGFyYW0gYm94IHRyYW5zYWN0aW9uIG91dHB1dFxuICAgKiBAcGFyYW0gdG9DaGFpbiBldmVudCB0YXJnZXQgY2hhaW5cbiAgICovXG4gIGdldEFzc2V0VHJhbnNmb3JtYXRpb24gPSAoXG4gICAgYm94OiBGaXJvVHhPdXRwdXQsXG4gICAgdG9DaGFpbjogc3RyaW5nLFxuICApOiBUb2tlblRyYW5zZm9ybWF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICAvLyB0cnkgdG8gYnVpbGQgdHJhbnNmb3JtYXRpb24gdXNpbmcgbG9ja2VkIEZJUk9cbiAgICBjb25zdCB3cmFwcGVkRmlybyA9IHRoaXMudG9rZW5zLnNlYXJjaChGSVJPX0NIQUlOLCB7XG4gICAgICB0b2tlbklkOiBGSVJPX05BVElWRV9UT0tFTixcbiAgICB9KTtcbiAgICBpZiAod3JhcHBlZEZpcm8ubGVuZ3RoID4gMCAmJiBPYmplY3QuaGFzT3duKHdyYXBwZWRGaXJvWzBdLCB0b0NoYWluKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBib3gudmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyb206IEZJUk9fTkFUSVZFX1RPS0VOLFxuICAgICAgICB0bzogdGhpcy50b2tlbnMuZ2V0SUQod3JhcHBlZEZpcm9bMF0sIHRvQ2hhaW4pLFxuICAgICAgICBhbW91bnQ6IHZhbHVlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RosenData, TokenTransformation } from '../abstract/types';
|
|
2
|
+
import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
|
|
3
|
+
import { FiroRpcTransaction, FiroRpcTxOutput } from './types';
|
|
4
|
+
import { TokenMap } from '@rosen-bridge/tokens';
|
|
5
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
6
|
+
export declare class FiroRpcRosenExtractor extends AbstractRosenDataExtractor<FiroRpcTransaction> {
|
|
7
|
+
readonly chain = "firo";
|
|
8
|
+
protected lockScriptPubKey: string;
|
|
9
|
+
constructor(lockAddress: string, tokens: TokenMap, logger?: AbstractLogger, storeRawData?: boolean);
|
|
10
|
+
/**
|
|
11
|
+
* extracts RosenData from given lock transaction in Rpc format
|
|
12
|
+
* @param transaction the lock transaction in Rpc format
|
|
13
|
+
*/
|
|
14
|
+
extractData: (transaction: FiroRpcTransaction) => RosenData | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* extracts and builds token transformation from UTXO and tokenMap
|
|
17
|
+
* @param box transaction output
|
|
18
|
+
* @param toChain event target chain
|
|
19
|
+
*/
|
|
20
|
+
getAssetTransformation: (box: FiroRpcTxOutput, toChain: string) => TokenTransformation | undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=firoRpcRosenExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firoRpcRosenExtractor.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/firo/firoRpcRosenExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,0BAA0B,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,qBAAa,qBAAsB,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IACvF,QAAQ,CAAC,KAAK,UAAc;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAGjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc,EACvB,YAAY,UAAO;IAMrB;;;OAGG;IACH,WAAW,GAAI,aAAa,kBAAkB,KAAG,SAAS,GAAG,SAAS,CAgFpE;IAEF;;;;OAIG;IACH,sBAAsB,GACpB,KAAK,eAAe,EACpB,SAAS,MAAM,KACd,mBAAmB,GAAG,SAAS,CAgBhC;CACH"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import AbstractRosenDataExtractor from '../abstract/abstractRosenDataExtractor';
|
|
2
|
+
import { FIRO_CHAIN, FIRO_NATIVE_TOKEN } from '../const';
|
|
3
|
+
import { parseOpReturn, addressToOutputScript } from './utils';
|
|
4
|
+
export class FiroRpcRosenExtractor extends AbstractRosenDataExtractor {
|
|
5
|
+
chain = FIRO_CHAIN;
|
|
6
|
+
lockScriptPubKey;
|
|
7
|
+
constructor(lockAddress, tokens, logger, storeRawData = true) {
|
|
8
|
+
super(lockAddress, tokens, logger, storeRawData);
|
|
9
|
+
this.lockScriptPubKey = addressToOutputScript(lockAddress);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* extracts RosenData from given lock transaction in Rpc format
|
|
13
|
+
* @param transaction the lock transaction in Rpc format
|
|
14
|
+
*/
|
|
15
|
+
extractData = (transaction) => {
|
|
16
|
+
const baseError = `No rosen data found for tx [${transaction.txid}]`;
|
|
17
|
+
try {
|
|
18
|
+
const outputs = transaction.vout;
|
|
19
|
+
if (outputs.length < 2) {
|
|
20
|
+
this.logger.debug(baseError + `: Insufficient number of boxes`);
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
let validData = false; // an OP_RETURN box with valid data is found
|
|
24
|
+
let validLock = false; // a lock box is found with available asset transformation
|
|
25
|
+
// parse rosen data from OP_RETURN box
|
|
26
|
+
let opReturnData;
|
|
27
|
+
let rawData = '';
|
|
28
|
+
for (let i = 0; i < outputs.length; i++) {
|
|
29
|
+
const output = outputs[i];
|
|
30
|
+
if (output.scriptPubKey.hex.slice(0, 2) !== '6a')
|
|
31
|
+
continue; // not an OP_RETURN utxo
|
|
32
|
+
try {
|
|
33
|
+
opReturnData = parseOpReturn(output.scriptPubKey.hex);
|
|
34
|
+
rawData = output.scriptPubKey.hex;
|
|
35
|
+
validData = true;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
this.logger.debug(`Failed to extract data from OP_RETURN box [${transaction.txid}.${i}]: ${e}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (!validData || !opReturnData) {
|
|
43
|
+
this.logger.debug(baseError + `: No OP_RETURN box with valid data is found`);
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
// find target chain token id
|
|
47
|
+
let assetTransformation;
|
|
48
|
+
for (let i = 0; i < outputs.length; i++) {
|
|
49
|
+
const output = outputs[i];
|
|
50
|
+
if (output.scriptPubKey.hex !== this.lockScriptPubKey)
|
|
51
|
+
continue; // utxo address is not lock address
|
|
52
|
+
assetTransformation = this.getAssetTransformation(output, opReturnData.toChain);
|
|
53
|
+
if (assetTransformation) {
|
|
54
|
+
validLock = true;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (!validLock || !assetTransformation) {
|
|
59
|
+
this.logger.debug(baseError + `: Failed to find rosen asset transformation`);
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const fromAddress = `box:${transaction.vin[0].txid}.${transaction.vin[0].vout}`;
|
|
63
|
+
return {
|
|
64
|
+
toChain: opReturnData.toChain,
|
|
65
|
+
toAddress: opReturnData.toAddress,
|
|
66
|
+
bridgeFee: opReturnData.bridgeFee,
|
|
67
|
+
networkFee: opReturnData.networkFee,
|
|
68
|
+
fromAddress: fromAddress,
|
|
69
|
+
sourceChainTokenId: assetTransformation.from,
|
|
70
|
+
amount: assetTransformation.amount,
|
|
71
|
+
targetChainTokenId: assetTransformation.to,
|
|
72
|
+
sourceTxId: transaction.txid,
|
|
73
|
+
rawData,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
this.logger.debug(`An error occurred while getting Firo rosen data from Rpc: ${e}`);
|
|
78
|
+
if (e instanceof Error && e.stack) {
|
|
79
|
+
this.logger.debug(e.stack);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return undefined;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* extracts and builds token transformation from UTXO and tokenMap
|
|
86
|
+
* @param box transaction output
|
|
87
|
+
* @param toChain event target chain
|
|
88
|
+
*/
|
|
89
|
+
getAssetTransformation = (box, toChain) => {
|
|
90
|
+
// try to build transformation using locked FIRO
|
|
91
|
+
const wrappedFiro = this.tokens.search(FIRO_CHAIN, {
|
|
92
|
+
tokenId: FIRO_NATIVE_TOKEN,
|
|
93
|
+
});
|
|
94
|
+
if (wrappedFiro.length > 0 && Object.hasOwn(wrappedFiro[0], toChain)) {
|
|
95
|
+
const parts = box.value.toString().split('.');
|
|
96
|
+
const part1 = ((parts[1] ?? '') + '0'.repeat(8)).substring(0, 8);
|
|
97
|
+
return {
|
|
98
|
+
from: FIRO_NATIVE_TOKEN,
|
|
99
|
+
to: this.tokens.getID(wrappedFiro[0], toChain),
|
|
100
|
+
amount: (parts[0] === '0' ? '' : parts[0]) + part1,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyb1JwY1Jvc2VuRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9ScGNSb3NlbkV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLDBCQUEwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUvRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsMEJBQThDO0lBQzlFLEtBQUssR0FBRyxVQUFVLENBQUM7SUFDbEIsZ0JBQWdCLENBQVM7SUFFbkMsWUFDRSxXQUFtQixFQUNuQixNQUFnQixFQUNoQixNQUF1QixFQUN2QixZQUFZLEdBQUcsSUFBSTtRQUVuQixLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLEdBQUcsQ0FBQyxXQUErQixFQUF5QixFQUFFO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLCtCQUErQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNqQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBRUQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMs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QUFPLENBQUM7Z0JBQzlDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSzthQUNuRCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3NlbkRhdGEsIFRva2VuVHJhbnNmb3JtYXRpb24gfSBmcm9tICcuLi9hYnN0cmFjdC90eXBlcyc7XG5pbXBvcnQgQWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3IgZnJvbSAnLi4vYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuaW1wb3J0IHsgRklST19DSEFJTiwgRklST19OQVRJVkVfVE9LRU4gfSBmcm9tICcuLi9jb25zdCc7XG5pbXBvcnQgeyBGaXJvUnBjVHJhbnNhY3Rpb24sIEZpcm9ScGNUeE91dHB1dCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgTWluaW1hbE9uQ2hhaW5Sb3NlbkRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgcGFyc2VPcFJldHVybiwgYWRkcmVzc1RvT3V0cHV0U2NyaXB0IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBGaXJvUnBjUm9zZW5FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdFJvc2VuRGF0YUV4dHJhY3RvcjxGaXJvUnBjVHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgY2hhaW4gPSBGSVJPX0NIQUlOO1xuICBwcm90ZWN0ZWQgbG9ja1NjcmlwdFB1YktleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9rZW5zOiBUb2tlbk1hcCxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcixcbiAgICBzdG9yZVJhd0RhdGEgPSB0cnVlLFxuICApIHtcbiAgICBzdXBlcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIsIHN0b3JlUmF3RGF0YSk7XG4gICAgdGhpcy5sb2NrU2NyaXB0UHViS2V5ID0gYWRkcmVzc1RvT3V0cHV0U2NyaXB0KGxvY2tBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBSb3NlbkRhdGEgZnJvbSBnaXZlbiBsb2NrIHRyYW5zYWN0aW9uIGluIFJwYyBmb3JtYXRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIHRoZSBsb2NrIHRyYW5zYWN0aW9uIGluIFJwYyBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3REYXRhID0gKHRyYW5zYWN0aW9uOiBGaXJvUnBjVHJhbnNhY3Rpb24pOiBSb3NlbkRhdGEgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhc2VFcnJvciA9IGBObyByb3NlbiBkYXRhIGZvdW5kIGZvciB0eCBbJHt0cmFuc2FjdGlvbi50eGlkfV1gO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdHJhbnNhY3Rpb24udm91dDtcbiAgICAgIGlmIChvdXRwdXRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYmFzZUVycm9yICsgYDogSW5zdWZmaWNpZW50IG51bWJlciBvZiBib3hlc2ApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBsZXQgdmFsaWREYXRhID0gZmFsc2U7IC8vIGFuIE9QX1JFVFVSTiBib3ggd2l0aCB2YWxpZCBkYXRhIGlzIGZvdW5kXG4gICAgICBsZXQgdmFsaWRMb2NrID0gZmFsc2U7IC8vIGEgbG9jayBib3ggaXMgZm91bmQgd2l0aCBhdmFpbGFibGUgYXNzZXQgdHJhbnNmb3JtYXRpb25cblxuICAgICAgLy8gcGFyc2Ugcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3hcbiAgICAgIGxldCBvcFJldHVybkRhdGE6IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgbGV0IHJhd0RhdGE6IHN0cmluZyA9ICcnO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvdXRwdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbaV07XG4gICAgICAgIGlmIChvdXRwdXQuc2NyaXB0UHViS2V5LmhleC5zbGljZSgwLCAyKSAhPT0gJzZhJykgY29udGludWU7IC8vIG5vdCBhbiBPUF9SRVRVUk4gdXR4b1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgb3BSZXR1cm5EYXRhID0gcGFyc2VPcFJldHVybihvdXRwdXQuc2NyaXB0UHViS2V5LmhleCk7XG4gICAgICAgICAgcmF3RGF0YSA9IG91dHB1dC5zY3JpcHRQdWJLZXkuaGV4O1xuICAgICAgICAgIHZhbGlkRGF0YSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gT1BfUkVUVVJOIGJveCBbJHt0cmFuc2FjdGlvbi50eGlkfS4ke2l9XTogJHtlfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCF2YWxpZERhdGEgfHwgIW9wUmV0dXJuRGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBiYXNlRXJyb3IgKyBgOiBObyBPUF9SRVRVUk4gYm94IHdpdGggdmFsaWQgZGF0YSBpcyBmb3VuZGAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmQgdGFyZ2V0IGNoYWluIHRva2VuIGlkXG4gICAgICBsZXQgYXNzZXRUcmFuc2Zvcm1hdGlvbjogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzW2ldO1xuICAgICAgICBpZiAob3V0cHV0LnNjcmlwdFB1YktleS5oZXggIT09IHRoaXMubG9ja1NjcmlwdFB1YktleSkgY29udGludWU7IC8vIHV0eG8gYWRkcmVzcyBpcyBub3QgbG9jayBhZGRyZXNzXG4gICAgICAgIGFzc2V0VHJhbnNmb3JtYXRpb24gPSB0aGlzLmdldEFzc2V0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgIG9wUmV0dXJuRGF0YS50b0NoYWluLFxuICAgICAgICApO1xuICAgICAgICBpZiAoYXNzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgIHZhbGlkTG9jayA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdmFsaWRMb2NrIHx8ICFhc3NldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGJhc2VFcnJvciArIGA6IEZhaWxlZCB0byBmaW5kIHJvc2VuIGFzc2V0IHRyYW5zZm9ybWF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbUFkZHJlc3MgPSBgYm94OiR7dHJhbnNhY3Rpb24udmluWzBdLnR4aWR9LiR7dHJhbnNhY3Rpb24udmluWzBdLnZvdXR9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvQ2hhaW46IG9wUmV0dXJuRGF0YS50b0NoYWluLFxuICAgICAgICB0b0FkZHJlc3M6IG9wUmV0dXJuRGF0YS50b0FkZHJlc3MsXG4gICAgICAgIGJyaWRnZUZlZTogb3BSZXR1cm5EYXRhLmJyaWRnZUZlZSxcbiAgICAgICAgbmV0d29ya0ZlZTogb3BSZXR1cm5EYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgIGZyb21BZGRyZXNzOiBmcm9tQWRkcmVzcyxcbiAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBhc3NldFRyYW5zZm9ybWF0aW9uLmZyb20sXG4gICAgICAgIGFtb3VudDogYXNzZXRUcmFuc2Zvcm1hdGlvbi5hbW91bnQsXG4gICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogYXNzZXRUcmFuc2Zvcm1hdGlvbi50byxcbiAgICAgICAgc291cmNlVHhJZDogdHJhbnNhY3Rpb24udHhpZCxcbiAgICAgICAgcmF3RGF0YSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIEZpcm8gcm9zZW4gZGF0YSBmcm9tIFJwYzogJHtlfWAsXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgYnVpbGRzIHRva2VuIHRyYW5zZm9ybWF0aW9uIGZyb20gVVRYTyBhbmQgdG9rZW5NYXBcbiAgICogQHBhcmFtIGJveCB0cmFuc2FjdGlvbiBvdXRwdXRcbiAgICogQHBhcmFtIHRvQ2hhaW4gZXZlbnQgdGFyZ2V0IGNoYWluXG4gICAqL1xuICBnZXRBc3NldFRyYW5zZm9ybWF0aW9uID0gKFxuICAgIGJveDogRmlyb1JwY1R4T3V0cHV0LFxuICAgIHRvQ2hhaW46IHN0cmluZyxcbiAgKTogVG9rZW5UcmFuc2Zvcm1hdGlvbiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gdHJ5IHRvIGJ1aWxkIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGxvY2tlZCBGSVJPXG4gICAgY29uc3Qgd3JhcHBlZEZpcm8gPSB0aGlzLnRva2Vucy5zZWFyY2goRklST19DSEFJTiwge1xuICAgICAgdG9rZW5JZDogRklST19OQVRJVkVfVE9LRU4sXG4gICAgfSk7XG4gICAgaWYgKHdyYXBwZWRGaXJvLmxlbmd0aCA+IDAgJiYgT2JqZWN0Lmhhc093bih3cmFwcGVkRmlyb1swXSwgdG9DaGFpbikpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gYm94LnZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IHBhcnQxID0gKChwYXJ0c1sxXSA/PyAnJykgKyAnMCcucmVwZWF0KDgpKS5zdWJzdHJpbmcoMCwgOCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmcm9tOiBGSVJPX05BVElWRV9UT0tFTixcbiAgICAgICAgdG86IHRoaXMudG9rZW5zLmdldElEKHdyYXBwZWRGaXJvWzBdLCB0b0NoYWluKSxcbiAgICAgICAgYW1vdW50OiAocGFydHNbMF0gPT09ICcwJyA/ICcnIDogcGFydHNbMF0pICsgcGFydDEsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface FiroTxInput {
|
|
2
|
+
txId: string;
|
|
3
|
+
index: number;
|
|
4
|
+
scriptPubKey: string;
|
|
5
|
+
}
|
|
6
|
+
export interface FiroTxOutput {
|
|
7
|
+
scriptPubKey: string;
|
|
8
|
+
value: bigint;
|
|
9
|
+
}
|
|
10
|
+
export interface FiroTx {
|
|
11
|
+
id: string;
|
|
12
|
+
inputs: FiroTxInput[];
|
|
13
|
+
outputs: FiroTxOutput[];
|
|
14
|
+
}
|
|
15
|
+
export interface FiroRpcTxInput {
|
|
16
|
+
txid: string;
|
|
17
|
+
vout: number;
|
|
18
|
+
scriptSig: {
|
|
19
|
+
asm: string;
|
|
20
|
+
hex: string;
|
|
21
|
+
};
|
|
22
|
+
sequence: number;
|
|
23
|
+
txinwitness?: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface FiroRpcTxOutput {
|
|
26
|
+
value: number;
|
|
27
|
+
n: number;
|
|
28
|
+
scriptPubKey: {
|
|
29
|
+
asm: string;
|
|
30
|
+
hex: string;
|
|
31
|
+
reqSigs?: number;
|
|
32
|
+
type: string;
|
|
33
|
+
addresses?: string[];
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface FiroRpcTransaction {
|
|
37
|
+
hex: string;
|
|
38
|
+
txid: string;
|
|
39
|
+
hash: string;
|
|
40
|
+
size: number;
|
|
41
|
+
vsize: number;
|
|
42
|
+
version: number;
|
|
43
|
+
locktime: number;
|
|
44
|
+
vin: Array<FiroRpcTxInput>;
|
|
45
|
+
vout: Array<FiroRpcTxOutput>;
|
|
46
|
+
blockhash?: string;
|
|
47
|
+
confirmations?: number;
|
|
48
|
+
time?: number;
|
|
49
|
+
blocktime?: number;
|
|
50
|
+
instantlock?: boolean;
|
|
51
|
+
chainlock?: boolean;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/firo/types.ts"],"names":[],"mappings":"AAAA,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;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAGD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAGD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,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,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2Zpcm8vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmlyb1R4SW5wdXQge1xuICB0eElkOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpcm9UeE91dHB1dCB7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpcm9UeCB7XG4gIGlkOiBzdHJpbmc7XG4gIGlucHV0czogRmlyb1R4SW5wdXRbXTtcbiAgb3V0cHV0czogRmlyb1R4T3V0cHV0W107XG59XG5cbi8vIFRyYW5zYWN0aW9uIGlucHV0IHR5cGVzIChpbiBGaXJvIGdldHJhd3RyYW5zYWN0aW9uIFJQQyByZXNwb25zZSlcbmV4cG9ydCBpbnRlcmZhY2UgRmlyb1JwY1R4SW5wdXQge1xuICB0eGlkOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbiAgc2NyaXB0U2lnOiB7XG4gICAgYXNtOiBzdHJpbmc7XG4gICAgaGV4OiBzdHJpbmc7XG4gIH07XG4gIHNlcXVlbmNlOiBudW1iZXI7XG4gIHR4aW53aXRuZXNzPzogc3RyaW5nW107XG59XG5cbi8vIFRyYW5zYWN0aW9uIG91dHB1dCB0eXBlcyAoaW4gRmlybyBnZXRyYXd0cmFuc2FjdGlvbiBSUEMgcmVzcG9uc2UpXG5leHBvcnQgaW50ZXJmYWNlIEZpcm9ScGNUeE91dHB1dCB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIG46IG51bWJlcjtcbiAgc2NyaXB0UHViS2V5OiB7XG4gICAgYXNtOiBzdHJpbmc7XG4gICAgaGV4OiBzdHJpbmc7XG4gICAgcmVxU2lncz86IG51bWJlcjtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWRkcmVzc2VzPzogc3RyaW5nW107XG4gIH07XG59XG5cbi8vIEZpcm8gZ2V0cmF3dHJhbnNhY3Rpb24gUlBDIHJlc3BvbnNlXG5leHBvcnQgaW50ZXJmYWNlIEZpcm9ScGNUcmFuc2FjdGlvbiB7XG4gIGhleDogc3RyaW5nO1xuICB0eGlkOiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICB2c2l6ZTogbnVtYmVyO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGxvY2t0aW1lOiBudW1iZXI7XG4gIHZpbjogQXJyYXk8Rmlyb1JwY1R4SW5wdXQ+O1xuICB2b3V0OiBBcnJheTxGaXJvUnBjVHhPdXRwdXQ+O1xuICBibG9ja2hhc2g/OiBzdHJpbmc7XG4gIGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XG4gIHRpbWU/OiBudW1iZXI7XG4gIGJsb2NrdGltZT86IG51bWJlcjtcbiAgaW5zdGFudGxvY2s/OiBib29sZWFuO1xuICBjaGFpbmxvY2s/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MinimalOnChainRosenData } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a Firocoin address to its corresponding output script
|
|
4
|
+
* @param addr The Firocoin 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 parseOpReturn: (scriptPubKeyHex: string) => MinimalOnChainRosenData;
|
|
13
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/firo/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAetD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,MAQpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,iBAAiB,MAAM,KACtB,uBAiBF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { parseRosenData } from '../../utils';
|
|
2
|
+
import { address } from 'bitcoinjs-lib';
|
|
3
|
+
const firoNetwork = {
|
|
4
|
+
// Firo network parameters
|
|
5
|
+
messagePrefix: '\x19Firo Signed Message:\n',
|
|
6
|
+
bech32: 'firo',
|
|
7
|
+
bip32: {
|
|
8
|
+
public: 0x0488b21e,
|
|
9
|
+
private: 0x0488ade4,
|
|
10
|
+
},
|
|
11
|
+
pubKeyHash: 0x52, // Firo mainnet uses 0x52 (a addresses), testnet uses 0x41 (T addresses)
|
|
12
|
+
scriptHash: 0x07,
|
|
13
|
+
wif: 0xd2,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Converts a Firocoin address to its corresponding output script
|
|
17
|
+
* @param addr The Firocoin address to convert
|
|
18
|
+
* @returns The output script as a hex string
|
|
19
|
+
*/
|
|
20
|
+
export const addressToOutputScript = (addr) => {
|
|
21
|
+
try {
|
|
22
|
+
return address.toOutputScript(addr, firoNetwork).toString('hex');
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
throw new Error(`Failed to convert Firo address to output script: ${e}. Only transparent addresses (P2PKH, P2SH) are supported. Privacy addresses (RAP, Spark, Lelantus) are not supported.`);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* extracts rosen data from OP_RETURN box script pub key
|
|
30
|
+
* @param scriptPubKeyHex
|
|
31
|
+
*/
|
|
32
|
+
export const parseOpReturn = (scriptPubKeyHex) => {
|
|
33
|
+
// check OP_RETURN opcode
|
|
34
|
+
if (scriptPubKeyHex.slice(0, 2) !== '6a')
|
|
35
|
+
throw Error(`script does not start with OP_RETURN opcode (6a)`);
|
|
36
|
+
// check script length (should not use more than one OP_RETURN)
|
|
37
|
+
const dataLength = scriptPubKeyHex.slice(2, 4);
|
|
38
|
+
if (parseInt(dataLength, 16) + 2 !== scriptPubKeyHex.length / 2)
|
|
39
|
+
throw Error(`script length is unexpected [${parseInt(dataLength, 16) + 3} !== ${scriptPubKeyHex.length / 2}]`);
|
|
40
|
+
const remainingData = scriptPubKeyHex.slice(4);
|
|
41
|
+
return parseRosenData(remainingData);
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL2Zpcm8vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLDBCQUEwQjtJQUMxQixhQUFhLEVBQUUsNEJBQTRCO0lBQzNDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLFVBQVU7UUFDbEIsT0FBTyxFQUFFLFVBQVU7S0FDcEI7SUFDRCxVQUFVLEVBQUUsSUFBSSxFQUFFLHdFQUF3RTtJQUMxRixVQUFVLEVBQUUsSUFBSTtJQUNoQixHQUFHLEVBQUUsSUFBSTtDQUNWLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUM1RCxJQUFJLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0RBQW9ELENBQUMsdUhBQXVILENBQzdLLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLGVBQXVCLEVBQ0UsRUFBRTtJQUMzQix5QkFBeUI7SUFDekIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJO1FBQ3RDLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFFbEUsK0RBQStEO0lBQy9ELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzdELE1BQU0sS0FBSyxDQUNULGdDQUFnQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFDMUQsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUMzQixHQUFHLENBQ0osQ0FBQztJQUVKLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFL0MsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VSb3NlbkRhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBhZGRyZXNzIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBNaW5pbWFsT25DaGFpblJvc2VuRGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuY29uc3QgZmlyb05ldHdvcmsgPSB7XG4gIC8vIEZpcm8gbmV0d29yayBwYXJhbWV0ZXJzXG4gIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOUZpcm8gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgYmVjaDMyOiAnZmlybycsXG4gIGJpcDMyOiB7XG4gICAgcHVibGljOiAweDA0ODhiMjFlLFxuICAgIHByaXZhdGU6IDB4MDQ4OGFkZTQsXG4gIH0sXG4gIHB1YktleUhhc2g6IDB4NTIsIC8vIEZpcm8gbWFpbm5ldCB1c2VzIDB4NTIgKGEgYWRkcmVzc2VzKSwgdGVzdG5ldCB1c2VzIDB4NDEgKFQgYWRkcmVzc2VzKVxuICBzY3JpcHRIYXNoOiAweDA3LFxuICB3aWY6IDB4ZDIsXG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgRmlyb2NvaW4gYWRkcmVzcyB0byBpdHMgY29ycmVzcG9uZGluZyBvdXRwdXQgc2NyaXB0XG4gKiBAcGFyYW0gYWRkciBUaGUgRmlyb2NvaW4gYWRkcmVzcyB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyBUaGUgb3V0cHV0IHNjcmlwdCBhcyBhIGhleCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZHJlc3NUb091dHB1dFNjcmlwdCA9IChhZGRyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBhZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHIsIGZpcm9OZXR3b3JrKS50b1N0cmluZygnaGV4Jyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRmFpbGVkIHRvIGNvbnZlcnQgRmlybyBhZGRyZXNzIHRvIG91dHB1dCBzY3JpcHQ6ICR7ZX0uIE9ubHkgdHJhbnNwYXJlbnQgYWRkcmVzc2VzIChQMlBLSCwgUDJTSCkgYXJlIHN1cHBvcnRlZC4gUHJpdmFjeSBhZGRyZXNzZXMgKFJBUCwgU3BhcmssIExlbGFudHVzKSBhcmUgbm90IHN1cHBvcnRlZC5gLFxuICAgICk7XG4gIH1cbn07XG5cbi8qKlxuICogZXh0cmFjdHMgcm9zZW4gZGF0YSBmcm9tIE9QX1JFVFVSTiBib3ggc2NyaXB0IHB1YiBrZXlcbiAqIEBwYXJhbSBzY3JpcHRQdWJLZXlIZXhcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlT3BSZXR1cm4gPSAoXG4gIHNjcmlwdFB1YktleUhleDogc3RyaW5nLFxuKTogTWluaW1hbE9uQ2hhaW5Sb3NlbkRhdGEgPT4ge1xuICAvLyBjaGVjayBPUF9SRVRVUk4gb3Bjb2RlXG4gIGlmIChzY3JpcHRQdWJLZXlIZXguc2xpY2UoMCwgMikgIT09ICc2YScpXG4gICAgdGhyb3cgRXJyb3IoYHNjcmlwdCBkb2VzIG5vdCBzdGFydCB3aXRoIE9QX1JFVFVSTiBvcGNvZGUgKDZhKWApO1xuXG4gIC8vIGNoZWNrIHNjcmlwdCBsZW5ndGggKHNob3VsZCBub3QgdXNlIG1vcmUgdGhhbiBvbmUgT1BfUkVUVVJOKVxuICBjb25zdCBkYXRhTGVuZ3RoID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDQpO1xuICBpZiAocGFyc2VJbnQoZGF0YUxlbmd0aCwgMTYpICsgMiAhPT0gc2NyaXB0UHViS2V5SGV4Lmxlbmd0aCAvIDIpXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgc2NyaXB0IGxlbmd0aCBpcyB1bmV4cGVjdGVkIFske3BhcnNlSW50KGRhdGFMZW5ndGgsIDE2KSArIDN9ICE9PSAke1xuICAgICAgICBzY3JpcHRQdWJLZXlIZXgubGVuZ3RoIC8gMlxuICAgICAgfV1gLFxuICAgICk7XG5cbiAgY29uc3QgcmVtYWluaW5nRGF0YSA9IHNjcmlwdFB1YktleUhleC5zbGljZSg0KTtcblxuICByZXR1cm4gcGFyc2VSb3NlbkRhdGEocmVtYWluaW5nRGF0YSk7XG59O1xuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +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 { FiroRosenExtractor } from './getRosenData/firo/firoRosenExtractor';
|
|
20
|
+
export { FiroRpcRosenExtractor } from './getRosenData/firo/firoRpcRosenExtractor';
|
|
19
21
|
export { BitcoinRunesEsploraRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesEsploraRosenExtractor';
|
|
20
22
|
export { BitcoinRunesRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRosenExtractor';
|
|
21
23
|
export { BitcoinRunesRpcRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRpcRosenExtractor';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,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"}
|
|
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,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,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,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
CHANGED
|
@@ -18,8 +18,10 @@ export { ErgoNodeRosenExtractor } from './getRosenData/ergo/ergoNodeRosenExtract
|
|
|
18
18
|
export { DogeEsploraRosenExtractor } from './getRosenData/doge/dogeEsploraRosenExtractor';
|
|
19
19
|
export { DogeRosenExtractor } from './getRosenData/doge/dogeRosenExtractor';
|
|
20
20
|
export { DogeRpcRosenExtractor } from './getRosenData/doge/dogeRpcRosenExtractor';
|
|
21
|
+
export { FiroRosenExtractor } from './getRosenData/firo/firoRosenExtractor';
|
|
22
|
+
export { FiroRpcRosenExtractor } from './getRosenData/firo/firoRpcRosenExtractor';
|
|
21
23
|
export { BitcoinRunesEsploraRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesEsploraRosenExtractor';
|
|
22
24
|
export { BitcoinRunesRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRosenExtractor';
|
|
23
25
|
export { BitcoinRunesRpcRosenExtractor } from './getRosenData/bitcoin-runes/bitcoinRunesRpcRosenExtractor';
|
|
24
26
|
export { parseRosenData } from './utils';
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQztBQUUxQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFaEIsT0FBTyxFQUFFLE9BQU8sSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbml0RWNjTGliIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgZWNjIGZyb20gJ0BiaXRjb2luZXJsYWIvc2VjcDI1NmsxJztcblxuaW5pdEVjY0xpYihlY2MpO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFic3RyYWN0Um9zZW5EYXRhRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvYWJzdHJhY3RSb3NlbkRhdGFFeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4vYml0Y29pbkVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL2JpdGNvaW5Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luL2JpdGNvaW5ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1FdGhlcnNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1FdGhlcnNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1ScGNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBFdm1Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2V2bS9ldm1Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vS29pb3NSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NhcmRhbm8vY2FyZGFub0tvaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQ2FyZGFub09nbWlvc1Jvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9jYXJkYW5vT2dtaW9zUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgT21naW9zTm9DYm9yRXJyb3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9jYXJkYW5vL2Vycm9ycyc7XG5leHBvcnQgeyBDYXJkYW5vUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9jYXJkYW5vL2NhcmRhbm9Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBDYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvY2FyZGFuby9jYXJkYW5vQmxvY2tGcm9zdFJvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Sb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2VyZ28vZXJnb1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9lcmdvL2VyZ29Ob2RlUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgUm9zZW5EYXRhLCBUb2tlblRyYW5zZm9ybWF0aW9uIH0gZnJvbSAnLi9nZXRSb3NlbkRhdGEvYWJzdHJhY3QvdHlwZXMnO1xuZXhwb3J0IHsgRG9nZUVzcGxvcmFSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2RvZ2UvZG9nZUVzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL2RvZ2VSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBEb2dlUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9kb2dlL2RvZ2VScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBGaXJvUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9Sb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBGaXJvUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9maXJvL2Zpcm9ScGNSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNFc3Bsb3JhUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL2JpdGNvaW5SdW5lc0VzcGxvcmFSb3NlbkV4dHJhY3Rvcic7XG5leHBvcnQgeyBCaXRjb2luUnVuZXNSb3NlbkV4dHJhY3RvciB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2JpdGNvaW4tcnVuZXMvYml0Y29pblJ1bmVzUm9zZW5FeHRyYWN0b3InO1xuZXhwb3J0IHsgQml0Y29pblJ1bmVzUnBjUm9zZW5FeHRyYWN0b3IgfSBmcm9tICcuL2dldFJvc2VuRGF0YS9iaXRjb2luLXJ1bmVzL2JpdGNvaW5SdW5lc1JwY1Jvc2VuRXh0cmFjdG9yJztcbmV4cG9ydCB7IHBhcnNlUm9zZW5EYXRhIH0gZnJvbSAnLi91dGlscyc7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosen-bridge/rosen-extractor",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.2.0",
|
|
4
4
|
"description": "this project contains methods to get rosen data from blockchain",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@cardano-ogmios/schema": "^6.0.3",
|
|
33
33
|
"@emurgo/cardano-serialization-lib-nodejs": "^13.2.1",
|
|
34
34
|
"@rosen-bridge/abstract-logger": "^4.0.0",
|
|
35
|
-
"@rosen-bridge/address-codec": "^1.0
|
|
35
|
+
"@rosen-bridge/address-codec": "^1.1.0",
|
|
36
36
|
"@rosen-bridge/json-bigint": "^1.1.0",
|
|
37
37
|
"@rosen-bridge/tokens": "^5.0.0",
|
|
38
38
|
"bitcoinjs-lib": "^6.1.5",
|