@swapkit/toolboxes 4.15.15 → 4.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- var u=Object.create;var{getPrototypeOf:l,defineProperty:I,getOwnPropertyNames:E,getOwnPropertyDescriptor:p}=Object,T=Object.prototype.hasOwnProperty;function w(x){return this[x]}var o,c,Px=(x,P,L)=>{var X=x!=null&&typeof x==="object";if(X){var M=P?o??=new WeakMap:c??=new WeakMap,_=M.get(x);if(_)return _}L=x!=null?u(l(x)):{};let R=P||!x||!x.__esModule?I(L,"default",{value:x,enumerable:!0}):L;for(let Z of E(x))if(!T.call(R,Z))I(R,Z,{get:w.bind(x,Z),enumerable:!0});if(X)M.set(x,R);return R},d=(x)=>{var P=(H??=new WeakMap).get(x),L;if(P)return P;if(P=I({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var X of E(x))if(!T.call(P,X))I(P,X,{get:w.bind(x,X),enumerable:!(L=p(x,X))||L.enumerable})}return H.set(x,P),P},H;var n=(x)=>x;function i(x,P){this[x]=n.bind(null,P)}var t=(x,P)=>{for(var L in P)I(x,L,{get:P[L],enumerable:!0,configurable:!0,set:i.bind(P,L)})};var k=(x,P)=>()=>(x&&(P=x(x=0)),P);function N(x){if(!x||typeof x!=="string"||!x.startsWith("G")||x.length!==56)return!1;return s.test(x)}async function r(x){if(!N(x))return!1;try{let{StrKey:P}=await import("@stellar/stellar-sdk");return P.isValidEd25519PublicKey(x)}catch{return!1}}function y(x={}){let P,L=x.derivationPath||f.NetworkDerivationPath[f.Chain.Stellar],X=f.derivationPathToString(L.slice(0,3));async function M({phrase:j,path:q}){let{HDKey:J}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Q}=await import("@scure/bip39"),{Keypair:G}=await import("@stellar/stellar-sdk"),Y=Q(j),U=J.fromMasterSeed(Y).derive(q,!0);return G.fromRawEd25519Seed(Buffer.from(U.privateKey))}async function _(){if(P)return P;let j=F.match(x).with({phrase:F.P.string},({phrase:q})=>q).otherwise(()=>{return});if(!j)throw new f.SwapKitError("toolbox_stellar_no_signer");return P=await M({path:X,phrase:j}),P}async function R(){let{Horizon:j}=await import("@stellar/stellar-sdk"),q=await f.getRPCUrl(f.Chain.Stellar);return new j.Server(q)}async function Z(){try{return(await _()).publicKey()}catch{return""}}async function v(j){let q=j||await Z();if(!q)throw new f.SwapKitError("toolbox_stellar_account_not_found");try{return(await(await R()).loadAccount(q)).balances.map((G)=>{if(G.asset_type==="native")return f.AssetValue.from({chain:f.Chain.Stellar,value:G.balance});let Y="asset_code"in G?G.asset_code:"",W="asset_issuer"in G?G.asset_issuer:"";return f.AssetValue.from({asset:`${f.Chain.Stellar}.${Y}-${W}`,asyncTokenLookup:!1,value:G.balance})})}catch{return[f.AssetValue.from({chain:f.Chain.Stellar,value:0})]}}async function B({recipient:j,assetValue:q,memo:J,sender:Q}){if(J){if(new TextEncoder().encode(J).length>28)throw new f.SwapKitError("helpers_invalid_memo_type")}if(!await r(j))throw new f.SwapKitError("core_transaction_invalid_recipient_address");let Y=Q||await Z();if(!Y)throw new f.SwapKitError("toolbox_stellar_no_signer");let{Asset:W,Memo:U,Networks:V,Operation:D,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),O=await R(),b=await O.fetchBaseFee(),m=await O.loadAccount(Y),$=new h(m,{fee:String(b),networkPassphrase:V.PUBLIC});if(q.isGasAsset)try{await O.loadAccount(j),$.addOperation(D.payment({amount:q.getValue("string"),asset:W.native(),destination:j}))}catch{$.addOperation(D.createAccount({destination:j,startingBalance:q.getValue("string")}))}else $.addOperation(D.payment({amount:q.getValue("string"),asset:new W(q.symbol,q.address),destination:j}));if(J)$.addMemo(U.text(J));return $.setTimeout(30).build()}async function C(j){let{TransactionBuilder:q,Networks:J}=await import("@stellar/stellar-sdk"),Q=await _(),G=q.fromXDR(j.toXDR(),J.PUBLIC);return G.sign(Q),G}async function z(j){try{let q=await R(),{hash:J}=await q.submitTransaction(j);return J}catch(q){throw new f.SwapKitError("toolbox_stellar_broadcast_error",q)}}async function K({recipient:j,assetValue:q,memo:J}){let Q=await _(),G=Q.publicKey(),Y=await B({assetValue:q,memo:J,recipient:j,sender:G});Y.sign(Q);try{return(await(await R()).submitTransaction(Y)).hash}catch(W){if(W instanceof f.SwapKitError)throw W;throw new f.SwapKitError("toolbox_stellar_transaction_failed",W)}}async function g(j){let q=await C(j);return z(q)}async function A(){let{baseDecimal:j}=f.getChainConfig(f.Chain.Stellar);try{let Q=(await(await R()).feeStats()).fee_charged.p50;return f.AssetValue.from({chain:f.Chain.Stellar,fromBaseDecimal:j,value:Q})}catch{return f.AssetValue.from({chain:f.Chain.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:z,createTransaction:B,estimateTransactionFee:A,getAddress:Z,getBalance:v,signAndBroadcastTransaction:g,signTransaction:C,transfer:K,validateAddress:N}}var f,F,s;var S=k(()=>{f=require("@swapkit/helpers"),F=require("ts-pattern"),s=/^G[A-Z2-7]{55}$/});var a={};t(a,{validateStellarAddress:()=>N,getStellarToolbox:()=>y});module.exports=d(a);var e=k(()=>{S()});e();
1
+ var l=Object.create;var{getPrototypeOf:c,defineProperty:N,getOwnPropertyNames:S,getOwnPropertyDescriptor:o}=Object,y=Object.prototype.hasOwnProperty;function K(P){return this[P]}var d,n,WP=(P,G,W)=>{var Z=P!=null&&typeof P==="object";if(Z){var D=G?d??=new WeakMap:n??=new WeakMap,I=D.get(P);if(I)return I}W=P!=null?l(c(P)):{};let Y=G||!P||!P.__esModule?N(W,"default",{value:P,enumerable:!0}):W;for(let f of S(P))if(!y.call(Y,f))N(Y,f,{get:K.bind(P,f),enumerable:!0});if(Z)D.set(P,Y);return Y},i=(P)=>{var G=(v??=new WeakMap).get(P),W;if(G)return G;if(G=N({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function"){for(var Z of S(P))if(!y.call(G,Z))N(G,Z,{get:K.bind(P,Z),enumerable:!(W=o(P,Z))||W.enumerable})}return v.set(P,G),G},v;var t=(P)=>P;function s(P,G){this[P]=t.bind(null,G)}var a=(P,G)=>{for(var W in G)N(P,W,{get:G[W],enumerable:!0,configurable:!0,set:s.bind(G,W)})};var A=(P,G)=>()=>(P&&(G=P(P=0)),G);function x(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return r.test(P)}function e(P){if(typeof P!=="object"||P===null)return;let G="response"in P?P.response:void 0;return typeof G?.status==="number"?G.status:void 0}function PP(P){return e(P)===504}function jP(P){return P.hash?.().toString("hex")}function qP(P){return[...new Set([P,...j.SKConfig.get("rpcUrls")[j.Chain.Stellar]])].filter(Boolean)}async function GP(P){if(!x(P))return!1;try{let{StrKey:G}=await import("@stellar/stellar-sdk");return G.isValidEd25519PublicKey(P)}catch{return!1}}function H(P={}){let G,W=P.derivationPath||j.NetworkDerivationPath[j.Chain.Stellar],Z=j.derivationPathToString(W.slice(0,3));async function D({phrase:q,path:J}){let{HDKey:Q}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:R}=await import("@scure/bip39"),{Keypair:L}=await import("@stellar/stellar-sdk"),X=R(q),_=Q.fromMasterSeed(X).derive(J,!0);return L.fromRawEd25519Seed(Buffer.from(_.privateKey))}async function I(){if(G)return G;let q=O.match(P).with({phrase:O.P.string},({phrase:J})=>J).otherwise(()=>{return});if(!q)throw new j.SwapKitError("toolbox_stellar_no_signer");return G=await D({path:Z,phrase:q}),G}async function Y(q){let{Horizon:J}=await import("@stellar/stellar-sdk"),Q=q||await j.getRPCUrl(j.Chain.Stellar);return new J.Server(Q)}async function f(q,J){for(let Q of J)try{return(await(await Y(Q)).transactions().transaction(q).call()).hash||q}catch{}return}async function z(q,J){let Q=await j.getRPCUrl(j.Chain.Stellar),R=qP(Q),L=jP(q),X;for(let $ of R)try{let _=await Y($),{hash:M}=await _.submitTransaction(q);return M}catch(_){if(X=_,!PP(_))break;let M=L?await f(L,R):void 0;if(M)return M}throw new j.SwapKitError(J,X)}async function B(){try{return(await I()).publicKey()}catch{return""}}async function V(q){let J=q||await B();if(!J)throw new j.SwapKitError("toolbox_stellar_account_not_found");try{return(await(await Y()).loadAccount(J)).balances.map((L)=>{if(L.asset_type==="native")return j.AssetValue.from({chain:j.Chain.Stellar,value:L.balance});let X="asset_code"in L?L.asset_code:"",$="asset_issuer"in L?L.asset_issuer:"";return j.AssetValue.from({asset:`${j.Chain.Stellar}.${X}-${$}`,asyncTokenLookup:!1,value:L.balance})})}catch{return[j.AssetValue.from({chain:j.Chain.Stellar,value:0})]}}async function w({recipient:q,assetValue:J,memo:Q,sender:R}){if(Q){if(new TextEncoder().encode(Q).length>28)throw new j.SwapKitError("helpers_invalid_memo_type")}if(!await GP(q))throw new j.SwapKitError("core_transaction_invalid_recipient_address");let X=R||await B();if(!X)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:$,Memo:_,Networks:M,Operation:U,TransactionBuilder:m}=await import("@stellar/stellar-sdk"),C=await Y(),u=await C.fetchBaseFee(),p=await C.loadAccount(X),F=new m(p,{fee:String(u),networkPassphrase:M.PUBLIC});if(J.isGasAsset)try{await C.loadAccount(q),F.addOperation(U.payment({amount:J.getValue("string"),asset:$.native(),destination:q}))}catch{F.addOperation(U.createAccount({destination:q,startingBalance:J.getValue("string")}))}else F.addOperation(U.payment({amount:J.getValue("string"),asset:new $(J.symbol,J.address),destination:q}));if(Q)F.addMemo(_.text(Q));return F.setTimeout(30).build()}async function E(q){let{TransactionBuilder:J,Networks:Q}=await import("@stellar/stellar-sdk"),R=await I(),L=J.fromXDR(q.toXDR(),Q.PUBLIC);return L.sign(R),L}function k(q){return z(q,"toolbox_stellar_broadcast_error")}async function b({recipient:q,assetValue:J,memo:Q}){let R=await I(),L=R.publicKey(),X=await w({assetValue:J,memo:Q,recipient:q,sender:L});return X.sign(R),z(X,"toolbox_stellar_transaction_failed")}async function g(q){let J=await E(q);return k(J)}async function h(){let{baseDecimal:q}=j.getChainConfig(j.Chain.Stellar);try{let R=(await(await Y()).feeStats()).fee_charged.p50;return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:q,value:R})}catch{return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:q,value:"100"})}}return{broadcastTransaction:k,createTransaction:w,estimateTransactionFee:h,getAddress:B,getBalance:V,signAndBroadcastTransaction:g,signTransaction:E,transfer:b,validateAddress:x}}var j,O,r;var T=A(()=>{j=require("@swapkit/helpers"),O=require("ts-pattern"),r=/^G[A-Z2-7]{55}$/});var JP={};a(JP,{validateStellarAddress:()=>x,getStellarToolbox:()=>H});module.exports=i(JP);var LP=A(()=>{T()});LP();
@@ -1 +1 @@
1
- var h=Object.defineProperty;var b=(x)=>x;function m(x,j){this[x]=b.bind(null,j)}var u=(x,j)=>{for(var X in j)h(x,X,{get:j[X],enumerable:!0,configurable:!0,set:m.bind(j,X)})};var z=(x,j)=>()=>(x&&(j=x(x=0)),j);var Y=((x)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(j,X)=>(typeof require<"u"?require:j)[X]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});import{AssetValue as $,Chain as R,derivationPathToString as l,getChainConfig as p,getRPCUrl as o,NetworkDerivationPath as c,SwapKitError as W}from"@swapkit/helpers";import{match as d,P as n}from"ts-pattern";function M(x){if(!x||typeof x!=="string"||!x.startsWith("G")||x.length!==56)return!1;return i.test(x)}async function t(x){if(!M(x))return!1;try{let{StrKey:j}=await import("@stellar/stellar-sdk");return j.isValidEd25519PublicKey(x)}catch{return!1}}function H(x={}){let j,X=x.derivationPath||c[R.Stellar],T=l(X.slice(0,3));async function w({phrase:f,path:P}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:J}=await import("@scure/bip39"),{Keypair:q}=await import("@stellar/stellar-sdk"),Q=J(f),I=G.fromMasterSeed(Q).derive(P,!0);return q.fromRawEd25519Seed(Buffer.from(I.privateKey))}async function U(){if(j)return j;let f=d(x).with({phrase:n.string},({phrase:P})=>P).otherwise(()=>{return});if(!f)throw new W("toolbox_stellar_no_signer");return j=await w({path:T,phrase:f}),j}async function Z(){let{Horizon:f}=await import("@stellar/stellar-sdk"),P=await o(R.Stellar);return new f.Server(P)}async function F(){try{return(await U()).publicKey()}catch{return""}}async function k(f){let P=f||await F();if(!P)throw new W("toolbox_stellar_account_not_found");try{return(await(await Z()).loadAccount(P)).balances.map((q)=>{if(q.asset_type==="native")return $.from({chain:R.Stellar,value:q.balance});let Q="asset_code"in q?q.asset_code:"",L="asset_issuer"in q?q.asset_issuer:"";return $.from({asset:`${R.Stellar}.${Q}-${L}`,asyncTokenLookup:!1,value:q.balance})})}catch{return[$.from({chain:R.Stellar,value:0})]}}async function O({recipient:f,assetValue:P,memo:G,sender:J}){if(G){if(new TextEncoder().encode(G).length>28)throw new W("helpers_invalid_memo_type")}if(!await t(f))throw new W("core_transaction_invalid_recipient_address");let Q=J||await F();if(!Q)throw new W("toolbox_stellar_no_signer");let{Asset:L,Memo:I,Networks:K,Operation:N,TransactionBuilder:g}=await import("@stellar/stellar-sdk"),D=await Z(),A=await D.fetchBaseFee(),V=await D.loadAccount(Q),_=new g(V,{fee:String(A),networkPassphrase:K.PUBLIC});if(P.isGasAsset)try{await D.loadAccount(f),_.addOperation(N.payment({amount:P.getValue("string"),asset:L.native(),destination:f}))}catch{_.addOperation(N.createAccount({destination:f,startingBalance:P.getValue("string")}))}else _.addOperation(N.payment({amount:P.getValue("string"),asset:new L(P.symbol,P.address),destination:f}));if(G)_.addMemo(I.text(G));return _.setTimeout(30).build()}async function B(f){let{TransactionBuilder:P,Networks:G}=await import("@stellar/stellar-sdk"),J=await U(),q=P.fromXDR(f.toXDR(),G.PUBLIC);return q.sign(J),q}async function C(f){try{let P=await Z(),{hash:G}=await P.submitTransaction(f);return G}catch(P){throw new W("toolbox_stellar_broadcast_error",P)}}async function y({recipient:f,assetValue:P,memo:G}){let J=await U(),q=J.publicKey(),Q=await O({assetValue:P,memo:G,recipient:f,sender:q});Q.sign(J);try{return(await(await Z()).submitTransaction(Q)).hash}catch(L){if(L instanceof W)throw L;throw new W("toolbox_stellar_transaction_failed",L)}}async function S(f){let P=await B(f);return C(P)}async function v(){let{baseDecimal:f}=p(R.Stellar);try{let J=(await(await Z()).feeStats()).fee_charged.p50;return $.from({chain:R.Stellar,fromBaseDecimal:f,value:J})}catch{return $.from({chain:R.Stellar,fromBaseDecimal:f,value:"100"})}}return{broadcastTransaction:C,createTransaction:O,estimateTransactionFee:v,getAddress:F,getBalance:k,signAndBroadcastTransaction:S,signTransaction:B,transfer:y,validateAddress:M}}var i;var E=z(()=>{i=/^G[A-Z2-7]{55}$/});var s={};u(s,{validateStellarAddress:()=>M,getStellarToolbox:()=>H});var r=z(()=>{E()});r();export{M as validateStellarAddress,H as getStellarToolbox};
1
+ var u=Object.defineProperty;var p=(P)=>P;function l(P,G){this[P]=p.bind(null,G)}var c=(P,G)=>{for(var Y in G)u(P,Y,{get:G[Y],enumerable:!0,configurable:!0,set:l.bind(G,Y)})};var E=(P,G)=>()=>(P&&(G=P(P=0)),G);var _=((P)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(P,{get:(G,Y)=>(typeof require<"u"?require:G)[Y]}):P)(function(P){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+P+'" is not supported')});import{AssetValue as F,Chain as W,derivationPathToString as o,getChainConfig as d,getRPCUrl as k,NetworkDerivationPath as n,SKConfig as i,SwapKitError as I}from"@swapkit/helpers";import{match as t,P as s}from"ts-pattern";function N(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return a.test(P)}function r(P){if(typeof P!=="object"||P===null)return;let G="response"in P?P.response:void 0;return typeof G?.status==="number"?G.status:void 0}function e(P){return r(P)===504}function PP(P){return P.hash?.().toString("hex")}function jP(P){return[...new Set([P,...i.get("rpcUrls")[W.Stellar]])].filter(Boolean)}async function qP(P){if(!N(P))return!1;try{let{StrKey:G}=await import("@stellar/stellar-sdk");return G.isValidEd25519PublicKey(P)}catch{return!1}}function v(P={}){let G,Y=P.derivationPath||n[W.Stellar],y=o(Y.slice(0,3));async function K({phrase:j,path:q}){let{HDKey:L}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Q}=await import("@scure/bip39"),{Keypair:J}=await import("@stellar/stellar-sdk"),R=Q(j),X=L.fromMasterSeed(R).derive(q,!0);return J.fromRawEd25519Seed(Buffer.from(X.privateKey))}async function D(){if(G)return G;let j=t(P).with({phrase:s.string},({phrase:q})=>q).otherwise(()=>{return});if(!j)throw new I("toolbox_stellar_no_signer");return G=await K({path:y,phrase:j}),G}async function M(j){let{Horizon:q}=await import("@stellar/stellar-sdk"),L=j||await k(W.Stellar);return new q.Server(L)}async function A(j,q){for(let L of q)try{return(await(await M(L)).transactions().transaction(j).call()).hash||j}catch{}return}async function U(j,q){let L=await k(W.Stellar),Q=jP(L),J=PP(j),R;for(let Z of Q)try{let X=await M(Z),{hash:$}=await X.submitTransaction(j);return $}catch(X){if(R=X,!e(X))break;let $=J?await A(J,Q):void 0;if($)return $}throw new I(q,R)}async function O(){try{return(await D()).publicKey()}catch{return""}}async function H(j){let q=j||await O();if(!q)throw new I("toolbox_stellar_account_not_found");try{return(await(await M()).loadAccount(q)).balances.map((J)=>{if(J.asset_type==="native")return F.from({chain:W.Stellar,value:J.balance});let R="asset_code"in J?J.asset_code:"",Z="asset_issuer"in J?J.asset_issuer:"";return F.from({asset:`${W.Stellar}.${R}-${Z}`,asyncTokenLookup:!1,value:J.balance})})}catch{return[F.from({chain:W.Stellar,value:0})]}}async function C({recipient:j,assetValue:q,memo:L,sender:Q}){if(L){if(new TextEncoder().encode(L).length>28)throw new I("helpers_invalid_memo_type")}if(!await qP(j))throw new I("core_transaction_invalid_recipient_address");let R=Q||await O();if(!R)throw new I("toolbox_stellar_no_signer");let{Asset:Z,Memo:X,Networks:$,Operation:x,TransactionBuilder:g}=await import("@stellar/stellar-sdk"),B=await M(),h=await B.fetchBaseFee(),m=await B.loadAccount(R),f=new g(m,{fee:String(h),networkPassphrase:$.PUBLIC});if(q.isGasAsset)try{await B.loadAccount(j),f.addOperation(x.payment({amount:q.getValue("string"),asset:Z.native(),destination:j}))}catch{f.addOperation(x.createAccount({destination:j,startingBalance:q.getValue("string")}))}else f.addOperation(x.payment({amount:q.getValue("string"),asset:new Z(q.symbol,q.address),destination:j}));if(L)f.addMemo(X.text(L));return f.setTimeout(30).build()}async function z(j){let{TransactionBuilder:q,Networks:L}=await import("@stellar/stellar-sdk"),Q=await D(),J=q.fromXDR(j.toXDR(),L.PUBLIC);return J.sign(Q),J}function w(j){return U(j,"toolbox_stellar_broadcast_error")}async function T({recipient:j,assetValue:q,memo:L}){let Q=await D(),J=Q.publicKey(),R=await C({assetValue:q,memo:L,recipient:j,sender:J});return R.sign(Q),U(R,"toolbox_stellar_transaction_failed")}async function V(j){let q=await z(j);return w(q)}async function b(){let{baseDecimal:j}=d(W.Stellar);try{let Q=(await(await M()).feeStats()).fee_charged.p50;return F.from({chain:W.Stellar,fromBaseDecimal:j,value:Q})}catch{return F.from({chain:W.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:w,createTransaction:C,estimateTransactionFee:b,getAddress:O,getBalance:H,signAndBroadcastTransaction:V,signTransaction:z,transfer:T,validateAddress:N}}var a;var S=E(()=>{a=/^G[A-Z2-7]{55}$/});var GP={};c(GP,{validateStellarAddress:()=>N,getStellarToolbox:()=>v});var JP=E(()=>{S()});JP();export{N as validateStellarAddress,v as getStellarToolbox};
@@ -1 +1 @@
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
+ var Z0=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 j=X!=null&&typeof X==="object";if(j){var Q=$?q0??=new WeakMap:L0??=new WeakMap,Z=Q.get(X);if(Z)return Z}J=X!=null?Z0(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(j)Q.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 j of D2(X))if(!C2.call($,j))CX($,j,{get:H2.bind(X,j),enumerable:!(J=Y0(X,j))||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 j=[...J?.slice(0,3)??O2.NetworkDerivationPath[$].slice(0,3)];if(X!==void 0)j[2]=X;return j}function YX({accountIndex:X,change:$=!1,chain:J,derivationPath:j,index:Q}){return K("index",Q),[...i({accountIndex:X,chain:J,derivationPath:j}),Number($),Q]}function $X(X){return X[2]??0}function V2({deriveAddress:X,getBalance:$,getUtxos:J}){async function j(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 Q(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 Z(Y=20){let[q,L]=await Promise.all([Q({change:!1,gapLimit:Y}),Q({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([Q({change:!1,gapLimit:Y}),Q({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:j,getAggregatedBalance:Z,getAggregatedUtxos:G,scanForAddresses:Q}}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,j=!0){let Q=await b2.SwapKitApi.getChainBalance({address:J,chain:X,scamFilter:j}),{baseDecimal:Z}=OX.getChainConfig(X),G=Q.map(({identifier:q,value:L,decimal:U})=>{return new OX.AssetValue({decimal:U||Z,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`,j=JSON.stringify({data:$});try{let Q=await D.RequestClient.post(J,{body:j,headers:{"Content-Type":"application/json"}});if(Q.context.code!==200)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:Q.context.error||"Transaction broadcast failed"});return Q.data?.transaction_hash||$}catch(Q){let Z=await D.getRPCUrl(X);if(Z){let G=JSON.stringify({id:k2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),Y=await D.RequestClient.post(Z,{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 Q}}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(j){let Q=j instanceof Error?j.message:String(j);return console.error(`Failed to fetch raw transaction: ${Q}`),""}}async function O0({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let Q=(await KX(`${VX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!Q)throw new D.SwapKitError("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Z,inputs:G,outputs:Y}=Q,q=G.map((U)=>U.spending_sequence),L=Z.is_rbf===!0||q.some((U)=>U<H0);return{blockId:Z.block_id,confirmed:Z.block_id!==-1,fee:Z.fee,inputs:G,isRBF:L,outputs:Y,sequences:q,size:Z.size,txid:Z.hash,weight:Z.weight}}async function V0({chain:X,address:$,apiKey:J,offset:j=0,limit:Q=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=${Q}&offset=${j}`,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((j,Q)=>Q.value-j.value);if($){let j=[],Q=0;for(let Z of J)if(j.push(Z),Q+=Z.value,Q>=$)break;return j}return J}async function P2({chain:X,address:$,apiKey:J,targetValue:j,accumulativeValue:Q=0,offset:Z=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:Z,targetValue:j}),L=Y.length<G,U=Y.filter(({is_spent:T})=>!T),z=b0(U),B=Q+z,_=j&&B>=j;if(L||_)return T2(U,j);let N=await P2({accumulativeValue:B,address:$,apiKey:J,chain:X,limit:G,offset:Z+G,targetValue:j}),O=[...U,...N];return T2(O,j)}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:j=!0,targetValue:Q}){let Z=await P2({address:X,apiKey:J,chain:$,targetValue:Q}),G=[];for(let{hash:Y,index:q,script_hex:L,value:U}of Z){let z;if(j)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],j=Array.prototype.slice.call($,1);switch(J){case jX.legacy.mainnet.p2pkh:return{format:"legacy",hash:j,network:"mainnet",type:"p2pkh"};case jX.legacy.mainnet.p2sh:return{format:"legacy",hash:j,network:"mainnet",type:"p2sh"};case jX.legacy.testnet.p2pkh:return{format:"legacy",hash:j,network:"testnet",type:"p2pkh"};case jX.legacy.testnet.p2sh:return{format:"legacy",hash:j,network:"testnet",type:"p2sh"};case jX.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2pkh"};case jX.bitpay.mainnet.p2sh:return{format:"bitpay",hash:j,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:j}=tX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:j==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function v0(X){let $=jX.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",j=new Uint8Array(X.hash);return tX.encode($,J,j)}var A2,w2,eX,S2,X2,jX;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||={});jX={["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})},QX=({inputs:X,outputs:$,feeRate:J})=>{let j=X[0]&&"address"in X[0]&&X[0].address?qX(X[0].address):"P2PKH",Z=(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[j],Y=lX+Z+G;return j==="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 j2=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:j=x.Chain.Bitcoin,changeAddress:Q=""}){let Z=X[0]&&"address"in X[0]&&X[0].address?qX(X[0].address):"P2PKH",G=X.filter((N)=>s(N)*J<=N.value),q=Z==="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:Q,value:0});if(RX>yX){let NX=yX+z,MX=B-(U+Math.ceil(NX));if(MX>Math.max(s({value:0})*J,fX(j)))return{fee:Math.ceil(NX),inputs:_,outputs:$.concat({address:Q,value:MX})}}return{fee:Math.ceil(z),inputs:_,outputs:$}}return{fee:Math.ceil(J*QX({inputs:X,outputs:$}))}}var x;var x2=y(()=>{j2();x=require("@swapkit/helpers")});var LX=y(()=>{R2();K2();x2();j2()});function ZX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function a(X){let $=ZX(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 Z2.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 Z2.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:j}){let Q=j??oX.mnemonicToSeedSync(X),G=Q2.HDKey.fromMasterSeed(Q,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 Z=C.p2pkh(X,J);if(!Z.hash)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return C.encodeCashAddr({hash:Z.hash,prefix:C.CashAddrPrefix.MAINNET,type:C.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let Q=!EX.includes($)?C.p2wpkh(X,J):C.p2pkh(X,J);if(!Q.address)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return Q.address}function UX({phrase:X,derivationPath:$,chain:J,wif:j,seed:Q}){let Z=v(J);if(j){let L=C.WIF(Z).decode(j),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:Z,phrase:X,seed:Q}),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:j}){let Q=$.split("/");if(Q.length<4)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${Q.length}): ${$}`});let Z=v(J),G=j??oX.mnemonicToSeedSync(X),Y=Q2.HDKey.fromMasterSeed(G,Z.bip32),q=Q.slice(0,4).join("/");return Y.derive(q)}function e({inputs:X,outputs:$,chain:J,tx:j,sender:Q,compiledMemo:Z,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)j.addInput({index:z.index,sequence:L,txid:_,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)j.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:Q;if(J===W.Chain.BitcoinCash)B=o(B);if(z.script){if(Z)j.addOutput({amount:0n,script:Z})}else j.addOutputAddress(B,BigInt(z.value),Y)}return{inputs:X,tx:j}}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:j,fetchTxHex:Q=!1}){let Z=X.chain,G=(await WX(Z))[W.FeeOption.Fastest],Y=Q||EX.includes(Z),q=X.getBaseValue("number"),L=Math.ceil(q+G*5000);return{inputs:await P(Z).getUtxos({address:j,fetchTxHex:Y,targetValue:L}),outputs:[{address:$,value:q},...J?[{address:"",script:w(J),value:0}]:[]]}}async function o2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q,fetchTxHex:Z=!1,enableRBF:G=!1}){let Y=X.chain,q=J?w(J):null,L=await u2({assetValue:X,fetchTxHex:Z,memo:J,recipient:$,sender:Q}),{inputs:U,outputs:z}=m({...L,chain:Y,feeRate:j});if(!(U&&z))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});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:Q,tx:B});return{inputs:_,tx:N,utxos:L.inputs}}async function c2({assetValue:X,feeOptionKey:$=W.FeeOption.Fast,feeRate:J,memo:j,sender:Q,recipient:Z}){let G=X.chain,Y=await u2({assetValue:X,memo:j,recipient:Z,sender:Q}),q=J?Math.floor(J):(await WX(G))[$];return m({...Y,chain:G,feeRate:q})}function x0(X){return async function({from:J,memo:j,feeRate:Q,feeOptionKey:Z=W.FeeOption.Fast,recipients:G=1}){let Y=await P(X).getAddressData(J),q=Q?Math.ceil(Q):(await WX(X))[Z],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(j)B.push({address:J,script:w(j),value:0});let _=QX({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:j}=await c2(J);return W.AssetValue.from({chain:X,value:W.SwapKitNumber.fromBigInt(BigInt(j),8).getValue("string")})}}function p0({chain:X,phrase:$,derivationPath:J,seed:j}){let Q=v(X),{privateKey:Z,publicKey:G}=UX({chain:X,derivationPath:J,phrase:$,seed:j}),Y=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];return{getAddress:()=>FX({chain:X,network:Q,publicKey:G}),privateKey:Z,publicKey:G,signTransaction:(q)=>{return q.sign(Z,Y),q}}}function u0(X,$){return async function({memo:j,recipient:Q,feeOptionKey:Z,feeRate:G,assetValue:Y,enableRBF:q=!1}){let L=await $?.getAddress();if(!($&&L))throw new W.SwapKitError("toolbox_utxo_no_signer");if(!Q)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))[Z||W.FeeOption.Fast],{tx:B}=await o2({assetValue:Y,enableRBF:U,feeRate:z,memo:j,recipient:Q,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(j){if(!j)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return FX({chain:X,network:$,publicKey:j.publicKey})}}function XX({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,j="index"in $?$.index||0:0,Q=J?oX.mnemonicToSeedSync(J):void 0,Z="derivationPath"in $&&$.derivationPath?$.derivationPath:W.updateDerivationPath(W.NetworkDerivationPath[X],{index:j}),G=W.derivationPathToString(Z),Y=J?p0({chain:X,derivationPath:G,phrase:J,seed:Q}):void 0,q="signer"in $?$.signer:void 0,L=Y||q,U=J?UX({chain:X,derivationPath:G,phrase:J,seed:Q}):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:Z});return l0({chain:X,derivationPath:W.derivationPathToString(H),phrase:J,seed:Q})}let _=B();function N(){if(!_)return;return _.publicExtendedKey}function O({accountIndex:M}={}){let H=M===void 0?_:B(M);if(!H)return;let b=i({accountIndex:M,chain:X,derivationPath:Z});return{accountIndex:$X(b),path:W.derivationPathToString(b),xpub:H.publicExtendedKey}}function T({accountIndex:M,index:H,change:b=!1}){let k=M===void 0?_:B(M);if(!k)return;let I=YX({accountIndex:M,chain:X,change:b,derivationPath:Z,index:H}),S=v(X),g=k.deriveChild(Number(b)).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(I),address:A,change:b,index:H,path:W.derivationPathToString(I),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:b,memo:k}){if(!uX.includes(X))throw new W.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:X});let I=await P(X).getTransactionDetails(M);if(!I.isRBF)throw new W.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:M});if(I.confirmed)throw new W.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:I.blockId,txid:M});let S=I.inputs.reduce((R,n)=>R+n.value,0),A=I.outputs.find((R)=>R.recipient===b)?.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(I.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=k?w(k):null,nX=QX({feeRate:H,inputs:l.map((R)=>({...R,type:"P2WPKH"})),outputs:[{address:b,value:A}]}),p=Math.ceil(nX*H);if(p<=I.fee)throw new W.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:p,originalFee:I.fee});let DX=p-I.fee,d=A-DX;if(d<=0)throw new W.SwapKitError("toolbox_utxo_rbf_insufficient_change");let AX=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),wX=[{address:b,value:d},...k?[{address:"",script:w(k),value:0}]:[]],SX=S-d-p,r=await z();if(SX>fX(X)&&r)wX.push({address:r,value:SX});return e({chain:X,compiledMemo:vX,inputs:l,outputs:wX,sender:r||b,tx:AX}),{feeDelta:DX,newFee:p,originalFee:I.fee,tx:AX}}async function yX({txid:M,newFeeRate:H,recipient:b,memo:k}){let{tx:I,originalFee:S,newFee:g}=await RX({memo:k,newFeeRate:H,recipient:b,txid:M}),A=await rX(I);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:b=!1}){K("index",H);let k=M===void 0?_:B(M);if(!k)return;return k.deriveChild(Number(b)).deriveChild(H).privateKey||void 0}function MX({tx:M,inputDerivations:H}){if(!_)throw new W.SwapKitError("toolbox_utxo_no_signer");let b=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];for(let k=0;k<H.length;k++){let I=H[k];if(!I)continue;let{derivationIndex:S,isChange:g}=I,A=NX({change:g,index:S});if(!A)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${k} at index ${S}`});M.signIdx(A,k,b)}return M}async function $0({utxos:M,recipient:H,assetValue:b,memo:k,feeRate:I,feeOptionKey:S,changeAddress:g}){if(!_)throw new W.SwapKitError("toolbox_utxo_no_signer");let A=I||(await WX(X))[S||W.FeeOption.Fast],l=k?w(k):null,vX=[{address:H,value:b.getBaseValue("number")}];if(l)vX.push({address:"",script:l,value:0});let nX=M.map(({hash:r,index:R,value:n,txHex:Q0,witnessUtxo:iX})=>({hash:r,index:R,txHex:Q0,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:b,sender:"multiple addresses"});let d=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:d});let SX=p.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:SX,tx:d}),d.finalize(),P(X).broadcastTx(t.hex.encode(d.extract()))}function J0({address:M,gapLimit:H=20}){if(!_)return;for(let b=0;b<H;b++){let k=T({change:!1,index:b}),I=T({change:!0,index:b}),S=k?.address===M?!1:I?.address===M;if(k?.address===M||I?.address===M)return{change:S,index:b}}return}function rX(M){if(!L)throw new W.SwapKitError("toolbox_utxo_no_signer");return L.signTransaction(M)}async function j0(M){let H=await rX(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:QX,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:j0,signTransaction:rX,signTransactionWithMultipleKeys:MX,transfer:u0(X,L),transferFromMultipleAddresses:$0,validateAddress:Y2(X)}}var p2,t,Q2,oX,W,C,Z2,EX,uX;var BX=y(()=>{aX();HX();LX();TX();p2=require("@noble/curves/secp256k1.js"),t=require("@scure/base"),Q2=require("@scure/bip32"),oX=require("@scure/bip39"),W=require("@swapkit/helpers"),C=require("@swapkit/utxo-signer"),Z2=require("ts-pattern"),EX=[W.Chain.Dash,W.Chain.Dogecoin,W.Chain.Zcash,W.Chain.BitcoinCash],uX=[W.Chain.Bitcoin]});function PX(X){return ZX(bX(X))}function o0(X){let $=v(h);function J(Q){return Q.sign(X.privateKey,[F.BCHSigHash.ALL]),Q}function j(){let Q=F.p2pkh(X.publicKey,$);if(!Q.hash)throw new E.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Z=F.encodeCashAddr({hash:Q.hash,prefix:F.CashAddrPrefix.MAINNET,type:F.CashAddrType.P2PKH});return Promise.resolve(Z.replace(/^bitcoincash:/,""))}return{getAddress:j,signTransaction:J}}function z2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,j=E.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:E.updateDerivationPath(E.NetworkDerivationPath[h],{index:J})),Q=$?UX({chain:h,derivationPath:j,phrase:$}):void 0,Z=Q?o0(Q):("signer"in X)?X.signer:void 0;function G(){return Promise.resolve(Z?.getAddress())}let{getBalance:Y,getFeeRates:q,broadcastTx:L,...U}=XX({chain:h});function z(N,O=!0){return Y(ZX(bX(N)))}function B(N){if(!Z)throw new E.SwapKitError("toolbox_utxo_no_signer");return Z.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:d0,createTransaction:d2,getAddress:G,getAddressFromKeys:r0,getBalance:z,getFeeRates:q,signAndBroadcastTransaction:_,signTransaction:B,stripPrefix:ZX,stripToCashAddress:PX,transfer:c0({broadcastTx:L,getFeeRates:q,signer:Z}),validateAddress:a}}async function d2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q}){if(!a($))throw new E.SwapKitError("toolbox_utxo_invalid_address",{address:$});let Z=Math.ceil(X.getBaseValue("number")+j*7500),G=await P(h).getUtxos({address:PX(Q),fetchTxHex:!0,targetValue:Z}),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:j,inputs:G,outputs:q});if(!(U&&z))throw new E.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let B=new F.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),_=o(Q),{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:Q,assetValue:Z,feeOptionKey:G=E.FeeOption.Fast,...Y}){let q=await J?.getAddress();if(!(J&&q))throw new E.SwapKitError("toolbox_utxo_no_signer");if(!Q)throw new E.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let L=Y.feeRate||(await $())[G],{tx:U}=await d2({...Y,assetValue:Z,feeRate:L,recipient:Q,sender:q}),z=await J.signTransaction(U);return z.finalize(),X(L2.hex.encode(z.extract()))}}async function d0({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q}){let Z=bX($);if(!a(Z))throw new E.SwapKitError("toolbox_utxo_invalid_address",{address:Z});let G=Math.ceil(X.getBaseValue("number")+j*7500),Y=await P(h).getUtxos({address:PX(Q),fetchTxHex:!0,targetValue:G}),q=Number(j.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:Q});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(Q),tx:_});return{inputs:N,tx:O,utxos:Y}}function r0(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?V.ZCASH_TEST_NETWORK:V.ZCASH_NETWORK}function i0(X){return n0.encode(X)}function s0({phrase:X,derivationPath:$}){let J=W2.mnemonicToSeedSync(X),Q=U2.HDKey.fromMasterSeed(J).derive($);if(!Q.privateKey||!Q.publicKey)throw new f.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Z,publicKey:G}=Q,Y=V.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 V.ZcashPSBT){let _=B.toPCZT();return _.signAllInputs(Z,G,V.ZcashSigHash.ALL),_.finalizeAllInputs(),Promise.resolve(_.extract())}if(B instanceof V.PCZT)return B.signAllInputs(Z,G,V.ZcashSigHash.ALL),B.finalizeAllInputs(),Promise.resolve(B.extract());return B.signAllInputs(Z,G,V.ZcashSigHash.ALL),Promise.resolve(B)}}}function a0({inputs:X,outputs:$,tx:J,sender:j,compiledMemo:Q}){let Z=n2();for(let G of X){let Y=V.Address(Z).decode(j),q=V.OutScript.encode(Y);J.addInput({index:G.index,script:q,sequence:4294967295,txid:dX.hex.decode(G.hash),value:BigInt(G.value)})}for(let G of $){let Y="address"in G&&G.address?G.address:j,q=G.script;if(q&&!Q)continue;if(q&&Q)J.addOutput({amount:0n,script:Q});else J.addOutputAddress(Y,BigInt(G.value),Z)}return{inputs:X,tx:J}}async function r2(X){let{assetValue:$,recipient:J,memo:j,feeRate:Q,sender:Z,fetchTxHex:G}=X,Y=j?w(j):null,q=await P(f.Chain.Zcash).getUtxos({address:Z,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:Z,feeRate:Q,inputs:q,outputs:L});if(!(U&&z))throw new f.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Z});let B=V.createZcashTransaction({consensusBranchId:V.ZcashConsensusBranchId.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:V.ZcashVersionGroupId.SAPLING}),{tx:_,inputs:N}=a0({compiledMemo:Y,inputs:U,outputs:z,sender:Z,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 j(q){if(!$)throw new f.SwapKitError("toolbox_utxo_no_signer");return await $.signTransaction(q)}async function Q(q){let L=await j(q);return J.broadcastTx(L.toHex())}async function Z({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 r2({...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 V.WIF(z).encode(U.privateKey)}return{...J,createKeysForPath:G,createTransaction:r2,getPrivateKeyFromMnemonic:Y,signAndBroadcastTransaction:Q,signTransaction:j,transfer:Z,validateAddress:zX}}var dX,U2,W2,f,V,_X,n0;var _2=y(()=>{LX();BX();TX();dX=require("@scure/base"),U2=require("@scure/bip32"),W2=require("@scure/bip39"),f=require("@swapkit/helpers"),V=require("@swapkit/utxo-signer"),_X=require("ts-pattern");n0=dX.createBase58check(V.utils.sha256)});function t2({xpub:X,chain:$,count:J,startIndex:j=0,accountIndex:Q}){if(K("count",J),J<1)throw RangeError("count must be at least 1");K("startIndex",j);let Z=v($),G=s2.HDKey.fromExtendedKey(X,Z.bip32),Y=i({accountIndex:Q,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 _=j+B,N=z.deriveChild(_);if(!N.publicKey)continue;let O=YX({accountIndex:Q,chain:$,change:U,index:_});L.push({accountIndex:q,address:FX({chain:$,network:Z,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:()=>ZX,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:()=>QX,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 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};
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 t1=((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 j=[...J?.slice(0,3)??W0[$].slice(0,3)];if(X!==void 0)j[2]=X;return j}function jX({accountIndex:X,change:$=!1,chain:J,derivationPath:j,index:Q}){return v("index",Q),[...c({accountIndex:X,chain:J,derivationPath:j}),Number($),Q]}function s(X){return X[2]??0}function _2({deriveAddress:X,getBalance:$,getUtxos:J}){async function j(L){let{accountIndex:G,count:Y,startIndex:U=0,change:z=!1}=L;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 Q(L){let{gapLimit:G=20,change:Y=!1}=L??{},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 Z(L=20){let[G,Y]=await Promise.all([Q({change:!1,gapLimit:L}),Q({change:!0,gapLimit:L})]),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 q(L=20){let[G,Y]=await Promise.all([Q({change:!1,gapLimit:L}),Q({change:!0,gapLimit:L})]),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:j,getAggregatedBalance:Z,getAggregatedUtxos:q,scanForAddresses:Q}}var MX=()=>{};import{AssetValue as N2,getChainConfig as B0}from"@swapkit/helpers";import{SwapKitApi as _0}from"@swapkit/helpers/api";function M2(){function X(){let $=Date.now(),J=iX||$;return iX=J,$>iX?$:J+1}return N0+X().toString(36)}function D2(X){return async function(J,j=!0){let Q=await _0.getChainBalance({address:J,chain:X,scamFilter:j}),{baseDecimal:Z}=B0(X),q=Q.map(({identifier:G,value:Y,decimal:U})=>{return new N2({decimal:U||Z,identifier:G,value:Y})});if(!q.some((G)=>G.isGasAsset))return[N2.from({chain:X}),...q];return q}}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 QX}from"@swapkit/utxo-signer";async function H0({chain:X,txHash:$}){let J=`${DX(X)}/push/transaction`,j=JSON.stringify({data:$});try{let Q=await wX.post(J,{body:j,headers:{"Content-Type":"application/json"}});if(Q.context.code!==200)throw new K("toolbox_utxo_broadcast_failed",{error:Q.context.error||"Transaction broadcast failed"});return Q.data?.transaction_hash||$}catch(Q){let Z=await M0(X);if(Z){let q=JSON.stringify({id:M2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),L=await wX.post(Z,{body:q,headers:{"Content-Type":"application/json"}});if(L.error)throw new K("toolbox_utxo_broadcast_failed",{error:L.error?.message});if(L.result.includes('"code":-26'))throw new K("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return L.result}throw Q}}function DX(X){return`https://api.blockchair.com/${O0(X)}`}function C2(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,C2(X))}catch{return C2(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 O2({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 O2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function V2({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(j){let Q=j instanceof Error?j.message:String(j);return console.error(`Failed to fetch raw transaction: ${Q}`),""}}async function I0({chain:X,apiKey:$,txHash:J}){if(!J)throw new K("toolbox_utxo_invalid_params",{error:"TxHash is required"});let Q=(await SX(`${DX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!Q)throw new K("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Z,inputs:q,outputs:L}=Q,G=q.map((U)=>U.spending_sequence),Y=Z.is_rbf===!0||G.some((U)=>U<k0);return{blockId:Z.block_id,confirmed:Z.block_id!==-1,fee:Z.fee,inputs:q,isRBF:Y,outputs:L,sequences:G,size:Z.size,txid:Z.hash,weight:Z.weight}}async function f0({chain:X,address:$,apiKey:J,offset:j=0,limit:Q=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=${Q}&offset=${j}`,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 H2(X,$){let J=[...X].sort((j,Q)=>Q.value-j.value);if($){let j=[],Q=0;for(let Z of J)if(j.push(Z),Q+=Z.value,Q>=$)break;return j}return J}async function b2({chain:X,address:$,apiKey:J,targetValue:j,accumulativeValue:Q=0,offset:Z=0,limit:q=30}){if(!$)throw new K("toolbox_utxo_invalid_params",{error:"Address is required"});try{let L=await f0({address:$,apiKey:J,chain:X,limit:q,offset:Z,targetValue:j}),Y=L.length<q,U=L.filter(({is_spent:b})=>!b),z=T0(U),W=Q+z,B=j&&W>=j;if(Y||B)return H2(U,j);let _=await b2({accumulativeValue:W,address:$,apiKey:J,chain:X,limit:q,offset:Z+q,targetValue:j}),D=[...U,..._];return H2(D,j)}catch(L){let G=L instanceof Error?L.message:String(L);return console.error(`Failed to fetch unspent UTXOs: ${G}`),[]}}async function E0({address:X,chain:$,apiKey:J,fetchTxHex:j=!0,targetValue:Q}){let Z=await b2({address:X,apiKey:J,chain:$,targetValue:Q}),q=[];for(let{hash:L,index:G,script_hex:Y,value:U}of Z){let z;if(j)z=await V2({apiKey:J,chain:$,txHash:L});q.push({address:X,hash:L,index:G,txHex:z,value:U,witnessUtxo:{script:Buffer.from(Y,"hex"),value:U}})}return q}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)=>O2({address:J,apiKey:$,chain:X}),getBalance:(J)=>b0({address:J,apiKey:$,chain:X}),getRawTx:(J)=>V2({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 QX.bitcoin;case T.BitcoinCash:return QX.bitcoinCash;case T.Dash:return QX.dash;case T.Litecoin:return QX.litecoin;case T.Dogecoin:return QX.dogecoin;case T.Zcash:return QX.zcash;default:throw new K("toolbox_utxo_not_supported",{chain:$})}}}var k0=4294967294;var k2=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 I2=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 T2}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 T2("toolbox_utxo_invalid_address",{address:X})}function g0(X){try{let $=E2.decode(X);if($.length!==21)throw new T2("toolbox_utxo_invalid_address",{address:X});let J=$[0],j=Array.prototype.slice.call($,1);switch(J){case a.legacy.mainnet.p2pkh:return{format:"legacy",hash:j,network:"mainnet",type:"p2pkh"};case a.legacy.mainnet.p2sh:return{format:"legacy",hash:j,network:"mainnet",type:"p2sh"};case a.legacy.testnet.p2pkh:return{format:"legacy",hash:j,network:"testnet",type:"p2pkh"};case a.legacy.testnet.p2sh:return{format:"legacy",hash:j,network:"testnet",type:"p2sh"};case a.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2pkh"};case a.bitpay.mainnet.p2sh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function l0(X){if(X.indexOf(":")!==-1)try{return f2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return f2(`${J}:${X}`)}catch{}}return}function f2(X){try{let{hash:$,prefix:J,type:j}=aX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:j==="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),E2.encode(J)}function h0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",j=new Uint8Array(X.hash);return aX.encode($,J,j)}var E2,tX,a;var F2=E(()=>{I2();E2=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,P2=10,c0=41,d0=107,hX,gX,HX,ZX=(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 j=X[0]&&"address"in X[0]&&X[0].address?ZX(X[0].address):"P2PKH",Z=(J?X.filter((Y)=>Y.value>=gX["type"in Y&&Y.type?Y.type:"P2PKH"]*Math.ceil(J)):X).reduce((Y,U)=>Y+d(U),0),q=$?.reduce((Y,U)=>Y+OX(U),0)||HX[j],L=lX+Z+q;return j==="P2WPKH"?Math.ceil(L+xX/4):L},d=(X)=>{if("type"in X&&X.type)return gX[X.type];if("address"in X&&X.address)return gX[ZX(X.address)];return c0+d0},OX=(X,$)=>{if(X?.script)return P2+X.script.length+(X.script.length>=74?2:1);if($)return HX[$];if("address"in X&&X.address)return HX[ZX(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 r0}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 r0("toolbox_utxo_not_supported",{chain:X})}}function A({inputs:X,outputs:$,feeRate:J=1,chain:j=e.Bitcoin,changeAddress:Q=""}){let Z=X[0]&&"address"in X[0]&&X[0].address?ZX(X[0].address):"P2PKH",q=X.filter((_)=>d(_)*J<=_.value),G=Z==="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 q){let D=d(_),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:Q,value:0});if(FX>PX){let BX=PX+z,_X=W-(U+Math.ceil(BX));if(_X>Math.max(d({value:0})*J,VX(j)))return{fee:Math.ceil(BX),inputs:B,outputs:$.concat({address:Q,value:_X})}}return{fee:Math.ceil(z),inputs:B,outputs:$}}return{fee:Math.ceil(J*t({inputs:X,outputs:$}))}}var R2=E(()=>{$2()});var GX=E(()=>{k2();F2();R2();$2()});import{Address as n0,ZCASH_NETWORK as i0}from"@swapkit/utxo-signer";function XX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function r(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 w2}from"@scure/bip32";import{mnemonicToSeedSync as j2}from"@scure/bip39";import{AssetValue as pX,applyFeeMultiplier as y2,Chain as I,derivationPathToString as kX,FeeOption as m,NetworkDerivationPath as S2,SwapKitError as V,SwapKitNumber as a0,updateDerivationPath as t0,warnOnce as e0}from"@swapkit/helpers";import{Address as X1,BCHSigHash as Q2,CashAddrPrefix as $1,CashAddrType as J1,encodeCashAddr as j1,NETWORKS as qX,p2pkh as v2,p2wpkh as Q1,RBF_SEQUENCE as Z1,SigHash as K2,Transaction as J2,WIF as m2}from"@swapkit/utxo-signer";import{match as g2}from"ts-pattern";function Z2({address:X,chain:$}){return g2($).with(I.BitcoinCash,()=>r(X)).with(I.Zcash,()=>YX(X)).otherwise(()=>{try{return X1(F($)).decode(X),!0}catch{return!1}})}function F(X){return g2(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:j}){let Q=j??j2(X),q=w2.fromMasterSeed(Q,J.bip32).derive($);if(!q.privateKey)throw new V("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return q.privateKey}function A2(X){return s0.getPublicKey(X,!0)}function fX({publicKey:X,chain:$,network:J}){if($===I.BitcoinCash){let Z=v2(X,J);if(!Z.hash)throw new V("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return j1({hash:Z.hash,prefix:$1.MAINNET,type:J1.P2PKH}).replace(/^bitcoincash:/,"")}let Q=!IX.includes($)?Q1(X,J):v2(X,J);if(!Q.address)throw new V("toolbox_utxo_invalid_address",{error:"Could not derive address"});return Q.address}function LX({phrase:X,derivationPath:$,chain:J,wif:j,seed:Q}){let Z=F(J);if(j){let Y=m2(Z).decode(j),U=A2(Y);return{privateKey:Y,publicKey:U}}if(!X)throw new V("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let q=$||kX(S2[J]),L=G1({derivationPath:q,network:Z,phrase:X,seed:Q}),G=A2(L);return{privateKey:L,publicKey:G}}function Y1(X,$){return m2(F($)).encode(X)}function q1({phrase:X,derivationPath:$,chain:J,seed:j}){let Q=$.split("/");if(Q.length<4)throw new V("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${Q.length}): ${$}`});let Z=F(J),q=j??j2(X),L=w2.fromMasterSeed(q,Z.bip32),G=Q.slice(0,4).join("/");return L.derive(G)}function n({inputs:X,outputs:$,chain:J,tx:j,sender:Q,compiledMemo:Z,enableRBF:q=!1}){let L=F(J),G=!IX.includes(J),Y=q?Z1: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)j.addInput({index:z.index,sequence:Y,txid:B,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)j.addInput({index:z.index,nonWitnessUtxo:$X.decode(z.txHex),sequence:Y,txid:B,...J===I.BitcoinCash?{sighashType:Q2.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:Q;if(J===I.BitcoinCash)W=x(W);if(z.script){if(Z)j.addOutput({amount:0n,script:Z})}else j.addOutputAddress(W,BigInt(z.value),L)}return{inputs:X,tx:j}}async function zX(X){let $=await k(X).getSuggestedTxFee();return{[m.Average]:$,[m.Fast]:y2($,m.Fast),[m.Fastest]:y2($,m.Fastest)}}async function l2({assetValue:X,recipient:$,memo:J,sender:j,fetchTxHex:Q=!1}){let Z=X.chain,q=(await zX(Z))[m.Fastest],L=Q||IX.includes(Z),G=X.getBaseValue("number"),Y=Math.ceil(G+q*5000);return{inputs:await k(Z).getUtxos({address:j,fetchTxHex:L,targetValue:Y}),outputs:[{address:$,value:G},...J?[{address:"",script:R(J),value:0}]:[]]}}async function x2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q,fetchTxHex:Z=!1,enableRBF:q=!1}){let L=X.chain,G=J?R(J):null,Y=await l2({assetValue:X,fetchTxHex:Z,memo:J,recipient:$,sender:Q}),{inputs:U,outputs:z}=A({...Y,chain:L,feeRate:j});if(!(U&&z))throw new V("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let W=new J2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),{inputs:B,tx:_}=n({chain:L,compiledMemo:G,enableRBF:q,inputs:U,outputs:z,sender:Q,tx:W});return{inputs:B,tx:_,utxos:Y.inputs}}async function h2({assetValue:X,feeOptionKey:$=m.Fast,feeRate:J,memo:j,sender:Q,recipient:Z}){let q=X.chain,L=await l2({assetValue:X,memo:j,recipient:Z,sender:Q}),G=J?Math.floor(J):(await zX(q))[$];return A({...L,chain:q,feeRate:G})}function L1(X){return async function({from:J,memo:j,feeRate:Q,feeOptionKey:Z=m.Fast,recipients:q=1}){let L=await k(X).getAddressData(J),G=Q?Math.ceil(Q):(await zX(X))[Z],Y=L?.utxo.map((D)=>({...D,hash:"",type:"P2PKH"})).filter((D)=>D.value>Math.max(VX(X),d(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 q==="number"?Array.from({length:q},()=>({address:J,value:0})):q;if(j)W.push({address:J,script:R(j),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:j}=await h2(J);return pX.from({chain:X,value:a0.fromBigInt(BigInt(j),8).getValue("string")})}}function U1({chain:X,phrase:$,derivationPath:J,seed:j}){let Q=F(X),{privateKey:Z,publicKey:q}=LX({chain:X,derivationPath:J,phrase:$,seed:j}),L=X===I.BitcoinCash?[Q2.ALL]:[K2.ALL];return{getAddress:()=>fX({chain:X,network:Q,publicKey:q}),privateKey:Z,publicKey:q,signTransaction:(G)=>{return G.sign(Z,L),G}}}function W1(X,$){return async function({memo:j,recipient:Q,feeOptionKey:Z,feeRate:q,assetValue:L,enableRBF:G=!1}){let Y=await $?.getAddress();if(!($&&Y))throw new V("toolbox_utxo_no_signer");if(!Q)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=q||(await zX(X))[Z||m.Fast],{tx:W}=await x2({assetValue:L,enableRBF:U,feeRate:z,memo:j,recipient:Q,sender:Y}),B=await $.signTransaction(W);return B.finalize(),k(X).broadcastTx($X.encode(B.extract()))}}function G2(X){return($)=>Z2({address:$,chain:X})}function Y2(X){let $=F(X);return function(j){if(!j)throw new V("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return fX({chain:X,network:$,publicKey:j.publicKey})}}function i({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,j="index"in $?$.index||0:0,Q=J?j2(J):void 0,Z="derivationPath"in $&&$.derivationPath?$.derivationPath:t0(S2[X],{index:j}),q=kX(Z),L=J?U1({chain:X,derivationPath:q,phrase:J,seed:Q}):void 0,G="signer"in $?$.signer:void 0,Y=L||G,U=J?LX({chain:X,derivationPath:q,phrase:J,seed:Q}):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:Z});return q1({chain:X,derivationPath:kX(M),phrase:J,seed:Q})}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:Z});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=jX({accountIndex:N,chain:X,change:C,derivationPath:Z,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,rX=t({feeRate:M,inputs:S.map((f)=>({...f,type:"P2WPKH"})),outputs:[{address:C,value:P}]}),l=Math.ceil(rX*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 dX(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?[Q2.ALL]:[K2.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 Q0({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 rX=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:rX,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 Z0({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 dX(N){if(!Y)throw new V("toolbox_utxo_no_signer");return Y.signTransaction(N)}async function G0(N){let M=await dX(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:x2,deriveAddressAtIndex:b,derivePrivateKeyAtIndex:BX,estimateMaxSendableAmount:L1(X),estimateTransactionFee:z1(X),getAddress:z,getAddressFromKeys:Y2(X),getBalance:D2(X),getExtendedPublicKey:_,getExtendedPublicKeyInfo:D,getFeeRates:()=>zX(X),getInputsOutputsFee:h2,getNetworkForChain:()=>F(X),getPrivateKeyFromMnemonic:(N)=>Y1(LX({...N,chain:X}).privateKey,X),isRBFEnabled:JX,keys:U,resolveDerivationIndex:Z0,signAndBroadcastTransaction:G0,signTransaction:dX,signTransactionWithMultipleKeys:_X,transfer:W1(X,Y),transferFromMultipleAddresses:Q0,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 p2}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 u2,CashAddrType as o2,encodeCashAddr as c2,NETWORKS as H1,p2pkh as d2,Transaction as r2}from"@swapkit/utxo-signer";function TX(X){return XX(CX(X))}function O1(X){let $=F(g);function J(Q){return Q.sign(X.privateKey,[C1.ALL]),Q}function j(){let Q=d2(X.publicKey,$);if(!Q.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Z=c2({hash:Q.hash,prefix:u2.MAINNET,type:o2.P2PKH});return Promise.resolve(Z.replace(/^bitcoincash:/,""))}return{getAddress:j,signTransaction:J}}function q2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,j=_1("derivationPath"in X&&X.derivationPath?X.derivationPath:D1(M1[g],{index:J})),Q=$?LX({chain:g,derivationPath:j,phrase:$}):void 0,Z=Q?O1(Q):("signer"in X)?X.signer:void 0;function q(){return Promise.resolve(Z?.getAddress())}let{getBalance:L,getFeeRates:G,broadcastTx:Y,...U}=i({chain:g});function z(_,D=!0){return L(XX(CX(_)))}function W(_){if(!Z)throw new h("toolbox_utxo_no_signer");return Z.signTransaction(_)}async function B(_){let D=await W(_);return D.finalize(),await Y(p2.encode(D.extract()))}return{...U,broadcastTx:Y,buildTx:b1,createTransaction:n2,getAddress:q,getAddressFromKeys:k1,getBalance:z,getFeeRates:G,signAndBroadcastTransaction:B,signTransaction:W,stripPrefix:XX,stripToCashAddress:TX,transfer:V1({broadcastTx:Y,getFeeRates:G,signer:Z}),validateAddress:r}}async function n2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q}){if(!r($))throw new h("toolbox_utxo_invalid_address",{address:$});let Z=Math.ceil(X.getBaseValue("number")+j*7500),q=await k(g).getUtxos({address:TX(Q),fetchTxHex:!0,targetValue:Z}),L=J?R(J):null,G=[],Y=x($);if(G.push({address:Y,value:X.getBaseValue("number")}),L)G.push({script:L,value:0});let{inputs:U,outputs:z}=A({chain:g,feeRate:j,inputs:q,outputs:G});if(!(U&&z))throw new h("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let W=new r2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!L,version:1}),B=x(Q),{inputs:_,tx:D}=n({chain:g,compiledMemo:L,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:Q,assetValue:Z,feeOptionKey:q=N1.Fast,...L}){let G=await J?.getAddress();if(!(J&&G))throw new h("toolbox_utxo_no_signer");if(!Q)throw new h("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Y=L.feeRate||(await $())[q],{tx:U}=await n2({...L,assetValue:Z,feeRate:Y,recipient:Q,sender:G}),z=await J.signTransaction(U);return z.finalize(),X(p2.encode(z.extract()))}}async function b1({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q}){let Z=CX($);if(!r(Z))throw new h("toolbox_utxo_invalid_address",{address:Z});let q=Math.ceil(X.getBaseValue("number")+j*7500),L=await k(g).getUtxos({address:TX(Q),fetchTxHex:!0,targetValue:q}),G=Number(j.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:L,outputs:U});if(!(z&&W))throw new h("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let B=new r2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:_,tx:D}=n({chain:g,compiledMemo:Y,inputs:z,outputs:W,sender:x(Q),tx:B});return{inputs:_,tx:D,utxos:L}}function k1(X){let $=H1.bitcoinCash,J=d2(X.publicKey,$);if(!J.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return c2({hash:J.hash,prefix:u2.MAINNET,type:o2.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,ZcashPSBT as g1,ZcashSigHash as L2,ZcashVersionGroupId as l1}from"@swapkit/utxo-signer";import{match as x1,P as z2}from"ts-pattern";function X0(){let{isStagenet:X}=t2.get("envs");return X?K1:S1}function p1(X){return h1.encode(X)}function u1({phrase:X,derivationPath:$}){let J=a2(X),Q=s2.fromMasterSeed(J).derive($);if(!Q.privateKey||!Q.publicKey)throw new EX("toolbox_utxo_invalid_params");let{privateKey:Z,publicKey:q}=Q,L=e2.hash160(q),{isStagenet:G}=t2.get("envs"),Y=G?new Uint8Array([29,37]):new Uint8Array([28,184]),U=new Uint8Array(Y.length+L.length);U.set(Y,0),U.set(L,Y.length);let z=p1(U);return{getAddress:()=>Promise.resolve(z),signTransaction:(W)=>{if(W instanceof g1){let B=W.toPCZT();return B.signAllInputs(Z,q,L2.ALL),B.finalizeAllInputs(),Promise.resolve(B.extract())}if(W instanceof A1)return W.signAllInputs(Z,q,L2.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract());return W.signAllInputs(Z,q,L2.ALL),Promise.resolve(W)}}}function o1({inputs:X,outputs:$,tx:J,sender:j,compiledMemo:Q}){let Z=X0();for(let q of X){let L=R1(Z).decode(j),G=v1.encode(L);J.addInput({index:q.index,script:G,sequence:4294967295,txid:f1.decode(q.hash),value:BigInt(q.value)})}for(let q of $){let L="address"in q&&q.address?q.address:j,G=q.script;if(G&&!Q)continue;if(G&&Q)J.addOutput({amount:0n,script:Q});else J.addOutputAddress(L,BigInt(q.value),Z)}return{inputs:X,tx:J}}async function i2(X){let{assetValue:$,recipient:J,memo:j,feeRate:Q,sender:Z,fetchTxHex:q}=X,L=j?R(j):null,G=await k(cX.Zcash).getUtxos({address:Z,fetchTxHex:q!==!1}),Y=[{address:J,value:Number($.getBaseValue("string"))},...L?[{script:L,value:0}]:[]],{inputs:U,outputs:z}=A({chain:cX.Zcash,changeAddress:Z,feeRate:Q,inputs:G,outputs:Y});if(!(U&&z))throw new EX("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Z});let W=y1({consensusBranchId:m1.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:l1.SAPLING}),{tx:B,inputs:_}=o1({compiledMemo:L,inputs:U,outputs:z,sender:Z,tx:W});return{inputs:_,outputs:z,tx:B}}function U2(X){let $=x1(X).with({signer:z2.not(z2.nullish)},({signer:G})=>G).with({phrase:z2.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 u1({derivationPath:B,phrase:G})}).otherwise(()=>{return}),J=i({chain:cX.Zcash,signer:$});async function j(G){if(!$)throw new EX("toolbox_utxo_no_signer");return await $.signTransaction(G)}async function Q(G){let Y=await j(G);return J.broadcastTx(Y.toHex())}async function Z({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 q({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 L({phrase:G,derivationPath:Y="m/44'/133'/0'/0/0"}){let U=q({derivationPath:Y,phrase:G}),z=X0();return w1(z).encode(U.privateKey)}return{...J,createKeysForPath:q,createTransaction:i2,getPrivateKeyFromMnemonic:L,signAndBroadcastTransaction:Q,signTransaction:j,transfer:Z,validateAddress:YX}}var h1;var W2=E(()=>{GX();UX();bX();h1=I1(e2.sha256)});import{hex as c1}from"@scure/base";import{HDKey as d1}from"@scure/bip32";import{derivationPathToString as r1}from"@swapkit/helpers";function $0({xpub:X,chain:$,count:J,startIndex:j=0,accountIndex:Q}){if(v("count",J),J<1)throw RangeError("count must be at least 1");v("startIndex",j);let Z=F($),q=d1.fromExtendedKey(X,Z.bip32),L=c({accountIndex:Q,chain:$}),G=s(L),Y=[];for(let U of[!1,!0]){let z=q.deriveChild(Number(U));for(let W=0;W<J;W++){let B=j+W,_=z.deriveChild(B);if(!_.publicKey)continue;let D=jX({accountIndex:Q,chain:$,change:U,index:B});Y.push({accountIndex:G,address:fX({chain:$,network:Z,publicKey:_.publicKey}),change:U,index:B,path:r1(D),pubkey:c1.encode(_.publicKey)})}}return Y}var J0=E(()=>{MX();UX()});import{Chain as WX,SwapKitError as n1}from"@swapkit/helpers";function i1(X,$){switch(X){case WX.BitcoinCash:return q2($||{});case WX.Zcash:return U2($);case WX.Bitcoin:case WX.Dogecoin:case WX.Litecoin:case WX.Dash:return i({chain:X,...$});default:throw new n1("toolbox_utxo_not_supported",{chain:X})}}var j0=E(()=>{oX();UX();W2();MX();J0();oX();bX()});var s1={};U0(s1,{validateZcashAddress:()=>YX,validateUtxoAddress:()=>Z2,validateBchAddress:()=>r,toLegacyAddress:()=>x,toCashAddress:()=>CX,stripToCashAddress:()=>TX,stripPrefix:()=>XX,nonSegwitChains:()=>IX,isValidAddress:()=>eX,getUtxoToolbox:()=>i1,getUtxoNetwork:()=>P0,getUtxoApi:()=>k,getUTXOAddressValidator:()=>G2,getUTXOAddressPath:()=>jX,getUTXOAccountPath:()=>c,getUTXOAccountIndexFromPath:()=>s,getScriptTypeForAddress:()=>ZX,getOutputSize:()=>OX,getNetworkForChain:()=>F,getInputSize:()=>d,getDustThreshold:()=>VX,detectAddressNetwork:()=>X2,deriveAddressesFromXpub:()=>$0,createZcashToolbox:()=>U2,createUTXOToolbox:()=>i,createHDWalletHelpers:()=>_2,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:()=>P2,MIN_TX_FEE:()=>o0,InputSizes:()=>gX});var a1=E(()=>{UX();MX();GX();j0();oX();W2()});a1();export{YX as validateZcashAddress,Z2 as validateUtxoAddress,r as validateBchAddress,x as toLegacyAddress,CX as toCashAddress,TX as stripToCashAddress,XX as stripPrefix,IX as nonSegwitChains,eX as isValidAddress,i1 as getUtxoToolbox,P0 as getUtxoNetwork,k as getUtxoApi,G2 as getUTXOAddressValidator,jX as getUTXOAddressPath,c as getUTXOAccountPath,s as getUTXOAccountIndexFromPath,ZX as getScriptTypeForAddress,OX as getOutputSize,F as getNetworkForChain,d as getInputSize,VX as getDustThreshold,X2 as detectAddressNetwork,$0 as deriveAddressesFromXpub,U2 as createZcashToolbox,i as createUTXOToolbox,_2 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,P2 as OP_RETURN_OVERHEAD,o0 as MIN_TX_FEE,gX as InputSizes};
@@ -3,6 +3,7 @@ import type { StellarCreateTransactionParams, StellarToolboxParams, StellarTrans
3
3
  export declare function validateStellarAddress(address: string): boolean;
4
4
  export declare function getStellarToolbox(params?: StellarToolboxParams): {
5
5
  broadcastTransaction: (signedTransaction: {
6
+ hash?: () => Buffer;
6
7
  toXDR: () => string;
7
8
  }) => Promise<string>;
8
9
  createTransaction: ({ recipient, assetValue, memo, sender }: StellarCreateTransactionParams) => Promise<import("@stellar/stellar-sdk").Transaction<import("@stellar/stellar-sdk").Memo<import("@stellar/stellar-sdk").MemoType>, import("@stellar/stellar-sdk").Operation[]>>;
@@ -1,9 +1,9 @@
1
1
  import { type ChainSigner, type DerivationPathArray, FeeOption } from "@swapkit/helpers";
2
- import { PCZT, type ZcashTransaction } from "@swapkit/utxo-signer";
2
+ import { PCZT, ZcashPSBT, type ZcashTransaction } from "@swapkit/utxo-signer";
3
3
  import { accumulative } from "../helpers";
4
4
  import type { TargetOutput, UTXOBuildTxParams, UTXOTransferParams, UTXOType } from "../types";
5
5
  import { validateZcashAddress } from "./validators";
6
- type ZcashSigner = ChainSigner<ZcashTransaction | PCZT, ZcashTransaction>;
6
+ type ZcashSigner = ChainSigner<ZcashTransaction | PCZT | ZcashPSBT, ZcashTransaction>;
7
7
  declare function createTransaction(buildTxParams: UTXOBuildTxParams): Promise<{
8
8
  inputs: UTXOType[];
9
9
  outputs: TargetOutput[];
@@ -28,8 +28,8 @@ export declare function createZcashToolbox(toolboxParams: {
28
28
  phrase: string;
29
29
  derivationPath: string;
30
30
  }) => string;
31
- signAndBroadcastTransaction: (tx: ZcashTransaction | PCZT) => Promise<string>;
32
- signTransaction: (tx: ZcashTransaction | PCZT) => Promise<ZcashTransaction>;
31
+ signAndBroadcastTransaction: (tx: ZcashTransaction | PCZT | ZcashPSBT) => Promise<string>;
32
+ signTransaction: (tx: ZcashTransaction | PCZT | ZcashPSBT) => Promise<ZcashTransaction>;
33
33
  transfer: ({ recipient, assetValue, feeOptionKey, ...rest }: UTXOTransferParams) => Promise<string>;
34
34
  validateAddress: typeof validateZcashAddress;
35
35
  accumulative: typeof accumulative;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "dependencies": { "@swapkit/helpers": "4.13.11", "@swapkit/utxo-signer": "2.1.3" },
2
+ "dependencies": { "@swapkit/helpers": "4.13.12", "@swapkit/utxo-signer": "2.2.0" },
3
3
  "description": "SwapKit - Toolboxes",
4
4
  "devDependencies": {
5
5
  "@aptos-labs/ts-sdk": "1.34.0",
@@ -194,5 +194,5 @@
194
194
  "type-check:go": "tsgo"
195
195
  },
196
196
  "type": "module",
197
- "version": "4.15.15"
197
+ "version": "4.16.1"
198
198
  }