@brotocol-xyz/bro-sdk 0.5.2 → 0.5.3
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/lib/BroSDK.d.mts +1 -1
- package/lib/BroSDK.d.ts +1 -1
- package/lib/BroSDK.mjs +30 -30
- package/lib/bitcoinHelpers.d.mts +1 -1
- package/lib/bitcoinHelpers.d.ts +1 -1
- package/lib/bitcoinUtils/apiHelpers/broadcastRevealableTransaction.d.mts +1 -1
- package/lib/bitcoinUtils/apiHelpers/broadcastRevealableTransaction.d.ts +1 -1
- package/lib/bitcoinUtils/apiHelpers/createBitcoinPegInRecipients.d.mts +1 -1
- package/lib/bitcoinUtils/apiHelpers/createBitcoinPegInRecipients.d.ts +1 -1
- package/lib/bitcoinUtils/apiHelpers/createRevealTx.d.mts +1 -1
- package/lib/bitcoinUtils/apiHelpers/createRevealTx.d.ts +1 -1
- package/lib/bitcoinUtils/errors.d.mts +1 -1
- package/lib/bitcoinUtils/errors.d.ts +1 -1
- package/lib/bitcoinUtils/peggingHelpers.d.mts +1 -1
- package/lib/bitcoinUtils/peggingHelpers.d.ts +1 -1
- package/lib/bitcoinUtils/peggingHelpers.mjs +5 -5
- package/lib/bitcoinUtils/selectUTXOs.d.mts +1 -1
- package/lib/bitcoinUtils/selectUTXOs.d.ts +1 -1
- package/lib/bitcoinUtils/swapHelpers.d.mts +1 -1
- package/lib/bitcoinUtils/swapHelpers.d.ts +1 -1
- package/lib/bitcoinUtils/swapHelpers.mjs +8 -8
- package/lib/{buildSupportedRoutes-n9OsvZ9B.d.ts → buildSupportedRoutes-C8VjVdMZ.d.ts} +1 -1
- package/lib/{buildSupportedRoutes-BFcFAL_f.d.mts → buildSupportedRoutes-DLOAMhvP.d.mts} +1 -1
- package/lib/{chunk-Q4OZ66VC.mjs → chunk-2HP6XA3L.mjs} +6 -6
- package/lib/{chunk-Q4OZ66VC.mjs.map → chunk-2HP6XA3L.mjs.map} +1 -1
- package/lib/{chunk-DOXOZPSB.mjs → chunk-3FJWFDVX.mjs} +4 -4
- package/lib/{chunk-DOXOZPSB.mjs.map → chunk-3FJWFDVX.mjs.map} +1 -1
- package/lib/{chunk-354B2Y7S.mjs → chunk-4TMIPAY2.mjs} +4 -4
- package/lib/{chunk-354B2Y7S.mjs.map → chunk-4TMIPAY2.mjs.map} +1 -1
- package/lib/{chunk-7YO6QA5K.mjs → chunk-DIEXMED5.mjs} +3 -3
- package/lib/{chunk-7YO6QA5K.mjs.map → chunk-DIEXMED5.mjs.map} +1 -1
- package/lib/{chunk-2DDRSRK6.mjs → chunk-DROGCQE6.mjs} +3 -3
- package/lib/{chunk-2DDRSRK6.mjs.map → chunk-DROGCQE6.mjs.map} +1 -1
- package/lib/{chunk-K5WVXIFO.mjs → chunk-EB3BRHWH.mjs} +3 -3
- package/lib/{chunk-K5WVXIFO.mjs.map → chunk-EB3BRHWH.mjs.map} +1 -1
- package/lib/{chunk-NYKOSGJ6.mjs → chunk-F7OJXZ4E.mjs} +6 -6
- package/lib/{chunk-NYKOSGJ6.mjs.map → chunk-F7OJXZ4E.mjs.map} +1 -1
- package/lib/{chunk-3PAYRZ5U.mjs → chunk-FLGO2F7Y.mjs} +4 -4
- package/lib/{chunk-3PAYRZ5U.mjs.map → chunk-FLGO2F7Y.mjs.map} +1 -1
- package/lib/{chunk-SL5UBBUZ.mjs → chunk-FLUNHQKD.mjs} +3 -3
- package/lib/{chunk-SL5UBBUZ.mjs.map → chunk-FLUNHQKD.mjs.map} +1 -1
- package/lib/{chunk-B72YU6QK.mjs → chunk-GZQD2P5Q.mjs} +5 -5
- package/lib/{chunk-B72YU6QK.mjs.map → chunk-GZQD2P5Q.mjs.map} +1 -1
- package/lib/{chunk-VRSUXLDF.mjs → chunk-HELM5OY3.mjs} +3 -3
- package/lib/{chunk-VRSUXLDF.mjs.map → chunk-HELM5OY3.mjs.map} +1 -1
- package/lib/{chunk-HT2R6PL7.mjs → chunk-HG24HWJT.mjs} +5 -5
- package/lib/{chunk-HT2R6PL7.mjs.map → chunk-HG24HWJT.mjs.map} +1 -1
- package/lib/{chunk-SOYYQ4AL.mjs → chunk-HXCSYHMN.mjs} +3 -3
- package/lib/{chunk-SOYYQ4AL.mjs.map → chunk-HXCSYHMN.mjs.map} +1 -1
- package/lib/{chunk-Z25LGKI6.mjs → chunk-HXTBK7AR.mjs} +4 -4
- package/lib/{chunk-Z25LGKI6.mjs.map → chunk-HXTBK7AR.mjs.map} +1 -1
- package/lib/{chunk-OQA45BJS.mjs → chunk-ICB75WPH.mjs} +4 -4
- package/lib/{chunk-OQA45BJS.mjs.map → chunk-ICB75WPH.mjs.map} +1 -1
- package/lib/{chunk-UKZCUP4C.mjs → chunk-K5IH4TBD.mjs} +17 -17
- package/lib/{chunk-UKZCUP4C.mjs.map → chunk-K5IH4TBD.mjs.map} +1 -1
- package/lib/{chunk-EARJVRU4.mjs → chunk-KPHZ6HEG.mjs} +4 -4
- package/lib/{chunk-EARJVRU4.mjs.map → chunk-KPHZ6HEG.mjs.map} +1 -1
- package/lib/{chunk-LB4IQCDV.mjs → chunk-M3FIXZ4J.mjs} +3 -3
- package/lib/{chunk-LB4IQCDV.mjs.map → chunk-M3FIXZ4J.mjs.map} +1 -1
- package/lib/{chunk-MJ7SAQ54.mjs → chunk-MOYK7U34.mjs} +4 -4
- package/lib/{chunk-MJ7SAQ54.mjs.map → chunk-MOYK7U34.mjs.map} +1 -1
- package/lib/{chunk-TBQEHS3S.mjs → chunk-OJZVG4LH.mjs} +8 -8
- package/lib/{chunk-TBQEHS3S.mjs.map → chunk-OJZVG4LH.mjs.map} +1 -1
- package/lib/{chunk-QJMXT463.mjs → chunk-SVNI2XJO.mjs} +3 -3
- package/lib/{chunk-QJMXT463.mjs.map → chunk-SVNI2XJO.mjs.map} +1 -1
- package/lib/{chunk-FWOCZ7H7.mjs → chunk-T5QULL6H.mjs} +5 -5
- package/lib/{chunk-FWOCZ7H7.mjs.map → chunk-T5QULL6H.mjs.map} +1 -1
- package/lib/{chunk-C5UUHCIO.mjs → chunk-UDXCVZU4.mjs} +5 -5
- package/lib/{chunk-C5UUHCIO.mjs.map → chunk-UDXCVZU4.mjs.map} +1 -1
- package/lib/{chunk-OGBSV2OP.mjs → chunk-V3RGUQDL.mjs} +5 -5
- package/lib/{chunk-OGBSV2OP.mjs.map → chunk-V3RGUQDL.mjs.map} +1 -1
- package/lib/{chunk-U2KXYVZ3.mjs → chunk-VFYBLG7L.mjs} +5 -5
- package/lib/{chunk-U2KXYVZ3.mjs.map → chunk-VFYBLG7L.mjs.map} +1 -1
- package/lib/evmUtils/apiHelpers/getEVMOnChainConfig.d.mts +1 -1
- package/lib/evmUtils/apiHelpers/getEVMOnChainConfig.d.ts +1 -1
- package/lib/evmUtils/apiHelpers/getEVMSupportedRoutes.d.mts +1 -1
- package/lib/evmUtils/apiHelpers/getEVMSupportedRoutes.d.ts +1 -1
- package/lib/evmUtils/contractHelpers.d.mts +1 -1
- package/lib/evmUtils/contractHelpers.d.ts +1 -1
- package/lib/evmUtils/peggingHelpers.d.mts +1 -1
- package/lib/evmUtils/peggingHelpers.d.ts +1 -1
- package/lib/evmUtils/peggingHelpers.mjs +4 -4
- package/lib/evmUtils/swapHelpers.d.mts +1 -1
- package/lib/evmUtils/swapHelpers.d.ts +1 -1
- package/lib/evmUtils/swapHelpers.mjs +6 -6
- package/lib/index.d.mts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.mjs +30 -30
- package/lib/lowlevelUnstableInfos.d.mts +2 -2
- package/lib/lowlevelUnstableInfos.d.ts +2 -2
- package/lib/lowlevelUnstableInfos.mjs +10 -10
- package/lib/metaUtils/apiHelpers/getBRC20SupportedRoutes.d.mts +1 -1
- package/lib/metaUtils/apiHelpers/getBRC20SupportedRoutes.d.ts +1 -1
- package/lib/metaUtils/apiHelpers/getRunesSupportedRoutes.d.mts +1 -1
- package/lib/metaUtils/apiHelpers/getRunesSupportedRoutes.d.ts +1 -1
- package/lib/metaUtils/peggingHelpers.d.mts +1 -1
- package/lib/metaUtils/peggingHelpers.d.ts +1 -1
- package/lib/metaUtils/peggingHelpers.mjs +4 -4
- package/lib/metaUtils/swapHelpers.d.mts +1 -1
- package/lib/metaUtils/swapHelpers.d.ts +1 -1
- package/lib/metaUtils/swapHelpers.mjs +7 -7
- package/lib/metaUtils/tokenAddresses.d.mts +1 -1
- package/lib/metaUtils/tokenAddresses.d.ts +1 -1
- package/lib/sdkUtils/bridgeFromBRC20.d.mts +1 -1
- package/lib/sdkUtils/bridgeFromBRC20.d.ts +1 -1
- package/lib/sdkUtils/bridgeFromBRC20.mjs +11 -11
- package/lib/sdkUtils/bridgeFromBitcoin.d.mts +1 -1
- package/lib/sdkUtils/bridgeFromBitcoin.d.ts +1 -1
- package/lib/sdkUtils/bridgeFromBitcoin.mjs +8 -8
- package/lib/sdkUtils/bridgeFromEVM.d.mts +1 -1
- package/lib/sdkUtils/bridgeFromEVM.d.ts +1 -1
- package/lib/sdkUtils/bridgeFromEVM.mjs +6 -6
- package/lib/sdkUtils/bridgeFromRunes.d.mts +1 -1
- package/lib/sdkUtils/bridgeFromRunes.d.ts +1 -1
- package/lib/sdkUtils/bridgeFromRunes.mjs +17 -17
- package/lib/sdkUtils/bridgeFromStacks.d.mts +1 -1
- package/lib/sdkUtils/bridgeFromStacks.d.ts +1 -1
- package/lib/sdkUtils/bridgeFromStacks.mjs +5 -5
- package/lib/sdkUtils/bridgeInfoFromBitcoin.d.mts +1 -1
- package/lib/sdkUtils/bridgeInfoFromBitcoin.d.ts +1 -1
- package/lib/sdkUtils/bridgeInfoFromBitcoin.mjs +6 -6
- package/lib/sdkUtils/bridgeInfoFromEVM.d.mts +1 -1
- package/lib/sdkUtils/bridgeInfoFromEVM.d.ts +1 -1
- package/lib/sdkUtils/bridgeInfoFromEVM.mjs +6 -6
- package/lib/sdkUtils/bridgeInfoFromMeta.d.mts +1 -1
- package/lib/sdkUtils/bridgeInfoFromMeta.d.ts +1 -1
- package/lib/sdkUtils/bridgeInfoFromMeta.mjs +7 -7
- package/lib/sdkUtils/bridgeInfoFromStacks.d.mts +1 -1
- package/lib/sdkUtils/bridgeInfoFromStacks.d.ts +1 -1
- package/lib/sdkUtils/bridgeInfoFromStacks.mjs +6 -6
- package/lib/sdkUtils/estimateBridgeTransactionFromBRC20.d.mts +1 -1
- package/lib/sdkUtils/estimateBridgeTransactionFromBRC20.d.ts +1 -1
- package/lib/sdkUtils/estimateBridgeTransactionFromBRC20.mjs +12 -12
- package/lib/sdkUtils/estimateBridgeTransactionFromBitcoin.d.mts +1 -1
- package/lib/sdkUtils/estimateBridgeTransactionFromBitcoin.d.ts +1 -1
- package/lib/sdkUtils/estimateBridgeTransactionFromBitcoin.mjs +9 -9
- package/lib/sdkUtils/estimateBridgeTransactionFromRunes.d.mts +1 -1
- package/lib/sdkUtils/estimateBridgeTransactionFromRunes.d.ts +1 -1
- package/lib/sdkUtils/estimateBridgeTransactionFromRunes.mjs +18 -18
- package/lib/sdkUtils/timelockFromEVM.d.mts +1 -1
- package/lib/sdkUtils/timelockFromEVM.d.ts +1 -1
- package/lib/sdkUtils/types.internal.d.mts +1 -1
- package/lib/sdkUtils/types.internal.d.ts +1 -1
- package/lib/stacksUtils/apiHelpers/getAllStacksTokens.d.mts +1 -1
- package/lib/stacksUtils/apiHelpers/getAllStacksTokens.d.ts +1 -1
- package/lib/stacksUtils/contractHelpers.d.mts +1 -1
- package/lib/stacksUtils/contractHelpers.d.ts +1 -1
- package/lib/stacksUtils/createBridgeOrderFromBitcoin.d.mts +1 -1
- package/lib/stacksUtils/createBridgeOrderFromBitcoin.d.ts +1 -1
- package/lib/stacksUtils/createBridgeOrderFromBitcoin.mjs +5 -5
- package/lib/stacksUtils/createBridgeOrderFromMeta.d.mts +3 -3
- package/lib/stacksUtils/createBridgeOrderFromMeta.d.ts +3 -3
- package/lib/stacksUtils/createBridgeOrderFromMeta.mjs +5 -5
- package/lib/stacksUtils/peggingHelpers.d.mts +1 -1
- package/lib/stacksUtils/peggingHelpers.d.ts +1 -1
- package/lib/stacksUtils/validateBridgeOrderFromBitcoin.d.mts +1 -1
- package/lib/stacksUtils/validateBridgeOrderFromBitcoin.d.ts +1 -1
- package/lib/stacksUtils/validateBridgeOrderFromMeta.d.mts +1 -1
- package/lib/stacksUtils/validateBridgeOrderFromMeta.d.ts +1 -1
- package/lib/swapHelpers.d.mts +3 -3
- package/lib/swapHelpers.d.ts +3 -3
- package/lib/swapHelpers.js.map +1 -1
- package/lib/swapHelpers.mjs +15 -15
- package/lib/swapHelpers.mjs.map +1 -1
- package/lib/utils/RunesProtocol/RunesBitcoinScript.mjs +3 -3
- package/lib/utils/RunesProtocol/Runestone.mjs +2 -2
- package/lib/utils/SwapRouteHelpers.d.mts +1 -1
- package/lib/utils/SwapRouteHelpers.d.ts +1 -1
- package/lib/utils/SwapRouteHelpers.mjs +4 -4
- package/lib/utils/apiHelpers.d.mts +1 -1
- package/lib/utils/apiHelpers.d.ts +1 -1
- package/lib/utils/buildSupportedRoutes.d.mts +1 -1
- package/lib/utils/buildSupportedRoutes.d.ts +1 -1
- package/lib/utils/detectPossibleRoutes.d.mts +1 -1
- package/lib/utils/detectPossibleRoutes.d.ts +1 -1
- package/lib/utils/errors.d.mts +1 -1
- package/lib/utils/errors.d.ts +1 -1
- package/lib/utils/feeRateHelpers.d.mts +1 -1
- package/lib/utils/feeRateHelpers.d.ts +1 -1
- package/lib/utils/swapHelpers/alexSwapParametersHelpers.d.mts +1 -1
- package/lib/utils/swapHelpers/alexSwapParametersHelpers.d.ts +1 -1
- package/lib/utils/swapHelpers/alexSwapParametersHelpers.mjs +5 -5
- package/lib/utils/swapHelpers/evmDexAggregatorSwapParametersHelpers.d.mts +1 -1
- package/lib/utils/swapHelpers/evmDexAggregatorSwapParametersHelpers.d.ts +1 -1
- package/lib/utils/swapHelpers/evmDexAggregatorSwapParametersHelpers.mjs +5 -5
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/fetchIceScreamSwapPossibleRoutes.d.mts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/fetchIceScreamSwapPossibleRoutes.d.ts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/fetchKyberSwapPossibleRoutes.d.mts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/fetchKyberSwapPossibleRoutes.d.ts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/fetchMatchaPossibleRoutes.d.mts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/fetchMatchaPossibleRoutes.d.ts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/helpers.d.mts +1 -1
- package/lib/utils/swapHelpers/fetchDexAggregatorPossibleRoutes/helpers.d.ts +1 -1
- package/lib/utils/swapHelpers/getDexAggregatorRoutes.d.mts +1 -1
- package/lib/utils/swapHelpers/getDexAggregatorRoutes.d.ts +1 -1
- package/lib/utils/types/TransferProphet.d.mts +1 -1
- package/lib/utils/types/TransferProphet.d.ts +1 -1
- package/package.json +1 -1
- package/src/swapHelpers.ts +2 -2
package/lib/BroSDK.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
|
-
import { G as GetSupportedRoutesFn_Conditions, K as KnownRoute, M as DefinedRoute, S as SwapRoute } from './buildSupportedRoutes-
|
|
2
|
+
import { G as GetSupportedRoutesFn_Conditions, K as KnownRoute, M as DefinedRoute, S as SwapRoute } from './buildSupportedRoutes-DLOAMhvP.mjs';
|
|
3
3
|
import { KnownChainId, KnownTokenId } from './utils/types/knownIds.mjs';
|
|
4
4
|
import { BridgeFromBitcoinInput, BridgeFromBitcoinOutput } from './sdkUtils/bridgeFromBitcoin.mjs';
|
|
5
5
|
export { BridgeFromBitcoinInput_reselectSpendableUTXOs, BridgeFromBitcoinInput_signPsbtFn } from './sdkUtils/bridgeFromBitcoin.mjs';
|
package/lib/BroSDK.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
|
-
import { G as GetSupportedRoutesFn_Conditions, K as KnownRoute, M as DefinedRoute, S as SwapRoute } from './buildSupportedRoutes-
|
|
2
|
+
import { G as GetSupportedRoutesFn_Conditions, K as KnownRoute, M as DefinedRoute, S as SwapRoute } from './buildSupportedRoutes-C8VjVdMZ.js';
|
|
3
3
|
import { KnownChainId, KnownTokenId } from './utils/types/knownIds.js';
|
|
4
4
|
import { BridgeFromBitcoinInput, BridgeFromBitcoinOutput } from './sdkUtils/bridgeFromBitcoin.js';
|
|
5
5
|
export { BridgeFromBitcoinInput_reselectSpendableUTXOs, BridgeFromBitcoinInput_signPsbtFn } from './sdkUtils/bridgeFromBitcoin.js';
|
package/lib/BroSDK.mjs
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
export { BroSDK } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
export { BroSDK } from './chunk-K5IH4TBD.mjs';
|
|
2
|
+
import './chunk-JMKFYYXO.mjs';
|
|
3
|
+
import './chunk-X4FHEWUQ.mjs';
|
|
4
|
+
import './chunk-GZQD2P5Q.mjs';
|
|
5
|
+
import './chunk-F7OJXZ4E.mjs';
|
|
5
6
|
import './chunk-7IBXAC6M.mjs';
|
|
6
7
|
import './chunk-66RPLHDE.mjs';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-OJZVG4LH.mjs';
|
|
9
|
+
import './chunk-M3FIXZ4J.mjs';
|
|
9
10
|
import './chunk-SDPVPJYF.mjs';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-5IM2VYFF.mjs';
|
|
11
|
+
import './chunk-DROGCQE6.mjs';
|
|
12
12
|
import './chunk-D5Y5E2QN.mjs';
|
|
13
13
|
import './chunk-C75ZFSS5.mjs';
|
|
14
14
|
import './chunk-V3HCWM2V.mjs';
|
|
15
15
|
import './chunk-MVOVJ62S.mjs';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
16
|
+
import './chunk-5IM2VYFF.mjs';
|
|
17
|
+
import './chunk-VMOOESRZ.mjs';
|
|
18
|
+
import './chunk-62ZWITWA.mjs';
|
|
19
|
+
import './chunk-HXCSYHMN.mjs';
|
|
20
|
+
import './chunk-UDXCVZU4.mjs';
|
|
21
|
+
import './chunk-4TMIPAY2.mjs';
|
|
22
|
+
import './chunk-JZ2GKLZC.mjs';
|
|
23
|
+
import './chunk-VFYBLG7L.mjs';
|
|
19
24
|
import './chunk-ZDXJBIF4.mjs';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import './chunk-
|
|
25
|
+
import './chunk-2HP6XA3L.mjs';
|
|
26
|
+
import './chunk-AJLQNCRO.mjs';
|
|
27
|
+
import './chunk-HELM5OY3.mjs';
|
|
28
|
+
import './chunk-FLGO2F7Y.mjs';
|
|
22
29
|
import './chunk-EGXUCEG2.mjs';
|
|
23
30
|
import './chunk-YWAU2XXC.mjs';
|
|
24
31
|
import './chunk-FZEWHJVQ.mjs';
|
|
25
|
-
import './chunk-JMKFYYXO.mjs';
|
|
26
|
-
import './chunk-VMOOESRZ.mjs';
|
|
27
32
|
import './chunk-JUSOZ5US.mjs';
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-X4FHEWUQ.mjs';
|
|
30
|
-
import './chunk-62ZWITWA.mjs';
|
|
31
|
-
import './chunk-K5WVXIFO.mjs';
|
|
32
|
-
import './chunk-VRSUXLDF.mjs';
|
|
33
|
-
import './chunk-JZ2GKLZC.mjs';
|
|
33
|
+
import './chunk-EB3BRHWH.mjs';
|
|
34
34
|
import './chunk-5CXJHFN2.mjs';
|
|
35
35
|
import './chunk-W7CBZYKO.mjs';
|
|
36
36
|
import './chunk-6DZ5TX23.mjs';
|
|
37
|
-
import './chunk-
|
|
37
|
+
import './chunk-T5QULL6H.mjs';
|
|
38
38
|
import './chunk-NPL4WHWU.mjs';
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
39
|
+
import './chunk-HXTBK7AR.mjs';
|
|
40
|
+
import './chunk-MOYK7U34.mjs';
|
|
41
41
|
import './chunk-ICAPGWYW.mjs';
|
|
42
|
-
import './chunk-T2CB5LYL.mjs';
|
|
43
42
|
import './chunk-EUUWXU7W.mjs';
|
|
43
|
+
import './chunk-T2CB5LYL.mjs';
|
|
44
44
|
import './chunk-XSGX5D2I.mjs';
|
|
45
45
|
import './chunk-NG5VIMLE.mjs';
|
|
46
|
-
import './chunk-
|
|
47
|
-
import './chunk-
|
|
46
|
+
import './chunk-KPHZ6HEG.mjs';
|
|
47
|
+
import './chunk-ICB75WPH.mjs';
|
|
48
48
|
import './chunk-CY5XDHIQ.mjs';
|
|
49
|
+
import './chunk-EAZGVKKY.mjs';
|
|
50
|
+
import './chunk-LR5A4F46.mjs';
|
|
49
51
|
import './chunk-UNVARCOY.mjs';
|
|
50
52
|
import './chunk-HU6MEPEK.mjs';
|
|
51
|
-
import './chunk-DWKASAEU.mjs';
|
|
52
53
|
import './chunk-76YB3RHO.mjs';
|
|
53
|
-
import './chunk-
|
|
54
|
-
import './chunk-LR5A4F46.mjs';
|
|
54
|
+
import './chunk-DWKASAEU.mjs';
|
|
55
55
|
import './chunk-52CSEIPJ.mjs';
|
|
56
56
|
import './chunk-OPZMQWNH.mjs';
|
|
57
57
|
import './chunk-MHW642TP.mjs';
|
package/lib/bitcoinHelpers.d.mts
CHANGED
|
@@ -14,7 +14,7 @@ import './bitcoinUtils/constants.mjs';
|
|
|
14
14
|
import './utils/BigNumber.mjs';
|
|
15
15
|
import 'big.js';
|
|
16
16
|
import './utils/typeHelpers.mjs';
|
|
17
|
-
import './buildSupportedRoutes-
|
|
17
|
+
import './buildSupportedRoutes-DLOAMhvP.mjs';
|
|
18
18
|
import './evmUtils/evmContractAddresses.mjs';
|
|
19
19
|
import './utils/types/GeneralCacheInterface.mjs';
|
|
20
20
|
|
package/lib/bitcoinHelpers.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ import './bitcoinUtils/constants.js';
|
|
|
14
14
|
import './utils/BigNumber.js';
|
|
15
15
|
import 'big.js';
|
|
16
16
|
import './utils/typeHelpers.js';
|
|
17
|
-
import './buildSupportedRoutes-
|
|
17
|
+
import './buildSupportedRoutes-C8VjVdMZ.js';
|
|
18
18
|
import './evmUtils/evmContractAddresses.js';
|
|
19
19
|
import './utils/types/GeneralCacheInterface.js';
|
|
20
20
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KnownChainId } from '../../utils/types/knownIds.mjs';
|
|
2
|
-
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-
|
|
2
|
+
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
3
3
|
import '../../sdkUtils/types.mjs';
|
|
4
4
|
import 'viem';
|
|
5
5
|
import '../constants.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KnownChainId } from '../../utils/types/knownIds.js';
|
|
2
|
-
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-
|
|
2
|
+
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-C8VjVdMZ.js';
|
|
3
3
|
import '../../sdkUtils/types.js';
|
|
4
4
|
import 'viem';
|
|
5
5
|
import '../constants.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KnownChainId, KnownTokenId } from '../../utils/types/knownIds.mjs';
|
|
2
|
-
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-
|
|
2
|
+
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
3
3
|
import '../../sdkUtils/types.mjs';
|
|
4
4
|
import 'viem';
|
|
5
5
|
import '../constants.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KnownChainId, KnownTokenId } from '../../utils/types/knownIds.js';
|
|
2
|
-
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-
|
|
2
|
+
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-C8VjVdMZ.js';
|
|
3
3
|
import '../../sdkUtils/types.js';
|
|
4
4
|
import 'viem';
|
|
5
5
|
import '../constants.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KnownChainId } from '../../utils/types/knownIds.mjs';
|
|
2
|
-
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-
|
|
2
|
+
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
3
3
|
import '../../sdkUtils/types.mjs';
|
|
4
4
|
import 'viem';
|
|
5
5
|
import '../constants.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KnownChainId } from '../../utils/types/knownIds.js';
|
|
2
|
-
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-
|
|
2
|
+
import { j as SDKGlobalContext } from '../../buildSupportedRoutes-C8VjVdMZ.js';
|
|
3
3
|
import '../../sdkUtils/types.js';
|
|
4
4
|
import 'viem';
|
|
5
5
|
import '../constants.js';
|
|
@@ -5,7 +5,7 @@ import './constants.mjs';
|
|
|
5
5
|
import '../utils/BigNumber.mjs';
|
|
6
6
|
import 'big.js';
|
|
7
7
|
import '../utils/typeHelpers.mjs';
|
|
8
|
-
import '../buildSupportedRoutes-
|
|
8
|
+
import '../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
9
9
|
import '../utils/types/knownIds.mjs';
|
|
10
10
|
import '../evmUtils/evmContractAddresses.mjs';
|
|
11
11
|
import '../utils/types/GeneralCacheInterface.mjs';
|
|
@@ -5,7 +5,7 @@ import './constants.js';
|
|
|
5
5
|
import '../utils/BigNumber.js';
|
|
6
6
|
import 'big.js';
|
|
7
7
|
import '../utils/typeHelpers.js';
|
|
8
|
-
import '../buildSupportedRoutes-
|
|
8
|
+
import '../buildSupportedRoutes-C8VjVdMZ.js';
|
|
9
9
|
import '../utils/types/knownIds.js';
|
|
10
10
|
import '../evmUtils/evmContractAddresses.js';
|
|
11
11
|
import '../utils/types/GeneralCacheInterface.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as SDKGlobalContext, o as KnownRoute_FromBitcoin_ToStacks, S as SwapRoute, T as TransferProphet, H as KnownRoute_FromStacks_ToBitcoin, N as KnownRoute_ToStacks, O as IsSupportedFn } from '../buildSupportedRoutes-
|
|
1
|
+
import { j as SDKGlobalContext, o as KnownRoute_FromBitcoin_ToStacks, S as SwapRoute, T as TransferProphet, H as KnownRoute_FromStacks_ToBitcoin, N as KnownRoute_ToStacks, O as IsSupportedFn } from '../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
2
2
|
import '../sdkUtils/types.mjs';
|
|
3
3
|
import 'viem';
|
|
4
4
|
import './constants.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as SDKGlobalContext, o as KnownRoute_FromBitcoin_ToStacks, S as SwapRoute, T as TransferProphet, H as KnownRoute_FromStacks_ToBitcoin, N as KnownRoute_ToStacks, O as IsSupportedFn } from '../buildSupportedRoutes-
|
|
1
|
+
import { j as SDKGlobalContext, o as KnownRoute_FromBitcoin_ToStacks, S as SwapRoute, T as TransferProphet, H as KnownRoute_FromStacks_ToBitcoin, N as KnownRoute_ToStacks, O as IsSupportedFn } from '../buildSupportedRoutes-C8VjVdMZ.js';
|
|
2
2
|
import '../sdkUtils/types.js';
|
|
3
3
|
import 'viem';
|
|
4
4
|
import './constants.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { getBtc2StacksFeeInfo, getStacks2BtcFeeInfo, isSupportedBitcoinRoute } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { getBtc2StacksFeeInfo, getStacks2BtcFeeInfo, isSupportedBitcoinRoute } from '../chunk-KPHZ6HEG.mjs';
|
|
2
|
+
import '../chunk-ICB75WPH.mjs';
|
|
3
3
|
import '../chunk-CY5XDHIQ.mjs';
|
|
4
|
+
import '../chunk-EAZGVKKY.mjs';
|
|
5
|
+
import '../chunk-LR5A4F46.mjs';
|
|
4
6
|
import '../chunk-UNVARCOY.mjs';
|
|
5
7
|
import '../chunk-HU6MEPEK.mjs';
|
|
6
|
-
import '../chunk-DWKASAEU.mjs';
|
|
7
8
|
import '../chunk-76YB3RHO.mjs';
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-LR5A4F46.mjs';
|
|
9
|
+
import '../chunk-DWKASAEU.mjs';
|
|
10
10
|
import '../chunk-52CSEIPJ.mjs';
|
|
11
11
|
import '../chunk-OPZMQWNH.mjs';
|
|
12
12
|
import '../chunk-MHW642TP.mjs';
|
|
@@ -10,7 +10,7 @@ import './constants.mjs';
|
|
|
10
10
|
import '../utils/BigNumber.mjs';
|
|
11
11
|
import 'big.js';
|
|
12
12
|
import '../utils/typeHelpers.mjs';
|
|
13
|
-
import '../buildSupportedRoutes-
|
|
13
|
+
import '../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
14
14
|
import '../evmUtils/evmContractAddresses.mjs';
|
|
15
15
|
import '../utils/types/GeneralCacheInterface.mjs';
|
|
16
16
|
import '@c4/btc-utils';
|
|
@@ -10,7 +10,7 @@ import './constants.js';
|
|
|
10
10
|
import '../utils/BigNumber.js';
|
|
11
11
|
import 'big.js';
|
|
12
12
|
import '../utils/typeHelpers.js';
|
|
13
|
-
import '../buildSupportedRoutes-
|
|
13
|
+
import '../buildSupportedRoutes-C8VjVdMZ.js';
|
|
14
14
|
import '../evmUtils/evmContractAddresses.js';
|
|
15
15
|
import '../utils/types/GeneralCacheInterface.js';
|
|
16
16
|
import '@c4/btc-utils';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as SDKGlobalContext, k as KnownRoute_FromBitcoin } from '../buildSupportedRoutes-
|
|
1
|
+
import { j as SDKGlobalContext, k as KnownRoute_FromBitcoin } from '../buildSupportedRoutes-DLOAMhvP.mjs';
|
|
2
2
|
import { BigNumber } from '../utils/BigNumber.mjs';
|
|
3
3
|
import { ALEXSwapParameters } from '../utils/swapHelpers/alexSwapParametersHelpers.mjs';
|
|
4
4
|
import { GetPossibleEVMDexAggregatorSwapParametersImplOptions, EVMDexAggregatorSwapParameters } from '../utils/swapHelpers/evmDexAggregatorSwapParametersHelpers.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as SDKGlobalContext, k as KnownRoute_FromBitcoin } from '../buildSupportedRoutes-
|
|
1
|
+
import { j as SDKGlobalContext, k as KnownRoute_FromBitcoin } from '../buildSupportedRoutes-C8VjVdMZ.js';
|
|
2
2
|
import { BigNumber } from '../utils/BigNumber.js';
|
|
3
3
|
import { ALEXSwapParameters } from '../utils/swapHelpers/alexSwapParametersHelpers.js';
|
|
4
4
|
import { GetPossibleEVMDexAggregatorSwapParametersImplOptions, EVMDexAggregatorSwapParameters } from '../utils/swapHelpers/evmDexAggregatorSwapParametersHelpers.js';
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export { getALEXSwapParameters_FromBitcoin, getPossibleEVMDexAggregatorSwapParameters_FromBitcoin } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { getALEXSwapParameters_FromBitcoin, getPossibleEVMDexAggregatorSwapParameters_FromBitcoin } from '../chunk-HG24HWJT.mjs';
|
|
2
|
+
import '../chunk-FLUNHQKD.mjs';
|
|
3
|
+
import '../chunk-DIEXMED5.mjs';
|
|
4
4
|
import '../chunk-XSGX5D2I.mjs';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-KPHZ6HEG.mjs';
|
|
6
|
+
import '../chunk-ICB75WPH.mjs';
|
|
7
7
|
import '../chunk-CY5XDHIQ.mjs';
|
|
8
|
+
import '../chunk-EAZGVKKY.mjs';
|
|
9
|
+
import '../chunk-LR5A4F46.mjs';
|
|
8
10
|
import '../chunk-UNVARCOY.mjs';
|
|
9
11
|
import '../chunk-HU6MEPEK.mjs';
|
|
10
|
-
import '../chunk-DWKASAEU.mjs';
|
|
11
12
|
import '../chunk-76YB3RHO.mjs';
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-LR5A4F46.mjs';
|
|
13
|
+
import '../chunk-DWKASAEU.mjs';
|
|
14
14
|
import '../chunk-52CSEIPJ.mjs';
|
|
15
15
|
import '../chunk-OPZMQWNH.mjs';
|
|
16
16
|
import '../chunk-MHW642TP.mjs';
|
|
@@ -455,4 +455,4 @@ interface GetSupportedRoutesFn_Conditions {
|
|
|
455
455
|
}
|
|
456
456
|
type GetSupportedRoutesFn = (ctx: SDKGlobalContext, conditions?: GetSupportedRoutesFn_Conditions) => Promise<KnownRoute[]>;
|
|
457
457
|
|
|
458
|
-
export { type EVMOnChainConfigForEVMChain as $, type KnownRoute_FromRunes as A, type KnownRoute_FromRunes_ToBitcoin as B, type KnownRoute_FromRunes_ToBRC20 as C, type KnownRoute_FromRunes_ToEVM as D, type KnownRoute_FromRunes_ToStacks as E, type KnownRoute_FromStacks as F, type GetSupportedRoutesFn_Conditions as G, type KnownRoute_FromStacks_ToBitcoin as H, type KnownRoute_FromStacks_ToBRC20 as I, type KnownRoute_FromStacks_ToEVM as J, type KnownRoute as K, type KnownRoute_FromStacks_ToRunes as L, type DefinedRoute as M, type KnownRoute_ToStacks as N, type IsSupportedFn as O, type PublicTransferProphet as P, type KnownRoute_FromMeta as Q, type
|
|
458
|
+
export { type EVMOnChainConfigForEVMChain as $, type KnownRoute_FromRunes as A, type KnownRoute_FromRunes_ToBitcoin as B, type KnownRoute_FromRunes_ToBRC20 as C, type KnownRoute_FromRunes_ToEVM as D, type KnownRoute_FromRunes_ToStacks as E, type KnownRoute_FromStacks as F, type GetSupportedRoutesFn_Conditions as G, type KnownRoute_FromStacks_ToBitcoin as H, type KnownRoute_FromStacks_ToBRC20 as I, type KnownRoute_FromStacks_ToEVM as J, type KnownRoute as K, type KnownRoute_FromStacks_ToRunes as L, type DefinedRoute as M, type KnownRoute_ToStacks as N, type IsSupportedFn as O, type PublicTransferProphet as P, type KnownRoute_FromMeta as Q, type TransferProphet_Fee_Rate as R, type SwapRoute as S, type TransferProphet as T, type TransferProphet_Fee_Fixed as U, type TransferProphetAggregated as V, type SwapRoute_WithMinimumAmountsToReceive as W, type KnownRoute_FromMeta_ToStacks as X, type KnownRoute_FromMeta_ToEVM as Y, type KnownRoute_FromMeta_ToBitcoin as Z, type KnownRoute_FromMeta_ToMeta as _, type SwapRoute_WithMinimumAmountsToReceive_Public as a, type EVMOnChainConfigByEVMChain as a0, getEVMOnChainConfig as a1, getEVMOnChainConfigByChainType as a2, type EVMSupportedRoute as a3, getEVMSupportedRoutes as a4, getEVMSupportedRoutesByChainType as a5, type BRC20SupportedRoute as a6, getBRC20SupportedRoutes as a7, type RunesSupportedRoute as a8, getRunesSupportedRoutes as a9, defineRoute as aA, memoizedIsSupportedFactory as aB, type CheckRouteValidFn as aC, checkRouteValid as aD, type GetSupportedRoutesFn as aE, type StacksTokenInfo as aa, getAllStacksTokens as ab, type TransferProphet_Fee as ac, transformFromPublicTransferProphet as ad, transformToPublicTransferProphet as ae, transformToPublicTransferProphetAggregated as af, transformToPublicTransferProphetAggregated2 as ag, type SDKGlobalContextCache as ah, withGlobalContextCache as ai, type SwapRouteViaALEX_WithExchangeRate as aj, type SwapRouteViaALEX_WithMinimumAmountsToReceive as ak, type SwapRouteViaEVMDexAggregator_WithExchangeRate as al, type SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive as am, type SwapRoute_WithExchangeRate as an, getFirstStepStacksTokenAddress as ao, getFinalStepStacksTokenAddress as ap, getAndCheckTransitStacksTokens as aq, toCorrespondingStacksToken as ar, type SpecialFeeDetailsForSwapRoute as as, getSpecialFeeDetailsForSwapRoute as at, type NormalizedSpecialFeeDetails as au, normalizeSpecialFeeDetails as av, type KnownRoute_FromBRC20_ToBRC20 as aw, type KnownRoute_FromRunes_ToRunes as ax, type KnownRoute_FromMeta_ToBRC20 as ay, type KnownRoute_FromMeta_ToRunes as az, type SwapRoute_WithExchangeRate_Public as b, type SwapRouteViaALEX as c, type SwapRouteViaALEX_WithMinimumAmountsToReceive_Public as d, type SwapRouteViaALEX_WithExchangeRate_Public as e, type SwapRouteViaEVMDexAggregator as f, type SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive_Public as g, type SwapRouteViaEVMDexAggregator_WithExchangeRate_Public as h, type PublicTransferProphetAggregated as i, type SDKGlobalContext as j, type KnownRoute_FromBitcoin as k, type KnownRoute_FromBitcoin_ToBRC20 as l, type KnownRoute_FromBitcoin_ToEVM as m, type KnownRoute_FromBitcoin_ToRunes as n, type KnownRoute_FromBitcoin_ToStacks as o, type KnownRoute_FromBRC20 as p, type KnownRoute_FromBRC20_ToBitcoin as q, type KnownRoute_FromBRC20_ToEVM as r, type KnownRoute_FromBRC20_ToRunes as s, type KnownRoute_FromBRC20_ToStacks as t, type KnownRoute_FromEVM as u, type KnownRoute_FromEVM_ToBitcoin as v, type KnownRoute_FromEVM_ToBRC20 as w, type KnownRoute_FromEVM_ToEVM as x, type KnownRoute_FromEVM_ToRunes as y, type KnownRoute_FromEVM_ToStacks as z };
|
|
@@ -455,4 +455,4 @@ interface GetSupportedRoutesFn_Conditions {
|
|
|
455
455
|
}
|
|
456
456
|
type GetSupportedRoutesFn = (ctx: SDKGlobalContext, conditions?: GetSupportedRoutesFn_Conditions) => Promise<KnownRoute[]>;
|
|
457
457
|
|
|
458
|
-
export { type EVMOnChainConfigForEVMChain as $, type KnownRoute_FromRunes as A, type KnownRoute_FromRunes_ToBitcoin as B, type KnownRoute_FromRunes_ToBRC20 as C, type KnownRoute_FromRunes_ToEVM as D, type KnownRoute_FromRunes_ToStacks as E, type KnownRoute_FromStacks as F, type GetSupportedRoutesFn_Conditions as G, type KnownRoute_FromStacks_ToBitcoin as H, type KnownRoute_FromStacks_ToBRC20 as I, type KnownRoute_FromStacks_ToEVM as J, type KnownRoute as K, type KnownRoute_FromStacks_ToRunes as L, type DefinedRoute as M, type KnownRoute_ToStacks as N, type IsSupportedFn as O, type PublicTransferProphet as P, type KnownRoute_FromMeta as Q, type
|
|
458
|
+
export { type EVMOnChainConfigForEVMChain as $, type KnownRoute_FromRunes as A, type KnownRoute_FromRunes_ToBitcoin as B, type KnownRoute_FromRunes_ToBRC20 as C, type KnownRoute_FromRunes_ToEVM as D, type KnownRoute_FromRunes_ToStacks as E, type KnownRoute_FromStacks as F, type GetSupportedRoutesFn_Conditions as G, type KnownRoute_FromStacks_ToBitcoin as H, type KnownRoute_FromStacks_ToBRC20 as I, type KnownRoute_FromStacks_ToEVM as J, type KnownRoute as K, type KnownRoute_FromStacks_ToRunes as L, type DefinedRoute as M, type KnownRoute_ToStacks as N, type IsSupportedFn as O, type PublicTransferProphet as P, type KnownRoute_FromMeta as Q, type TransferProphet_Fee_Rate as R, type SwapRoute as S, type TransferProphet as T, type TransferProphet_Fee_Fixed as U, type TransferProphetAggregated as V, type SwapRoute_WithMinimumAmountsToReceive as W, type KnownRoute_FromMeta_ToStacks as X, type KnownRoute_FromMeta_ToEVM as Y, type KnownRoute_FromMeta_ToBitcoin as Z, type KnownRoute_FromMeta_ToMeta as _, type SwapRoute_WithMinimumAmountsToReceive_Public as a, type EVMOnChainConfigByEVMChain as a0, getEVMOnChainConfig as a1, getEVMOnChainConfigByChainType as a2, type EVMSupportedRoute as a3, getEVMSupportedRoutes as a4, getEVMSupportedRoutesByChainType as a5, type BRC20SupportedRoute as a6, getBRC20SupportedRoutes as a7, type RunesSupportedRoute as a8, getRunesSupportedRoutes as a9, defineRoute as aA, memoizedIsSupportedFactory as aB, type CheckRouteValidFn as aC, checkRouteValid as aD, type GetSupportedRoutesFn as aE, type StacksTokenInfo as aa, getAllStacksTokens as ab, type TransferProphet_Fee as ac, transformFromPublicTransferProphet as ad, transformToPublicTransferProphet as ae, transformToPublicTransferProphetAggregated as af, transformToPublicTransferProphetAggregated2 as ag, type SDKGlobalContextCache as ah, withGlobalContextCache as ai, type SwapRouteViaALEX_WithExchangeRate as aj, type SwapRouteViaALEX_WithMinimumAmountsToReceive as ak, type SwapRouteViaEVMDexAggregator_WithExchangeRate as al, type SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive as am, type SwapRoute_WithExchangeRate as an, getFirstStepStacksTokenAddress as ao, getFinalStepStacksTokenAddress as ap, getAndCheckTransitStacksTokens as aq, toCorrespondingStacksToken as ar, type SpecialFeeDetailsForSwapRoute as as, getSpecialFeeDetailsForSwapRoute as at, type NormalizedSpecialFeeDetails as au, normalizeSpecialFeeDetails as av, type KnownRoute_FromBRC20_ToBRC20 as aw, type KnownRoute_FromRunes_ToRunes as ax, type KnownRoute_FromMeta_ToBRC20 as ay, type KnownRoute_FromMeta_ToRunes as az, type SwapRoute_WithExchangeRate_Public as b, type SwapRouteViaALEX as c, type SwapRouteViaALEX_WithMinimumAmountsToReceive_Public as d, type SwapRouteViaALEX_WithExchangeRate_Public as e, type SwapRouteViaEVMDexAggregator as f, type SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive_Public as g, type SwapRouteViaEVMDexAggregator_WithExchangeRate_Public as h, type PublicTransferProphetAggregated as i, type SDKGlobalContext as j, type KnownRoute_FromBitcoin as k, type KnownRoute_FromBitcoin_ToBRC20 as l, type KnownRoute_FromBitcoin_ToEVM as m, type KnownRoute_FromBitcoin_ToRunes as n, type KnownRoute_FromBitcoin_ToStacks as o, type KnownRoute_FromBRC20 as p, type KnownRoute_FromBRC20_ToBitcoin as q, type KnownRoute_FromBRC20_ToEVM as r, type KnownRoute_FromBRC20_ToRunes as s, type KnownRoute_FromBRC20_ToStacks as t, type KnownRoute_FromEVM as u, type KnownRoute_FromEVM_ToBitcoin as v, type KnownRoute_FromEVM_ToBRC20 as w, type KnownRoute_FromEVM_ToEVM as x, type KnownRoute_FromEVM_ToRunes as y, type KnownRoute_FromEVM_ToStacks as z };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { validateBridgeOrderFromMeta } from './chunk-AJLQNCRO.mjs';
|
|
2
|
+
import { createBridgeOrder_MetaToStacks, createBridgeOrder_MetaToEVM, createBridgeOrder_MetaToBitcoin, createBridgeOrder_MetaToMeta } from './chunk-HELM5OY3.mjs';
|
|
3
|
+
import { reselectSpendableUTXOsFactory } from './chunk-FLGO2F7Y.mjs';
|
|
2
4
|
import { createRevealTx } from './chunk-EGXUCEG2.mjs';
|
|
3
5
|
import { broadcastRevealableTransaction } from './chunk-YWAU2XXC.mjs';
|
|
4
6
|
import { createBitcoinPegInRecipients } from './chunk-FZEWHJVQ.mjs';
|
|
5
|
-
import { validateBridgeOrderFromMeta } from './chunk-AJLQNCRO.mjs';
|
|
6
|
-
import { createBridgeOrder_MetaToStacks, createBridgeOrder_MetaToEVM, createBridgeOrder_MetaToBitcoin, createBridgeOrder_MetaToMeta } from './chunk-VRSUXLDF.mjs';
|
|
7
7
|
import { createTransaction } from './chunk-5CXJHFN2.mjs';
|
|
8
8
|
import { prepareTransaction } from './chunk-W7CBZYKO.mjs';
|
|
9
9
|
import { checkRouteValid } from './chunk-T2CB5LYL.mjs';
|
|
10
|
-
import { isSupportedBRC20Route, toCorrespondingStacksToken, getMeta2StacksFeeInfo } from './chunk-
|
|
10
|
+
import { isSupportedBRC20Route, toCorrespondingStacksToken, getMeta2StacksFeeInfo } from './chunk-ICB75WPH.mjs';
|
|
11
11
|
import { getMetaPegInAddress } from './chunk-DWKASAEU.mjs';
|
|
12
12
|
import { getStacksTokenContractInfo } from './chunk-2X5O2HTU.mjs';
|
|
13
13
|
import { getBTCPegInAddress, getBitcoinHardLinkageAddress } from './chunk-MVRJTKZO.mjs';
|
|
@@ -573,5 +573,5 @@ async function prepareBRC20Transaction(sdkContext, info) {
|
|
|
573
573
|
}
|
|
574
574
|
|
|
575
575
|
export { bridgeFromBRC20, getBridgeFeeOutput, prepareBRC20Transaction };
|
|
576
|
-
//# sourceMappingURL=chunk-
|
|
577
|
-
//# sourceMappingURL=chunk-
|
|
576
|
+
//# sourceMappingURL=chunk-2HP6XA3L.mjs.map
|
|
577
|
+
//# sourceMappingURL=chunk-2HP6XA3L.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sdkUtils/bridgeFromBRC20.ts"],"names":[],"mappings":"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","file":"chunk-Q4OZ66VC.mjs","sourcesContent":["import * as btc from \"@scure/btc-signer\"\nimport { equalBytes } from \"@scure/btc-signer/utils\"\nimport { broadcastRevealableTransaction } from \"../bitcoinUtils/apiHelpers/broadcastRevealableTransaction\"\nimport { createBitcoinPegInRecipients } from \"../bitcoinUtils/apiHelpers/createBitcoinPegInRecipients\"\nimport { createRevealTx } from \"../bitcoinUtils/apiHelpers/createRevealTx\"\nimport {\n UTXOSpendable,\n addressToScriptPubKey,\n bitcoinToSatoshi,\n} from \"../bitcoinUtils/bitcoinHelpers\"\nimport {\n BitcoinAddress,\n getBTCPegInAddress,\n getBitcoinHardLinkageAddress,\n} from \"../bitcoinUtils/btcAddresses\"\nimport {\n BITCOIN_OUTPUT_MINIMUM_AMOUNT,\n SDK_NAME,\n} from \"../bitcoinUtils/constants\"\nimport { createTransaction } from \"../bitcoinUtils/createTransaction\"\nimport {\n BitcoinTransactionPrepareResult,\n prepareTransaction,\n} from \"../bitcoinUtils/prepareTransaction\"\nimport { getMetaPegInAddress } from \"../metaUtils/btcAddresses\"\nimport {\n getMeta2StacksFeeInfo,\n isSupportedBRC20Route,\n} from \"../metaUtils/peggingHelpers\"\nimport { getStacksTokenContractInfo } from \"../stacksUtils/contractHelpers\"\nimport { CreateBridgeOrderResult } from \"../stacksUtils/createBridgeOrderFromBitcoin\"\nimport {\n createBridgeOrder_MetaToBitcoin,\n createBridgeOrder_MetaToEVM,\n createBridgeOrder_MetaToMeta,\n createBridgeOrder_MetaToStacks,\n} from \"../stacksUtils/createBridgeOrderFromMeta\"\nimport { validateBridgeOrderFromMeta } from \"../stacksUtils/validateBridgeOrderFromMeta\"\nimport { range } from \"../utils/arrayHelpers\"\nimport { BigNumber } from \"../utils/BigNumber\"\nimport {\n KnownRoute_FromBRC20,\n KnownRoute_FromBRC20_ToBRC20,\n KnownRoute_FromBRC20_ToBitcoin,\n KnownRoute_FromBRC20_ToEVM,\n KnownRoute_FromBRC20_ToRunes,\n KnownRoute_FromBRC20_ToStacks,\n KnownRoute_FromMeta,\n checkRouteValid,\n} from \"../utils/buildSupportedRoutes\"\nimport {\n BridgeValidateFailedError,\n InvalidMethodParametersError,\n UnsupportedBridgeRouteError,\n} from \"../utils/errors\"\nimport { decodeHex } from \"../utils/hexHelpers\"\nimport {\n SwapRoute,\n SwapRouteViaALEX,\n SwapRouteViaALEX_WithMinimumAmountsToReceive_Public,\n SwapRouteViaEVMDexAggregator,\n SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive_Public,\n SwapRoute_WithMinimumAmountsToReceive_Public,\n toCorrespondingStacksToken,\n} from \"../utils/SwapRouteHelpers\"\nimport { assertExclude, checkNever } from \"../utils/typeHelpers\"\nimport {\n KnownChainId,\n KnownTokenId,\n _knownChainIdToErrorMessagePart,\n getChainIdNetworkType,\n} from \"../utils/types/knownIds\"\nimport { TransferProphet_Fee_Fixed } from \"../utils/types/TransferProphet\"\nimport {\n ReselectSpendableUTXOsFn_Public,\n reselectSpendableUTXOsFactory,\n} from \"./bridgeFromBitcoin\"\nimport { ChainId, TokenId, isEVMAddress } from \"./types\"\nimport { SDKGlobalContext } from \"./types.internal\"\n\nexport type BridgeFromBRC20Input_reselectSpendableNetworkFeeUTXOs =\n ReselectSpendableUTXOsFn_Public\n\nexport type BridgeFromBRC20Input_signPsbtFn = (tx: {\n psbt: Uint8Array\n signBitcoinInputs: number[]\n signInscriptionInputs: number[]\n}) => Promise<{ psbt: Uint8Array }>\n\nexport interface BridgeFromBRC20Input {\n fromChain: ChainId\n toChain: ChainId\n fromToken: TokenId\n toToken: TokenId\n\n fromAddress: string\n fromAddressScriptPubKey: Uint8Array\n toAddress: string\n /**\n * **Required** when `toChain` is one of bitcoin chains\n */\n toAddressScriptPubKey?: Uint8Array\n\n inputInscriptionUTXO: UTXOSpendable\n swapRoute?: SwapRoute_WithMinimumAmountsToReceive_Public\n\n networkFeeRate: bigint\n reselectSpendableNetworkFeeUTXOs: BridgeFromBRC20Input_reselectSpendableNetworkFeeUTXOs\n networkFeeChangeAddress: string\n networkFeeChangeAddressScriptPubKey: Uint8Array\n\n extraOutputs?: {\n address: BitcoinAddress\n satsAmount: bigint\n }[]\n\n signPsbt: BridgeFromBRC20Input_signPsbtFn\n sendTransaction: (tx: {\n hex: string\n pegInOrderOutput: {\n index: number\n amount: bigint\n orderData: Uint8Array\n }\n }) => Promise<{\n txid: string\n }>\n}\n\nexport interface BridgeFromBRC20Output {\n txid: string\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n}\n\nexport async function bridgeFromBRC20(\n ctx: SDKGlobalContext,\n info: BridgeFromBRC20Input,\n): Promise<BridgeFromBRC20Output> {\n const route = await checkRouteValid(ctx, isSupportedBRC20Route, info)\n\n if (\n !equalBytes(\n info.fromAddressScriptPubKey,\n addressToScriptPubKey(\n info.fromChain === KnownChainId.BRC20.Mainnet\n ? btc.NETWORK\n : btc.TEST_NETWORK,\n info.fromAddress,\n ),\n )\n ) {\n throw new InvalidMethodParametersError(\n [SDK_NAME, \"bridgeFromBRC20\"],\n [\n {\n name: \"fromAddressScriptPubKey\",\n expected: \"the scriptPubKey of the fromAddress\",\n received: \"invalid scriptPubKey\",\n },\n ],\n )\n }\n\n if (info.toAddressScriptPubKey != null) {\n if (\n !equalBytes(\n info.toAddressScriptPubKey,\n addressToScriptPubKey(\n info.fromChain === KnownChainId.BRC20.Mainnet\n ? btc.NETWORK\n : btc.TEST_NETWORK,\n info.toAddress,\n ),\n )\n ) {\n throw new InvalidMethodParametersError(\n [SDK_NAME, \"bridgeFromBRC20\"],\n [\n {\n name: \"toAddressScriptPubKey\",\n expected: \"the scriptPubKey of the toAddress\",\n received: \"invalid scriptPubKey\",\n },\n ],\n )\n }\n }\n\n if (KnownChainId.isBRC20Chain(route.fromChain)) {\n if (KnownChainId.isStacksChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isStacksToken(route.toToken)\n ) {\n return bridgeFromBRC20_toStacks(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isEVMChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isEVMToken(route.toToken)\n ) {\n return bridgeFromBRC20_toEVM(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isBitcoinChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isBitcoinToken(route.toToken)\n ) {\n return bridgeFromBRC20_toBitcoin(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isBRC20Chain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isBRC20Token(route.toToken)\n ) {\n return bridgeFromBRC20_toMeta(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isRunesChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isRunesToken(route.toToken)\n ) {\n return bridgeFromBRC20_toMeta(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else {\n assertExclude(route.toChain, assertExclude.i<KnownChainId.BitcoinChain>())\n checkNever(route)\n }\n } else {\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.EVMChain>())\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.StacksChain>())\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.BitcoinChain>())\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.RunesChain>())\n checkNever(route)\n }\n\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n}\n\nexport async function getBridgeFeeOutput(\n sdkContext: SDKGlobalContext,\n info: KnownRoute_FromMeta & {\n swapRoute?: SwapRoute\n },\n): Promise<null | {\n address: string\n scriptPubKey: Uint8Array\n satsAmount: BigNumber\n}> {\n const btcPegInAddress = getBTCPegInAddress(\n getChainIdNetworkType(info.fromChain) === \"mainnet\"\n ? KnownChainId.Bitcoin.Mainnet\n : KnownChainId.Bitcoin.Testnet,\n info.toChain,\n )\n const transitStacksChain =\n getChainIdNetworkType(info.fromChain) === \"mainnet\"\n ? KnownChainId.Stacks.Mainnet\n : KnownChainId.Stacks.Testnet\n const transitStacksToken = await toCorrespondingStacksToken(\n sdkContext,\n info.fromChain,\n info.fromToken,\n )\n if (btcPegInAddress == null || transitStacksToken == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const step1FeeInfo = await getMeta2StacksFeeInfo(\n sdkContext,\n {\n fromChain: info.fromChain as KnownChainId.BRC20Chain,\n fromToken: info.fromToken as KnownTokenId.BRC20Token,\n toChain: transitStacksChain,\n toToken: transitStacksToken,\n },\n { swapRoute: info.swapRoute ?? null },\n )\n if (step1FeeInfo == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeInBTC = step1FeeInfo.fees.find(\n (f): f is TransferProphet_Fee_Fixed =>\n f.type === \"fixed\" && f.token === KnownTokenId.Bitcoin.BTC,\n )\n\n if (bridgeFeeInBTC == null) return null\n if (BigNumber.isZero(bridgeFeeInBTC.amount)) return null\n\n return {\n ...btcPegInAddress,\n satsAmount: BigNumber.from(\n bitcoinToSatoshi(BigNumber.toString(bridgeFeeInBTC.amount)),\n ),\n }\n}\n\nasync function bridgeFromBRC20_toStacks(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n KnownRoute_FromBRC20_ToStacks,\n): Promise<BridgeFromBRC20Output> {\n const swapRoute = info.swapRoute\n\n const pegInAddress = getMetaPegInAddress(info.fromChain, info.toChain)\n const toTokenContractInfo = await getStacksTokenContractInfo(\n sdkContext,\n info.toChain,\n info.toToken,\n )\n if (pegInAddress == null || toTokenContractInfo == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const createdOrder = await createBridgeOrder_MetaToStacks(sdkContext, {\n fromChain: info.fromChain,\n fromToken: info.fromToken,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toChain: info.toChain,\n toToken: info.toToken,\n toStacksAddress: info.toAddress,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: false,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function bridgeFromBRC20_toEVM(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n KnownRoute_FromBRC20_ToEVM,\n): Promise<BridgeFromBRC20Output> {\n const swapRoute = info.swapRoute\n\n const createdOrder = !isEVMAddress(info.toAddress)\n ? null\n : await createBridgeOrder_MetaToEVM(sdkContext, {\n ...info,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toEVMAddress: info.toAddress,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: false,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function bridgeFromBRC20_toBitcoin(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n KnownRoute_FromBRC20_ToBitcoin,\n): Promise<BridgeFromBRC20Output> {\n if (info.toAddressScriptPubKey == null) {\n throw new InvalidMethodParametersError(\n [\n SDK_NAME,\n `bridgeFromBRC20 (to ${_knownChainIdToErrorMessagePart(info.toChain)})`,\n ],\n [\n {\n name: \"toAddressScriptPubKey\",\n expected: \"Uint8Array\",\n received: \"undefined\",\n },\n ],\n )\n }\n\n const swapRoute = info.swapRoute\n const createdOrder = await createBridgeOrder_MetaToBitcoin(sdkContext, {\n ...info,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toBitcoinScriptPubKey: info.toAddressScriptPubKey,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: true,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function bridgeFromBRC20_toMeta(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n (KnownRoute_FromBRC20_ToBRC20 | KnownRoute_FromBRC20_ToRunes),\n): Promise<BridgeFromBRC20Output> {\n if (info.toAddressScriptPubKey == null) {\n throw new InvalidMethodParametersError(\n [\n SDK_NAME,\n `bridgeFromBRC20 (to ${_knownChainIdToErrorMessagePart(info.toChain)})`,\n ],\n [\n {\n name: \"toAddressScriptPubKey\",\n expected: \"Uint8Array\",\n received: \"undefined\",\n },\n ],\n )\n }\n\n const swapRoute = info.swapRoute\n const createdOrder = await createBridgeOrder_MetaToMeta(sdkContext, {\n ...info,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toBitcoinScriptPubKey: info.toAddressScriptPubKey,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: true,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function broadcastBRC20Transaction(\n sdkContext: SDKGlobalContext,\n info: Omit<\n ConstructBRC20TransactionInput,\n \"validateBridgeOrder\" | \"orderData\" | \"pegInAddress\" | \"hardLinkageOutput\"\n > & {\n withHardLinkageOutput: boolean\n sendTransaction: BridgeFromBRC20Input[\"sendTransaction\"]\n },\n createdOrder: CreateBridgeOrderResult,\n): Promise<{\n txid: string\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n}> {\n const pegInAddress = getMetaPegInAddress(info.fromChain, info.toChain)\n if (pegInAddress == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const route: KnownRoute_FromBRC20 = {\n fromChain: info.fromChain,\n fromToken: info.fromToken,\n toChain: info.toChain,\n toToken: info.toToken,\n } as any\n\n const tx = await constructBRC20Transaction(sdkContext, {\n ...info,\n ...route,\n validateBridgeOrder: async (btcTx, revealTx, extra) => {\n if (revealTx == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n /**\n * due to contract limit, we are unable to validate this tx before the\n * commit tx be confirmed, so we will skip it and fix it in the future\n */\n void validateBridgeOrderFromMeta({\n chainId: info.fromChain,\n commitTx: btcTx,\n revealTx,\n terminatingStacksToken: createdOrder.tokenOutTrait,\n transferOutputIndex: extra.transferOutputIndex,\n bridgeFeeOutputIndex: extra.bridgeFeeOutputIndex,\n swapRoute: extra.swapRoute,\n })\n },\n orderData: createdOrder.data,\n pegInAddress,\n hardLinkageOutput: info.withHardLinkageOutput\n ? ((await getBitcoinHardLinkageAddress(info.fromChain, info.toChain)) ??\n null)\n : null,\n })\n\n const { txid: apiBroadcastedTxId } = await broadcastRevealableTransaction(\n sdkContext,\n {\n fromChain: info.fromChain,\n transactionHex: `0x${tx.hex}`,\n orderData: createdOrder.data,\n orderOutputIndex: tx.revealOutput.index,\n orderOutputSatsAmount: tx.revealOutput.satsAmount,\n pegInAddress: pegInAddress,\n },\n )\n\n const { txid: delegateBroadcastedTxId } = await info.sendTransaction({\n hex: tx.hex,\n pegInOrderOutput: {\n index: tx.revealOutput.index,\n amount: tx.revealOutput.satsAmount,\n orderData: createdOrder.data,\n },\n })\n\n if (apiBroadcastedTxId !== delegateBroadcastedTxId) {\n console.warn(\n \"[bro-sdk] Transaction id broadcasted by API and delegatee are different:\",\n `API: ${apiBroadcastedTxId}, `,\n `Delegatee: ${delegateBroadcastedTxId}`,\n )\n }\n\n return {\n txid: delegateBroadcastedTxId,\n extraOutputs: tx.extraOutputs,\n }\n}\n\ntype ConstructBRC20TransactionInput = PrepareBRC20TransactionInput & {\n swapRoute:\n | undefined\n | SwapRouteViaALEX_WithMinimumAmountsToReceive_Public\n | SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive_Public\n signPsbt: BridgeFromBRC20Input[\"signPsbt\"]\n pegInAddress: BitcoinAddress\n validateBridgeOrder: (\n pegInTx: Uint8Array,\n revealTx: undefined | Uint8Array,\n info: {\n transferOutputIndex: number\n bridgeFeeOutputIndex: undefined | number\n swapRoute: undefined | SwapRouteViaALEX | SwapRouteViaEVMDexAggregator\n },\n ) => Promise<void>\n}\nasync function constructBRC20Transaction(\n sdkContext: SDKGlobalContext,\n info: ConstructBRC20TransactionInput,\n): Promise<{\n hex: string\n revealOutput: {\n index: number\n satsAmount: bigint\n }\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n}> {\n const txOptions = await prepareBRC20Transaction(sdkContext, info)\n\n const recipients =\n txOptions.changeAmount > 0n\n ? txOptions.recipients.concat({\n addressScriptPubKey: info.networkFeeChangeAddressScriptPubKey,\n satsAmount: txOptions.changeAmount,\n })\n : txOptions.recipients\n\n const tx = createTransaction(\n txOptions.inputs,\n recipients,\n txOptions.opReturnScripts ?? [],\n )\n\n const { psbt } = await info.signPsbt({\n psbt: tx.toPSBT(),\n signInscriptionInputs: [0],\n signBitcoinInputs: range(1, tx.inputsLength),\n })\n\n const signedTx = btc.Transaction.fromPSBT(psbt, {\n allowUnknownInputs: true,\n allowUnknownOutputs: true,\n })\n if (!signedTx.isFinal) {\n signedTx.finalize()\n }\n\n const revealTx = await createRevealTx(sdkContext, {\n fromChain: info.fromChain,\n txId: signedTx.id,\n vout: txOptions.revealOutput.index,\n satsAmount: txOptions.revealOutput.satsAmount,\n orderData: info.orderData,\n pegInAddress: info.pegInAddress,\n })\n\n await info\n .validateBridgeOrder(signedTx.extract(), decodeHex(revealTx.txHex), {\n transferOutputIndex: txOptions.transferOutput.index,\n bridgeFeeOutputIndex: txOptions.bridgeFeeOutput?.index,\n swapRoute: info.swapRoute,\n })\n .catch(err => {\n if (sdkContext.brc20.ignoreValidateResult) {\n console.error(\n \"Bridge tx validation failed, but ignoreValidateResult is true, so we ignore the error\",\n err,\n )\n } else {\n throw new BridgeValidateFailedError(err)\n }\n })\n\n return {\n hex: signedTx.hex,\n revealOutput: txOptions.revealOutput,\n extraOutputs: txOptions.extraOutputs,\n }\n}\n\nexport type PrepareBRC20TransactionInput = KnownRoute_FromBRC20 & {\n fromAddressScriptPubKey: BridgeFromBRC20Input[\"fromAddressScriptPubKey\"]\n fromAddress: BridgeFromBRC20Input[\"fromAddress\"]\n toAddress: BridgeFromBRC20Input[\"toAddress\"]\n inputInscriptionUTXO: BridgeFromBRC20Input[\"inputInscriptionUTXO\"]\n\n networkFeeRate: BridgeFromBRC20Input[\"networkFeeRate\"]\n networkFeeChangeAddress: string\n networkFeeChangeAddressScriptPubKey: Uint8Array\n reselectSpendableNetworkFeeUTXOs: BridgeFromBRC20Input[\"reselectSpendableNetworkFeeUTXOs\"]\n\n pegInAddress: BitcoinAddress\n orderData: Uint8Array\n bridgeFeeOutput: null | {\n address: string\n scriptPubKey: Uint8Array\n satsAmount: BigNumber\n }\n hardLinkageOutput: null | BitcoinAddress\n extraOutputs: {\n address: BitcoinAddress\n satsAmount: bigint\n }[]\n}\n/**\n * Bitcoin Tx Structure:\n *\n * * Inputs: ...\n * * Outputs:\n * * Peg-in BRC-20 tokens\n * * Peg-in order data\n * * Bridge fee (optional)\n * * Hard linkage (optional)\n * * ...extra outputs\n * * BTC change (optional)\n *\n * (with bridge fee example tx) https://mempool.space/testnet/tx/e127a2d3c343675a1cde8ca8d10ae5621b40d309ce44b4f45bedc10499f8d596\n * (with hard linkage example tx) https://mempool.space/tx/51ff0b2de15cb6e9df0685458faf9b13d761b6e5991496b89c53641d27a8c9da#vin=1\n */\nexport async function prepareBRC20Transaction(\n sdkContext: Pick<SDKGlobalContext, \"backendAPI\">,\n info: PrepareBRC20TransactionInput,\n): Promise<\n BitcoinTransactionPrepareResult & {\n bitcoinNetwork: typeof btc.NETWORK\n transferOutput: {\n index: number\n }\n revealOutput: {\n index: number\n satsAmount: bigint\n }\n bridgeFeeOutput?: {\n index: number\n satsAmount: bigint\n }\n hardLinkageOutput?: {\n index: number\n satsAmount: bigint\n }\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n }\n> {\n const bitcoinNetwork =\n getChainIdNetworkType(info.fromChain) === \"mainnet\"\n ? btc.NETWORK\n : btc.TEST_NETWORK\n\n const pegInOrderRecipient = await createBitcoinPegInRecipients(sdkContext, {\n fromChain: info.fromChain,\n fromToken: info.fromToken,\n toChain: info.toChain,\n toToken: info.toToken,\n fromAddress: {\n address: info.fromAddress,\n scriptPubKey: info.fromAddressScriptPubKey,\n },\n toAddress: info.toAddress,\n orderData: info.orderData,\n feeRate: info.networkFeeRate,\n })\n\n const result = await prepareTransaction({\n pinnedUTXOs: [info.inputInscriptionUTXO],\n recipients: [\n {\n addressScriptPubKey: info.pegInAddress.scriptPubKey,\n satsAmount: info.inputInscriptionUTXO.amount,\n },\n {\n addressScriptPubKey: pegInOrderRecipient.scriptPubKey,\n satsAmount: pegInOrderRecipient.satsAmount,\n },\n ...(info.bridgeFeeOutput == null\n ? []\n : [\n {\n addressScriptPubKey: info.pegInAddress.scriptPubKey,\n satsAmount: BigNumber.toBigInt(\n { roundingMode: BigNumber.roundUp },\n info.bridgeFeeOutput.satsAmount,\n ),\n },\n ]),\n ...(info.hardLinkageOutput == null\n ? []\n : [\n {\n addressScriptPubKey: info.hardLinkageOutput.scriptPubKey,\n satsAmount: BITCOIN_OUTPUT_MINIMUM_AMOUNT,\n },\n ]),\n ...info.extraOutputs.map(o => ({\n addressScriptPubKey: o.address.scriptPubKey,\n satsAmount: o.satsAmount,\n })),\n ],\n changeAddressScriptPubKey: info.networkFeeChangeAddressScriptPubKey,\n feeRate: info.networkFeeRate,\n reselectSpendableUTXOs: reselectSpendableUTXOsFactory(\n info.reselectSpendableNetworkFeeUTXOs,\n ),\n })\n\n const pegInBRC20TokensCausedOffset = 1\n const pegInOrderDataCausedOffset = pegInBRC20TokensCausedOffset + 1\n const bridgeFeeCausedOffset =\n pegInOrderDataCausedOffset + (info.bridgeFeeOutput == null ? 0 : 1)\n const hardLinkageCausedOffset =\n bridgeFeeCausedOffset + (info.hardLinkageOutput == null ? 0 : 1)\n const extraOutputsStartOffset = hardLinkageCausedOffset\n\n return {\n ...result,\n bitcoinNetwork,\n transferOutput: {\n index: pegInBRC20TokensCausedOffset - 1,\n },\n revealOutput: {\n index: pegInOrderDataCausedOffset - 1,\n satsAmount: pegInOrderRecipient.satsAmount,\n },\n bridgeFeeOutput:\n info.bridgeFeeOutput == null\n ? undefined\n : {\n index: bridgeFeeCausedOffset - 1,\n satsAmount: bitcoinToSatoshi(\n BigNumber.toString(info.bridgeFeeOutput.satsAmount),\n ),\n },\n hardLinkageOutput:\n info.hardLinkageOutput == null\n ? undefined\n : {\n index: hardLinkageCausedOffset - 1,\n satsAmount: BITCOIN_OUTPUT_MINIMUM_AMOUNT,\n },\n extraOutputs: info.extraOutputs.map((o, i) => ({\n index: extraOutputsStartOffset + i,\n satsAmount: o.satsAmount,\n })),\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/sdkUtils/bridgeFromBRC20.ts"],"names":[],"mappings":"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","file":"chunk-2HP6XA3L.mjs","sourcesContent":["import * as btc from \"@scure/btc-signer\"\nimport { equalBytes } from \"@scure/btc-signer/utils\"\nimport { broadcastRevealableTransaction } from \"../bitcoinUtils/apiHelpers/broadcastRevealableTransaction\"\nimport { createBitcoinPegInRecipients } from \"../bitcoinUtils/apiHelpers/createBitcoinPegInRecipients\"\nimport { createRevealTx } from \"../bitcoinUtils/apiHelpers/createRevealTx\"\nimport {\n UTXOSpendable,\n addressToScriptPubKey,\n bitcoinToSatoshi,\n} from \"../bitcoinUtils/bitcoinHelpers\"\nimport {\n BitcoinAddress,\n getBTCPegInAddress,\n getBitcoinHardLinkageAddress,\n} from \"../bitcoinUtils/btcAddresses\"\nimport {\n BITCOIN_OUTPUT_MINIMUM_AMOUNT,\n SDK_NAME,\n} from \"../bitcoinUtils/constants\"\nimport { createTransaction } from \"../bitcoinUtils/createTransaction\"\nimport {\n BitcoinTransactionPrepareResult,\n prepareTransaction,\n} from \"../bitcoinUtils/prepareTransaction\"\nimport { getMetaPegInAddress } from \"../metaUtils/btcAddresses\"\nimport {\n getMeta2StacksFeeInfo,\n isSupportedBRC20Route,\n} from \"../metaUtils/peggingHelpers\"\nimport { getStacksTokenContractInfo } from \"../stacksUtils/contractHelpers\"\nimport { CreateBridgeOrderResult } from \"../stacksUtils/createBridgeOrderFromBitcoin\"\nimport {\n createBridgeOrder_MetaToBitcoin,\n createBridgeOrder_MetaToEVM,\n createBridgeOrder_MetaToMeta,\n createBridgeOrder_MetaToStacks,\n} from \"../stacksUtils/createBridgeOrderFromMeta\"\nimport { validateBridgeOrderFromMeta } from \"../stacksUtils/validateBridgeOrderFromMeta\"\nimport { range } from \"../utils/arrayHelpers\"\nimport { BigNumber } from \"../utils/BigNumber\"\nimport {\n KnownRoute_FromBRC20,\n KnownRoute_FromBRC20_ToBRC20,\n KnownRoute_FromBRC20_ToBitcoin,\n KnownRoute_FromBRC20_ToEVM,\n KnownRoute_FromBRC20_ToRunes,\n KnownRoute_FromBRC20_ToStacks,\n KnownRoute_FromMeta,\n checkRouteValid,\n} from \"../utils/buildSupportedRoutes\"\nimport {\n BridgeValidateFailedError,\n InvalidMethodParametersError,\n UnsupportedBridgeRouteError,\n} from \"../utils/errors\"\nimport { decodeHex } from \"../utils/hexHelpers\"\nimport {\n SwapRoute,\n SwapRouteViaALEX,\n SwapRouteViaALEX_WithMinimumAmountsToReceive_Public,\n SwapRouteViaEVMDexAggregator,\n SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive_Public,\n SwapRoute_WithMinimumAmountsToReceive_Public,\n toCorrespondingStacksToken,\n} from \"../utils/SwapRouteHelpers\"\nimport { assertExclude, checkNever } from \"../utils/typeHelpers\"\nimport {\n KnownChainId,\n KnownTokenId,\n _knownChainIdToErrorMessagePart,\n getChainIdNetworkType,\n} from \"../utils/types/knownIds\"\nimport { TransferProphet_Fee_Fixed } from \"../utils/types/TransferProphet\"\nimport {\n ReselectSpendableUTXOsFn_Public,\n reselectSpendableUTXOsFactory,\n} from \"./bridgeFromBitcoin\"\nimport { ChainId, TokenId, isEVMAddress } from \"./types\"\nimport { SDKGlobalContext } from \"./types.internal\"\n\nexport type BridgeFromBRC20Input_reselectSpendableNetworkFeeUTXOs =\n ReselectSpendableUTXOsFn_Public\n\nexport type BridgeFromBRC20Input_signPsbtFn = (tx: {\n psbt: Uint8Array\n signBitcoinInputs: number[]\n signInscriptionInputs: number[]\n}) => Promise<{ psbt: Uint8Array }>\n\nexport interface BridgeFromBRC20Input {\n fromChain: ChainId\n toChain: ChainId\n fromToken: TokenId\n toToken: TokenId\n\n fromAddress: string\n fromAddressScriptPubKey: Uint8Array\n toAddress: string\n /**\n * **Required** when `toChain` is one of bitcoin chains\n */\n toAddressScriptPubKey?: Uint8Array\n\n inputInscriptionUTXO: UTXOSpendable\n swapRoute?: SwapRoute_WithMinimumAmountsToReceive_Public\n\n networkFeeRate: bigint\n reselectSpendableNetworkFeeUTXOs: BridgeFromBRC20Input_reselectSpendableNetworkFeeUTXOs\n networkFeeChangeAddress: string\n networkFeeChangeAddressScriptPubKey: Uint8Array\n\n extraOutputs?: {\n address: BitcoinAddress\n satsAmount: bigint\n }[]\n\n signPsbt: BridgeFromBRC20Input_signPsbtFn\n sendTransaction: (tx: {\n hex: string\n pegInOrderOutput: {\n index: number\n amount: bigint\n orderData: Uint8Array\n }\n }) => Promise<{\n txid: string\n }>\n}\n\nexport interface BridgeFromBRC20Output {\n txid: string\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n}\n\nexport async function bridgeFromBRC20(\n ctx: SDKGlobalContext,\n info: BridgeFromBRC20Input,\n): Promise<BridgeFromBRC20Output> {\n const route = await checkRouteValid(ctx, isSupportedBRC20Route, info)\n\n if (\n !equalBytes(\n info.fromAddressScriptPubKey,\n addressToScriptPubKey(\n info.fromChain === KnownChainId.BRC20.Mainnet\n ? btc.NETWORK\n : btc.TEST_NETWORK,\n info.fromAddress,\n ),\n )\n ) {\n throw new InvalidMethodParametersError(\n [SDK_NAME, \"bridgeFromBRC20\"],\n [\n {\n name: \"fromAddressScriptPubKey\",\n expected: \"the scriptPubKey of the fromAddress\",\n received: \"invalid scriptPubKey\",\n },\n ],\n )\n }\n\n if (info.toAddressScriptPubKey != null) {\n if (\n !equalBytes(\n info.toAddressScriptPubKey,\n addressToScriptPubKey(\n info.fromChain === KnownChainId.BRC20.Mainnet\n ? btc.NETWORK\n : btc.TEST_NETWORK,\n info.toAddress,\n ),\n )\n ) {\n throw new InvalidMethodParametersError(\n [SDK_NAME, \"bridgeFromBRC20\"],\n [\n {\n name: \"toAddressScriptPubKey\",\n expected: \"the scriptPubKey of the toAddress\",\n received: \"invalid scriptPubKey\",\n },\n ],\n )\n }\n }\n\n if (KnownChainId.isBRC20Chain(route.fromChain)) {\n if (KnownChainId.isStacksChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isStacksToken(route.toToken)\n ) {\n return bridgeFromBRC20_toStacks(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isEVMChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isEVMToken(route.toToken)\n ) {\n return bridgeFromBRC20_toEVM(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isBitcoinChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isBitcoinToken(route.toToken)\n ) {\n return bridgeFromBRC20_toBitcoin(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isBRC20Chain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isBRC20Token(route.toToken)\n ) {\n return bridgeFromBRC20_toMeta(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else if (KnownChainId.isRunesChain(route.toChain)) {\n if (\n KnownTokenId.isBRC20Token(route.fromToken) &&\n KnownTokenId.isRunesToken(route.toToken)\n ) {\n return bridgeFromBRC20_toMeta(ctx, {\n ...info,\n fromChain: route.fromChain,\n toChain: route.toChain,\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n }\n } else {\n assertExclude(route.toChain, assertExclude.i<KnownChainId.BitcoinChain>())\n checkNever(route)\n }\n } else {\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.EVMChain>())\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.StacksChain>())\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.BitcoinChain>())\n assertExclude(route.fromChain, assertExclude.i<KnownChainId.RunesChain>())\n checkNever(route)\n }\n\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n}\n\nexport async function getBridgeFeeOutput(\n sdkContext: SDKGlobalContext,\n info: KnownRoute_FromMeta & {\n swapRoute?: SwapRoute\n },\n): Promise<null | {\n address: string\n scriptPubKey: Uint8Array\n satsAmount: BigNumber\n}> {\n const btcPegInAddress = getBTCPegInAddress(\n getChainIdNetworkType(info.fromChain) === \"mainnet\"\n ? KnownChainId.Bitcoin.Mainnet\n : KnownChainId.Bitcoin.Testnet,\n info.toChain,\n )\n const transitStacksChain =\n getChainIdNetworkType(info.fromChain) === \"mainnet\"\n ? KnownChainId.Stacks.Mainnet\n : KnownChainId.Stacks.Testnet\n const transitStacksToken = await toCorrespondingStacksToken(\n sdkContext,\n info.fromChain,\n info.fromToken,\n )\n if (btcPegInAddress == null || transitStacksToken == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const step1FeeInfo = await getMeta2StacksFeeInfo(\n sdkContext,\n {\n fromChain: info.fromChain as KnownChainId.BRC20Chain,\n fromToken: info.fromToken as KnownTokenId.BRC20Token,\n toChain: transitStacksChain,\n toToken: transitStacksToken,\n },\n { swapRoute: info.swapRoute ?? null },\n )\n if (step1FeeInfo == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeInBTC = step1FeeInfo.fees.find(\n (f): f is TransferProphet_Fee_Fixed =>\n f.type === \"fixed\" && f.token === KnownTokenId.Bitcoin.BTC,\n )\n\n if (bridgeFeeInBTC == null) return null\n if (BigNumber.isZero(bridgeFeeInBTC.amount)) return null\n\n return {\n ...btcPegInAddress,\n satsAmount: BigNumber.from(\n bitcoinToSatoshi(BigNumber.toString(bridgeFeeInBTC.amount)),\n ),\n }\n}\n\nasync function bridgeFromBRC20_toStacks(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n KnownRoute_FromBRC20_ToStacks,\n): Promise<BridgeFromBRC20Output> {\n const swapRoute = info.swapRoute\n\n const pegInAddress = getMetaPegInAddress(info.fromChain, info.toChain)\n const toTokenContractInfo = await getStacksTokenContractInfo(\n sdkContext,\n info.toChain,\n info.toToken,\n )\n if (pegInAddress == null || toTokenContractInfo == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const createdOrder = await createBridgeOrder_MetaToStacks(sdkContext, {\n fromChain: info.fromChain,\n fromToken: info.fromToken,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toChain: info.toChain,\n toToken: info.toToken,\n toStacksAddress: info.toAddress,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: false,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function bridgeFromBRC20_toEVM(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n KnownRoute_FromBRC20_ToEVM,\n): Promise<BridgeFromBRC20Output> {\n const swapRoute = info.swapRoute\n\n const createdOrder = !isEVMAddress(info.toAddress)\n ? null\n : await createBridgeOrder_MetaToEVM(sdkContext, {\n ...info,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toEVMAddress: info.toAddress,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: false,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function bridgeFromBRC20_toBitcoin(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n KnownRoute_FromBRC20_ToBitcoin,\n): Promise<BridgeFromBRC20Output> {\n if (info.toAddressScriptPubKey == null) {\n throw new InvalidMethodParametersError(\n [\n SDK_NAME,\n `bridgeFromBRC20 (to ${_knownChainIdToErrorMessagePart(info.toChain)})`,\n ],\n [\n {\n name: \"toAddressScriptPubKey\",\n expected: \"Uint8Array\",\n received: \"undefined\",\n },\n ],\n )\n }\n\n const swapRoute = info.swapRoute\n const createdOrder = await createBridgeOrder_MetaToBitcoin(sdkContext, {\n ...info,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toBitcoinScriptPubKey: info.toAddressScriptPubKey,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: true,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function bridgeFromBRC20_toMeta(\n sdkContext: SDKGlobalContext,\n info: Omit<\n BridgeFromBRC20Input,\n \"fromChain\" | \"toChain\" | \"fromToken\" | \"toToken\"\n > &\n (KnownRoute_FromBRC20_ToBRC20 | KnownRoute_FromBRC20_ToRunes),\n): Promise<BridgeFromBRC20Output> {\n if (info.toAddressScriptPubKey == null) {\n throw new InvalidMethodParametersError(\n [\n SDK_NAME,\n `bridgeFromBRC20 (to ${_knownChainIdToErrorMessagePart(info.toChain)})`,\n ],\n [\n {\n name: \"toAddressScriptPubKey\",\n expected: \"Uint8Array\",\n received: \"undefined\",\n },\n ],\n )\n }\n\n const swapRoute = info.swapRoute\n const createdOrder = await createBridgeOrder_MetaToMeta(sdkContext, {\n ...info,\n fromBitcoinScriptPubKey: info.fromAddressScriptPubKey,\n toBitcoinScriptPubKey: info.toAddressScriptPubKey,\n swap:\n swapRoute == null\n ? undefined\n : {\n ...swapRoute,\n minimumAmountsToReceive: BigNumber.from(\n swapRoute.minimumAmountsToReceive,\n ),\n },\n })\n if (createdOrder == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const bridgeFeeOutput = await getBridgeFeeOutput(sdkContext, info)\n\n return broadcastBRC20Transaction(\n sdkContext,\n {\n ...info,\n withHardLinkageOutput: true,\n bridgeFeeOutput,\n swapRoute: info.swapRoute,\n extraOutputs: info.extraOutputs ?? [],\n },\n createdOrder,\n )\n}\n\nasync function broadcastBRC20Transaction(\n sdkContext: SDKGlobalContext,\n info: Omit<\n ConstructBRC20TransactionInput,\n \"validateBridgeOrder\" | \"orderData\" | \"pegInAddress\" | \"hardLinkageOutput\"\n > & {\n withHardLinkageOutput: boolean\n sendTransaction: BridgeFromBRC20Input[\"sendTransaction\"]\n },\n createdOrder: CreateBridgeOrderResult,\n): Promise<{\n txid: string\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n}> {\n const pegInAddress = getMetaPegInAddress(info.fromChain, info.toChain)\n if (pegInAddress == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n const route: KnownRoute_FromBRC20 = {\n fromChain: info.fromChain,\n fromToken: info.fromToken,\n toChain: info.toChain,\n toToken: info.toToken,\n } as any\n\n const tx = await constructBRC20Transaction(sdkContext, {\n ...info,\n ...route,\n validateBridgeOrder: async (btcTx, revealTx, extra) => {\n if (revealTx == null) {\n throw new UnsupportedBridgeRouteError(\n info.fromChain,\n info.toChain,\n info.fromToken,\n info.toToken,\n )\n }\n\n /**\n * due to contract limit, we are unable to validate this tx before the\n * commit tx be confirmed, so we will skip it and fix it in the future\n */\n void validateBridgeOrderFromMeta({\n chainId: info.fromChain,\n commitTx: btcTx,\n revealTx,\n terminatingStacksToken: createdOrder.tokenOutTrait,\n transferOutputIndex: extra.transferOutputIndex,\n bridgeFeeOutputIndex: extra.bridgeFeeOutputIndex,\n swapRoute: extra.swapRoute,\n })\n },\n orderData: createdOrder.data,\n pegInAddress,\n hardLinkageOutput: info.withHardLinkageOutput\n ? ((await getBitcoinHardLinkageAddress(info.fromChain, info.toChain)) ??\n null)\n : null,\n })\n\n const { txid: apiBroadcastedTxId } = await broadcastRevealableTransaction(\n sdkContext,\n {\n fromChain: info.fromChain,\n transactionHex: `0x${tx.hex}`,\n orderData: createdOrder.data,\n orderOutputIndex: tx.revealOutput.index,\n orderOutputSatsAmount: tx.revealOutput.satsAmount,\n pegInAddress: pegInAddress,\n },\n )\n\n const { txid: delegateBroadcastedTxId } = await info.sendTransaction({\n hex: tx.hex,\n pegInOrderOutput: {\n index: tx.revealOutput.index,\n amount: tx.revealOutput.satsAmount,\n orderData: createdOrder.data,\n },\n })\n\n if (apiBroadcastedTxId !== delegateBroadcastedTxId) {\n console.warn(\n \"[bro-sdk] Transaction id broadcasted by API and delegatee are different:\",\n `API: ${apiBroadcastedTxId}, `,\n `Delegatee: ${delegateBroadcastedTxId}`,\n )\n }\n\n return {\n txid: delegateBroadcastedTxId,\n extraOutputs: tx.extraOutputs,\n }\n}\n\ntype ConstructBRC20TransactionInput = PrepareBRC20TransactionInput & {\n swapRoute:\n | undefined\n | SwapRouteViaALEX_WithMinimumAmountsToReceive_Public\n | SwapRouteViaEVMDexAggregator_WithMinimumAmountsToReceive_Public\n signPsbt: BridgeFromBRC20Input[\"signPsbt\"]\n pegInAddress: BitcoinAddress\n validateBridgeOrder: (\n pegInTx: Uint8Array,\n revealTx: undefined | Uint8Array,\n info: {\n transferOutputIndex: number\n bridgeFeeOutputIndex: undefined | number\n swapRoute: undefined | SwapRouteViaALEX | SwapRouteViaEVMDexAggregator\n },\n ) => Promise<void>\n}\nasync function constructBRC20Transaction(\n sdkContext: SDKGlobalContext,\n info: ConstructBRC20TransactionInput,\n): Promise<{\n hex: string\n revealOutput: {\n index: number\n satsAmount: bigint\n }\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n}> {\n const txOptions = await prepareBRC20Transaction(sdkContext, info)\n\n const recipients =\n txOptions.changeAmount > 0n\n ? txOptions.recipients.concat({\n addressScriptPubKey: info.networkFeeChangeAddressScriptPubKey,\n satsAmount: txOptions.changeAmount,\n })\n : txOptions.recipients\n\n const tx = createTransaction(\n txOptions.inputs,\n recipients,\n txOptions.opReturnScripts ?? [],\n )\n\n const { psbt } = await info.signPsbt({\n psbt: tx.toPSBT(),\n signInscriptionInputs: [0],\n signBitcoinInputs: range(1, tx.inputsLength),\n })\n\n const signedTx = btc.Transaction.fromPSBT(psbt, {\n allowUnknownInputs: true,\n allowUnknownOutputs: true,\n })\n if (!signedTx.isFinal) {\n signedTx.finalize()\n }\n\n const revealTx = await createRevealTx(sdkContext, {\n fromChain: info.fromChain,\n txId: signedTx.id,\n vout: txOptions.revealOutput.index,\n satsAmount: txOptions.revealOutput.satsAmount,\n orderData: info.orderData,\n pegInAddress: info.pegInAddress,\n })\n\n await info\n .validateBridgeOrder(signedTx.extract(), decodeHex(revealTx.txHex), {\n transferOutputIndex: txOptions.transferOutput.index,\n bridgeFeeOutputIndex: txOptions.bridgeFeeOutput?.index,\n swapRoute: info.swapRoute,\n })\n .catch(err => {\n if (sdkContext.brc20.ignoreValidateResult) {\n console.error(\n \"Bridge tx validation failed, but ignoreValidateResult is true, so we ignore the error\",\n err,\n )\n } else {\n throw new BridgeValidateFailedError(err)\n }\n })\n\n return {\n hex: signedTx.hex,\n revealOutput: txOptions.revealOutput,\n extraOutputs: txOptions.extraOutputs,\n }\n}\n\nexport type PrepareBRC20TransactionInput = KnownRoute_FromBRC20 & {\n fromAddressScriptPubKey: BridgeFromBRC20Input[\"fromAddressScriptPubKey\"]\n fromAddress: BridgeFromBRC20Input[\"fromAddress\"]\n toAddress: BridgeFromBRC20Input[\"toAddress\"]\n inputInscriptionUTXO: BridgeFromBRC20Input[\"inputInscriptionUTXO\"]\n\n networkFeeRate: BridgeFromBRC20Input[\"networkFeeRate\"]\n networkFeeChangeAddress: string\n networkFeeChangeAddressScriptPubKey: Uint8Array\n reselectSpendableNetworkFeeUTXOs: BridgeFromBRC20Input[\"reselectSpendableNetworkFeeUTXOs\"]\n\n pegInAddress: BitcoinAddress\n orderData: Uint8Array\n bridgeFeeOutput: null | {\n address: string\n scriptPubKey: Uint8Array\n satsAmount: BigNumber\n }\n hardLinkageOutput: null | BitcoinAddress\n extraOutputs: {\n address: BitcoinAddress\n satsAmount: bigint\n }[]\n}\n/**\n * Bitcoin Tx Structure:\n *\n * * Inputs: ...\n * * Outputs:\n * * Peg-in BRC-20 tokens\n * * Peg-in order data\n * * Bridge fee (optional)\n * * Hard linkage (optional)\n * * ...extra outputs\n * * BTC change (optional)\n *\n * (with bridge fee example tx) https://mempool.space/testnet/tx/e127a2d3c343675a1cde8ca8d10ae5621b40d309ce44b4f45bedc10499f8d596\n * (with hard linkage example tx) https://mempool.space/tx/51ff0b2de15cb6e9df0685458faf9b13d761b6e5991496b89c53641d27a8c9da#vin=1\n */\nexport async function prepareBRC20Transaction(\n sdkContext: Pick<SDKGlobalContext, \"backendAPI\">,\n info: PrepareBRC20TransactionInput,\n): Promise<\n BitcoinTransactionPrepareResult & {\n bitcoinNetwork: typeof btc.NETWORK\n transferOutput: {\n index: number\n }\n revealOutput: {\n index: number\n satsAmount: bigint\n }\n bridgeFeeOutput?: {\n index: number\n satsAmount: bigint\n }\n hardLinkageOutput?: {\n index: number\n satsAmount: bigint\n }\n extraOutputs: {\n index: number\n satsAmount: bigint\n }[]\n }\n> {\n const bitcoinNetwork =\n getChainIdNetworkType(info.fromChain) === \"mainnet\"\n ? btc.NETWORK\n : btc.TEST_NETWORK\n\n const pegInOrderRecipient = await createBitcoinPegInRecipients(sdkContext, {\n fromChain: info.fromChain,\n fromToken: info.fromToken,\n toChain: info.toChain,\n toToken: info.toToken,\n fromAddress: {\n address: info.fromAddress,\n scriptPubKey: info.fromAddressScriptPubKey,\n },\n toAddress: info.toAddress,\n orderData: info.orderData,\n feeRate: info.networkFeeRate,\n })\n\n const result = await prepareTransaction({\n pinnedUTXOs: [info.inputInscriptionUTXO],\n recipients: [\n {\n addressScriptPubKey: info.pegInAddress.scriptPubKey,\n satsAmount: info.inputInscriptionUTXO.amount,\n },\n {\n addressScriptPubKey: pegInOrderRecipient.scriptPubKey,\n satsAmount: pegInOrderRecipient.satsAmount,\n },\n ...(info.bridgeFeeOutput == null\n ? []\n : [\n {\n addressScriptPubKey: info.pegInAddress.scriptPubKey,\n satsAmount: BigNumber.toBigInt(\n { roundingMode: BigNumber.roundUp },\n info.bridgeFeeOutput.satsAmount,\n ),\n },\n ]),\n ...(info.hardLinkageOutput == null\n ? []\n : [\n {\n addressScriptPubKey: info.hardLinkageOutput.scriptPubKey,\n satsAmount: BITCOIN_OUTPUT_MINIMUM_AMOUNT,\n },\n ]),\n ...info.extraOutputs.map(o => ({\n addressScriptPubKey: o.address.scriptPubKey,\n satsAmount: o.satsAmount,\n })),\n ],\n changeAddressScriptPubKey: info.networkFeeChangeAddressScriptPubKey,\n feeRate: info.networkFeeRate,\n reselectSpendableUTXOs: reselectSpendableUTXOsFactory(\n info.reselectSpendableNetworkFeeUTXOs,\n ),\n })\n\n const pegInBRC20TokensCausedOffset = 1\n const pegInOrderDataCausedOffset = pegInBRC20TokensCausedOffset + 1\n const bridgeFeeCausedOffset =\n pegInOrderDataCausedOffset + (info.bridgeFeeOutput == null ? 0 : 1)\n const hardLinkageCausedOffset =\n bridgeFeeCausedOffset + (info.hardLinkageOutput == null ? 0 : 1)\n const extraOutputsStartOffset = hardLinkageCausedOffset\n\n return {\n ...result,\n bitcoinNetwork,\n transferOutput: {\n index: pegInBRC20TokensCausedOffset - 1,\n },\n revealOutput: {\n index: pegInOrderDataCausedOffset - 1,\n satsAmount: pegInOrderRecipient.satsAmount,\n },\n bridgeFeeOutput:\n info.bridgeFeeOutput == null\n ? undefined\n : {\n index: bridgeFeeCausedOffset - 1,\n satsAmount: bitcoinToSatoshi(\n BigNumber.toString(info.bridgeFeeOutput.satsAmount),\n ),\n },\n hardLinkageOutput:\n info.hardLinkageOutput == null\n ? undefined\n : {\n index: hardLinkageCausedOffset - 1,\n satsAmount: BITCOIN_OUTPUT_MINIMUM_AMOUNT,\n },\n extraOutputs: info.extraOutputs.map((o, i) => ({\n index: extraOutputsStartOffset + i,\n satsAmount: o.satsAmount,\n })),\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getALEXSwapParametersImpl } from './chunk-
|
|
2
|
-
import { getEvm2StacksFeeInfo } from './chunk-
|
|
1
|
+
import { getALEXSwapParametersImpl } from './chunk-DIEXMED5.mjs';
|
|
2
|
+
import { getEvm2StacksFeeInfo } from './chunk-ICB75WPH.mjs';
|
|
3
3
|
|
|
4
4
|
// src/evmUtils/swapHelpers.ts
|
|
5
5
|
async function getALEXSwapParameters_FromEVM(sdkContext, info) {
|
|
@@ -15,5 +15,5 @@ async function getALEXSwapParameters_FromEVM(sdkContext, info) {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export { getALEXSwapParameters_FromEVM };
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
19
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-3FJWFDVX.mjs.map
|
|
19
|
+
//# sourceMappingURL=chunk-3FJWFDVX.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/evmUtils/swapHelpers.ts"],"names":[],"mappings":";;;;AASA,eAAsB,6BAAA,CACpB,YACA,IAGyC,EAAA;AACzC,EAAA,OAAO,0BAA0B,UAAY,EAAA;AAAA,IAC3C,GAAG,IAAA;AAAA,IACH,iCAAA,EAAmC,CACjC,GAAA,KAAA,oBAAA,CAAqB,UAAY,EAAA;AAAA,MAC/B,WAAW,IAAK,CAAA,SAAA;AAAA,MAChB,WAAW,IAAK,CAAA,SAAA;AAAA,MAChB,SAAS,GAAI,CAAA,kBAAA;AAAA,MACb,SAAS,GAAI,CAAA;AAAA,KACd;AAAA,GACJ,CAAA;AACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/evmUtils/swapHelpers.ts"],"names":[],"mappings":";;;;AASA,eAAsB,6BAAA,CACpB,YACA,IAGyC,EAAA;AACzC,EAAA,OAAO,0BAA0B,UAAY,EAAA;AAAA,IAC3C,GAAG,IAAA;AAAA,IACH,iCAAA,EAAmC,CACjC,GAAA,KAAA,oBAAA,CAAqB,UAAY,EAAA;AAAA,MAC/B,WAAW,IAAK,CAAA,SAAA;AAAA,MAChB,WAAW,IAAK,CAAA,SAAA;AAAA,MAChB,SAAS,GAAI,CAAA,kBAAA;AAAA,MACb,SAAS,GAAI,CAAA;AAAA,KACd;AAAA,GACJ,CAAA;AACH","file":"chunk-3FJWFDVX.mjs","sourcesContent":["import { BigNumber } from \"../utils/BigNumber\"\nimport { KnownRoute_FromEVM } from \"../utils/buildSupportedRoutes\"\nimport {\n ALEXSwapParameters,\n getALEXSwapParametersImpl,\n} from \"../utils/swapHelpers/alexSwapParametersHelpers\"\nimport { SDKGlobalContext } from \"../sdkUtils/types.internal\"\nimport { getEvm2StacksFeeInfo } from \"./peggingHelpers\"\n\nexport async function getALEXSwapParameters_FromEVM(\n sdkContext: SDKGlobalContext,\n info: KnownRoute_FromEVM & {\n amount: BigNumber\n },\n): Promise<undefined | ALEXSwapParameters> {\n return getALEXSwapParametersImpl(sdkContext, {\n ...info,\n getInitialToStacksTransferProphet: ctx =>\n getEvm2StacksFeeInfo(sdkContext, {\n fromChain: info.fromChain as any,\n fromToken: info.fromToken,\n toChain: ctx.transitStacksChain,\n toToken: ctx.firstStepToStacksToken,\n }),\n })\n}\n"]}
|