@swapkit/toolboxes 4.15.9 → 4.15.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/src/index.cjs +1 -1
  2. package/dist/src/index.js +1 -1
  3. package/dist/src/utxo/index.cjs +1 -1
  4. package/dist/src/utxo/index.js +1 -1
  5. package/dist/types/__tests__/helpers.d.ts +0 -1
  6. package/dist/types/aptos/index.d.ts +0 -1
  7. package/dist/types/aptos/toolbox.d.ts +0 -1
  8. package/dist/types/aptos/types.d.ts +0 -1
  9. package/dist/types/cardano/index.d.ts +0 -1
  10. package/dist/types/cardano/toolbox.d.ts +0 -1
  11. package/dist/types/cardano/types.d.ts +0 -1
  12. package/dist/types/cosmos/index.d.ts +0 -1
  13. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts +0 -1
  14. package/dist/types/cosmos/thorchainUtils/index.d.ts +0 -1
  15. package/dist/types/cosmos/thorchainUtils/messages.d.ts +6 -7
  16. package/dist/types/cosmos/thorchainUtils/registry.d.ts +2 -3
  17. package/dist/types/cosmos/thorchainUtils/types/MsgCompiled.d.ts +0 -1
  18. package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts +0 -1
  19. package/dist/types/cosmos/thorchainUtils/types/index.d.ts +0 -1
  20. package/dist/types/cosmos/toolbox/cosmos.d.ts +2 -3
  21. package/dist/types/cosmos/toolbox/index.d.ts +0 -1
  22. package/dist/types/cosmos/toolbox/thorchain.d.ts +7 -8
  23. package/dist/types/cosmos/types.d.ts +0 -1
  24. package/dist/types/cosmos/util.d.ts +3 -4
  25. package/dist/types/evm/api.d.ts +0 -1
  26. package/dist/types/evm/contracts/eth/multicall.d.ts +0 -1
  27. package/dist/types/evm/contracts/op/gasOracle.d.ts +0 -1
  28. package/dist/types/evm/helpers.d.ts +1 -2
  29. package/dist/types/evm/index.d.ts +0 -1
  30. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +0 -1
  31. package/dist/types/evm/toolbox/evm.d.ts +0 -1
  32. package/dist/types/evm/toolbox/index.d.ts +0 -1
  33. package/dist/types/evm/toolbox/op.d.ts +0 -1
  34. package/dist/types/evm/types.d.ts +0 -1
  35. package/dist/types/hypercore/helpers.d.ts +0 -1
  36. package/dist/types/hypercore/index.d.ts +0 -1
  37. package/dist/types/hypercore/signing.d.ts +0 -1
  38. package/dist/types/hypercore/toolbox.d.ts +0 -1
  39. package/dist/types/hypercore/types.d.ts +0 -1
  40. package/dist/types/index.d.ts +0 -1
  41. package/dist/types/near/helpers/core.d.ts +0 -1
  42. package/dist/types/near/helpers/gasEstimation.d.ts +0 -1
  43. package/dist/types/near/helpers/nep141.d.ts +0 -1
  44. package/dist/types/near/index.d.ts +0 -1
  45. package/dist/types/near/toolbox.d.ts +0 -1
  46. package/dist/types/near/types/contract.d.ts +0 -1
  47. package/dist/types/near/types/index.d.ts +0 -1
  48. package/dist/types/near/types/nep141.d.ts +0 -1
  49. package/dist/types/near/types/toolbox.d.ts +0 -1
  50. package/dist/types/near/types.d.ts +0 -1
  51. package/dist/types/radix/index.d.ts +0 -1
  52. package/dist/types/ripple/currency.d.ts +0 -1
  53. package/dist/types/ripple/index.d.ts +0 -1
  54. package/dist/types/ripple/tokens.d.ts +0 -1
  55. package/dist/types/solana/index.d.ts +0 -1
  56. package/dist/types/solana/toolbox.d.ts +0 -1
  57. package/dist/types/starknet/index.d.ts +0 -1
  58. package/dist/types/starknet/toolbox.d.ts +0 -1
  59. package/dist/types/starknet/types.d.ts +0 -1
  60. package/dist/types/stellar/index.d.ts +0 -1
  61. package/dist/types/stellar/toolbox.d.ts +0 -1
  62. package/dist/types/stellar/types.d.ts +0 -1
  63. package/dist/types/substrate/balance.d.ts +0 -1
  64. package/dist/types/substrate/index.d.ts +0 -1
  65. package/dist/types/substrate/substrate.d.ts +0 -1
  66. package/dist/types/substrate/types.d.ts +0 -1
  67. package/dist/types/sui/index.d.ts +0 -1
  68. package/dist/types/sui/toolbox.d.ts +0 -1
  69. package/dist/types/sui/types.d.ts +0 -1
  70. package/dist/types/ton/index.d.ts +0 -1
  71. package/dist/types/ton/toolbox.d.ts +0 -1
  72. package/dist/types/ton/types.d.ts +0 -1
  73. package/dist/types/tron/helpers/proto.d.ts +0 -1
  74. package/dist/types/tron/helpers/trongrid.d.ts +0 -1
  75. package/dist/types/tron/helpers/utils.d.ts +0 -1
  76. package/dist/types/tron/index.d.ts +0 -1
  77. package/dist/types/tron/toolbox.d.ts +0 -1
  78. package/dist/types/tron/types.d.ts +0 -1
  79. package/dist/types/types.d.ts +0 -1
  80. package/dist/types/utils.d.ts +0 -1
  81. package/dist/types/utxo/hdWallet.d.ts +0 -1
  82. package/dist/types/utxo/helpers/api.d.ts +0 -1
  83. package/dist/types/utxo/helpers/bchaddrjs.d.ts +1 -2
  84. package/dist/types/utxo/helpers/cashaddr.d.ts +0 -1
  85. package/dist/types/utxo/helpers/coinselect.d.ts +0 -1
  86. package/dist/types/utxo/helpers/index.d.ts +0 -1
  87. package/dist/types/utxo/helpers/txSize.d.ts +0 -1
  88. package/dist/types/utxo/helpers/xpubDerivation.d.ts +0 -1
  89. package/dist/types/utxo/index.d.ts +0 -1
  90. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +3 -3
  91. package/dist/types/utxo/toolbox/index.d.ts +0 -1
  92. package/dist/types/utxo/toolbox/params.d.ts +0 -1
  93. package/dist/types/utxo/toolbox/utxo.d.ts +4 -4
  94. package/dist/types/utxo/toolbox/validators.d.ts +0 -1
  95. package/dist/types/utxo/toolbox/zcash.d.ts +1 -2
  96. package/dist/types/utxo/types.d.ts +0 -1
  97. package/package.json +77 -77
  98. package/dist/types/__tests__/helpers.d.ts.map +0 -1
  99. package/dist/types/aptos/index.d.ts.map +0 -1
  100. package/dist/types/aptos/toolbox.d.ts.map +0 -1
  101. package/dist/types/aptos/types.d.ts.map +0 -1
  102. package/dist/types/cardano/index.d.ts.map +0 -1
  103. package/dist/types/cardano/toolbox.d.ts.map +0 -1
  104. package/dist/types/cardano/types.d.ts.map +0 -1
  105. package/dist/types/cosmos/index.d.ts.map +0 -1
  106. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +0 -1
  107. package/dist/types/cosmos/thorchainUtils/index.d.ts.map +0 -1
  108. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +0 -1
  109. package/dist/types/cosmos/thorchainUtils/registry.d.ts.map +0 -1
  110. package/dist/types/cosmos/thorchainUtils/types/MsgCompiled.d.ts.map +0 -1
  111. package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts.map +0 -1
  112. package/dist/types/cosmos/thorchainUtils/types/index.d.ts.map +0 -1
  113. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +0 -1
  114. package/dist/types/cosmos/toolbox/index.d.ts.map +0 -1
  115. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +0 -1
  116. package/dist/types/cosmos/types.d.ts.map +0 -1
  117. package/dist/types/cosmos/util.d.ts.map +0 -1
  118. package/dist/types/evm/api.d.ts.map +0 -1
  119. package/dist/types/evm/contracts/eth/multicall.d.ts.map +0 -1
  120. package/dist/types/evm/contracts/op/gasOracle.d.ts.map +0 -1
  121. package/dist/types/evm/helpers.d.ts.map +0 -1
  122. package/dist/types/evm/index.d.ts.map +0 -1
  123. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +0 -1
  124. package/dist/types/evm/toolbox/evm.d.ts.map +0 -1
  125. package/dist/types/evm/toolbox/index.d.ts.map +0 -1
  126. package/dist/types/evm/toolbox/op.d.ts.map +0 -1
  127. package/dist/types/evm/types.d.ts.map +0 -1
  128. package/dist/types/hypercore/helpers.d.ts.map +0 -1
  129. package/dist/types/hypercore/index.d.ts.map +0 -1
  130. package/dist/types/hypercore/signing.d.ts.map +0 -1
  131. package/dist/types/hypercore/toolbox.d.ts.map +0 -1
  132. package/dist/types/hypercore/types.d.ts.map +0 -1
  133. package/dist/types/index.d.ts.map +0 -1
  134. package/dist/types/near/helpers/core.d.ts.map +0 -1
  135. package/dist/types/near/helpers/gasEstimation.d.ts.map +0 -1
  136. package/dist/types/near/helpers/nep141.d.ts.map +0 -1
  137. package/dist/types/near/index.d.ts.map +0 -1
  138. package/dist/types/near/toolbox.d.ts.map +0 -1
  139. package/dist/types/near/types/contract.d.ts.map +0 -1
  140. package/dist/types/near/types/index.d.ts.map +0 -1
  141. package/dist/types/near/types/nep141.d.ts.map +0 -1
  142. package/dist/types/near/types/toolbox.d.ts.map +0 -1
  143. package/dist/types/near/types.d.ts.map +0 -1
  144. package/dist/types/radix/index.d.ts.map +0 -1
  145. package/dist/types/ripple/currency.d.ts.map +0 -1
  146. package/dist/types/ripple/index.d.ts.map +0 -1
  147. package/dist/types/ripple/tokens.d.ts.map +0 -1
  148. package/dist/types/solana/index.d.ts.map +0 -1
  149. package/dist/types/solana/toolbox.d.ts.map +0 -1
  150. package/dist/types/starknet/index.d.ts.map +0 -1
  151. package/dist/types/starknet/toolbox.d.ts.map +0 -1
  152. package/dist/types/starknet/types.d.ts.map +0 -1
  153. package/dist/types/stellar/index.d.ts.map +0 -1
  154. package/dist/types/stellar/toolbox.d.ts.map +0 -1
  155. package/dist/types/stellar/types.d.ts.map +0 -1
  156. package/dist/types/substrate/balance.d.ts.map +0 -1
  157. package/dist/types/substrate/index.d.ts.map +0 -1
  158. package/dist/types/substrate/substrate.d.ts.map +0 -1
  159. package/dist/types/substrate/types.d.ts.map +0 -1
  160. package/dist/types/sui/index.d.ts.map +0 -1
  161. package/dist/types/sui/toolbox.d.ts.map +0 -1
  162. package/dist/types/sui/types.d.ts.map +0 -1
  163. package/dist/types/ton/index.d.ts.map +0 -1
  164. package/dist/types/ton/toolbox.d.ts.map +0 -1
  165. package/dist/types/ton/types.d.ts.map +0 -1
  166. package/dist/types/tron/helpers/proto.d.ts.map +0 -1
  167. package/dist/types/tron/helpers/trongrid.d.ts.map +0 -1
  168. package/dist/types/tron/helpers/utils.d.ts.map +0 -1
  169. package/dist/types/tron/index.d.ts.map +0 -1
  170. package/dist/types/tron/toolbox.d.ts.map +0 -1
  171. package/dist/types/tron/types.d.ts.map +0 -1
  172. package/dist/types/types.d.ts.map +0 -1
  173. package/dist/types/utils.d.ts.map +0 -1
  174. package/dist/types/utxo/hdWallet.d.ts.map +0 -1
  175. package/dist/types/utxo/helpers/api.d.ts.map +0 -1
  176. package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +0 -1
  177. package/dist/types/utxo/helpers/cashaddr.d.ts.map +0 -1
  178. package/dist/types/utxo/helpers/coinselect.d.ts.map +0 -1
  179. package/dist/types/utxo/helpers/index.d.ts.map +0 -1
  180. package/dist/types/utxo/helpers/txSize.d.ts.map +0 -1
  181. package/dist/types/utxo/helpers/xpubDerivation.d.ts.map +0 -1
  182. package/dist/types/utxo/index.d.ts.map +0 -1
  183. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +0 -1
  184. package/dist/types/utxo/toolbox/index.d.ts.map +0 -1
  185. package/dist/types/utxo/toolbox/params.d.ts.map +0 -1
  186. package/dist/types/utxo/toolbox/utxo.d.ts.map +0 -1
  187. package/dist/types/utxo/toolbox/validators.d.ts.map +0 -1
  188. package/dist/types/utxo/toolbox/zcash.d.ts.map +0 -1
  189. package/dist/types/utxo/types.d.ts.map +0 -1
