@rosen-bridge/rosen-extractor 7.2.2 → 7.3.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/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.js +3 -3
- package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.js +3 -3
- package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.js +3 -3
- package/dist/lib/getRosenData/bitcoin/utils.d.ts +2 -2
- package/dist/lib/getRosenData/bitcoin/utils.d.ts.map +1 -1
- package/dist/lib/getRosenData/bitcoin/utils.js +5 -26
- package/dist/lib/getRosenData/const.d.ts +1 -0
- package/dist/lib/getRosenData/const.d.ts.map +1 -1
- package/dist/lib/getRosenData/const.js +3 -1
- package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.js +3 -3
- package/dist/lib/getRosenData/evm/utils.d.ts +3 -9
- package/dist/lib/getRosenData/evm/utils.d.ts.map +1 -1
- package/dist/lib/getRosenData/evm/utils.js +5 -27
- package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts +36 -0
- package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.d.ts.map +1 -0
- package/dist/lib/getRosenData/runes/RunesEsploraRosenExtractor.js +113 -0
- package/dist/lib/getRosenData/runes/RunesRosenExtractor.d.ts +36 -0
- package/dist/lib/getRosenData/runes/RunesRosenExtractor.d.ts.map +1 -0
- package/dist/lib/getRosenData/runes/RunesRosenExtractor.js +120 -0
- package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts +36 -0
- package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.d.ts.map +1 -0
- package/dist/lib/getRosenData/runes/RunesRpcRosenExtractor.js +113 -0
- package/dist/lib/getRosenData/runes/constants.d.ts +2 -0
- package/dist/lib/getRosenData/runes/constants.d.ts.map +1 -0
- package/dist/lib/getRosenData/runes/constants.js +2 -0
- package/dist/lib/getRosenData/runes/types.d.ts +5 -0
- package/dist/lib/getRosenData/runes/types.d.ts.map +1 -0
- package/dist/lib/getRosenData/runes/types.js +2 -0
- package/dist/lib/getRosenData/runes/utils.d.ts +7 -0
- package/dist/lib/getRosenData/runes/utils.d.ts.map +1 -0
- package/dist/lib/getRosenData/runes/utils.js +9 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +8 -1
- package/dist/lib/types.d.ts +7 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +31 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { decodeAddress } from '@rosen-bridge/address-codec';
|
|
2
|
+
import { SUPPORTED_CHAINS } from './getRosenData/const';
|
|
3
|
+
/**
|
|
4
|
+
* extracts rosen data from raw hex data
|
|
5
|
+
* @param scriptPubKeyHex
|
|
6
|
+
*/
|
|
7
|
+
export const parseRosenData = (scriptPubKeyHex) => {
|
|
8
|
+
// parse toChain
|
|
9
|
+
const toChainHex = scriptPubKeyHex.slice(0, 2);
|
|
10
|
+
const toChainCode = parseInt(toChainHex, 16);
|
|
11
|
+
if (toChainCode >= SUPPORTED_CHAINS.length)
|
|
12
|
+
throw Error(`invalid toChain code, found [${toChainCode}] but only [${SUPPORTED_CHAINS.length}] chains are supported`);
|
|
13
|
+
const toChain = SUPPORTED_CHAINS[toChainCode];
|
|
14
|
+
// parse bridgeFee
|
|
15
|
+
const bridgeFeeHex = scriptPubKeyHex.slice(2, 18);
|
|
16
|
+
const bridgeFee = BigInt('0x' + bridgeFeeHex).toString();
|
|
17
|
+
// parse networkFee
|
|
18
|
+
const networkFeeHex = scriptPubKeyHex.slice(18, 34);
|
|
19
|
+
const networkFee = BigInt('0x' + networkFeeHex).toString();
|
|
20
|
+
// parse toAddress
|
|
21
|
+
const addressLengthCode = scriptPubKeyHex.slice(34, 36);
|
|
22
|
+
const addressHex = scriptPubKeyHex.slice(36, 36 + parseInt(addressLengthCode, 16) * 2);
|
|
23
|
+
const toAddress = decodeAddress(toChain, addressHex);
|
|
24
|
+
return {
|
|
25
|
+
toChain,
|
|
26
|
+
toAddress,
|
|
27
|
+
bridgeFee,
|
|
28
|
+
networkFee,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixlQUF1QixFQUNFLEVBQUU7SUFDM0IsZ0JBQWdCO0lBQ2hCLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsSUFBSSxXQUFXLElBQUksZ0JBQWdCLENBQUMsTUFBTTtRQUN4QyxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsV0FBVyxlQUFlLGdCQUFnQixDQUFDLE1BQU0sd0JBQXdCLENBQzFHLENBQUM7SUFDSixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU5QyxrQkFBa0I7SUFDbEIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV6RCxtQkFBbUI7SUFDbkIsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzRCxrQkFBa0I7SUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUN0QyxFQUFFLEVBQ0YsRUFBRSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQ3pDLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxPQUFPO1FBQ1AsU0FBUztRQUNULFNBQVM7UUFDVCxVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUFkZHJlc3MgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2FkZHJlc3MtY29kZWMnO1xuaW1wb3J0IHsgU1VQUE9SVEVEX0NIQUlOUyB9IGZyb20gJy4vZ2V0Um9zZW5EYXRhL2NvbnN0JztcbmltcG9ydCB7IE1pbmltYWxPbkNoYWluUm9zZW5EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogZXh0cmFjdHMgcm9zZW4gZGF0YSBmcm9tIHJhdyBoZXggZGF0YVxuICogQHBhcmFtIHNjcmlwdFB1YktleUhleFxuICovXG5leHBvcnQgY29uc3QgcGFyc2VSb3NlbkRhdGEgPSAoXG4gIHNjcmlwdFB1YktleUhleDogc3RyaW5nXG4pOiBNaW5pbWFsT25DaGFpblJvc2VuRGF0YSA9PiB7XG4gIC8vIHBhcnNlIHRvQ2hhaW5cbiAgY29uc3QgdG9DaGFpbkhleCA9IHNjcmlwdFB1YktleUhleC5zbGljZSgwLCAyKTtcbiAgY29uc3QgdG9DaGFpbkNvZGUgPSBwYXJzZUludCh0b0NoYWluSGV4LCAxNik7XG4gIGlmICh0b0NoYWluQ29kZSA+PSBTVVBQT1JURURfQ0hBSU5TLmxlbmd0aClcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBpbnZhbGlkIHRvQ2hhaW4gY29kZSwgZm91bmQgWyR7dG9DaGFpbkNvZGV9XSBidXQgb25seSBbJHtTVVBQT1JURURfQ0hBSU5TLmxlbmd0aH1dIGNoYWlucyBhcmUgc3VwcG9ydGVkYFxuICAgICk7XG4gIGNvbnN0IHRvQ2hhaW4gPSBTVVBQT1JURURfQ0hBSU5TW3RvQ2hhaW5Db2RlXTtcblxuICAvLyBwYXJzZSBicmlkZ2VGZWVcbiAgY29uc3QgYnJpZGdlRmVlSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDIsIDE4KTtcbiAgY29uc3QgYnJpZGdlRmVlID0gQmlnSW50KCcweCcgKyBicmlkZ2VGZWVIZXgpLnRvU3RyaW5nKCk7XG5cbiAgLy8gcGFyc2UgbmV0d29ya0ZlZVxuICBjb25zdCBuZXR3b3JrRmVlSGV4ID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDE4LCAzNCk7XG4gIGNvbnN0IG5ldHdvcmtGZWUgPSBCaWdJbnQoJzB4JyArIG5ldHdvcmtGZWVIZXgpLnRvU3RyaW5nKCk7XG5cbiAgLy8gcGFyc2UgdG9BZGRyZXNzXG4gIGNvbnN0IGFkZHJlc3NMZW5ndGhDb2RlID0gc2NyaXB0UHViS2V5SGV4LnNsaWNlKDM0LCAzNik7XG4gIGNvbnN0IGFkZHJlc3NIZXggPSBzY3JpcHRQdWJLZXlIZXguc2xpY2UoXG4gICAgMzYsXG4gICAgMzYgKyBwYXJzZUludChhZGRyZXNzTGVuZ3RoQ29kZSwgMTYpICogMlxuICApO1xuICBjb25zdCB0b0FkZHJlc3MgPSBkZWNvZGVBZGRyZXNzKHRvQ2hhaW4sIGFkZHJlc3NIZXgpO1xuXG4gIHJldHVybiB7XG4gICAgdG9DaGFpbixcbiAgICB0b0FkZHJlc3MsXG4gICAgYnJpZGdlRmVlLFxuICAgIG5ldHdvcmtGZWUsXG4gIH07XG59O1xuIl19
|