@@ -1 +1 @@
1
- var J0=Object.create;var{getPrototypeOf:Z0,defineProperty:CX,getOwnPropertyNames:M2,getOwnPropertyDescriptor:j0}=Object,D2=Object.prototype.hasOwnProperty;function C2(X){return this[X]}var Q0,G0,t0=(X,$,J)=>{var Z=X!=null&&typeof X==="object";if(Z){var j=$?Q0??=new WeakMap:G0??=new WeakMap,Q=j.get(X);if(Q)return Q}J=X!=null?J0(Z0(X)):{};let q=$||!X||!X.__esModule?CX(J,"default",{value:X,enumerable:!0}):J;for(let G of M2(X))if(!D2.call(q,G))CX(q,G,{get:C2.bind(X,G),enumerable:!0});if(Z)j.set(X,q);return q},Y0=(X)=>{var $=(N2??=new WeakMap).get(X),J;if($)return $;if($=CX({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function"){for(var Z of M2(X))if(!D2.call($,Z))CX($,Z,{get:C2.bind(X,Z),enumerable:!(J=j0(X,Z))||J.enumerable})}return N2.set(X,$),$},N2;var q0=(X)=>X;function L0(X,$){this[X]=q0.bind(null,$)}var z0=(X,$)=>{for(var J in $)CX(X,J,{get:$[J],enumerable:!0,configurable:!0,set:L0.bind($,J)})};var y=(X,$)=>()=>(X&&($=X(X=0)),$);function K(X,$){if(!Number.isInteger($)||$<0)throw RangeError(`${X} must be a non-negative integer, got: ${$}`)}function i({accountIndex:X,chain:$,derivationPath:J}){if(X!==void 0)K("accountIndex",X);let Z=[...J?.slice(0,3)??H2.NetworkDerivationPath[$].slice(0,3)];if(X!==void 0)Z[2]=X;return Z}function YX({accountIndex:X,change:$=!1,chain:J,derivationPath:Z,index:j}){return K("index",j),[...i({accountIndex:X,chain:J,derivationPath:Z}),Number($),j]}function JX(X){return X[2]??0}function O2({deriveAddress:X,getBalance:$,getUtxos:J}){async function Z(G){let{accountIndex:Y,count:z,startIndex:L=0,change:U=!1}=G;if(K("count",z),z<1)throw RangeError("count must be at least 1");K("startIndex",L);let B=[];for(let _=0;_<z;_++){let N=await X({accountIndex:Y,change:U,index:L+_});if(N)B.push(N)}return B}async function j(G){let{gapLimit:Y=20,change:z=!1}=G??{},L=[],U=0,B=0;while(U<Y){let _=await X({change:z,index:B});if(!_)break;if((await $(_.address)).some((F)=>F.getValue("number")>0))L.push(_),U=0;else U++;B++}return L}async function Q(G=20){let[Y,z]=await Promise.all([j({change:!1,gapLimit:G}),j({change:!0,gapLimit:G})]),L=[...Y,...z],U=await Promise.all(L.map(async(_)=>{let O=(await $(_.address)).reduce((F,$X)=>F+$X.getValue("number"),0);return{..._,balance:O}})),B=U.reduce((_,N)=>_+N.balance,0);return{addresses:U,total:B}}async function q(G=20){let[Y,z]=await Promise.all([j({change:!1,gapLimit:G}),j({change:!0,gapLimit:G})]),L=[...Y,...z];return(await Promise.all(L.map(async(B)=>{return(await J(B.address)).map((N)=>({...N,address:B.address,derivationIndex:B.index,isChange:B.change}))}))).flat()}return{deriveAddresses:Z,getAggregatedBalance:Q,getAggregatedUtxos:q,scanForAddresses:j}}var H2;var HX=y(()=>{H2=require("@swapkit/helpers")});function V2(){function X(){let $=Date.now(),J=iX||$;return iX=J,$>iX?$:J+1}return U0+X().toString(36)}function b2(X){return async function(J,Z=!0){let j=await T2.SwapKitApi.getChainBalance({address:J,chain:X,scamFilter:Z}),{baseDecimal:Q}=OX.getChainConfig(X),q=j.map(({identifier:Y,value:z,decimal:L})=>{return new OX.AssetValue({decimal:L||Q,identifier:Y,value:z})});if(!q.some((Y)=>Y.isGasAsset))return[OX.AssetValue.from({chain:X}),...q];return q}}var OX,T2,U0,iX=0;var sX=y(()=>{OX=require("@swapkit/helpers"),T2=require("@swapkit/helpers/api"),U0=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function W0({chain:X,txHash:$}){let J=`${TX(X)}/push/transaction`,Z=JSON.stringify({data:$});try{let j=await D.RequestClient.post(J,{body:Z,headers:{"Content-Type":"application/json"}});if(j.context.code!==200)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:j.context.error||"Transaction broadcast failed"});return j.data?.transaction_hash||$}catch(j){let Q=await D.getRPCUrl(X);if(Q){let q=JSON.stringify({id:V2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),G=await D.RequestClient.post(Q,{body:q,headers:{"Content-Type":"application/json"}});if(G.error)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:G.error?.message});if(G.result.includes('"code":-26'))throw new D.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return G.result}throw j}}function TX(X){return`https://api.blockchair.com/${B0(X)}`}function k2(X){switch(X){case D.Chain.Bitcoin:return 5;case D.Chain.Dogecoin:return 1e4;case D.Chain.Litecoin:return 1;case D.Chain.Zcash:return 1;default:return 2}}function B0(X){switch(X){case D.Chain.BitcoinCash:return"bitcoin-cash";case D.Chain.Litecoin:return"litecoin";case D.Chain.Dash:return"dash";case D.Chain.Dogecoin:return"dogecoin";case D.Chain.Zcash:return"zcash";case D.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function _0(X){try{let{feePerKb:$}=await D.RequestClient.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,k2(X))}catch{return k2(X)}}async function SX(X,$){let J=await D.RequestClient.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new D.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function f2({address:X,chain:$,apiKey:J}){if(!X)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await SX(`${TX($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function N0({address:X,chain:$,apiKey:J}){return(await f2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function F2({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await SX(`${TX(X)}/raw/transaction/${J}`,$))?.[J]?.raw_transaction||""}catch(Z){let j=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch raw transaction: ${j}`),""}}async function D0({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let j=(await SX(`${TX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!j)throw new D.SwapKitError("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Q,inputs:q,outputs:G}=j,Y=q.map((L)=>L.spending_sequence),z=Q.is_rbf===!0||Y.some((L)=>L<M0);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:q,isRBF:z,outputs:G,sequences:Y,size:Q.size,txid:Q.hash,weight:Q.weight}}async function C0({chain:X,address:$,apiKey:J,offset:Z=0,limit:j=30}){return(await SX(`${TX(X)}/outputs?q=recipient(${$}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${j}&offset=${Z}`,J)).map(({is_spent:Y,script_hex:z,block_id:L,transaction_hash:U,index:B,value:_,spending_signature_hex:N})=>({hash:U,index:B,is_confirmed:L!==-1,is_spent:Y,script_hex:z,txHex:N,value:_}))}function H0(X){return X.reduce(($,J)=>$+J.value,0)}function I2(X,$){let J=[...X].sort((Z,j)=>j.value-Z.value);if($){let Z=[],j=0;for(let Q of J)if(Z.push(Q),j+=Q.value,j>=$)break;return Z}return J}async function P2({chain:X,address:$,apiKey:J,targetValue:Z,accumulativeValue:j=0,offset:Q=0,limit:q=30}){if(!$)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let G=await C0({address:$,apiKey:J,chain:X,limit:q,offset:Q,targetValue:Z}),z=G.length<q,L=G.filter(({is_spent:F})=>!F),U=H0(L),B=j+U,_=Z&&B>=Z;if(z||_)return I2(L,Z);let N=await P2({accumulativeValue:B,address:$,apiKey:J,chain:X,limit:q,offset:Q+q,targetValue:Z}),O=[...L,...N];return I2(O,Z)}catch(G){let Y=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch unspent UTXOs: ${Y}`),[]}}async function O0({address:X,chain:$,apiKey:J,fetchTxHex:Z=!0,targetValue:j}){let Q=await P2({address:X,apiKey:J,chain:$,targetValue:j}),q=[];for(let{hash:G,index:Y,script_hex:z,value:L}of Q){let U;if(Z)U=await F2({apiKey:J,chain:$,txHash:G});q.push({address:X,hash:G,index:Y,txHex:U,value:L,witnessUtxo:{script:Buffer.from(z,"hex"),value:L}})}return q}function E(X){let $=D.SKConfig.get("apiKeys").blockchair||"";return D.warnOnce({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>W0({chain:X,txHash:J}),getAddressData:(J)=>f2({address:J,apiKey:$,chain:X}),getBalance:(J)=>N0({address:J,apiKey:$,chain:X}),getRawTx:(J)=>F2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>_0(X),getTransactionDetails:(J)=>D0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>O0({...J,apiKey:$,chain:X})}}function T0(X){return X}function V0(){return function($){switch($){case D.Chain.Bitcoin:return ZX.NETWORKS.bitcoin;case D.Chain.BitcoinCash:return ZX.NETWORKS.bitcoinCash;case D.Chain.Dash:return ZX.NETWORKS.dash;case D.Chain.Litecoin:return ZX.NETWORKS.litecoin;case D.Chain.Dogecoin:return ZX.NETWORKS.dogecoin;case D.Chain.Zcash:return ZX.NETWORKS.zcash;default:throw new D.SwapKitError("toolbox_utxo_not_supported",{chain:$})}}}var D,ZX,M0=4294967294;var E2=y(()=>{sX();D=require("@swapkit/helpers"),ZX=require("@swapkit/utxo-signer")});function I0(X,$,J){return p.encodeCashAddr({hash:J,prefix:X,type:b0[$]})}function f0(X){let $=p.decodeCashAddr(X),J=k0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var p,b0,k0,aX;var R2=y(()=>{p=require("@swapkit/utxo-signer"),b0={P2PKH:p.CashAddrType.P2PKH,P2SH:p.CashAddrType.P2SH},k0={[p.CashAddrType.P2PKH]:"P2PKH",[p.CashAddrType.P2SH]:"P2SH"};aX={decode:f0,encode:I0}});function X2(X){try{return KX(X),!0}catch{return!1}}function $2(X){return KX(X)?.network}function u(X){let $=KX(X);if($?.format==="legacy")return X;return E0($)}function VX(X){let $=KX(X);return R0($)}function KX(X){try{let $=F0(X);if($)return $}catch{}try{let $=P0(X);if($)return $}catch{}throw new tX.SwapKitError("toolbox_utxo_invalid_address",{address:X})}function F0(X){try{let $=w2.decode(X);if($.length!==21)throw new tX.SwapKitError("toolbox_utxo_invalid_address",{address:X});let J=$[0],Z=Array.prototype.slice.call($,1);switch(J){case jX.legacy.mainnet.p2pkh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2pkh"};case jX.legacy.mainnet.p2sh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2sh"};case jX.legacy.testnet.p2pkh:return{format:"legacy",hash:Z,network:"testnet",type:"p2pkh"};case jX.legacy.testnet.p2sh:return{format:"legacy",hash:Z,network:"testnet",type:"p2sh"};case jX.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2pkh"};case jX.bitpay.mainnet.p2sh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function P0(X){if(X.indexOf(":")!==-1)try{return y2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return y2(`${J}:${X}`)}catch{}}return}function y2(X){try{let{hash:$,prefix:J,type:Z}=aX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:Z==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function E0(X){let $=jX.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),w2.encode(J)}function R0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",Z=new Uint8Array(X.hash);return aX.encode($,J,Z)}var v2,A2,tX,w2,eX,jX;var S2=y(()=>{R2();v2=require("@noble/hashes/sha2.js"),A2=require("@scure/base"),tX=require("@swapkit/helpers"),w2=A2.createBase58check(v2.sha256);((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(eX||={});jX={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function A(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return m2.Script.encode(["RETURN",$])}var K2,m2,y0=1000,gX=10,lX=2,g2=10,v0=41,A0=107,xX,mX,bX,qX=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new K2.SwapKitError("toolbox_utxo_invalid_address",{address:X})},QX=({inputs:X,outputs:$,feeRate:J})=>{let Z=X[0]&&"address"in X[0]&&X[0].address?qX(X[0].address):"P2PKH",Q=(J?X.filter((z)=>z.value>=mX["type"in z&&z.type?z.type:"P2PKH"]*Math.ceil(J)):X).reduce((z,L)=>z+s(L),0),q=$?.reduce((z,L)=>z+kX(L),0)||bX[Z],G=gX+Q+q;return Z==="P2WPKH"?Math.ceil(G+lX/4):G},s=(X)=>{if("type"in X&&X.type)return mX[X.type];if("address"in X&&X.address)return mX[qX(X.address)];return v0+A0},kX=(X,$)=>{if(X?.script)return g2+X.script.length+(X.script.length>=74?2:1);if($)return bX[$];if("address"in X&&X.address)return bX[qX(X.address)];return bX.P2PKH};var J2=y(()=>{K2=require("@swapkit/helpers"),m2=require("@swapkit/utxo-signer");((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(xX||={});mX={["P2PKH"]:148,["P2WPKH"]:68},bX={["P2PKH"]:34,["P2WPKH"]:31}});function IX(X){switch(X){case l.Chain.Bitcoin:case l.Chain.BitcoinCash:return 550;case l.Chain.Dash:case l.Chain.Litecoin:return 5500;case l.Chain.Dogecoin:return 1e5;case l.Chain.Zcash:return 546;default:throw new l.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}function m({inputs:X,outputs:$,feeRate:J=1,chain:Z=l.Chain.Bitcoin,changeAddress:j=""}){let Q=X[0]&&"address"in X[0]&&X[0].address?qX(X[0].address):"P2PKH",q=X.filter((N)=>s(N)*J<=N.value),Y=Q==="P2WPKH"?Math.ceil(lX/4):0,z=gX+Y+$.reduce((N,O)=>N+kX(O),0),L=$.reduce((N,O)=>N+O.value,0),U=z*J,B=0,_=[];for(let N of q){let O=s(N),F=J*O;U+=F,B+=N.value,_.push(N);let $X=U+L;if(B<$X)continue;let dX=B-$X,NX=J*kX({address:j,value:0});if(dX>NX){let MX=NX+U,RX=B-(L+Math.ceil(MX));if(RX>Math.max(s({value:0})*J,IX(Z)))return{fee:Math.ceil(MX),inputs:_,outputs:$.concat({address:j,value:RX})}}return{fee:Math.ceil(U),inputs:_,outputs:$}}return{fee:Math.ceil(J*QX({inputs:X,outputs:$}))}}var l;var l2=y(()=>{J2();l=require("@swapkit/helpers")});var LX=y(()=>{E2();S2();l2();J2()});function GX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function a(X){let $=GX(X);return X2($)&&$2($)==="mainnet"}function zX(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let J=hX.Address(hX.ZCASH_NETWORK).decode(X);return J.type==="pkh"||J.type==="sh"}catch{return!1}}var hX;var fX=y(()=>{LX();hX=require("@swapkit/utxo-signer")});function Q2({address:X,chain:$}){return j2.match($).with(W.Chain.BitcoinCash,()=>a(X)).with(W.Chain.Zcash,()=>zX(X)).otherwise(()=>{try{return C.Address(v($)).decode(X),!0}catch{return!1}})}function v(X){return j2.match(X).with(W.Chain.Bitcoin,()=>C.NETWORKS.bitcoin).with(W.Chain.BitcoinCash,()=>C.NETWORKS.bitcoinCash).with(W.Chain.Dash,()=>C.NETWORKS.dash).with(W.Chain.Dogecoin,()=>C.NETWORKS.dogecoin).with(W.Chain.Litecoin,()=>C.NETWORKS.litecoin).with(W.Chain.Zcash,()=>C.NETWORKS.zcash).exhaustive()}function w0({phrase:X,derivationPath:$,network:J,seed:Z}){let j=Z??uX.mnemonicToSeedSync(X),q=Z2.HDKey.fromMasterSeed(j,J.bip32).derive($);if(!q.privateKey)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return q.privateKey}function x2(X){return h2.secp256k1.getPublicKey(X,!0)}function PX({publicKey:X,chain:$,network:J}){if($===W.Chain.BitcoinCash){let Q=C.p2pkh(X,J);if(!Q.hash)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return C.encodeCashAddr({hash:Q.hash,prefix:C.CashAddrPrefix.MAINNET,type:C.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let j=!FX.includes($)?C.p2wpkh(X,J):C.p2pkh(X,J);if(!j.address)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return j.address}function UX({phrase:X,derivationPath:$,chain:J,wif:Z,seed:j}){let Q=v(J);if(Z){let z=C.WIF(Q).decode(Z),L=x2(z);return{privateKey:z,publicKey:L}}if(!X)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let q=$||W.derivationPathToString(W.NetworkDerivationPath[J]),G=w0({derivationPath:q,network:Q,phrase:X,seed:j}),Y=x2(G);return{privateKey:G,publicKey:Y}}function S0(X,$){return C.WIF(v($)).encode(X)}function K0({phrase:X,derivationPath:$,chain:J,seed:Z}){let j=$.split("/");if(j.length<4)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${j.length}): ${$}`});let Q=v(J),q=Z??uX.mnemonicToSeedSync(X),G=Z2.HDKey.fromMasterSeed(q,Q.bip32),Y=j.slice(0,4).join("/");return G.derive(Y)}function e({inputs:X,outputs:$,chain:J,tx:Z,sender:j,compiledMemo:Q,enableRBF:q=!1}){let G=v(J),Y=!FX.includes(J),z=q?C.RBF_SEQUENCE:void 0,L=new Set;for(let U of X){let B=`${U.hash}:${U.index}`;if(L.has(B))throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(B);let _=typeof U.hash==="string"?t.hex.decode(U.hash):U.hash;if(Y&&U.witnessUtxo)Z.addInput({index:U.index,sequence:z,txid:_,witnessUtxo:{amount:BigInt(U.witnessUtxo.value),script:U.witnessUtxo.script}});else if(U.txHex)Z.addInput({index:U.index,nonWitnessUtxo:t.hex.decode(U.txHex),sequence:z,txid:_,...J===W.Chain.BitcoinCash?{sighashType:C.BCHSigHash.ALL}:{}});else throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let U of $){let B="address"in U&&U.address?U.address:j;if(J===W.Chain.BitcoinCash)B=u(B);if(U.script){if(Q)Z.addOutput({amount:0n,script:Q})}else Z.addOutputAddress(B,BigInt(U.value),G)}return{inputs:X,tx:Z}}async function WX(X){let $=await E(X).getSuggestedTxFee();return{[W.FeeOption.Average]:$,[W.FeeOption.Fast]:W.applyFeeMultiplier($,W.FeeOption.Fast),[W.FeeOption.Fastest]:W.applyFeeMultiplier($,W.FeeOption.Fastest)}}async function p2({assetValue:X,recipient:$,memo:J,sender:Z,fetchTxHex:j=!1}){let Q=X.chain,q=(await WX(Q))[W.FeeOption.Fastest],G=j||FX.includes(Q),Y=X.getBaseValue("number"),z=Math.ceil(Y+q*5000);return{inputs:await E(Q).getUtxos({address:Z,fetchTxHex:G,targetValue:z}),outputs:[{address:$,value:Y},...J?[{address:"",script:A(J),value:0}]:[]]}}async function u2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j,fetchTxHex:Q=!1,enableRBF:q=!1}){let G=X.chain,Y=J?A(J):null,z=await p2({assetValue:X,fetchTxHex:Q,memo:J,recipient:$,sender:j}),{inputs:L,outputs:U}=m({...z,chain:G,feeRate:Z});if(!(L&&U))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new C.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:_,tx:N}=e({chain:G,compiledMemo:Y,enableRBF:q,inputs:L,outputs:U,sender:j,tx:B});return{inputs:_,tx:N,utxos:z.inputs}}async function o2({assetValue:X,feeOptionKey:$=W.FeeOption.Fast,feeRate:J,memo:Z,sender:j,recipient:Q}){let q=X.chain,G=await p2({assetValue:X,memo:Z,recipient:Q,sender:j}),Y=J?Math.floor(J):(await WX(q))[$];return m({...G,chain:q,feeRate:Y})}function m0(X){return async function({from:J,memo:Z,feeRate:j,feeOptionKey:Q=W.FeeOption.Fast,recipients:q=1}){let G=await E(X).getAddressData(J),Y=j?Math.ceil(j):(await WX(X))[Q],z=G?.utxo.map((O)=>({...O,hash:"",type:"P2PKH"})).filter((O)=>O.value>Math.max(IX(X),s(O)*Y));if(!z?.length)return W.AssetValue.from({chain:X});let L=BigInt(z.reduce((O,F)=>O+F.value,0)),U=W.AssetValue.from({chain:X,value:L}),B=typeof q==="number"?Array.from({length:q},()=>({address:J,value:0})):q;if(Z)B.push({address:J,script:A(Z),value:0});let _=QX({inputs:z,outputs:B}),N=W.AssetValue.from({chain:X,value:BigInt(_*Y)});return U.sub(N)}}function g0(X){return async function(J){let{fee:Z}=await o2(J);return W.AssetValue.from({chain:X,value:W.SwapKitNumber.fromBigInt(BigInt(Z),8).getValue("string")})}}function l0({chain:X,phrase:$,derivationPath:J,seed:Z}){let j=v(X),{privateKey:Q,publicKey:q}=UX({chain:X,derivationPath:J,phrase:$,seed:Z}),G=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];return{getAddress:()=>PX({chain:X,network:j,publicKey:q}),privateKey:Q,publicKey:q,signTransaction:(Y)=>{return Y.sign(Q,G),Y}}}function x0(X,$){return async function({memo:Z,recipient:j,feeOptionKey:Q,feeRate:q,assetValue:G,enableRBF:Y=!1}){let z=$?.getAddress();if(!($&&z))throw new W.SwapKitError("toolbox_utxo_no_signer");if(!j)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});W.warnOnce({condition:Y&&!pX.includes(X),id:`rbf_not_supported_${X}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${X}. Transaction will be created without RBF signaling.`});let L=Y&&pX.includes(X),U=q||(await WX(X))[Q||W.FeeOption.Fast],{tx:B}=await u2({assetValue:G,enableRBF:L,feeRate:U,memo:Z,recipient:j,sender:z});return $.signTransaction(B),B.finalize(),E(X).broadcastTx(t.hex.encode(B.extract()))}}function G2(X){return($)=>Q2({address:$,chain:X})}function Y2(X){let $=v(X);return function(Z){if(!Z)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return PX({chain:X,network:$,publicKey:Z.publicKey})}}function XX({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,Z="index"in $?$.index||0:0,j=J?uX.mnemonicToSeedSync(J):void 0,Q="derivationPath"in $&&$.derivationPath?$.derivationPath:W.updateDerivationPath(W.NetworkDerivationPath[X],{index:Z}),q=W.derivationPathToString(Q),G=J?l0({chain:X,derivationPath:q,phrase:J,seed:j}):void 0,Y="signer"in $?$.signer:void 0,z=J?UX({chain:X,derivationPath:q,phrase:J,seed:j}):void 0;function L(){if(G)return Promise.resolve(G.getAddress());if(Y)return Y.getAddress();return Promise.resolve(void 0)}function U(M){if(!J)return;let H=i({accountIndex:M,chain:X,derivationPath:Q});return K0({chain:X,derivationPath:W.derivationPathToString(H),phrase:J,seed:j})}let B=U();function _(){if(!B)return;return B.publicExtendedKey}function N({accountIndex:M}={}){let H=M===void 0?B:U(M);if(!H)return;let T=i({accountIndex:M,chain:X,derivationPath:Q});return{accountIndex:JX(T),path:W.derivationPathToString(T),xpub:H.publicExtendedKey}}function O({accountIndex:M,index:H,change:T=!1}){let b=M===void 0?B:U(M);if(!b)return;let V=YX({accountIndex:M,chain:X,change:T,derivationPath:Q,index:H}),w=v(X),g=b.deriveChild(Number(T)).deriveChild(H);if(!g.publicKey)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let S=PX({chain:X,network:w,publicKey:g.publicKey}),c=t.hex.encode(g.publicKey);return{accountIndex:JX(V),address:S,change:T,index:H,path:W.derivationPathToString(V),pubkey:c}}async function F(M){if(!pX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let H=await E(X).getTransactionDetails(M);return{canReplace:H.isRBF&&!H.confirmed,confirmed:H.confirmed,enabled:H.isRBF,fee:H.fee,sequences:H.sequences,supported:!0}}async function $X({txid:M,newFeeRate:H,recipient:T,memo:b}){if(!pX.includes(X))throw new W.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:X});let V=await E(X).getTransactionDetails(M);if(!V.isRBF)throw new W.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:M});if(V.confirmed)throw new W.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:V.blockId,txid:M});let w=V.inputs.reduce((R,n)=>R+n.value,0),S=V.outputs.find((R)=>R.recipient===T)?.value||0;if(S===0)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let c=await Promise.all(V.inputs.map(async(R)=>{let n=await E(X).getRawTx(R.transaction_hash);return{hash:R.transaction_hash,index:R.index,txHex:n,value:R.value,witnessUtxo:void 0}})),yX=b?A(b):null,rX=QX({feeRate:H,inputs:c.map((R)=>({...R,type:"P2WPKH"})),outputs:[{address:T,value:S}]}),h=Math.ceil(rX*H);if(h<=V.fee)throw new W.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:h,originalFee:V.fee});let DX=h-V.fee,d=S-DX;if(d<=0)throw new W.SwapKitError("toolbox_utxo_rbf_insufficient_change");let vX=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),AX=[{address:T,value:d},...b?[{address:"",script:A(b),value:0}]:[]],wX=w-d-h,r=await L();if(wX>IX(X)&&r)AX.push({address:r,value:wX});return e({chain:X,compiledMemo:yX,inputs:c,outputs:AX,sender:r||T,tx:vX}),{feeDelta:DX,newFee:h,originalFee:V.fee,tx:vX}}async function dX({txid:M,newFeeRate:H,recipient:T,memo:b}){if(!G)throw new W.SwapKitError("toolbox_utxo_no_signer");let{tx:V,originalFee:w,newFee:g}=await $X({memo:b,newFeeRate:H,recipient:T,txid:M});G.signTransaction(V),V.finalize();let S=await E(X).broadcastTx(t.hex.encode(V.extract()));return{newFee:g,originalFee:w,txid:S}}function NX({accountIndex:M,index:H,change:T=!1}){K("index",H);let b=M===void 0?B:U(M);if(!b)return;return b.deriveChild(Number(T)).deriveChild(H).privateKey||void 0}function MX({tx:M,inputDerivations:H}){if(!B)throw new W.SwapKitError("toolbox_utxo_no_signer");let T=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];for(let b=0;b<H.length;b++){let V=H[b];if(!V)continue;let{derivationIndex:w,isChange:g}=V,S=NX({change:g,index:w});if(!S)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${b} at index ${w}`});M.signIdx(S,b,T)}return M}async function RX({utxos:M,recipient:H,assetValue:T,memo:b,feeRate:V,feeOptionKey:w,changeAddress:g}){if(!B)throw new W.SwapKitError("toolbox_utxo_no_signer");let S=V||(await WX(X))[w||W.FeeOption.Fast],c=b?A(b):null,yX=[{address:H,value:T.getBaseValue("number")}];if(c)yX.push({address:"",script:c,value:0});let rX=M.map(({hash:r,index:R,value:n,txHex:$0,witnessUtxo:nX})=>({hash:r,index:R,txHex:$0,value:n,witnessUtxo:nX?{script:nX.script,value:nX.value}:void 0})),{inputs:h,outputs:DX}=m({chain:X,feeRate:S,inputs:rX,outputs:yX});if(!(h&&DX))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:"multiple addresses"});let d=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),vX=M[0]?.address,AX=g||await L()||vX||H;e({chain:X,compiledMemo:c,inputs:h,outputs:DX,sender:AX,tx:d});let wX=h.map((r)=>{let R=M.find((n)=>n.hash===r.hash&&n.index===r.index);return R?{derivationIndex:R.derivationIndex,isChange:R.isChange}:{derivationIndex:0,isChange:!1}});return MX({inputDerivations:wX,tx:d}),d.finalize(),E(X).broadcastTx(t.hex.encode(d.extract()))}function X0({address:M,gapLimit:H=20}){if(!B)return;for(let T=0;T<H;T++){let b=O({change:!1,index:T}),V=O({change:!0,index:T}),w=b?.address===M?!1:V?.address===M;if(b?.address===M||V?.address===M)return{change:w,index:T}}return}return{accumulative:m,broadcastTx:(M)=>E(X).broadcastTx(M),bumpFee:dX,calculateTxSize:QX,createKeysForPath:(M)=>UX({...M,chain:X}),createReplacementTransaction:$X,createTransaction:u2,deriveAddressAtIndex:O,derivePrivateKeyAtIndex:NX,estimateMaxSendableAmount:m0(X),estimateTransactionFee:g0(X),getAddress:L,getAddressFromKeys:Y2(X),getBalance:b2(X),getExtendedPublicKey:_,getExtendedPublicKeyInfo:N,getFeeRates:()=>WX(X),getInputsOutputsFee:o2,getNetworkForChain:()=>v(X),getPrivateKeyFromMnemonic:(M)=>S0(UX({...M,chain:X}).privateKey,X),isRBFEnabled:F,keys:z,resolveDerivationIndex:X0,signAndBroadcastTransaction:async(M)=>{if(!G)throw new W.SwapKitError("toolbox_utxo_no_signer");return G.signTransaction(M),M.finalize(),await E(X).broadcastTx(t.hex.encode(M.extract()))},signTransactionWithMultipleKeys:MX,transfer:x0(X,G),transferFromMultipleAddresses:RX,validateAddress:G2(X)}}var h2,t,Z2,uX,W,C,j2,FX,pX;var BX=y(()=>{sX();HX();LX();fX();h2=require("@noble/curves/secp256k1.js"),t=require("@scure/base"),Z2=require("@scure/bip32"),uX=require("@scure/bip39"),W=require("@swapkit/helpers"),C=require("@swapkit/utxo-signer"),j2=require("ts-pattern"),FX=[W.Chain.Dash,W.Chain.Dogecoin,W.Chain.Zcash,W.Chain.BitcoinCash],pX=[W.Chain.Bitcoin]});function EX(X){return GX(VX(X))}function h0(X){let $=v(x);function J(j){return j.sign(X.privateKey,[P.BCHSigHash.ALL]),j}function Z(){let j=P.p2pkh(X.publicKey,$);if(!j.hash)throw new f.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=P.encodeCashAddr({hash:j.hash,prefix:P.CashAddrPrefix.MAINNET,type:P.CashAddrType.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:Z,signTransaction:J}}function L2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,Z=f.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:f.updateDerivationPath(f.NetworkDerivationPath[x],{index:J})),j=$?UX({chain:x,derivationPath:Z,phrase:$}):void 0,Q=j?h0(j):("signer"in X)?X.signer:void 0;function q(){return Promise.resolve(Q?.getAddress())}let{getBalance:G,getFeeRates:Y,broadcastTx:z,...L}=XX({chain:x});function U(_,N=!0){return G(GX(VX(_)))}async function B(_){if(!Q)throw new f.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(_),_.finalize(),await z(q2.hex.encode(_.extract()))}return{...L,broadcastTx:z,buildTx:u0,createTransaction:c2,getAddress:q,getAddressFromKeys:o0,getBalance:U,getFeeRates:Y,signAndBroadcastTransaction:B,stripPrefix:GX,stripToCashAddress:EX,transfer:p0({broadcastTx:z,getFeeRates:Y,signer:Q}),validateAddress:a}}async function c2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){if(!a($))throw new f.SwapKitError("toolbox_utxo_invalid_address",{address:$});let Q=Math.ceil(X.getBaseValue("number")+Z*7500),q=await E(x).getUtxos({address:EX(j),fetchTxHex:!0,targetValue:Q}),G=J?A(J):null,Y=[],z=u($);if(Y.push({address:z,value:X.getBaseValue("number")}),G)Y.push({script:G,value:0});let{inputs:L,outputs:U}=m({chain:x,feeRate:Z,inputs:q,outputs:Y});if(!(L&&U))throw new f.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new P.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),_=u(j),{inputs:N,tx:O}=e({chain:x,compiledMemo:G,inputs:L,outputs:U.map((F)=>("address"in F)&&F.address?{...F,address:u(F.address)}:F),sender:_,tx:B});return{inputs:N,tx:O,utxos:L}}function p0({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:j,assetValue:Q,feeOptionKey:q=f.FeeOption.Fast,...G}){let Y=await J?.getAddress();if(!(J&&Y))throw new f.SwapKitError("toolbox_utxo_no_signer");if(!j)throw new f.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let z=G.feeRate||(await $())[q],{tx:L}=await c2({...G,assetValue:Q,feeRate:z,recipient:j,sender:Y}),U=await J.signTransaction(L);return U.finalize(),X(q2.hex.encode(U.extract()))}}async function u0({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){let Q=VX($);if(!a(Q))throw new f.SwapKitError("toolbox_utxo_invalid_address",{address:Q});let q=Math.ceil(X.getBaseValue("number")+Z*7500),G=await E(x).getUtxos({address:EX(j),fetchTxHex:!0,targetValue:q}),Y=Number(Z.toFixed(0)),z=J?A(J):null,L=[];if(L.push({address:u($),value:X.getBaseValue("number")}),z)L.push({script:z,value:0});let{inputs:U,outputs:B}=m({chain:x,feeRate:Y,inputs:G,outputs:L});if(!(U&&B))throw new f.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let _=new P.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!z,version:1}),{inputs:N,tx:O}=e({chain:x,compiledMemo:z,inputs:U,outputs:B,sender:u(j),tx:_});return{inputs:N,tx:O,utxos:G}}function o0(X){let $=P.NETWORKS.bitcoinCash,J=P.p2pkh(X.publicKey,$);if(!J.hash)throw new f.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return P.encodeCashAddr({hash:J.hash,prefix:P.CashAddrPrefix.MAINNET,type:P.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var q2,f,P,x;var oX=y(()=>{LX();BX();fX();q2=require("@scure/base"),f=require("@swapkit/helpers"),P=require("@swapkit/utxo-signer"),x=f.Chain.BitcoinCash});function r2(){let{isStagenet:X}=I.SKConfig.get("envs");return X?k.ZCASH_TEST_NETWORK:k.ZCASH_NETWORK}function d0(X){return c0.encode(X)}function r0({phrase:X,derivationPath:$}){let J=U2.mnemonicToSeedSync(X),j=z2.HDKey.fromMasterSeed(J).derive($);if(!j.privateKey||!j.publicKey)throw new I.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:q}=j,G=k.utils.hash160(q),{isStagenet:Y}=I.SKConfig.get("envs"),z=Y?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(z.length+G.length);L.set(z,0),L.set(G,z.length);let U=d0(L);return{getAddress:()=>Promise.resolve(U),signTransaction:(B)=>{if(B instanceof k.PCZT)return B.signAllInputs(Q,q,k.ZcashSigHash.ALL),B.finalizeAllInputs(),Promise.resolve(B.extract());return B.signAllInputs(Q,q,k.ZcashSigHash.ALL),Promise.resolve(B)}}}function n0({inputs:X,outputs:$,tx:J,sender:Z,compiledMemo:j}){let Q=r2();for(let q of X){let G=k.Address(Q).decode(Z),Y=k.OutScript.encode(G);J.addInput({index:q.index,script:Y,sequence:4294967295,txid:cX.hex.decode(q.hash),value:BigInt(q.value)})}for(let q of $){let G="address"in q&&q.address?q.address:Z,Y=q.script;if(Y&&!j)continue;if(Y&&j)J.addOutput({amount:0n,script:j});else J.addOutputAddress(G,BigInt(q.value),Q)}return{inputs:X,tx:J}}async function d2(X){let{assetValue:$,recipient:J,memo:Z,feeRate:j,sender:Q,fetchTxHex:q}=X,G=Z?A(Z):null,Y=await E(I.Chain.Zcash).getUtxos({address:Q,fetchTxHex:q!==!1}),z=[{address:J,value:Number($.getBaseValue("string"))},...G?[{script:G,value:0}]:[]],{inputs:L,outputs:U}=m({chain:I.Chain.Zcash,changeAddress:Q,feeRate:j,inputs:Y,outputs:z});if(!(L&&U))throw new I.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Q});let B=k.createZcashTransaction({consensusBranchId:k.ZcashConsensusBranchId.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:k.ZcashVersionGroupId.SAPLING}),{tx:_,inputs:N}=n0({compiledMemo:G,inputs:L,outputs:U,sender:Q,tx:B});return{inputs:N,outputs:U,tx:_}}function W2(X){let $=_X.match(X).with({signer:_X.P.not(_X.P.nullish)},({signer:Y})=>Y).with({phrase:_X.P.string},({phrase:Y,derivationPath:z,index:L=0})=>{let U=z||I.NetworkDerivationPath[I.Chain.Zcash]||[44,133,0,0,0],B=I.updateDerivationPath(U,{index:L}),_=I.derivationPathToString(B);return r0({derivationPath:_,phrase:Y})}).otherwise(()=>{return}),J=XX({chain:I.Chain.Zcash,signer:$});async function Z({recipient:Y,assetValue:z,feeOptionKey:L=I.FeeOption.Fast,...U}){let B=await $?.getAddress();if(!($&&B))throw new I.SwapKitError("toolbox_utxo_no_signer");let _=U.feeRate||(await J.getFeeRates())[L],{tx:N}=await d2({...U,assetValue:z,feeRate:_,recipient:Y,sender:B}),F=(await $.signTransaction(N)).toHex();return J.broadcastTx(F)}function j({phrase:Y,derivationPath:z="m/44'/133'/0'/0/0"}){let L=U2.mnemonicToSeedSync(Y),B=z2.HDKey.fromMasterSeed(L).derive(z);if(!B.privateKey||!B.publicKey)throw new I.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:B.privateKey,publicKey:B.publicKey}}function Q({phrase:Y,derivationPath:z="m/44'/133'/0'/0/0"}){let L=j({derivationPath:z,phrase:Y}),U=r2();return k.WIF(U).encode(L.privateKey)}function q(Y){return async function(L){if(!Y)throw new I.SwapKitError("toolbox_utxo_no_signer");return await Y.signTransaction(L)}}function G(Y){return async function(L){if(!Y)throw new I.SwapKitError("toolbox_utxo_no_signer");let U=await Y.signTransaction(L);return J.broadcastTx(U.toHex())}}return{...J,createKeysForPath:j,createTransaction:d2,getPrivateKeyFromMnemonic:Q,signAndBroadcastTransaction:G($),signTransaction:q($),transfer:Z,validateAddress:zX}}var cX,z2,U2,I,k,_X,c0;var B2=y(()=>{LX();BX();fX();cX=require("@scure/base"),z2=require("@scure/bip32"),U2=require("@scure/bip39"),I=require("@swapkit/helpers"),k=require("@swapkit/utxo-signer"),_X=require("ts-pattern");c0=cX.createBase58check(k.utils.sha256)});function a2({xpub:X,chain:$,count:J,startIndex:Z=0,accountIndex:j}){if(K("count",J),J<1)throw RangeError("count must be at least 1");K("startIndex",Z);let Q=v($),q=i2.HDKey.fromExtendedKey(X,Q.bip32),G=i({accountIndex:j,chain:$}),Y=JX(G),z=[];for(let L of[!1,!0]){let U=q.deriveChild(Number(L));for(let B=0;B<J;B++){let _=Z+B,N=U.deriveChild(_);if(!N.publicKey)continue;let O=YX({accountIndex:j,chain:$,change:L,index:_});z.push({accountIndex:Y,address:PX({chain:$,network:Q,publicKey:N.publicKey}),change:L,index:_,path:s2.derivationPathToString(O),pubkey:n2.hex.encode(N.publicKey)})}}return z}var n2,i2,s2;var t2=y(()=>{HX();BX();n2=require("@scure/base"),i2=require("@scure/bip32"),s2=require("@swapkit/helpers")});function i0(X,$){switch(X){case o.Chain.BitcoinCash:return L2($||{});case o.Chain.Zcash:return W2($);case o.Chain.Bitcoin:case o.Chain.Dogecoin:case o.Chain.Litecoin:case o.Chain.Dash:return XX({chain:X,...$});default:throw new o.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}var o;var e2=y(()=>{oX();BX();B2();HX();t2();oX();fX();o=require("@swapkit/helpers")});var s0={};z0(s0,{validateZcashAddress:()=>zX,validateUtxoAddress:()=>Q2,validateBchAddress:()=>a,toLegacyAddress:()=>u,toCashAddress:()=>VX,stripToCashAddress:()=>EX,stripPrefix:()=>GX,nonSegwitChains:()=>FX,isValidAddress:()=>X2,getUtxoToolbox:()=>i0,getUtxoNetwork:()=>V0,getUtxoApi:()=>E,getUTXOAddressValidator:()=>G2,getUTXOAddressPath:()=>YX,getUTXOAccountPath:()=>i,getUTXOAccountIndexFromPath:()=>JX,getScriptTypeForAddress:()=>qX,getOutputSize:()=>kX,getNetworkForChain:()=>v,getInputSize:()=>s,getDustThreshold:()=>IX,detectAddressNetwork:()=>$2,deriveAddressesFromXpub:()=>a2,createZcashToolbox:()=>W2,createUTXOToolbox:()=>XX,createHDWalletHelpers:()=>O2,createCustomUtxoApi:()=>T0,createBCHToolbox:()=>L2,compileMemo:()=>A,calculateTxSize:()=>QX,assertDerivationIndex:()=>K,addressFromKeysGetter:()=>Y2,addInputsAndOutputs:()=>e,accumulative:()=>m,UtxoNetwork:()=>eX,UTXOScriptType:()=>xX,TX_OVERHEAD:()=>gX,SEGWIT_MARKER_FLAG_WEIGHT:()=>lX,OutputSizes:()=>bX,OP_RETURN_OVERHEAD:()=>g2,MIN_TX_FEE:()=>y0,InputSizes:()=>mX});module.exports=Y0(s0);var a0=y(()=>{BX();HX();LX();e2();oX();B2()});a0();
1
+ var Q0=Object.create;var{getPrototypeOf:G0,defineProperty:CX,getOwnPropertyNames:D2,getOwnPropertyDescriptor:Y0}=Object,C2=Object.prototype.hasOwnProperty;function H2(X){return this[X]}var q0,L0,$1=(X,$,J)=>{var Z=X!=null&&typeof X==="object";if(Z){var j=$?q0??=new WeakMap:L0??=new WeakMap,Q=j.get(X);if(Q)return Q}J=X!=null?Q0(G0(X)):{};let G=$||!X||!X.__esModule?CX(J,"default",{value:X,enumerable:!0}):J;for(let Y of D2(X))if(!C2.call(G,Y))CX(G,Y,{get:H2.bind(X,Y),enumerable:!0});if(Z)j.set(X,G);return G},z0=(X)=>{var $=(M2??=new WeakMap).get(X),J;if($)return $;if($=CX({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function"){for(var Z of D2(X))if(!C2.call($,Z))CX($,Z,{get:H2.bind(X,Z),enumerable:!(J=Y0(X,Z))||J.enumerable})}return M2.set(X,$),$},M2;var U0=(X)=>X;function W0(X,$){this[X]=U0.bind(null,$)}var B0=(X,$)=>{for(var J in $)CX(X,J,{get:$[J],enumerable:!0,configurable:!0,set:W0.bind($,J)})};var y=(X,$)=>()=>(X&&($=X(X=0)),$);function K(X,$){if(!Number.isInteger($)||$<0)throw RangeError(`${X} must be a non-negative integer, got: ${$}`)}function i({accountIndex:X,chain:$,derivationPath:J}){if(X!==void 0)K("accountIndex",X);let Z=[...J?.slice(0,3)??O2.NetworkDerivationPath[$].slice(0,3)];if(X!==void 0)Z[2]=X;return Z}function YX({accountIndex:X,change:$=!1,chain:J,derivationPath:Z,index:j}){return K("index",j),[...i({accountIndex:X,chain:J,derivationPath:Z}),Number($),j]}function $X(X){return X[2]??0}function V2({deriveAddress:X,getBalance:$,getUtxos:J}){async function Z(Y){let{accountIndex:q,count:L,startIndex:U=0,change:z=!1}=Y;if(K("count",L),L<1)throw RangeError("count must be at least 1");K("startIndex",U);let B=[];for(let _=0;_<L;_++){let N=await X({accountIndex:q,change:z,index:U+_});if(N)B.push(N)}return B}async function j(Y){let{gapLimit:q=20,change:L=!1}=Y??{},U=[],z=0,B=0;while(z<q){let _=await X({change:L,index:B});if(!_)break;if((await $(_.address)).some((T)=>T.getValue("number")>0))U.push(_),z=0;else z++;B++}return U}async function Q(Y=20){let[q,L]=await Promise.all([j({change:!1,gapLimit:Y}),j({change:!0,gapLimit:Y})]),U=[...q,...L],z=await Promise.all(U.map(async(_)=>{let O=(await $(_.address)).reduce((T,GX)=>T+GX.getValue("number"),0);return{..._,balance:O}})),B=z.reduce((_,N)=>_+N.balance,0);return{addresses:z,total:B}}async function G(Y=20){let[q,L]=await Promise.all([j({change:!1,gapLimit:Y}),j({change:!0,gapLimit:Y})]),U=[...q,...L];return(await Promise.all(U.map(async(B)=>{return(await J(B.address)).map((N)=>({...N,address:B.address,derivationIndex:B.index,isChange:B.change}))}))).flat()}return{deriveAddresses:Z,getAggregatedBalance:Q,getAggregatedUtxos:G,scanForAddresses:j}}var O2;var HX=y(()=>{O2=require("@swapkit/helpers")});function k2(){function X(){let $=Date.now(),J=sX||$;return sX=J,$>sX?$:J+1}return _0+X().toString(36)}function I2(X){return async function(J,Z=!0){let j=await b2.SwapKitApi.getChainBalance({address:J,chain:X,scamFilter:Z}),{baseDecimal:Q}=OX.getChainConfig(X),G=j.map(({identifier:q,value:L,decimal:U})=>{return new OX.AssetValue({decimal:U||Q,identifier:q,value:L})});if(!G.some((q)=>q.isGasAsset))return[OX.AssetValue.from({chain:X}),...G];return G}}var OX,b2,_0,sX=0;var aX=y(()=>{OX=require("@swapkit/helpers"),b2=require("@swapkit/helpers/api"),_0=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function N0({chain:X,txHash:$}){let J=`${VX(X)}/push/transaction`,Z=JSON.stringify({data:$});try{let j=await D.RequestClient.post(J,{body:Z,headers:{"Content-Type":"application/json"}});if(j.context.code!==200)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:j.context.error||"Transaction broadcast failed"});return j.data?.transaction_hash||$}catch(j){let Q=await D.getRPCUrl(X);if(Q){let G=JSON.stringify({id:k2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),Y=await D.RequestClient.post(Q,{body:G,headers:{"Content-Type":"application/json"}});if(Y.error)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:Y.error?.message});if(Y.result.includes('"code":-26'))throw new D.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Y.result}throw j}}function VX(X){return`https://api.blockchair.com/${M0(X)}`}function f2(X){switch(X){case D.Chain.Bitcoin:return 5;case D.Chain.Dogecoin:return 1e4;case D.Chain.Litecoin:return 1;case D.Chain.Zcash:return 1;default:return 2}}function M0(X){switch(X){case D.Chain.BitcoinCash:return"bitcoin-cash";case D.Chain.Litecoin:return"litecoin";case D.Chain.Dash:return"dash";case D.Chain.Dogecoin:return"dogecoin";case D.Chain.Zcash:return"zcash";case D.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function D0(X){try{let{feePerKb:$}=await D.RequestClient.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,f2(X))}catch{return f2(X)}}async function KX(X,$){let J=await D.RequestClient.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new D.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function E2({address:X,chain:$,apiKey:J}){if(!X)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await KX(`${VX($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function C0({address:X,chain:$,apiKey:J}){return(await E2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function F2({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await KX(`${VX(X)}/raw/transaction/${J}`,$))?.[J]?.raw_transaction||""}catch(Z){let j=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch raw transaction: ${j}`),""}}async function O0({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let j=(await KX(`${VX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!j)throw new D.SwapKitError("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Q,inputs:G,outputs:Y}=j,q=G.map((U)=>U.spending_sequence),L=Q.is_rbf===!0||q.some((U)=>U<H0);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:G,isRBF:L,outputs:Y,sequences:q,size:Q.size,txid:Q.hash,weight:Q.weight}}async function V0({chain:X,address:$,apiKey:J,offset:Z=0,limit:j=30}){return(await KX(`${VX(X)}/outputs?q=recipient(${$}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${j}&offset=${Z}`,J)).map(({is_spent:q,script_hex:L,block_id:U,transaction_hash:z,index:B,value:_,spending_signature_hex:N})=>({hash:z,index:B,is_confirmed:U!==-1,is_spent:q,script_hex:L,txHex:N,value:_}))}function b0(X){return X.reduce(($,J)=>$+J.value,0)}function T2(X,$){let J=[...X].sort((Z,j)=>j.value-Z.value);if($){let Z=[],j=0;for(let Q of J)if(Z.push(Q),j+=Q.value,j>=$)break;return Z}return J}async function P2({chain:X,address:$,apiKey:J,targetValue:Z,accumulativeValue:j=0,offset:Q=0,limit:G=30}){if(!$)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Y=await V0({address:$,apiKey:J,chain:X,limit:G,offset:Q,targetValue:Z}),L=Y.length<G,U=Y.filter(({is_spent:T})=>!T),z=b0(U),B=j+z,_=Z&&B>=Z;if(L||_)return T2(U,Z);let N=await P2({accumulativeValue:B,address:$,apiKey:J,chain:X,limit:G,offset:Q+G,targetValue:Z}),O=[...U,...N];return T2(O,Z)}catch(Y){let q=Y instanceof Error?Y.message:String(Y);return console.error(`Failed to fetch unspent UTXOs: ${q}`),[]}}async function k0({address:X,chain:$,apiKey:J,fetchTxHex:Z=!0,targetValue:j}){let Q=await P2({address:X,apiKey:J,chain:$,targetValue:j}),G=[];for(let{hash:Y,index:q,script_hex:L,value:U}of Q){let z;if(Z)z=await F2({apiKey:J,chain:$,txHash:Y});G.push({address:X,hash:Y,index:q,txHex:z,value:U,witnessUtxo:{script:Buffer.from(L,"hex"),value:U}})}return G}function P(X){let $=D.SKConfig.get("apiKeys").blockchair||"";return D.warnOnce({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>N0({chain:X,txHash:J}),getAddressData:(J)=>E2({address:J,apiKey:$,chain:X}),getBalance:(J)=>C0({address:J,apiKey:$,chain:X}),getRawTx:(J)=>F2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>D0(X),getTransactionDetails:(J)=>O0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>k0({...J,apiKey:$,chain:X})}}function I0(X){return X}function f0(){return function($){switch($){case D.Chain.Bitcoin:return JX.NETWORKS.bitcoin;case D.Chain.BitcoinCash:return JX.NETWORKS.bitcoinCash;case D.Chain.Dash:return JX.NETWORKS.dash;case D.Chain.Litecoin:return JX.NETWORKS.litecoin;case D.Chain.Dogecoin:return JX.NETWORKS.dogecoin;case D.Chain.Zcash:return JX.NETWORKS.zcash;default:throw new D.SwapKitError("toolbox_utxo_not_supported",{chain:$})}}}var D,JX,H0=4294967294;var R2=y(()=>{aX();D=require("@swapkit/helpers"),JX=require("@swapkit/utxo-signer")});function F0(X,$,J){return u.encodeCashAddr({hash:J,prefix:X,type:T0[$]})}function P0(X){let $=u.decodeCashAddr(X),J=E0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var u,T0,E0,tX;var y2=y(()=>{u=require("@swapkit/utxo-signer"),T0={P2PKH:u.CashAddrType.P2PKH,P2SH:u.CashAddrType.P2SH},E0={[u.CashAddrType.P2PKH]:"P2PKH",[u.CashAddrType.P2SH]:"P2SH"};tX={decode:P0,encode:F0}});function $2(X){try{return mX(X),!0}catch{return!1}}function J2(X){return mX(X)?.network}function o(X){let $=mX(X);if($?.format==="legacy")return X;return v0($)}function bX(X){let $=mX(X);return A0($)}function mX(X){try{let $=R0(X);if($)return $}catch{}try{let $=y0(X);if($)return $}catch{}throw new eX.SwapKitError("toolbox_utxo_invalid_address",{address:X})}function R0(X){try{let $=S2.decode(X);if($.length!==21)throw new eX.SwapKitError("toolbox_utxo_invalid_address",{address:X});let J=$[0],Z=Array.prototype.slice.call($,1);switch(J){case ZX.legacy.mainnet.p2pkh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2pkh"};case ZX.legacy.mainnet.p2sh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2sh"};case ZX.legacy.testnet.p2pkh:return{format:"legacy",hash:Z,network:"testnet",type:"p2pkh"};case ZX.legacy.testnet.p2sh:return{format:"legacy",hash:Z,network:"testnet",type:"p2sh"};case ZX.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2pkh"};case ZX.bitpay.mainnet.p2sh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function y0(X){if(X.indexOf(":")!==-1)try{return v2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return v2(`${J}:${X}`)}catch{}}return}function v2(X){try{let{hash:$,prefix:J,type:Z}=tX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:Z==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function v0(X){let $=ZX.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),S2.encode(J)}function A0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",Z=new Uint8Array(X.hash);return tX.encode($,J,Z)}var A2,w2,eX,S2,X2,ZX;var K2=y(()=>{y2();A2=require("@noble/hashes/sha2.js"),w2=require("@scure/base"),eX=require("@swapkit/helpers"),S2=w2.createBase58check(A2.sha256);((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(X2||={});ZX={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function w(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return g2.Script.encode(["RETURN",$])}var m2,g2,w0=1000,lX=10,xX=2,l2=10,S0=41,K0=107,hX,gX,kX,qX=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new m2.SwapKitError("toolbox_utxo_invalid_address",{address:X})},jX=({inputs:X,outputs:$,feeRate:J})=>{let Z=X[0]&&"address"in X[0]&&X[0].address?qX(X[0].address):"P2PKH",Q=(J?X.filter((L)=>L.value>=gX["type"in L&&L.type?L.type:"P2PKH"]*Math.ceil(J)):X).reduce((L,U)=>L+s(U),0),G=$?.reduce((L,U)=>L+IX(U),0)||kX[Z],Y=lX+Q+G;return Z==="P2WPKH"?Math.ceil(Y+xX/4):Y},s=(X)=>{if("type"in X&&X.type)return gX[X.type];if("address"in X&&X.address)return gX[qX(X.address)];return S0+K0},IX=(X,$)=>{if(X?.script)return l2+X.script.length+(X.script.length>=74?2:1);if($)return kX[$];if("address"in X&&X.address)return kX[qX(X.address)];return kX.P2PKH};var Z2=y(()=>{m2=require("@swapkit/helpers"),g2=require("@swapkit/utxo-signer");((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(hX||={});gX={["P2PKH"]:148,["P2WPKH"]:68},kX={["P2PKH"]:34,["P2WPKH"]:31}});function fX(X){switch(X){case x.Chain.Bitcoin:case x.Chain.BitcoinCash:return 550;case x.Chain.Dash:case x.Chain.Litecoin:return 5500;case x.Chain.Dogecoin:return 1e5;case x.Chain.Zcash:return 546;default:throw new x.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}function m({inputs:X,outputs:$,feeRate:J=1,chain:Z=x.Chain.Bitcoin,changeAddress:j=""}){let Q=X[0]&&"address"in X[0]&&X[0].address?qX(X[0].address):"P2PKH",G=X.filter((N)=>s(N)*J<=N.value),q=Q==="P2WPKH"?Math.ceil(xX/4):0,L=lX+q+$.reduce((N,O)=>N+IX(O),0),U=$.reduce((N,O)=>N+O.value,0),z=L*J,B=0,_=[];for(let N of G){let O=s(N),T=J*O;z+=T,B+=N.value,_.push(N);let GX=z+U;if(B<GX)continue;let RX=B-GX,yX=J*IX({address:j,value:0});if(RX>yX){let NX=yX+z,MX=B-(U+Math.ceil(NX));if(MX>Math.max(s({value:0})*J,fX(Z)))return{fee:Math.ceil(NX),inputs:_,outputs:$.concat({address:j,value:MX})}}return{fee:Math.ceil(z),inputs:_,outputs:$}}return{fee:Math.ceil(J*jX({inputs:X,outputs:$}))}}var x;var x2=y(()=>{Z2();x=require("@swapkit/helpers")});var LX=y(()=>{R2();K2();x2();Z2()});function QX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function a(X){let $=QX(X);return $2($)&&J2($)==="mainnet"}function zX(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let J=pX.Address(pX.ZCASH_NETWORK).decode(X);return J.type==="pkh"||J.type==="sh"}catch{return!1}}var pX;var TX=y(()=>{LX();pX=require("@swapkit/utxo-signer")});function G2({address:X,chain:$}){return Q2.match($).with(W.Chain.BitcoinCash,()=>a(X)).with(W.Chain.Zcash,()=>zX(X)).otherwise(()=>{try{return C.Address(v($)).decode(X),!0}catch{return!1}})}function v(X){return Q2.match(X).with(W.Chain.Bitcoin,()=>C.NETWORKS.bitcoin).with(W.Chain.BitcoinCash,()=>C.NETWORKS.bitcoinCash).with(W.Chain.Dash,()=>C.NETWORKS.dash).with(W.Chain.Dogecoin,()=>C.NETWORKS.dogecoin).with(W.Chain.Litecoin,()=>C.NETWORKS.litecoin).with(W.Chain.Zcash,()=>C.NETWORKS.zcash).exhaustive()}function m0({phrase:X,derivationPath:$,network:J,seed:Z}){let j=Z??oX.mnemonicToSeedSync(X),G=j2.HDKey.fromMasterSeed(j,J.bip32).derive($);if(!G.privateKey)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return G.privateKey}function h2(X){return p2.secp256k1.getPublicKey(X,!0)}function FX({publicKey:X,chain:$,network:J}){if($===W.Chain.BitcoinCash){let Q=C.p2pkh(X,J);if(!Q.hash)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return C.encodeCashAddr({hash:Q.hash,prefix:C.CashAddrPrefix.MAINNET,type:C.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let j=!EX.includes($)?C.p2wpkh(X,J):C.p2pkh(X,J);if(!j.address)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return j.address}function UX({phrase:X,derivationPath:$,chain:J,wif:Z,seed:j}){let Q=v(J);if(Z){let L=C.WIF(Q).decode(Z),U=h2(L);return{privateKey:L,publicKey:U}}if(!X)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let G=$||W.derivationPathToString(W.NetworkDerivationPath[J]),Y=m0({derivationPath:G,network:Q,phrase:X,seed:j}),q=h2(Y);return{privateKey:Y,publicKey:q}}function g0(X,$){return C.WIF(v($)).encode(X)}function l0({phrase:X,derivationPath:$,chain:J,seed:Z}){let j=$.split("/");if(j.length<4)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${j.length}): ${$}`});let Q=v(J),G=Z??oX.mnemonicToSeedSync(X),Y=j2.HDKey.fromMasterSeed(G,Q.bip32),q=j.slice(0,4).join("/");return Y.derive(q)}function e({inputs:X,outputs:$,chain:J,tx:Z,sender:j,compiledMemo:Q,enableRBF:G=!1}){let Y=v(J),q=!EX.includes(J),L=G?C.RBF_SEQUENCE:void 0,U=new Set;for(let z of X){let B=`${z.hash}:${z.index}`;if(U.has(B))throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});U.add(B);let _=typeof z.hash==="string"?t.hex.decode(z.hash):z.hash;if(q&&z.witnessUtxo)Z.addInput({index:z.index,sequence:L,txid:_,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)Z.addInput({index:z.index,nonWitnessUtxo:t.hex.decode(z.txHex),sequence:L,txid:_,...J===W.Chain.BitcoinCash?{sighashType:C.BCHSigHash.ALL}:{}});else throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let z of $){let B="address"in z&&z.address?z.address:j;if(J===W.Chain.BitcoinCash)B=o(B);if(z.script){if(Q)Z.addOutput({amount:0n,script:Q})}else Z.addOutputAddress(B,BigInt(z.value),Y)}return{inputs:X,tx:Z}}async function WX(X){let $=await P(X).getSuggestedTxFee();return{[W.FeeOption.Average]:$,[W.FeeOption.Fast]:W.applyFeeMultiplier($,W.FeeOption.Fast),[W.FeeOption.Fastest]:W.applyFeeMultiplier($,W.FeeOption.Fastest)}}async function u2({assetValue:X,recipient:$,memo:J,sender:Z,fetchTxHex:j=!1}){let Q=X.chain,G=(await WX(Q))[W.FeeOption.Fastest],Y=j||EX.includes(Q),q=X.getBaseValue("number"),L=Math.ceil(q+G*5000);return{inputs:await P(Q).getUtxos({address:Z,fetchTxHex:Y,targetValue:L}),outputs:[{address:$,value:q},...J?[{address:"",script:w(J),value:0}]:[]]}}async function o2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j,fetchTxHex:Q=!1,enableRBF:G=!1}){let Y=X.chain,q=J?w(J):null,L=await u2({assetValue:X,fetchTxHex:Q,memo:J,recipient:$,sender:j}),{inputs:U,outputs:z}=m({...L,chain:Y,feeRate:Z});if(!(U&&z))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new C.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),{inputs:_,tx:N}=e({chain:Y,compiledMemo:q,enableRBF:G,inputs:U,outputs:z,sender:j,tx:B});return{inputs:_,tx:N,utxos:L.inputs}}async function c2({assetValue:X,feeOptionKey:$=W.FeeOption.Fast,feeRate:J,memo:Z,sender:j,recipient:Q}){let G=X.chain,Y=await u2({assetValue:X,memo:Z,recipient:Q,sender:j}),q=J?Math.floor(J):(await WX(G))[$];return m({...Y,chain:G,feeRate:q})}function x0(X){return async function({from:J,memo:Z,feeRate:j,feeOptionKey:Q=W.FeeOption.Fast,recipients:G=1}){let Y=await P(X).getAddressData(J),q=j?Math.ceil(j):(await WX(X))[Q],L=Y?.utxo.map((O)=>({...O,hash:"",type:"P2PKH"})).filter((O)=>O.value>Math.max(fX(X),s(O)*q));if(!L?.length)return W.AssetValue.from({chain:X});let U=BigInt(L.reduce((O,T)=>O+T.value,0)),z=W.AssetValue.from({chain:X,value:U}),B=typeof G==="number"?Array.from({length:G},()=>({address:J,value:0})):G;if(Z)B.push({address:J,script:w(Z),value:0});let _=jX({inputs:L,outputs:B}),N=W.AssetValue.from({chain:X,value:BigInt(_*q)});return z.sub(N)}}function h0(X){return async function(J){let{fee:Z}=await c2(J);return W.AssetValue.from({chain:X,value:W.SwapKitNumber.fromBigInt(BigInt(Z),8).getValue("string")})}}function p0({chain:X,phrase:$,derivationPath:J,seed:Z}){let j=v(X),{privateKey:Q,publicKey:G}=UX({chain:X,derivationPath:J,phrase:$,seed:Z}),Y=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];return{getAddress:()=>FX({chain:X,network:j,publicKey:G}),privateKey:Q,publicKey:G,signTransaction:(q)=>{return q.sign(Q,Y),q}}}function u0(X,$){return async function({memo:Z,recipient:j,feeOptionKey:Q,feeRate:G,assetValue:Y,enableRBF:q=!1}){let L=await $?.getAddress();if(!($&&L))throw new W.SwapKitError("toolbox_utxo_no_signer");if(!j)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});W.warnOnce({condition:q&&!uX.includes(X),id:`rbf_not_supported_${X}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${X}. Transaction will be created without RBF signaling.`});let U=q&&uX.includes(X),z=G||(await WX(X))[Q||W.FeeOption.Fast],{tx:B}=await o2({assetValue:Y,enableRBF:U,feeRate:z,memo:Z,recipient:j,sender:L}),_=await $.signTransaction(B);return _.finalize(),P(X).broadcastTx(t.hex.encode(_.extract()))}}function Y2(X){return($)=>G2({address:$,chain:X})}function q2(X){let $=v(X);return function(Z){if(!Z)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return FX({chain:X,network:$,publicKey:Z.publicKey})}}function XX({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,Z="index"in $?$.index||0:0,j=J?oX.mnemonicToSeedSync(J):void 0,Q="derivationPath"in $&&$.derivationPath?$.derivationPath:W.updateDerivationPath(W.NetworkDerivationPath[X],{index:Z}),G=W.derivationPathToString(Q),Y=J?p0({chain:X,derivationPath:G,phrase:J,seed:j}):void 0,q="signer"in $?$.signer:void 0,L=Y||q,U=J?UX({chain:X,derivationPath:G,phrase:J,seed:j}):void 0;function z(){if(L)return L.getAddress();return Promise.resolve(void 0)}function B(M){if(!J)return;let H=i({accountIndex:M,chain:X,derivationPath:Q});return l0({chain:X,derivationPath:W.derivationPathToString(H),phrase:J,seed:j})}let _=B();function N(){if(!_)return;return _.publicExtendedKey}function O({accountIndex:M}={}){let H=M===void 0?_:B(M);if(!H)return;let V=i({accountIndex:M,chain:X,derivationPath:Q});return{accountIndex:$X(V),path:W.derivationPathToString(V),xpub:H.publicExtendedKey}}function T({accountIndex:M,index:H,change:V=!1}){let b=M===void 0?_:B(M);if(!b)return;let k=YX({accountIndex:M,chain:X,change:V,derivationPath:Q,index:H}),S=v(X),g=b.deriveChild(Number(V)).deriveChild(H);if(!g.publicKey)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let A=FX({chain:X,network:S,publicKey:g.publicKey}),l=t.hex.encode(g.publicKey);return{accountIndex:$X(k),address:A,change:V,index:H,path:W.derivationPathToString(k),pubkey:l}}async function GX(M){if(!uX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let H=await P(X).getTransactionDetails(M);return{canReplace:H.isRBF&&!H.confirmed,confirmed:H.confirmed,enabled:H.isRBF,fee:H.fee,sequences:H.sequences,supported:!0}}async function RX({txid:M,newFeeRate:H,recipient:V,memo:b}){if(!uX.includes(X))throw new W.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:X});let k=await P(X).getTransactionDetails(M);if(!k.isRBF)throw new W.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:M});if(k.confirmed)throw new W.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:k.blockId,txid:M});let S=k.inputs.reduce((R,n)=>R+n.value,0),A=k.outputs.find((R)=>R.recipient===V)?.value||0;if(A===0)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let l=await Promise.all(k.inputs.map(async(R)=>{let n=await P(X).getRawTx(R.transaction_hash);return{hash:R.transaction_hash,index:R.index,txHex:n,value:R.value,witnessUtxo:void 0}})),vX=b?w(b):null,nX=jX({feeRate:H,inputs:l.map((R)=>({...R,type:"P2WPKH"})),outputs:[{address:V,value:A}]}),p=Math.ceil(nX*H);if(p<=k.fee)throw new W.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:p,originalFee:k.fee});let DX=p-k.fee,r=A-DX;if(r<=0)throw new W.SwapKitError("toolbox_utxo_rbf_insufficient_change");let AX=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),wX=[{address:V,value:r},...b?[{address:"",script:w(b),value:0}]:[]],SX=S-r-p,d=await z();if(SX>fX(X)&&d)wX.push({address:d,value:SX});return e({chain:X,compiledMemo:vX,inputs:l,outputs:wX,sender:d||V,tx:AX}),{feeDelta:DX,newFee:p,originalFee:k.fee,tx:AX}}async function yX({txid:M,newFeeRate:H,recipient:V,memo:b}){let{tx:k,originalFee:S,newFee:g}=await RX({memo:b,newFeeRate:H,recipient:V,txid:M}),A=await dX(k);A.finalize();let l=await P(X).broadcastTx(t.hex.encode(A.extract()));return{newFee:g,originalFee:S,txid:l}}function NX({accountIndex:M,index:H,change:V=!1}){K("index",H);let b=M===void 0?_:B(M);if(!b)return;return b.deriveChild(Number(V)).deriveChild(H).privateKey||void 0}function MX({tx:M,inputDerivations:H}){if(!_)throw new W.SwapKitError("toolbox_utxo_no_signer");let V=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];for(let b=0;b<H.length;b++){let k=H[b];if(!k)continue;let{derivationIndex:S,isChange:g}=k,A=NX({change:g,index:S});if(!A)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${b} at index ${S}`});M.signIdx(A,b,V)}return M}async function $0({utxos:M,recipient:H,assetValue:V,memo:b,feeRate:k,feeOptionKey:S,changeAddress:g}){if(!_)throw new W.SwapKitError("toolbox_utxo_no_signer");let A=k||(await WX(X))[S||W.FeeOption.Fast],l=b?w(b):null,vX=[{address:H,value:V.getBaseValue("number")}];if(l)vX.push({address:"",script:l,value:0});let nX=M.map(({hash:d,index:R,value:n,txHex:j0,witnessUtxo:iX})=>({hash:d,index:R,txHex:j0,value:n,witnessUtxo:iX?{script:iX.script,value:iX.value}:void 0})),{inputs:p,outputs:DX}=m({chain:X,feeRate:A,inputs:nX,outputs:vX});if(!(p&&DX))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:V,sender:"multiple addresses"});let r=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),AX=M[0]?.address,wX=g||await z()||AX||H;e({chain:X,compiledMemo:l,inputs:p,outputs:DX,sender:wX,tx:r});let SX=p.map((d)=>{let R=M.find((n)=>n.hash===d.hash&&n.index===d.index);return R?{derivationIndex:R.derivationIndex,isChange:R.isChange}:{derivationIndex:0,isChange:!1}});return MX({inputDerivations:SX,tx:r}),r.finalize(),P(X).broadcastTx(t.hex.encode(r.extract()))}function J0({address:M,gapLimit:H=20}){if(!_)return;for(let V=0;V<H;V++){let b=T({change:!1,index:V}),k=T({change:!0,index:V}),S=b?.address===M?!1:k?.address===M;if(b?.address===M||k?.address===M)return{change:S,index:V}}return}function dX(M){if(!L)throw new W.SwapKitError("toolbox_utxo_no_signer");return L.signTransaction(M)}async function Z0(M){let H=await dX(M);return H.finalize(),await P(X).broadcastTx(t.hex.encode(H.extract()))}return{accumulative:m,broadcastTx:(M)=>P(X).broadcastTx(M),bumpFee:yX,calculateTxSize:jX,createKeysForPath:(M)=>UX({...M,chain:X}),createReplacementTransaction:RX,createTransaction:o2,deriveAddressAtIndex:T,derivePrivateKeyAtIndex:NX,estimateMaxSendableAmount:x0(X),estimateTransactionFee:h0(X),getAddress:z,getAddressFromKeys:q2(X),getBalance:I2(X),getExtendedPublicKey:N,getExtendedPublicKeyInfo:O,getFeeRates:()=>WX(X),getInputsOutputsFee:c2,getNetworkForChain:()=>v(X),getPrivateKeyFromMnemonic:(M)=>g0(UX({...M,chain:X}).privateKey,X),isRBFEnabled:GX,keys:U,resolveDerivationIndex:J0,signAndBroadcastTransaction:Z0,signTransaction:dX,signTransactionWithMultipleKeys:MX,transfer:u0(X,L),transferFromMultipleAddresses:$0,validateAddress:Y2(X)}}var p2,t,j2,oX,W,C,Q2,EX,uX;var BX=y(()=>{aX();HX();LX();TX();p2=require("@noble/curves/secp256k1.js"),t=require("@scure/base"),j2=require("@scure/bip32"),oX=require("@scure/bip39"),W=require("@swapkit/helpers"),C=require("@swapkit/utxo-signer"),Q2=require("ts-pattern"),EX=[W.Chain.Dash,W.Chain.Dogecoin,W.Chain.Zcash,W.Chain.BitcoinCash],uX=[W.Chain.Bitcoin]});function PX(X){return QX(bX(X))}function o0(X){let $=v(h);function J(j){return j.sign(X.privateKey,[F.BCHSigHash.ALL]),j}function Z(){let j=F.p2pkh(X.publicKey,$);if(!j.hash)throw new E.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=F.encodeCashAddr({hash:j.hash,prefix:F.CashAddrPrefix.MAINNET,type:F.CashAddrType.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:Z,signTransaction:J}}function z2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,Z=E.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:E.updateDerivationPath(E.NetworkDerivationPath[h],{index:J})),j=$?UX({chain:h,derivationPath:Z,phrase:$}):void 0,Q=j?o0(j):("signer"in X)?X.signer:void 0;function G(){return Promise.resolve(Q?.getAddress())}let{getBalance:Y,getFeeRates:q,broadcastTx:L,...U}=XX({chain:h});function z(N,O=!0){return Y(QX(bX(N)))}function B(N){if(!Q)throw new E.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(N)}async function _(N){let O=await B(N);return O.finalize(),await L(L2.hex.encode(O.extract()))}return{...U,broadcastTx:L,buildTx:r0,createTransaction:r2,getAddress:G,getAddressFromKeys:d0,getBalance:z,getFeeRates:q,signAndBroadcastTransaction:_,signTransaction:B,stripPrefix:QX,stripToCashAddress:PX,transfer:c0({broadcastTx:L,getFeeRates:q,signer:Q}),validateAddress:a}}async function r2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){if(!a($))throw new E.SwapKitError("toolbox_utxo_invalid_address",{address:$});let Q=Math.ceil(X.getBaseValue("number")+Z*7500),G=await P(h).getUtxos({address:PX(j),fetchTxHex:!0,targetValue:Q}),Y=J?w(J):null,q=[],L=o($);if(q.push({address:L,value:X.getBaseValue("number")}),Y)q.push({script:Y,value:0});let{inputs:U,outputs:z}=m({chain:h,feeRate:Z,inputs:G,outputs:q});if(!(U&&z))throw new E.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new F.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),_=o(j),{inputs:N,tx:O}=e({chain:h,compiledMemo:Y,inputs:U,outputs:z.map((T)=>("address"in T)&&T.address?{...T,address:o(T.address)}:T),sender:_,tx:B});return{inputs:N,tx:O,utxos:U}}function c0({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:j,assetValue:Q,feeOptionKey:G=E.FeeOption.Fast,...Y}){let q=await J?.getAddress();if(!(J&&q))throw new E.SwapKitError("toolbox_utxo_no_signer");if(!j)throw new E.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let L=Y.feeRate||(await $())[G],{tx:U}=await r2({...Y,assetValue:Q,feeRate:L,recipient:j,sender:q}),z=await J.signTransaction(U);return z.finalize(),X(L2.hex.encode(z.extract()))}}async function r0({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){let Q=bX($);if(!a(Q))throw new E.SwapKitError("toolbox_utxo_invalid_address",{address:Q});let G=Math.ceil(X.getBaseValue("number")+Z*7500),Y=await P(h).getUtxos({address:PX(j),fetchTxHex:!0,targetValue:G}),q=Number(Z.toFixed(0)),L=J?w(J):null,U=[];if(U.push({address:o($),value:X.getBaseValue("number")}),L)U.push({script:L,value:0});let{inputs:z,outputs:B}=m({chain:h,feeRate:q,inputs:Y,outputs:U});if(!(z&&B))throw new E.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let _=new F.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!L,version:1}),{inputs:N,tx:O}=e({chain:h,compiledMemo:L,inputs:z,outputs:B,sender:o(j),tx:_});return{inputs:N,tx:O,utxos:Y}}function d0(X){let $=F.NETWORKS.bitcoinCash,J=F.p2pkh(X.publicKey,$);if(!J.hash)throw new E.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return F.encodeCashAddr({hash:J.hash,prefix:F.CashAddrPrefix.MAINNET,type:F.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var L2,E,F,h;var cX=y(()=>{LX();BX();TX();L2=require("@scure/base"),E=require("@swapkit/helpers"),F=require("@swapkit/utxo-signer"),h=E.Chain.BitcoinCash});function n2(){let{isStagenet:X}=f.SKConfig.get("envs");return X?I.ZCASH_TEST_NETWORK:I.ZCASH_NETWORK}function i0(X){return n0.encode(X)}function s0({phrase:X,derivationPath:$}){let J=W2.mnemonicToSeedSync(X),j=U2.HDKey.fromMasterSeed(J).derive($);if(!j.privateKey||!j.publicKey)throw new f.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:G}=j,Y=I.utils.hash160(G),{isStagenet:q}=f.SKConfig.get("envs"),L=q?new Uint8Array([29,37]):new Uint8Array([28,184]),U=new Uint8Array(L.length+Y.length);U.set(L,0),U.set(Y,L.length);let z=i0(U);return{getAddress:()=>Promise.resolve(z),signTransaction:(B)=>{if(B instanceof I.PCZT)return B.signAllInputs(Q,G,I.ZcashSigHash.ALL),B.finalizeAllInputs(),Promise.resolve(B.extract());return B.signAllInputs(Q,G,I.ZcashSigHash.ALL),Promise.resolve(B)}}}function a0({inputs:X,outputs:$,tx:J,sender:Z,compiledMemo:j}){let Q=n2();for(let G of X){let Y=I.Address(Q).decode(Z),q=I.OutScript.encode(Y);J.addInput({index:G.index,script:q,sequence:4294967295,txid:rX.hex.decode(G.hash),value:BigInt(G.value)})}for(let G of $){let Y="address"in G&&G.address?G.address:Z,q=G.script;if(q&&!j)continue;if(q&&j)J.addOutput({amount:0n,script:j});else J.addOutputAddress(Y,BigInt(G.value),Q)}return{inputs:X,tx:J}}async function d2(X){let{assetValue:$,recipient:J,memo:Z,feeRate:j,sender:Q,fetchTxHex:G}=X,Y=Z?w(Z):null,q=await P(f.Chain.Zcash).getUtxos({address:Q,fetchTxHex:G!==!1}),L=[{address:J,value:Number($.getBaseValue("string"))},...Y?[{script:Y,value:0}]:[]],{inputs:U,outputs:z}=m({chain:f.Chain.Zcash,changeAddress:Q,feeRate:j,inputs:q,outputs:L});if(!(U&&z))throw new f.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Q});let B=I.createZcashTransaction({consensusBranchId:I.ZcashConsensusBranchId.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:I.ZcashVersionGroupId.SAPLING}),{tx:_,inputs:N}=a0({compiledMemo:Y,inputs:U,outputs:z,sender:Q,tx:B});return{inputs:N,outputs:z,tx:_}}function B2(X){let $=_X.match(X).with({signer:_X.P.not(_X.P.nullish)},({signer:q})=>q).with({phrase:_X.P.string},({phrase:q,derivationPath:L,index:U=0})=>{let z=L||f.NetworkDerivationPath[f.Chain.Zcash]||[44,133,0,0,0],B=f.updateDerivationPath(z,{index:U}),_=f.derivationPathToString(B);return s0({derivationPath:_,phrase:q})}).otherwise(()=>{return}),J=XX({chain:f.Chain.Zcash,signer:$});async function Z(q){if(!$)throw new f.SwapKitError("toolbox_utxo_no_signer");return await $.signTransaction(q)}async function j(q){let L=await Z(q);return J.broadcastTx(L.toHex())}async function Q({recipient:q,assetValue:L,feeOptionKey:U=f.FeeOption.Fast,...z}){let B=await $?.getAddress();if(!($&&B))throw new f.SwapKitError("toolbox_utxo_no_signer");let _=z.feeRate||(await J.getFeeRates())[U],{tx:N}=await d2({...z,assetValue:L,feeRate:_,recipient:q,sender:B}),T=(await $.signTransaction(N)).toHex();return J.broadcastTx(T)}function G({phrase:q,derivationPath:L="m/44'/133'/0'/0/0"}){let U=W2.mnemonicToSeedSync(q),B=U2.HDKey.fromMasterSeed(U).derive(L);if(!B.privateKey||!B.publicKey)throw new f.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:B.privateKey,publicKey:B.publicKey}}function Y({phrase:q,derivationPath:L="m/44'/133'/0'/0/0"}){let U=G({derivationPath:L,phrase:q}),z=n2();return I.WIF(z).encode(U.privateKey)}return{...J,createKeysForPath:G,createTransaction:d2,getPrivateKeyFromMnemonic:Y,signAndBroadcastTransaction:j,signTransaction:Z,transfer:Q,validateAddress:zX}}var rX,U2,W2,f,I,_X,n0;var _2=y(()=>{LX();BX();TX();rX=require("@scure/base"),U2=require("@scure/bip32"),W2=require("@scure/bip39"),f=require("@swapkit/helpers"),I=require("@swapkit/utxo-signer"),_X=require("ts-pattern");n0=rX.createBase58check(I.utils.sha256)});function t2({xpub:X,chain:$,count:J,startIndex:Z=0,accountIndex:j}){if(K("count",J),J<1)throw RangeError("count must be at least 1");K("startIndex",Z);let Q=v($),G=s2.HDKey.fromExtendedKey(X,Q.bip32),Y=i({accountIndex:j,chain:$}),q=$X(Y),L=[];for(let U of[!1,!0]){let z=G.deriveChild(Number(U));for(let B=0;B<J;B++){let _=Z+B,N=z.deriveChild(_);if(!N.publicKey)continue;let O=YX({accountIndex:j,chain:$,change:U,index:_});L.push({accountIndex:q,address:FX({chain:$,network:Q,publicKey:N.publicKey}),change:U,index:_,path:a2.derivationPathToString(O),pubkey:i2.hex.encode(N.publicKey)})}}return L}var i2,s2,a2;var e2=y(()=>{HX();BX();i2=require("@scure/base"),s2=require("@scure/bip32"),a2=require("@swapkit/helpers")});function t0(X,$){switch(X){case c.Chain.BitcoinCash:return z2($||{});case c.Chain.Zcash:return B2($);case c.Chain.Bitcoin:case c.Chain.Dogecoin:case c.Chain.Litecoin:case c.Chain.Dash:return XX({chain:X,...$});default:throw new c.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}var c;var X0=y(()=>{cX();BX();_2();HX();e2();cX();TX();c=require("@swapkit/helpers")});var e0={};B0(e0,{validateZcashAddress:()=>zX,validateUtxoAddress:()=>G2,validateBchAddress:()=>a,toLegacyAddress:()=>o,toCashAddress:()=>bX,stripToCashAddress:()=>PX,stripPrefix:()=>QX,nonSegwitChains:()=>EX,isValidAddress:()=>$2,getUtxoToolbox:()=>t0,getUtxoNetwork:()=>f0,getUtxoApi:()=>P,getUTXOAddressValidator:()=>Y2,getUTXOAddressPath:()=>YX,getUTXOAccountPath:()=>i,getUTXOAccountIndexFromPath:()=>$X,getScriptTypeForAddress:()=>qX,getOutputSize:()=>IX,getNetworkForChain:()=>v,getInputSize:()=>s,getDustThreshold:()=>fX,detectAddressNetwork:()=>J2,deriveAddressesFromXpub:()=>t2,createZcashToolbox:()=>B2,createUTXOToolbox:()=>XX,createHDWalletHelpers:()=>V2,createCustomUtxoApi:()=>I0,createBCHToolbox:()=>z2,compileMemo:()=>w,calculateTxSize:()=>jX,assertDerivationIndex:()=>K,addressFromKeysGetter:()=>q2,addInputsAndOutputs:()=>e,accumulative:()=>m,UtxoNetwork:()=>X2,UTXOScriptType:()=>hX,TX_OVERHEAD:()=>lX,SEGWIT_MARKER_FLAG_WEIGHT:()=>xX,OutputSizes:()=>kX,OP_RETURN_OVERHEAD:()=>l2,MIN_TX_FEE:()=>w0,InputSizes:()=>gX});module.exports=z0(e0);var X1=y(()=>{BX();HX();LX();X0();cX();_2()});X1();
@@ -1 +1 @@
1
- var Q0=Object.defineProperty;var G0=(X)=>X;function Y0(X,$){this[X]=G0.bind(null,$)}var q0=(X,$)=>{for(var J in $)Q0(X,J,{get:$[J],enumerable:!0,configurable:!0,set:Y0.bind($,J)})};var F=(X,$)=>()=>(X&&($=X(X=0)),$);var n1=((X)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(X,{get:($,J)=>(typeof require<"u"?require:$)[J]}):X)(function(X){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+X+'" is not supported')});import{NetworkDerivationPath as L0}from"@swapkit/helpers";function v(X,$){if(!Number.isInteger($)||$<0)throw RangeError(`${X} must be a non-negative integer, got: ${$}`)}function c({accountIndex:X,chain:$,derivationPath:J}){if(X!==void 0)v("accountIndex",X);let Z=[...J?.slice(0,3)??L0[$].slice(0,3)];if(X!==void 0)Z[2]=X;return Z}function ZX({accountIndex:X,change:$=!1,chain:J,derivationPath:Z,index:j}){return v("index",j),[...c({accountIndex:X,chain:J,derivationPath:Z}),Number($),j]}function a(X){return X[2]??0}function W2({deriveAddress:X,getBalance:$,getUtxos:J}){async function Z(Y){let{accountIndex:G,count:L,startIndex:q=0,change:z=!1}=Y;if(v("count",L),L<1)throw RangeError("count must be at least 1");v("startIndex",q);let W=[];for(let B=0;B<L;B++){let _=await X({accountIndex:G,change:z,index:q+B});if(_)W.push(_)}return W}async function j(Y){let{gapLimit:G=20,change:L=!1}=Y??{},q=[],z=0,W=0;while(z<G){let B=await X({change:L,index:W});if(!B)break;if((await $(B.address)).some((V)=>V.getValue("number")>0))q.push(B),z=0;else z++;W++}return q}async function Q(Y=20){let[G,L]=await Promise.all([j({change:!1,gapLimit:Y}),j({change:!0,gapLimit:Y})]),q=[...G,...L],z=await Promise.all(q.map(async(B)=>{let D=(await $(B.address)).reduce((V,s)=>V+s.getValue("number"),0);return{...B,balance:D}})),W=z.reduce((B,_)=>B+_.balance,0);return{addresses:z,total:W}}async function U(Y=20){let[G,L]=await Promise.all([j({change:!1,gapLimit:Y}),j({change:!0,gapLimit:Y})]),q=[...G,...L];return(await Promise.all(q.map(async(W)=>{return(await J(W.address)).map((_)=>({..._,address:W.address,derivationIndex:W.index,isChange:W.change}))}))).flat()}return{deriveAddresses:Z,getAggregatedBalance:Q,getAggregatedUtxos:U,scanForAddresses:j}}var DX=()=>{};import{AssetValue as B2,getChainConfig as z0}from"@swapkit/helpers";import{SwapKitApi as U0}from"@swapkit/helpers/api";function _2(){function X(){let $=Date.now(),J=nX||$;return nX=J,$>nX?$:J+1}return W0+X().toString(36)}function N2(X){return async function(J,Z=!0){let j=await U0.getChainBalance({address:J,chain:X,scamFilter:Z}),{baseDecimal:Q}=z0(X),U=j.map(({identifier:G,value:L,decimal:q})=>{return new B2({decimal:q||Q,identifier:G,value:L})});if(!U.some((G)=>G.isGasAsset))return[B2.from({chain:X}),...U];return U}}var W0,nX=0;var iX=F(()=>{W0=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{Chain as f,getRPCUrl as B0,RequestClient as AX,SKConfig as _0,SwapKitError as S,warnOnce as N0}from"@swapkit/helpers";import{NETWORKS as jX}from"@swapkit/utxo-signer";async function M0({chain:X,txHash:$}){let J=`${CX(X)}/push/transaction`,Z=JSON.stringify({data:$});try{let j=await AX.post(J,{body:Z,headers:{"Content-Type":"application/json"}});if(j.context.code!==200)throw new S("toolbox_utxo_broadcast_failed",{error:j.context.error||"Transaction broadcast failed"});return j.data?.transaction_hash||$}catch(j){let Q=await B0(X);if(Q){let U=JSON.stringify({id:_2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),Y=await AX.post(Q,{body:U,headers:{"Content-Type":"application/json"}});if(Y.error)throw new S("toolbox_utxo_broadcast_failed",{error:Y.error?.message});if(Y.result.includes('"code":-26'))throw new S("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Y.result}throw j}}function CX(X){return`https://api.blockchair.com/${D0(X)}`}function M2(X){switch(X){case f.Bitcoin:return 5;case f.Dogecoin:return 1e4;case f.Litecoin:return 1;case f.Zcash:return 1;default:return 2}}function D0(X){switch(X){case f.BitcoinCash:return"bitcoin-cash";case f.Litecoin:return"litecoin";case f.Dash:return"dash";case f.Dogecoin:return"dogecoin";case f.Zcash:return"zcash";case f.Polkadot:return"polkadot";default:return"bitcoin"}}async function C0(X){try{let{feePerKb:$}=await AX.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,M2(X))}catch{return M2(X)}}async function wX(X,$){let J=await AX.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new S("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function C2({address:X,chain:$,apiKey:J}){if(!X)throw new S("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await wX(`${CX($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function H0({address:X,chain:$,apiKey:J}){return(await C2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function H2({chain:X,apiKey:$,txHash:J}){if(!J)throw new S("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await wX(`${CX(X)}/raw/transaction/${J}`,$))?.[J]?.raw_transaction||""}catch(Z){let j=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch raw transaction: ${j}`),""}}async function T0({chain:X,apiKey:$,txHash:J}){if(!J)throw new S("toolbox_utxo_invalid_params",{error:"TxHash is required"});let j=(await wX(`${CX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!j)throw new S("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Q,inputs:U,outputs:Y}=j,G=U.map((q)=>q.spending_sequence),L=Q.is_rbf===!0||G.some((q)=>q<O0);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:U,isRBF:L,outputs:Y,sequences:G,size:Q.size,txid:Q.hash,weight:Q.weight}}async function V0({chain:X,address:$,apiKey:J,offset:Z=0,limit:j=30}){return(await wX(`${CX(X)}/outputs?q=recipient(${$}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${j}&offset=${Z}`,J)).map(({is_spent:G,script_hex:L,block_id:q,transaction_hash:z,index:W,value:B,spending_signature_hex:_})=>({hash:z,index:W,is_confirmed:q!==-1,is_spent:G,script_hex:L,txHex:_,value:B}))}function b0(X){return X.reduce(($,J)=>$+J.value,0)}function D2(X,$){let J=[...X].sort((Z,j)=>j.value-Z.value);if($){let Z=[],j=0;for(let Q of J)if(Z.push(Q),j+=Q.value,j>=$)break;return Z}return J}async function O2({chain:X,address:$,apiKey:J,targetValue:Z,accumulativeValue:j=0,offset:Q=0,limit:U=30}){if(!$)throw new S("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Y=await V0({address:$,apiKey:J,chain:X,limit:U,offset:Q,targetValue:Z}),L=Y.length<U,q=Y.filter(({is_spent:V})=>!V),z=b0(q),W=j+z,B=Z&&W>=Z;if(L||B)return D2(q,Z);let _=await O2({accumulativeValue:W,address:$,apiKey:J,chain:X,limit:U,offset:Q+U,targetValue:Z}),D=[...q,..._];return D2(D,Z)}catch(Y){let G=Y instanceof Error?Y.message:String(Y);return console.error(`Failed to fetch unspent UTXOs: ${G}`),[]}}async function k0({address:X,chain:$,apiKey:J,fetchTxHex:Z=!0,targetValue:j}){let Q=await O2({address:X,apiKey:J,chain:$,targetValue:j}),U=[];for(let{hash:Y,index:G,script_hex:L,value:q}of Q){let z;if(Z)z=await H2({apiKey:J,chain:$,txHash:Y});U.push({address:X,hash:Y,index:G,txHex:z,value:q,witnessUtxo:{script:Buffer.from(L,"hex"),value:q}})}return U}function b(X){let $=_0.get("apiKeys").blockchair||"";return N0({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>M0({chain:X,txHash:J}),getAddressData:(J)=>C2({address:J,apiKey:$,chain:X}),getBalance:(J)=>H0({address:J,apiKey:$,chain:X}),getRawTx:(J)=>H2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>C0(X),getTransactionDetails:(J)=>T0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>k0({...J,apiKey:$,chain:X})}}function I0(X){return X}function f0(){return function($){switch($){case f.Bitcoin:return jX.bitcoin;case f.BitcoinCash:return jX.bitcoinCash;case f.Dash:return jX.dash;case f.Litecoin:return jX.litecoin;case f.Dogecoin:return jX.dogecoin;case f.Zcash:return jX.zcash;default:throw new S("toolbox_utxo_not_supported",{chain:$})}}}var O0=4294967294;var T2=F(()=>{iX()});import{CashAddrType as SX,decodeCashAddr as F0,encodeCashAddr as P0}from"@swapkit/utxo-signer";function y0(X,$,J){return P0({hash:J,prefix:X,type:E0[$]})}function v0(X){let $=F0(X),J=R0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var E0,R0,sX;var V2=F(()=>{E0={P2PKH:SX.P2PKH,P2SH:SX.P2SH},R0={[SX.P2PKH]:"P2PKH",[SX.P2SH]:"P2SH"};sX={decode:v0,encode:y0}});import{sha256 as A0}from"@noble/hashes/sha2.js";import{createBase58check as w0}from"@scure/base";import{SwapKitError as k2}from"@swapkit/helpers";function tX(X){try{return KX(X),!0}catch{return!1}}function eX(X){return KX(X)?.network}function l(X){let $=KX(X);if($?.format==="legacy")return X;return m0($)}function HX(X){let $=KX(X);return g0($)}function KX(X){try{let $=S0(X);if($)return $}catch{}try{let $=K0(X);if($)return $}catch{}throw new k2("toolbox_utxo_invalid_address",{address:X})}function S0(X){try{let $=I2.decode(X);if($.length!==21)throw new k2("toolbox_utxo_invalid_address",{address:X});let J=$[0],Z=Array.prototype.slice.call($,1);switch(J){case t.legacy.mainnet.p2pkh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2pkh"};case t.legacy.mainnet.p2sh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2sh"};case t.legacy.testnet.p2pkh:return{format:"legacy",hash:Z,network:"testnet",type:"p2pkh"};case t.legacy.testnet.p2sh:return{format:"legacy",hash:Z,network:"testnet",type:"p2sh"};case t.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2pkh"};case t.bitpay.mainnet.p2sh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function K0(X){if(X.indexOf(":")!==-1)try{return b2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return b2(`${J}:${X}`)}catch{}}return}function b2(X){try{let{hash:$,prefix:J,type:Z}=sX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:Z==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function m0(X){let $=t.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),I2.encode(J)}function g0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",Z=new Uint8Array(X.hash);return sX.encode($,J,Z)}var I2,aX,t;var f2=F(()=>{V2();I2=w0(A0);((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(aX||={});t={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as l0}from"@swapkit/helpers";import{Script as x0}from"@swapkit/utxo-signer";function E(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return x0.encode(["RETURN",$])}var h0=1000,gX=10,lX=2,F2=10,p0=41,u0=107,xX,mX,OX,QX=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new l0("toolbox_utxo_invalid_address",{address:X})},e=({inputs:X,outputs:$,feeRate:J})=>{let Z=X[0]&&"address"in X[0]&&X[0].address?QX(X[0].address):"P2PKH",Q=(J?X.filter((L)=>L.value>=mX["type"in L&&L.type?L.type:"P2PKH"]*Math.ceil(J)):X).reduce((L,q)=>L+d(q),0),U=$?.reduce((L,q)=>L+TX(q),0)||OX[Z],Y=gX+Q+U;return Z==="P2WPKH"?Math.ceil(Y+lX/4):Y},d=(X)=>{if("type"in X&&X.type)return mX[X.type];if("address"in X&&X.address)return mX[QX(X.address)];return p0+u0},TX=(X,$)=>{if(X?.script)return F2+X.script.length+(X.script.length>=74?2:1);if($)return OX[$];if("address"in X&&X.address)return OX[QX(X.address)];return OX.P2PKH};var X2=F(()=>{((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(xX||={});mX={["P2PKH"]:148,["P2WPKH"]:68},OX={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as XX,SwapKitError as o0}from"@swapkit/helpers";function VX(X){switch(X){case XX.Bitcoin:case XX.BitcoinCash:return 550;case XX.Dash:case XX.Litecoin:return 5500;case XX.Dogecoin:return 1e5;case XX.Zcash:return 546;default:throw new o0("toolbox_utxo_not_supported",{chain:X})}}function A({inputs:X,outputs:$,feeRate:J=1,chain:Z=XX.Bitcoin,changeAddress:j=""}){let Q=X[0]&&"address"in X[0]&&X[0].address?QX(X[0].address):"P2PKH",U=X.filter((_)=>d(_)*J<=_.value),G=Q==="P2WPKH"?Math.ceil(lX/4):0,L=gX+G+$.reduce((_,D)=>_+TX(D),0),q=$.reduce((_,D)=>_+D.value,0),z=L*J,W=0,B=[];for(let _ of U){let D=d(_),V=J*D;z+=V,W+=_.value,B.push(_);let s=z+q;if(W<s)continue;let cX=W-s,_X=J*TX({address:j,value:0});if(cX>_X){let NX=_X+z,PX=W-(q+Math.ceil(NX));if(PX>Math.max(d({value:0})*J,VX(Z)))return{fee:Math.ceil(NX),inputs:B,outputs:$.concat({address:j,value:PX})}}return{fee:Math.ceil(z),inputs:B,outputs:$}}return{fee:Math.ceil(J*e({inputs:X,outputs:$}))}}var P2=F(()=>{X2()});var GX=F(()=>{T2();f2();P2();X2()});import{Address as c0,ZCASH_NETWORK as d0}from"@swapkit/utxo-signer";function $X(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function r(X){let $=$X(X);return tX($)&&eX($)==="mainnet"}function YX(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let J=c0(d0).decode(X);return J.type==="pkh"||J.type==="sh"}catch{return!1}}var bX=F(()=>{GX()});import{secp256k1 as r0}from"@noble/curves/secp256k1.js";import{hex as JX}from"@scure/base";import{HDKey as v2}from"@scure/bip32";import{mnemonicToSeedSync as J2}from"@scure/bip39";import{AssetValue as hX,applyFeeMultiplier as E2,Chain as k,derivationPathToString as kX,FeeOption as K,NetworkDerivationPath as A2,SwapKitError as T,SwapKitNumber as n0,updateDerivationPath as i0,warnOnce as s0}from"@swapkit/helpers";import{Address as a0,BCHSigHash as Z2,CashAddrPrefix as t0,CashAddrType as e0,encodeCashAddr as X1,NETWORKS as qX,p2pkh as R2,p2wpkh as $1,RBF_SEQUENCE as J1,SigHash as w2,Transaction as $2,WIF as S2}from"@swapkit/utxo-signer";import{match as K2}from"ts-pattern";function j2({address:X,chain:$}){return K2($).with(k.BitcoinCash,()=>r(X)).with(k.Zcash,()=>YX(X)).otherwise(()=>{try{return a0(P($)).decode(X),!0}catch{return!1}})}function P(X){return K2(X).with(k.Bitcoin,()=>qX.bitcoin).with(k.BitcoinCash,()=>qX.bitcoinCash).with(k.Dash,()=>qX.dash).with(k.Dogecoin,()=>qX.dogecoin).with(k.Litecoin,()=>qX.litecoin).with(k.Zcash,()=>qX.zcash).exhaustive()}function Z1({phrase:X,derivationPath:$,network:J,seed:Z}){let j=Z??J2(X),U=v2.fromMasterSeed(j,J.bip32).derive($);if(!U.privateKey)throw new T("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return U.privateKey}function y2(X){return r0.getPublicKey(X,!0)}function fX({publicKey:X,chain:$,network:J}){if($===k.BitcoinCash){let Q=R2(X,J);if(!Q.hash)throw new T("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return X1({hash:Q.hash,prefix:t0.MAINNET,type:e0.P2PKH}).replace(/^bitcoincash:/,"")}let j=!IX.includes($)?$1(X,J):R2(X,J);if(!j.address)throw new T("toolbox_utxo_invalid_address",{error:"Could not derive address"});return j.address}function LX({phrase:X,derivationPath:$,chain:J,wif:Z,seed:j}){let Q=P(J);if(Z){let L=S2(Q).decode(Z),q=y2(L);return{privateKey:L,publicKey:q}}if(!X)throw new T("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let U=$||kX(A2[J]),Y=Z1({derivationPath:U,network:Q,phrase:X,seed:j}),G=y2(Y);return{privateKey:Y,publicKey:G}}function j1(X,$){return S2(P($)).encode(X)}function Q1({phrase:X,derivationPath:$,chain:J,seed:Z}){let j=$.split("/");if(j.length<4)throw new T("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${j.length}): ${$}`});let Q=P(J),U=Z??J2(X),Y=v2.fromMasterSeed(U,Q.bip32),G=j.slice(0,4).join("/");return Y.derive(G)}function n({inputs:X,outputs:$,chain:J,tx:Z,sender:j,compiledMemo:Q,enableRBF:U=!1}){let Y=P(J),G=!IX.includes(J),L=U?J1:void 0,q=new Set;for(let z of X){let W=`${z.hash}:${z.index}`;if(q.has(W))throw new T("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});q.add(W);let B=typeof z.hash==="string"?JX.decode(z.hash):z.hash;if(G&&z.witnessUtxo)Z.addInput({index:z.index,sequence:L,txid:B,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)Z.addInput({index:z.index,nonWitnessUtxo:JX.decode(z.txHex),sequence:L,txid:B,...J===k.BitcoinCash?{sighashType:Z2.ALL}:{}});else throw new T("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let z of $){let W="address"in z&&z.address?z.address:j;if(J===k.BitcoinCash)W=l(W);if(z.script){if(Q)Z.addOutput({amount:0n,script:Q})}else Z.addOutputAddress(W,BigInt(z.value),Y)}return{inputs:X,tx:Z}}async function zX(X){let $=await b(X).getSuggestedTxFee();return{[K.Average]:$,[K.Fast]:E2($,K.Fast),[K.Fastest]:E2($,K.Fastest)}}async function m2({assetValue:X,recipient:$,memo:J,sender:Z,fetchTxHex:j=!1}){let Q=X.chain,U=(await zX(Q))[K.Fastest],Y=j||IX.includes(Q),G=X.getBaseValue("number"),L=Math.ceil(G+U*5000);return{inputs:await b(Q).getUtxos({address:Z,fetchTxHex:Y,targetValue:L}),outputs:[{address:$,value:G},...J?[{address:"",script:E(J),value:0}]:[]]}}async function g2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j,fetchTxHex:Q=!1,enableRBF:U=!1}){let Y=X.chain,G=J?E(J):null,L=await m2({assetValue:X,fetchTxHex:Q,memo:J,recipient:$,sender:j}),{inputs:q,outputs:z}=A({...L,chain:Y,feeRate:Z});if(!(q&&z))throw new T("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let W=new $2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),{inputs:B,tx:_}=n({chain:Y,compiledMemo:G,enableRBF:U,inputs:q,outputs:z,sender:j,tx:W});return{inputs:B,tx:_,utxos:L.inputs}}async function l2({assetValue:X,feeOptionKey:$=K.Fast,feeRate:J,memo:Z,sender:j,recipient:Q}){let U=X.chain,Y=await m2({assetValue:X,memo:Z,recipient:Q,sender:j}),G=J?Math.floor(J):(await zX(U))[$];return A({...Y,chain:U,feeRate:G})}function G1(X){return async function({from:J,memo:Z,feeRate:j,feeOptionKey:Q=K.Fast,recipients:U=1}){let Y=await b(X).getAddressData(J),G=j?Math.ceil(j):(await zX(X))[Q],L=Y?.utxo.map((D)=>({...D,hash:"",type:"P2PKH"})).filter((D)=>D.value>Math.max(VX(X),d(D)*G));if(!L?.length)return hX.from({chain:X});let q=BigInt(L.reduce((D,V)=>D+V.value,0)),z=hX.from({chain:X,value:q}),W=typeof U==="number"?Array.from({length:U},()=>({address:J,value:0})):U;if(Z)W.push({address:J,script:E(Z),value:0});let B=e({inputs:L,outputs:W}),_=hX.from({chain:X,value:BigInt(B*G)});return z.sub(_)}}function Y1(X){return async function(J){let{fee:Z}=await l2(J);return hX.from({chain:X,value:n0.fromBigInt(BigInt(Z),8).getValue("string")})}}function q1({chain:X,phrase:$,derivationPath:J,seed:Z}){let j=P(X),{privateKey:Q,publicKey:U}=LX({chain:X,derivationPath:J,phrase:$,seed:Z}),Y=X===k.BitcoinCash?[Z2.ALL]:[w2.ALL];return{getAddress:()=>fX({chain:X,network:j,publicKey:U}),privateKey:Q,publicKey:U,signTransaction:(G)=>{return G.sign(Q,Y),G}}}function L1(X,$){return async function({memo:Z,recipient:j,feeOptionKey:Q,feeRate:U,assetValue:Y,enableRBF:G=!1}){let L=$?.getAddress();if(!($&&L))throw new T("toolbox_utxo_no_signer");if(!j)throw new T("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});s0({condition:G&&!pX.includes(X),id:`rbf_not_supported_${X}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${X}. Transaction will be created without RBF signaling.`});let q=G&&pX.includes(X),z=U||(await zX(X))[Q||K.Fast],{tx:W}=await g2({assetValue:Y,enableRBF:q,feeRate:z,memo:Z,recipient:j,sender:L});return $.signTransaction(W),W.finalize(),b(X).broadcastTx(JX.encode(W.extract()))}}function Q2(X){return($)=>j2({address:$,chain:X})}function G2(X){let $=P(X);return function(Z){if(!Z)throw new T("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return fX({chain:X,network:$,publicKey:Z.publicKey})}}function i({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,Z="index"in $?$.index||0:0,j=J?J2(J):void 0,Q="derivationPath"in $&&$.derivationPath?$.derivationPath:i0(A2[X],{index:Z}),U=kX(Q),Y=J?q1({chain:X,derivationPath:U,phrase:J,seed:j}):void 0,G="signer"in $?$.signer:void 0,L=J?LX({chain:X,derivationPath:U,phrase:J,seed:j}):void 0;function q(){if(Y)return Promise.resolve(Y.getAddress());if(G)return G.getAddress();return Promise.resolve(void 0)}function z(N){if(!J)return;let M=c({accountIndex:N,chain:X,derivationPath:Q});return Q1({chain:X,derivationPath:kX(M),phrase:J,seed:j})}let W=z();function B(){if(!W)return;return W.publicExtendedKey}function _({accountIndex:N}={}){let M=N===void 0?W:z(N);if(!M)return;let C=c({accountIndex:N,chain:X,derivationPath:Q});return{accountIndex:a(C),path:kX(C),xpub:M.publicExtendedKey}}function D({accountIndex:N,index:M,change:C=!1}){let O=N===void 0?W:z(N);if(!O)return;let H=ZX({accountIndex:N,chain:X,change:C,derivationPath:Q,index:M}),R=P(X),w=O.deriveChild(Number(C)).deriveChild(M);if(!w.publicKey)throw new T("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let y=fX({chain:X,network:R,publicKey:w.publicKey}),h=JX.encode(w.publicKey);return{accountIndex:a(H),address:y,change:C,index:M,path:kX(H),pubkey:h}}async function V(N){if(!pX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let M=await b(X).getTransactionDetails(N);return{canReplace:M.isRBF&&!M.confirmed,confirmed:M.confirmed,enabled:M.isRBF,fee:M.fee,sequences:M.sequences,supported:!0}}async function s({txid:N,newFeeRate:M,recipient:C,memo:O}){if(!pX.includes(X))throw new T("toolbox_utxo_rbf_not_supported",{chain:X});let H=await b(X).getTransactionDetails(N);if(!H.isRBF)throw new T("toolbox_utxo_tx_not_replaceable",{txid:N});if(H.confirmed)throw new T("toolbox_utxo_tx_already_confirmed",{blockId:H.blockId,txid:N});let R=H.inputs.reduce((I,o)=>I+o.value,0),y=H.outputs.find((I)=>I.recipient===C)?.value||0;if(y===0)throw new T("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let h=await Promise.all(H.inputs.map(async(I)=>{let o=await b(X).getRawTx(I.transaction_hash);return{hash:I.transaction_hash,index:I.index,txHex:o,value:I.value,witnessUtxo:void 0}})),EX=O?E(O):null,dX=e({feeRate:M,inputs:h.map((I)=>({...I,type:"P2WPKH"})),outputs:[{address:C,value:y}]}),g=Math.ceil(dX*M);if(g<=H.fee)throw new T("toolbox_utxo_rbf_fee_too_low",{newFee:g,originalFee:H.fee});let MX=g-H.fee,p=y-MX;if(p<=0)throw new T("toolbox_utxo_rbf_insufficient_change");let RX=new $2({allowLegacyWitnessUtxo:!0,version:1}),yX=[{address:C,value:p},...O?[{address:"",script:E(O),value:0}]:[]],vX=R-p-g,u=await q();if(vX>VX(X)&&u)yX.push({address:u,value:vX});return n({chain:X,compiledMemo:EX,inputs:h,outputs:yX,sender:u||C,tx:RX}),{feeDelta:MX,newFee:g,originalFee:H.fee,tx:RX}}async function cX({txid:N,newFeeRate:M,recipient:C,memo:O}){if(!Y)throw new T("toolbox_utxo_no_signer");let{tx:H,originalFee:R,newFee:w}=await s({memo:O,newFeeRate:M,recipient:C,txid:N});Y.signTransaction(H),H.finalize();let y=await b(X).broadcastTx(JX.encode(H.extract()));return{newFee:w,originalFee:R,txid:y}}function _X({accountIndex:N,index:M,change:C=!1}){v("index",M);let O=N===void 0?W:z(N);if(!O)return;return O.deriveChild(Number(C)).deriveChild(M).privateKey||void 0}function NX({tx:N,inputDerivations:M}){if(!W)throw new T("toolbox_utxo_no_signer");let C=X===k.BitcoinCash?[Z2.ALL]:[w2.ALL];for(let O=0;O<M.length;O++){let H=M[O];if(!H)continue;let{derivationIndex:R,isChange:w}=H,y=_X({change:w,index:R});if(!y)throw new T("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${O} at index ${R}`});N.signIdx(y,O,C)}return N}async function PX({utxos:N,recipient:M,assetValue:C,memo:O,feeRate:H,feeOptionKey:R,changeAddress:w}){if(!W)throw new T("toolbox_utxo_no_signer");let y=H||(await zX(X))[R||K.Fast],h=O?E(O):null,EX=[{address:M,value:C.getBaseValue("number")}];if(h)EX.push({address:"",script:h,value:0});let dX=N.map(({hash:u,index:I,value:o,txHex:j0,witnessUtxo:rX})=>({hash:u,index:I,txHex:j0,value:o,witnessUtxo:rX?{script:rX.script,value:rX.value}:void 0})),{inputs:g,outputs:MX}=A({chain:X,feeRate:y,inputs:dX,outputs:EX});if(!(g&&MX))throw new T("toolbox_utxo_insufficient_balance",{assetValue:C,sender:"multiple addresses"});let p=new $2({allowLegacyWitnessUtxo:!0,version:1}),RX=N[0]?.address,yX=w||await q()||RX||M;n({chain:X,compiledMemo:h,inputs:g,outputs:MX,sender:yX,tx:p});let vX=g.map((u)=>{let I=N.find((o)=>o.hash===u.hash&&o.index===u.index);return I?{derivationIndex:I.derivationIndex,isChange:I.isChange}:{derivationIndex:0,isChange:!1}});return NX({inputDerivations:vX,tx:p}),p.finalize(),b(X).broadcastTx(JX.encode(p.extract()))}function Z0({address:N,gapLimit:M=20}){if(!W)return;for(let C=0;C<M;C++){let O=D({change:!1,index:C}),H=D({change:!0,index:C}),R=O?.address===N?!1:H?.address===N;if(O?.address===N||H?.address===N)return{change:R,index:C}}return}return{accumulative:A,broadcastTx:(N)=>b(X).broadcastTx(N),bumpFee:cX,calculateTxSize:e,createKeysForPath:(N)=>LX({...N,chain:X}),createReplacementTransaction:s,createTransaction:g2,deriveAddressAtIndex:D,derivePrivateKeyAtIndex:_X,estimateMaxSendableAmount:G1(X),estimateTransactionFee:Y1(X),getAddress:q,getAddressFromKeys:G2(X),getBalance:N2(X),getExtendedPublicKey:B,getExtendedPublicKeyInfo:_,getFeeRates:()=>zX(X),getInputsOutputsFee:l2,getNetworkForChain:()=>P(X),getPrivateKeyFromMnemonic:(N)=>j1(LX({...N,chain:X}).privateKey,X),isRBFEnabled:V,keys:L,resolveDerivationIndex:Z0,signAndBroadcastTransaction:async(N)=>{if(!Y)throw new T("toolbox_utxo_no_signer");return Y.signTransaction(N),N.finalize(),await b(X).broadcastTx(JX.encode(N.extract()))},signTransactionWithMultipleKeys:NX,transfer:L1(X,Y),transferFromMultipleAddresses:PX,validateAddress:Q2(X)}}var IX,pX;var UX=F(()=>{iX();DX();GX();bX();IX=[k.Dash,k.Dogecoin,k.Zcash,k.BitcoinCash],pX=[k.Bitcoin]});import{hex as x2}from"@scure/base";import{Chain as z1,derivationPathToString as U1,FeeOption as W1,NetworkDerivationPath as B1,SwapKitError as x,updateDerivationPath as _1}from"@swapkit/helpers";import{BCHSigHash as N1,CashAddrPrefix as h2,CashAddrType as p2,encodeCashAddr as u2,NETWORKS as M1,p2pkh as o2,Transaction as c2}from"@swapkit/utxo-signer";function FX(X){return $X(HX(X))}function D1(X){let $=P(m);function J(j){return j.sign(X.privateKey,[N1.ALL]),j}function Z(){let j=o2(X.publicKey,$);if(!j.hash)throw new x("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=u2({hash:j.hash,prefix:h2.MAINNET,type:p2.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:Z,signTransaction:J}}function Y2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,Z=U1("derivationPath"in X&&X.derivationPath?X.derivationPath:_1(B1[m],{index:J})),j=$?LX({chain:m,derivationPath:Z,phrase:$}):void 0,Q=j?D1(j):("signer"in X)?X.signer:void 0;function U(){return Promise.resolve(Q?.getAddress())}let{getBalance:Y,getFeeRates:G,broadcastTx:L,...q}=i({chain:m});function z(B,_=!0){return Y($X(HX(B)))}async function W(B){if(!Q)throw new x("toolbox_utxo_no_signer");return Q.signTransaction(B),B.finalize(),await L(x2.encode(B.extract()))}return{...q,broadcastTx:L,buildTx:H1,createTransaction:d2,getAddress:U,getAddressFromKeys:O1,getBalance:z,getFeeRates:G,signAndBroadcastTransaction:W,stripPrefix:$X,stripToCashAddress:FX,transfer:C1({broadcastTx:L,getFeeRates:G,signer:Q}),validateAddress:r}}async function d2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){if(!r($))throw new x("toolbox_utxo_invalid_address",{address:$});let Q=Math.ceil(X.getBaseValue("number")+Z*7500),U=await b(m).getUtxos({address:FX(j),fetchTxHex:!0,targetValue:Q}),Y=J?E(J):null,G=[],L=l($);if(G.push({address:L,value:X.getBaseValue("number")}),Y)G.push({script:Y,value:0});let{inputs:q,outputs:z}=A({chain:m,feeRate:Z,inputs:U,outputs:G});if(!(q&&z))throw new x("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let W=new c2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),B=l(j),{inputs:_,tx:D}=n({chain:m,compiledMemo:Y,inputs:q,outputs:z.map((V)=>("address"in V)&&V.address?{...V,address:l(V.address)}:V),sender:B,tx:W});return{inputs:_,tx:D,utxos:q}}function C1({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:j,assetValue:Q,feeOptionKey:U=W1.Fast,...Y}){let G=await J?.getAddress();if(!(J&&G))throw new x("toolbox_utxo_no_signer");if(!j)throw new x("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let L=Y.feeRate||(await $())[U],{tx:q}=await d2({...Y,assetValue:Q,feeRate:L,recipient:j,sender:G}),z=await J.signTransaction(q);return z.finalize(),X(x2.encode(z.extract()))}}async function H1({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){let Q=HX($);if(!r(Q))throw new x("toolbox_utxo_invalid_address",{address:Q});let U=Math.ceil(X.getBaseValue("number")+Z*7500),Y=await b(m).getUtxos({address:FX(j),fetchTxHex:!0,targetValue:U}),G=Number(Z.toFixed(0)),L=J?E(J):null,q=[];if(q.push({address:l($),value:X.getBaseValue("number")}),L)q.push({script:L,value:0});let{inputs:z,outputs:W}=A({chain:m,feeRate:G,inputs:Y,outputs:q});if(!(z&&W))throw new x("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new c2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!L,version:1}),{inputs:_,tx:D}=n({chain:m,compiledMemo:L,inputs:z,outputs:W,sender:l(j),tx:B});return{inputs:_,tx:D,utxos:Y}}function O1(X){let $=M1.bitcoinCash,J=o2(X.publicKey,$);if(!J.hash)throw new x("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return u2({hash:J.hash,prefix:h2.MAINNET,type:p2.P2PKH}).replace(/^bitcoincash:/,"")}var m;var uX=F(()=>{GX();UX();bX();m=z1.BitcoinCash});import{createBase58check as T1,hex as V1}from"@scure/base";import{HDKey as i2}from"@scure/bip32";import{mnemonicToSeedSync as s2}from"@scure/bip39";import{Chain as oX,derivationPathToString as b1,FeeOption as k1,NetworkDerivationPath as I1,SKConfig as a2,SwapKitError as WX,updateDerivationPath as f1}from"@swapkit/helpers";import{Address as F1,createZcashTransaction as P1,OutScript as E1,PCZT as R1,utils as t2,WIF as y1,ZCASH_NETWORK as v1,ZCASH_TEST_NETWORK as A1,ZcashConsensusBranchId as w1,ZcashSigHash as r2,ZcashVersionGroupId as S1}from"@swapkit/utxo-signer";import{match as K1,P as q2}from"ts-pattern";function e2(){let{isStagenet:X}=a2.get("envs");return X?A1:v1}function g1(X){return m1.encode(X)}function l1({phrase:X,derivationPath:$}){let J=s2(X),j=i2.fromMasterSeed(J).derive($);if(!j.privateKey||!j.publicKey)throw new WX("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:U}=j,Y=t2.hash160(U),{isStagenet:G}=a2.get("envs"),L=G?new Uint8Array([29,37]):new Uint8Array([28,184]),q=new Uint8Array(L.length+Y.length);q.set(L,0),q.set(Y,L.length);let z=g1(q);return{getAddress:()=>Promise.resolve(z),signTransaction:(W)=>{if(W instanceof R1)return W.signAllInputs(Q,U,r2.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract());return W.signAllInputs(Q,U,r2.ALL),Promise.resolve(W)}}}function x1({inputs:X,outputs:$,tx:J,sender:Z,compiledMemo:j}){let Q=e2();for(let U of X){let Y=F1(Q).decode(Z),G=E1.encode(Y);J.addInput({index:U.index,script:G,sequence:4294967295,txid:V1.decode(U.hash),value:BigInt(U.value)})}for(let U of $){let Y="address"in U&&U.address?U.address:Z,G=U.script;if(G&&!j)continue;if(G&&j)J.addOutput({amount:0n,script:j});else J.addOutputAddress(Y,BigInt(U.value),Q)}return{inputs:X,tx:J}}async function n2(X){let{assetValue:$,recipient:J,memo:Z,feeRate:j,sender:Q,fetchTxHex:U}=X,Y=Z?E(Z):null,G=await b(oX.Zcash).getUtxos({address:Q,fetchTxHex:U!==!1}),L=[{address:J,value:Number($.getBaseValue("string"))},...Y?[{script:Y,value:0}]:[]],{inputs:q,outputs:z}=A({chain:oX.Zcash,changeAddress:Q,feeRate:j,inputs:G,outputs:L});if(!(q&&z))throw new WX("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Q});let W=P1({consensusBranchId:w1.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:S1.SAPLING}),{tx:B,inputs:_}=x1({compiledMemo:Y,inputs:q,outputs:z,sender:Q,tx:W});return{inputs:_,outputs:z,tx:B}}function L2(X){let $=K1(X).with({signer:q2.not(q2.nullish)},({signer:G})=>G).with({phrase:q2.string},({phrase:G,derivationPath:L,index:q=0})=>{let z=L||I1[oX.Zcash]||[44,133,0,0,0],W=f1(z,{index:q}),B=b1(W);return l1({derivationPath:B,phrase:G})}).otherwise(()=>{return}),J=i({chain:oX.Zcash,signer:$});async function Z({recipient:G,assetValue:L,feeOptionKey:q=k1.Fast,...z}){let W=await $?.getAddress();if(!($&&W))throw new WX("toolbox_utxo_no_signer");let B=z.feeRate||(await J.getFeeRates())[q],{tx:_}=await n2({...z,assetValue:L,feeRate:B,recipient:G,sender:W}),V=(await $.signTransaction(_)).toHex();return J.broadcastTx(V)}function j({phrase:G,derivationPath:L="m/44'/133'/0'/0/0"}){let q=s2(G),W=i2.fromMasterSeed(q).derive(L);if(!W.privateKey||!W.publicKey)throw new WX("toolbox_utxo_invalid_params");return{privateKey:W.privateKey,publicKey:W.publicKey}}function Q({phrase:G,derivationPath:L="m/44'/133'/0'/0/0"}){let q=j({derivationPath:L,phrase:G}),z=e2();return y1(z).encode(q.privateKey)}function U(G){return async function(q){if(!G)throw new WX("toolbox_utxo_no_signer");return await G.signTransaction(q)}}function Y(G){return async function(q){if(!G)throw new WX("toolbox_utxo_no_signer");let z=await G.signTransaction(q);return J.broadcastTx(z.toHex())}}return{...J,createKeysForPath:j,createTransaction:n2,getPrivateKeyFromMnemonic:Q,signAndBroadcastTransaction:Y($),signTransaction:U($),transfer:Z,validateAddress:YX}}var m1;var z2=F(()=>{GX();UX();bX();m1=T1(t2.sha256)});import{hex as h1}from"@scure/base";import{HDKey as p1}from"@scure/bip32";import{derivationPathToString as u1}from"@swapkit/helpers";function X0({xpub:X,chain:$,count:J,startIndex:Z=0,accountIndex:j}){if(v("count",J),J<1)throw RangeError("count must be at least 1");v("startIndex",Z);let Q=P($),U=p1.fromExtendedKey(X,Q.bip32),Y=c({accountIndex:j,chain:$}),G=a(Y),L=[];for(let q of[!1,!0]){let z=U.deriveChild(Number(q));for(let W=0;W<J;W++){let B=Z+W,_=z.deriveChild(B);if(!_.publicKey)continue;let D=ZX({accountIndex:j,chain:$,change:q,index:B});L.push({accountIndex:G,address:fX({chain:$,network:Q,publicKey:_.publicKey}),change:q,index:B,path:u1(D),pubkey:h1.encode(_.publicKey)})}}return L}var $0=F(()=>{DX();UX()});import{Chain as BX,SwapKitError as o1}from"@swapkit/helpers";function c1(X,$){switch(X){case BX.BitcoinCash:return Y2($||{});case BX.Zcash:return L2($);case BX.Bitcoin:case BX.Dogecoin:case BX.Litecoin:case BX.Dash:return i({chain:X,...$});default:throw new o1("toolbox_utxo_not_supported",{chain:X})}}var J0=F(()=>{uX();UX();z2();DX();$0();uX();bX()});var d1={};q0(d1,{validateZcashAddress:()=>YX,validateUtxoAddress:()=>j2,validateBchAddress:()=>r,toLegacyAddress:()=>l,toCashAddress:()=>HX,stripToCashAddress:()=>FX,stripPrefix:()=>$X,nonSegwitChains:()=>IX,isValidAddress:()=>tX,getUtxoToolbox:()=>c1,getUtxoNetwork:()=>f0,getUtxoApi:()=>b,getUTXOAddressValidator:()=>Q2,getUTXOAddressPath:()=>ZX,getUTXOAccountPath:()=>c,getUTXOAccountIndexFromPath:()=>a,getScriptTypeForAddress:()=>QX,getOutputSize:()=>TX,getNetworkForChain:()=>P,getInputSize:()=>d,getDustThreshold:()=>VX,detectAddressNetwork:()=>eX,deriveAddressesFromXpub:()=>X0,createZcashToolbox:()=>L2,createUTXOToolbox:()=>i,createHDWalletHelpers:()=>W2,createCustomUtxoApi:()=>I0,createBCHToolbox:()=>Y2,compileMemo:()=>E,calculateTxSize:()=>e,assertDerivationIndex:()=>v,addressFromKeysGetter:()=>G2,addInputsAndOutputs:()=>n,accumulative:()=>A,UtxoNetwork:()=>aX,UTXOScriptType:()=>xX,TX_OVERHEAD:()=>gX,SEGWIT_MARKER_FLAG_WEIGHT:()=>lX,OutputSizes:()=>OX,OP_RETURN_OVERHEAD:()=>F2,MIN_TX_FEE:()=>h0,InputSizes:()=>mX});var r1=F(()=>{UX();DX();GX();J0();uX();z2()});r1();export{YX as validateZcashAddress,j2 as validateUtxoAddress,r as validateBchAddress,l as toLegacyAddress,HX as toCashAddress,FX as stripToCashAddress,$X as stripPrefix,IX as nonSegwitChains,tX as isValidAddress,c1 as getUtxoToolbox,f0 as getUtxoNetwork,b as getUtxoApi,Q2 as getUTXOAddressValidator,ZX as getUTXOAddressPath,c as getUTXOAccountPath,a as getUTXOAccountIndexFromPath,QX as getScriptTypeForAddress,TX as getOutputSize,P as getNetworkForChain,d as getInputSize,VX as getDustThreshold,eX as detectAddressNetwork,X0 as deriveAddressesFromXpub,L2 as createZcashToolbox,i as createUTXOToolbox,W2 as createHDWalletHelpers,I0 as createCustomUtxoApi,Y2 as createBCHToolbox,E as compileMemo,e as calculateTxSize,v as assertDerivationIndex,G2 as addressFromKeysGetter,n as addInputsAndOutputs,A as accumulative,aX as UtxoNetwork,xX as UTXOScriptType,gX as TX_OVERHEAD,lX as SEGWIT_MARKER_FLAG_WEIGHT,OX as OutputSizes,F2 as OP_RETURN_OVERHEAD,h0 as MIN_TX_FEE,mX as InputSizes};
1
+ var q0=Object.defineProperty;var L0=(X)=>X;function z0(X,$){this[X]=L0.bind(null,$)}var U0=(X,$)=>{for(var J in $)q0(X,J,{get:$[J],enumerable:!0,configurable:!0,set:z0.bind($,J)})};var E=(X,$)=>()=>(X&&($=X(X=0)),$);var a1=((X)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(X,{get:($,J)=>(typeof require<"u"?require:$)[J]}):X)(function(X){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+X+'" is not supported')});import{NetworkDerivationPath as W0}from"@swapkit/helpers";function v(X,$){if(!Number.isInteger($)||$<0)throw RangeError(`${X} must be a non-negative integer, got: ${$}`)}function c({accountIndex:X,chain:$,derivationPath:J}){if(X!==void 0)v("accountIndex",X);let Z=[...J?.slice(0,3)??W0[$].slice(0,3)];if(X!==void 0)Z[2]=X;return Z}function ZX({accountIndex:X,change:$=!1,chain:J,derivationPath:Z,index:j}){return v("index",j),[...c({accountIndex:X,chain:J,derivationPath:Z}),Number($),j]}function s(X){return X[2]??0}function B2({deriveAddress:X,getBalance:$,getUtxos:J}){async function Z(q){let{accountIndex:G,count:Y,startIndex:U=0,change:z=!1}=q;if(v("count",Y),Y<1)throw RangeError("count must be at least 1");v("startIndex",U);let W=[];for(let B=0;B<Y;B++){let _=await X({accountIndex:G,change:z,index:U+B});if(_)W.push(_)}return W}async function j(q){let{gapLimit:G=20,change:Y=!1}=q??{},U=[],z=0,W=0;while(z<G){let B=await X({change:Y,index:W});if(!B)break;if((await $(B.address)).some((b)=>b.getValue("number")>0))U.push(B),z=0;else z++;W++}return U}async function Q(q=20){let[G,Y]=await Promise.all([j({change:!1,gapLimit:q}),j({change:!0,gapLimit:q})]),U=[...G,...Y],z=await Promise.all(U.map(async(B)=>{let D=(await $(B.address)).reduce((b,JX)=>b+JX.getValue("number"),0);return{...B,balance:D}})),W=z.reduce((B,_)=>B+_.balance,0);return{addresses:z,total:W}}async function L(q=20){let[G,Y]=await Promise.all([j({change:!1,gapLimit:q}),j({change:!0,gapLimit:q})]),U=[...G,...Y];return(await Promise.all(U.map(async(W)=>{return(await J(W.address)).map((_)=>({..._,address:W.address,derivationIndex:W.index,isChange:W.change}))}))).flat()}return{deriveAddresses:Z,getAggregatedBalance:Q,getAggregatedUtxos:L,scanForAddresses:j}}var MX=()=>{};import{AssetValue as _2,getChainConfig as B0}from"@swapkit/helpers";import{SwapKitApi as _0}from"@swapkit/helpers/api";function N2(){function X(){let $=Date.now(),J=iX||$;return iX=J,$>iX?$:J+1}return N0+X().toString(36)}function M2(X){return async function(J,Z=!0){let j=await _0.getChainBalance({address:J,chain:X,scamFilter:Z}),{baseDecimal:Q}=B0(X),L=j.map(({identifier:G,value:Y,decimal:U})=>{return new _2({decimal:U||Q,identifier:G,value:Y})});if(!L.some((G)=>G.isGasAsset))return[_2.from({chain:X}),...L];return L}}var N0,iX=0;var sX=E(()=>{N0=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{Chain as T,getRPCUrl as M0,RequestClient as wX,SKConfig as D0,SwapKitError as K,warnOnce as C0}from"@swapkit/helpers";import{NETWORKS as jX}from"@swapkit/utxo-signer";async function H0({chain:X,txHash:$}){let J=`${DX(X)}/push/transaction`,Z=JSON.stringify({data:$});try{let j=await wX.post(J,{body:Z,headers:{"Content-Type":"application/json"}});if(j.context.code!==200)throw new K("toolbox_utxo_broadcast_failed",{error:j.context.error||"Transaction broadcast failed"});return j.data?.transaction_hash||$}catch(j){let Q=await M0(X);if(Q){let L=JSON.stringify({id:N2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),q=await wX.post(Q,{body:L,headers:{"Content-Type":"application/json"}});if(q.error)throw new K("toolbox_utxo_broadcast_failed",{error:q.error?.message});if(q.result.includes('"code":-26'))throw new K("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return q.result}throw j}}function DX(X){return`https://api.blockchair.com/${O0(X)}`}function D2(X){switch(X){case T.Bitcoin:return 5;case T.Dogecoin:return 1e4;case T.Litecoin:return 1;case T.Zcash:return 1;default:return 2}}function O0(X){switch(X){case T.BitcoinCash:return"bitcoin-cash";case T.Litecoin:return"litecoin";case T.Dash:return"dash";case T.Dogecoin:return"dogecoin";case T.Zcash:return"zcash";case T.Polkadot:return"polkadot";default:return"bitcoin"}}async function V0(X){try{let{feePerKb:$}=await wX.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,D2(X))}catch{return D2(X)}}async function SX(X,$){let J=await wX.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new K("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function H2({address:X,chain:$,apiKey:J}){if(!X)throw new K("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await SX(`${DX($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function b0({address:X,chain:$,apiKey:J}){return(await H2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function O2({chain:X,apiKey:$,txHash:J}){if(!J)throw new K("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await SX(`${DX(X)}/raw/transaction/${J}`,$))?.[J]?.raw_transaction||""}catch(Z){let j=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch raw transaction: ${j}`),""}}async function I0({chain:X,apiKey:$,txHash:J}){if(!J)throw new K("toolbox_utxo_invalid_params",{error:"TxHash is required"});let j=(await SX(`${DX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!j)throw new K("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Q,inputs:L,outputs:q}=j,G=L.map((U)=>U.spending_sequence),Y=Q.is_rbf===!0||G.some((U)=>U<k0);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:L,isRBF:Y,outputs:q,sequences:G,size:Q.size,txid:Q.hash,weight:Q.weight}}async function f0({chain:X,address:$,apiKey:J,offset:Z=0,limit:j=30}){return(await SX(`${DX(X)}/outputs?q=recipient(${$}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${j}&offset=${Z}`,J)).map(({is_spent:G,script_hex:Y,block_id:U,transaction_hash:z,index:W,value:B,spending_signature_hex:_})=>({hash:z,index:W,is_confirmed:U!==-1,is_spent:G,script_hex:Y,txHex:_,value:B}))}function T0(X){return X.reduce(($,J)=>$+J.value,0)}function C2(X,$){let J=[...X].sort((Z,j)=>j.value-Z.value);if($){let Z=[],j=0;for(let Q of J)if(Z.push(Q),j+=Q.value,j>=$)break;return Z}return J}async function V2({chain:X,address:$,apiKey:J,targetValue:Z,accumulativeValue:j=0,offset:Q=0,limit:L=30}){if(!$)throw new K("toolbox_utxo_invalid_params",{error:"Address is required"});try{let q=await f0({address:$,apiKey:J,chain:X,limit:L,offset:Q,targetValue:Z}),Y=q.length<L,U=q.filter(({is_spent:b})=>!b),z=T0(U),W=j+z,B=Z&&W>=Z;if(Y||B)return C2(U,Z);let _=await V2({accumulativeValue:W,address:$,apiKey:J,chain:X,limit:L,offset:Q+L,targetValue:Z}),D=[...U,..._];return C2(D,Z)}catch(q){let G=q instanceof Error?q.message:String(q);return console.error(`Failed to fetch unspent UTXOs: ${G}`),[]}}async function E0({address:X,chain:$,apiKey:J,fetchTxHex:Z=!0,targetValue:j}){let Q=await V2({address:X,apiKey:J,chain:$,targetValue:j}),L=[];for(let{hash:q,index:G,script_hex:Y,value:U}of Q){let z;if(Z)z=await O2({apiKey:J,chain:$,txHash:q});L.push({address:X,hash:q,index:G,txHex:z,value:U,witnessUtxo:{script:Buffer.from(Y,"hex"),value:U}})}return L}function k(X){let $=D0.get("apiKeys").blockchair||"";return C0({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>H0({chain:X,txHash:J}),getAddressData:(J)=>H2({address:J,apiKey:$,chain:X}),getBalance:(J)=>b0({address:J,apiKey:$,chain:X}),getRawTx:(J)=>O2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>V0(X),getTransactionDetails:(J)=>I0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>E0({...J,apiKey:$,chain:X})}}function F0(X){return X}function P0(){return function($){switch($){case T.Bitcoin:return jX.bitcoin;case T.BitcoinCash:return jX.bitcoinCash;case T.Dash:return jX.dash;case T.Litecoin:return jX.litecoin;case T.Dogecoin:return jX.dogecoin;case T.Zcash:return jX.zcash;default:throw new K("toolbox_utxo_not_supported",{chain:$})}}}var k0=4294967294;var b2=E(()=>{sX()});import{CashAddrType as KX,decodeCashAddr as R0,encodeCashAddr as y0}from"@swapkit/utxo-signer";function w0(X,$,J){return y0({hash:J,prefix:X,type:v0[$]})}function S0(X){let $=R0(X),J=A0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var v0,A0,aX;var k2=E(()=>{v0={P2PKH:KX.P2PKH,P2SH:KX.P2SH},A0={[KX.P2PKH]:"P2PKH",[KX.P2SH]:"P2SH"};aX={decode:S0,encode:w0}});import{sha256 as K0}from"@noble/hashes/sha2.js";import{createBase58check as m0}from"@scure/base";import{SwapKitError as f2}from"@swapkit/helpers";function eX(X){try{return mX(X),!0}catch{return!1}}function X2(X){return mX(X)?.network}function x(X){let $=mX(X);if($?.format==="legacy")return X;return x0($)}function CX(X){let $=mX(X);return h0($)}function mX(X){try{let $=g0(X);if($)return $}catch{}try{let $=l0(X);if($)return $}catch{}throw new f2("toolbox_utxo_invalid_address",{address:X})}function g0(X){try{let $=T2.decode(X);if($.length!==21)throw new f2("toolbox_utxo_invalid_address",{address:X});let J=$[0],Z=Array.prototype.slice.call($,1);switch(J){case a.legacy.mainnet.p2pkh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2pkh"};case a.legacy.mainnet.p2sh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2sh"};case a.legacy.testnet.p2pkh:return{format:"legacy",hash:Z,network:"testnet",type:"p2pkh"};case a.legacy.testnet.p2sh:return{format:"legacy",hash:Z,network:"testnet",type:"p2sh"};case a.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2pkh"};case a.bitpay.mainnet.p2sh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function l0(X){if(X.indexOf(":")!==-1)try{return I2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return I2(`${J}:${X}`)}catch{}}return}function I2(X){try{let{hash:$,prefix:J,type:Z}=aX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:Z==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function x0(X){let $=a.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),T2.encode(J)}function h0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",Z=new Uint8Array(X.hash);return aX.encode($,J,Z)}var T2,tX,a;var E2=E(()=>{k2();T2=m0(K0);((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(tX||={});a={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as p0}from"@swapkit/helpers";import{Script as u0}from"@swapkit/utxo-signer";function R(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return u0.encode(["RETURN",$])}var o0=1000,lX=10,xX=2,F2=10,c0=41,r0=107,hX,gX,HX,QX=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new p0("toolbox_utxo_invalid_address",{address:X})},t=({inputs:X,outputs:$,feeRate:J})=>{let Z=X[0]&&"address"in X[0]&&X[0].address?QX(X[0].address):"P2PKH",Q=(J?X.filter((Y)=>Y.value>=gX["type"in Y&&Y.type?Y.type:"P2PKH"]*Math.ceil(J)):X).reduce((Y,U)=>Y+r(U),0),L=$?.reduce((Y,U)=>Y+OX(U),0)||HX[Z],q=lX+Q+L;return Z==="P2WPKH"?Math.ceil(q+xX/4):q},r=(X)=>{if("type"in X&&X.type)return gX[X.type];if("address"in X&&X.address)return gX[QX(X.address)];return c0+r0},OX=(X,$)=>{if(X?.script)return F2+X.script.length+(X.script.length>=74?2:1);if($)return HX[$];if("address"in X&&X.address)return HX[QX(X.address)];return HX.P2PKH};var $2=E(()=>{((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(hX||={});gX={["P2PKH"]:148,["P2WPKH"]:68},HX={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as e,SwapKitError as d0}from"@swapkit/helpers";function VX(X){switch(X){case e.Bitcoin:case e.BitcoinCash:return 550;case e.Dash:case e.Litecoin:return 5500;case e.Dogecoin:return 1e5;case e.Zcash:return 546;default:throw new d0("toolbox_utxo_not_supported",{chain:X})}}function A({inputs:X,outputs:$,feeRate:J=1,chain:Z=e.Bitcoin,changeAddress:j=""}){let Q=X[0]&&"address"in X[0]&&X[0].address?QX(X[0].address):"P2PKH",L=X.filter((_)=>r(_)*J<=_.value),G=Q==="P2WPKH"?Math.ceil(xX/4):0,Y=lX+G+$.reduce((_,D)=>_+OX(D),0),U=$.reduce((_,D)=>_+D.value,0),z=Y*J,W=0,B=[];for(let _ of L){let D=r(_),b=J*D;z+=b,W+=_.value,B.push(_);let JX=z+U;if(W<JX)continue;let FX=W-JX,PX=J*OX({address:j,value:0});if(FX>PX){let BX=PX+z,_X=W-(U+Math.ceil(BX));if(_X>Math.max(r({value:0})*J,VX(Z)))return{fee:Math.ceil(BX),inputs:B,outputs:$.concat({address:j,value:_X})}}return{fee:Math.ceil(z),inputs:B,outputs:$}}return{fee:Math.ceil(J*t({inputs:X,outputs:$}))}}var P2=E(()=>{$2()});var GX=E(()=>{b2();E2();P2();$2()});import{Address as n0,ZCASH_NETWORK as i0}from"@swapkit/utxo-signer";function XX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function d(X){let $=XX(X);return eX($)&&X2($)==="mainnet"}function YX(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let J=n0(i0).decode(X);return J.type==="pkh"||J.type==="sh"}catch{return!1}}var bX=E(()=>{GX()});import{secp256k1 as s0}from"@noble/curves/secp256k1.js";import{hex as $X}from"@scure/base";import{HDKey as A2}from"@scure/bip32";import{mnemonicToSeedSync as Z2}from"@scure/bip39";import{AssetValue as pX,applyFeeMultiplier as R2,Chain as I,derivationPathToString as kX,FeeOption as m,NetworkDerivationPath as w2,SwapKitError as V,SwapKitNumber as a0,updateDerivationPath as t0,warnOnce as e0}from"@swapkit/helpers";import{Address as X1,BCHSigHash as j2,CashAddrPrefix as $1,CashAddrType as J1,encodeCashAddr as Z1,NETWORKS as qX,p2pkh as y2,p2wpkh as j1,RBF_SEQUENCE as Q1,SigHash as S2,Transaction as J2,WIF as K2}from"@swapkit/utxo-signer";import{match as m2}from"ts-pattern";function Q2({address:X,chain:$}){return m2($).with(I.BitcoinCash,()=>d(X)).with(I.Zcash,()=>YX(X)).otherwise(()=>{try{return X1(F($)).decode(X),!0}catch{return!1}})}function F(X){return m2(X).with(I.Bitcoin,()=>qX.bitcoin).with(I.BitcoinCash,()=>qX.bitcoinCash).with(I.Dash,()=>qX.dash).with(I.Dogecoin,()=>qX.dogecoin).with(I.Litecoin,()=>qX.litecoin).with(I.Zcash,()=>qX.zcash).exhaustive()}function G1({phrase:X,derivationPath:$,network:J,seed:Z}){let j=Z??Z2(X),L=A2.fromMasterSeed(j,J.bip32).derive($);if(!L.privateKey)throw new V("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return L.privateKey}function v2(X){return s0.getPublicKey(X,!0)}function fX({publicKey:X,chain:$,network:J}){if($===I.BitcoinCash){let Q=y2(X,J);if(!Q.hash)throw new V("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Z1({hash:Q.hash,prefix:$1.MAINNET,type:J1.P2PKH}).replace(/^bitcoincash:/,"")}let j=!IX.includes($)?j1(X,J):y2(X,J);if(!j.address)throw new V("toolbox_utxo_invalid_address",{error:"Could not derive address"});return j.address}function LX({phrase:X,derivationPath:$,chain:J,wif:Z,seed:j}){let Q=F(J);if(Z){let Y=K2(Q).decode(Z),U=v2(Y);return{privateKey:Y,publicKey:U}}if(!X)throw new V("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let L=$||kX(w2[J]),q=G1({derivationPath:L,network:Q,phrase:X,seed:j}),G=v2(q);return{privateKey:q,publicKey:G}}function Y1(X,$){return K2(F($)).encode(X)}function q1({phrase:X,derivationPath:$,chain:J,seed:Z}){let j=$.split("/");if(j.length<4)throw new V("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${j.length}): ${$}`});let Q=F(J),L=Z??Z2(X),q=A2.fromMasterSeed(L,Q.bip32),G=j.slice(0,4).join("/");return q.derive(G)}function n({inputs:X,outputs:$,chain:J,tx:Z,sender:j,compiledMemo:Q,enableRBF:L=!1}){let q=F(J),G=!IX.includes(J),Y=L?Q1:void 0,U=new Set;for(let z of X){let W=`${z.hash}:${z.index}`;if(U.has(W))throw new V("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});U.add(W);let B=typeof z.hash==="string"?$X.decode(z.hash):z.hash;if(G&&z.witnessUtxo)Z.addInput({index:z.index,sequence:Y,txid:B,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)Z.addInput({index:z.index,nonWitnessUtxo:$X.decode(z.txHex),sequence:Y,txid:B,...J===I.BitcoinCash?{sighashType:j2.ALL}:{}});else throw new V("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let z of $){let W="address"in z&&z.address?z.address:j;if(J===I.BitcoinCash)W=x(W);if(z.script){if(Q)Z.addOutput({amount:0n,script:Q})}else Z.addOutputAddress(W,BigInt(z.value),q)}return{inputs:X,tx:Z}}async function zX(X){let $=await k(X).getSuggestedTxFee();return{[m.Average]:$,[m.Fast]:R2($,m.Fast),[m.Fastest]:R2($,m.Fastest)}}async function g2({assetValue:X,recipient:$,memo:J,sender:Z,fetchTxHex:j=!1}){let Q=X.chain,L=(await zX(Q))[m.Fastest],q=j||IX.includes(Q),G=X.getBaseValue("number"),Y=Math.ceil(G+L*5000);return{inputs:await k(Q).getUtxos({address:Z,fetchTxHex:q,targetValue:Y}),outputs:[{address:$,value:G},...J?[{address:"",script:R(J),value:0}]:[]]}}async function l2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j,fetchTxHex:Q=!1,enableRBF:L=!1}){let q=X.chain,G=J?R(J):null,Y=await g2({assetValue:X,fetchTxHex:Q,memo:J,recipient:$,sender:j}),{inputs:U,outputs:z}=A({...Y,chain:q,feeRate:Z});if(!(U&&z))throw new V("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let W=new J2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),{inputs:B,tx:_}=n({chain:q,compiledMemo:G,enableRBF:L,inputs:U,outputs:z,sender:j,tx:W});return{inputs:B,tx:_,utxos:Y.inputs}}async function x2({assetValue:X,feeOptionKey:$=m.Fast,feeRate:J,memo:Z,sender:j,recipient:Q}){let L=X.chain,q=await g2({assetValue:X,memo:Z,recipient:Q,sender:j}),G=J?Math.floor(J):(await zX(L))[$];return A({...q,chain:L,feeRate:G})}function L1(X){return async function({from:J,memo:Z,feeRate:j,feeOptionKey:Q=m.Fast,recipients:L=1}){let q=await k(X).getAddressData(J),G=j?Math.ceil(j):(await zX(X))[Q],Y=q?.utxo.map((D)=>({...D,hash:"",type:"P2PKH"})).filter((D)=>D.value>Math.max(VX(X),r(D)*G));if(!Y?.length)return pX.from({chain:X});let U=BigInt(Y.reduce((D,b)=>D+b.value,0)),z=pX.from({chain:X,value:U}),W=typeof L==="number"?Array.from({length:L},()=>({address:J,value:0})):L;if(Z)W.push({address:J,script:R(Z),value:0});let B=t({inputs:Y,outputs:W}),_=pX.from({chain:X,value:BigInt(B*G)});return z.sub(_)}}function z1(X){return async function(J){let{fee:Z}=await x2(J);return pX.from({chain:X,value:a0.fromBigInt(BigInt(Z),8).getValue("string")})}}function U1({chain:X,phrase:$,derivationPath:J,seed:Z}){let j=F(X),{privateKey:Q,publicKey:L}=LX({chain:X,derivationPath:J,phrase:$,seed:Z}),q=X===I.BitcoinCash?[j2.ALL]:[S2.ALL];return{getAddress:()=>fX({chain:X,network:j,publicKey:L}),privateKey:Q,publicKey:L,signTransaction:(G)=>{return G.sign(Q,q),G}}}function W1(X,$){return async function({memo:Z,recipient:j,feeOptionKey:Q,feeRate:L,assetValue:q,enableRBF:G=!1}){let Y=await $?.getAddress();if(!($&&Y))throw new V("toolbox_utxo_no_signer");if(!j)throw new V("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});e0({condition:G&&!uX.includes(X),id:`rbf_not_supported_${X}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${X}. Transaction will be created without RBF signaling.`});let U=G&&uX.includes(X),z=L||(await zX(X))[Q||m.Fast],{tx:W}=await l2({assetValue:q,enableRBF:U,feeRate:z,memo:Z,recipient:j,sender:Y}),B=await $.signTransaction(W);return B.finalize(),k(X).broadcastTx($X.encode(B.extract()))}}function G2(X){return($)=>Q2({address:$,chain:X})}function Y2(X){let $=F(X);return function(Z){if(!Z)throw new V("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return fX({chain:X,network:$,publicKey:Z.publicKey})}}function i({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,Z="index"in $?$.index||0:0,j=J?Z2(J):void 0,Q="derivationPath"in $&&$.derivationPath?$.derivationPath:t0(w2[X],{index:Z}),L=kX(Q),q=J?U1({chain:X,derivationPath:L,phrase:J,seed:j}):void 0,G="signer"in $?$.signer:void 0,Y=q||G,U=J?LX({chain:X,derivationPath:L,phrase:J,seed:j}):void 0;function z(){if(Y)return Y.getAddress();return Promise.resolve(void 0)}function W(N){if(!J)return;let M=c({accountIndex:N,chain:X,derivationPath:Q});return q1({chain:X,derivationPath:kX(M),phrase:J,seed:j})}let B=W();function _(){if(!B)return;return B.publicExtendedKey}function D({accountIndex:N}={}){let M=N===void 0?B:W(N);if(!M)return;let C=c({accountIndex:N,chain:X,derivationPath:Q});return{accountIndex:s(C),path:kX(C),xpub:M.publicExtendedKey}}function b({accountIndex:N,index:M,change:C=!1}){let H=N===void 0?B:W(N);if(!H)return;let O=ZX({accountIndex:N,chain:X,change:C,derivationPath:Q,index:M}),y=F(X),w=H.deriveChild(Number(C)).deriveChild(M);if(!w.publicKey)throw new V("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let P=fX({chain:X,network:y,publicKey:w.publicKey}),S=$X.encode(w.publicKey);return{accountIndex:s(O),address:P,change:C,index:M,path:kX(O),pubkey:S}}async function JX(N){if(!uX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let M=await k(X).getTransactionDetails(N);return{canReplace:M.isRBF&&!M.confirmed,confirmed:M.confirmed,enabled:M.isRBF,fee:M.fee,sequences:M.sequences,supported:!0}}async function FX({txid:N,newFeeRate:M,recipient:C,memo:H}){if(!uX.includes(X))throw new V("toolbox_utxo_rbf_not_supported",{chain:X});let O=await k(X).getTransactionDetails(N);if(!O.isRBF)throw new V("toolbox_utxo_tx_not_replaceable",{txid:N});if(O.confirmed)throw new V("toolbox_utxo_tx_already_confirmed",{blockId:O.blockId,txid:N});let y=O.inputs.reduce((f,o)=>f+o.value,0),P=O.outputs.find((f)=>f.recipient===C)?.value||0;if(P===0)throw new V("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let S=await Promise.all(O.inputs.map(async(f)=>{let o=await k(X).getRawTx(f.transaction_hash);return{hash:f.transaction_hash,index:f.index,txHex:o,value:f.value,witnessUtxo:void 0}})),RX=H?R(H):null,dX=t({feeRate:M,inputs:S.map((f)=>({...f,type:"P2WPKH"})),outputs:[{address:C,value:P}]}),l=Math.ceil(dX*M);if(l<=O.fee)throw new V("toolbox_utxo_rbf_fee_too_low",{newFee:l,originalFee:O.fee});let NX=l-O.fee,p=P-NX;if(p<=0)throw new V("toolbox_utxo_rbf_insufficient_change");let yX=new J2({allowLegacyWitnessUtxo:!0,version:1}),vX=[{address:C,value:p},...H?[{address:"",script:R(H),value:0}]:[]],AX=y-p-l,u=await z();if(AX>VX(X)&&u)vX.push({address:u,value:AX});return n({chain:X,compiledMemo:RX,inputs:S,outputs:vX,sender:u||C,tx:yX}),{feeDelta:NX,newFee:l,originalFee:O.fee,tx:yX}}async function PX({txid:N,newFeeRate:M,recipient:C,memo:H}){let{tx:O,originalFee:y,newFee:w}=await FX({memo:H,newFeeRate:M,recipient:C,txid:N}),P=await rX(O);P.finalize();let S=await k(X).broadcastTx($X.encode(P.extract()));return{newFee:w,originalFee:y,txid:S}}function BX({accountIndex:N,index:M,change:C=!1}){v("index",M);let H=N===void 0?B:W(N);if(!H)return;return H.deriveChild(Number(C)).deriveChild(M).privateKey||void 0}function _X({tx:N,inputDerivations:M}){if(!B)throw new V("toolbox_utxo_no_signer");let C=X===I.BitcoinCash?[j2.ALL]:[S2.ALL];for(let H=0;H<M.length;H++){let O=M[H];if(!O)continue;let{derivationIndex:y,isChange:w}=O,P=BX({change:w,index:y});if(!P)throw new V("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${H} at index ${y}`});N.signIdx(P,H,C)}return N}async function j0({utxos:N,recipient:M,assetValue:C,memo:H,feeRate:O,feeOptionKey:y,changeAddress:w}){if(!B)throw new V("toolbox_utxo_no_signer");let P=O||(await zX(X))[y||m.Fast],S=H?R(H):null,RX=[{address:M,value:C.getBaseValue("number")}];if(S)RX.push({address:"",script:S,value:0});let dX=N.map(({hash:u,index:f,value:o,txHex:Y0,witnessUtxo:nX})=>({hash:u,index:f,txHex:Y0,value:o,witnessUtxo:nX?{script:nX.script,value:nX.value}:void 0})),{inputs:l,outputs:NX}=A({chain:X,feeRate:P,inputs:dX,outputs:RX});if(!(l&&NX))throw new V("toolbox_utxo_insufficient_balance",{assetValue:C,sender:"multiple addresses"});let p=new J2({allowLegacyWitnessUtxo:!0,version:1}),yX=N[0]?.address,vX=w||await z()||yX||M;n({chain:X,compiledMemo:S,inputs:l,outputs:NX,sender:vX,tx:p});let AX=l.map((u)=>{let f=N.find((o)=>o.hash===u.hash&&o.index===u.index);return f?{derivationIndex:f.derivationIndex,isChange:f.isChange}:{derivationIndex:0,isChange:!1}});return _X({inputDerivations:AX,tx:p}),p.finalize(),k(X).broadcastTx($X.encode(p.extract()))}function Q0({address:N,gapLimit:M=20}){if(!B)return;for(let C=0;C<M;C++){let H=b({change:!1,index:C}),O=b({change:!0,index:C}),y=H?.address===N?!1:O?.address===N;if(H?.address===N||O?.address===N)return{change:y,index:C}}return}function rX(N){if(!Y)throw new V("toolbox_utxo_no_signer");return Y.signTransaction(N)}async function G0(N){let M=await rX(N);return M.finalize(),await k(X).broadcastTx($X.encode(M.extract()))}return{accumulative:A,broadcastTx:(N)=>k(X).broadcastTx(N),bumpFee:PX,calculateTxSize:t,createKeysForPath:(N)=>LX({...N,chain:X}),createReplacementTransaction:FX,createTransaction:l2,deriveAddressAtIndex:b,derivePrivateKeyAtIndex:BX,estimateMaxSendableAmount:L1(X),estimateTransactionFee:z1(X),getAddress:z,getAddressFromKeys:Y2(X),getBalance:M2(X),getExtendedPublicKey:_,getExtendedPublicKeyInfo:D,getFeeRates:()=>zX(X),getInputsOutputsFee:x2,getNetworkForChain:()=>F(X),getPrivateKeyFromMnemonic:(N)=>Y1(LX({...N,chain:X}).privateKey,X),isRBFEnabled:JX,keys:U,resolveDerivationIndex:Q0,signAndBroadcastTransaction:G0,signTransaction:rX,signTransactionWithMultipleKeys:_X,transfer:W1(X,Y),transferFromMultipleAddresses:j0,validateAddress:G2(X)}}var IX,uX;var UX=E(()=>{sX();MX();GX();bX();IX=[I.Dash,I.Dogecoin,I.Zcash,I.BitcoinCash],uX=[I.Bitcoin]});import{hex as h2}from"@scure/base";import{Chain as B1,derivationPathToString as _1,FeeOption as N1,NetworkDerivationPath as M1,SwapKitError as h,updateDerivationPath as D1}from"@swapkit/helpers";import{BCHSigHash as C1,CashAddrPrefix as p2,CashAddrType as u2,encodeCashAddr as o2,NETWORKS as H1,p2pkh as c2,Transaction as r2}from"@swapkit/utxo-signer";function TX(X){return XX(CX(X))}function O1(X){let $=F(g);function J(j){return j.sign(X.privateKey,[C1.ALL]),j}function Z(){let j=c2(X.publicKey,$);if(!j.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=o2({hash:j.hash,prefix:p2.MAINNET,type:u2.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:Z,signTransaction:J}}function q2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,Z=_1("derivationPath"in X&&X.derivationPath?X.derivationPath:D1(M1[g],{index:J})),j=$?LX({chain:g,derivationPath:Z,phrase:$}):void 0,Q=j?O1(j):("signer"in X)?X.signer:void 0;function L(){return Promise.resolve(Q?.getAddress())}let{getBalance:q,getFeeRates:G,broadcastTx:Y,...U}=i({chain:g});function z(_,D=!0){return q(XX(CX(_)))}function W(_){if(!Q)throw new h("toolbox_utxo_no_signer");return Q.signTransaction(_)}async function B(_){let D=await W(_);return D.finalize(),await Y(h2.encode(D.extract()))}return{...U,broadcastTx:Y,buildTx:b1,createTransaction:d2,getAddress:L,getAddressFromKeys:k1,getBalance:z,getFeeRates:G,signAndBroadcastTransaction:B,signTransaction:W,stripPrefix:XX,stripToCashAddress:TX,transfer:V1({broadcastTx:Y,getFeeRates:G,signer:Q}),validateAddress:d}}async function d2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){if(!d($))throw new h("toolbox_utxo_invalid_address",{address:$});let Q=Math.ceil(X.getBaseValue("number")+Z*7500),L=await k(g).getUtxos({address:TX(j),fetchTxHex:!0,targetValue:Q}),q=J?R(J):null,G=[],Y=x($);if(G.push({address:Y,value:X.getBaseValue("number")}),q)G.push({script:q,value:0});let{inputs:U,outputs:z}=A({chain:g,feeRate:Z,inputs:L,outputs:G});if(!(U&&z))throw new h("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let W=new r2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),B=x(j),{inputs:_,tx:D}=n({chain:g,compiledMemo:q,inputs:U,outputs:z.map((b)=>("address"in b)&&b.address?{...b,address:x(b.address)}:b),sender:B,tx:W});return{inputs:_,tx:D,utxos:U}}function V1({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:j,assetValue:Q,feeOptionKey:L=N1.Fast,...q}){let G=await J?.getAddress();if(!(J&&G))throw new h("toolbox_utxo_no_signer");if(!j)throw new h("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Y=q.feeRate||(await $())[L],{tx:U}=await d2({...q,assetValue:Q,feeRate:Y,recipient:j,sender:G}),z=await J.signTransaction(U);return z.finalize(),X(h2.encode(z.extract()))}}async function b1({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){let Q=CX($);if(!d(Q))throw new h("toolbox_utxo_invalid_address",{address:Q});let L=Math.ceil(X.getBaseValue("number")+Z*7500),q=await k(g).getUtxos({address:TX(j),fetchTxHex:!0,targetValue:L}),G=Number(Z.toFixed(0)),Y=J?R(J):null,U=[];if(U.push({address:x($),value:X.getBaseValue("number")}),Y)U.push({script:Y,value:0});let{inputs:z,outputs:W}=A({chain:g,feeRate:G,inputs:q,outputs:U});if(!(z&&W))throw new h("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new r2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:_,tx:D}=n({chain:g,compiledMemo:Y,inputs:z,outputs:W,sender:x(j),tx:B});return{inputs:_,tx:D,utxos:q}}function k1(X){let $=H1.bitcoinCash,J=c2(X.publicKey,$);if(!J.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return o2({hash:J.hash,prefix:p2.MAINNET,type:u2.P2PKH}).replace(/^bitcoincash:/,"")}var g;var oX=E(()=>{GX();UX();bX();g=B1.BitcoinCash});import{createBase58check as I1,hex as f1}from"@scure/base";import{HDKey as s2}from"@scure/bip32";import{mnemonicToSeedSync as a2}from"@scure/bip39";import{Chain as cX,derivationPathToString as T1,FeeOption as E1,NetworkDerivationPath as F1,SKConfig as t2,SwapKitError as EX,updateDerivationPath as P1}from"@swapkit/helpers";import{Address as R1,createZcashTransaction as y1,OutScript as v1,PCZT as A1,utils as e2,WIF as w1,ZCASH_NETWORK as S1,ZCASH_TEST_NETWORK as K1,ZcashConsensusBranchId as m1,ZcashSigHash as n2,ZcashVersionGroupId as g1}from"@swapkit/utxo-signer";import{match as l1,P as L2}from"ts-pattern";function X0(){let{isStagenet:X}=t2.get("envs");return X?K1:S1}function h1(X){return x1.encode(X)}function p1({phrase:X,derivationPath:$}){let J=a2(X),j=s2.fromMasterSeed(J).derive($);if(!j.privateKey||!j.publicKey)throw new EX("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:L}=j,q=e2.hash160(L),{isStagenet:G}=t2.get("envs"),Y=G?new Uint8Array([29,37]):new Uint8Array([28,184]),U=new Uint8Array(Y.length+q.length);U.set(Y,0),U.set(q,Y.length);let z=h1(U);return{getAddress:()=>Promise.resolve(z),signTransaction:(W)=>{if(W instanceof A1)return W.signAllInputs(Q,L,n2.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract());return W.signAllInputs(Q,L,n2.ALL),Promise.resolve(W)}}}function u1({inputs:X,outputs:$,tx:J,sender:Z,compiledMemo:j}){let Q=X0();for(let L of X){let q=R1(Q).decode(Z),G=v1.encode(q);J.addInput({index:L.index,script:G,sequence:4294967295,txid:f1.decode(L.hash),value:BigInt(L.value)})}for(let L of $){let q="address"in L&&L.address?L.address:Z,G=L.script;if(G&&!j)continue;if(G&&j)J.addOutput({amount:0n,script:j});else J.addOutputAddress(q,BigInt(L.value),Q)}return{inputs:X,tx:J}}async function i2(X){let{assetValue:$,recipient:J,memo:Z,feeRate:j,sender:Q,fetchTxHex:L}=X,q=Z?R(Z):null,G=await k(cX.Zcash).getUtxos({address:Q,fetchTxHex:L!==!1}),Y=[{address:J,value:Number($.getBaseValue("string"))},...q?[{script:q,value:0}]:[]],{inputs:U,outputs:z}=A({chain:cX.Zcash,changeAddress:Q,feeRate:j,inputs:G,outputs:Y});if(!(U&&z))throw new EX("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Q});let W=y1({consensusBranchId:m1.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:g1.SAPLING}),{tx:B,inputs:_}=u1({compiledMemo:q,inputs:U,outputs:z,sender:Q,tx:W});return{inputs:_,outputs:z,tx:B}}function z2(X){let $=l1(X).with({signer:L2.not(L2.nullish)},({signer:G})=>G).with({phrase:L2.string},({phrase:G,derivationPath:Y,index:U=0})=>{let z=Y||F1[cX.Zcash]||[44,133,0,0,0],W=P1(z,{index:U}),B=T1(W);return p1({derivationPath:B,phrase:G})}).otherwise(()=>{return}),J=i({chain:cX.Zcash,signer:$});async function Z(G){if(!$)throw new EX("toolbox_utxo_no_signer");return await $.signTransaction(G)}async function j(G){let Y=await Z(G);return J.broadcastTx(Y.toHex())}async function Q({recipient:G,assetValue:Y,feeOptionKey:U=E1.Fast,...z}){let W=await $?.getAddress();if(!($&&W))throw new EX("toolbox_utxo_no_signer");let B=z.feeRate||(await J.getFeeRates())[U],{tx:_}=await i2({...z,assetValue:Y,feeRate:B,recipient:G,sender:W}),b=(await $.signTransaction(_)).toHex();return J.broadcastTx(b)}function L({phrase:G,derivationPath:Y="m/44'/133'/0'/0/0"}){let U=a2(G),W=s2.fromMasterSeed(U).derive(Y);if(!W.privateKey||!W.publicKey)throw new EX("toolbox_utxo_invalid_params");return{privateKey:W.privateKey,publicKey:W.publicKey}}function q({phrase:G,derivationPath:Y="m/44'/133'/0'/0/0"}){let U=L({derivationPath:Y,phrase:G}),z=X0();return w1(z).encode(U.privateKey)}return{...J,createKeysForPath:L,createTransaction:i2,getPrivateKeyFromMnemonic:q,signAndBroadcastTransaction:j,signTransaction:Z,transfer:Q,validateAddress:YX}}var x1;var U2=E(()=>{GX();UX();bX();x1=I1(e2.sha256)});import{hex as o1}from"@scure/base";import{HDKey as c1}from"@scure/bip32";import{derivationPathToString as r1}from"@swapkit/helpers";function $0({xpub:X,chain:$,count:J,startIndex:Z=0,accountIndex:j}){if(v("count",J),J<1)throw RangeError("count must be at least 1");v("startIndex",Z);let Q=F($),L=c1.fromExtendedKey(X,Q.bip32),q=c({accountIndex:j,chain:$}),G=s(q),Y=[];for(let U of[!1,!0]){let z=L.deriveChild(Number(U));for(let W=0;W<J;W++){let B=Z+W,_=z.deriveChild(B);if(!_.publicKey)continue;let D=ZX({accountIndex:j,chain:$,change:U,index:B});Y.push({accountIndex:G,address:fX({chain:$,network:Q,publicKey:_.publicKey}),change:U,index:B,path:r1(D),pubkey:o1.encode(_.publicKey)})}}return Y}var J0=E(()=>{MX();UX()});import{Chain as WX,SwapKitError as d1}from"@swapkit/helpers";function n1(X,$){switch(X){case WX.BitcoinCash:return q2($||{});case WX.Zcash:return z2($);case WX.Bitcoin:case WX.Dogecoin:case WX.Litecoin:case WX.Dash:return i({chain:X,...$});default:throw new d1("toolbox_utxo_not_supported",{chain:X})}}var Z0=E(()=>{oX();UX();U2();MX();J0();oX();bX()});var i1={};U0(i1,{validateZcashAddress:()=>YX,validateUtxoAddress:()=>Q2,validateBchAddress:()=>d,toLegacyAddress:()=>x,toCashAddress:()=>CX,stripToCashAddress:()=>TX,stripPrefix:()=>XX,nonSegwitChains:()=>IX,isValidAddress:()=>eX,getUtxoToolbox:()=>n1,getUtxoNetwork:()=>P0,getUtxoApi:()=>k,getUTXOAddressValidator:()=>G2,getUTXOAddressPath:()=>ZX,getUTXOAccountPath:()=>c,getUTXOAccountIndexFromPath:()=>s,getScriptTypeForAddress:()=>QX,getOutputSize:()=>OX,getNetworkForChain:()=>F,getInputSize:()=>r,getDustThreshold:()=>VX,detectAddressNetwork:()=>X2,deriveAddressesFromXpub:()=>$0,createZcashToolbox:()=>z2,createUTXOToolbox:()=>i,createHDWalletHelpers:()=>B2,createCustomUtxoApi:()=>F0,createBCHToolbox:()=>q2,compileMemo:()=>R,calculateTxSize:()=>t,assertDerivationIndex:()=>v,addressFromKeysGetter:()=>Y2,addInputsAndOutputs:()=>n,accumulative:()=>A,UtxoNetwork:()=>tX,UTXOScriptType:()=>hX,TX_OVERHEAD:()=>lX,SEGWIT_MARKER_FLAG_WEIGHT:()=>xX,OutputSizes:()=>HX,OP_RETURN_OVERHEAD:()=>F2,MIN_TX_FEE:()=>o0,InputSizes:()=>gX});var s1=E(()=>{UX();MX();GX();Z0();oX();U2()});s1();export{YX as validateZcashAddress,Q2 as validateUtxoAddress,d as validateBchAddress,x as toLegacyAddress,CX as toCashAddress,TX as stripToCashAddress,XX as stripPrefix,IX as nonSegwitChains,eX as isValidAddress,n1 as getUtxoToolbox,P0 as getUtxoNetwork,k as getUtxoApi,G2 as getUTXOAddressValidator,ZX as getUTXOAddressPath,c as getUTXOAccountPath,s as getUTXOAccountIndexFromPath,QX as getScriptTypeForAddress,OX as getOutputSize,F as getNetworkForChain,r as getInputSize,VX as getDustThreshold,X2 as detectAddressNetwork,$0 as deriveAddressesFromXpub,z2 as createZcashToolbox,i as createUTXOToolbox,B2 as createHDWalletHelpers,F0 as createCustomUtxoApi,q2 as createBCHToolbox,R as compileMemo,t as calculateTxSize,v as assertDerivationIndex,Y2 as addressFromKeysGetter,n as addInputsAndOutputs,A as accumulative,tX as UtxoNetwork,hX as UTXOScriptType,lX as TX_OVERHEAD,xX as SEGWIT_MARKER_FLAG_WEIGHT,HX as OutputSizes,F2 as OP_RETURN_OVERHEAD,o0 as MIN_TX_FEE,gX as InputSizes};
@@ -30,4 +30,3 @@ export declare const TEST_MNEMONIC = "abandon abandon abandon abandon abandon ab
30
30
  * ```
31
31
  */
32
32
  export declare function snapshotModule<T extends object>(namespace: T): T;
33
- //# sourceMappingURL=helpers.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export { createAptosExtensionTransfer, getAptosToolbox, validateAptosAddress } from "./toolbox";
2
2
  export type { AptosCreateTransactionParams, AptosExtensionProvider, AptosToolboxParams, AptosTransferParams, AptosWallet, } from "./types";
3
- //# sourceMappingURL=index.d.ts.map
@@ -18,4 +18,3 @@ export declare function getAptosToolbox({ derivationPath, provider: providerPara
18
18
  export declare function createAptosExtensionTransfer({ provider }: {
19
19
  provider: AptosExtensionProvider;
20
20
  }): ({ assetValue, recipient }: AptosTransferParams) => Promise<string>;
21
- //# sourceMappingURL=toolbox.d.ts.map
@@ -24,4 +24,3 @@ export interface AptosExtensionProvider {
24
24
  hash: string;
25
25
  }>;
26
26
  }
27
- //# sourceMappingURL=types.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export * from "./toolbox";
2
2
  export * from "./types";
3
- //# sourceMappingURL=index.d.ts.map
@@ -28,4 +28,3 @@ export declare function getCardanoToolbox(toolboxParams?: {
28
28
  };
29
29
  export type CardanoWallet = ReturnType<typeof getCardanoToolbox>;
30
30
  export {};
31
- //# sourceMappingURL=toolbox.d.ts.map
@@ -13,4 +13,3 @@ export type CardanoCreateTransactionParams = Omit<GenericCreateTransactionParams
13
13
  pureLovelaceOnly?: boolean;
14
14
  };
15
15
  export type CardanoTransferParams = Omit<GenericTransferParams, "feeRate">;
16
- //# sourceMappingURL=types.d.ts.map
@@ -2,4 +2,3 @@ export * from "./thorchainUtils";
2
2
  export * from "./toolbox";
3
3
  export * from "./types";
4
4
  export * from "./util";
5
- //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,3 @@ export declare function bech32ToBase64(address: string): string;
2
2
  export declare function base64ToBech32(address: string, prefix?: string): `${Lowercase<string>}1${string}`;
3
3
  export declare function toBase64(data: Uint8Array): string;
4
4
  export declare function fromBase64(base64String: string): Uint8Array<ArrayBufferLike>;
5
- //# sourceMappingURL=addressFormat.d.ts.map
@@ -2,4 +2,3 @@ export * from "./addressFormat";
2
2
  export * from "./messages";
3
3
  export * from "./registry";
4
4
  export * from "./types";
5
- //# sourceMappingURL=index.d.ts.map
@@ -62,7 +62,7 @@ export declare const buildAminoMsg: ({ sender, recipient, assetValue, memo, }: {
62
62
  to_address: string | undefined;
63
63
  };
64
64
  };
65
- export declare const convertToSignable: (msg: MsgSend | MsgDeposit, chain: TCLikeChain) => Promise<import("@cosmjs/proto-signing").EncodeObject>;
65
+ export declare const convertToSignable: (msg: MsgSend | MsgDeposit, chain: TCLikeChain) => Promise<import("@cosmjs/proto-signing/build").EncodeObject>;
66
66
  export declare function createTransaction(params: ThorchainCreateTransactionParams): Promise<{
67
67
  accountNumber: number;
68
68
  chainId: import("@swapkit/types").ChainId.Maya | import("@swapkit/types").ChainId.THORChain;
@@ -74,7 +74,7 @@ export declare function createTransaction(params: ThorchainCreateTransactionPara
74
74
  gas: string;
75
75
  };
76
76
  memo: string;
77
- msgs: (import("@cosmjs/proto-signing").EncodeObject | {
77
+ msgs: (import("@cosmjs/proto-signing/build").EncodeObject | {
78
78
  type: "thorchain/MsgSend" | "mayachain/MsgSend";
79
79
  value: {
80
80
  amount: {
@@ -97,7 +97,7 @@ export declare function createTransaction(params: ThorchainCreateTransactionPara
97
97
  gas: string;
98
98
  };
99
99
  memo: string;
100
- msgs: (import("@cosmjs/proto-signing").EncodeObject | {
100
+ msgs: (import("@cosmjs/proto-signing/build").EncodeObject | {
101
101
  type: "thorchain/MsgDeposit" | "mayachain/MsgDeposit";
102
102
  value: {
103
103
  coins: {
@@ -121,7 +121,7 @@ export declare function buildTransferTx({ sender, recipient, assetValue, memo, a
121
121
  gas: string;
122
122
  };
123
123
  memo: string;
124
- msgs: (import("@cosmjs/proto-signing").EncodeObject | {
124
+ msgs: (import("@cosmjs/proto-signing/build").EncodeObject | {
125
125
  type: "thorchain/MsgSend" | "mayachain/MsgSend";
126
126
  value: {
127
127
  amount: {
@@ -145,7 +145,7 @@ export declare function buildDepositTx({ sender, assetValue, memo, asSignable, a
145
145
  gas: string;
146
146
  };
147
147
  memo: string;
148
- msgs: (import("@cosmjs/proto-signing").EncodeObject | {
148
+ msgs: (import("@cosmjs/proto-signing/build").EncodeObject | {
149
149
  type: "thorchain/MsgDeposit" | "mayachain/MsgDeposit";
150
150
  value: {
151
151
  coins: {
@@ -203,6 +203,5 @@ export declare function buildEncodedTxBody({ chain, memo, msgs, }: {
203
203
  msgs: DirectMsgDepositForBroadcast[] | DirectMsgSendForBroadcast[];
204
204
  memo: string;
205
205
  chain: TCLikeChain;
206
- }): Promise<Uint8Array<ArrayBufferLike>>;
206
+ }): Promise<Uint8Array<ArrayBuffer>>;
207
207
  export {};
208
- //# sourceMappingURL=messages.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { type TCLikeChain } from "@swapkit/helpers";
2
- export declare function createDefaultRegistry(): Promise<import("@cosmjs/proto-signing").Registry>;
3
- export declare function createDefaultAminoTypes(chain: TCLikeChain): Promise<import("@cosmjs/stargate").AminoTypes>;
4
- //# sourceMappingURL=registry.d.ts.map
2
+ export declare function createDefaultRegistry(): Promise<import("@cosmjs/proto-signing/build").Registry>;
3
+ export declare function createDefaultAminoTypes(chain: TCLikeChain): Promise<import("@cosmjs/stargate/build").AminoTypes>;
@@ -1,2 +1 @@
1
1
  export declare const $root: any;
2
- //# sourceMappingURL=MsgCompiled.d.ts.map
@@ -60,4 +60,3 @@ export type ThorchainCreateTransactionParams = Omit<CosmosCreateTransactionParam
60
60
  };
61
61
  export type ThorchainDepositParams = Omit<GenericTransferParams, "recipient">;
62
62
  export {};
63
- //# sourceMappingURL=client-types.d.ts.map
@@ -1,2 +1 @@
1
1
  export * from "./client-types";
2
- //# sourceMappingURL=index.d.ts.map
@@ -18,7 +18,7 @@ export declare function getSignerFromPhrase({ phrase, prefix, ...derivationParam
18
18
  export declare function getSignerFromPrivateKey({ privateKey, prefix }: {
19
19
  privateKey: Uint8Array;
20
20
  prefix: string;
21
- }): Promise<import("@cosmjs/proto-signing").DirectSecp256k1Wallet>;
21
+ }): Promise<import("@cosmjs/proto-signing/build").DirectSecp256k1Wallet>;
22
22
  export declare function verifySignature(getAccount: (address: string) => Promise<Account | null>): ({ signature, message, address, }: {
23
23
  signature: string;
24
24
  message: string;
@@ -45,7 +45,7 @@ export declare function createCosmosToolbox({ chain, ...toolboxParams }: CosmosT
45
45
  phrase: string;
46
46
  derivationPath: DerivationPathArray;
47
47
  }) => Promise<DirectSecp256k1HdWallet>;
48
- getSignerFromPrivateKey: (privateKey: Uint8Array) => Promise<import("@cosmjs/proto-signing").DirectSecp256k1Wallet>;
48
+ getSignerFromPrivateKey: (privateKey: Uint8Array) => Promise<import("@cosmjs/proto-signing/build").DirectSecp256k1Wallet>;
49
49
  signAndBroadcastTransaction: (transaction: CosmosTransaction) => Promise<string>;
50
50
  signTransaction: (transaction: CosmosTransaction) => Promise<TxRaw>;
51
51
  transfer: ({ recipient, assetValue, memo, feeRate, feeOptionKey, }: GenericTransferParams) => Promise<string>;
@@ -61,4 +61,3 @@ export declare function estimateTransactionFee({ assetValue: { chain } }: {
61
61
  assetValue: AssetValue;
62
62
  }): AssetValue;
63
63
  export declare function getCosmosAddressValidator(chain: CosmosChain): (address: string) => boolean;
64
- //# sourceMappingURL=cosmos.d.ts.map
@@ -12,4 +12,3 @@ export type CosmosToolboxes = {
12
12
  export declare const getCosmosToolbox: <T extends Exclude<CosmosChain, Chain.Harbor>>(chain: T, params?: Omit<CosmosToolboxParams, "chain">) => CosmosToolboxes[T];
13
13
  export * from "./cosmos";
14
14
  export * from "./thorchain";
15
- //# sourceMappingURL=index.d.ts.map